Hallo Besucher, der Thread wurde 21k mal aufgerufen und enthält 99 Antworten

letzter Beitrag von markusC64 am

S-JiffyDOS für VICE

  • Wie bereits vorher gesagt hat eine SJD1541-Version den Bug, dass ein Byte gekippt ist, aus einem JMP wurde ein BRK. Diese defekte Version hat die WinRAR-CRC32 783575f6. Ich selbst habe diese defekte Version jahrelang unter VICE V2.1 benutzt, ohne jede Probleme. Es ist mir ein Rätsel wie das funktionieren konnte. Beim Umstieg auf VICE 2.4 ging das gleiche DOS plötzlich nicht mehr. Ich hielt das für einen VICE-Fehler bis ich das gekippte Byte in SJD1541 fand. Dein SJD1541 mit der CRC 3491b0a7 läuft bei mir unter VICE 2.4 mit 1541 und mit 1541-II problemlos. SJD1541 ist doppelt so groß wie ein normales DOS, es belegt den Speicher von $8000 - $ffff. Ganz wichtig ist deshalb, dass in VICE bei Einstellungen -> Floppy Einstellungen -> Laufwerk X -> 1541 / 1541-II -> Laufwerk Erweiterung KEIN Haken vor $8000-$9fff und $a000-$bfff ist. Falls hier ein Haken ist, dann stürzt SJD1541 ab, sobald es eine DOS-Routine im Bereich $8000-bfff anspringen will.
    Weiterhin muss man beachten, dass eine Änderung bei Einstellungen -> ROM Einstellungen -> Laufwerk -> 1541 / 1541-II erst nach einem Neustart von VICE benutzt wird. Ein Datei -> Reset -> hart übernimmt das neu ausgewählte ROM nicht.

  • Zitat

    Weiterhin muss man beachten, dass eine Änderung bei Einstellungen -> ROM Einstellungen -> Laufwerk -> 1541 / 1541-II erst nach einem Neustart von VICE benutzt wird. Ein Datei -> Reset -> hart übernimmt das neu ausgewählte ROM nicht.


    äh. doch. das ist sofort aktiv (und zwar sofort, darum muss man auch resetten, sonst stürzt das laufwerk ab). es gibt soweit ich mich erinner keine einzige einstellung die einen neustart des emulators erfordert (mal von platform spezifischem kram wie direct-x an/aus abgesehen)

  • Zitat

    grad mal diesen "patcher" ausprobiert und festgestellt das die roms ja 32k sind. ehrm. da wundert mich jetzt ehrlichgesagt das die überhaupt irgendwo gehen =P

    VICE, Turbo Chameleon64, 1541U... müssen (vermutlich) spezielle Routinen für ein 32kB-DOS haben.
    In einer 1541alt und 1541-2 muss man zusätzlich ein Kabel vom 6502 zum EPROM löten.
    In einer 1541C muss man dieses Kabel anlöten und noch zusätzlich einen Inverter (fliegend) anlöten, der im Bereich $8000-bfff ein ChipSelect-Signal erzeugt.
    Am einfachsten ist ein Einbau in eine 1541-2 (nur ein einfaches Kabel).
    Schlecht bei der 1541alt ist, dass man 24->28-Pol-Adapter braucht und man zwei EPROMs wechseln muss, wenn man alle Vorteile haben will.
    Schlecht bei der 1541C ist der zusätzliche Inverterchip.

  • VICE, Turbo Chameleon64, 1541U... müssen (vermutlich) spezielle Routinen für ein 32kB-DOS haben.

    Deshalb hab ich mich gefragt, wie das lt. einem User hier im Forum bei der 1541U-II funktionieren kann, da S-Jiffy vermutlich gar nicht vorgesehen ist. Zumindest, iirc, ging es um die 1541U-II - oder Chameleon. Leider finde ich den Thread nicht wieder.

  • Zitat

    Weiterhin muss man beachten, dass eine Änderung bei Einstellungen -> ROM Einstellungen -> Laufwerk -> 1541 / 1541-II erst nach einem Neustart von VICE benutzt wird. Ein Datei -> Reset -> hart übernimmt das neu ausgewählte ROM nicht.
    äh. doch. das ist sofort aktiv (und zwar sofort, darum muss man auch resetten, sonst stürzt das laufwerk ab). es gibt soweit ich mich erinner keine einzige einstellung die einen neustart des emulators erfordert (mal von platform spezifischem kram wie direct-x an/aus abgesehen)

    Bei mir ist es manchmal so und manchmal anders??
    Beispiel:
    Ich habe als LW8 eine 1541-II und das DOS sjd_rom_c1541.bin. Wenn ich mit Ctrl-D (unter JD64) die Laufwerke wechsle, kommt 8, 9, 10, 11, 8...
    Jetzt lege ich das DOS sjd_rom_c1541_device12.bin ein, gehe sogar noch auf 'Einstellungen speichern', dann noch auf Datei -> Reset -> hart. Trotzdem bleibt es dabei, dass die erste Floppy LW8 bleibt, also 8, 9, 10, 11, 8... Erst wenn ich VICE schließe und neu starte wird das erste Laufwerk als LW12 erkannt, also 9,10,11,12,9...
    Aber du hast recht, manchmal werden die Änderungen auch sofort übernommen.

  • Zitat

    VICE, Turbo Chameleon64, 1541U... müssen (vermutlich) spezielle Routinen für ein 32kB-DOS haben.
    Deshalb hab ich mich gefragt, wie das lt. einem User hier im Forum bei der 1541U-II funktionieren kann, da S-Jiffy vermutlich gar nicht vorgesehen ist. Zumindest, iirc, ging es um die 1541U-II - oder Chameleon.

    Mit Turbo Chameleon64 geht's definitiv, sogar mit Gerätenummer 12 bis 30. Bei der 1541U geht's soweit ich weiß ab V2. Ich werd's noch probieren.

  • Zitat

    Ich habe als LW8 eine 1541-II und das DOS sjd_rom_c1541.bin. Wenn ich mit Ctrl-D (unter JD64) die Laufwerke wechsle, kommt 8, 9, 10, 11, 8...
    Jetzt lege ich das DOS sjd_rom_c1541_device12.bin ein, gehe sogar noch auf 'Einstellungen speichern', dann noch auf Datei -> Reset -> hart. Trotzdem bleibt es dabei, dass die erste Floppy LW8 bleibt, also 8, 9, 10, 11, 8... Erst wenn ich VICE schließe und neu starte wird das erste Laufwerk als LW12 erkannt, also 9,10,11,12,9...
    Aber du hast recht, manchmal werden die Änderungen auch sofort übernommen.


    das wird aber an was andrem liegen als das rom nicht geladen ist, das wird wie gesagt geladen so bald es ausgewählt wurde, da geht kein weg drann vorbei :) mich würde aber nicht wundern wenn das ändern von geräteadressen vice irgendwie verwirrt, glaub nicht das sowas schon viele ausprobiert haben =P

  • Anscheinend läuft hier bei WinVice ab 2.4 etwas bei "Settings" / "Rom settings" nach Anwahl des Reiters "Computer" oder "Drive" und NACHFOLGENDER Auswahl eines roms über den Button "Browse" etwas schief.
    Danach erscheint im Feld "Romset archive" und "Romset file" ein völlig verkorkster String (bei v2.2 übrigens nicht)
    Beim nächsten starten von WinVice ab 2.4 kann man im Log nachlesen

    Code
    1. -----
    2. Drive 8: RESET.
    3. Warning - Trying to read value from unknown resource `RomsetSourceFile'.
    4. Warning - Trying to read value from unknown resource `RomsetArchiveName'.
    5. Warning - Trying to read value from unknown resource `RomsetFileName'.
    6. Warning - Trying to read value from unknown resource `RomsetArchiveActive'.


    Schätze mal dass der Fehler bei der Option "Romset" (Romset archive / Romset file) oder generell unter "Rom settings" und einer fehlenden Vorbelegung (falschen Zeiger, (Pfadlängen)Überlauf, etc) zu finden ist.


    Wenn man die sjd-roms in "dos1541", "d1541II", "kernal" umbenennt und die jeweiligen roms in den entsprechenden Ordnern damit ersetzt (d.h. die Option "Rom settings" nicht benutzt) gibts auch unter WinVice 2.4 keine Probleme.

  • Deshalb hab ich mich gefragt, wie das lt. einem User hier im Forum bei der 1541U-II funktionieren kann, da S-Jiffy vermutlich gar nicht vorgesehen ist. Zumindest, iirc, ging es um die 1541U-II - oder Chameleon. Leider finde ich den Thread nicht wieder.


    Es funktioniert mit beiden!


    Bei der 1541U wurde es vor längerem eingebaut (32KB drive ROMs)
    Beim Chameleon funktioniert es auch, ist aber sehr instabil (JD ohne Super leider das Selbe).
    Dürfte an einem CIA Emulationsproblem liegen, anscheinend wurden da vor kurzem Fortschritte gemacht ...


    Aber prinzipiell unterstützt wird es von beiden.

  • Zitat

    das wird aber an was andrem liegen als das rom nicht geladen ist, das wird wie gesagt geladen so bald es ausgewählt wurde, da geht kein weg drann vorbei :)

    Ich lege in die LW8 1541-II das 32kB DOS sjd_rom_c1541.bin ein. Nach einem Reset lese ich den Fehlerkanal aus und erhalte: 73,s-jiffydos 1 1541.
    Nun lege ich das 16kB DOS jd6.01_rom_c1541_fixed.bin ein. Nach einem Datei -> Reset -> hart ist LW8 nicht mehr ansprechbar.
    Erst nach Beenden und Neustarten von VICE zeigt LW8 an: 73,jiffydos 5.0 1541
    Zum Umschalten zwischen 16kB- und 32kB-DOS sollte man meiner Meinung nach VICE neu starten, aber du hast Recht, die ROM-Images werden sofort geladen.

    Zitat

    mich würde aber nicht wundern wenn das ändern von geräteadressen vice irgendwie verwirrt, glaub nicht das sowas schon viele ausprobiert haben =P

    Das glaub ich auch nicht, macht bei VICE auch nicht viel Sinn :-)

  • Zitat

    Es (S-JiffyDOS 1541) funktioniert mit beiden!
    Bei der 1541U wurde es vor längerem eingebaut (32KB drive ROMs)
    Beim Chameleon funktioniert es auch, ist aber sehr instabil (JD ohne Super leider das Selbe).
    Dürfte an einem CIA Emulationsproblem liegen, anscheinend wurden da vor kurzem Fortschritte gemacht ...

    Ja, ich bin ziemlich sicher, dass es lediglich am IEC-Bus-Timing liegt: Chameleon64 und JiffyDOS Das sollte sich eigentlich recht einfach fixen lassen.

  • Hallo Jochen,


    Wie bereits vorher gesagt hat eine SJD1541-Version den Bug, dass ein Byte gekippt ist, aus einem JMP wurde ein BRK. Diese defekte Version hat die WinRAR-CRC32 783575f6.


    Ich habe hier ein SJiffy 1541 File, das ich "damals" mit dem C64 Patcher erstellt habe. Dieses File hat die CRC32 D3437663 und gegenüber dem neu mit dem Online Patcher erstellten SJiffy 1541 File mit der CRC32 3491B0A7 nur ein Byte unterschiedlich (00006C9B: 00 4C), es ist also ein JMP durch ein BRK ersetzt.


    Der Fehler war also scheinbar schon im C64 Patcher vorhanden?


    Die von Dir als fehlerhafte Version mit CRC32 783575f6 kann ich nicht nachvollziehen.


    Weiterhin ist mir aufgefallen, daß der Onlinepatcher aus den beiden vorhandenen JiffyDOS 5.0 Versionen das gleiche SJiffyDOS 1541 File (CRC32 3491B0A7) und das gleiche jd6.01_rom_c1541_fixed.bin (CRC32 6A055AAE) erstellt. Ist das korrekt?


    Gruß,
    Lars

  • Hallo Jochen,


    Ich habe hier ein SJiffy 1541 File, das ich "damals" mit dem C64 Patcher erstellt habe. Dieses File hat die CRC32 D3437663 und gegenüber dem neu mit dem Online Patcher erstellten SJiffy 1541 File mit der CRC32 3491B0A7 nur ein Byte unterschiedlich (00006C9B: 00 4C), es ist also ein JMP durch ein BRK ersetzt.


    Der Fehler war also scheinbar schon im C64 Patcher vorhanden?


    Ich habe die ganze Prozedur noch einmal mit Vice durchgezogen. Der C64 Patcher liefert genau das gleiche File wie der Onlinepatcher. Es kann also nur so sein (wie Du schon per Mail angedeutet hast), daß ich zufälliger Weise genau das gleiche File von Dir als meins angesehen habe und ich somit den gleichen Fehler in Deinem File gefunden habe ;-) Witzig.


    Also, alles gut, ich werde das fehlerhafte Image gleich löschen.


    Gruß,
    Lars

  • Zitat

    Ich habe hier ein SJiffy 1541 File, das ich "damals" mit dem C64 Patcher erstellt habe. Dieses File hat die CRC32 D3437663 und gegenüber dem neu mit dem Online Patcher erstellten SJiffy 1541 File mit der CRC32 3491B0A7 nur ein Byte unterschiedlich (00006C9B: 00 4C), es ist also ein JMP durch ein BRK ersetzt. Die von Dir als fehlerhafte Version mit CRC32 783575f6 kann ich nicht nachvollziehen.

    Du hast recht:
    D3437663 ist die CRC32 des defekten S-JiffyDOS-1541
    (783575f6 ist die CRC32 des defekten (normal-)JiffyDOS-SX1541 aus dem Internet).
    Die defekte Version mit CRC32 D3437663 läuft unter VICE V2.1 (unerklärlich), aber nicht unter VICE V2.4 (verständlich).

    Zitat

    Der Fehler war also scheinbar schon im C64 Patcher vorhanden?.

    Ich habe mal alles nachgesehen, was möglich ist: Zuerst habe ich meine alten Hefte durchsucht, wann SJD veröffentlicht wurde: Obwohl ich je eine Disk (-Seite?) für SJD64 und für SJD41 an die 64' er geschickt hatte, haben sie in 2/98 nur SJD64 veröffentlicht, SJD41 gar nicht. Die GO64 hat SJD noch nie veröffentlicht, obwohl ich ihnen auch die Disks geschickt hatte. D.h. alle SJD41-Patcher müssen von meiner Homepage sein.
    Dann habe ich meine Emails nach SJD durchsucht. Neben vielen Emails, in denen User schrieben, dass es mit dem Patchen geklappt hat, habe ich auch vier Mails mit Problemen:
    - $ec9b ist #$00 statt #$4c (das warst du). Ich habe keine Email gefunden, in der ich dir ein fertiges File gemailt habe. Also entweder habe ich aus deinem defekten File mein File für VICE erstellt oder der Patcher hat zweimal den gleichen Fehler gemacht.
    - $ec9b ist #$02 statt #$4c: Wieder die gleiche Speicherstelle falsch, aber ein anderer Bytewert.
    - sieben defekte Bytes an unterschiedlichen Stellen.
    - ein User hat die SJD-Files erzeugt, die unter VICE liefen, auf einer realen 1541 und einer 1541U nicht. Dann hat er die gleiche Prozedur nochmals absolut identisch gemacht und alles klappte.
    Ich habe jetzt mehrmals testweise SJD-1541-Files erzeugt, ich konnte keinen Fehler feststellen. Ich denke somit weniger, dass der Patcher einen Bug hat, vielmehr dass irgendwelche Datenbytes kippen, entweder beim Speichern auf bzw. Laden von Disk oder beim Transfer zwischen C64 und IBM-PC.

    Zitat

    Weiterhin ist mir aufgefallen, daß der Onlinepatcher aus den beiden vorhandenen JiffyDOS 5.0 Versionen das gleiche SJiffyDOS 1541 File (CRC32 3491B0A7) und das gleiche jd6.01_rom_c1541_fixed.bin (CRC32 6A055AAE) erstellt. Ist das korrekt?

    Ja, das ist korrekt. Egal ob JD-V5 oder JD-V6, der Patcher soll immer die V6-Routinen erzeugen.

    Zitat

    Ich habe die ganze Prozedur noch einmal mit Vice durchgezogen. Der C64 Patcher liefert genau das gleiche File wie der Onlinepatcher. Es kann also nur so sein (wie Du schon per Mail angedeutet hast), daß ich zufälliger Weise genau das gleiche File von Dir als meins angesehen habe und ich somit den gleichen Fehler in Deinem File gefunden habe ;-) Witzig.

    Oder umgekehrt; ich erinnere mich leider absolut nicht mehr.

    Zitat

    Also, alles gut, ich werde das fehlerhafte Image gleich löschen.

    Ja, das SJD-1541-File mit der CRC32 D3437663 sollte sofort gelöscht werden.