nbla000 wrote:so you haven't a vic... :oops: :wink:
I think I still have one, but I have no idea where it is.
But using sd2iec or uIEC/SD or uIEC/CF may I update the firmware in someway ?
The source code is available (
http://www.sd2iec.de/cgi-bin/gitweb.cgi ... ;a=summary is a browser for the repository, if you click on "tree" you can browse the current revision and download a tgz file of it with the "snapshot" link on that page), patches can be sent to the mail address in the README.
I started the sd2iec "project"...
The firmware or the hardware project ?
It's a bit complicated, so I'll better tell the long version of the story: In 2007 someone (Shadowolf) on the german forum64.de created a very small PCB for LarsP's MMC2IEC, suitable for integration into a C64DTV. After a few revisions he offered ~100 all-parts-included kits to people on the forum, I got two of those. It was obvious after a few tests that the MMC2IEC firmware was quite "lacking" in features and compatibility and improving those points would mean large-scale restructuring of its source code.
So I just went ahead and dropped almost all of it (except for low-level SD card access which was changed so much to improve card compatibility that it doesn't look very similiar to the original today), grabbed a FAT library that offered a reasonable compromise between features and space requirements and started to write new IEC code based on a 1571 rom listing. That software was called sd2iec and originally ran only on MMC2IEC hardware.
Some time later it was obvious that the demand for the hardware kits was still high but instead of just doing another run of the same PCB Shadowolf decided to address a few issues of the original MMC2IEC design - the drive strength on the IEC bus was quite low which limited the number of Commodore drives connected in parallel, there was no crystal[1] and you could already tell that sd2iec would outgrow the 32K rom/2K ram controller used by MMC2IEC soon. The redesigned boards were called SD2IEC because they wouldn't run the MMC2IEC code anymore. The boards offered by NKC are based on those and as far as I know Shadowolf had some input into their layout (he's very pedantic about circuit layout best practices...).
Jim Brain joined the software side in January 2008 and contributed (among lots of other things) patches to run sd2iec on his uIEC design as well as long file name support for the FAT library. Without him the code probably wouldn't support multiple partitions (nobody ever partitions their SD cards, but it seems to be popular for IDE drives) and other things I can't remember right now.
Other people that were involved are M. Kiesel who offered an AVR implementation of the JiffyDos byte/block transmission code when I couldn't figure out the 1541 rom disassembly (although I rewrote his version to save space...) and Thomas Giesel who did the Final Cartridge III fastloader/-saver and Dreamload reimplementations.
[1] The internal oscillator of the controller is good enough for standard IEC and some turbo protocols, but the first speeder I selected almost at random requires a clock precision so high that we've had someone complain about corrupted files with it because he had used the wrong loading capacitors for the crystal on his perfboard version of the circuit.
My EasyLoad fastload code version is just for the Vic-20 (both PAL and NTSC) and uses 2 different codes for 154x/157x drives (originally made by Marko Mäkelä) and for 1581 drives a little bit efficient (originally made by Pasi Ojala).
Does it use the same drive-side code for both PAL and NTSC?
I wish at least change this behaviour because i need to turn OFF the turbo to use unsupported drives.
I still recommend UI, that is implemented by more "alternative drives" than M-R and even if it isn't you'll get something from the error channel that won't match any known drive signatures.
The AR6 logic is perfect for me and if I implement it, now it works with uIEC/sd2iec but do you think that in the future if you implement the EasyLoad emulation on the sd2iec firmware you may leave the AR6 hardcoded code too ?
As said before, everything returned by M-R can change in future firmware revisions. If you rely on it and your code breaks the best you can expect from me is a "I told you so" because I see it only as a way to increase compatibility with legacy programs but not current projects that could implement more reliable detection methods.
Move drive code with "M-W" command (sd2iec firmware simply ignore this command right ?)
Almost - if you try to use M-W to write to address 119 (decimal) it is interpreted as an attempt to change the device address as 119/120 are the two bytes you need to write to on a 1541 to temporarily change the address.
All other writes are checksummed and discarded, this way we know which speeder code was uploaded when a M-E is received and can call the reimplementation if the checksum matches a known one. Nothing that is reimplemented has used U[2-6] yet, but that could be handled the same way as M-E.