Projektvorschlag 1570-II

There are 285 replies in this Thread which has previously been viewed 41,752 times. The latest Post (June 27, 2021 at 6:36 PM) was by kinzi.

  • Die Differenzen 1570 <-> 1571 auf die 1571CR zu portieren, um eine 1570CR (und damit 1570-II) zu haben. Aber DAS ist eine Menge Holz ...

    Bist du sicher? IIRC ist der Unterschied 1570 / 1571 eher gering. Viele der Unterschiede, dich ich mit COMPILE_DRIVE unterscheide, ließen sich durch ordentliche Definitionen noch mehr streamlinen.

  • Bist du sicher?

    Ja, für mich ist das eine Menge Holz. Da bin ich mir sicher. :biggrin:

    das DIFF

    Ja, ich hatte mir den Unterschied schon mal rausgelassen ...

    Es fängt schon damit an, dass ich nicht weiß, was ich alles brauche, um deinen Source überhaupt mal assembliert zu bekommen ... (ich gebe zu, ich war bisher zu faul dazu, mir das durchzulesen ... :rolleyes: )

  • Das angehängte DIFF ist von der Ausgabe der Assemblierung. Das kann man direkt zum Patchen nutzen.

    Zum Kompilieren: Es hängt davon ab, ob du ein Linux nutzt? Dann benötigt du nur den cc65 Compiler (genauer: dan ca65 Assembler daraus). Ins Hauptverzeichnis, 'make' eingeben, und über das Ergebnis freuen. :)

    Unter Windows geht es nicht so einfach. Da benötigst du erst einmal eine Unix-artige Umgebung. GNU Make, GNU diff, sed (obwohl man das auch hätte anders hinbekommen können - damals konnte ich viel weniger bash als heute!) sollten reichen. Ob das Linux-Subsystem von Windows 10 dafür ausreicht weiß ich nicht, als ich damals noch Windows nutzte habe ich Cygwin dafür genommen.

  • Zum Kompilieren: Es hängt davon ab, ob du ein Linux nutzt?

    Ja. :smile:

    nd über das Ergebnis freuen. :)

    Versuche ich! Jetzt hast du meine Neugier geweckt ... ^^

    Das angehängte DIFF ist von der Ausgabe der Assemblierung. Das kann man direkt zum Patchen nutzen.

    Hmmm ... der 1571 und der 1571CR-Code unterscheiden sich ja auch. Blindes Patchen klappt da MMN nicht, man muss immer im Source nachschauen, was da genau gemacht wird, meine ich. Oder bist du dir sicher, dass alles, was die 1571CR-Besonderheiten betrifft (5710 bzw. WD177x, usw.) irrelevant ist? Könnte sein ... es geht ja eigentlich um ein- oder zweiseitig ...

  • Die Änderungen betreffen zum größten Teil den Unterschied im maximalen Track (35 vs. 70). Bei der 1571 gibt es eine Variable ($02AC), die gelesen wird. Bei der 1570 wird immer $FED7 aus dem ROM genommen. Somit läuft auch das Setzen des maximalen Tracks ins Leere.

    Ansonsten gibt es noch ein paar Timer-Konstanten, die anders sind - vermutlich, weil es ja eine andere Laufwerksmechanik ist. Die 1570 nutzt die Parameter der 1541, während die 1571 leicht andere Konstanten hat.

    Dann sind noch ein paar kleinere Patches, die aber meiner Erinnerung nach in der 1571-05 teilweise schon vorhanden sind. Die 1570-01 scheint mir ein Zwischenschritt zwischen 1571-03 und 1571-05 zu sein. Allerdings habe ich das im einzelnen jetzt nicht getestet, sondern sage es aus der Erinnerung.

  • Gut, ich kann ja mal den DIFF drüberbraten, viel schiefgehen kann ja nicht ... :biggrin:

    Betreffend Prüfsumme. Ist dir ein Generator für die ROM-Prüfsumme bekannt? (Also was Gebrauchsfertiges für den PC, meine ich.)

  • Ich habe eine 1541-II mit defektem Gate Array, dieses habe ich anfangs ausgerechnet für dieses Projekt hier zum Testen genommen und stundenlang gesucht, warum meine Platine nicht funktioniert.

    Oha, naja einmal ist immer das erste mal. Die 1541-II hatte ich noch nie so genau anschauen müssen und mir war gar nicht bewusst, dass sie auch den 251828-03 Gate Array hat. Eben mal geschaut, bei mir von Ricoh. Kein Datecode, der Rest der Chips von ca. 9130

    Sind die 42-poligen immer Rev -01? Ich meine, ich hätte die auch als -02 gesehen. Von daher (und siehe nächster Absatz) glaube ich nicht, dass es daran lag, dass die schneller verfügbar waren.

    Also ich bin insgesamt 9 Gate Arrays habhabt geworden:

    3x HD61J215 (42polig) - scheint 251828-02 zu sein

    5x C= 251828-01 (40-polig) - im Netz hab ich sogar ein Foto mit Produktionsdatum 8749 gesehen

    1x MOS 251828-03 (40-polig) - neueres Lw aus 1989

    die -01 waren evtl. als erstes produziert, dann wi du sagtest wegen Bedenken die -02er eingesetzt und dann wurde rausgefunden, dass die -01er doch funktionierten und dann natürlich auch verbaut. Aber das ist natürlich alles Spekulation.

    Man müsste mal die ganzen alten Commodore Tech News durchgehen, da findet sich vermutlich der HInweis. Die liegen glaube ich bei UPE noch auf der Webseite rum, gut versteckt.

    Gute Idee, vielleicht gibt es dort Informationen dazu.

  • Dann sind noch ein paar kleinere Patches, die aber meiner Erinnerung nach in der 1571-05 teilweise schon vorhanden sind. Die 1570-01 scheint mir ein Zwischenschritt zwischen 1571-03 und 1571-05 zu sein. Allerdings habe ich das im einzelnen jetzt nicht getestet, sondern sage es aus der Erinnerung.

    Das sieht so aus, ja - ganz viele Unterschiede 1570-01 vs. 1571-03 sind im Vergleich 1570-01 vs. 1570cr-01 nicht mehr vorhanden.

    Lustig ist das mit MAXTRACK ... da wird der STA zum Setzen ins ROM(!) ausgeführt (und bewirkt damit natürlich nichts). Sehr eigenwilliger "workaround". ^^

  • Dann sind noch ein paar kleinere Patches, die aber meiner Erinnerung nach in der 1571-05 teilweise schon vorhanden sind. Die 1570-01 scheint mir ein Zwischenschritt zwischen 1571-03 und 1571-05 zu sein. Allerdings habe ich das im einzelnen jetzt nicht getestet, sondern sage es aus der Erinnerung.

    Das sieht so aus, ja - ganz viele Unterschiede 1570-01 vs. 1571-03 sind im Vergleich 1570-01 vs. 1570cr-01 nicht mehr vorhanden.

    Lustig ist das mit MAXTRACK ... da wird der STA zum Setzen ins ROM(!) ausgeführt (und bewirkt damit natürlich nichts). Sehr eigenwilliger "workaround". ^^

    Ich hatte gestern mal angefangen, war aber nicht fertig geworden:

    Unterschiede 1570-01 und 1571-03:

    $8000/$8001: checksum

    $84E4: 1571-03 springt nach $A989 ("track formatieren"), 1571-05 und 1570-01 nach $AA4D. Letztes merkt sich die Tracknummer, schaltet die LED ein, formatiert dann (auch $A989) und schaltet danach die LED wieder aus.

    $87D8: unterschiedliche Verzögerungen

    $8827: unterschiedliche Verzögerungen

    $8FD4: jmp $9021 - wechseln auf Seite 1 (U0>H1) gibt "31, SYNTAX ERROR". Die Routine wird also "stillgelegt"

    $90D9: ist komisch. Der Patch bei der 1570 isoliert bits 0-3 (and #$07), ansonsten ist der Code gleich. Das 1571-05 ROM macht das wiederum nicht. Keine Ahnung, wieso der Patch dort eingebaut wurde. Scheint mir nicht wirklich wichtig zu sein, oder ich übersehe etwas.

    Übrigens ist "Die Floppy 1570/1571" hier nicht ganz richtig im Listing. 90db müsste mit *1 gekennzeichnet sein, und *0 90dc nop" müsste es auch noch geben.

    $A40F, $A597, $A671, $A7D7, $A941, $A95B, $CD22, $D51D, $D563, $EF2F, $F147, $F1D5: Das ist der Unterschied mit Lesen der maximalen Track-Nummer aus $02AC (1571) oder $FED7 (1570), wie vorhin mal beschrieben

    $A6C4, $A6DF, $A726, $A773, $FF3F, $FF96: Wie oben. Allerdings betrifft es da STA, d.h., das SETZEN der maximalen Track-Nummer. Das Schreiben ins ROM geht natürlich schief und wirkt wie ein NOP

    $A445: Das RTS/NOP in der 1570 inaktiviert die Behandlung der 2. Diskettenseite beim Formatieren

    $A4D6: Hier wird der Autor verewigt: 1571-03 niemand, 1570-01 "STEVE LAM", 1571-05 "DAVID G. SIRACUSA". Ohne Funktion

    $A7B3: Den Patch der 1570 hat die 1571-05 auch

    $A7C7: Den Patch der 1570 hat die 1571-05 auch. Die 1571-03 hat die BAM im 1571-Modus anders erzeugt. Das dürfte einer der Fixes sein, die bei einseitigen Disketten Probleme bereitete.

    $AA3F-$AA68: Patches der 1570, die die 1571-05 auch hat.

    $C000: Checksumme

    $D03F, $D05D, $D097: die Version der 1570-01 ist wie bei der 1541. Der zusätzliche Code wird nur für 2-seitige Disketten benötigt

    $D367: Hier testet die 1570-01 auf "Drive not ready". Warum weiß ich auch nicht. Die 1571-03 und -05 macht das nicht

    $E5C7: Einschaltmeldung ("1570" vs. "1571")

    $ED8F: Die 1570-01 nutzt den 1541 code zum BAM erzeugen; die 1571 hingegen testen die Doppelseitigkeit

    $EE40: Extra-Behandlung bei der 1571 für die 2. Diskettenseite; 1571 wie 1540

    $EEB1: keine Ahnung, was diese Änderung soll. 1570 wie 1541, 1571 verstehe ich nicht

    $EF28, $EF37, $EF5F, $EF93, $F001, $F005, $F09C, $F107, $F12D, $F1C4, $F1DF, $F1FA, $F24B: 1571 behandelt zweiseitige Disketten, 1570 wie 1541.

    $F98A: unterschiedliche Anlaufverzögerung. Interessant, dass die 1570 einen mehr als doppelt so großen Wert wie die 1541 nutzt. Möglicherweise liegt es am 2-MHz-Modus? (nicht überprüft)


    Das mit dem MAXTRACK ist klar, wie es umgesetzt wurde: Da wurde einfach ein LABEL anders definiert. Das ist übrigens auch deshalb interessant, weil die Floppys keine saubere Adressdekodierung umsetzen. Wenn Zugriff auf $8000-$FFFF erfolgen, dann wird das ROM mit CS freigeschaltet. Wenn nun ein Speicherbefehl dort ist, dann treiben ROM-Chip und 6502 den Datenbus gleichzeitig (und damit gegeneinander).

    Das scheint aber nicht zu defekten geführt zu haben. NMOS scheint da allgemein recht unempfindlich zu sein.

  • Ich meine mich zu erinnern, dass die Unterschiede der 1570 in einem der bekannten Bücher gut dokumentiert sind. Entweder das M&T oder das DB Buch. Weiss leider gerade nicht wo ich meine habe :(

    Code: Floppy Fehlerkanal abfragen - Ausserdem kann ich bei "drive not ready" den I: und N: Befehl verwenden und notfalls den Kopf manuell zurückschieben. Und Finger weg vom Stepper!
    10 open1,8,15                   : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    20 get#1,a$:?a$;:ifst<>64goto20 : rem Das CLOSE 1 am Ende kann man sich sparen, weil beim RUN automatisch ein CLOSE ALL ausgeführt wird.
    RUN
  • ch meine mich zu erinnern, dass die Unterschiede der 1570 in einem der bekannten Bücher gut dokumentiert sind. Entweder das M&T oder das DB Buch. Weiss leider gerade nicht wo ich meine habe

    Nimm das hier: Please login to see this link.

    Wie in meiner Liste oben angegeben enthält das Buch aber auch Fehler.

  • etreffend Prüfsumme. Ist dir ein Generator für die ROM-Prüfsumme bekannt? (Also was Gebrauchsfertiges für den PC, meine ich.)

    Eine einfache Möglichkeit ist, den Prüfsummencheck zu deaktivieren: Bei der 1570/1571 die Speicherstelle $EAE4 durch zwei NOP ($90) ersetzen

  • Ein Archiv der Tech-News? Gibt es da einen Link drauf?

    Ich meine, ich hatte hier mal was gefunden:

    Please login to see this link.

    Muss aber erst wieder graben. Das ist UPE's(+) Webseite.

    Eine einfache Möglichkeit ist, den Prüfsummencheck zu deaktivieren: Bei der 1570/1571 die Speicherstelle $EAE4 durch zwei NOP ($90) ersetzen

    Ja, das hatte ich vorübergehend so gemacht. Das gefällt mir aber nicht. Es muss schon 100 % sein. :biggrin:

    Inzwischen habe ich ja die Lösung, den Checksummencode auf dem 64er laufen zu lassen. Das klappt einwandrei und so oft werde ich da nicht mehr dran drehen. Hoffe ich. :biggrin:

  • Please login to see this attachment.

    Das ist ja richtig hohes Patching, was ihr hier veranstaltet. Zeit dass der Lockdown kommt, damit ich mich zu Hause am Unterseitenetikett versuchen kann, ehe es zu Sammelbestellungen kommt. Abgesehen davon muss ich mir dann wohl auch mal Please login to see this link. vornehmen, um diese zwei neuen Laufwerke zu würdigen (verhält sich von der Programmierung zu dem was ihr da treibt, aber wie Fahrradreifenflicken zum Bau der Saturn V 8o).

    Ideen, die ich mit eurer Hilfe gerne wahr machen würde:

    1. Eine wirklich neue Maus am C64 auf Basis der Please login to see this link.

    2. Die erste echte Maus für die 264er mittels Anschluss einer Please login to see this link.

  • Ich meine, ich hatte hier mal was gefunden:


    Please login to see this link.


    Muss aber erst wieder graben. Das ist UPE's(+) Webseite.

    Bei Zimmers gibt es auch welche:

    Please login to see this link.

    Ich meine mich zu erinnern, dass UPE auf seinem Datengrab mehr davon hatte.

  • Das ist ja richtig hohes Patching, was ihr hier veranstaltet.

    Die Einschaltmeldung "muss noch anders" ... ich hatte da "1571-II" reingeschrieben, das ist sicher eine ganz blöde Idee, wie mir heute Nacht eingefallen ist, weil an dieser Stelle alle Laufwerke ihre ID präsentieren (bis auf die 1551, aber die läuft sowieso nur am 264 und muss daher nicht identifiziert werden ...). Das habe ich mit dieser Änderung verbockt und muss es wieder korrigieren.

    Irgendwie würde ich trotzdem gerne das geänderte (gepatchte) ROM kennzeichnen, damit einem der Unterschied auffällt. Wahrscheinlich frickle ich irgendwo ein "+" rein.

  • Unterschiede 1570-01 und 1571-03:

    Danke, das meiste habe ich mir zusammengereimt, bzw. ich habe geschaut, was dort dann so passiert. Ich denke, ich hab's zusammenbekommen. Für einen Test (mehr als einschalten) war es um 02:30 zu spät ... :zzz: