| |
MagerValp
Registered: Dec 2001 Posts: 1078 |
FIFOgfx (with live C64 debugging)
A friend of mine built his own 6502 computer and he talked me into making a graphics card for it. I've connected my prototype via a cartridge to the C64, and a side effect of how I'm interfacing it means that the C64's memory is mirrored into a Raspberry Pi, making it possible to inspect its memory live. I realized that this might potentially be even more interesting than the main project, but I haven't had time to fully explore it as I'm focusing on finishing the gfxcore first. I've started releasing my project files on GitHub if anyone wants to play along:
https://github.com/MagerValp/fifogfx |
|
... 19 posts hidden. Click here to view all posts.... |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: for SCPU128 its even funkier.... it needs to "bypass" the MMU, so it comes with an adapter for that and plenty wires routed inside the computer...
Aha wow, ok! :D |
| |
MagerValp
Registered: Dec 2001 Posts: 1078 |
Quote: Quote:I haven't verified that it actually works, but I implemented simple $01 logic as well, to capture I/O writes to a separate buffer.
i'd be surprised if that does anything useful :) writes to the CPU port can not be "seen" on the BUS (only the address, not the data IIRC) - which is the main reason for why the chameleon became what it is, the only way to know about the state of the CPU port is to "look into the CPU".
Well that makes sense, yeah. It'd be easy enough to clip on to the cpu for those three signals, there are even three free bits left in the FIFOs, if one was so inclined. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
you need a couple of the select signals that come out of the PLA - then you can properly tell apart I/O and RAM/ROM accesses... quite easy actually if running wires into the c64 is an option. |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: you need a couple of the select signals that come out of the PLA - then you can properly tell apart I/O and RAM/ROM accesses... quite easy actually if running wires into the c64 is an option.
Yeah. The PLA emits 6 signals (BASIC,KERNEL,CHAROM,IO,ROML,ROMH).
One of them is IO ($d000-$dfff) which is fed into two serial adress decoders to split out CS for $d000-$d3ff (VIC), $d400-$d7ff (SID), $d800-$dbff (COLOR) and $dc00-$dfff (CIAS).
The CIAS signal is then fed into itself (the second part of the chip) to select $dcxx (CIA1), $ddxx (CIA2), $dexx (IO1) and $dfxx (IO2) CS. The last two are just wired to the expansion port. So, yeah, it's quite easy indeed.
It's a very neat construction and extremely simple. |
| |
Slajerek
Registered: May 2015 Posts: 63 |
I need to have it :) |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Hackers! |
| |
MagerValp
Registered: Dec 2001 Posts: 1078 |
Quote: I need to have it :)
If you have a soldering iron or a breadboard and an evening or two, go for it :) |
| |
doynax Account closed
Registered: Oct 2004 Posts: 212 |
The alternative is to do parallel emulation to infer the $00/$01 state. In theory this might de-sync on the tape motor state and some unstable opcodes but in practice this pretty much requires intentional obfuscation.
I have actually been tinkering with a debugging cartridge doing precisely this for a fair while now. Unintrusively capturing bus traces which may then be stepped through offline, eventually along with the traditional debugging features.
Unfortunately the software side of things is still _far_ from finished and I now seem to have been scooped. Ah, well, serves me right for not putting enough time into it I suppose ;)
Good luck on your project! |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
doynax: yup, thats what chameleon does (except at some point we moved one step further and disabled the C64 CPU completely - we still have a test core that runs both in parallel however, that way we can verify/check the emulated CPU) |
| |
Martin Piper
Registered: Nov 2007 Posts: 722 |
Nice. :) I was using similar address bus snooping to get a TTL 6502 to drive LCD screens. These screens would of course have their own internal buffers for the draw commands.
http://www.wellytop.com/Fnagaton/TwoScreens.jpg |
Previous - 1 | 2 | 3 - Next |