Diverse Kleinigkeiten für den Atari ST


Hier finden Sie eine Sammlung verschieder kleiner Hard- und Softwareprojekte, die ich für den Atari ST entworfen habe. Viele davon wurden von mir schon im Forum von Atari-Home.de veröffentlicht und sollen hier gesammelt werden. Die Beschreibungen sind oftmals sehr knapp gehalten, aber hoffentlich dennoch verständlich. Vielfach sind die genannten Werte elektronischer Komponenten nur abgeschätzt und daher nur als Richtwert zu verstehen.

Einige der vorgestellten Dinge benötigen ein Mindestmaß an bastlerischem Können und technischem Verständnis. Viele der beschriebenen Projekte setze ich selbst ohne Probleme ein. Ich übernehme jedoch keine Haftung für Schäden oder Datenverluste, die aus den folgenden Anleitungen resultieren.



Atari ASIC-Designs

Frei herunterladbar, aber versteckt hinter obsoleten Dateiformaten, lagen die Designs einiger Atari ASICs (Application Specific Integrated Circuits, z.B. STE GSTMCU, Blitter) anscheinend unbeachtet vor ‒ bis jetzt. Weiterlesen (auf Englisch)...


USB-Stick-Floppy-Emulator von Gotek

Zum Betrieb eines Floppy-Emulators der Firma Gotek gibt es eine eigene Seite mit umfangreichen Erklärungen, Software und Beispieldateien.


Netzwerkzeit über WLAN mit ESP8266

Der ESP8266EX des Herstellers Espressif ist ein sehr preisgünstiger Mikrocontroller mit integriertem WLAN. Ein Modul ESP-01 für knapp 2 € mit diesem Mikrocontroller, einer WLAN-Antenne und einer seriellen Schnittstelle (3,3 V TTL Pegel!) wird verwendet, um dem Atari ST die Möglichkeit zu geben, seine Uhrzeit via NTP aus dem Internet zu beziehen. Das ist besonders interessant für Ataris, die keine integrierte Echtzeituhr haben und bei denen daher nach jedem Einschalten die Uhr gestellt werden muss.

Hinweis: Die in diesem Abschnitt angebotene Soft- und Firmware befindet sich noch im Betastadium, kann Bugs aufweisen und wird noch weiterentwickelt. Lesen Sie auch die allgemeine Warnung am Anfang dieser Seite.

Ich habe auf Basis von NodeMCU eine Firmware für das ESP-01 geschrieben, die u.a. die Zeitsynchronisation erlaubt. Dieses Firmware-Image enthält NodeMCU und meine Firmware in der Version 00.77. Es ist für ESP-01-Module mit mindestens 8 MBit (= 1 MByte) Flash-Speicher gedacht. Sie können z.B. esptool und ein USB-zu-seriell-Kabel (mit 3,3 V Pegel!) verwenden, um die Firmware ab Adresse 0x00000 in das Modul zu flashen.
Neu in Firmware 00.77: API-Kommando "time" zur menschenlesbaren Ausgabe der Zeit repariert.
Neu in Firmware 01.00: Unterstützung von Zeitzonen.

Nach dem Flashen der Firmware müssen Sie das Modul an die serielle Schnittstelle des Atari ST anschließen. Da das Modul mehr Strom benötigt, als man der seriellen Schnittstelle entnehmen kann (kurzzeitig >100 mA beim Start, ca. 80 mA bei aktiver Datenübertragung, ca. 20 mA ohne Datenübertragung), ist außerdem noch eine externe Stromversorgung nötig, die z.B. aus einem 5V-Handy-/USB-Netzteil bestehen kann. Hier ein möglicher Schaltplan inkl. des für die serielle Schnittstelle benötigten Pegelwandlers:

 

Dieses Archiv enthält Software für den Atari ST: WIFICONF.TOS erlaubt es Ihnen, das Modul zu konfigurieren, d.h. die Daten (SSID und Passwort) Ihres WLANs einzugeben, wie Sie dem folgenden Screenshot entnehmen können. Danach wird das Modul versuchen, Ihre Zeitzone anhand Ihrer IP-Adresse automatisch zu detektieren. Wird diese falsch erkannt, können Sie manuell eine Zeitzone (IANA-Namen wie z.B. Europe/Berlin) eingeben. Hier finden Sie eine Liste der Zeitzonen.

