nice to hear from you.
I knew about the SR even as I was hacking the bitbanged board together. I
was curious about using it but its clocking arrangement isn't compatible
with SPI mode 0, hence Martin M's arrangement. I'm familiar with MMBeeb, I
build them for people to make a little component money. His SPI code does
indeed rely on the fact that you can get away with single duplex. MMC in SPI
mode doesn't support multi-block transfers, where you send stop commands
during data reception, as far as I can see from the literature. I've been
known to be wrong though ;) Often :)
The PIC interface was born out of the fact that I want to make I/Fs for a
couple of friends who don't have the 6522 expansion in their Atoms (!).
Rather than source the socketry and chips, one of which now is completely
unavailable for a reasonable price, I thought I'd like to do something with
PL8. I started off with some decoding and an ls299 but then read a thread on
stairway to hell about someone interfacing a PIC in the BBC's speech
socket... It sounded fun :) Plus I will be adding extra functionality by
reading the state of the address lines when accepting data, I was thinking
of having the PIC decode PS2 mouse signals, handling serial comms and of
course the MMC transfers. So the PIC isn't the 1st attempt, rather a result
of all my work to date. I'm just starting out with these chips'n'things so
I'm feeling my way as I go.
Thanks for the links, there's some new stuff there for me.
/Charlie
faster or just the same??
Heh yes, you're right :) I wonder if some of the problems are caused by
cracked tracks. Temperature inflicted expansion and contraction from the
years in the loft?
>Bite the bullet! Remove them, fit new electrolytics and either fit
>turned-pin sockets or even better just solder chips directly
Hmm. That's definitely worth considering. New caps. Like I said before - the
sockets in my Atom are rubbish. You can remove the chips with your
fingertips. That's not good...
>Send it to me and I'll do it for you! :-)
Hehe I might have an iss.5 coming (oh please, please!) that requires some
major TLC - would you still be interested??!
> Maybe you can just use your old 1 MHz Atoms for the few badly written
> games that give you a problem.
I realised the moment I posted that question just how stupid it was :)
Mostly it would just be a question of waiting at the right time.. Should be
pretty easy to hack them if I was bothered. Mainly I'm not, I like tinkering
and seeing the programs running. I never actually _play_ them.
>There is an article on the Atom Review CD in Atom News called 1.8 mHz
>autoswitch from Peter Ehrlich which explains the theory.
I have the CD - I bought a copy from Henk. There's some great stuff on
there. I think I need to learn Dutch though, the online translators aren't
that meaningful in most cases :)
> In well designed code I would expect to see the hardware-specific code
> in its own module so that people only have to mod that module for
> different hardware e.g. changing from a bit-bashed SPI port to a
> hardware assisted SPI port.
Indeed, my firmware took about 30 seconds to convert for my new interface.
The hardware dependent code was separated and has a clean interface. Luckily
for sd/mmc you only need card initialisation and byte transfer functions.
The new firmware detects which interface is available, defaulting to the
fastest :) You can switch manually, naturally.
I've been a professional programmer since 1989, working in games and
multimedia. It's only in the last 5 years that I've 'grown up' and work in a
proper industry ;)
>The solution was to check the processor speed, by writing values in
>memory between 2 vsync signals.
That's a nice solution.
OK so I'm being sold on 1.79mhz no-snow, all-sram mod. What needs doing,
step by step?
-C
I'd like to come up with a standard for 'drivers' (being too strong a word
but it fits) for the devices. That way I can use your firmware with my
boards, and vice versa.
-C
It's a sub-section of 'retro reunited' - a gaming event held in the north of
England. The AtoClone is the work of Phill Harvey-Smith, a chap I met at the
last event which was the Retro Computer Museum Open Day.
As for mad expansions, I'm enjoying watching this but I'm going to remain
relatively 'pure'; any add-ons are going to have to be totally
non-destructive and suitable for bolting on to (nearly) any Atom that comes
my way. Hence the unsatisfactory but generic VIA mmc solution, and the PL8
version for unexpanded Atoms.
Having said that, if I can get the Iss.5 I have my mind on then it will be a
perfect candidate for stripping back to the metal...
/C
Indeed, my initial reason for starting the AtomClone was that I didn't
have an Atom, and they didn't come up very often on ebay, and where
expensive & hard to win when they did. I wanted to produce something
that was a copy that would be as close to the original as possible,
however minimizing component count is always good.
> The CPLD approach sets the challenge of designing with fewer
> resources.
>
> I have some 8K RAM chips for video memory if anyone wants them.
:) Well I have a truck load of 16K 32K and some 64K and 128K static ram
chips rescued from old 386/486/pentium boards :)
>> Zarlink crosspoint switch,
>
> Are those easy/cheap to get?
Not too hard, I got mine here :-
http://www.futurlec.com/ICSFZarlink.shtml
The one I used was an MT8816AE, originally bought them to make a PS/2 to
Dragon/CoCo keyboard interface, but also usefull for other retro
computers that expect a matrix.
> I saw a generic PS/2 to virtual matrix converter that used dual-port
> RAM.
> That might be equally uncommon but could be implemented with ordinary
> RAM (two 2114s?) and some LS157 chips to multiplex the address lines.
You could I suppose, or even a single 6116 1Kx8 + mux, but the MT8816 is
only $4.50, that's a couple of quid in Łs.....
>> I could also see this board maybe hosting the PIC based MMC interface
>> that Charlie is developing,
>> though if done in the correct way I may be able to use the already
>> existing AVR chip to perform a
>> similar function, as I have enough spare I/O lines, and could use a
>> couple of LS latches to interface
>> to the 6502.
>
> Yes, I think it makes sense to have the micro-controller do the MMC
> and PS/2 work.
> And any other odd jobs not done by the Atom already.
Indeed and as Charlie's code is well enough written it should be easy
enough to adapt to this setup, I could probably also make it use the
same I/O locations which would probably mean very little re-write needed.
> I suspect the microcontroller could do a lot more of the MMC work and
> faster.
> The AVR and PIC probably have lots of existing MMC/SD code written for
> them, far than the 6502.
Yes indeed, something I keep thinking about implementing for the Dragon,
but would be aplicable to a load of micros of that era, would be an AVR
that uses one of the FAT libraries to read and write image files but
present them to the host as if it where reading from disk, as I believe
MMBeeb does. The advantage of doing it this way is that the AVR can deal
with block sise differences etc, and could be used to overcome
restrictions like having to use special unfragmented files etc, which
would make the whole thing much more easily used.
>> http://www.stairwaytohell.com/sthforums/viewtopic.php?f=3&t=2371
>
> I could not find a link to an image there.
Odd, the image is at the bottom of the first post, displays
automatically when I click on the link.....
Cheers.
Phill.
--
Phill Harvey-Smith, Programmer, Hardware hacker, and general eccentric !
"You can twist perceptions, but reality won't budge" -- Rush.
Cheers, though the board is a bit scrappy, and home made looking close
up, but then it works, perhaps I'm too much of a perfectionist :)
> I have a question for all members: Is it possible in Basic or C to
> write/read a sector from a SD-card?
[Snip!]
> Copying images to the SD-card can easily be done with an Atom with DOS
> controller, but when you do not have a disk controller installed you
> need a PC with a special program to read-write SD-card sectors. To get
> a disk image will not be a problem because most emulators use disk
> image files. The PC-program has to read the disk image file and save
> it to the SD-card.
> Can this be done?
Yep should be able to be done, though how you go about it depends on
your operating system. I'll asume some form of NT based Windows for now
(NT/2K/XP etc). Basically you have to open a file to the device using
windows system calls and then you can just read and write blocks of 512
bytes from the disk. I've not done this in C, but have done it in
Delphi, but the principle should be much the same.
You can even use this method to make images of single density Atom/BBC
disks if your floppy controler supports that, however to do this you
will need fdrawcmd from : http://simonowen.com/fdrawcmd/
If your OS is Linux (or some other unixlike os), then you can just use
stdio to open /dev/whatever_your_card_is and then just use fread/fwrite.
Absolutely. My 1st sector was read from Atom basic. It's a very simple
protocol based on commands.
> Copying images to the SD-card can easily be done with an Atom with DOS
> controller, but when you do not have a disk controller installed you
> need a PC with a special program to read-write SD-card sectors. To get
> a disk image will not be a problem because most emulators use disk
> image files. The PC-program has to read the disk image file and save
> it to the SD-card.
> Can this be done?
Yes. I have written a program which dumps a card for use with an emulator.
Writing is simple too. Linux would be better than windows as the 'simple'
win32 api has sector 0 mapped to the 1st sector of the active partition. MMC
access gives you absolute sector 0. Simple enough to code around, though.
C
Humm odd, I'll check it on my Linux system later, but it should be ok,
it's justa jpg, what browser where you using on Linux ?
> Anyway, now that I see it, I applaud it.
Cheers. The latest version is a bit neater, as I now have a box for it :)
> Where did you buy the 6847 chip?
Well, I had a couple of spares as one of my other retro passions is
Dragons/CoCos, which also use the 6847, but I do remember getting some
spares from http://www.arcadecomponents.com (I think).
It's a US auction. The price seems a bit high, though how much are hens
teeth nowadays? I have some relatives coming over from the states next
month, which would save some postage & customs involvement.
A friend of mine bought a replacement from some fella in Bulgaria. I have
the envelope here if anyone can speak bulgarian and would like his phone
number..! I can probably get his seller ID.
I was wondering at the time whether a stockpile of these would be
worthwhile...
/C
Humm works ok here on my gateway box SuSE 10.0, Firefox 2.0.10.0
>> The latest version is a bit neater, as I now have a box for it :)
>
> Show us! :-)
Ok try here :-
http://protein.bio.warwick.ac.uk/~phillhs/Atom/
First 3 are of the AtomClone, I have on order a box the same size but
higher which should allow me to get the keyboard PCB in too....
The last 2 are an internal RAM replacement (maxes out bottom ram to 32K,
but with a hole in $0A00-$0AFF incase you have a disk interface), the
flash ROM on there is banked into the $A000-$AFFF area by writing to
$BFFF, this emulates the ROMbox emulated by mess.
The above has cirtainly made my second Atom run a little better, it's
stable now, was completely flakey with the 2114s, if only it had a fully
working keyboard, it's an issue 4, and it looks like the plastic was
attacked with a soldering iron by a previous owner...
The Issue 5 is fine tho...and the keyboard is better :)
>> Well, I had a couple of spares as one of my other retro passions is
>> Dragons/CoCos, which also use the 6847,
>
>> http://www.arcadecomponents.com
>
> Yes, I'd found Arcade Components through Google but this and a lot of
> their items are "on back order" but I'd guess they just don't have any
> and won't order any until they get some interest. It begs the question
> "Where do they order them from?".
>
> There are a lot of retro components I'd buy but all the interesting
> ones are not in stock:
> http://www.arcadecomponents.com/catalog/item/2243545/1687607.htm
> (6847)
> 65C22,65C02,6809E,68B09E,POKEY,TIA, Sinclair ZX81 ULA.
You do know that you can get modern replacements for the 65C02 and 65C22
made by the western design centre ? I got mine from Coltec Ltd, just
email col...@aol.com and ask for a quote.....
Humm I think I had the last ZX81 ULAs.. to repair a couple of dead ones
I had :)
Jameco have some 6809E/68B09E :-
I have bought from them in the past and they where ok to deal with...
> 68B09, Apple 344-0041 IWM (Disk Controller), ANTIC, CTIA.
>
> I don't know exact figures but I'd guess most of their hard to get
> items are not in stock.
> I can get the easy to get items elsewhere.
That would figure, I guess they're hard to get for everyone.
> The 6847 supply is almost dry so it makes my work cloning the logic
> worth while.
> If I produce replacements, there are only about two significant
> machines that used it (the Atom and the CoCo) so might as well clone
> as much of them as practical. The Atom has been done, CoCo should not
> be hard - mainly a change of CPU and firmware.
Yeah that should be doable I think someone on the CoCo mailing list has
done a CoCo3 in FPGA, now if there where a modern replacement for the
SAM and the GIME that would be really cool :)
>
> The case looks like mine.
> I think the Eurocard -compatible extrusions are great.
Indeed, cirtainly will make it more um 'transportable', and less prone
to having coffee spit on it :)
>> The last 2 are an internal RAM replacement
>
> Nice. I would have had holes for a 0.6" pitch 32K RAM as well, but I
> think one could get round that by pigy backing the Flash ROM.
That should be easily possible, to add holes for a 0.6, and if you do
it right you only need 3 rows of pins. However in this case I was
trying to keep the width of the board down to the width of a Eurocard,
so that I could get two onto a Eurocard, besides I have many more 0.3"
rams.... 0.6" would however allow me to use a FERAM...turn the machine
on, type old and restore the last in memory program.....
>> completely flakey with the 2114s
>
> It's all those socket contacts.
Almost cirtainly, the 2114s where prety loose, and I think the sockets
Acorn used where a bit crap :(
>> You do know that you can get modern replacements for the 65C02 and 65C22
>> made by the western design centre ?
>
> Yes, I got some chips from Mike Naberezny of 6502.org
Ahh ok.
>> Yeah that should be doable I think someone on the CoCo mailing list has
>> done a CoCo3 in FPGA,
>
> Someone has got a 6809 in VHDL - is that in the design as well?
I can't remember if it's VHDL or Verilog, but yes IIRC it's basically
the whole machine.
> I try to strike a balance - FPGA chips big enough to support the VHDL
> 6809/68000 tend to be significantly more expensive than CPU chips one
> can still buy.
Indeed, and harder to work with, as for the most part they are fine
pitch surface mount components.
>> a modern replacement for the
>> SAM and the GIME that would be really cool :)
>
> I'll check it for feasibility.
Cool, looking at the SAM data sheet I have often thought it shouldn't
be too hard to replicate in Verilog or VHDL, after all it's really
just an intelegent bunch of counters. The GIME of course is more
complex than that as it contains the functionality of both the SAM and
the VDG, plus some additional logic too.
Cheers.
Phill.
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
>
> What's needed in order to do the most basic 1.67Mhz/nosnow/SRAM mod?
Yeah, I'm interested in doing the nosnow mod too, could add it to my
already existing SRAM/Rombox board.
I would guess that the nosnow, would involve sourcing the PHI clock
from a divided down video clock ?