Seite 1 von 1

Atari800 Emulator Interface

Verfasst: 09.04.2025 20:12
von cpg
Hallo Leute,

ich möchte im Atari800 Emu ein Interface implementieren um dem Atari Programm Kommunikation mit dem Emulator zu ermöglichen. Das möchte ich u.a. benützen um automatische Tests für die cc65 Runtime laufen zu lassen.
Erstmal wichtig ist den Emulator kontrolliert beenden und einen Returnwert zurückgeben zu können.

Siehe auch https://sourceforge.net/p/atari800/mail ... /37306601/ und https://sourceforge.net/p/atari800/mail ... /59164716/ .

Invalid opcode scheidet für mich aus, das das Programm nicht crashen soll wenn es auf einem richtigen Atari läuft. Unbenutzte I/O Adressen sind auch fraglich, mit einer zukünftigen Erweiterung sind sie auf einmal nicht mehr unbenutzt.

Ich tendiere zu mehrfachen Writes zu einer unschuldigen Adresse, z.B. $180. Liegt im Stack, sollte nicht zu oft beschrieben werden, und auch nichts kaputt machen (Originalwert natürlich retten).

Was denkt Ihr. Andere Vorschläge?

Viele Grüße,
chris

Re: Atari800 Emulator Interface

Verfasst: 09.04.2025 20:26
von pps
Der stack wird imho von $01ff nach $0100 beschrieben. $0180 konnte da schnell erreicht werden.

Re: Atari800 Emulator Interface

Verfasst: 09.04.2025 23:37
von Irgendwer
Warum nicht ein Device ähnlich wie "H:" implementieren, welches den Datenaustausch mit der Host-Platform erlaubt?
Wenn ein Programm ohne Anpassung auf dem echten Rechner laufen soll, könnte man einen Stub-Handler bereitstellen...

Re: Atari800 Emulator Interface

Verfasst: 10.04.2025 20:02
von LarsImNetz
Ich habe für mich den Atari800 so angepasst, dass er sich mit kill-opcode ($02) beendet. War gar nicht so schwer.
Sonst plädiere ich auch eher für einen Handler.

Re: Atari800 Emulator Interface

Verfasst: 11.04.2025 22:45
von cpg
Ein Handler ist Overkill denke ich. Und was ist mit der 5200 Konsole?

Ich habe jetzt mal was zusammengehackt. Siehe Attachments.

Die Idee ist daß das Atariprogramm nacheinander die Werte 'A', 'p' und 'C' an die Adresse $1A1 schreibt. Danach ist der Funktions-/Requestcode in Y, ein möglicher Parameter in A.

Ich habe auch phaeron angeschrieben ob er Altirra diesbezüglich auch anpassen will, oder bessere Ideen hat, aber noch keine Rückmeldung von ihm.

Viele Grüße,
chris