SDISK2 - Nachbau mit kleinen Verbesserungen

  • ...nicht schon wieder ein Beitrag über SDISK2 - doch:)


    Über den Floppy-Emulator SDISK2 wurde in diesem Forum schon berichtet, aber ich habe noch ein paar wichtige Informationen für den Nachbau dazu.


    Der Japaner Koichi Nishida hatte 2010 mit dem SDISK2 eine geniale Erfindung als Open Source veröffentlicht, die in den letzten Jahren in verschiedenen Varianten ständig weiterentwickelt wurde. Im Gegensatz zu den mittlerweile üblichen OLED-Displays habe ich mich beim Nachbau für ein klassisches Nokia-Display entschieden. Die blaue Hintergrundbeleuchtung des Displays habe ich durch eine warmweiße ersetzt, da die blaue LED Anfang der 80er Jahre noch Zauberei war und außerdem meiner Meinung nach die Lesbarkeit des Displays beeinträchtigt. Damit passt das Display auch besser zur Powerlampe des Apple ][ europlus:) Die Basis ist das Repository https://github.com/suaide/SDisk2 auf GitHub. Dieses wurde zuletzt vor drei Jahren aktualisiert und scheint derzeit das Aktuellste zu sein.


    Koichi musste für die einwandfreie Funktion das Herzstück des SDISK2 - einen Atmel ATMEGA-328P Mikrochip (bekannt vom Arduino UNO) mit 27MHz wegen des geforderten Timings erheblich übertakten und aus Kompatibilitätsgründen zur SD-Karte mit nur 3,3 Volt betreiben. Laut dem Datenblatt des Herstellers werden mindestens 4,5 Volt für maximal 16MHz benötigt. Ich entschied mich daher entgegen den Angaben im Schaltplan, die Versorgungsspannung des Chips auf mindestens 5 Volt anzuheben und stattdessen einen handelsüblichen Pegelwandler von 5 auf 3,3 Volt für die Kommunikation mit der SD-Karte zu verwenden. Die 27MHz Taktfrequenz sind trotzdem reine Glückssache und nicht jeder Chip funktioniert damit. Die Erfolgsquote liegt bei ca. 80%.

    Im SDISK2 Sourcecode in der Datei sub.S fand ich folgenden Hinweis, den ich vorsichtshalber befolgte:

    /*

    if the crystal on your SDISK II is 25 MHz,

    I recommend you to replace it with 27 MHz,

    or ask Nishida Radio.


    Oje, ein Bug:

    In Zeile 130 wird die Variable protect mit dem Wert 0 über den gesamten PORT-C ausgegeben und verhindert somit die Anzeige des aktuellen Tracks auf dem Nokia-Display während des Betriebs. Dies kann durch eine kleine Ergänzung in der Datei main.c korrigiert werden:

    #ifdef _LCD_NOKIA_

    protect = 0b00100000; /* PC5=1 - LCD disable */

    #else

    protect = 0;

    #endif


    Ein kleines Highlight: Das parallel angeschlossene Apple-Laufwerk.

    Ein Relais, das mit dem Kontakt des SD-Karten-Slots verbunden ist, unterbricht bei eingesteckter SD-Karte die Leitungen W_PROT und RD_DATA zum parallel angeschlossenen Apple-Laufwerk, das dann die üblichen Geräusche beim Lesen und Schreiben auf der SD-Karte erzeugt. Wird die SD-Karte entfernt, wird das SDISK passiv und das Apple-Laufwerk arbeitet wieder normal weiter.


    Das Ergebnis habe ich in einigen Fotos und einem kurzen Film dokumentiert. Sollte dieser Nachbau auf ein größeres Interesse stoßen, müsste unbedingt über eine entsprechende Platine nachgedacht werden.


    Viele Grüße

    Joerg


  • So ein Nachbau würde mich schon interessieren, evtl. mit einem anderen, leistungsfähigeren Controller und 128x64 Oled.
    Den original Code mit Japanischen Kommentaren, hab ich mal runter geladen und werde versuchen, ihn an einen STM32F103 Bluepill anzupassen.
    Wenn ich es nicht hinbekomme, wird es FujiNet mit ESP32.
    Für Prodos hab ich ja schon den Apple2IORPI von TJ Bold, aber ich möchte auch Dos3.3 Diskimages nutzen.

  • Hallo,


    das Timing der CPU ist in diesem Anwendungsfall sehr wichtig. Ohne ein RTOS Kernel https://docs.espressif.com/pro…ence/system/freertos.html wird die Umsetzung mit dem ESP vermutlich sehr schwierig. Das Geheimnis dazu steckt im Maschinencode in der Datei sub.s, die sich im Laufe der Jahre nur geringfügig verändert hat. Es geht dabei um jede ms. Dem STM32 würde ich das zutrauen, da dieser sich nicht zusätzlich um den WiFi-Stack kümmern muss.


    Viele Grüße

    Joerg

  • Es gibt ja das Fujinet Projekt, dort wird, in der Apple II Version, der ESP entweder an den Smartport oder an den Disk ][ Controller angeschlossen, Soft SP Rom voausgesetzt.

    Bist Du da sicher? Ich lese im QuickStart Guide nur was von SmartPort, entweder IIGS und //c oder andere Apple 2 mit SmartPort Karte... überlese ich da was?


    Die SDISK2 hängt ja direkt am Disk II Controller, den Woz ja sehr eigenwillig konstruiert hat.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Er gibt in der Apple ][ Hardware section einen Adapter auf den 20 pol Disk 2 Anschluss. Ja, eine Karte mit Soft Smartport Rom wird dann vorausgesetzt.
    Irgendwo in dem ganzen Wust des Repos steht, dass jetzt auch Woz Diskimages gebootet werden können, ich habs bisher nur überflogen, frag mich bitte nicht, wo es steht.
    Wenn ich mein derzeitiges Projekt (Pseudo ROM zur Software Entwicklung, 2k RAM + umschaltbares 8x256B Flash) fertig habe, werde ich mich mal näher mit Fujinet beschäftigen. In diese Karte sollte man dann auch den Inhalt des Soft SP- Roms schreiben können.