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: 115
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: 270
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: 1989
Registriert: 03.11.2021 11:23
Has thanked: 634 times
Been thanked: 704 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) 110 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: 270
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: 1989
Registriert: 03.11.2021 11:23
Has thanked: 634 times
Been thanked: 704 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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast