Turbo Freezer und Breakpoints

Moderatoren: Sleeπ, andymanone

Antworten
slx
Beiträge: 295
Registriert: 18.06.2021 23:16
Has thanked: 292 times
Been thanked: 48 times
Kontaktdaten:

Turbo Freezer und Breakpoints

Beitrag von slx »

Ich bin nicht ganz sicher, ob das hier richtig ist oder eher unter Software gehört.

Ich habe für die Lösung eines Problems, dass nur auf echter Hardware, aber nicht am Emulator auftritt (hier beschrieben), den TurboFreezer ausgepackt und dann festgestellt, dass er zwar toll funktioniert, aber der Debugger keine Breakpoints kann. Daher meine Frage, ob das technisch möglich wäre und nur nicht implementiert ist, oder ob das andere Hardware erfordern würde.

Benutzeravatar
dl7ukk
Beiträge: 690
Registriert: 25.08.2021 23:03
Has thanked: 143 times
Been thanked: 181 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von dl7ukk »

Hi,

ja, habe ich auch vermißt und so gelöst. Ich habe an benötigter Stelle ein JMP auf sich selbst eingetragen und anschließend wieder die 3 vorhandenen Bytes eingefügt.

LG
aka

Benutzeravatar
RhoSigma
Beiträge: 116
Registriert: 29.04.2024 22:44
Has thanked: 5 times
Been thanked: 19 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von RhoSigma »

Das ist leider Prinzip bedingt nicht so trivial. Der 6502 unterstützt nur Soft-BP über den BRK Befehl. Du musst also den Befehl, wo der Debugger "zuschlagen" soll, mit BRK überschreiben, und dann, wenn der BP ausgelöst wurde, den originalen Wert zurück schreiben. Aber: BRK löst nur nen Interrupt aus, der im "echten" Addresspace behandelt werden muss. Der Freezer müßte also, wenn Du 'nen BP gesetzt hast, den Interrupt-Vektor auf seine eigene Routine umleiten. Das ist schwierigen als man denkt, weil die richtig gemeinen Sachen natürlich das OS deaktivieren oder eine eigene Routine installieren (oder NMI deaktivieren). Funktioniert also nicht immer. Einen "echten HW-Interrupt" könnt man vielleicht implementieren, der triggert, wenn die Adresse des Befehls auf dem Addressbus liegt. Das ist auch schwieriger als man denkt, WEIL der 6502 bei single opcode Instruktionen auch die nächste Adresse liest (und zwar sogar 2 mal). K.A. ob mal das trivial erkennen kann.

slx
Beiträge: 295
Registriert: 18.06.2021 23:16
Has thanked: 292 times
Been thanked: 48 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von slx »

Das mit den "Soft"-Breakpoints durch BRK ist mir klar, funktioniert aber nicht, wenn man z.B. Zugriffe auf Hardware-Register "erwischen" will. Meine Überlegung war, dass der Freezer ja ständig alles auch ins RAM schreibt und bei Zugriffen auf eine Adresse aus der Breakpoint-Tabelle in den Freezer-Modus schalten könnte. Das ginge wohl aber nur, wenn der Freezer selbst überhaupt irgendeine Software hat, die bei inaktivem Freezer läuft. Wenn das alles nur Schaltungen ohne Programm sind, kann es vermutlich nicht funktionieren.

HiassofT
Beiträge: 271
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 25 times
Been thanked: 173 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von HiassofT »

Der Freezer kann das leider nicht. Wenn Du aus dem Freezer rausgehst ist er wieder komplett "unsichtbar" und erst ein erneuter Druck auf den Freezer-Button aktiviert ihn wieder.

Um "Hardware Breakpoints" umzusetzen bräuchte es zusätzliche Hardware und mit ein wenig Bastelei im Atari und am Freezer könnte es dann auch mit dem Freezer klappen:

Wenn die Zusatz-Hardware einen Zugriff auf die gewünschte Adresse feststellt müsste sie zuerst den Freezer-Button drücken (Signal auf low ziehen) und dann ein paar Zyklen später einen NMI generieren (Kabel an ANTIC. Dann muss sie den Button noch einige (mindestens 10 oder so) Zyklen lang gedrückt halten und dann wieder freigeben.

Mit ein paar Zyklen Verzögerung nach dem Zugriff sollte dann der Freezer aktiv sein (Zugriff auf IRQ/NMI/Reset Vektoren plus gedrückter Freezer Button aktiviert ihn).

so long,

Hias

slx
Beiträge: 295
Registriert: 18.06.2021 23:16
Has thanked: 292 times
Been thanked: 48 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von slx »

Das klingt einigermaßen kompliziert.

Benutzeravatar
mega-hz
Beiträge: 1994
Registriert: 03.11.2021 11:23
Has thanked: 635 times
Been thanked: 705 times

Re: Turbo Freezer und Breakpoints

Beitrag von mega-hz »

für genau sowas hatte ich früher mal die große Debug-PCB entwickelt!
Sie hat gleich 2 Register: einmal eine einstellbare Debug-Anzeige mit 6 7Segment-Anzeigen und das gleiche nochmal aber für einen Trigger-Impuls. ein LS123 zum verlängern des "Freezer-Button-Signal" ist auch bereits drauf!
Ausserdem ist ein 32K EEPROM und Ein Flash/SRAM drauf, um z.b. OSse oder sonstwas einblenden zu können.
Im VHDL sind aber noch kleine Bugs drin, die ich nicht fixen kann.

@HIAS: do you remember? ;-)
20260528_234113.jpg
20260528_234113.jpg (430.77 KiB) 224 mal betrachtet
Es gab auch mal einen Artikel -wohl im alten Forum, 2015 - davon.
Ich finde ihn jedoch gerade nicht.

