Patch für Vice-Monitor


  • skoe
  • 1272 Aufrufe 6 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Patch für Vice-Monitor

    Hier sind ein paar Änderungen für den Vice-Monitor, sie wurden z.T. hier im Forum vorgeschlagen (ernörgelt?).

    Es gibt eine patch-Datei über alle betroffenen Dateien (inkl. generierter .c- und .h-Dateien)

    Alternativ kann man die monitor.tar.bz2 entpacken und damit das Originalverzeichnis "src/monitor" ersetzen.

    Bei beiden Dateien muss man die Endung ".prg" entfernen. Die Änderungen passen zu 1.22. Bitte testet sie doch mal, auch unter anderen Umgebungen. Ich habe sie nur unter Linux angetestet.

    Und das sind die Änderungen:

    Quellcode

    1. - Parameters may be separated by ","
    2. - Added command "ii" to dump screen code
    3. - Radix types (D, H, B, O) may also be small characters
    4. - Register names in assignments may also be small characters
    5. - Address ranges may be written without separator when the radix is hex
    6. - e.g. 04000800
    7. - There may be no separator between a command and its first parameter
    8. - e.g. "ia000"
    9. - Fixed some confusing error text output in some situations
    10. - old output e.g.:
    11. (C:$e5d4) l "bla"
    12. ERR:parse error
    13. ERROR -- Expecting a filename:
    14. l "bla"
    15. ^
    16. These are the cons:
    17. - Data for command parser and help texts are in two different files now
    Alles anzeigen
    Dateien
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Bau Dir ein eigenes Modul! EasyFlash
  • RE: Patch für Vice-Monitor

    Hallo,

    compilation endet bei mir (MSVC) mit:

    mon_lex.c(1061) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory

    Unter Linux kann ich es zur Zeit nicht testen.

    Gruß,
    Spiro
  • RE: Patch für Vice-Monitor

    Mhhh, dass die generierte Datei solch böse Fallen hat, habe ich nicht erwartet... Muss mir wohl doch mal eine Compiler-Umgebung für die verschiedenen Systeme zum Testen zurechtbasteln. Auf Windows fehlt mir noch das DirectX-SDK, muss ich mir mal ziehen.

    Nach Code lesen würde ich vermuten, dass in mon_lex.l und mon_lex.c hinter
    #define YY_ALWAYS_INTERACTIVE 1
    folgende Zeile helfen sollte:
    #define YY_NO_UNISTD_H

    Warum ziehen die sich die Datei rein, wenn's auch ohne geht (auch unter Linux)?

    Mal sehen, ob sonst noch was fehlt.

    Kann jemand was zu BeOS, RiscOS, OS/2 etc. sagen?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Bau Dir ein eigenes Modul! EasyFlash
  • RE: Patch für Vice-Monitor

    Hallo,

    jetzt kompiliert es.

    Original von skoe
    Warum ziehen die sich die Datei rein, wenn's auch ohne geht (auch unter Linux)?

    Tja... Das ist halt der GNU way... :(


    Kann jemand was zu BeOS, RiscOS, OS/2 etc. sagen?

    Ich denke, wenn wir die Bugs entfernt haben werden wir es bei VICE reinreichen - da wird es dann automatisch getestet. ;)

    Also, was mir aufgefallen ist:

    Brainfuck-Quellcode

    1. (C:$0410) m 8:0050 0070
    2. >8:0050 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 04 04 00 00 05 fa c8 22 eb 00 00 0a 05 ea ff 00 00 00 ....................."..........
    3. >8:0070 00 .
    4. (C:$0410)

    Geht also, wie vorher auch

    Nun die Kurzform:

    Quellcode

    1. (C:$0410) m8:00500070
    2. ERROR -- Unexpected token:
    3. m8:00500070
    4. ^
    5. (C:$0410)

    Komischerweise kommt das nur, wenn ich das Prefix "8:" da stehen habe:

    Brainfuck-Quellcode

    1. (C:$0410) m00500070
    2. >C:0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
    3. >C:0070 00 .
    4. (C:$0071)

    Auch ein "dev 8:" vorher geht, um es von der Floppy anzuzeigen.

    Aus irgendeinem Grunde ist jetzt aber der HELP-Befehl *extrem* langsam. Benötigt hier über 15 Sekunden. Ich bin aber noch nicht ganz dahinter, ob es an deinem Patch liegt oder an dem, was vorher schon da war. (Ich habe deinen Patch auf 1.22.5 angewendet)


    Dann:

    Quellcode

    1. (8:$ebff) m,0050,0070
    2. ERROR -- Unexpected token:
    3. m,0050,0070
    4. ^
    5. (8:$ebff)

    Aha, da darf also kein Komma stehen. Wieso eigentlich nicht?

    Über solche Mißdeutigkeiten wir "m0123" will ich mich jetzt nicht auslassen (GPZ: Ist das nun "m 0123", "m 0 123", "m 01 23", oder "m 012 3"? Gerade die letztere Interpetation hat einen "schönen" Effekt).

    Was sagen denn diejenigen dazu, die das unbedingt so haben wollten? Im großen und ganzen gefällt mir das, auch wenn ich darin immer noch keinen Nutzen sehe. ;)

    Gruß,
    Spiro
  • RE: Patch für Vice-Monitor

    Hallo,

    anbei eine neue Version, die das unistd- und das 8:-Problem löst.


    Komischerweise kommt das nur, wenn ich das Prefix "8:" da stehen habe:


    Habe nur vergessen, dass so ein Range auch ein memspace haben kann. Der Monitor ist mir nicht so gut vertraut, deshalb ist es auch wichtig, das andere ihn auch testen.


    Aus irgendeinem Grunde ist jetzt aber der HELP-Befehl *extrem* langsam. Benötigt hier über 15 Sekunden.

    :nixwiss: komisch. Kann ich hier nicht nachvollziehen (Linux). Kann ich mir auch nicht erklären, hab kaum was dran geändert. Verstreicht die Zeit, bis mon_command_print_help (aus mon_command.c) aufgerufen wird, oder dauert der Durchlauf der Schleife dort so lange? Kannst Du das mal mit dem Debugger prüfen?


    (Ich habe deinen Patch auf 1.22.5 angewendet)

    Wo gibt's denn die Version?


    Aha, da darf also kein Komma stehen. Wieso eigentlich nicht?


    Ich dachte mir, das innere Verlangen, zwischen den Parametern Kommas zu machen, kommt vielleicht von Befehlen wie "poke 53280,2" oder "memcpy(a, b, c)". Kaum jemand würde auf die Idee kommen, "poke,53280,2" oder "memcpy(,a,b,c)" zu schreiben. Deshalb habe ich weder Kosten noch Mühe gescheut, das Komma gerade an dieser Stelle *nicht* zuzulassen.

    Irgendwo habe ich auch mal gesehen (RiscOS Basic???), das ein zusätzliches Komma zum expliziten auslassen von Parametern benutzt wurde: "bla ,,c" hieß dort, dass a und b nicht angegeben werden. Diesen Mechanismus gibt es zwar im Vice-Monitor nicht, aber das war halt ein weiterer Grund, es nicht zu erlauben. Zwischen zwei Parametern darf deshalb bei mir auch nur EIN Komma, aber beliebig viele Spaces stehen.

    Ein bisschen Geschmacksfrage ist das aber auch zweifellos. Wie die Kommafrage überhaupt.


    Über solche Mißdeutigkeiten wir "m0123" will ich mich jetzt nicht auslassen (GPZ: Ist das nun "m 0123", "m 0 123", "m 01 23", oder "m 012 3"? Gerade die letztere Interpetation hat einen "schönen" Effekt).


    Eigentlich ist das recht eindeutig: Zahlen werden nie zerpflückt, außer bei einer Ausnahme: Bei Befehlen, die einen Adressbereich erwarten, wird eine Eingabe mit GENAU 8 Ziffern (wenn Hex Modus aktiv) zu zwei 16-Bit Adressen getrennt. Da 0123 nicht 8 Ziffern hat, wird es also immer als "m 0123" interpretiert. Z.B. 0123456 würde übrigens eine Fehlermeldung verursachen.

    Aber ich verstehe Deine Zweifel, ich wäre auch nicht auf diese Idee gekommen. Das mit dem Komma finde ich schon nachvollziehbar.


    Was sagen denn diejenigen dazu, die das unbedingt so haben wollten? Im großen und ganzen gefällt mir das, auch wenn ich darin immer noch keinen Nutzen sehe. ;)


    Der Kunde ist König :) Wenn Du mit dem Ergebnis unter Windows zufrieden bist, könnten wir ja auch mal ein Binary zum Beta-Testen veröffentlichen, mich würde nämlich auch etwas Feedback interessieren. (Hab immer noch kein MSVC+DXSDK installiert)

    Gruß,
    Thomas
    Dateien
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Bau Dir ein eigenes Modul! EasyFlash
  • RE: Patch für Vice-Monitor

    Hallo,
    Original von skoe
    anbei eine neue Version, die das unistd- und das 8:-Problem löst.

    Ja, sieht schon besser aus.



    Aus irgendeinem Grunde ist jetzt aber der HELP-Befehl *extrem* langsam. Benötigt hier über 15 Sekunden.

    :nixwiss: komisch. Kann ich hier nicht nachvollziehen (Linux).

    Ich habe noch einmal gegengetestet, das Problem war auch schon vor deinem Patch da. Da muss ich wohl mal suchen, was da schief läuft. :(



    (Ich habe deinen Patch auf 1.22.5 angewendet)

    Wo gibt's denn die Version?

    Offiziell nur für Entwickler des VICE-Teams, man kann sie aber auch mal so zwischendurch erhalten, wenn es dafür Gründe gibt.

    Übrigens hat sich zwischen der offiziellen 1.22 und der 1.22.5 im Monitor noch gar nichts geändert.


    Irgendwo habe ich auch mal gesehen (RiscOS Basic???), das ein zusätzliches Komma zum expliziten auslassen von Parametern benutzt wurde: "bla ,,c" hieß dort, dass a und b nicht angegeben werden.

    Richtig, so kenne ich das auch, aus verschiedenen Kontexten.



    Über solche Mißdeutigkeiten wir "m0123" will ich mich jetzt nicht auslassen (GPZ: Ist das nun "m 0123", "m 0 123", "m 01 23", oder "m 012 3"? Gerade die letztere Interpetation hat einen "schönen" Effekt).


    Eigentlich ist das recht eindeutig: Zahlen werden nie zerpflückt, außer bei einer Ausnahme: Bei Befehlen, die einen Adressbereich erwarten, wird eine Eingabe mit GENAU 8 Ziffern (wenn Hex Modus aktiv) zu zwei 16-Bit Adressen getrennt. Da 0123 nicht 8 Ziffern hat, wird es also immer als "m 0123" interpretiert. Z.B. 0123456 würde übrigens eine Fehlermeldung verursachen.

    Ich weiß, so ist das bei dir geregelt. IMHO ist das aber damit wieder so ein komischer "Sonderfall" mit genau 8 Zeichen; gefallen tut mir das nicht.



    Was sagen denn diejenigen dazu, die das unbedingt so haben wollten? Im großen und ganzen gefällt mir das, auch wenn ich darin immer noch keinen Nutzen sehe. ;)


    Der Kunde ist König :) Wenn Du mit dem Ergebnis unter Windows zufrieden bist, könnten wir ja auch mal ein Binary zum Beta-Testen veröffentlichen, mich würde nämlich auch etwas Feedback interessieren. (Hab immer noch kein MSVC+DXSDK installiert)

    Leider hat sich hier bislang noch keiner gemeldet... Vielleicht müssen wir nochmal den alten Thread suchen und die Leute auf diesen hier hinweisen?

    Wenn du mir deine Mail-Adresse sendest (für den ChangeLog) würde ich deinen jetzigen Patch (nach noch ein paar Tests) für die Aufnahme in die nächste VICE-Version einreichen. Es sei denn, das willst du selbst tun. ;)

    Aber ich würde ja gerne auf eine Stellungnahme von den "Wünschern" hoffen...

    Gruß,
    Spiro
  • RE: Patch für Vice-Monitor


    IMHO ist das aber damit wieder so ein komischer "Sonderfall" mit genau 8 Zeichen; gefallen tut mir das nicht.



    Ich hätte auch überhaupt kein Problem damit, diesen Spezialfall wieder rauszunehmen.


    Was sagen denn diejenigen dazu, die das unbedingt so haben wollten?


    Die sagen nichts.


    Wenn du mir deine Mail-Adresse sendest (für den ChangeLog) würde ich deinen jetzigen Patch (nach noch ein paar Tests) für die Aufnahme in die nächste VICE-Version einreichen. Es sei denn, das willst du selbst tun. ;)


    Die steht im Patch, ich habe mir mal die Frechheit rausgenommen, mich als Author der lex/yacc-Datei dazuzuschreiben :) Schick den Patch doch ruhig weiter und schick mir eine Kopie der Mail.

    Gruß,

    Thomas
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Bau Dir ein eigenes Modul! EasyFlash