In Entwicklung: SIO2IP

1, 2

In Entwicklung: SIO2IP

von Sven » Mi 1. Jan 2014, 19:46
Hallo zusammen und ein "happy 2014"!

Auch ich möchte die Gelegenheit einmal nutzen und meinen Stand zu meinem Projekt "SIO2IP" einmal posten.

Was soll SIO2IP sein?
Generell möchte ich versuchen, den ATARI IP-fähig zu bekommen. Es gibt zwar ein vergleichbares Projekt als Modul, jedoch möchte ich es als SIO-Device bauen.
Derzeit sind folgende Funktionen (teilweise) realisiert:

- SIO2SD-Funktionalität mit max. 4 Laufwerken
- SIO-Speed mit Pokey-Divisior 3
- Display mit Touchscreen
- Realtime-Clock
- Ethernet-Interface mit 10MBit

Anwendungsfälle
Ich erhoffe mir mit dem Projekt eine bessere Kommunikation mit der Außenwelt ;)
Dies könnte sein:
- Remote Mounten von ATRs
- Webbrowsing
- Multiplayer-Gaming :love:
- [offene Liste]

Stand der Dinge
Leider hat mich meine Frau über Weihnachten / Sylvester nicht sehr oft zu Gesicht bekommen, so dass ich viele Tage Zeit hatte Fehler zu suchen...
Derzeit funktioniert die SIO-Kommunikation recht zuverlässig, die Realtime-Clock läuft und Ethernet funktioniert grundlegend auch.

Ich möchte diesen Thread dazu nutzen, vielleicht die eine oder andere Frage projektbezogen zu stellen, sowie Rückinfos zu erhalten. Leider bin ich nicht mehr der ATARI-Crack (dafür liegen zu viele Jahrzehnte dazwischen), so dass ich viele Dinge vergessen habe und mühsam suchen, bzw. zusammentragen muss.

Daher würde ich mich freuen wenn ihr mich bei meinem Projekt unterstützt. Sei es durch Antworten auf Rückfragen, Vorschläge oder losen Informationsaustausch.

Hier noch ein paar Bilder zum Stand der Dinge:
IMG_0651.JPG
Board - Idle mit den gedruckten SIO-Buchsen ;)
IMG_0651.JPG (60.73 KiB) 7158-mal betrachtet


IMG_0652.JPG
Board in Aktion (Highspeed)
IMG_0652.JPG (59.96 KiB) 7158-mal betrachtet


IMG_0653.JPG
Diskmenü
IMG_0653.JPG (46.84 KiB) 7158-mal betrachtet


IMG_0654.JPG
ATR-Image-Auswahl
IMG_0654.JPG (48.56 KiB) 7158-mal betrachtet

Re: SIO2IP

von Sven » Mi 1. Jan 2014, 19:47
Gleich mal die erste Frage:

Welches DOS muss man heutzutage supporten, bzw. ist das must-have an Funktionalität?
Bisher habe ich "nur" unter DOS2.5 getestet...

SIO2IP

von guus » Mi 1. Jan 2014, 20:34
Hallo Sven,

Tolle Sache ! :flipando: Gerne weiter machen. :notworthy:

SpartadosX wird oft benützt und bietet sehr viel.
Da wäre aber zusammenarbeit mit den entwickler sehr hilfreich. :goteam:

Wie immer bin ich sehr interessiert um eine Platine dazu zu entwerfen. :olympic::beer:
Dies hab ich wohl eher gemacht und ich erstelle selber alle Prototypen. (Ist preisgünstig)

MFG/
Guus

Re: SIO2IP

von Mathy » Do 2. Jan 2014, 00:07
Hallo Sven

Wenn's unter DOS 2.5 läuft, läuft's wahrscheinlich mit jedem DOS. Ich würde versuchen, es nicht zu sehr auf ein DOS zu beschränken, es betten ja nicht alle zum SpartaDOS-Gott.

Tschüß

Mathy

Re: SIO2IP

von Sven » Do 2. Jan 2014, 02:14
Ich habe bisher noch den Stand von 1985... da gab es noch keine SIO2xxx und keine großen Speichermedien.
Vermutlich werde ich auch große ATR-Images unterstützen müssen. Stellt sich halt wie bei bisher vielen Themen die Frage nach dem Standard und was muss man mit an Bord haben und was ist nice2have.

Re: In Entwicklung: SIO2IP

von andreasb » Do 2. Jan 2014, 07:59
Meine Gebete wurden erhört. Wo ich doch schon seit Jahren immer wieder auf eine Lösung hoffe.
Sio2IP: Das vorliegende hört sich gut an. :D
Dos 2.5 kompatibilität scheint optimal zu sein. Dann muss man keine Angst haben, dass irgendeine Software(-erweiterung) nicht läuft.

Re: In Entwicklung: SIO2IP

von Cash » Do 2. Jan 2014, 08:57
Schönes Projekt mit komplexen Funktionsumfang. Soll das ein reines Privatprojekt, oder auch für andere nutzbar gemacht werden? Dann wäre das doch was für den ABBUC Hardware Wettbewerb! :wink:

Apropos DOS, ich nutze MyPicodos recht häufig. http://www.horus.com/~hias/atari/#mypdos

Re: In Entwicklung: SIO2IP

von skriegel » Do 2. Jan 2014, 11:41
DAS klingt mal nach einem echt coolen Projekt. :)

DOS 2.5 Unterstützung ist hervorragend, mehr solltest Du gar nicht machen. Die Anpassung an andere DOSse sollten die jeweiligen Entwickler vornehmen. Vielleicht ist S. Dorndorf ja bereit, sein XDos mit Dir zusammen anzupassen? XDos ist sehr schlank und sehr kompatibel zur Standard-Hardware.

Aber an Deiner Stelle würde ich den Fokus auf die Hardware legen.

Wie wird Ethernet dann genutzt? Wird der Stack wie ein Laufwerk über einen Handler angesprochen? Wenn ich beispielsweise den Atari per Ethernet mit dem Mac verbinde, um Dateien aus WUDSN auf den Atari zu bringen (entweder direkt Mounten, oder auf einen Datenträger schreiben-> 1050, SD auf Deinem Board, Cartridge, IDE+2 etc.), steht mir am Atari dann der volle Speicher zur Verfügung?
Wenn das ginge (per Ethernet mit Mac/PC verbinden) wäre das ja auch ein Ersatz für die USB -> SIO Adapter, oder?

Ich finde die Idee das über SIO zu machen gut, denn ALLE Atari-Rechner haben einen SIO-Bus, während PBI nicht überall vorhanden ist (400, 800, XEGS und beim XE sieht der auch noch anders aus als beim XL).

Hau rein, klasse Projekt!

Re: In Entwicklung: SIO2IP

von Fratzengeballer » Do 2. Jan 2014, 13:23
Das sieht richtig Klasse aus. Nur weiter so!! TOP

Re: In Entwicklung: SIO2IP

von 8bitjunkie » Do 2. Jan 2014, 15:28
WOW! Wie geil! :notworthy:


Wenn ich einen Wunsch für eine Anwendung äußern dürfte:
Ich entwickel ja auf dem PC mit Eclipse und Jac's WUDSN ein Spiel für den kleinen A8.
Das WUDSN erzeugt eine ATR-Datei und startet dann den Atari-Emulator an.

Vision:
Der kleine Atari wird mit einem kleinen Programm gebootet, welches per IP auf Daten lauert.
Das WUDSN kommuniziert mit dem Atari-Slaven-Programm und schickt ihm den Code rüber,
das Sklaven-Programm nimmt die Daten entgegen, speichert sie direkt im Atari-RAM und startet das Programm.
Vielleicht kann das Slaven-Programm auch weitere Daten an WUDSN zurück übermitteln: Register-Inhalte und so was..

Hach, das wär doch was... :beer:

:goteam:

Viele Grüße
Thomas

Re: In Entwicklung: SIO2IP

von Sven » Do 2. Jan 2014, 15:51
Mir geht es beim DOS derzeit nicht darum neue Funktionen in ein DOS zu implementieren, vielmehr um die wichtigen Funktionen die ich implementieren muss (z.B. Unterstützung größerer Images, verschiedene Speeds...).

Aktuell kämpfe ich noch mit anderen Themen wie zu hoher Stromverbrauch, Timing SIO <-> IP.

Die Implementierung selbst zum Übertragen von Daten soll so einfach wie möglich sein. Die Kontrolle soll der ATARI haben. Mir schwebt in etwa folgender Ablauf vor:

Öffne Socket 1 an IP 192.168.xxx.xxx Port 80 (alternativ vielleicht auch schon DNS-Auflösung)
sende "GET /DATA"
Reply: ACK, 1400 Bytes
sende Data Socket 1, 1400 Bytes
Reply: Data-Frame 1400 Bytes

