| |
Flavioweb
Registered: Nov 2011 Posts: 463 |
Arduino-based 1541 emulator. Possible?
Talking about Arduino with an hw-hacker father of a friend, i started to thinking about on how to build a full-compatible 1541 clone (6510, cia, ram, etc...) using Arduino hw.
I found this 6502 emulator:
http://www.df.lth.se/~richard/6502emu2.pde
May be possible to build a full sd card reader fully 1541 compatible (for low level drive programming)? |
|
... 28 posts hidden. Click here to view all posts.... |
| |
Skoe Account closed
Registered: Jan 2008 Posts: 34 |
I started to do it with an XMOS at about 400 MIPS shared among 8 Hardware-Threads some years ago (This one: XS1-L6A-64-TQ48). It was a mixture of C Code and Assembly. The I/O-Timing was sub-cycle accurate (+/- 100 ns AFAIR, compared with a logic analyzer to the real thing) and many fast loaders worked already. But only the ones that used the subset of the VIAs I implemented ;)
When I started another refactoring of my code I lost the patience and suspended the project - possibly forever.
What I can say today: I used less than 50% of the processing power and the code wasn't well optimized. So it is quite sure that it is doable on that controller. But I am sure it is not possible on < 100 MIPS with a compatibility of e.g. a 1541U. Today I think the cheapest solution that would be no pain in the ass to implement (compared to the evilness of sub-µs realtime on a controller) with > 99% compatibility could be based on a low-cost ARM controller (e.g. LPC13xx) for high-level tasks and a very small FPGA for CPU/VIAs/Head etc.
But as there is the 1541U/Chameleon for high compatibility and the sd2iec/arm2iec for low cost I'm not interested in another solution anymore. |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
Quoting Groepazif you just want to hear that it can be done, easily - ask jim drew on lemon =)
Trying to ignore that guy, he uses to claim having done all sorts of drive feats but _always_ fails to deliver code or details, taking forever to find lost source codes etc. |
| |
Moloch
Registered: Jan 2002 Posts: 2928 |
Quote: Quoting Groepazif you just want to hear that it can be done, easily - ask jim drew on lemon =)
Trying to ignore that guy, he uses to claim having done all sorts of drive feats but _always_ fails to deliver code or details, taking forever to find lost source codes etc.
yes, thats the reason groepaz left that smiley :D
that guy can't be believed for anything |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
Would it be possible on a Raspberry Pi? |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
The problem with bigger systems like the Raspberry Pi is that you have to jump through a few hoops to get reliable real-time behaviour. The main issues are the cache and variable timing due to DRAM access. The ARM CPUs used though should have scratchpad memory in the order of 32 or so kB for fast deterministic access. Might be possible, but it won't be easy. There might be more surprises on the GPIO path. Good idea though to suggest Raspberry Pi. |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
and i must repeat myself: you need interface to C64. usb/par port, else forget this! |
| |
WVL
Registered: Mar 2002 Posts: 902 |
The new beaglebone would probably be better, but realtime stuff will still be a problem...
Better stick to a combination of an AVR/Atmel/whatever cpu for high-level non-realtime stuff and an FPGA for the realtime hardware emulation imho.. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
just wait for jim to prove you wrong, all of you! |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: and i must repeat myself: you need interface to C64. usb/par port, else forget this!
Most (all) embedded platforms have GPIOs, you need 3 (data, clk, atn) + some buffers and level converters. Now drop it, compared to timing problems HW interfacing is nothing. |
| |
CreaMD
Registered: Dec 2001 Posts: 3057 |
So if I get it right, for emulation you need precisely definable logic with exact controllable timing at all times. And this is the reason why 1541 emulation was never mad on PC, because there is no possibility to have 100% control over timing, even when booting into dos (coz every machine ha different specs and speeds of ram.. and various idiotic processor hacks for instruction fetching and all that crap.
hm? |
Previous - 1 | 2 | 3 | 4 - Next |