Releases: Larswad/uno2iec
Dependencies to qexterserialport dropped and better cross platform support
CHANGE: Dropped need for QextSerialPort, now using Qt's native QSerialPort library.
CHANGE: Arduino MEGA variants use the SECOND serial port for communication leaving the USB port free for debugging.
FIX: uchar_prog definition obsoleted, changed to PROGMEM.
FIX: Fixed conditional compilation so that it is done for all APPLE-based OSes instead of just OSX.
FIX: Compilation now working again under Windows, Linux AND with multicore build.
Improved user interface, Saving support, lots of bugs fixed and optimization.
NEW: Saving support in 1541 normal speed. NOTE: Native FS (.PRG) and .P00 formats only for now. D64 (and perhaps .T64) will come later on.
CHG: Changed much on the UI. Nice icons for all buttons. Separate configuration dialog from main window. Now using Qt Theming, choosing best fit depending on OS. Event log is now dockable and can be hidden or detached. Progress bar now for loading files. The directory image listing is now displayed as a real CBM, can be set to look either like a c64, c128 (40/80 modes), a Plus/4 or a VIC20. Fonts are embedded within application and registers themselves upon application start. Refresh button for file list. Directories in bold font.
FIX: The sprintf formatting for initial handshake string didn't work for some Arduino Due. Thanks to Lemon64 users for seeing this.
NEW: Some work has been done on error channel and started work on command channel. In progress. Implemented Initialize, Scratch, Rename works on command channel, (CD'ing partially, still in progress). NOTE: None of this implemented in D64 yet though ("general" handling for mentions operations works and Native FS implements all file system operations).
NEW: Much work started on M2I support. Not finished so its not in a usable state, still in progress.
NEW: Settings for file filters and whether directories should be visible or not.
NEW: Supporting configuration of Arduino Bluetooth device making the whole project go wireless ! See Readme for more info. The whole thing can be powered using the cassette port.
FIX: A LOT of memory optimization on the Arduino side. Reduced ram usage to fraction of earlier version. Using PGM memory for static strings made a lot of difference!
NEW: Support for RESET line. Conditional compiling define whether this line is soldered or not.
FIX: Build location of intermediate files on PC side now much better in .PRO file."
FIX: Serial optimization for file reading from CBM by keeping interrupts enabled and issuing read before doing the transfer to CBM. This is not enabled by default just to be sure, but it can be enabled in global_defines.h header.
FIX: Size calculation of file and proper transfer of file size to Arduino so that progress can be visualized on both sides.
Improved serial handling, UI reflection of image mounting.
Faster serial handling. The arduino receives a range of bytes instead of a single byte at a time. Should now be as fast as a real 1541, or at least close to. More optimizations on serial handling can be done further on.
Added an about dialog. It will automatically show up every time a new version is released. There is also an application icon looking like a 1541 and a version resource added for windows targets. A C64 truetype font is embedded to the application for some UI controls like the image directory list.
Some source and README/NOTES commenting to shape up the things that is left to do.
Added skeleton class for .x00 (e.g. .P00) formats. This is just a placeholder for the code to be added further on.
Notification interface added so that UI can react to and reflect progress and mounting changes.
Displays current mounted image content, even automatically when CBM does the operations.
Some rearrangement of UI controls for better screen alignment and adaptation to windows resizing.
Realized that lots and lots of things are still to fix and to complete even before considering turbo support! Main focus right now is to get the most basic features of 1541 working, like the error channel and the saving support and at the same time finalize the UI on the host side. Some crashes and strange behaviors has been observed from time to time as well.
The D64 and T64 support is also very weak, no proper size checking and BAM handling implemented.
Fixed some bugs, improved persistency and pin config
The first alpha release had sadly enough a bug in the log feature that caused arduino and host to come out of sync on the serial interface.
This version has that bug fixed, but also some additional features like persistency of the pin configuration and device id. The parameters are negotiated upon connection.
More info on this release will come. This is a fast tag just to get it out.
Initial working alpha release
Tested on Windows 7 and Raspberry Pi as hosts together with Arduino Uno.
Native file system (FAT, NTFS, EXTxx, ...), D64, T64 support for:
Loading
Directory,
Media info
Supports information using Max7219 powered LED matrix. (see README.TXT!)
Move up to root using LOAD"(Two arrows)",8 (like mmc2iec)
Get media info for current image / fs using: LOAD"!!",8
Head points TODO :
Finalize:
saving support
M2I / .P00 support (much code already in place)
Full command channel support (might work, not really tested)
Baud rate changing and persistency (negotiating speed possible in future?)
Port speed changing with persistency
Arduino pin configuration with persistency
Viewing current mounted image in the QTreeView
The current mounted image should be updated when CBM changes it.
Optimize serial protocol for transferring more than one byte per request and also support ring buffer (use softserial on arduino?).
Future support for turboloaders.
The proof: C64 loading some various stuff from the Arduino:
The Max7219 showing progress while loading a game from a D64 image:
Here it is, Bombjack running. It works!
Now the led matrix scrolls the name of the loaded image:
Here is the scroller again. It uses the old famous "parallax" font from the game with that name:
A screenshot of the Qt based host application, here running on Windows 7, but it works just fine running on the Raspberry Pi: