News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Design your dream 80s computer !

Started by Stargliderz80, 15:26, 25 October 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Stargliderz80


Hi guys,


These days I'm a PC hardware guy,  been building systems since the late 90s and actually work in motherboard repair at the moment.
So,  I have some familiarity with hardware concepts.


However, I also have fond memories of the CPC6128 from my childhood.  I never got much further than starting to learn assembler on it,
having mastered BASIC but realising it was too slow to actually do anything.


I thought I'd create a thread for "creating your dream 80s" home computer,   which puts you in the shoes of Clive Sinclair, Alan Sugar, Jack Tramiel or whoever.


One of my main gripes with the 8 bit machines was the fact that mode 1 wasn't quite enough colours to work with.  Mode 0 on the other hand, had an embarrasment of riches but the text was too huge and blocky to program with and even in-game, the sheer coarseness of the 160x200 pixels was offensive.


If only there was a 3BPP  8 colour mode?  That's the main feature my "fantasy computer" has to have ! 


One of the reasons I understand this was not done by any 8bit micro I am aware of , is getting the word lengths to line up with pixel boundaries.


On an 8 bit data bus,  unless you're writing 3 bytes of screen memory at once ,ie. 24 bits, 8 pixels - you're going to have some overlap and end up having to alter more bytes that you wanted to .    So , there's some overhead and waste unless your sprites are all  some mulitple of 8 pixels wide.


The second reason, I guess we never saw 3 BPP with at least a MODE 1 resolution, is performance related. It's a lof of screen to push around !


Now , with my PC Hardware hat on, the answer seems to be to design a custom APU with perhaps a 12 bit data bus, integrated memory controller (minimise the number of support chips),  which as well as acting as a CPU,  scans the video memory space 50 times a second and then feeds the results down a high speed  serial bus to the southbridge (custom logic handling the computer's i/o functions, interface with rom etc)  and thence on to the pixel generator.    The CPU doesn't need to have a high instructions per clock, by any means,  and can have a dog slow ALU if it wants, to keep the transistor count down.   But i needs to have some BLIT / block copy functions,   so there is less overhead/wastage when copying sprite data into video memory.


96kb RAM - 8 bpp - 12bit cpu with integrated block copy function


Of course, the 80s home computer industry was not like the noughties PC one, the z80 of our Amstrads came out in 1975, 12 years before  i acquired mine.   Did any of the players in the home computer market have the resources to design their own cpu (or at least, heavily customise an existing one) and chipset , like Intel or AMD would today? Probably not !


So if you're being a bit more realistic and are restricting yourself to the off-the shelf parts of the time, with a minimum investment in ULAs or whatever, how would you go about it?


I've tried to find info on 12 bit and 15 bit processors, with the aim of increasing memory bandwidth (lessen performance hit of doing software sprites on the bigger screen) and using a data bus that's a mulitple of 3,  but didn't find much.    No 9 or 15 bit chips,  and very few 12s.


The only 12 bit chip I could find info on that wasn't a 70s mini computer was the Intersil 6100, which unfortunately could only access 6kb RAM.  Does that mean you'd have to pair it with 12 x 4kilobit DRAM chips?   Sounds like a large BOM for a 6kb home computer !


Thinking out of the box, I considered  using RGB bit planes, and give each bit plane to a different microprocessor with its own memory to manage.   Three 4 bit intel  4040s,  or perhaps 3 cheap 8 bit processors like a 650x?


This also sounds expensive and kludgy.   So, I'm guessing we have to stick with the 8 bit cpus and 64 kilobit DRAM chips that were cheap at the time.


Does the ULA, act like the "northrbidge" of a PC, since it contains the memory controller and "integrated graphics" (such as they are).  Is the Z80 on the same bus as the ULA and memory, or is it on its own "front side bus", like a PEntium 4 processor?


In which case, is there anything we could do with the ULA to give us the performance necessary to drive such a screen.    For example,  operations accessing RAM seem to take many z80 clock cycles,  so could we make a "dual channel" memory subsystem to increase our bandwidth, resulting in the z80 waiting fewer clock cycles between memory operations?    Dual channel of course means a physical 16 bit bus which 3BPP does not neatly fit, so does that actually mean a "triple channel" system (with, yikes, 192kb ?! ) being the easiest to implement in practice?


Also, could BLIT functions be incorporated in the UART, if the cpu's microcode could not be modified to incorporate them?


Over to you guys who know a bit more about period hardware...

ZbyniuR

Hardware from MSX2 (+ overscan) + games from Sega Master System + Basic and keyboard from 6128.  ;D
In STARS, TREK is better than WARS.

GUNHED

The 6128 Plus with internal RAM and Flash expansion.  ;)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Bryce

#3
Quote from: GUNHED on 17:46, 25 October 17
The 6128 Plus with internal RAM and Flash expansion.  ;)

And a 6MHz Z80B. It was released late 1981, so it could have been used. Price was the killer factor though.
However, flash was invented in 1980, but didn't become a commercial product until 1988, so it's borderline. Or ( @Stargliderz80 ) where does "of the time" end?

Bryce.

ComSoft6128

Or a 6128/6128 Plus with a 3.5" drive and a hinged compartment with 6 (empty) internal Rom sockets!

rpalmer

I would have liked to see the CPC with:

a. Full DK'Tronics memory - giving a total of 576K.

b. A standard disc interface for the internal drive rather than the short version they decided upon. This would make it easier to replace the internal drive with 3.5 version with no to little change.

c. A change in the I/O system so that A15 decides if the I/O request is "System" or "User". This would leave the user side with a full 14-bits to work with, while the "System" would be dedicated to internal components.

d. All RAM being SRAM rather than DRAM or at least a memory daughter board which could be replaced.

e. The video output to be convertable to both the existing monitors (CTM644 and the like) and to VGA monitors. This should have been possible since CGA, EGA system were the fore-runner to VGA which used the same 6845.

f. A means to upgrade the Z80 to either the 6MHz version (Z80B) or the 8MHz version (Z80H). if the VGA decapped information is correct it would seem possible for the 6MHz Z80 running at 5.333 MHz (16/3) with no changes to RAM/ROM however for 8MHz it would require faster ROM (100ns at least) and the same for RAM.

rpalmer

Bryce

Quote from: rpalmer on 21:58, 25 October 17
d. All RAM being SRAM rather than DRAM or at least a memory daughter board which could be replaced.

e. The video output to be convertable to both the existing monitors (CTM644 and the like) and to VGA monitors. This should have been possible since CGA, EGA system were the fore-runner to VGA which used the same 6845.

rpalmer

SRAM has electronic advantages over DRAM, but nothing the user would notice and it wouldn't improve performance.

But CGA and EGA systems weren't compatible with VGA either?? They even used a different plug/socket.

Bryce.

Stargliderz80


Quote[size=0px]SRAM has electronic advantages over DRAM, but nothing the user would notice and it wouldn't improve performance.


[/size]
[size=0px]


In mid 90s PCs ,  it did help because fewer clock cycles were needed for memory read/write operations....   so would it not do the same for an Amstrad?[/size]

keith56

based on the CPC 6128+:
128k of ram is enough, but any chunk should be bankable into any of the 4 main address slots
CPC+ Hardware sprites should use an address pointer (like the C64) so they can be changed midscreen.
if the CPC+ was to compete against the 16 bits (as intended) a 6/8 mhz processor would have helped!

increasing the onscreen colors would be cool, but doubling the bitdepth would halve the speed - so I'll pass! we always have overscan if you're going color/resolution crazy!

But seriously, fantasy aside, that V9990 GPU that's being added to the MSX/CPC is a monster! stick that on the CPC, with a few of TotO's finest upgrades - and I think you're going to be hard pushed to ask for a better 8 bit!... remember, it has 512k of vram, and hardware blitting, so the CPU and RAM of the CPC can focus on game logic, and just tell the GPU what do do and the GPU will do it WHILE the CPU is doing it's next job, so all the hard work of sprite blitting/scrolling can be done by the GPU not the Z80!
Chibi Akumas: Comedy-Horror 8-bit Bullet Hell shooter!
Learn ARM, 8086, Z80, 6502 or 68000 with my tutorials: www.assemblytutorial.com
My Assembly programming book is available now on amazon!

mr_lou

I'm not a hardware guy so I can't join the discussion much, but:

Though I'm sure the V9990 is awesome, I have to say that graphics were never a factor that ruined a game for me. If only the game had a decent framerate / smooth movement, and great music, then it was all I needed.

Philips Videopac G7000 games for example. They were awesome for having smooth movement. C64 games added awesome music. This was the biggest thing I missed on my CPC back in those days: That more games had smooth movement, and better sound.

Adding stunning graphics while keeping chunky movement doesn't change much for me.

But of course, the V9990 would also help gain smooth movement, right? So I'm a bit curious to see this beast in action.

Bryce

Quote from: Stargliderz80 on 23:01, 25 October 17
[size=0px]


In mid 90s PCs ,  it did help because fewer clock cycles were needed for memory read/write operations....   so would it not do the same for an Amstrad?[/size]


Nope, because the CPC architecture is different, the read/write speed wouldn't change as far as I can see. The only RAM improvement (other than size) which may be an advantage would be to add DMA for other peripherals to access RAM directly.

Bryce.

keith56

Quote from: mr_lou on 05:20, 26 October 17
But of course, the V9990 would also help gain smooth movement, right? So I'm a bit curious to see this beast in action.

I'm pretty sure this should be smooth enough for you!

