Hello, Guest the thread was viewed1.9k times and contains 30 replies

last post from wweicht at the

GEOPATCH128 und VICE 3.x

  • Hallo,

    auf einem realen C128 kann man im Edit-Modus mit den Cursortasten die Position in einem Speicher oder Diskettenblock verändern, um dann ggf einen Wert zu überschreiben.

    Unter Vice 3.x funktioniert das so leider nicht und man kommt nicht über die ersten 16 Bytes bzw über die erste Zeile hinaus.

    Da ich die Editroutine nicht zu 100% verstehe, weiß ich auch nicht woran dieser Fehler liegen könnte, um diesen dann als Bug beim Vice-Team melden zu können.


    Sieht sich hier unter den Geos-Experten jemand in der Lage die entsprechende Routine näher zu beleuchten bzw mir hier zu helfen?


    Danke und Gruß Pusti64

  • Könntest Du Deine Geopatch 128 Version hier mal anhängen,

    Ich glaube da gibt es nur eine Version (und nur für Geos128/MP3-128):


    Name: GEOPATCH 128

    Klasse: Mega/Patch V1.0

    Autor: Thomas Omilian

    26.08.1989 12:57 Uhr


    Zu finden ist er u.a. auf der GUC-Geothek-Diskette 1.1. Und eine Anleitung oder ähnliches habe ich bisher auch nirgends entdecken können...


    Unter Vice 3.x funktioniert das so leider nicht

    Nicht nur unter VICE ;-) .


    Hast Du da irgend etwas als Quellcode (auch selber erstellt)? Dann würde ich mal schauen, ob ich etwas entdecke (ohne Garantie) ....


    Mir scheint daß da an der Stelle irgendwie etwas seltsames passiert. Bei mir wird am echten C128 DCR der Tastaturtreiber unter MP3-128 durch den für die PC-Tastatur (geoKeys) ersetzt. Das reicht schon aus. Die Kursortasten funktionieren dann nicht auf der PC-Tastatur. Es gehen nur die Kursortasten der C128-Tastatur. Kann es sein daß da sehr hardwarenah programmiert wurde???


    Gruß

    Werner

  • Hallöchen,

    es gibt mindestens 2 Versionen. Die originale Version und eine von mir überarbeitete bzw. etwas erweiterte MP3-Version ;-)


    wweicht Ich dachte den von mir erstellen Quellcode habe ich Dir schonmal vor längerer Zeit zukommen lassen :gruebel

    Kann ich Dir aber gerne nochmal schicken :-)


    Danke und Gruß Pusti64

  • Kleine Anmerkung dazu für die Öffentlichkeit ;-) :

    Grundsätzlich funktionieren die Cursor-Tasten unter VICE in Geos/MP3. Habe ich in geoWrite und geoCalc überprüft. Es muß da etwas spezielles geben, was da gemacht wird, wo VICE (x128) nicht mit klar kommt (eventuell: Kursor ändern (für Edit-Mode)) und dann .....

    Gruß

    Werner

  • Kleine Anmerkung dazu für die Öffentlichkeit ;-) :

    Grundsätzlich funktionieren die Cursor-Tasten unter VICE in Geos/MP3. Habe ich in geoWrite und geoCalc überprüft. Es muß da etwas spezielles geben, was da gemacht wird, wo VICE (x128) nicht mit klar kommt (eventuell: Kursor ändern (für Edit-Mode)) und dann .....

    Gruß

    Werner

    Stimmt, ist auch das erste Programm unter GEOS, welches damit unter VICE mit Probleme hat.


    Pusti64

  • Moin,


    so eben mal im GTK WinVice 64bit x128 -r44475 probiert. Was soll ich anderes sagen.

    Alles so, wie Ihr sagt.:)


    Wäre natürlich Klasse, wenn Ihr das hinbekommt......:whistling:



    Suche immer noch nach einer schnellen Umschaltung im WinVice x128 Start für 128er Modus -->64er Modus (nicht "go64") und für SCPU 20MHZ-->1MHZ und zurück, im xscpu64 Start (nicht unter Settings, sondern schneller). Im realen System mache ich das mit "cbm+reset" und das andere macht der "SCPU" Schalter. Gibt's wohl noch nicht, oder?


    Liebe Grüße,

    Jojo

  • Wäre natürlich Klasse, wenn Ihr das hinbekommt...

    Das haben wir eigentlich gar nicht direkt vor ;-) ...


    Der Fehler liegt definitiv in VICE 128. Am normalen C128 funktioniert es ja problemlos. Wir wollen nur den Fehler soweit wie möglich eingrenzen und möglichst genau beschreiben können, damit die Fehlersuche der VICE-Entwickler einfacher wird. Erhöht die Change einer schnelleren Fehlerkorrektur (gerade bei C128-Geschichten in VICE) ;-) .


    Mithelfer jederzeit willkommen.


    Gruß

    Werner

  • Ich glaube (ohne Garantie ;-) ), ich bin der Sache näher gekommen...


    Sieht für mich so aus, als ob x128 Probleme hat bei Zugriff auf $dc00/$dc01 (CIA1, Tastatur). Das Programm greift an einer Stelle auf diese Adressen zu. Wenn ich da am echten C128 etwas ändere, läuft es auch hier nicht mehr.


    Für Pusti64 : Das ist die Routine ab original-Adresse $0f72 (ab Label :Nf72 in GP128 to MAss_A).


    Für alle anderen ein Quellcode-Auszug:


    Kann das jemand bestätigen oder nachvollziehen ?

    Wie beschrieben: das Problem tritt bei mir unter WinVICE GTK 3.7.1 r44049 (Windows 10 64bit) in Geos 128 oder MP3 128 auf. An der Stelle funktionieren die Cursor-Tasten zum Bewegen des aktuellen Kursors nicht. Am echten C128 funktioniert das...


    Gruß

    Werner

  • Moin,


    habe gestern auch nochmal mit einer WinVice 32bit x128- r44517 probiert. Auch hier keine Reaktion der Cursor Tasten und allen anderen der von mir zum Versuch gedrückten Tasten. An meinem Realsystem funktioniert alles.


    Sorry, mit Quellcode kenne ich mich nicht aus.......:whistling:


    Liebe Grüße,

    Jojo

  • An dieser Stelle im Quellcode bin ich quasi auch hängengeblieben, da mir cia1base nicht viel sagt und die Zusammenhänge hier nicht verstehe bzw kenne.


    Pusti64

  • da mir cia1base nicht viel sagt und die Zusammenhänge hier nicht verstehe bzw kenne

    Ich behaupte ja auch nicht, daß ich davon wirklich Ahnung hätte ;-) , aber am CIA1 hängt die Tastatur im C128 (siehe Buch "Commodore 128 intern" von DataBecker ab S. 67 und S. 812-814). Mit der geposteten Routine werden wohl die Tastendrücke im Editor-Modus direkt (hardwareseitig) ausgewertet. Hier scheint irgendwas in VICE zu klemmen bzw. nicht richtig in Geos128 anzukommen...


    Gruß

    Werner

  • Wenn man sich auf dem Rechner in VICE im entsprechenden C128-Ordner die zugehörigen Map-Dateien anschaut.

    Dann scheint es hier wohl noch den einen oder anderen Bug zu geben.

    Leider werde ich da aus den englischen Texten nicht schlau :-(


    Im GEOPATCH128-Quellcode fällt im Vergleich mit den C128 Kernal auf,

    dass hier scheinbar nur die Matrixzeilen 1 bis 8 abgefragt werden.

    Vielleicht bringt es ja erstmal was (bis die Bug's in VICE beseitigt sind) , wenn man hier auch die Matrixzeilen 9 bis 11 mit abfragen würde. :gruebel


    Pusti64

  • Mit einer angepassten GTK3_SYM.VKM funktionieren die Cursor-Tasten. In der Keymap sind die Cursor-Tasten auf die Reihe 10 gemappt wenn ich das richtig verstehe. Wenn man die vier Definitionen am Ende der Keymap auskommentiert (mit #) und die Tasten bei Bit0 (ziemlich am Anfang) beim SHIFT-Flag 256 abzieht (alternative keymapping) dann funktionieren die Cursor-Tasten. Das legt den Verdacht nahe das VICE die Cursor-Tasten mit der Alternativen Belegung über Reihe 10 verwendet, die aber von GEOPATCH gar nicht ausgewertet werden. Man kann das auch testen wenn man in Reihe 10 die Definitionen von Reihe 0 einsetzt (ohne die 256 im SHIFT-Flag). Dann funktioniert es auch.


    Man müsste an realer Hardware mal ein Testprogramm laufen lassen das die Reihen 0 und 10 abfrägt, evtl. setzt ein echter C128 beide Reihen, Vice aber nur die letzte Definition (in dem Fall Reihe 10)?


    P.S. AnyKey-128 zeigt die Cursor-Tasten unter VICE auch nicht an, weder die unteren noch die oberen Tasten. Also scheint die KeyMap grundsätzlich ein Problem zu haben. Evtl. kann jemand das Programm mal am echten 128er starten damit man sieht was bei den Cursor-Tasten passiert.

  • Evtl. kann jemand das Programm mal am echten 128er starten damit man sieht was bei den Cursor-Tasten passiert.

    Habe jetzt mal die C128-Version (40 Zeichen-Modus) von AnyKey V1.6 (https://github.com/T-Pau/Anykey) heruntergeladen und am echten C128 DCR kurz probiert:


    Die Kursor-Tasten unten (rechts neben SHIFT) reagieren. Bei den 4 Kursor-Tasten oben passiert nichts.

    In der oberen Reihe reagieren nur die 4 F-Tasten, im Ziffernblock reagieren nur die Tasten 8, +, 5, -, 0 und .


    Gruß

    Werner

  • Die Kursor-Tasten unten (rechts neben SHIFT) reagieren. Bei den 4 Kursor-Tasten oben passiert nichts.

    In der oberen Reihe reagieren nur die 4 F-Tasten, im Ziffernblock reagieren nur die Tasten 8, +, 5, -, 0 und .

    D.h. AnyKey erkennt die 4 Cursor-Tasten auch am realen C128 nicht? Dann scheint da aber auch in AnyKey-128 ein Problem zu bestehen. Das zu beheben wäre für einen Bugreport zu VICE aber sinnvoll, damit man AnyKey als Testcase angeben kann. Tests mit GEOS und GEOS-Programme sind auf dem BugTracker von den Entwicklern nur schwer nachzuvollziehen.


    Die Tasten 8 / + / 0 sind Reihe 8 bis 10, Bit 1 und 5 / - / . sind Reihe 8 bis 10, Bit 2. Die vier Cursor-Tasten sind Reihe 10, Bit 3 bis 6. Das würde dann passen das in AnyKey nur 2 Spalten ausgewertet werden. Spockie Irgendeine Idee?


    Zumindest ist mit dem Test klar das die Tasten nicht "gekoppelt" sind und das VICE die Cursor-Tasten neben SHIFT mit denen oben ersetzt. Das funktioniert zwar im GEOS-Kernal, aber wohl nicht innerhalb von GeoPatch, zumindest nicht mit dem Standard-Keymapping unter VICE.

  • Nein, vorerst keine Idee. Aber ich rufe mal dillof - er kann uns vielleicht hier weiterhelfen.

  • mit einer angepassten GTK3_SYM_DE.VKM funktioniert das auch

    :bgdev Toll für Dich. :bgdev


    Es soll auch Leute geben, die von einer solchen Änderung keine oder wenig Ahnung haben...


    Was spricht dagegen, ein solches geändertes File hier anzuhängen damit alle was davon haben??? Das Problem könnte ja theoretisch auch bei irgendeinem Programm außerhalb Geos auftreten...


    Gruß

    Werner


    PS:

    Um es genau sagen zu können was passiert, habe ich jetzt am echten C128 noch einmal ein originales deutsches Geos128 V2.0 von 1541 gestartet und dann "GEOPATCH 128" von der GUC-Geothek Disk 1.1b gestartet. Da meine "normalen" Arbeits-Boot-Disketten geändert sind (z.B. Tastatur-Treiber von geoKeys) wollte ich sehen, wie sich "GEOPATCH 128" wirklich im Original auf echtem C128 verhält.


    Das Ergebnis: Der 4er-Block mit den Cursor-Tasten (obere Reihe auf der Tastatur) hat im Programm (Edit-Mode) keine Funktion. Zur Steuerung des Cursors auf dem Bildschirm funktionieren nur die 2 CRSR-Tasten rechts in der unteren Reihe auf der Tastatur (rechts neben rechter SHIFT-Taste).

  • Nein, vorerst keine Idee. Aber ich rufe mal dillof - er kann uns vielleicht hier weiterhelfen.

    Kann es sein das in AnyKey das Register $d02f für die zus.Zeilen 8-10 am C128 gar nicht gesetzt wird? Zumindest hab ich die Stelle nicht gefunden, nur das STA CIA1_DDRA / LDA CIA1_DDRB.

    Was spricht dagegen, ein solches geändertes File hier anzuhängen damit alle was davon haben???

    Ich hab meine Version auch bewusst nicht angehängt, weil das nur ein Würgaround ist und man eher den Fehler in VICE beheben sollte. Dann haben alle was davon. Es ist aber nicht sooo kompliziert das anzupassen wenn es jemand dringend benötigt (hab ich ja oben beschrieben, die 4 Zeilen Down/Up/Left/Right am Ende auskommentieren, die vier Zeilen für Down/Up/Left/Right am Anfang anpassen und vom letzten Wert in jeder Zeile 256 abziehen, ergibt dann -> 1 oder -> 8), und jeder kann seine eigene VKM anpassen, egal ob symbolic oder positional oder bereits modifiziert. Man hat dann aber in keinem Programm mehr die oberen Cursor-Tasten... daher nur Notbehelf, keine Lösung.

    Das Problem könnte ja theoretisch auch bei irgendeinem Programm außerhalb Geos auftreten...

    Das tut es ja bereits mit AnyKey... wenn bei Dir am realen C128 die Cursor-Tasten neben SHIFT reagieren und unter VICE nicht, dann scheint hier genau das gleiche Problem zu bestehen wie in GEOPATCH. Aus meiner Sicht gibt es mit der aktuellen Keymap nur die vier oberen Tasten und hardwarenah programmierte Tastaturabfragen laufen dann ins leere wenn diese nur die neben SHIFT auswerten, so wie GEOPATCH.