Der MC-68000-Computer

  • Ich habe mich mal bei gemacht und habe den Source Code aus der mc68000 Dokumentation als Quell Listing verfügbar gemacht.


    Die entsprechende(n) Datei(en) sind (nur) für Vereinsmitglieder wie folgt zu finden:

    Geschützt: mc68000 – EPROMs & Source Code aus verfügbarer Dokumentation
    • Author/Ersteller: Herr Völzke • Bereitgestellt von: https://www.cenarioworld.de/mc68000/ • Eingestellt & bearbeitet von: tokabln Letzte Aktualisierung:…
    www.classic-computing.org


    Für den Zugriff auf diesen Link ist die Information von hier notwendig.

    forum.classic-computing.de/for…&postID=469404#post469404

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • trazom : Hast nee PM...

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • hallo,


    habe mal eine frage.. habe fuer den mc68000-2 das monitor listing. habe im hexeditor angeschaut und habe da verstaendnis problem

    dann Romsplit durchgefuehrt und bekomme Part.1 und Part.2, Nun ist mir nicht klar welches Upper und Welches Lower ist.


    Gruss,


    Rolf

  • Hinweis zu dem Sourelisting so wie ich es beim Abtippen erlebt habe:


    Ich weiß nicht welcher Assembler urpünglich zum Einsatz gekommen ist. Bei Verwendung des „Easy68K“ Assemblers werden Fehler ausgegeben. Diese umfassen zunächst Label die im Original groß- oder kleingeschrieben sind aber unterschiedliche Aufgaben erfüllen. Beispiel: „ctrlTAB“ bzw. „ctrltab“ oder „nochange“ und NOCHANGE“ welche unterschiedliche Aufgaben abarbeiten. Der „Easy68K“ gibt hier Fehler aus (ist nicht case sensitiv). Auch finden sich im Original Source Codelisting in einigen Labels Sonderzeichen wie z.B. „>„, „§„, „^“ etc. Auch diese werden vom „Easy68K“ Assembler als Fehler interpretiert.


    Mittlerweile vermute ich, das VASM als Assembler in der Vergangenheit bei der ursprünglichen Erstellung zur Anwendung kam. Das ist aber nicht bestätigt.

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • Ich weiß nicht genau, unter welchem OS und mit welchem Editor du die Listings erstellt hast; aber die \x92 waren wahrscheinlich mal U+2019 (Right Single Quotation Mark) und sollten wahrscheinlich eher U+0027 (Apostrophe) sein.

            move.w  #%0010011100000000,sr

  • Auch finden sich im Original Source Codelisting in einigen Labels Sonderzeichen wie z.B. „>„, „§„, „^“ etc. Auch diese werden vom „Easy68K“ Assembler als Fehler interpretiert.

    Ich tippe auf ein Zeichensatzproblem beim Ausdruck/Listing.

    Wenn man sich die Texte im ROM ansieht, dann liegt das kleine "ü" bei 0x7D - da gibt es nicht viele Zeichensätze, kommt eigentlich nur DIN 66003 (ISo 646 Variante 21) in Frage. Dann wäre das "§" möglicherweise ein "@" (wenn ich es im Kopf nicht gerade verdreht habe).

            move.w  #%0010011100000000,sr

  • Ich weiß nicht genau, unter welchem OS und mit welchem Editor du die Listings erstellt hast; aber die \x92 waren wahrscheinlich mal U+2019 (Right Single Quotation Mark) und sollten wahrscheinlich eher U+0027 (Apostrophe) sein.

    nicode :

    Das muß ich mir mal anschauen, Danke. Das Listing wurde unter Windows 7 mit dem Easy68K Editor abgetippt. Aber das war denke ich nicht das Problem. Im gedruckten und eingescannten Sourcecodelisting der Originaldokumentation zum MC68000 sind diese Sonderzeichen bereits so enthalten... möglicherweise mit Absicht ?!?


    Beispiele:

    no^s2:

    MOVE.L 8,§BERRSAVE

    MOVEA.L §A7SAVE,A7

    BSR INITVIA'S

    JMP §MATRIXERW


    Auch gibt es dort zwei Vektoren die keinerlei weitere Entsprechung innerhalb des gedruckten Listings aufweisen.


    Beispiel "DEPACK" was möglicherweise auf Motorola's DESPACK hinweist...

    MOVE.L #DEPACK,-$1C00(A0)


    Das mal als Beispiele. Das INITVIA'S oder no^s2: kann man leicht entschärfen aber bei den § z.B. fehlt mir das Verständnis. Vielleicht hast Du ja einen Hinweis.

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • [...] aber bei den § z.B. fehlt mir das Verständnis. Vielleicht hast Du ja einen Hinweis.

    Ich habe nochmal nachgesehen... es scheint ja ein eigener Asm-Dialekt im ROM enthalten zu sein.

    ORG ist soweit klar und üblich, um die aktuelle Basisadresse festzulegen (in diesem Fall wohl ROM-Code).

    Dann gibt es aber noch OBJ, ähnlich, aber hier scheint es sich um RAM-Datenblöcke zu handeln (ähnlich SECTION mit R/W).

    Die § scheinen "Modul"-übergreifende Referenzen zu sein (bei anderen Assemblern würden die 'externen' Referenzen mit XREF bekannt gemacht).


    141.rom (141LOW.BIN/141UPP.BIN) ->sicher, dass der Dump korrekt ist? Ziemlich früh im RESET-Code sind schon merkwürdige Bits 'gedreht', die zu ungültigem Code führen.


    143.rom -> sicher, dass das Listing zum ROM passt? Grob passt es, aber einige Funktionen sehen leicht bis deutlich anders aus.

    edit: letzteres hat sich erledigt, wer lesen kann ist klar im Vorteil: "Sourcelisting des mc 68.000-Monitors Version 2.2"

            move.w  #%0010011100000000,sr

    Edited once, last by nicode ().

  • Ich habe nochmal nachgesehen... es scheint ja ein eigener Asm-Dialekt im ROM enthalten zu sein.

    ORG ist soweit klar und üblich, um die aktuelle Basisadresse festzulegen (in diesem Fall wohl ROM-Code).

    Dann gibt es aber noch OBJ, ähnlich, aber hier scheint es sich um RAM-Datenblöcke zu handeln (ähnlich SECTION mit R/W).

    Die § scheinen "Modul"-übergreifende Referenzen zu sein (bei anderen Assemblern würden die 'externen' Referenzen mit XREF bekannt gemacht).

    Dokumentation lesen hilft, 5.3 Seite 3 (§ = absolute Adresse, ORG = PC+LC, OBJ = PC).

    Da die Möglichkeiten der Nutzung durch Kapitel 7 eingeschränkt sind, bin ich erst mal raus (also kein öffentliches Ghidra-Projekt for BIOS und/oder Monitor in Version X).

            move.w  #%0010011100000000,sr

  • Habe hier die Monitorversion 2.3, gedumpt unter OS9 und unter Linux bearbeitet. Bin gerade dabei das Ganze mit einem Disassembler (dis68k) zu erhellen. Dis68k ist ein git Projekt, mußte den allerdings schon an einigen Stellen korrigieren. Vorteil ist, dass auch die nicht im Dokument vorliegenden Teile berücksichtigt werden können. Ist allerdings ziemlich aufwändig und wird noch eine Weile dauern.

  • Mittlerweile vermute ich, das VASM als Assembler in der Vergangenheit bei der ursprünglichen Erstellung zur Anwendung kam. Das ist aber nicht bestätigt.

    Das ist einigermaßen unwahrscheinlich. VASM gibt es m.W. erst seit weniger als 10 Jahren.

  • Mittlerweile vermute ich, das VASM als Assembler in der Vergangenheit bei der ursprünglichen Erstellung zur Anwendung kam. Das ist aber nicht bestätigt.

    Das ist einigermaßen unwahrscheinlich. VASM gibt es m.W. erst seit weniger als 10 Jahren.

    Danke für diese Info, das hatte ich nicht recherchiert... ich hatte angenommen das es den schon länger gibt.

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • Habe hier die Monitorversion 2.3, gedumpt unter OS9 und unter Linux bearbeitet. Bin gerade dabei das Ganze mit einem Disassembler (dis68k) zu erhellen. Dis68k ist ein git Projekt, mußte den allerdings schon an einigen Stellen korrigieren. Vorteil ist, dass auch die nicht im Dokument vorliegenden Teile berücksichtigt werden können. Ist allerdings ziemlich aufwändig und wird noch eine Weile dauern.

    Wenn man gemeinsam daran arbeiten möchte, dann kann ich meinen privaten Ghidra-Server anbieten, ghidra.nicode.net

    (habe bios31.dat und mon22.dat dort geladen, aber das Projekt ist wegen der Lizenz nicht öffentlich)

            move.w  #%0010011100000000,sr

  • Mittlerweile vermute ich, das VASM als Assembler in der Vergangenheit bei der ursprünglichen Erstellung zur Anwendung kam. Das ist aber nicht bestätigt.

    Das ist einigermaßen unwahrscheinlich. VASM gibt es m.W. erst seit weniger als 10 Jahren.

    Danke für diese Info, das hatte ich nicht recherchiert... ich hatte angenommen das es den schon länger gibt.

    Hab' noch mal nachgeguckt - vasm gibt es tatsächlich seit 2002, das paßt aber trotzdem nicht.

  • habe leider eine schlechte Nachricht. Meine 6 Monatige Arbeit ist leider nicht erfolgreich....

    Nach sehr kurzzeigem Zugriff auf die Rom's geht die ZPU auf HALT ... das war's dann mal. :(

    Das heisst aber nicht, das deine Arbeit nutzlos ist. Wenn eine solche komplexe Fädelkarte auf Anhieb funktioniert, ist das einem Lottogewinn gleichzusetzen.


    Anhand deiner letzten Frage zu den EPROM (upper, lower) hast du wahrscheinlich eine bestehende Software benutzt.

    Zur Fehlersuche würde ich eigene Software schreiben, die immer nur genau ein (Funktions-)Teil prüft. Und dann eben Stück für Stück durcharbeiten.

    Ich weiss, das dauert. Aber nur so ist Fehlersuche erfolgreich.


    Viel Erfolg

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Hallo Rolf,


    ich nehme einmal an, dass du das Kapitel 4 des Handbuchs schon gelesen hast. Ich hatte auch mal Probleme mit meinem System, da hat mir der Hardware Singlestep einigermaßen weitergeholfen. Die EPROMS sitzen im richtigen Slot? Upper/Lower des EPROMS ok ? Upper/lower korrekt? Hast du Monitor oder Terminal angeschlossen?

    Das wird schon


    Gruß Uwe

  • Hallo Uwe,


    Terminal und OnBord geht nicht... Upper und Lower sind korrekt. ..


    hatte noch mal meine Verdrahtung geprueft und drei probleme aufgespuert. 1. Blatt 10 Parallel KBD unten das Signal SERKBD/Low ... ganz Toll das kann NIE high werden, weil das IC86 / LS14 den Pegel immer auf LOW held.

    2. Blatt 6 / 7 Signal CRTC/LOW da stimmt etwas mit der Blatt zuordnung nicht .

    3. Blatt 11, die beiden VIA's da ist die DATEN zuordnung LSID0.... LSID7 ist falsch ! IC56 VIA mit muss mit LSID8 bis LSID15 verdrahted sein. Habe ich nachtraeglich korrigiert.

    der ADDRES DECODER wir nicht programmiert weil die CPU auf HALT / LOW geht. Aus diesem Grund functioniert auch der Stngle Step nicht....


    Gruesse,

    Rolf

  • Hallo Rolf,


    wie auf Seite 3/4.3 beschrieben ist der Adressdekoder beim Reset nicht eingeschaltet. Wie auf Seite 4/4.2 Checkliste i) beschrieben müßte das Laden des SSP im Singlestep zu beobachten sein wie beschrieben müßten nacheinander 00FF,C400,00FF,0020 und 6000am Datenbus erscheinen.Der Adressdekoder wird erst später eingeschaltet und programmiert


    Gruß Uwe

  • Uwe, das nuetzt alles nicht's wenn der Singel Step nicht funct .... einen Logic Analizer habe ich nicht. Auf dem Scope kann ich nur sehen das ein

    sehr kurzer zugriff auf die Rom's statt findet und die CPU auf HALT geht....


    Rolf