News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Charlie

PCW Z180: My Accidental Computer

Started by Charlie, 20:11, 10 December 19

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Charlie


Prologue:
It's not that long ago I got my hands on a PCW 10 for my daughter. Fired by enthusiasm I later dug a PCW 8256 keyboard and motherboard out of the 'junk pile' with the intention of making a more portable machine - nearly done, maybe another thread some time. Having gotten to know the system a little better I began what I usually do when getting to know a new 8 bit system and started designing some upgrades for the PCW line of machines...

Well, some time later I've come up with a bunch of PCW upgrades (earlier versions posted on an earlier thread) but I'm not sure if I should be embarrassed or pleased with the results. It seems I've made an entire 8 bit computer! Not quite sure what to do with it so I thought I'd share.

Highlights:
-A Z180-based 32Mhz single board computer, software compatible with the RC2014 line of computers. It includes dual FTDI headers, 512K RAM, 512K FlashROM, and a uIDE compatible interface. It's also hardware compatible with RC2014 upgrades via a bus adapter board. Yeh, this was intended to be a proper accelerator for the PCW, and may well still work as such.
-A Yamaha 9958 (Aka MSX2+) GFX board that's hardware and software compatible with MSX, Sword M5, and Coleco systems, as well as my 9958-based GFX upgrade for the Coleco ADAM. Again initially intended as an upgrade for the PCW and will function as such.
-An AY, dual Ti, and Digiblaster sound board that's compatible with all the above, intended as a DK'Tronics Sound and Joystick compatible PCW upgrade.
-There's more in the pipeline I'm afraid...

The three boards will stack to make a full computer via a RC2014 RC_80 signal-compatible bus that's a super-set of the PCW expansion bus. All three boards can together, or individually, connect directly to a PCW via it's expansion bus if a female edge connector is soldered in place. An RC2014 bus board may also be attached with the aid of an adapter. The PCW Z180 itself also has a Z80 socket header to allow it's fitment as an internal expansion for the PCW, maybe other Z80 systems, assuming I haven't broken this feature in the process of going bananas with this project.
Oh, and I did a modular, 3D printable, case for it that can be used either as a stand-alone case or for boards connected to a PCW as initially intended.

Anyway it may be of interest to some so here's a 3D Rendering of the complete system as a teaser. I'll follow this post up with details of the individual boards, Eagle files, 3D files, etc...
Charlie.

Are you pondering what I'm pondering? The Qube Server

Gryzor

Yes, a few nights ago I opened the fridge to make a sandwich and kept adding ingredients until I came up with something similar, only it had Amiga and Altair compatibility too.

Sooo yeah, not much I can say but I found it very interesting, looking forward to seeing what you do with it!

1024MAK

Quote from: Gryzor on 20:26, 10 December 19
Yes, a few nights ago I opened the fridge to make a sandwich and kept adding ingredients until I came up with something similar, only it had Amiga and Altair compatibility too.

Sooo yeah, not much I can say but I found it very interesting, looking forward to seeing what you do with it!
I hope the sandwich meets the TTL (top taste level)  ;D

Mark
Looking forward to summer in Somerset :-)

Gryzor


GUNHED

Why a Z180??? It lacks many (and important) commands of the Z80 (yes, they are undocumented, but not illegal - that's a difference). Better use a Z280 (ok, hard to find) or the eZ80.  :) :) :)


I had a Z180 computer before and sold it, because no even CP/M Plus math libraties were running on that CPU sadly.
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)

Charlie

#5
@Gryzor:
Lol!
I'm as surprised about this as any. I always wanted to do my own computer but never sat down to do it as it seemed like too much effort. A bunch of boards intended as PCW upgrades later and a full computer kind-of emerged!

@GUNNHED:
Hmm... interesting I'll have to look in to that, thanks for the info.
I have to admit I went for a Z180 because of it's speed, features, and compatibility... the last being my flavor of compatibility. I like making and designing hardware but have almost no interest in software and as a result am useless at it. As hardware is no good without something to run on it I tend to point my designs at what's already available on the software front. In this case I have some knowledge of the RC2014 (my daughter built one) and others have made Z180 add-ons for that, the result being a ready supply of code that will function on this...
...equally as this started as an accelerator for the PCW (it may still be!) I figured the Z180 would be a reasonable choice. I'll dig out the datasheet for the eZ80 and see what's what - always happy to take advice on doing better.


So let's get down to the base board, called the PCW_Z180 as The Allan Parson's Project has already been taken, twice!

Just to recap:
-A Z180 with a clock speed that can be changed via a jumper or software - 4-32Mhz
-512K RAM, linear address space
-512K programmable FlashROM
-Two programmable FTDI ports
-uIDE compatible IDE interface
-RC2014 (RC80) signal compatible bus that's a superset of the PCW expansion bus
-A Z80 socket, either for local expansion or to allow this board to act as an internal PCW expansion, if I haven't broken that bit!
-Supports a PCW expansion bus female edge connector
-Stackable with other boards I've done
-Can use RC2014 expansion cards via a bus adapter, more anon
-Should be able to run anything an RC2014 can... a modified BIOS is required to get the FTDI ports to work (available)
-Will function as a stand-alone computer using one of the serial ports connected to a terminal

Oh, and I've tried to make the schematic and board as understandable and modular as I can. Should anyone ever want to build one of these it's perfectly fine to omit bits not required, the thing may even run with a Z80B in the Z80 socket instead of the Z180... although I suspect only 64k will be seen.


More shortly.
Charlie.

Are you pondering what I'm pondering? The Qube Server

Charlie

#6
Next installment; a couple of boards associated with the main CPU board.

1) A CF adapter that plugs in to the, likely free, Z80 socket on the CPU board.
As the board already has a uIDE compatible interface the question that might arise is "why"? Well, it's nice to have options but more importantly as my coding is pretty well nonexistent whatever I do is reliant on the preexisting code of others.
uIDE is awesome and certainly props to the originator from this very forum. I see no reason why the PCW .FID file won't work with this setup but I expect the main source of drivers and software for this board, other than hopefully PCW stuff, is likely going to be the RC2014 community. With that in mind I thought it sensible the have a storage solution that's an exact replica of the most commonly available storage solution on that platform.

2) A PCW_Z180 bus to RC2014 (RC80) bus adapter.
I guess the reason is obvious but to go in to further detail there's loads of cards for the RC2014 so why not leverage that? It should be possible to just plug a single card in to this adapter or attach an entire RC2014 backplane...
The PCW_Z180 bus itself is just a super-set of the PCW expansion bus - exactly the same pin-out and dimensions, fully capable of taking a female edge-connector for attachment to a PCW, but with the 'missing' RC80 bus lines added at one end. As an aside the Rc2014 CLK and CLK2 lines are connected to 'my' Extal (primary clock) and PHI (secondary) clock via jumpers. The RC2014 bus generally runs at 7Mhz and some cards don't work if driven at other frequencies (eg Dual Serial Card) so having jumpers on the adapter may prove useful for swapping clocks about or even adding a further crystal if either the primary Z180 clock (Extal, jumpered) or the secondary Z180 clock (PHI, programmable) won't do.

Ok, enough blurb, piccies and files:
Charlie.

Are you pondering what I'm pondering? The Qube Server

Charlie

#7
And so the splurge continues...

The Old Colecovision/ADAM has a Ti9918 video chip which apart from being very nice has it's own VRAM and is therefore accessed only by a couple of ports. That makes these chips a very handy upgrade for machines that could do with a bit of colour... as it happens I'd already done a 9958 (MSX2+) GFX upgrade card for the ADAM ...and so I did a PCW version too, which of course means it's a PCW_Z180 GFX card.
Oh, and courtesy of the RC2014 community there are ways to get commercial games to run with such a card if you have the RAM and a Z80.  ;D

The card itself:
Yamaha 9958 with all the goodness that includes
196K local RAM - using SRAM, mostly so a new IC can be used
RGB, S-Video, Composite, outputs
Via jumpers register and address compatible with: MSX (2+), Coleco (including my extensions), Sword M5, and pretty well anything else with a TMS chip you can think of

Sound card next and nearly done for now...

Piccies and Zip File:
Charlie.

Are you pondering what I'm pondering? The Qube Server

Charlie

#8
Ok, nearly done and I'll stop clogging up the forum with untested schematics for boards that may never exist in reality.
I see I've got some PM's - sorry I haven't answered yet, I'll get round to it shortly.

PCW Sound:
In a way this is both the simplest and most complex card at the same time. It's three sound devices in one, although I've been careful to make sure only the parts required need to be populated. The mock-up has a PCW-compatible female edge connector on it as a reminder these cards are all intended as PCW upgrades, the 'computer' is an accidental bonus:
1) DK'Tronics compatible Sound and Joyport
This is an AY-based sound solution that also contains, funnily enough, a joyport. Channels A, B, and C are spit to give a Left, Center, and Right, split as a small bonus over the original's mono. Another addition is a header to allow the AY to live at other addresses than chosen by DK - not a lot of choice as not all possible addresses are decoded, but possibly useful if attempting to use non-PCW software.
In the process of trying to reverse engineer this design I looked to me that DK had chosen an odd way to wire the joyport to the AY... at least not the way I'd have done it! It's my hope they did this to help routing but equally it may be this is a mistake on my part - time will tell I guess.
2) Digiblaster support
I guess most people here know about the Covox-alike sound upgrade for the CPC intended for playing sampled sound. Well I added the too... It's wired in to the same address decoding logic as the AY at the standard Digiblaster address. I did this so save on IC's, and because the two use a different base address anyway. The upshot is you can't jumper the AY to the address the Digiblaster is on; a good thing in my opinion.
3) Dual SN76489's
I guess the other 'classic' sound chip for 8 bit systems. The plan was for this board to cover as many options as possible. I'd like to think my PCW Z180 (and by extension the PCW) will be able to run a wide range of 8 bit software - especially as I've tried to make it fully RC2014 compatible as well as PCW compatible. As previously mentioned the RC2014 community have gone a long way to allow that system to run anything you have the hardware for. I've gone for two SN's to allow for stereo output although my suggested default is to use only the left one, set the mono jumper, and run it at the Coloeco's base address. Some Coleco games do support stereo, and of course there's other systems that use this chip.

So... a hopefully multi-talented board that doesn't have to be fully populated. With an AY, two SN's, a Digiblaster, and stereo, I'd like to think some pretty good music could be squeezed out of this board.

One more post for the base board files and I thinks that's it. None of this stuff currently exists in the real world and all of it is completely untested, except for the 9958 board as this is based on my Coleco upgrade. Maybe some day I'll actually make this thing, and in the meantime I'm certainly open to suggestions...
...if anyone want's to check over my schematics for any mistakes I've undoubtedly made I'd be most grateful - indeed the higher confidence I have in these designs the more likely it is they will actually get built.

As always I do this because I enjoy it and if anyone gets anything out of this so much the better. Indeed everyone is completely welcome to use this stuff in any way they see fit, should anyone wish to do so.

Today's piccies and files:
Charlie.

Are you pondering what I'm pondering? The Qube Server

JonB

Hey Charlie

I see you've been going a bit mad with your board designs. Lovely! Keep it up, it's really fascinating.

Regarding uIDE and its FID, I'm happy to provide you with an alternative version that supports your hardware. Given the difference is likely to be the base I/O address only (unless you've gone to 16 bit transfer mode) it is a simple matter of changing two characters in the source file and a quick rebuild... voila!

Regarding boot, how would your design pull the boot code off the drive?

Powered by SMFPacks Menu Editor Mod