Die Konfiguration wird im Modul gespeichert, sodass danach ein Aufruf von WIFISET.TOS genügt, um die Uhrzeit des Atari zu stellen. Im AUTO-Ordner müssen Sie dieses Programm in WIFISET.PRG umbenennen.

Als weitere Software biete ich WGETST.TTP zum Download an. Dieses simple Kommandozeilenprogramm macht HTTP-Downloads über die WLAN-Verbindung des Moduls möglich. So können Dateien aus dem Internet direkt auf den Atari ST heruntergeladen werden.

Möchten Sie eigene Software für das Modul entwickeln, so finden Sie hier eine Beschreibung der Befehle, die von der Firmware unterstützt werden.


Adapter: Monitorausgang Atari ST nach VGA (nur monochrom)

Der Atari ST bietet einen monochromen (schwarz/weiß) Videomodus mit für seine Zeit herausragenden 640 x 400 Pixeln und 72 Hz Bildwiederholrate. Um ihn zu nutzen, gab es spezielle Monitore, wie den SM 124. Glücklicherweise ist das Timing der Videosignale jedoch so, dass sich mit einem einfachen Adapter auch moderne Monitore mit VGA-Eingang anschließen lassen:

Gegenüber den gängigen Bauvorschlägen im Internet habe ich den Adapter um die zwei als optional gekennzeichneten Kondensatoren erweitert. Hintergrund:

An einem Atari gab es das Problem, dass ich mit diesem Adapter kein sauberes Bild zu sehen bekam. Meist war der Monitor schwarz, gelegentlich blitzte ein verzerrtes Bild auf. Am SM124 funktioniert dieser Atari hingegen einwandfrei.

Eine Messung mit dem Oszilloskop zeigt, dass der betroffene Atari ein heftiges Unterschwingen (undershoot) auf den VSYNC- und HSYNC-Signalen aufweist. Wenn diese auf Low gehen, um die Austastlücke anzuzeigen, fallen sie kurzzeitig (<100ns) auf beinahe −5 V, bevor sie sich auf 0 V einstellen. Dem SM124 ist das offensichtlich egal. Mein moderner Monitor wird davon aber so verwirrt, dass er sich nicht richtig auf das Bild synchronisiert.

Lösung: Ich habe im Adapter zwei Kondensatoren von den Sync-Leitungen gegen Masse geschaltet, 10 nF für VSYNC, 470 pF für HSYNC. Damit ist das Problem gelöst und der Monitor zeigt ein 100% sauberes Bild. Ob die Kondensatoren die optimalen Werte aufweisen, habe ich nicht überprüft. Ich habe die Zeitkonstanten lediglich abgeschätzt; die Kapazitätsangaben sind also als variabel zu verstehen.


Adapter: Monitorausgang Atari ST nach SCART (Farbmodi)

Die farbigen Videomodi das Atari ST verwenden, anders als der oben beschriebene Monochrommodus, ein Timing, das nur wenige moderne Monitore am VGA-Eingang verstehen. Ursache ist die zu geringe Horizontalfrequenz von ca. 15,7 kHz. Jedoch lässt sich ein Atari ST im Farbbetrieb dadurch einfach an den SCART-Eingang eines Fernsehers anschließen:

Gegenüber den üblichen Bauanleitungen habe ich dieses Kabel um eine Diode und einen Kondensator erweitert. Hintergrund: Bei den anderen SCART-Kabeln liegt das VSYNC-Signal des Atari direkt am Pin 16 der Scart-Buchse an. Bei manchen (alten) Scart-Eingängen ist das das Austast-Signal (Blanking), dort wäre es OK, dass das Signal während der Austastlücke low wird. Für viele neue Fernseher ist Pin 16 aber die Composite/RGB-Umschaltung und muss dauerhaft high gehalten werden, damit der Fernseher nicht ständig oder in regelmäßigen Abständen zwischen Composite-Video und RGB hin und her schaltet. Dafür sorgen Diode und Kondensator.

Ein Hinweis zu den optionalen Widerständen: Bei mir sind sie nicht nötig. Sollte jedoch das Bild auf dem Fernseher oder Monitor zu hell bzw. "ausgewaschen" (z.B. Grau wird zu Weiß) wirken, dann schaffen sie Abhilfe.


Adapter: PS/2-Maus am Atari anschließen

Ein Adapter auf Basis eines AVR ATmega8 (Firmware (HEX-File und Sourcecode)), um eine PS/2-Maus am Atari anzuschließen. Achtung: Die Taktquelle des ATmega8 muss durch Einstellung der entsprechenden Fuses auf den 4-MHz-RC-Oszillator konfiguriert werden, d.h. CKSEL3..0 = 0011.

Im Schaltplan angegeben sind jeweils die Pinnummern am PS/2- und am Atari-Maus-Stecker. Eine Möglichkeit ist, den Adapter in eine Maus einzubauen, wie hier gezeigt. Die Farben im Schaltplan entsprechen denen im originalen Mauskabel des Atari.


SCSI-Initiator-ID für den Hostadapter ICD AdSCSI plus

Eine kleine Schaltung sorgt dafür, dass der ACSI-SCSI-Hostadapter ICD AdSCSI plus während der SCSI-Selektion nicht nur die ID des Targets (z. B. der Festplatte) sondern auch eine eigene ID auf den SCSI-Bus legt (sogenannte Initiator-ID). Manche SCSI-Geräte benötigen dies zur korrekten Funktion. Als Initiator-ID wird die ID 6 verwendet, die ohnehin auf dem Hostadapter für die Echtzeituhr eingesetzt wird, sodass keine zusätzliche SCSI-ID belegt wird.

Ich habe die oben genannte Schaltung und eine Platine dazu entworfen, die hier im eingebauten Zustand zu sehen ist. Für Nachbauten enthält dieses Dokument Beschreibung und Schaltplan.


Absturz bei Anschluss einer externen Festplatte

Symptom: Der Atari ST stürzt nach Anschluss einer Festplatte an den DMA-Port (auch ACSI-Port genannt) häufig ab oder das Bild beginnt zu flimmern. Das Problem tritt evtl. nur mit bestimmten Festplatten oder sogar nur in Kombination mit bestimmten Anschlusskabeln auf.

Grund: Die systemweite RESET-Leitung ist beim 520/1040ST(F) ungepuffert auf Pin 12 des DMA-Ports geführt. So können kurze Störpulse, z.B. durch Übersprechen auf dem Anschlusskabel, das System außer Gefecht setzen.

Lösung: In meinem Fall hat das Einfügen eines 82-Ω-Serienwiderstands in die – natürlich zuvor aufgetrennte – RESET-Leitung zum DMA-Port-Steckverbinder auf dem Mainboard geholfen.


Bildfehler am Atari STFM

Manche Atari 520 oder 1040 STFM zeigen am Fernseher über das SCART-Kabel heftige Fehler bei der Bildsynchronisation bei größtenteils weißem Bild (z.B. beim Booten oder bei hauptsächlich weißen Dialogboxen):

Es handelt sich wohl um Alterung des Ausgangsverstärkers des Videosignals, der so (nur) in den STFMs verbaut wurde und der bei RGB über SCART für die Bildsynchronisation zuständig ist. Es verschiebt sich dabei der Arbeitspunkt. In meinem Fall konnte das durch den Tausch eines Widerstands behoben werden. Laut Schaltplan handelt es sich dabei um R13 mit 22 kΩ, den ich durch einen 27-kΩ-Widerstand ersetzt habe.

Achtung: Auf der Platine hat der Widerstand je nach Layout-Version eine komplett andere Bezeichnung. Es sollte jedoch in der direkten Umgebung der Monitorbuchse nur einen Widerstand mit 22 kΩ geben. Im Zweifelsfall die Verbindung zum Transistor Q1 nachmessen.

Andere Lösungen für dieses Problem, die jedoch ebenfalls einen Tausch eines Bauteils erfordern, finden sich in diesem Forenthread.


Bildschirmflimmern am Atari MegaSTE

Bei manchen Atari MegaSTE tritt im Monochrommodus ein Bildschirmflimmern auf, das besonders deutlich bei gemusterten Bildinhalt auffällt, z.B. beim Desktophintergrund. Ursache hierfür kann der Optokoppler im Netzteil PSM 5341 sein: wie schon lange bekannt, hat dessen Hersteller Phihong teilweise Optokoppler vom Typ CNY17 eingesetzt, statt der im Schaltplan vorgesehenen Sharp PC111. Die Verwendung des CNY17 führt hierbei zu deutlich mehr 50-Hz-Ripple auf der Ausgangsspannung des Netzteils. Zusammen mit der Bildwiederholfrequenz von ca. 71 Hz ergibt sich eine Schwebung, die als Flimmern wahrnehmbar ist.

Da der PC111 jedoch längst abgekündigt ist, ist er u.U. nur noch schwer erhältlich. Daher habe ich den Grund für den dramatischen Unterschied zwischen PC111 (=gut) und CNY17-3 (=schlecht) untersucht –  und damit auch einen geeigneten, modernen, leicht beschaffbaren Ersatztyp gefunden, mit dem ich erfolgreich die Ausgangsspannung des MegaSTE-Netzteils getestet habe.

Die Lösung ist ein CNY17F-3 statt des CNY17-3. Das "F" macht hier den entscheidenden Unterschied!

Der technische Hintergrund: beim CNY17F ist wie beim PC111 der Basisanschluss des Optotransistors nicht herausgeführt; beim CNY17 (ohne F) hingegen schon. Die Basis ist zwar im Netzteil mit nichts verbunden ("floatend"), aber alleine die Tatsache, dass sie auf einen Pin geführt ist, sorgt für um Größenordnungen höhere parasitäre Kapazitäten, durch die sich der CNY17-Optokoppler Störungen (u.a. eben auch die 50 Hz Netzfrequenz) einfängt. Stichwort ist hier Common Mode Transient Immunity.

Wie bei jeder Arbeit an einem Netzteil empfiehlt es sich auch hier, nach dem Umbau die Ausgangsspannungen an einer unempfindlichen Last (also nicht dem Atari) nachzumessen. Mindestens die +5V- die +12V-Schiene sollten z.B. mit einem Hochlastdrahtwiderstand der geeigneten Leistungsklasse belastet werden. Alle  Ausgangsspannungen sollten sich dann innerhalb der spezifizierten Toleranz von ± 5 % (± 10 % für -12 V) befinden.


Gleichspannungspegel rund um den Audio-Verstärker

Im Zusammenhang mit einer Fehlersuche an einem Atari 1040STF, bei dem die Audio-Ausgabe gestört war, habe ich die zu erwartenden Gleichspannungspegel rund um den Soundchip YM2149 und den Audio-Verstärker (nur ein Emitterfolger) in einen Schaltplanausschnitt eingetragen. Sie gelten bei inaktiver Audio-Ausgabe und sind nicht nachgemessen sondern nur auf Basis einer Schaltungsanalyse mit Stift und Papier abgeschätzt. Ich erwarte, die Potenziale dennoch auf ±0,5 V genau getroffen zu haben.


RAM-Test-Software YAART

An den bislang für den ST verfügbaren Speichertestprogrammen stört, dass sie meist sehr simpel gestrickt sind. Sie finden natürlich offensichtliche Probleme mit dem RAM, aber keine subtilen Fehler, die nur nach vielen Durchläufen oder mit bestimmten Testmustern auftreten. Für den PC gibt es mit Memtest86 Software, deren Testalgorithmen speziell optimiert wurden, um auch solche Fehler zu finden.

Ich habe mich nun daran gemacht, einen Teil dieser Algorithmen in einem Testprogramm für den Atari umzusetzen. Dabei ist YAART (Yet Another Atari RAM Test) entstanden. Von der Testtiefe halte ich es jetzt schon für besser als viele andere RAM-Testprogramme für Atari TOS.

YAART existiert in zwei Varianten: YAART.TOS ist ausschließlich für (Mega-)ST(E)-Computer gedacht, kann dafür aber auch Speicher testen, der bereits vom Betriebssystem oder anderen Programmen belegt ist. YAARTTT.TOS hingegen testet nur unbelegten Speicher, läuft dafür aber auf allen Atari-kompatiblen Rechnern (u.a. TT und Falcon) und testet neben ST-RAM wahlweise auch TT-/Alt-RAM.

Download der Version 0.2.3.1/0.2.3 inkl. Anleitung.


CoreMark-Benchmark für Atari

Um die Rechengeschwindigkeit verschiedener Computer zu vergleichen oder den Effekt einer Beschleunigerhardware zu beurteilen, ist ein Benchmark unerlässlich. Leider sind manch der im Atari-Bereich als Standard geltenden Benchmarks suboptimal designt: Sie messen z.B. die CPU-Geschwindigkeit anhand der wiederholten Ausführung einer einzelnen, in echten Programmen selten vorkommenden Instruktion und sind damit ungeeignet, eine Aussage über die Geschwindigkeit des Rechners unter realistischen Bedingungen zu treffen.

Glücklicherweise existiert mit EEMBC’s CoreMark® ein anerkannter Benchmark, der realistische Szenarien nachbildet. Da CoreMark unter einer freien Lizenz verfügbar ist, habe ich ihn für den Atari unter TOS/EmuTOS portiert: Download. Etliche Ergebnisse verschiedener Rechner/Beschleuniger sind ebenfalls auf GitHub zusammengetragen.


LINPACK-Benchmark für Atari

LINPACK ist ein Benchmark mit langer Tradition, der seit 1979 und bis heute verwendet wird, um die Fließkommarechenleistung zu messen. Ich habe eine in C geschriebene Version davon für den Atari compiliert. Sie braucht mindestens eine 68020 CPU und natürlich eine FPU.

Download und Resultate


Normale TOS-Programme als ROM-Cartridge

Der ROM- oder Cartridge-Port des Atari ST erfordert ein besonderes Programmformat und auch speziell dafür entwickelte Anwendungen. Normale TOS- und GEM-Programme (.TOS oder .PRG) laufen nicht direkt im ROM. Ich habe einen Loader entwickelt, der es dennoch ermöglicht, reguläre Anwendungen auf einem Cartridge unterzubringen. Diese Anwendungen erscheinen auf dem Desktop auf einem virtuellen Laufwerk c: (kleines c). Der Loader kopiert beim Start das Programm aus dem ROM ins RAM und richtet auch sonst alles ein, als sei das Programm normal von Diskette oder Festplatte gestartet worden.

Dieses Archiv enthält den Loader und ein Python-Skript (benötigt das Intelhex-Paket), um entsprechende Cartridges zu erstellen. Das Cartridge-Image wird in zwei Formaten ausgegeben: binär (z.B. zum Test im Emulator) und als Intel-HEX-Datei zum Programmieren in ein echtes ROM-Modul. Einschränkungen: 1. Nur ein Programm mit max. 64 kiByte kann auf dem Cartridge hinterlegt werden. 2. Weitere Dateien (z.B. .RSC-Dateien) können nicht untergebracht werden.


DESK1COL: Nur eine Spalte in der Desktop-Dateiansicht auch bei hohen Auflösungen

Wenn ein Atari ST mit TOS 1.04 durch Einbau einer neuen Grafikkarte mit einer höheren Auflösung als 640 x 400 Pixeln betrieben wird, zeigt der Desktop Dateilisten in der Textansicht mehrspaltig und in einer gewöhnungsbedürftigen Sortierung an. Derart hohe Auflösungen hatten die Entwickler offenbar nicht vorgesehen. DESK1COL ist ein von mir entwickeltes Programm, um dies zu lösen.

Download von DESK1COL.PRG V. 0.6, mit dem der TOS 1.04 Desktop unabhängig von der Bildschirmauflösung (also auch bei mehr als 640 x 400 Pixeln) im Text-Modus nur eine Spalte darstellt. Das Programm belegt dauerhaft ca. 700 Bytes(!) RAM und kann z.B. im AUTO-Ordner, aber auch durchaus noch später aus einem schon gebooteten System heraus, aufgerufen werden.

