>>> NEUE HARDWARE: DEBUG-ANZEIGE <<<

Bild Alles rund um Atari 8bit
Bild All around Atari 8bit

Moderatoren: Sven, Sleepy, Wolfgang, cas, des-or-mad

>>> NEUE HARDWARE: DEBUG-ANZEIGE <<<

Beitragvon mega-hz » Mo 1. Sep 2014, 19:42

Die DEBUG-ANZEIGE ..

zur ganzen Geschichte...

Wer programmiert, viel mit Hardware bastelt und sich gut im Inneren des ATARIs (auch im Speicherbereich) auskennt, in Spielen z.B. unendlich Leben einbauen möchte oder anderes ändern will, hat sicher schon
oft gedacht, es wäre schön, wenn man etwas hätte, was die aktuellen Daten und/oder Adressen anzeigt.
Diese Idee hatte ich schon bereits seit den 90ern und es gab auch schon 3 sehr aufwendige Ansätze,
so eine Debug-Anzeige zu realisieren.
Die erste Version war auf 2 160x100mm Lochrasterplatinen, rappelvoll mit Standart TTLs, Sieben-Segment Anzeigen und etliches an fliegenden Drähten. Stromverbrauch ca. 3A, zeigte nur per DIP Schalter eingestellte Adressen von $D300 und $D301 an, andere Adressen benötigten den Austausch von ICs und neue Lötakrobatiken...
Die zweite Version ist nie richtig gebaut worden, jedoch entwickelt in Eagle und mit einem 80C51 µC sowie einem DUAL-RAM Baustein.
Es sollte der eine Teil des DUAL-SRAMs in den ATARI Speicher eingeblendet werden, der andere Teil vom Mikrocontroller ausgelesen werden und dann auf nem LCD angezeigt werden. Nach langem hin und herrechnen scheiterte das Projekt jedoch an den niemals echtzeit-mäßigen Timings zwischen ATARI und 8051 sowie an den hohen Preis solcher DUAL-SRAMs.
Die dritte Version arbeitet mit GALs als 7Segment-Decoder, 74688 Vergleicher und BCD Drehschaltern mit dem man die Adresse von $0000-$FFFF einstellen kann und funktioniert, ist jedoch mit 3 Sandwich-Platinen und 12 GALs und 12 74688 auch schon aufwendig und teuer.

soviel zur Geschichte der Idee...

Der Ansporn zu DIESER DEBUG-ANZEIGE kam während der Neuentwicklung des Freezers 2011 mit neuer Logik im XILINX PLD.
Dadurch, daß wir nun die "Macht des beliebigen Speicher aus-/einblenden" mittels des Tricks der REFRESH-Leitung haben, sind Möglichkeiten wie der Freezer oder die Debug-Anzeige erst möglich geworden.
Die Debug-Anzeige wird bei einer vorhandenen XL-PBI-Adapterplatine vom Freezer2011 in die 3. noch freie 50polige Buchsenleiste eingesteckt. Da der 3. Platz meist noch keine Buchsenleiste hat, kommt diese mit der Debug-Anzeige zum einlöten dazu.
Wer eine XE PBI-Adapterplatine hat, hat keine 3. Buchsenleiste. Abhilfe wäre dann eine XL-PBI Platine an die XE Adapterplatine anzustecken oder per 2x25pol. Flachbandkabel die Debug-Anzeige direkt anzulöten.
Natürlich ist auch ein Betrieb ganz ohne Freezer möglich, es muss nur eine Verbindung zwischen dem PBI und der Debug-Anzeige hergestellt werden.
Ob Omnimon, Bibomon,Freezer oder gar Basic... die Debug-Anzeige kann mit allen eingestellt werden!

Die Debug-Anzeige hat 4x 7-Segmentanzeigen für die Adresse und 2x 7-Segmentanzeigen für die Daten.

Bild

Es sind 4 Schalter da mit folgenden Funktionen (die sich auch ändern lassen in der Logik):

Sw1 = Oben links:
Sw2 = oben rechts
Sw3= unten links
Sw4= unten rechts

SW1 an SW3 aus SW4 aus: zeigt an, was an der Adresse die man in D3FE/FF eingeschrieben hat, anliegt.
eingestellt beim startup auf $D5A0 – zeigt ein Bankregister des Moduls an
SW1 aus SW3 an SW4 aus: eingestellt auf $D301 – zeigt den Status der Ramdisk/Speichererweiterung an
SW1 aus SW3 aus SW4 ein: eingestellt auf $0302 – zeigt die SIO-Commandos an
SW1 ein SW3 ein SW4 ein: eingestellt auf $D300 (Joysticks)
SW1 ein SW3 aus SW4 ein: eingestellt auf $0244 (Reset)
SW1 ein SW3 ein SW4 aus: eingestellt auf $D500
SW1 aus SW3 aus SW4 aus: Live Modus – zeigt die aktuell angesprochene Adresse und die Daten an.
SW2 ein: IRQ Bremse der dezimalpunkt der 1. Anzeige leuchtet


Die Modis der Schalter können im Logikfile des PLDs geändert werden.

Eine Besonderheit ist auch mit eingebaut:
Wird der Schalter oben rechts gedrückt, so wird der Rechner gebremst und die Live-Adresse wird angezeigt!
Auch Interessant für manche Spiele!

