Adapted from Arduino Nut Blog - Lash-up! , dated 16 September 2008
see also http://arduinonut.blogspot.com/search/label/acorn atom Blog by Charlie Robson
Lash-up!
|
What a mess! But it works - sometimes :) All that stray capacitance - well someone's got to give it a home.
This is what I'm forced to do because the Stag PP39 EPROM programmer that I was so generously given by a fellow
FreeCycler works well, but for its serial connection. Ho hum. Wanting to burn an
EPROM to hold the driver code for the Atom MMC interface was the
necessity that was the mother of this frightful invention. In a fit of
pique I had the idea that I should create a 3-step process: Burn my
code into an EEPROM, transfer this to the programmer's buffer, and
thence into an EPROM! Why not just use the EEPROM for my project? An
astute question, esteemed reader. Well the type of EPROM expected by the
Atom is an olde-fashioned marque with a subtly different pin-out to the
more contemporary (read: standard) 27x series. Luckily the PP39 can
burn the 2532
that was required. Even luckier I suppose is the fact that I had one of
these! An adapter board can be made to facilitate the harmonious
interfacing of the disparate breeds, but this would involve less
lashing-up, you see? And we all need a jolly good lashing from time to
time. |
I digress. What you see before you (or more correctly above
is an ls299 accompanied by a brace of ls164 shift registers. These in
turn are connected to an 8k Atmel EEPROM. In the driving seat you see
the Arduino and - naturally - a poor but functional MMC interface. The
164s are in charge of address generation, and the 299 has bi-directional
data line duties. It's a simple and effective design which I have
referenced before.
I've developed the Atom MMC driver in
assembler, naturally. This time I opted for cross assembly. If you saw
the code attached to my previous post (my - is that the time?) you may
well understand why - the inline assembler is hard work with its terse
labelling syntax. I develop and assemble on a PC, using a custom Visual
Studio workspace and a freeware 6502 assembler. The resulting binary is
debugged as far as possible using Wouter Ras' brilliant though tricksy
DOS Atom emulator.
When I'm happy with the code it gets put on the MMC card and burned to
the EEPROM using a subtle combination of swearing, crossed fingers and
sacrificial chickens. The burning process needs to be attempted a fair
number of times (the stray capacitance, bless) until the verify step
passes and I can be sure the lash-up has worked. Once transferred to the
programmer, the code fizzles its way onto a freshly UV-cooked EPROM and
then into its warm and welcoming bed - Socket IC24. And so to work:
Presenting - the MMC adapter I built to fit on the venerable machine's expansion port, as visible here.
|
And in situ:
|
Goodness - that is
the time! |
Two and a half months this post has taken me! Either that or
my post-Sachertorte coma was deeper than usual... Whatever, forgive me. I
am off to play Atom Invaders - which now loads in under 3 seconds, a
far cry from the original 5 minutes of the tape version!
Posted by Sir Morris
|
|
|