frankbuss / kerberos Goto Github PK
View Code? Open in Web Editor NEWC64/C128 MIDI flash interface
C64/C128 MIDI flash interface
MC6850 processes a constant output of 0xFE with this device.
Some more info here: https://www.vguitarforums.com/smf/index.php?topic=22712.0
It is called "Active Sense"
I can't flash anything to the device, because flashing corrupts while writing(and maybe it is related, maybe not)
Seems like Kerberos is for cheaper USB-MIDI devices ;)
When using the FileBrowser from the standard flash image to start SidWizard (which is a patched version of SidWizard to use the trampoline functions for the Cartridge Disk instead of the KERNAL load functions, because of the HIRAM problem), no directory is listed on a C128, but works on a C64. It should work without patches, because FileBrowser has not the HIRAM problem.
Feature request to compile the Kerberos App for Linux. would be best to bundle the Qt libraries, or static link. Someone started already, see this branch: https://github.com/igorangst/kerberos/tree/linux-build
Commodore-Shift switches upper/lower character, should be disabled. And it is possible to exit the program with then uninitialized BASIC with run-stop/restore, which should be disabled, too.
Feature request to provide the Kerberos App for Mac OS X before version 10.7, which is required for Qt 5. One idea is to use Qt 4.8. Someone started already and looks like it compiles with the patch you can see below. But needs some more work to use the two resources as external files and for the deployment script.
diff --git a/qt/mainwindow.cpp b/qt/mainwindow.cpp
index 204d8e4..84673b2 100644
--- a/qt/mainwindow.cpp
+++ b/qt/mainwindow.cpp
@@ -1670,11 +1670,21 @@ void MainWindow::openD64File(QString filename)
d64DirectoryTableView->setModel(model);
d64DirectoryTableView->verticalHeader()->hide();
d64DirectoryTableView->resizeColumnsToContents();
+#ifdef USE_QT5
d64DirectoryTableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+#else
+ d64DirectoryTableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
+#endif
d64DirectoryTableView->setSelectionBehavior(QAbstractItemView::SelectRows);
+#ifdef USE_QT5
d64DirectoryTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
d64DirectoryTableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
d64DirectoryTableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
+#else
+ d64DirectoryTableView->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents);
+ d64DirectoryTableView->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
+ d64DirectoryTableView->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
+#endif
// show title and free blocks
d64DiskName->setText(m_localD64Disk.getDirectoryTitle());
@@ -1718,11 +1728,21 @@ void MainWindow::onReadDirectory()
remoteDirectoryTableView->setModel(model);
remoteDirectoryTableView->verticalHeader()->hide();
remoteDirectoryTableView->resizeColumnsToContents();
+#ifdef USE_QT5
remoteDirectoryTableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+#else
+ remoteDirectoryTableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
+#endif
remoteDirectoryTableView->setSelectionBehavior(QAbstractItemView::SelectRows);
+#ifdef USE_QT5
remoteDirectoryTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
remoteDirectoryTableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
remoteDirectoryTableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
+#else
+ remoteDirectoryTableView->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents);
+ remoteDirectoryTableView->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
+ remoteDirectoryTableView->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
+#endif
// show title and free blocks
remoteDiskName->setText(m_remoteD64Disk.getDirectoryTitle());
This feature is currently missing. It should be possible to write to a Cartridge Disk as if it were a floppy disk, with caching for flash blocks in the SRAM on the cartridge (because the floppy writes 256 byte blocks, but the flash needs to delete whole 4k sectors if some bytes need to be written).
Some PC MIDI interfaces merges MIDI messages with the "running status" concept (see 951d2a6 for a workaround in the Kerberos App application). Would be good to implement the running status concept in the menu transfer, because then the transfer is faster and the workaround in the Kerberos App can be removed.
Maybe because of the note-off messages Windows sends on closing the MIDI interface.
CY61228EV30 in Eagle project is a non-existing part, which is obviously CY62128EV30 - anyway I hope it will help someone to save time while googling parts.
Packing the Kerberos App with a standard installer, as usual on Windows. Maybe Nullsoft installer or the "Windows Installer" (msi files)?
If another program has opened the selected MIDI device in the Kerberos App and then the Kerberos App is started, the application crashes. At least there should be a warning message instead of a crash, and maybe the program a bit refactored so that it is possible to select "none" as MIDI-in and MIDI-out.
Hi,
I would like to build you project by myself. Do I have to flash the chip with a special program and connection like an atmega? Or do I just need to solder all parzs and use your app to transfer everything over midi?
I hope it's okay for me to ask you.
Thx!
It should be possible to abort a running flash operation on the PC side when something went wrong.
Sometimes i get a checksum error on the C64 or even i forgot to go into the PC/Max link menu. The Kerberos QT app still sends the MIDI data over the wire. An abort/cancel button would be handy here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.