Der MC-68000-Computer

  • Wenn Du ein Oszi hast, dann bist Du ja schon gut dran ...

    Geht sie auf HALT und kriegst einen BusError?


    einen 4 bit zahler anschliessen, der nur 16 Zugriffe zuläst, und dann einen Reset gibt?

    So kannst Du ein stabiles Bild auf dem Oszi kriegen, und die Leitungen durchklingeln ...

    Oder HALT & RESET kurschliessen?

  • hab keinen BusError... nur Halt Low...


    ein reset einsprung ist nicht der gleiche wie bei power ON..

    mir ist absolte nich klar wo nach einem power on es im Code los geht....


    Rolf

  • Nach einem Reset holt er sich die Adressen aus den Zellen 0 bis 4 hier: 00 ff c4 00 00 ff 00 20. FF0020 ist die Einsprungadresse in den Monitor. Diese initiert den Start mit Adresse FF4BB2 --> RESET Entry im Monitor Listing. Da wird dann alserstesderAdressdecoder 2149 Initialisiert. Hier der Ausschnitt (siehe Handbuch):

    RESET: LEA $00000001,A0 ;A0 = Zähler

    LEA $00004000,A1 ;A1 = Schrittweite 16k

    LEA $01000001,A2 ;A2 = Abbruch

    MOVEQ #$F6,D0 ;#$F6 = BERR

    set2149: MOVE.B D0,(A0) ; schreiben

    ADDA.L A1,A0 ;16k weiter

    CMPA.L A2,A0 ;Ende erreicht?

    BCS set2149 ;nein Schleife

    MOVE.B #$f3,$00ff0001 ;Monitor Teil 1

    MOVE.B #$f3,$00ff4001 ;Monitor Teil 2

    MOVE.B #$f2,$00fe8001 ;CP/M Sockel setzen

    MOVE.B #$f2,$00fec001 ;Teil 2

    MOVE.B #$f0,$00ff8001 ;Graphikseite

    MOVE.B #$f0,$00ffc001 ;Systemspeicher

    LEA $00fe4000,A0 ;I/O Pointer

  • nicht nach einem Reset ! nach Power ON !

    Der 68000 kennt nur den RESET. I.a. wird das RESET nach dem Power On von einem Baustein o.ae. generiert.


    Beim 68000 muessen aber m.W. HALT und RESET gleichzeitig low sein.

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

  • hmmm... auf dem Blat 4 gibt es Boot und Reset correct, Boot activiert ueber die IC' IC48 und IC42 den CS low fuer die Eproms und der CPU Addrescounter startet bei 000000... also FF0000... richtig ???

  • Die 68000er liest nach dem RESET den Stackpointer von Adr 0 und den PC von Adresse 4. Danach geht's beim PC weiter, in deinem Fall wohl FF0020 oder so.


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

  • Ja, o.k ahora das ist jetzt verstaendlich 1 ich sehe es jetzt im Listing , da ist in der Sprung Tabelle am letzten Platz BRA.W RESET OOOO.KKKK

    danke danke ! das heisst auch schreiben in den Adress Decoder besagt in A0 = 0 also alle Addressen von A14 bis A23 muessen Low sein...


    das kann ich jetzt mal pruefen,,, +)

  • das heisst auch schreiben in den Adress Decoder besagt in A0 = 0 also alle Addressen von A14 bis A23 muessen Low sein...

    Ich kenne die Schaltung nicht und kann dir daher nicht folgen.

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

  • part1 ist lower (D8-D15), part2 ist upper (D0-D7)

    Da bin ich mir nicht mehr sicher.


    Ich bin von folgender Speicherzuordnung ausgegangen:


    Richtig ist somit part1 enthaelt D15-D8, part2 D7-D0.

    Nach meinem Verstaendnis sind die Adressen fuer D15-D8 lower (+0) und fuer D7-D0 upper (+1).


    Jetzt bin ich im 68000 UserManual auf den Buszugriff gestossen:


    Im 2. und 3. Zugriff sind Bytezugriffe dargestellt und wie mal klar sieht bezieht sich das LowerDS auf D7-D0 und das UpperDS auf D15-D8.

    Motorola bezieht sich auf die Datenbushaelfte und nicht auf Adressen.


    Also part1 EPROM in den Sockel an dem D15-D8 angeschlossen sind und part2 an D7-D0.

    Egal ob Lower oder Upper.

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

  • einen 4 bit zahler anschliessen, der nur 16 Zugriffe zuläst, und dann einen Reset gibt?

    So kannst Du ein stabiles Bild auf dem Oszi kriegen, und die Leitungen durchklingeln ...

    Gute Idee. Werde ich mir mal merken.

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

  • Hallo Rolf,


    muß das trotz allem noch mal in den Ring werfen. Im Handbuch ist eine Schaltung beschrieben mit der man den Reset Vorgang im Einzelschritt verfolgen kann. Dazu wird das DTACK (IC20 Pin 5) Signal abgehängt und der DTACK per Taster ausgeführt. Dann muß nach dem RESET zunächst die Adresse 0 anliegen, also alle Adressleitungen 0. Auf den Datenleitungen liegt dann das erste Datumaus dem Listing. Nach dem 1. DTACK muß die Adresse dann 4 sein, das Datum 00FF0020. Das muß funktionieren, sonst läuft die CPU nicht.

  • Nach dem 1. DTACK muß die Adresse dann 4 sein

    Jetzt übertreib mal nicht. ;)

    Der 68000 hat "nur" einen 16bit Datenbus, also kommt nach dem 1. DTACK die Adresse 2. Wobei man das imaginäre A0 mitrechnen muss.

    Aber ausser meinem Besserwisser-Modus bin ich bei dir.

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