Beiträge von Ruudi im Thema „Wurde jemals eine 6502 ohne "JMP indirect bug" gefertigt?“

    Geweigert nicht, aber ne "warning" kam zumindest bei einem der Assembler, die ich damals in der Hand hatte, welcher genau das war? 35 Jahre (oder mehr) her...

    Aber es geht doch mehr drum, ob ein Compiler oder auch eigenständiger (Makro-)Assembler SELBST diese kritischen Adressen gewählt hätten *) und ob ihnen die Konsequenz bekannt war, sprich ob dann in der memory-map auch 300 und 3ff dafür als belegt galten oder eben fälschlicherweise 3ff und 400 mit Absturz/Fehlverhalten als Konsequenz.

    Kann mir NICHT vorstellen, das sowas Elementares NICHT abgefangen worden wäre in solchen Produkten...

    Und wäre es im Chip/Maske korrigiert worden, dann hätte in Konsequenz JEDER Compiler/Assembler nach dem GENAUEN Target fragen müssen und DAFÜR hätte es auch ein unterscheidbares Marking der CPUs gebraucht, sowas ist mir aber nicht bekannt, das A/B/C dahinter steht bekanntlich für 2/3/4 Mhz maximaler Frequenz, aber die funktionieren austauschbar auch in ältesten 1MHz-Geräten, dem wäre ja auch nicht so, wenn das geändert worden wäre...

    Insofern war mein logischer Schluss draus, dass es keine solche Änderung gegeben hat, das deckt sich -für NMOS- auch mit Aussagen diesbezüglich von Leuten wie androSID, die sich die Chips im Detail angesehen haben.

    *) Besser ist natürlich, man hält sich konsequent an ein korrektes Alignment und nutzt somit im Falle der 6502 nur gerade Adressen als Vektoradresse für ind. Sprünge, dann passen auch 128 Vektoren konfliktfrei auf eine Speicherseite.

    Und so war das auch zu verstehen und nachdem auch hinter nem Compiler üblicherweise ein Assembler "werkelt", wenngleich nicht unbedingt separat aufrufbar/nutzbar, hatte ich das so formuliert.

    Ja, soweit mir bekannt, blieb das unverändert, denn es wurde logischerweise mit in die Compiler/Assembler übernommen (sprich die nutzten nur die Werte bis FE) und "gute" Disassembler kannten wohl den Sonderfall und zeigten es vermutlich korrekt an.

    Daher gibt es vermutlich auch für die C-Mos-Varianten nur wenig Code, der ein möglicherweise dort korrigiertes Verhalten nutzt (denn mit Nutzung eines entspr. Schalters im Compiler/Assembler hätte man ja bewusst die Kompatibilität zu den klassischen 6502 aufgegeben), aber man kann sich damit (wie auch mit jeder anderen Abweichung) eine Erkennung auf welcher CPU-Variante man gerade "unterwegs" ist implementieren :wink:

    Bleibt die Frage: wurde es wirklich in den C-MOS-Varianten korrigiert?

    Denn das hätte ja -im Umkehrschluss- eine Inkompatibilität dann zur Folge gehabt, wenn dieser Befehl auf 6502 bewusst genutzt wurde. Also im obigen Beispiel 6C FF 03 gecodet wurde, um ABSICHTLICH nach den "getrennt" in 03FF/0300 gespeicherten 16bit-Vektor zu springen. *)

    Damit hätte man also als Programmierer ein Werkzeug, um eine Ausführung auf nem C-MOS-Derivat definitiv zu verhindern...


    *) OT: Als reine 8-bit Architektur war ja auch die Lage im Speicher "alignment", sprich ob der Vektor auf even-odd oder odd-even lag zunächst egal, bei vielen 16bittigen Architekturen wurde so was (also Start auf odd) auch für deren "Schmalspur"-Ableger mit extern nur 8bit Bus natürlich verhindert, da man es hätte gesondert behandeln müssen im eigentichen Core.

    OT2: "Feichtinger"? Ist das wohl der gleiche Feichtinger, der so rein textbasierte Seiten zu alten (commodore-) Computern gehostet hat, über die man immer wieder mal bei Google-Suche stolpert und darüber wohl auch ne Weile mal nen "Abverkauf" seiner Bestände gemacht hatte, es dann aber als Art "Archiv" hat stehen lassen, oder spielt mir da mein Gedächtnis jetzt einen Streich?

    siehe hier: der o.g. Autor war wohl auch Chefredakteur der MC und "Erfinder" der EMUFs: Bitte melde dich an, um diesen Link zu sehen.

    War mir jetzt nicht mehr so bewusst, weiß nur, das auch RDK (Rolf-Dieter-Klein) viel in der MC publiziert hatte zu der Zeit...

    der dort gezeigte "kleinere Formfaktor" EMUF mit 80C537 von Siemens, erinnerte mich sehr an das damals in der Industrie weit verbreitete und erfolgreiche MiniMod537 der Firma Phytec, das jedoch schon auf smd basierte und nochmals etwas kleiner (vorallem schmäler wohl ) ist. Das war wohl somit auch (vom Formfaktor/Konzept her) Urahn aller Raspis und Arduinos heutzutage...