Dr_Acula
03-11-2012, 12:05 PM
I'm playing around with the idea of stacks of Gadget Gangster boards where all the prop pins on a board can be placed in HiZ. Effectively this disables the board, and it means that one propeller can talk to all sorts of boards. Previously this concept hasn't been all that useful as anything that deselects a TV or VGA display will blank the screen.
However, the touchscreen has its own internal ram, so once a picture has been sent to the touchscreen, the prop can go off and talk to other boards without the display blanking.
So I'm thinking of adding a Z80 co-processor board.
Why? Well partly just to see how few parts it might take. Partly as a demonstration of how co-processors might work in general. And partly because I think it might still work a little bit faster than the best Z80 emulation we have.
The circuit has a few extra chips to completely isolate the pins - even pullups need to be isolated, so there are some 244 chips and a 74HC4316. Also, while a minimalist design can have less parts, I think at a minimum it does need a keyboard, TV or VGA display and an SD card.
But I think the true Z80 core can be done with one ram chip, one Z80, three latches, one 138 decoder and a 245 bidirectional buffer.
The idea would be that the propeller would disable the Z80 with a busrq, fill the ram, then issue a reset and set the Z80 going. A cog would run the clock, which could be useful for changing the speed of games (so you can *cough* win).
If this ran CP/M, it could be customised so that instead of I/O working with an 8255 or a UART, instead it reads and writes from some circular buffers in high ram. The propeller would take over the ram periodically and read and write from the buffers.
The board's number is GP2 so wherever GP2 appears on the schematic, if this is L the board is selected and if H then everything in and out of this board would be HiZ. I might need to think about the clock a bit more, there may be an argument for a local clock on the board.
I'll see how the layout goes, maybe one could fit a couple of Z80+ram chips on the board?
However, the touchscreen has its own internal ram, so once a picture has been sent to the touchscreen, the prop can go off and talk to other boards without the display blanking.
So I'm thinking of adding a Z80 co-processor board.
Why? Well partly just to see how few parts it might take. Partly as a demonstration of how co-processors might work in general. And partly because I think it might still work a little bit faster than the best Z80 emulation we have.
The circuit has a few extra chips to completely isolate the pins - even pullups need to be isolated, so there are some 244 chips and a 74HC4316. Also, while a minimalist design can have less parts, I think at a minimum it does need a keyboard, TV or VGA display and an SD card.
But I think the true Z80 core can be done with one ram chip, one Z80, three latches, one 138 decoder and a 245 bidirectional buffer.
The idea would be that the propeller would disable the Z80 with a busrq, fill the ram, then issue a reset and set the Z80 going. A cog would run the clock, which could be useful for changing the speed of games (so you can *cough* win).
If this ran CP/M, it could be customised so that instead of I/O working with an 8255 or a UART, instead it reads and writes from some circular buffers in high ram. The propeller would take over the ram periodically and read and write from the buffers.
The board's number is GP2 so wherever GP2 appears on the schematic, if this is L the board is selected and if H then everything in and out of this board would be HiZ. I might need to think about the clock a bit more, there may be an argument for a local clock on the board.
I'll see how the layout goes, maybe one could fit a couple of Z80+ram chips on the board?