Was aber auch interessant damit ist:
Man kann auf eine Adresse "lauschen" und wenn auf diese zugegriffen wird, wird das RAM an dieser Stelle ausgeblendet und ein vorher eingestellter Wert per Hardware eingblendet!
Ideal um Leben.Zähler festzusetzen :-)
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de

HiassofT
Beiträge: 271
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 25 times
Been thanked: 173 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von HiassofT »

mega-hz hat geschrieben:
28.05.2026 23:45
@HIAS: do you remember? ;-)
Ja, ich erinnere mich, kann mich aber nicht dran erinnern ob Du das mit der Freezer-Integration hinbekommen hattest.

Da ist das Timing wichtig, wie geschrieben zuerst Button drücken, dann NMI auslösen und dann nach einiger Zeit Button loslassen.

Wenn Du den NMI zu früh auslöst (trigger direkt an ANTIC) geht der Button-Press ins Leere.

so long,

Hias

Benutzeravatar
mega-hz
Beiträge: 1994
Registriert: 03.11.2021 11:23
Has thanked: 635 times
Been thanked: 705 times

Re: Turbo Freezer und Breakpoints

Beitrag von mega-hz »

richtig ausprobiert konnte ich das nicht.
NMI hatte ich auch nicht auf dem Schirm, da es noch andere Probleme gab.
Ein ganz blödes war die versehentliche invertierung vom REF Signal...
Hat Jahre gedauert, bis ich das mal endeckt hatte.
Danach funktionierte auch das einblenden von OS-ROMs usw. ohne große Probleme.
Das was für die ganzen Möglichkeiten der PCB noch richtig cool wäre, wäre ein Menü in dem man alles sofort einstellen kann, welches
aber sich wie der Freezer verhält. Also mittendrin ins Menü, alles vom laufenden Programm wird eingefroren/gesichert und nach dem Verlassen des Menüs gehts normal weiter.
DAS wäre das ultmativeste Debug-Tool !

Für mich alleine ist das zuviel VHDL und Software... :-(
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de

Benutzeravatar
RhoSigma
Beiträge: 116
Registriert: 29.04.2024 22:44
Has thanked: 5 times
Been thanked: 19 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von RhoSigma »

mega-hz hat geschrieben:
29.05.2026 23:49
Für mich alleine ist das zuviel VHDL und Software... :-(
Das ist ja genau die Frage die ich mir schon lange stelle: Lohnt sich ein FPGA/CPLD heute noch? Wäre es nicht einfacher und billiger, ein Raspberry Pi Pico Board anzuschliessen?
Vorausgesetzt du hättest genügend freie I/Os, kann der Raspi dann die Signale samplen. Die SW auf dem Raspi wäre dann mMn deutlich flexibler in ihren Möglichkeiten. Gut, muss immer noch einer implementieren, aber die HW wäre eher eine "eierlegende Wollmilchsau".

Benutzeravatar
mega-hz
Beiträge: 1994
Registriert: 03.11.2021 11:23
Has thanked: 635 times
Been thanked: 705 times

Re: Turbo Freezer und Breakpoints

Beitrag von mega-hz »

mit dem PiPico hab ich es mal versucht, aber selbst mit seiner hohen Geschwindigkeit war das Timing mit dem Atari
nicht präzise genug, um auch nur einen einfachen Adress-Decoder hinzubekommen.
Die IOs sind auch zu wenige.
Da ist das FPGA schon weitaus besser bzw. das einzig Wahre.
Dank KI kann ich da aber inzwischen einiges mehr erreichen wie vor 12 Jahren...
(Damals gab es kein ChatGPT oder Gemini, nur die einzig Wahre KI bzw. MI: HIAS ! :-) )
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de

Benutzeravatar
DjayBee
Beiträge: 1279
Registriert: 17.08.2021 04:02
Has thanked: 975 times
Been thanked: 514 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von DjayBee »

Mit einem RP2350 geht das problemlos, aber die PIO-Programmierung ist etwas tricky und bestimmt nicht "Mainstream".

Beispiel dafür, das gerade in aller Munde ist: https://onerom.org/

Das FujiNet-Team verwendet das auch für die Systeme, bei denen ein Bus-Interface verwendet wird (z.B. IBM PC mit ISA, Tandy CoCo, MSX).

Benutzeravatar
mega-hz
Beiträge: 1994
Registriert: 03.11.2021 11:23
Has thanked: 635 times
Been thanked: 705 times

Re: Turbo Freezer und Breakpoints

Beitrag von mega-hz »

Wow!
Das ist sehr interessant!

Ja von PIO Programmierung hab ich gehört, hab aber null Ahnung davon.
Trotzdem würde der 2350 noch zu wenig IOs für die Debug-Platine haben...
Selbst der Altera FPGA ist schon fast voll belegt.
Da alleine der komplette Atari Bus schon um die 30+ IOs benötigt...
(8xData,16xAdr, div. Signale Phi0,PHI2 uvm.)
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de

HiassofT
Beiträge: 271
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 25 times
Been thanked: 173 times
Kontaktdaten:

Re: Turbo Freezer und Breakpoints

Beitrag von HiassofT »

Schau mal in Richtung RP2350B/RP2354B, da hast Du 48 GPIOs (8 davon analog, die sind nicht 5V tolerant).
https://pip-assets.raspberrypi.com/cate ... asheet.pdf

BTW: die Himbeer-Leute haben da ein sehr schönes und ausführliches Datenblatt rasugebracht, da sind wirklich so ziemlich alle Details beschrieben.

so long,

Hias

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast