Highspeed SIO mit 110kbit - Tester gesucht
von HiassofT » Fr 13. Feb 2009, 14:40Hi!
Ich habe wieder weiter an meinem Highspeed SIO Patch gearbeitet und habe es nun geschafft bis auf 110kbit (mit abgeschaltetem ANTIC DMA sogar bis 126kbit) zu kommen. Hier ist der Link zur aktuellen Test-Version:
http://www.horus.com/~hias/tmp/hipatch-090212.zip
Die neuen Versionen von HISIO*.COM enden alle mit "I", nehmt also entweder "HISIORI.COM" oder "HISIOI.COM". Die Files ohne "I" im Namen sind (fast) identisch zur letzten Version des Patches und gehen bis max. 80kbit rauf.
In dem ZIP File findet ihr auch 3 Testprogramme:
"diag.atr" enthält den neuen SIO Code und liest in einer Schleife alle Sektoren von D2: (Achtung: D2: muss eine DD disk/image sein!). Bei einem Fehler stoppt das Programm und der aktuelle Timestamp sowie der Fehler wird ausgegeben.
"diag-nodma.atr" ist wie diag.atr, nur wird beim Test der ANTIC DMA ausgeschaltet. Damit sollten dann bis zu 126kbit möglich sein.
"diag-ext.atr" verwendet einen modifizierten Highspeed Code mit zusätzlichen Debug/Trace Infos. Bei einem Fehler werden detaillierte Infos ausgegeben (wohl nur für mich lesbar :-) in welchem Teil es zu einem Fehler kam.
So, nun zu meinen bisherigen Tests:
Ich habe AtariSIO erweitert und verwende in meinem PC eine 16C950 Karte (statt dem 16C550). Damit ist es möglich höhere Geschwindigkeiten zu erreichen und auch viel feiner einzustellen. Mein SIO2PC Interface ist selbstgebaut und verwendet einen MAX232 (Standard-Schaltung, nix besonderes).
Mit diesem Setup haben sowohl mein PAL 800XL als auch mein NTSC 800XL bei ~110kbit (Pokey Speed Byte 1) einen jeweils ca. halbstündigen Test (diag.atr) ohne Fehler absolviert :-)
Ich habe dann auch noch mit meinem SIO2SD getestet, damit kam ich aber nur auf max. 90kbit (Pokey Byte 3). Höhere Geschwindigkeiten klappten nicht. Weder beim PAL noch NTSC XL.
Mich würde nun interessieren, wie sich mein Code mit dem Atarimax SIO2PC USB Interface oder auch mit dem SIO2SD bei euch verhält. Falls wer so ein Interface hat, würde ich mich sehr über einen Test und Fehler- oder Erfolgs-Bericht freuen.
Nun noch ein paar Hintergrundinfos:
Das Limit von ~80kbit mit dem alten Code kommt durch den NMI Handler Code im OS ROM. Bei einem (immediate) VBI verbraucht der Code im ROM zu viel Zeit, dadurch kommt es zu einem Overrun und ein Byte geht verloren.
Der neue Code (in den "I" Versionen) patcht nun den NMI Code im OS durch eine kürzere Variante. Wenn das CRITIC Flag gesetzt ist (üblicherweise während der SIO) wird der neue Code verwendet, ansonsten wird der original Code im OS verwendet. Im neuen Code werden nur die System-Clock ($12..$14) hochgezählt und der erste System-Timer (für SIO Timeouts) behandelt. Den Code für den Atract Mode habe ich rausgeworfen.
Vorsicht: ich übernehme keine Verantwortung für eingebrannte Bildschirme, wenn ihr den SIO-Test für mehrere Tage durchlaufen lässt.
Im neuen Code werden übrigens auch die DLIs gesperrt sobald CRITIC gesetzt ist. Damit sollte gewährleistet sein, daß der neue SIO Code wirklich ungestört laufen kann.
Achja: schliesst beim Test am besten nur ein einziges SIO Gerät an den Atari an, je länger die SIO-Kette ist und je mehr Geräte dranhängen desto eher werden Übertragungsfehler bei hohen Geschwindigkeiten auftreten. Bei mir klappten die 110kbit auch noch mit 2 1050er in der Kette, andererseits gab's ja schon Berichte von Usern die Probleme mit einer XF551 bei 38kbit hatten. Es kommt also durchaus auch auf das SIO Gerät (bzw dessen elektrische Eigenschaften) an.
Also: bitte testet den Code mal auf eueren Rechnern, insbesonders mit Geräten die mehr als ~70kbit schaffen (sollten) und berichtet hier.
so long,
Hias
Ich habe wieder weiter an meinem Highspeed SIO Patch gearbeitet und habe es nun geschafft bis auf 110kbit (mit abgeschaltetem ANTIC DMA sogar bis 126kbit) zu kommen. Hier ist der Link zur aktuellen Test-Version:
http://www.horus.com/~hias/tmp/hipatch-090212.zip
Die neuen Versionen von HISIO*.COM enden alle mit "I", nehmt also entweder "HISIORI.COM" oder "HISIOI.COM". Die Files ohne "I" im Namen sind (fast) identisch zur letzten Version des Patches und gehen bis max. 80kbit rauf.
In dem ZIP File findet ihr auch 3 Testprogramme:
"diag.atr" enthält den neuen SIO Code und liest in einer Schleife alle Sektoren von D2: (Achtung: D2: muss eine DD disk/image sein!). Bei einem Fehler stoppt das Programm und der aktuelle Timestamp sowie der Fehler wird ausgegeben.
"diag-nodma.atr" ist wie diag.atr, nur wird beim Test der ANTIC DMA ausgeschaltet. Damit sollten dann bis zu 126kbit möglich sein.
"diag-ext.atr" verwendet einen modifizierten Highspeed Code mit zusätzlichen Debug/Trace Infos. Bei einem Fehler werden detaillierte Infos ausgegeben (wohl nur für mich lesbar :-) in welchem Teil es zu einem Fehler kam.
So, nun zu meinen bisherigen Tests:
Ich habe AtariSIO erweitert und verwende in meinem PC eine 16C950 Karte (statt dem 16C550). Damit ist es möglich höhere Geschwindigkeiten zu erreichen und auch viel feiner einzustellen. Mein SIO2PC Interface ist selbstgebaut und verwendet einen MAX232 (Standard-Schaltung, nix besonderes).
Mit diesem Setup haben sowohl mein PAL 800XL als auch mein NTSC 800XL bei ~110kbit (Pokey Speed Byte 1) einen jeweils ca. halbstündigen Test (diag.atr) ohne Fehler absolviert :-)
Ich habe dann auch noch mit meinem SIO2SD getestet, damit kam ich aber nur auf max. 90kbit (Pokey Byte 3). Höhere Geschwindigkeiten klappten nicht. Weder beim PAL noch NTSC XL.
Mich würde nun interessieren, wie sich mein Code mit dem Atarimax SIO2PC USB Interface oder auch mit dem SIO2SD bei euch verhält. Falls wer so ein Interface hat, würde ich mich sehr über einen Test und Fehler- oder Erfolgs-Bericht freuen.
Nun noch ein paar Hintergrundinfos:
Das Limit von ~80kbit mit dem alten Code kommt durch den NMI Handler Code im OS ROM. Bei einem (immediate) VBI verbraucht der Code im ROM zu viel Zeit, dadurch kommt es zu einem Overrun und ein Byte geht verloren.
Der neue Code (in den "I" Versionen) patcht nun den NMI Code im OS durch eine kürzere Variante. Wenn das CRITIC Flag gesetzt ist (üblicherweise während der SIO) wird der neue Code verwendet, ansonsten wird der original Code im OS verwendet. Im neuen Code werden nur die System-Clock ($12..$14) hochgezählt und der erste System-Timer (für SIO Timeouts) behandelt. Den Code für den Atract Mode habe ich rausgeworfen.
Vorsicht: ich übernehme keine Verantwortung für eingebrannte Bildschirme, wenn ihr den SIO-Test für mehrere Tage durchlaufen lässt.
Im neuen Code werden übrigens auch die DLIs gesperrt sobald CRITIC gesetzt ist. Damit sollte gewährleistet sein, daß der neue SIO Code wirklich ungestört laufen kann.
Achja: schliesst beim Test am besten nur ein einziges SIO Gerät an den Atari an, je länger die SIO-Kette ist und je mehr Geräte dranhängen desto eher werden Übertragungsfehler bei hohen Geschwindigkeiten auftreten. Bei mir klappten die 110kbit auch noch mit 2 1050er in der Kette, andererseits gab's ja schon Berichte von Usern die Probleme mit einer XF551 bei 38kbit hatten. Es kommt also durchaus auch auf das SIO Gerät (bzw dessen elektrische Eigenschaften) an.
Also: bitte testet den Code mal auf eueren Rechnern, insbesonders mit Geräten die mehr als ~70kbit schaffen (sollten) und berichtet hier.
so long,
Hias