Arduino In-Circuit Tester: Build Project

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
I'll see if I can dig out my work from when I was playing with this. I don't know if it will help or not but I had a basic protocol working and was sending commands to the Arduino which was then executing them and passing the results back. It's on a VM, I just need to install Hyper-V on my dev partition now I have one (I wasn't about to kill off my gaming partition with a hypervisor layer).

Disappointingly my parts haven't turned up today but I guess I should have guessed as much, 1st class post very rarely operates within 1 day where I am (you'd think I was in the remote islands of Scotland or something!)

I did commit my initial work to a new branch in my fork if someone would like to have a look and check it. If I've done it correctly (to be confirmed!) then it will show the sort of thing that is involved in adding a new game and as I said above, it's incomplete right now. In particular, while ROM checksums are correct I've not pulled the hex data out of the ROMs yet so that data is wrong.
 

PaulSwan

ZZZ
Feedback
1 (100%)
Credits
1,117CR
Re: 6502
The plan for all 65xx & 68xx was to go with clock mastering. The next time I fix T777 I was planning on re-implementing 6502 to be clock mastering (same as 6809). In the Asteroids case, it would provide the same benefits as it does on Star Wars - the ability to use signal capture and single step of the whole board.

How compatible clock mastering is with DRAM has not yet been evaluated.

Paul.
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
When you say clock mastering, do you mean that CLK2 and CLK1 (where used) would be generated in the ICT code from CLK0? Or do you mean add it to the code as a completely independently generated pair of timed clocks that presumably are considerably slower due to Arduino limitations?

I just looked at the datasheet for the 650x family and was still a bit in the dark about what the CLK's were up to, but I found this rather nice page that (assuming it is correct) explains it nicely:

http://lateblt.livejournal.com/88105.html

So hopefully I understand now
smiley1.gif


guddler2016-01-19 21:19:23
 

PaulSwan

ZZZ
Feedback
1 (100%)
Credits
1,117CR
Yes, CLK2 & CLK1 generated based on CLK0 where the board oscillator clock is also generated by the ICT replacing the xtal clock as was done for SW. It's not real time - much slower as you note.

Paul.
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Understood. And hence the comment on what DRAM might think of this!




I was wondering how on earth the Arduino was possibly going to be able to do that fast enough
smiley36.gif





As an aside, don't suppose anyone has produced a board with compatible pinouts to an Arduino but way faster have they? And preferably code compatible. It really seems that the only thing really holding the Arduino platform back from being a complete star is the speed.

[EDIT]
smiley36.gif
Just answered my own question. Yes, Arduino Due is 84Mhz vs. 16Mhz, BUT it's 3.3v so would need a bunch of level shifting stuff, so not ideal.

guddler2016-01-19 21:40:04
 

Scott560

Newbie
Credits
15CR
Looks like everyone has been busy - i had considered breaking out the arduino to dump my moonbase eeproms if my reader wasn't going to play ball - but havent tried yet.

Andrew - seems like you are way ahead of me! Moonbase is still stuck in the garage with little work done so far :(
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
OK, question...

There is a section in the code for 'write-only' memory.

Outputs are a kind of write-only memory. At least on Asteroids anyway, there are no reads in the same locations, but of course outputs have their own definitions.

Asteroids has 3 outputs that are a bit "special" in so much as there is no bit mask, or rather it makes no difference WHAT you write to the address, it is the address select logic that triggers the event. /WDCLR, /DMAGO and /NOISERESET.

I've implemented these in the output region with a mask of 0xff and an invert mask also of 0xff.

Should they instead be defined as read-only memory?

I haven't really dug into what the ICT is actually doing with these definitions too much yet, that was something I was going to do when things don't do what I picture they should in my head. I guess I'm being lazy so feel free to tell me to RTFC
smiley4.gif
 

PaulSwan

ZZZ
Feedback
1 (100%)
Credits
1,117CR
That sounds like it should be an OUTPUT_REGION. You can leave the bitmasks 0x00 if the data is don't care. The write only RAM is intended for things like colour tables or bitmap memory that the CPU can write but not read back. It's treated as memory so that patterns can be conveniently written to it. OUTPUT_REGION is bits out of a byte for control ports.

Feel free to use the "Issues" tab on the GitHub repo :)

Paul.
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Cool. Will do.

All my parts have arrived today. My keypad doesn't work off the bat. I don't know if it's because it's a v1 or if it's a different make (I guess a clone, but who cloned who?)

Mine is a DFRobots v1. I did a quick test and got the analog values out, fudged the code and it worked so I know the keypad is ok. I just need to do something properly with it later.
 

Nes4life

Active member
vacBacker
Feedback
11 (100%)
Credits
1,113CR
Been away this week so done diddly-squat. Will contribute when I get back!
Did write a robust arduino manager to sit on top of ORSSerialManager (third party serial lib).
It'll indefinitely re-attempt to find an Arduino and connect to it. It spits out its current status so we can display it graphically like a traffic light etc. I'll chat with Guddler and build upon his existing work.
 

abaxas

Active member
Credits
124CR
Just a note... I have 9x keypads in stock.

£4 normal 2nd class £5 2nd class signed for.

Cheapest on ebay is £4.85 so I'll throw some other bits in aswell if people ask!
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
Nes4life said:
Bought this Arduino Mega, LCD and extras for £14 odd delivered. UK based. http://www.ebay.co.uk/ulk/itm/301812738833

I just received mine from them today, though I spent £3 less but didn't get the extras, if I'd seen it I'd probably gone for yours instead.

Got the mega and shield running on my mac with a test program, need to build the board tomorrow and start playing.

Will the 6809 code drive a 6802/08 as well? I have a few Williams sound boards out to fix and they would be a nice gentle start, much simpler than a CPU board.
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Well, I'm thwarted at the last hurdle! Finished mine, plugged it in and in an Atari board it blows the 5V fuse I have in my rig. Strangely, using a bootleg of the same game it doesn't pop the fuse but all the same, I suspect I've crimped the sodding ribbon cable up the wrong way or something which is a pain as that's the one thing I don't have any spare of. Will just have to make it a little shorter. I'm already a fair bit shorter as I'm using some I had left over from something else.

Will just have to sit here now with my meter and work out what I've done
smiley36.gif
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Need to have a fresh look at it tomorrow. I'm pretty sure it's all cabled up fine. 6502, pin 1 @ 14, 40 @ 15, gnd jumpers for pins 1 & 21 and they all beep out OK with no gnd shorts. So a bit odd why it's blowing fuses.

It did cross my mind if the Atari brick needs to be isolated from the mains but I've never had to do that before.
 
Top