Beiträge von Uwe

    Hallo Rolf,


    bin jetzt ein paar Tage in Urlaub wo ich keinen Zugriff habe, danach wieder dabei (Rückkehr 5.5.). Noch eine Frage: läufst Du durch die MONITOR Software zu der 2149 Programmierung, oder ist das abgeklemmt?

    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.

    Habe bezüglich verwendeten Assembler noch mal bei Herrn Völzke nachgefragt, seine Antwort:

    Der Monitor wurde damals mehr oder weniger im Bootstrap-Verfahren mit sich selbst programmiert.

    Wir hatten damals ein Motorola Entwicklungsboard - es könnte sein, dass es dieses hier war: https://en.wikipedia.org/wiki/Motorola_68000_Educational_Computer_Board

    Ein Apple-II-Clone diente als Terminal.

    Der Assembler des Entwicklungsboards war aber so fehlerhaft, dass wir zunächst eine rudimentäre Version der Monitorsoftware gebaut hatten und dann mit dieser selbst weiter entwickelt haben. Das nennt man dann eben das Bootstrap-Verfahren.

    Auszug aus dem Datenblatt:

    When RESET and HALT are driven by an external device, the entire system, including the processor, is reset. Resetting the processor initializes the internal state. The processor reads the reset vector table entry (address $00000) and loads the contents into the supervisor stack pointer (SSP). Next, the processor loads the contents of address $00004 (vector table entry 1) into the program counter.

    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 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

    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

    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

    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.

    Ich habe mal einen Entwurf für System II im mame framework angefangen. Monitor 2.2 bleibt an der Stelle waitlow (siehe Handbuch System II)hängen weil der Status des Via Registers sich nicht ändert, daher meine Frage.

    Hallo Rolf,


    hört sich ja schon recht vielversprechend an, dann weiter viel Erfolg.


    Grüße

    Uwe

    Hallo,


    Autor des MAME-Treibers/Emulators für den mc68000 hier (die Seite mc-68000-Computer wurde vor ein paar Posts ja schon verlinkt).


    mister-freeze: Vielen Dank für die Version 1.43, diese wird nun auch vom Emulator unterstützt. Deine Datei "141UPP.BIN" scheint allerdings fehlerhaft zu sein - einige Bereiche innnerhalb der Datei werden wiederholt, was auf ein Problem mit einer der Addressleitungen schliessen lässt. Ich weiss nicht ob das beim Auslesen passiert ist oder der Chip selbst schon ein Problem hat.

    Hallo,


    bist Du der Autor des mc68000 Emulators? Habe mal angefangen einen Emulator für System II zu schreiben. Momentan hängt allerdings der Bootvorgang, weil die 6522 Emulation möglicherweise fehlerhaft ist. Kannst Du da etwas zu sagen?


    Gruß


    Uwe

    Die Karte soll ja im Vollausbau 8 Speicherbausteine haben und sie ist nicht die einzige Karte auf dem Erweiterungsbus. Daher werde ich mich eher auf die sichere Seite verlegen und die Adresspuffer einbauen. Aber sicher hast Du Recht was die Komplexität angeht, die Bauteile allerdings habe ich ohnehin rumliegen.

    KiCad ist ein OpenSource Leiterplattenentwicklungstool. Der Schaltplan wurde mit dem Schemaeditor erstellt. Dazu muß man die einzelnen Komponenten aus einer Bibliothek entnehmen und verbinden. Da dies mein erstes KiCad Projekt ist und der Aufbau doch schon recht komplex, wollte ich das Ergebnis der Allgemeinheit zur Verfügung stellen, in der Hoffnung ein paar Verbesserungsvorschläge zu bekommen. Vielen Dank an diejenigen, die solche vorschlage gemacht haben. Die doch erhebliche Arbeit respektlos als stümperhaft zu bezeichnen, finde ich etwas befremdlich. Das animiert nicht gerade dazu seine Arbeiten im Forum zu teilen. Hilfreich wäre hingegen, seine Erfahrungen einzubringen und Verbesserungen vorzuschlagen statt Polemik zu verbreiten.

    Ok, ich glaube ich muss mal meine alten Schaltpläne suchen ...

    Der Chip war eiegntlich ganz witzig für die damalige Zeit.

    Von der Grafikkarte gibt es einen Schaltplan auf der Cenario Seite. Von dem Chip habe ich das umfangreiche Datenblatt von Intel.

    Habe gerade gestern mit Herrn Völzke telefoniert. Er hat soweit noch verfügbar fast alles in seiner Cloud eingestellt. Die Schaltpläne für die 68020 und die vierfach serielle Karte sind neu hinzugekommen. Er hat mich auf ein interessantes Projekt aufmerksam gemacht:

    Driver:mc-68000-Computer - MAMEDEV Wiki

    Hierbei handelt es sich um einen Emulator für System I. Zum Start werden die Eprom-Dumps von Monitor 1.4.1 benötigt, das ist fest in der Software hinterlegt. Hat zufällig jemand einen Dump davon? Außerdem werden die CP/M 2.0 Eproms benötigt.

    Gab es da auch Software für die HRG 82786 Graphik-Karte?

    Ja es gibt dafür ein Windowssystem OSWL2, das allerdings nur unter OS9 läuft. Ich habe in diesem Thread ein paar Screendumps eingestellt.