von Sven » Mi 4. Sep 2013, 08:36
Ich bin ja jetzt viele Monate sporadisch an dem Projekt SIO2IP dran (siehe
hier).
Im Vorfeld habe ich mir schon einige Gedanken gemacht, wie man ein solches Device HighLevel gestalten sollte. Hier vielleicht meine Ergebnisse.
* Anforderungen / Anwendungsfälle
- Mein Ziel war/ist es, ein großes MMORPG auf den ATARI zu bekommen, also eine klassische Client/Server-Lösung.
- Weiterhin sollten Funktionen wie "RemoteBoot", FTP- und Kopierfunktionen enthalten sein.
- Ein Großteil der Intelligenz sollte das Device zur Verfügung stellen, der ATARI sollte primär nur mit einem "I:"-Handler arbeiten (=einfache Integration).
- Die Kommunikation sollte intern über Sockets laufen, der volle TCP/IP-Stack im Device gemanaged werden.
- zunächst nur IPv4-Unterstützung.
- Power durch den ATARI
- Minimale Ressourcenbelastung am ATARI, nutzbar auf allen 8Bit-Geräten
- Einfache SW-Upgrades
- Kein ewiges Umstecken / Blockieren von Ressourcen am ATARI
- preisgünstige Bauteile in DIL-Ausführung
Als Ergebnis der Punkte blieb mir als flexibelste Lösung die SIO übrig.
Die Hardware des Devices hatte am Ende:
- 10MBit Half-Duplex-Schnittstelle, damit das Device nicht "erschlagen" wird und ein riesen Buffer vorhanden sein muss.
- SIO2SD integriert
- Realtime-Clock (mitunter um auch Einstellungen permanent zu speichern)
*** Angedachter Ablauf ***
Zunächst wird wie bisher bei den SIO2SD bekannt ein Image gemountet und gestartet. Je nach Programm kann dieses den I-Handler installieren und ggf. den Rest an Software per TCP/IP aus dem Netz holen, andere Images per FTP / RemoteBoot von einem NAS o.ä. nachladen.
Diese Lösung beseitigt auch das Problem von AutoSensing einiger Switche, die doch ihre Zeit brauchen die 10Mit zu erkennen.
Da dies eine recht wahlfreie Lösung ist können die Anwendungsfälle alleinig durch die verwendete Software realisiert werden (Chats, Browser, Filesharing, Multiplayergaming...) und eine Implementierung ist ohne großen Speicheraufwand für die Kommunikation machbar (Open #1,4,2,"I:abbuc.de")
*** Herausforderungen
Interessant ist die Kommunikation der SIO, dessen Master der ATARI darstellt. Hier muss nun der ATARI sporadisch am Device anfragen, ob neue Daten vorliegen, da das Device per SIO keine Möglichkeit hat eine Art von Interrupt bereitzustellen. Auch hat man die Herausforderungen, dass Pakete eine recht große, variable Payload haben (MTU, Maximum Transmission Unit), dessen Inhalt schnell über 1k groß sein kann, je nach Anwendungsfall. Alle Standard-Funktionen (DNS, NTP, FTP...) müssen separat integriert, TCP / UDP gemanaged werden.
*** Warum kein Modul?
Ich bin kein Hardware-Guru, aber nach meinem Verständnis wird ein Modul beim Einschalten direkt in den Speicher eingeblendet und ist quasi sofort aktiv. Dies wiederum bedeutet, dass der Speicherbereich direkt belegt wird und eine entsprechende Software sofort aktiv, dessen Inhalt zunächst statisch ist. Dies entspricht nicht meiner Vorstellung, da es schon eine Art von Zwangsvorgabe darstellt.
*** Warum nicht PBI?
Der PBI schränkt zunächst den Gerätetyp ein (XL -> XE, siehe Freezer). Dies bedeutet verschiedene Geräte für unterschiedliche ATARI. Ferner ist das Stromproblem vorhanden, was weitere Ressourcen blockiert (Joystickport) oder einen Eingriff in den ATARI nötig macht.
*** Wo stehe ich heute?
Leider ist das Projekt seit einigen Monaten etwas auf Eis (Zeitmangel...)
Auf dem Entwicklungsboard hatte ich SIO2SD realisiert, die RTC lief und erste Ethernet-Funktionen waren aktiv (NTP-Sync, Ping...). Nun habe ich das Ganze auf eine Lochrasterplatine umgebaut, den Prozessor gewechselt und spiele mit dem Gedanken, das Device mit einem Touchscreen auszustatten, was leider etwas umfangreicher ist als ursprünglich gedacht. Auch hatte ich überlegt, von SD auf USB umzustellen.
Was gänzlich fehlt ist ein durchdachtes SIO-Protokoll. Vielleicht ist Marcin bei seiner SIO2PI schon etwas weiter und wir hätten eine Basis?
Alles in Allem ist noch so viel zu tun, dass ich eine weitere Entwicklungszeit von 10 Jahren schätze

Wenn mir das Projekt aber eines zeigt: Die Möglichkeiten eines solchen Gerätes sind enorm und durchaus im Rahmen des machbaren. Eine Bereicherung für die Community.
Gruß
Sven