So in etwa könnte ich mir das vorstellen. Vorteil daran wäre, dass der ATARI die volle Kontrolle über das mögliche Protokoll hat. Das SIO2IP würde somit nur das Management der Verbindung übernehmen, alle oberen OSI-Layer liegen dann beim ATARI.

Bisher werden beim Einschalten vom ATARI nur die Disks gemountet, die Uhr initialisiert und die Ethernet-Grundthemen (ARP-Request, DHCP) bearbeitet.
Derzeit läuft ein Dauertest mit dem Diagnosetool von Hias in HighSpeed, das permanent Sektoren einer DD-Disk einliest. Parallel dazu wird vom PC ein Dauerping mit einer Paketsize von 1440 Byte auf das SIO2IP geballert. Mal schauen... das Timing scheint schon sehr kritisch zu sein. SIO-Kommunikation wird aktuell bevorzugt behandelt und hat auch keine Fehler. Allerdings werte ich derzeit die Ethernet-Pakete nur nach einem Complete-Command und in einer kleinen Pause aus. Das hat zur Folge das Pakete verloren gehen können. Bei TCP nicht schlimm, auch ist der ATARI ja nicht permanent in der SIO-Kommunikation.

Werde den Test gleich nochmal mit einem Sector-Kopierer machen :)

Re: In Entwicklung: SIO2IP

von Mathy » Do 2. Jan 2014, 20:49
Hallo Sven

Ist noch Platz frei um SIO2PC/Mac/Linux und das Automatische Zweirechner Interface (der RAF) drauf zu packen?

Tschüß

Mathy

Edit: Ist die Realtime Clock kompatibel zur RT8 von ICD? (Oder: Braucht man neue Treiber um die Zeit aus zu lesen, oder kann man die Treiber für OSS/ICD/FTe's RT8 benutzen?)

Re: In Entwicklung: SIO2IP

von Sven » Do 2. Jan 2014, 21:55
Hi Mathy,

bin ja schon happy wenn die angedachten Funktionen laufen... danach kann man gerne noch ein paar Interfaces anbauen, solange noch Speicher vorhanden ist :P

Bezüglich der RTC: derzeit verwende ich sie nur für das Setzen von Datum/Uhrzeit im Gerät. Nach Außen ist sie derzeit nicht abfragbar. Daher ja auch o.g. Frage was muss ich unterstützen?

Beim SIO2USB gibt es z.B. das Kommando "Read RTC"... Frage wieder: welche Software unterstützt es, gibt es da einen Standard den ich Supporten müsste?

Re: In Entwicklung: SIO2IP

von Bernd » Do 2. Jan 2014, 22:50
Hi Sven,
da schaut man einige Tage mal nicht vorbei und dann solch ein Hammer. :shock:
Ich melde mich schon mal für ein Interface an. :jumpie:

SpartDos benutzt einen Treiber "Clock.sys" im Device "CAR:" um die Uhrzeit zu stellen. Diesen braucht man nur für dein Interface anzupassen und zu ersetzen. Wenn du die Syntax der SIO Übertragung für die Uhrzeit vom SIO2USB nimmst, kann man den gleichen Atari Treiber dafür verwenden.
Da die Daten übers SIO kommen, ist dies fürs Dos egal, da müßte jedes laufen.

Ich weiß nicht, ob es technisch noch geht - Drucker P: umleiten auf einen Netzwerkdrucker....

Wenn du Fragen zum erweiterten ATR-Header haben solltest, da kann ich dir helfen.
Bei Double Density sind die ersten 3 Sektoren nur $80 lang.

Viele Grüße,
Bernd

Re: In Entwicklung: SIO2IP

von Sven » Fr 3. Jan 2014, 07:46
Die Uhrzeit muss ja nicht gestellt werden, dafür gibt es NTP und das funktioniert auch schon :)
Es wäre vielleicht eines zu klären:
Aktuell arbeite ich mit den Standard-SIO-Routinen für die Floppy-Devices. Hier einfach ein paar neue Kommandos einzubauen ist ja kein Ding.
SIO2USB verwendet einen "U:"-Handler, der somit vermutlich ein anderes Device anspricht. SpartaDOS verwendet demnach "CAR:" (welcher Buchstabe?).
Wie macht es denn Sinn den SIO2IP anzusprechen? Als D: mit speziellen Kommandos oder als neues Device "I:" ?
Hardwareseitig ist das ja Jacke wie Hose...

Derzeit kann das SIO2IP bereits SD, MD und DD lesen, SD und MD, theoretisch auch DD schreiben.
Alle anderen Formate sind zwar über PERCOM abfragbar und theoretisch auch supported, aber mangels Images noch nicht getestet. Ist halt der Nachteil beim Testen mit DOS2.5 ;)

Re: In Entwicklung: SIO2IP

von skriegel » Fr 3. Jan 2014, 09:59
Jetzt stelle ich mich mal ganz doof:

"CAR:" ist doch die komplette Bezeichnung mit welcher der Inhalt der SpartaDOS-Cartridge (egal ob wirklich ein Modul oder internes SpartaDOS) angesprochen wird.
Ist es denn dann nicht möglich, dass Du Dein Device mit dem Namen "IP:" oder "ETH:" ansprichst statt eines einzelnen Buchstaben?
Oder ist CAR: vom System vorgegeben und wird von SDX einfach "missbraucht"?

Nur so eine Idee, und jetzt gehe ich weiter meine Kuppel rocken. :)

Re: In Entwicklung: SIO2IP

von Sven » Fr 3. Jan 2014, 11:55
Das Handling von SpartaDOS würde ich losgelöst vom ATARI-Standard sehen, der nur Handler wie D, C, P, E etc. kennt.
Eine mögliche Implementierung müsste dann von SpartaDOS vorgenommen werden.
Ich bin derzeit am Grübeln ob es sinnvoll ist mit auf den D-Handler zu setzen oder einen I-Handler zu implementieren. Rein aus Device-Sicht ist es egal ob er auf "D" oder "I" reagiert wenn das Kommando $60 (lese IP-Configuration aus) kommt.

Re: In Entwicklung: SIO2IP

von HiassofT » Fr 3. Jan 2014, 14:55
Hallo Sven!

Für die IP-Funktion ist es am besten wenn Du eine separate SIO Geräte ID nimmst, getrennt von den Disk Funktionen, zB $69 ("i", für IP) oder $65 ("e", für Ethernet) oder so, die sind glaubich noch nicht durch andere Geräte belegt. Müsste mal checken welche IDs SIO2SD und SDrive so verwenden, das weiss ich grad nicht auswendig.

Das Ansprechen per CIO Handler (zB über "R:" oder "I:") ist dann eine andere Geschichte. Am besten ist es, das so wie beim R: Handler zu machen: Das "Treiber" COM File checkt ob das SIO Gerät vorhanden ist und lädt dann von dort den eigentlichen Treiber nach - der Treiber auf der DOS Disk kann dann immer der gleiche bleiben.

Zum Auslesen der Uhrzeit gibt's mehrere Möglichkeiten. Am einfachsten ist es Du implementierst das APE Kommando zum Auslesen der Uhrzeit - dafür gibt's schon fertige Atari Treiber. Das APETIME Programm schickt an D1: ein Kommando $93 (das sind die APE-speziellen Kommandos) mit AUX1=$ee und erwartet dann 6 Datenbytes. Hier ein Ausschnitt aus meinem AtariSIO Code:
Code: Alles auswählen
                        time_t current_time;
                        struct tm* ltime;
                        time(&current_time);
                        ltime = localtime(&current_time);

                        fBuffer[0] = ltime->tm_mday;
                        fBuffer[1] = ltime->tm_mon+1;
                        fBuffer[2] = ltime->tm_year % 100;
                        fBuffer[3] = ltime->tm_hour;
                        fBuffer[4] = ltime->tm_min;
                        fBuffer[5] = ltime->tm_sec;

Statt der APE Version kannst Du natürlich auch irgendeine andere Version (zB die vom SIO2USB) nehmen - der Nachteil an der APE Variante ist, daß sie am D1: Gerät hängt, der Vorteil aber, daß APETIME recht verbreitet ist und viele SpartaDos User ihn schon verwenden.

so long,

Hias

Re: In Entwicklung: SIO2IP

von CharlieChaplin » Fr 3. Jan 2014, 16:30
Hmm,

da der (Screen-)Editor schon E: benutzt, würde ich am ehesten zu I: oder i: tendieren, sofern das nicht schon von einem anderen Device belegt ist.

-Andreas Koch.

Re: In Entwicklung: SIO2IP

von Sven » Fr 3. Jan 2014, 16:33
Es spricht ja nichts dagegen die Abfrage der Zeit über D: und I: zu realisieren :)

Den Beiträgen entnehme ich, dass ich mich mal mit SpartaDOS beschäftigen sollte...

EDIT: SpartaDOS ist für die ausschließliche Modulnutzung vorgesehen?!
1, 2