Having completed phase 3 of Media Player 128, the JiffyDOS "Proof of Concept" (or mis-concept, depending on your opinion of low video frame rates!), I now move onto phase 4, which is implementing fast-serial protocol in the SD2IEC firmware...
I only have a uIEC/SD to test this with, but as I understand the same firmware is used with MMC2IEC... also my main reason for this effort is for much improved Media Player performance, but it should benefit the C128 community in general... in particular CP/M should be possible at "fast" 1571/81 speeds instead of the pathetic 1541 speeds...
So I first went to the source and got SD2IEC firmware. Next, for the Atmel compilation, I went to the vendor. Unfortunately, the "C Tool Chain" (as they call it) only works on Win NT and not Win 9X....
Really bizarre if you ask me! I see no reason why I can't compile source code with DOS (or CP/M if I wanted to do so)... well if the vendor sucks, go to the open-source community! WinAVR was my next option and it runs fine on both Win 9X and Win NT.... (see notes below)
One important thing to note is that if you use Win 9X (95/98/ME) that you need to edit the Makefile around line 230 and change
to
Another important thing is that neither WinAVR nor the uIEC source code includes "CRCGEN-NEW" binary. This is critical for updating the firmware of the uIEC (maybe MMC2IEC also). It appends a CRC checksum to the binary so the firmware will accept and update the EEPROM. I found a copy here, but haven't tested it yet. (The last link seems to be the official SD2IEC "site")
Also strange about WinAVR is it seems to (re)install a complete POSIX-style build environment. I have been using Cygwin and MySys for several years now to build Unix / Linux style binaries for Windows, so don't really see why I'd need to install another copy of cygwin.dll and all the other binaries...
Anyway, an important thing to note about the WinAVR installer is that it semi-assumes your OS is installed on drive C. If it is not installed on drive C, it will set AUTOEXEC.BAT on drive D (or other non-C drive) but Windows will only read AUTOEXEC.BAT from the boot drive (thus the drive D file is ignored).
I've come to expect this behavior with my hexadeci-boot system, but thought it would important to mention for others without the benefit of experience.
Anyway, I just thought toss out my experiences thus far and ask for any/all opinions regarding firmware builds for uIEC / MMC before I brick my own hardware... thanks!
About the code... if the above isn't clear, let me state it plainly... I'm working on the code but haven't tested it yet. Right now I have uIEC to output fast-serial using a "rigid" software loop like used with JiffyDOS / Final Cartridge 3. This isn't the optimal way and does not support fast-serial input yet... that would require re-configuring the hardware... not something I'm up to yet...
The #1 priority is to implement Burst-Load (for MP 128) but would also like to implement Inquire Disk, Log Disk, Sector Read, and Sector Write (for CP/M etc.). So like I said, the code is coming along, but would like some feedback before trying to burn my device...
I only have a uIEC/SD to test this with, but as I understand the same firmware is used with MMC2IEC... also my main reason for this effort is for much improved Media Player performance, but it should benefit the C128 community in general... in particular CP/M should be possible at "fast" 1571/81 speeds instead of the pathetic 1541 speeds...
So I first went to the source and got SD2IEC firmware. Next, for the Atmel compilation, I went to the vendor. Unfortunately, the "C Tool Chain" (as they call it) only works on Win NT and not Win 9X....
Really bizarre if you ask me! I see no reason why I can't compile source code with DOS (or CP/M if I wanted to do so)... well if the vendor sucks, go to the open-source community! WinAVR was my next option and it runs fine on both Win 9X and Win NT.... (see notes below)
One important thing to note is that if you use Win 9X (95/98/ME) that you need to edit the Makefile around line 230 and change
WINSHELL = CMD
to
WINSHELL = COMMAND
Another important thing is that neither WinAVR nor the uIEC source code includes "CRCGEN-NEW" binary. This is critical for updating the firmware of the uIEC (maybe MMC2IEC also). It appends a CRC checksum to the binary so the firmware will accept and update the EEPROM. I found a copy here, but haven't tested it yet. (The last link seems to be the official SD2IEC "site")
Also strange about WinAVR is it seems to (re)install a complete POSIX-style build environment. I have been using Cygwin and MySys for several years now to build Unix / Linux style binaries for Windows, so don't really see why I'd need to install another copy of cygwin.dll and all the other binaries...
Anyway, an important thing to note about the WinAVR installer is that it semi-assumes your OS is installed on drive C. If it is not installed on drive C, it will set AUTOEXEC.BAT on drive D (or other non-C drive) but Windows will only read AUTOEXEC.BAT from the boot drive (thus the drive D file is ignored).
I've come to expect this behavior with my hexadeci-boot system, but thought it would important to mention for others without the benefit of experience.
Anyway, I just thought toss out my experiences thus far and ask for any/all opinions regarding firmware builds for uIEC / MMC before I brick my own hardware... thanks!
About the code... if the above isn't clear, let me state it plainly... I'm working on the code but haven't tested it yet. Right now I have uIEC to output fast-serial using a "rigid" software loop like used with JiffyDOS / Final Cartridge 3. This isn't the optimal way and does not support fast-serial input yet... that would require re-configuring the hardware... not something I'm up to yet...
The #1 priority is to implement Burst-Load (for MP 128) but would also like to implement Inquire Disk, Log Disk, Sector Read, and Sector Write (for CP/M etc.). So like I said, the code is coming along, but would like some feedback before trying to burn my device...