Noch ein Bonus ist der Dezimalpunkt der rechten Anzeige:
Leuchtet dieser, ist das Kaltstart-Flag gesetzt! ($244<>0)

Die Platine ist so konzeptiert, daß sie bequem hinter den Freezer Platz nimmt und die Anzeigen über diesen gut lesbar herüberragen.
Ein Tool was sich sicher so manch einer gewünscht hat!

Bild

Freezer Kommandos:

Bild

D D380,D3FF zeigt den Infotext und die aktuell eingestellte Adresse an.
C D3FD<55 ermöglicht das schreiben auf D3FE/D3FF (Write-Enable) der dezimalpunkt der 4.anzeige leuchtet
C D3FE<14 schreibt das LO-Byte der Adresse (als Beispiel nehmen wir mal )
C D3FF<00 schreibt das HI-Byte der Adresse ( die Uhrenadresse 14 )
C D3FD<FF setzt das Write-Enable wieder auf deaktiv jeder Wert ausser 55h setzt es in Read-Only)

Den Anstupser und viel Hilfe bei der Entwicklung der Logik hat wie immer HIAS gegeben!
Ohne Ihn wären wohl so einige Projekte, Module, Freezer usw. nicht möglich geworden.
Ein riesen Dank zum wiederholten Male an Ihn!

Wer andere Adressen als default-adressen auf den Schaltern gerne haben möchte, kann dies ja mal mitteilen.

Eine auch sehr interessante Variante wäre z.B. auch ein eigenes Basic/Action/Assemblerprogramm
welches ddurch reinschreiben von verschiedenen Adressen stets die Debug-Anzeige umkonfiguriert!

Es gibt noch viele Möglichkeiten!

Gruß,
Wolfram.
Geht nicht, gibts nicht!
8D Ax D5 = EA EA EA
Benutzeravatar
mega-hz
Night&Day Poster
Night&Day Poster
 
Beiträge: 1998
Registriert: Do 1. Jan 1970, 01:00
Wohnort: Schwaförden, nähe Sulingen

Re: >>> NEUE HARDWARE: DEBUG-ANZEIGE <<<

Beitragvon Jac » Do 4. Sep 2014, 22:10

>Es gibt noch viele Möglichkeiten!
Simmt, z.B. die mit dem Freezer/IRQ Break at Address :-) Ist das machbar (Kleine Lösung das Ding löst einen IRQ aus den man abfragen kann)?
Jac
Star Poster
Star Poster
 
Beiträge: 421
Registriert: Do 1. Jan 1970, 01:00
Wohnort: 66822 Lebach

Re: >>> NEUE HARDWARE: DEBUG-ANZEIGE <<<

Beitragvon mega-hz » Sa 28. Feb 2015, 23:47

Ein Update der Funktionen:

D3FE/FF: zu überwachende Adresse hier einschreiben
(vorher Write-Enable einschalten!)
D3FC:55 = Write Enable
jeder andere Wert = Write Protect des Adressregisters D3FE/FF

D3FB: READ ACCES Register:
Schreibt man in D3FB ein "R" bzw. $52, werden Lesezugriffe der in D3FE/FF eingegebenen Adresse angezeigt.

D3FC: READ ACCES Register:
Schreibt man in D3FC ein "W" bzw. $57, werden Schreibzugriffe der in D3FE/FF eingegebenen Adresse angezeigt.

Sind beide Register mit "R" und "W" beschrieben, werden Lese- und Schreibzugriffe angezeigt.

mit einem Schalter kann ein ständiger IRQ Takt eingeschaltet werden, um den Rechner auf ca. 2/3 zu bremsen.
Auch ganz interessant für manche schwere Spiele...

Mit den anderen 3 Schaltern kann eine von 6 vordefinierten zu überwachende Adressen eingeschaltet werden,
z.Z. sind folgende Preset-Adressen eingestellt:
0014, 0244, 0302, D300, D301,D500 oder wenn alle 3 Schalter aus sind, die aktuelle live Adresse.

Für die vordefinierten Adressen brauche ich Eure Meinung!
Sind diese sinnvoll?
Würdet Ihr gerne andere haben?

es sind 8 LEDs unter den 7Segment-Anzeigen dazugekommen die folgendes anzeigen (sollen):

PRE1 PRE2 PRE3 PRE4 PRE5 PRE6 IRQ COLD
grün grün grün grün grün grün gelb rot

mal sehn ob das noch in die logik reinpasst....

der fitter vom xilinx ise läuft schon ne halbe std. :cry:

sollte das nicht in die logik passen, wird es nur LEDs für IRQ und COLDST geben.

Einen Triggerausgang mit eigener Adresse ist auch schon drin, aber ich weiss noch nicht, obs auch reinpasst.
(mit dem kann man z.B. den Freezer aktivieren)

Bevor die Platinen bestellt werden, müssen diese Dinge klar sein..

Gruß,
Wolfram.
Geht nicht, gibts nicht!
8D Ax D5 = EA EA EA
Benutzeravatar
mega-hz
Night&Day Poster
Night&Day Poster
 
Beiträge: 1998
Registriert: Do 1. Jan 1970, 01:00
Wohnort: Schwaförden, nähe Sulingen


Zurück zu Hardware



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron