************************************************************ * * * FSERIAL.CPX V1.0 Release Notes * * * ************************************************************ Roman Hodek 8. Januar 1993 Inhaltsverzeichnis ================== 1) Zweck 2) Bedienung 3) Die FSERIAL-Infos 4) Portabilit„t 5) Bugreports 6) History 1) Zweck ======== FSERIAL.CPX ist Bestandteil von FAST_SER von Franz Sirl, das CPX wurde von Roman Hodek geschrieben. Es dient zur Konfiguration der seriellen Schnittstel- len unter Bercksichtigung von FAST_SER. FSERIAL.CPX tut im Prinzip dasselbe wie das bekannte MODEM.CPX von Atari, nur daž es eben merkt, wenn FAST_SER installiert ist und entsprechend handelt. Darberhinaus kann FSERIAL.CPX ein paar Informationen ber die Schnittstellen anzeigen und Breaks senden. 2) Bedienung ============ Im Hauptdialog verh„lt sich FSERIAL.CPX genauso, wie man es von einem CPX er- wartet und wie man es von MODEM.CPX gewohnt ist. Es haben nur folgende kleine Anpassungen stattgefunden: - Die Anordnung von Datenbits/Parit„t/Stopbits wurde umgestellt, so daž es der gewohnten Reihenfolge von z.B. 8N1 entspricht. - Gibt es keine erweiterten Schnittstellen, so ist das Port-Popup abgeschal- tet und fest auf Modem 1. - Ist die aktuelle Schnittstelle Serial 1, so ist kein Rts/Cts-Handshake m”g- lich, da Serial 1 keine solchen Handshake-Leitungen besitzt. - Es gibt eine Infozeile, die die Version des CPX anzeigt und ob FAST_SER installiert ist und wenn ja, welche Version. - Es gibt einen Button, um den Kompatibilit„tsmodus von FAST_SER ein- bzw. auszuschalten. Ist dieser Modus an, so k”nnen zwei der erweiterten Speeds unter den Rsconf()-Indices 0 und 1 angesprochen werden,[1] die "alten" Raten verschieben sich dementsprechend um 2 und bei Indices ò 18 findet man alle m”glichen neuen Speeds. Um also z.B. bei Seriell 2 38400 bps ein- zustellen, w„hlt man in einem "nichtwissenden" Programm 9600 bps (= Index 1) aus. Ist die Kompatibilit„t ausgeschaltet, so sind die neuen Geschwin- digkeiten nur am Ende zu finden, d.h. sie k”nnen von Programmen, die nichts von FAST_SER wissen, nicht angesprochen werden. FSERIAL.CPX kommt mit bei- den Konventionen zurecht, allerdings kann es beim Umschalten zwischen bei- den Modi zu einem Verstellen der Baudrate kommen. Man sollte also immer zuerst den Kompatib.modus „ndern, "OK" drcken und danach nocheinmal die bps-Rate kontrollieren. Beim Booten werden alle Parameter inklusive der aktuellen seriellen Schnittstelle auf die in FSERIAL.CPX gespeicherten Werte gesetzt. Bei jedem Aufruf werden die Parameter erneut abgefragt, da sie ja von einem anderen Programm verstellt worden sein k”nnten. Man kann also FSERIAL.CPX auch zum Abfragen der aktuellen Einstellungen benutzen. Wird der Dialog mit "OK" verlassen, so werden die Parameter fr _alle_ Ports gesetzt (nicht nur fr den gerade unter "Port" eingestellten). Ebenso werden bei "Sichern" die Werte fr alle Ports abgespeichert. Leider ist aber der Handshakemode nicht per Rsconf() abfragbar. Daher wird hierfr direkt auf eine undokumentierte Variable der IOREC-Struktur zugegrif- fen.[2] Bei einem TOS ó 1.02 kann leider die eingestellte bps-Rate nicht ab- gefragt werden. Dieser Fall wird auch nicht abgefragt, da man dann wahrschein- lich weder FAST_SER noch FSERIAL.CPX ben”tigt. --------------- [1] Seriell 2 und Modem 2 (Mega STE): 0<->57600, 1<->38400, Modem 2 (TT): 0<->38400, 1<->76800 [2] Dabei wird auch ein TOS-Fehler in diesem Zusammenhang umschifft. 3) Die FSERIAL-Infos ==================== Mit dem Button "Info" kommt man zu den FSERIAL-Infos. Dort werden folgende Daten angezeigt: Port: Der Port, zu dem die Daten geh”ren. Chiptyp: Der Hardwarechip, der diese Schnittstelle steuert. Wenn FAST_SER installiert ist, bekommt man bei SCC-Ports eine genaue Angabe des Chips, ansonsten nur "SCC". Input-Puffer: Die Gr”že des Puffers fr ankommende Daten. Output-Puffer: dito fr den Ausgabepuffer Fehleranzeigen: FAST_SER verwaltet verschiedene Z„hler fr Fehler, die bei der šbertragung auftreten k”nnen. Ist FAST_SER nicht installiert, so bleiben die folgenden Angaben leer. SCC-bedingt sind manche der Angaben leider nicht immer 100%-ig verl„žlich (speziell Frame Errors und Lost Chars). Framing Errors: Zu soviel Zeichen wurden keine bzw. nicht die richtige Anzahl Stopbits empfangen. Parity Errors: Anzahl der Zeichen, fr die eine inkorrekte Parit„t fest- gestellt wurde. Rx Overflows: Anzahl der Zeichen, die wegen vollem Empfangspuffers verlo- rengingen. Lost Chars: Anzahl der Zeichen, die verlorengingen, weil der SCC nicht schnell genug abgefragt wurde. Die Fehlerz„hler laufen normalerweise immer weiter, wenn neue Fehler pas- sieren. Mit dem Button "Fehler l”schen" kann man alle Z„hler wieder auf Null setzen, falls dies n”tig sein sollte. Zus„tzlich zu den Infos kann man aus diesem Dialog auch noch einen Break (d.h. eine Dauerlage Nullen ohne Stopbits) senden. Der Break dauert solange, wie man sich mit gedrckter Maustaste auf dem Button befindet. 4) Portabilit„t =============== Bei der Vielfalt der seriellen Schnittstellen und der TOS-Fehler ist es nicht einfach, wirklich portabel zu programmieren. Daher gibt es ein paar Einschr„n- kungen: - FSERIAL.CPX kann nur mit einer TOS-Version ò 1.04 verwendet werden, da man vorher die eingestellte bps-Rate nicht auslesen kann. - FSERIAL.CPX verl„žt sich ”fters darauf, daž es entweder 1, 3 (Mega STE) oder 4 (TT) serielle Ports gibt, und dies genau bei den genannten Maschi- nen. Falls es einmal Schwierigkeiten hiermit geben sollte, bitte Bugreport an mich. Ebenfalls wird angenommen, daž bei 3 Ports diese "Modem 1", "Modem 2" und "Serial 2" heižen. Bei 4 Ports wird "Serial 1" vor "Serial 2" ein- geschoben. "Serial 1" hat dabei die besondere Eigenschaft, daž es keine Handshakeleitungen besitzt. - FSERIAL.CPX erlaubt aktuell bis zu maximal 29 verschiedene bps-Raten an einer Schnittstelle. Da es FAST_SER prinzipiell erlaubt, eigene Geschwin- digkeiten zu definieren, k”nnte dies dazu fhren, daž manche Speeds nicht mehr einstellbar sind. Die Grenze w„re jedoch durch einfaches Neucompilie- ren hochzusetzen. - Man kann mit Rsconf() nicht den Handshakemodus erfahren. Dieser ist aber in einer (undokuentierten) IOREC-Variablen gespeichert. Es gibt auch schon mehrere andere Programme, die sich darauf verlassen, daž diese Angabe dort steht. Leider funkt auch hier wieder ein TOS-Fehler dazwischen: In manchen Versionen war sich Atari nicht einig, ob der Modus nun im High- oder im Lowbyte des Words zu speichern ist. Daher wird folgendermažen abgefragt: Wenn im Lowbyte ein Wert ungleich Null steht, so wird dieser benutzt. Nur wenn dort eine Null ist, wird der Wert des Highbytes benutzt. Auch hier gilt: Wenn mein Vorgehen Schwierigkeiten verursacht: Bugreport an mich. - Auch beim Break-Senden ist Atari mal wieder ein Tippfehler unterlaufen: Bei den Original SCC-Rsconf's wird das Breakbit im falschen Parameter erwartet. Um dies zu umschiffen, habe ich folgende Methode gew„hlt: Zuerst wird das Bit an der richtigen Stelle gesetzt und dann im TSR-Rckgabewert nachgese- hen, ob dort das Bit nun wirklich 1 ist. Wenn ja ist alles ok, sonst wird das Bit im Argument davor gesetzt. 5) Bugreports ============= FSERIAL.CPX wurde in einem mehrmonatigen Betatest geprft und scheint in- zwischen einigermažen fehlerfrei zu sein. Falls Sie doch einen Bug finden oder einen Verbesserungsvorschlag habe, so schreiben Sie bitte an: Roman Hodek Baiersdorfer Str. 7 8521 M”hrendorf Roman Hodek @ N (Mausnetz) cdb0@faui60.informatik.uni-erlangen.de rnhodek@cip.informatik.uni-erlangen.de am Besten per E-Mail. Fr eine Diagnose ist eine genaue Beschreibung des Fehlers und seiner Symptome sowie eine genaue Angabe der benutzten Systemkon- figuration (Hard- und Software) „užerst wichtig! 6) History ========== V0.1á: Erste ver”ffentlichte Version V0.2á: Watermark-Anzeige im Infodialog ersetzt (da wenig sinnvoll) durch die Fehlerz„hler; Button fr baud_table_flag eingebaut; Fehler beim Window- Verschieben beseitigt V0.3á = V1.0: Kleiner Vertipper bei Stopbits/Parit„t-Einstellung beseitigt; ansonsten scheint das CPX inzwischen weitgehend fehlerfrei zu sein.