https://www.youtube.com/watch?v=DFtcGITspwk
Chibi Akumas: Comedy-Horror 8-bit Bullet Hell shooter!
Learn ARM, 8086, Z80, 6502 or 68000 with my tutorials: www.assemblytutorial.com
My Assembly programming book is available now on amazon!

GUNHED

CPC can scroll smooth, just code well.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

mr_lou

Quote from: keith56 on 09:45, 26 October 17
I'm pretty sure this should be smooth enough for you!

https://www.youtube.com/watch?v=DFtcGITspwk

Indeed, that looks cool.
But.... I need two monitors then? That kinda takes the fun out of it.

Bryce

Very cool video, but Youtube is going to pull that video for using copyrighted music.

Bryce.

angelcaio

#15
CPC464
GT65 Monitor
MX4 with:
     -X-MEM 512 kb RAM 512 kb ROM
     -MINIBOOSTER with Bluetooth
     -X-MASS
     - Edge adapter with Electric Studio lightpen connected
DDI Clone with two floppy drives (3.5" and 5.25") attached
Two speakers attached at stero output
DK'TRONICS clone interface and a Atari ST mouse
DMP2000 Printer


...At least for me


Enviado desde mi iPad utilizando Tapatalk

mr_lou

Quote from: Bryce on 13:34, 26 October 17
Very cool video, but Youtube is going to pull that video for using copyrighted music.

I was thinking about mentioning that too, because I'm experiencing something similar these days.
Recorded a lot of video from a town-festival, where obviously music is played by various entertainment. I.e. it is not audio I've added in post-production, but actual audio that was present while recording the video. 3 hours video in total of which 1½ hours contains music.
Then I requested permission from Nordic Copyright Bureau to publish this on YouTube. They want 5412,68 Euro from me if I want to publish it.......    :o
Crazy.

Longshot

The cpc was built with standard components in a highly competitive environment.
I would have liked :
A character mode that the 6845 allows.
Complementary ram access for the 6845.

The amstrad plus should have had a lot more memory, especially in the asic to allow sprite vectorization.
This machine released in 1990 has earned its fate.

On the other hand, it is very sad that Enterprise 128 had such a fate.
Released in 1985, there are barely 80,000 in the world. It has two amazing asics, including a great video circuit, which Amstrad would have done well to imitate.
256 colors with an impressive control of each scanline.
This machine was amazing and a dream for any demomaker.
Rhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!

tjohnson


Quote from: Longshot on 19:07, 26 October 17
On the other hand, it is very sad that Enterprise 128 had such a fate.
Released in 1985, there are barely 80,000 in the world. It has two amazing asics, including a great video circuit, which Amstrad would have done well to imitate.
256 colors with an impressive control of each scanline.
This machine was amazing and a dream for any demomaker.


This is a new one on me, looks like some inspiration was taken from Amstrad in the case colours. 

Longshot

Enterprise was a very long-awaited computer due to many problems (lot of already-registered-names, commercial mistakes, technical difficulties (case mould, chipsets, software), but the first original design (see https://regmedia.co.uk/2013/10/17/elan_21.jpg) was modified in spring 1983 with the red/green/blue
Cpc 464 was released only in spring 1984, one year later.
Who copied from whom ?
Rhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!

ThomH

Quote from: Stargliderz80 on 15:26, 25 October 17
...
Now , with my PC Hardware hat on, the answer seems to be to design a custom APU with perhaps a 12 bit data bus,
...
They're not APUs but both the VIC-I and VIC-II use 12-bit data buses, though in both cases it's to fetch simultaneously from both 4-bit colour memory and 8-bit video memory rather than to collect a single logical quantity of 12 bits. On the low-bandwidth VIC-I (of the Vic-20) this is completely invisible to the CPU because the 6502 has the often-exploited property that it does not interact with the bus for the first half of each cycle. The VIC-II (of the C64) doubles the horizontal resolution with the same speed of RAM by sometimes halting the CPU and keeping more internal state. In fact, it does it with cheaper RAM because it's also smart enough to perform RAM refresh and therefore can use dynamic RAM instead of static.

That all being said, the dream computer of the '80s would be anything with a TMS34010 in it, which is pretty close to being an APU. It's a 32-bit RISC CPU enhanced with bitmap-oriented drawing instructions, originally from 1986. You'll know it from the Hard Drivin' and Smash TV arcade machines.

Keeping it 8-bit, how about the Atari Lynx blown up to TV proportions? That's a stretch-blitting 8-bit which can aid with line and polygon rendering with a maths coprocessor. I suspect bandwidth would become very problematic indeed if you tried to extend the resolution beyond the built-in 160x102 but, ummm, let's just pretend that it somehow becomes at least a 160x200 machine, and ideally a 320x200.

Or just add a blitter to my SAM Coupe, please.

Powered by SMFPacks Menu Editor Mod