Beiträge von ol.sc

    Hallo allseits,


    zunächst ein bisschen Hintergrund Info: Ich habe kurz nach dem Erscheinen des RPi Pico begonnen, damit zu experimentieren, ihn direkt an den Apple II Bus zu hängen. 2022 habe ich meinen Erfolg veröffentlicht und 2023 habe ich auf dem KansasFest einen Vortrag gehalten (https://youtu.be/UMr2erIUDwU). Dann bin ich aber nochmal ans Reißbrett. Das Ergebnis besteht aus zwei Teilen:

    1. Einem stark vereinfachtes Design aus gerade mal drei LVC245 Tranceivern und einem AND Gate.

    2. Einer wiederverwendbaren Software Library die die Low Level Interaktionen mit dem Apple II kapselt.


    Ich habe auf dieser Basis auch schon eine Reihe von Firmwares entwickelt:

    - Eine (schnellere) Emulation der Apple II Pi Karte (https://github.com/dschmenk/apple2pi)
    - Einen (schnelleren) Ersatz für die Apple2-IO-RPi Karte (https://github.com/tjboldt/Apple2-IO-RPi)

    - Eine Emulation der softSP Karte (http://www.mfa2lab.com/opcart/…uct&path=59&product_id=56)
    - Eine schlichte ProDOS Hard Disk Emulation basierend auf zwei Dateien auf einer Micro SD Karte


    Frage: Gibt es mit der V2 analog nicht schon eine Karte mit RPi Pico?

    Antwort: Ja, aber die V2 analog ist eine Video-Karte, die jemand nachträglich zu einer I/O-Karte umgemodelt hat.

    - Das Design ist mit zu programmierende Chips nicht wirklich DIY-freundlich.

    - Es bietet keine freien GPIOs (um z.B. via SPI eine SD Karte anzusteuern) und keine IRQs.

    - Außer der CP/M-Karten-Emulation hat der Autor keine weitern Firmwares mehr implementiert. Inzwischen hat er sich wieder auf die Video-Thematik eingeschossen (IIgs Unterstützung, //c Variante).


    Die A2Pico ist eine originäre Apple II Karte, die schlicht dem DEVSEL + IOSEL + IOSTRB Modell folgt. Damit ist maximal kompatibel mit dem IIgs.


    A2Pico (sowohl Hardware als auch Software Library) belegen im RPi Pico ganz bewusst keine Resourcen die beim RPi Pico W für das Ansteuern des CYW43 Wireless Chips benötigt werden. Man kann also durch schlichtes Ersetzen des Pico durch einen Pico W auch Projekte mit WiFi oder Bluetooth realisieren.


    Jetzt sind die ersten fertigen A2Pico Alpha Karten verfügbar. Ihr einziges Problem ist, dass sie keine IRQs unterstützen (keine der oben genannten Firmwares nutzt IRQs):



    Die Karten kosten 40€ inkl. Versand. Wer eine haben möchte, schreibt mir am besten eine Email: ol.sc@web.de


    Hier noch der primäre Link zum Projekt: https://github.com/oliverschmidt/a2pico


    Gruß, Oliver

    Hallo,


    ich finde, es wird Zeit für eine RPi-Pico-basierte Mass Storage Lösung ;)

    Meine liegt schon viel zu lange in der Schublade. Aber jetzt habe ich mich entschlossen, den aktuellen Stand zu veröffentlichen - auch wenn er noch lange nicht meinem Endziel entspricht. Ist ja zum Glück alles nur Firmware, die man später immer noch aktualisieren kann. Stay tuned...


    Gruß, Oliver

    Ach ja, falls sich jemand wundert, warum ich mich für die Corvus nicht interessiere: Ich bin eben kein Sammler.


    Für mich sind Apple II halt Entwicklungs- und Test-Geräte (https://a2retro.de/). Und ich entwickle nur für die normalen Dinge, also brauche ich nichts Spezielles. Und mein Platz ist sehr begrenzt...

    Ich bin fast sicher, dass es sich um so ein Omninet-Gerät handelt. Nach Berichten von Zeitzeugen aus erster Hand haben zwei Apple II gemeinsam das Gerät genutzt. Es ist aber nur noch ein Apple II vorhanden. Und so weit ich weiß, sind auch keine zusätzlichen Apple II Karten mehr vorhanden. Ich vermute aber, dass in dem einen vorhandenen Apple II irgendetwas Corvus-mäßiges steckt

    Fotos von der Rückseite kann ich wohl machen und die Frage der Controller-Karte kann ich auch klären. Aber die Sache mit dem Funktionieren scheint mir zweischneidig. Ist es nicht so, dass man da wohl Dinge prüfen will bevor man die überhaupt einschaltet? Und genau damit wollte ich mich im Detail eigentlich nicht auseinandersetzen...

    Hallo,


    ich kann wahrscheinlich diese Corvus Festplatte erstehen:


    Mit hoher Wahrscheinlichkeit gibt es auch eine Apple II Controllerkarte dazu - das müsste ich dann noch klären. Ich selbst habe daran kein Interesse. Gibt es hier jemanden, der die ggfs. würde kaufen wollen? Wenn ja, von welcher Preisregion sprechen wir denn da so?

    Gruß, Oliver

    Die Zwischenablage lässt sich leider im Emulationsfenster von AppleWin nicht abrufen.

    Das widerspricht sowohl meiner Erfahrung als auch der Doku...


    Shift+Insert:

    Paste text from Windows' clipboard. Text gets fed a character at a time to the Apple's keyboard hardware. The 'CR+LF' combination gets converted to CR.

    Ich weiß nicht ob das tatsächlich funktioniert, aber mein erster Versuch wäre auf jeden Fall, das fragliche Disk Image mit AppleWin zu öffnen und den Quelltext über die Windows Zwischenablage in den Turbo Pascal Editor zu importieren.

    Wahrscheinlich ist das aus Deiner Sicht noch (sehr) viel abwegiger als der Videoterm Nachbau, aber dennoch...


    Es gibt eine ganze Reihe von Projekten, die den RP2040 nutzen, um Peripherie-Chips zu emulieren. Dabei stellt es sich als sehr praktisch heraus, dass man die Emulation der eigentlichen Chip-Logik typischerweise nicht selbst programmieren muss, sondern aus "Komplett-Emulatoren" entnehmen kann. In diesem Fall hat MAME eine funktionierende Videoterm Emulation, siehe z.B.: https://glasstty.com/using-the…m-with-assembly-language/

    Du könntest Dir also eine https://github.com/V2RetroComputing/analog nehmen (es gab hier im Forum vor ein paar Monaten auch ein Nachbau-Projekt - Danke!) und deren Firmware so erweitern, dass sie auch eine Videoterm Karte emuliert.

    Das ganze würde natürlich primär dann sinnvoll sein wenn Du die Idee einen Apple II mit VGA Video Output zu haben, grundsätzlich vorteilhaft/wünschenswert empfindest.

    Die Tatsache, dass der RP2040 sowohl das RAM als auch den Massenspeicher emuliert, eröffnet die Möglichkeit, Massenspeicher I/O Performance weit jenseits von DMA über einen 6502 Bus zu erreichen. Genau das habe ich zu dem oben genannten Emulator beigetragen. Das Laden eines ~30kB Programms via ProDOS geht so schnell, dass man den Ladevorgang nicht wirklich wahrnehmen kann :sunny:

    1. "Natürlich" kann man einen 65C02 mit einem RP2040 in viel höherer Taktfrequenz emulieren, als der physische 65C02 auf dem Board verträgt. Wie so oft, ist es Geschmacksache, was man wo wie virtualisieren will. Die Lösung mit dem physischen 65C02 macht auf jeden Fall "alles" viel komplizierter. Ich weiß das, weil ich der Firmware Entwicklung folge.


    2. Die 6502 Bus Signale sind nicht 5V, sondern 3V3.


    3. Das Design hat nichts, was es in eine besondere Nähe zum Apple //e (oder Apple II im allgemeinen) rückt.

    Die von Dir genannte Methode um die eigene Lokation zu ermitteln ist die gängige (wird z.B. von Apple II Slot Firmware so gemacht). Dort wird ein bekanntes RTS im System ROM benutzt.


    6502 Code zu relozieren ist nicht trivial, aber durchaus nicht völlig abwegig. Dabei gibt es meiner Meinung nach grundsätzlich zu entscheiden, ob der Code für den Zweck entwickelt wird/wurde oder nicht.


    Im ersteren Fall wird man auf die eine oder andere Weise Metadaten erzeugen, die bei der Relozierung helfen. Dann ist weiter zu entscheiden, ob man diese Metadaten in den Code einbaut oder ob sie neben dem Code vorliegen.


    Im zweiteren Fall benötigt man einen minimalen Dissassembler. Der geht den Code durch und findet die absoluten Referenzen. Normalerweise ist es leicht zu entscheiden, ob sich eine absolute Referenz auf das eigene Programm oder das System ROM bezieht. Auf selbst modifzierenden Code verzichtet man der Einfachheit halber in einen zu relozierenden Programm lieber. Dann kann sich der Dissassembler auf JMP/JSR beschränken.


    Just my two cents.

    Zumindest bei ProDOS bin ich mir sicher, dass es kein ROM in der Language Card sucht/braucht. Ich höre davon auch zum ersten Mal. Das was ich unter dem Namen 'Language Card' kenne - und was zumindest ProDOS braucht -, besteht genau nur aus 16kB RAM.

    Ich würde vermuten, dass so etwas wie die Bank0/1 Umschaltung oder der Schreibschutz defekt ist. Damit kommen u.U. eine ganze Reihe von Programmen zurecht.

    Das ist leider wesentlich komplexer.


    Am ehesten hilft es Dir, wenn Du das von der Historie her betrachtest. Nach dem //e kam der //c heraus. Der hatte einen 65C02 Prozessor (statt 6502), einen anderen Zeichensatz und 128kB (statt 64kB).


    Um einen möglichst breiten gemeinsamen Nenner zu schaffen, bot Apple die Möglichkeit an, den //e auf das Niveau des //c hochzurüsten. Technisch korrekt ist das dann ein "enhanced //e mit extended 80 column board". Das "enhanced" bringt die C65C02 CPU und den Zeichensatz. Das "extended" bringt die 128kB.


    Wenn eine Software von 128kB spricht, dann meint sie damit immer mindestens einen //e mit "extended 80 column board" (oder eben einen //c). Vermutlich benötigt sie aber keinen 65C02 oder den neueren Zeichensatz.


    Der IIgs hat das immer alles an Bord.

    Es gab/gibt mehrere Wege. Ich habe immer Copy ][ Plus benutzt. Dort kann man das gewünschte Boot Program aus einem Verzeichnis-Listing auswählen. Wenn man statt einer A Datei eine B Datei auswählt, dann macht das Programm alles Notwendige automagisch.

    Danke für die Rückmeldung :)


    Nur um Missverständnisse zu vermeiden. Für einen ernsthaften Einsatz der SSC würde "man" natürlich nicht ihre Firmware bemühen, sondern dedizierte Software verwenden, die den ACIA direkt ansteuert.


    Übliche Verdächtige sind:

    * ADTPro: Transfer von Disk Images mit 115.200.

    * ProTERM: _DAS_ Apple II Terminal Programm, empfängt mit Interupts.

    * MODEM.MGR: Falls die H/W Voraussetzungen von ProTERM nicht erfüllt sind.

    Hallo Tony,


    womöglich verstehe ich Dich ja auch falsch, aber...


    Auf dem Apple ][ ist es eher umgekehrt: Die Standard Ausgabefunktion arbeiten mit gesetztem Bit 7. Wenn ein Ausgabegerät das nicht verträgt, dann ist es die Aufgabe der zugehörigen Firmware, das Bit 7 zu löschen. In der Firmware der Apple 'Parallel Interface Card' findest Du z.B.:

    pasted-from-clipboard.png


    Gruß, Oliver