Hinweise: DESK1COL.PRG braucht ein deutsches TOS 1.04 vom 06.04.1989. Es lässt sich nur durch Reset wieder deinstallieren. Im Emulator tut es was es soll. Ich konnte keine Nebenwirkungen feststellen, übernehme aber keine Garantie, dass es wirklich fehlerfrei ist. Daher: Erst einmal vorsichtig testen.


IDE-Autoboot für TOS 1.04, 1.06 und 1.62

Anders als EmuTOS oder TOS 2.06 kann TOS 1.x nicht von IDE booten. Wer also Fan von TOS 1.04/1.06/1.62 ist (z.B. wegen bestimmter Spiele) und ein IDE-Interface wie z.B. die Lightning ST hat, musste also den Plattentreiber von Diskette oder einem ACSI-Laufwerk laden. Ich habe daher einen Patch für diese TOS-Versionen entwickelt, mit dem dieses nun auch von einem IDE-Laufwerk (also auch: CF-Karte, IDE/SD-Adapter, DOM) booten kann. Erfolgreich getestet wurde dies mit HDDRIVER und AHDI.

Da ich auch rechtlichen Gründen natürlich kein gepatchtes TOS verteilen darf, habe ich die Änderungen mit TOSPatch anwendbar gemacht.

Dateien (inkl. Quelltext) und eine kurze Anleitung gibt es unter https://github.com/czietz/ideboot/, die jeweils aktuelle Version lässt sich als https://github.com/czietz/ideboot/archive/master.zip herunterladen.


CKBD 1.6 - Composed Characters Keyboard Driver

CKBD Deluxe ist ein Hilfsprogramm von Pascal Fellerich, das die Eingabe von nicht auf der Tastatur befindlichen Sonderzeichen (z.B. zur Eingabe eines französischen Texts mit deutscher Tastatur) erheblich vereinfacht. Es ist umfangreich konfigurierbar. Die hier angebotene Version 1.6 wurde von mir angepasst, um auch mit USB-Tastaturen zu funktionieren. Voraussetzung hierfür ist ein USB-Tastaturtreiber in einer Version ab dem 28. April 2019.

CKBD Deluxe is a utility by Pascal Fellerich, which greatly simplifies entering any special characters not available on your Atari's keyboard, e.g., for typing a German text on an American keyboard. You can configure it in many ways. The version 1.6 available below was adapted by me to work with USB keyboards, as well. It requires a USB keyboard driver dated April 28th, 2019, or newer.

Download von CKBD Deluxe 1.6 - Download of CKBD Deluxe 1.6 - Freeware


SFP-004 FPU-Programmierung an einem Beispiel

Atari SFP-004 ist eine FPU-Erweiterung für den Mega ST. Die Integration der optionalen FPU im Mega STE ist technisch äquivalent. Es existiert sehr wenig Dokumentation zur Programmierung der FPU im SFP-004, weshalb im Folgenden die Programmierung an einem Beispiel vorgestellt werden soll.

Deutsche Version
Englische Version
Bibliothek mit Assembler-Source-Code zur SFP-004-Programmierung


Atari PC1: Reset-Taster nachrüsten

Der Atari PC1 ist kein 68000-basierter Computer, sondern ein PC mit 8088-CPU. Hier hat Atari den Reset-Taster eingespart. Er lässt sich jedoch einfach nachrüsten, wenn man die Schaltung erweitert, die den Power-On-Reset (Reset beim Einschalten des Rechners) generiert.

Im folgenden Schaltplanausschnitt ist die vorhandene Power-On-Reset-Schaltung in schwarz gezeichnet: Der Kondensator wird beim Einschalten der Betriebsspannung über den Widerstand geladen und gibt nach einer Verzögerung das Reset-Signal frei. Die Nachrüstung des Reset-Tasters ist in rot gezeichnet. Entlädt man den Kondensator (zweckmäßigerweise über einen Widerstand von ca. 500 Ohm), so führt der Rechner einen Reset durch.

Die Power-Up-Schaltung befindet sich auf dem Mainboard in der Nähe von Floppy- und Tastatursteckverbinder. Der zu entladenden Kondensator ist auf dem folgenden Foto markiert: