Heute habe ich mal wieder an meinem Basic Editor weitergearbeitet

Hello, Guest the thread was viewed421k times and contains 2256 replies
last post from Mephisztoe at the
Heute so gecodet...
- syshack
- Thread is Unresolved
-
-
Ein wenig meine GUI überarbeitet. Ich stelle die hier mal zur Verfügung, falls jemand Interesse hat.
Erwartet bitte nicht zu viel, das sollte nur eine kleine Vereinfachung in der Handhabung für mich selber sein. Es passiert im Grunde nichts weiter, als dass die Befehle für das ef3usb.exe Tool ausgeführt werden. Ich habe nur noch ein bisschen die Fehlerbehandlung erweitert, aber mehr ist noch nicht passiert.
WICHTIG: Treiber für das EasyFlash³ sollten selbstverständlich bereits installiert sein, das wird bei diesem Tool vorausgesetzt!
Was kann ich über die GUI steuern?
Obwohl mir aktuell nur die Funktion des Rippens ( von Diskette in 1541 auf PC ) wichtig war, habe ich versucht, alle Möglichkeiten des ef3usb.exe Tools zu übernehmen.
Bei jeder Funktion wird zuerst immer die Connection getestet, denn bei mir verliert er die nach ein paar Disketten immer, vielleicht ist das bei euch anders.
Hier ein kurzer Überblick über die Funktionen:
Start Server on C64 ( ef3usb.exe s )
Hiermit wird das Server Tool ef3usb.prg an den C64 gesendet und dort gestartet.
Test Connection ( ef3usb.exe t )
Hierüber kann ich einfach den Serverstatus abfragen, also ob ein EF³ Cartridge gefunden wurde.
Format Disk ( ef3usb.exe f )
Formatiert eine Diskette, die sich in einer am C64 abgeschlossenen 1541 befindet.
Copy File to Disk ( ef3usb.exe c )
Kopiert eine .PRG oder .P00 Datei auf die Diskette in einer an den C64 angeschlossenen 1541.
Es kann auch ein .D64 File ausgewählt werden, woraufhin dann alle .PRG und .SEQ Files aus dem D64 Image auf die Diskette gespeichert werden.
Copy Image to Disk ( ef3usb.exe w )
Kopiert ein komplettes D64 Image auf die Diskette in einer am C64 angeschlossenen 1541.
Bei dieser Aktion gehen im Gegensatz zu Copy File to Disk die kompletten zuvor auf der Diskette gespeicherten Daten verloren!
File Ripper ( ef3usb.exe x )
Hiermit wird auf dem C64 das Directory angezeigt und man kann Datei für Datei wählen, welche auf den PC übertragen werden.
Der Speicherort ist aktuell noch das Verzeichnis der ausführbaren GUI-Datei. Das wird später noch mal auswählbar gemacht.
Disk Ripper ( ef3usb.exe r )
Mit dieser Funktion kann man die komplette Disk in einer am C64 angeschlossenen 1541 als D64 Image an den PC senden.
Ohne die Funktion multi ripping wird gefragt, wo die Datei unter welchem Namen gespeichert werden soll.
Die Option multi ripping erlaubt mehrere Disketten zu rippen. Hierzu werden ein paar Optionen angeboten, sobald man diese Checkbox aktiviert:
- file prefix ( default = disk)
Der Prefix der D64 Images beim Speichern auf dem PC - start (default = 1)
Um Reihenfolgen einhalten zu können, wenn man mal mit Unterbrechungen arbeitet, kann man hier angeben, ab welcher fortlaufender Nummer die D64 Images gespeichert werden sollen. - Mit Klick auf die Schaltfläche mit den drei Punkten, kann man den Speicherort wählen, wo die D64 Dateien gespeichert werden sollen.
Die Standardeinstellungen speichern also die Images nach dem Schema disk001.d64, disk002.d64, disk003.d64, etc.
Beim multi ripping wird bei jeder neuen Disk zunächst ein Connection Test durchgeführt!
Execute Programm
Hiermit kann man ein PRG vom PC direkt an den C64 senden, was dort automatisch gestartet wird.
Diese Funktion ist ähnlich der von EasyTransfer.
Ich glaube, das wichtigste ist gesagt, also wer es brauchen kann, soll zuschlagen.
Es ist sicher nicht fehlerfrei und verbesserungsfähig, also gerne Bescheid sagen, was nicht funktioniert oder fehlt.
Gruß Arne
- file prefix ( default = disk)
-
Gestern mal wieder am meinen Basic Editor weitergearbeitet
Neue Features unter anderem sind :
Unterschiedliches einfärben der Klammertiefe
Hervorheben von Konstanten wie PI
Neben dem normalen REM Kommentar versteht der Editor nun auch die handelsüblichen Kommentarfunktionen wie /*..*/ oder //...
Beim bauen des Binaries werden die auskommentierten Blöcke dann ignoriert.
-
So, weiter geht's beim Basic Editor.
Heute hab ich noch einen CharacterSet Assistenten hinzugefügt.
Diese habe ich dann auch noch anwenderfreundlich angeordnet.
Ein paar Symbole sind aber noch nicht zugeordnet.
-
Ich habe es gestern in meinem Docking Modul geschafft die Delete Funktion einzubauen. Das ging ja mal erfrischend einfach von der Hand. Damit kann ich jetzt schon mal ein Layout auf und wieder abbauen (per API), was ein echter Meilenstein ist.
Jetzt fehlt noch die Maussteuerung und dass man so ein Layout speichern und wiederherstellen kann. Das Speichern ist sicher einfacher als die Maussteuerung, also werde ich das wohl als nächstes angehen.
Vor der Maussteuerung gruselts mir schon.
-
Heute im Angebot. Debug Directives für den Basic Editor
-
-
Noch mehr Bugfixes für die Mega65-Features in C64Studio, ein halbes Entchenspiel und gestern abgegeben, mein Mega65-Beitrag, Mega Sisters.
-
Ich habe es zwar nicht heute geschrieben sondern über Wochen (immer wenn ich Zeit und Lust hatte). Am Ende ist es ein kleines Python Programm zur Anzeige von Temperatur, Luftdruck und Luftfeuchtigkeit des SenseHat geworden. Als nächstes sollen alle Werte per Cronjob in eine sqlite3 Datenbank gespeichert werden. Später soll eine Auswertung der Daten folgen und im Anschluss soll es nach tkinter portiertt werden.
-
Freecell in Assembler mit C64 Studio.
-
Heute hab ich mal wieder an meinen Grafik Editor weiter gearbeitet.
Siehe Screenshots.
Nach einer grösseren Umstrukturierung des Codes hier ein paar Screenshots.
Jetzt klappt der Animator auch wieder.
Als nächstes mach ich mich daran verschiedene Layer bearbeiten zu können.
-
-
-
WebFritzi Ausser das mein Tool auch unter Linux und MaxOS läuft.
Das werte ich schonmal als guten Vorteil
-
Das was mal hier
https://csdb.dk/release/?id=198117
angefangen hat, habe ich für iPad und iPhone weitergemacht:
https://forum.omz-software.com…-with-google-maps-support
Ein Sonnenstandsrechner der egal wo und für welches Datum den Sonnenverlauf bestimmt. Für iPhone gibt es nun auch einen Sonnenkompass der aufs Magnetometer zugreift.
Man braucht die kostenpflichtige Python-Umgebung Pythonista, um die iPad/iOS-Programme laufen zu lassen, es sind keine AppStore Apps im herkömmlichen Sinn. -
Heute hab ich mal wieder an meinen Grafik Editor weiter gearbeitet.
Ich kann zwar nicht mit Deinem Tempo mithalten, aber ich habe in den letzten
Tagen in meinem Z80 Disassembler ein paar Fortschritte hinbekommen.
In meinem Disassembler kann man die Ausgabe über diverse Steuerbefehle
beeinflussen. Den dafür notwendigen Parser habe ich immer besser im Griff,
so das ein Definieren einen Steuerbefehls und ebenso seine Auswertung fast
so gut läuft als hätte ich einen Baukasten mit dem man das schnell zusammen-
klicken kann.
-
Heute hab ich mal wieder an meinen Grafik Editor weiter gearbeitet.
Ich kann zwar nicht mit Deinem Tempo mithalten...
Das ist ein bisschen zu viel des Lobs.
Immerhin fummel ich an dem Ding so seit ca. 3 Jahren mehr oder weniger intensiv rum. Betrifft allerdings das ganze Projekt. Das sind bei mir immer so Codingphasen . meistens im Herbst/Winter.
-
Das ist ein bisschen zu viel des Lobs.
Immerhin fummel ich an dem Ding so seit ca. 3 Jahren mehr oder weniger intensiv rum.
Dann ist mein Disassembler älter als Dein Projekt.
-
Weiter am Parser für meinen Disassembler gebastelt. Den hatte ich nochmal umgebaut.
Jetzt dürften neue Befehle noch einfacher einzurichten und auszuwerten sein.
Stundenlang habe ich einen Fehler gesucht.
Der ist jetzt weg. Aber nicht weil ich den Fehler wirklich gefunden habe, sondern weil ich
gemerkt hatte das der Parser schon viel besser funktioniert wie gedacht.
-
Nachdem ich die letzten Monate mit meinem Spriteeditor beschäftigt war, und gestern auch die (vorläufig) letzten Refactoringarbeiten daran erledigt habe, habe ich jetzt etwas Leerlauf und überlege wie und was ich weitermache. Ich habe auch noch ein wenig mit dem MEGA65 Emulator rumgespielt, aber im Wesentlichen habe ich jetzt drei Optionen.
1. Ich mache an meinem Spriteeditor weiter und baue den Charactereditor ein.
Die Motivation dazu ist im Moment etwas niedrig, da scheinbar sowieso niemand was damit macht und ich das nur brauchen würde wenn ich ein Spiel anfänge, was ich im Moment nicht tue.
2. Ich könnte den Spriteeditor erstmal so wie er ist, auf den MEGA65 portieren. Das klingt schon reizvoller.
3. Ich könnte an meinem Dockingmodul weiterarbeiten, da ich das immer noch als Basis für meinen Debugger brauche. Den wiederum könnte ich gut gebrauchen wenn ich auf dem MEGA65 Emulator programmieren will (siehe Punkt 2) da ich im Moment keinen vernünftigen Debugger dafür habe.
Heute zumindest habe ich mal mit Punkt 3 weitergemacht. Da ich ja die API für das Erzeugen und Verändern von Layouts mittlerweile fertig habe, steht jetzt als nächster Schritt an, die Mausesteuereung einzubauen um ein Fenster tatsächlich in eine neue Position ziehen zu können. In dem bisherigen Entwurf hatte ich die Mausevents dafür bereits abgefangen, hatte aber noch nicht so richtig feststellen können ob das tatsächlich so funktionieren wird wie ich das brauche, da ich dafür erstmal ein Layout benötigt habe. Immerhin ist das ja eine Library, wo der User beliebige Fenster und Controls erzeugt und ich darüber keine Kontrolle habe, also muss ich die Events abgreifen bevor der User sie bearbeiten kann.
Jetzt habe ich heute mal testweise eingebaut dass ich die Maus rumschiebe und die nötigen Events dafür abfangen kann und auch die richtigen Ziele erkennen kann, wo dann das Fenster vom User hinbewegt werden soll. Tja, das funktioniert wunderbar und bereits genau so wie ich es brauche. Das wäre also dann geklärt und ist eine wichtige Grundvorraussetzung für die weiteren Schritte.
Das heisst dann dass ich als nächstes so ein Overlay implementieren muss, wie es z.B. in Visual Studio existiert. Dies Methode des Dockings finde ich eigentlich am Schönsten. Da wird ja, wenn man das Fenster zu ziehen beginnt, ein Overlay angezeigt, mit Controls wo man das Fenster hinhaben will. Wenn man dann die Maus dorthin bewegt, wird dann ein farbiges Overlay angezeigt wo man sehen kann, wo das Fenster plaziert werden würde.
Bei anderen Dockingmodulen wird ja meistens nur der Teil des Fensters eingefärbt wo man andocken kann, je nachdem wo sich die Maus befindet. Bei kleineren Zielen kann das schon recht fummelig sein.
Da finde ich die Visual Studio Variante am Besten, weil das Overlay immer so gross ist, dass man es auch gut trifft.
So möchte ich das dann auch haben.
Jetzt muss ich nur fststellen ob ich in wxWidgets, ein Fester erzeugen kann, dass keine viereckige Form hat, sondern Kreuzförmig ist.