home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / telecomm / hsmoda06 / hsm_doku / scc_x.txt < prev    next >
Text File  |  1995-01-15  |  33KB  |  752 lines

  1. SCC.PRG, ESCC.PRG, ST_ESCC.PRG
  2. ------------------------------
  3.  
  4. (Note for the English reading people: The English version is appended on 
  5. the German, look for it!)
  6.  
  7. !!! Wichtiges neues selbst übersetzt, Rest mit "<NEWBEGIN>" und "<NEWEND>" 
  8. geklammert. !!!
  9.  
  10. Dies sind Treiber für die mit einem SCC oder ESCC (z.B. Z8530, Am85C30, 
  11. Z85230) ausgestatteten seriellen Schnittstellen der Ataris und für die 
  12. Zusatzhardware ST_ESCC. Sie funktionieren zusammen mit DRVIN.PRG oder 
  13. einem gleichwertigen Ersatz. Einführende Bemerkungen finden sich in 
  14. 1_README.TXT.
  15.  
  16.  
  17.  
  18. Allgemeines
  19. -----------
  20. Als "ESCC" betrachte _ich_ nur den Z85230 und den Am85C230A. Diese 
  21. besitzen nebem dem auf 8 Byte vergrößerten EmpfangsFIFO auch einen 
  22. mindestens 4 Byte großen SendeFIFO. Ein ESCC beinhaltet alle Funktionen 
  23. eines SCC.
  24.  
  25. Die Konfigurationsmöglichkeiten der einzelnen *SCC*.PRG unterscheiden sich 
  26. etwas.
  27.  
  28.  
  29. Taktrate und Baudraten
  30. ----------------------
  31. Ein SCC kann für die Baudratenerzeugung verschiedene Taktquellen 
  32. verwenden. Die meistbenutzte Taktquelle ist sein Systemtakt PCLK. Dieser 
  33. Takt PCLK beträgt bei einem normalen (so wie von Atari geliefert) MegaSTE, 
  34. TT und Falcon 8MHz (=8000000Hz). Das ist zwar eine schöne Zahl, die aber 
  35. zur Erzeugung der hohen Standardbaudraten wenig geeignet ist. Die hohen 
  36. Baudraten im MegaSTE/TT/Falcon werden aus anderen Taktquellen erzeugt. 
  37. Meine Hardware ST_ESCC wird immer mit 14745600Hz getaktet.
  38.  
  39. Man kann einen MegaSTE, TT oder Falcon mit einem Quarzoszillator und etwas 
  40. Draht auf PCLK=14745600Hz umbauen (Vorschlag von Franz Sirl). Wenn man nur 
  41. die 115200Bd und 57600Bd auf MODEM2 haben will, bietet sich ein 
  42. einfacherer Umbau nur mit Draht an<BEGINNEW>, siehe "MODEM2 des TT mit 
  43. 57600 und 115200Bd".<ENDNEW>
  44.  
  45. Die Treiber unterscheiden automatisch zwischen den beiden PCLK-Taktraten 
  46. 8MHz und 14745600Hz und zeigen die ermittelte Rate in ihrer 
  47. Installationsmeldung an.
  48.  
  49. Bei einem PCLK von 8MHz sind folgende Rsconf-Baudraten möglich:
  50. (neue - alte)
  51. SERIAL2:
  52. 230400 - 200
  53. 115200 - 150
  54.  57600 - 134
  55.  38400 - 110
  56. MODEM2:
  57.  38400 - 110
  58. 153600 -  75
  59.  76800 -  50
  60. Bei MegaSTE und Falcon (nicht beim TT) sind zusätzlich auf MODEM2:
  61. 230400 - 200
  62. 115200 - 150
  63.  57600 - 134
  64.  
  65. Bei PCLK = 14745600Hz sind bei MODEM2 und SERIAL2 möglich:
  66. neue Rate   alte Rate
  67.  230400      200
  68.  115200      150
  69.   57600      134
  70.   38400      110
  71.  153600       75
  72.   76800       50
  73.  
  74. Wenn man die GEMDOS-Fcntl TIOC?BAUD benutzt, hat man ohnehin kein Problem, 
  75. dort erfährt man, welche Baudraten möglich sind im Klartext als 
  76. "Bit pro Sekunde".
  77.  
  78. ST_ESCC enthält immer einen ESCC. MegaSTE/TT/Falcon enthalten nur einen 
  79. ESCC, wenn den jemand extra gewechselt hat. Der Treiber für den SCC läuft 
  80. auch mit dem ESCC-Schaltkreis, umgekehrt nicht.
  81.  
  82.  
  83. SCC und ESCC
  84. ------------
  85. Zur Erinnerung nochmal: Als "ESCC" betrachte _ich_ nur den Z85230 und den 
  86. Am85C230A. Bei ST_ESCC wird immer ein ESCC eingesetzt. In 
  87. MegaSTE/TT/Falcon befindet sich im Originalzustand nur ein SCC. Zur 
  88. Entlastung der CPU und zur Verbesserung der Datensicherheit (geringere 
  89. Wahrscheinlichkeit von Zeichenverlusten beim Empfang) kann man einen ESCC 
  90. im PLCC-Gehäuse einsetzen. SCC und ESCC sind pinkompatibel genug.
  91.  
  92.  
  93. SCC.PRG
  94. -------
  95. Der Treiber für MODEM2 und SERIAL2/LAN des MegaSTE und TT sowie für die 
  96. einzige durch Atari herausgeführte RS232-Schnittstelle des Falcon 
  97. (beschriftet mit MODEM), wegen ihrer Verwandschaften hier ebenfalls MODEM2 
  98. genannt.
  99.  
  100. Beim TT (und Falcon, falls man dem einen Beschleuniger mit FastRAM 
  101. spendiert hat) darf SCC.PRG _keinesfalls_ ins FastRAM, da es sonst mit zu 
  102. schnellen Zugriffen auf den SCC Probleme geben kann. Diese Probleme 
  103. könnten sich in Zeichenverlusten, unsinnigem Verhalten oder Bomben äußern. 
  104. Die Treiber müssen in physisch vorhandenes RAM geladen werden, dürfen also 
  105. _nicht_ im virtuellen Speicher liegen.
  106.  
  107.  
  108. ESCC.PRG
  109. --------
  110. Siehe SCC.PRG. Dieser Treiber ist nur für die Nutzer, die sich einen 
  111. Z85230 oder Am85C230A eingebaut haben. Der SCC-Treiber funktioniert 
  112. ebenfalls mit dem ESCC, nutzt die ESCC-Vorteile aber nicht aus. Der 
  113. ESCC-Treiber ist für den SCC sehr ungeeignet!
  114.  
  115.  
  116. ST_ESCC.PRG
  117. -----------
  118. Der Treiber nur für (ich komm mir langsam wie in einer Dauerwerbesendung 
  119. vor) die von mir entwickelte Hardware ST_ESCC, die zwei zusätzliche 
  120. schnelle serielle Schnittstellen in ST/STE/MegaST realisiert. 115200Bd 
  121. problemlos mit einem 8MHz/68000 unter TOS, das ist doch was.
  122.  
  123.  
  124. Die Konfiguration
  125. -----------------
  126. Die Konfiguration erfolgt durch das SETTER.TTP. Zur Bedienung siehe 
  127. SETTER.TXT.
  128.  
  129. USE4C
  130. Diese Frage erscheint nur bei ESCC.PRG und ST_ESCC.PRG. Soll ein 
  131. Empfangsinterrupt erst nach 4 empfangenen Zeichen erfolgen? Ich nenne 
  132. diesen Modus, der erst nach 4 Zeichen einen Interrupt auslöst, 4ZI. 4ZI 
  133. entlastet bei "RTS/CTS"- und "ohne"- Handshake die CPU wesentlich. Bei 
  134. "XON/XOFF"-Handshake ist er automatisch ausgeschaltet, der Aufwand an 
  135. Sonderbehandlungen hätte den Nutzen überstiegen. Neben den Vorteilen 
  136. verkürzt 4ZI aber die freie Länge des EmpfangsFIFOs von 8 auf 4 Zeichen. 
  137. Nach einer Interruptmeldung des ESCC an die CPU können vor einer Reaktion 
  138. der CPU nur noch 4 statt 8 Zeichen verlustfrei empfangen werden. 
  139. Normalerweise schaltet man 4ZI an, antwortet also mit "Ja", da 4 freie 
  140. Zeichen ausreichen und der Gewinn an CPU-Zeit durch die auf 1/4 
  141. reduzierten Empfangsinterrupts wesentlich ist. Wenn man unsaubere 
  142. Programme hat, muß man 4ZI wahrscheinlich immer ausschalten, also hier mit 
  143. "Nein" antworten. Diese unsauberen Programme äußern sich durch 
  144. verschiedene Verzögerungen: im Terminalmode kommen erst dann Zeichen auf 
  145. den Bildschirm, wenn es 4 Zeichen sind. Unsaubere Übertragungsprotokolle 
  146. hängen einige Zeit (oder ewig) fest, besonders am Anfang oder Ende.
  147.  
  148. M2TT
  149. Die Standardeinstellung "u" sollte keine Probleme bereiten, da der TT 
  150. anhand des _MCH-Cookies erkannt wird und dann auf MODEM2 keine 57600Bd und 
  151. 115200Bd möglich sind. "0" legt fest, daß 57600/115200 bereitgestellt 
  152. werden, was auf TTs aber nur sinnvoll ist, wenn man den Draht-Umbau 
  153. gemacht hat. "1" legt fest, daß 57600/115200Bd nicht möglich sind. Bei 
  154. ST_ESCC.PRG wird diese Frage nicht gestellt. Wenn ein PCLK-Takt von 
  155. 14745600Hz erkannt wurde, ist die Antwort auf diese Frage bedeutungslos.
  156.  
  157. M1EMU
  158. Die Standardeinstellung ist "u". Dies dürfte durch die automatischen 
  159. Computertyperkennung anhand des _MCH-Cookies keine Probleme bereiten. 
  160. Diese Funktion wurde extra auf Wunsch der Falcon-Besitzer und der Nutzer 
  161. alter Programme eingebaut. Der reine Nutzer kann den Rest zu diesem 
  162. Konfigurationspunkt überspringen.
  163.  
  164. Wenn man M1EMU einschaltet, sollte man kein MFP*.PRG für MODEM1 laden, da 
  165. sich M1EMU damit beißt! Der am Computer vorhandene MODEM1-Anschluß wird 
  166. bei eingeschaltetem M1EMU unbrauchbar.
  167.  
  168. "u" aktiviert M1EMU nur auf dem Falcon. "0" verbietet M1EMU generell. "1" 
  169. schaltet M1EMU immer an.
  170.  
  171. M1EMU, der MODEM1-Emulator, ersetzt die BIOS-Routinen des Kanals 6 
  172. (MODEM1) durch die BIOS-Routinen des Kanals 7 (MODEM2). Außerdem wird das 
  173. aktuelle BIOS-Gerät (AUX) auf 7 eingestellt (für die etwas sauberere 
  174. Software).
  175.  
  176. Beim Falcon
  177. ... kann man so auch die Programme nutzen, die nur auf AUX (Kanal0) oder 
  178. Kanal6 arbeiten wollen. Da die RING-Leitung (von MODEM2) ohnehin dort 
  179. angeschlossen ist, wo beim ST die von MODEM1 lag, können solche Programme 
  180. auch RING direkt in der Hardware (MFP, Bit6) abfragen. Anstelle der 
  181. DCD-Leitung (Carrier Detect) von MODEM1 (wie beim ST) liegt auf Bit1 des 
  182. MFP leider der /ACK-Eingang vom Druckerport (Pin10), dämlicherweise ohne 
  183. Widerstand, so daß er bei ausgeschaltetem oder nicht angeschlossenen 
  184. Drucker wild schwingen kann. Bei eingeschaltetem Drucker dürfte er meist H 
  185. sein, was diese alten Programme als "NO CARRIER" interpretieren. Abhilfe: 
  186. Verbindung (von Pin10) zum Drucker auftrennen und Pin10 am Druckerport mit 
  187. Pin25 verbinden, signalisiert diesen alten Programmen immer "CARRIER".
  188.  
  189. Bei MegaSTE/TT und ST_ESCC
  190. ... kann man so auch alte Programme über MODEM2 laufen lassen, die die 
  191. Statusleitungen RING und DCD direkt abfragen und sonst das BIOS benutzen. 
  192. Sie dürfen nur nicht direkt auf das Empfangs/Senderegister zugreifen. Man 
  193. muß dazu die Statusleitungen RING und DCD von MODEM2 mit denen von MODEM1 
  194. verbinden. Für eine vollsteckbare Lösung reichen drei SUB-D-Verbinder. 
  195. RING ist Pin9 an einem 9poligen SUB-D und Pin22 an einem 25poligen SUB-D. 
  196. DCD ist Pin1 an einem 9poligen SUB-D und Pin8 an einem 25poligen SUB-D.
  197.  
  198. LANBIT
  199. Hiermit wird mit "Ja" das Schalten des Soundchipportbits PA7 zur 
  200. Umschaltung der Pegelwandler zwischen SERIAL2 und LAN erlaubt. Dies sollte 
  201. man nur auf MegaSTE und TT erlauben, deshalb ist die Grundstellung "Nein", 
  202. also keine Soundchipbeeinflussung. Auf MegaSTE und TT ist PA7 nach Reset 
  203. normalerweise auf SERIAL2 gestellt.
  204.  
  205. LANEXT
  206. "Ja" erzeugt zwei Einträge, SERIAL2 und LAN, in der Maptab (BIOS-Kanäle), 
  207. im RSVF-Cookie und im GEMDOS. Damit hat ein MegaSTE 4 Maptab-Einträge 
  208. statt normalerweise 3 und der TT 5 statt 4. Das könnte einige nicht so 
  209. gute Programme doch verwirren. Deshalb ist die Standardeinstellung "Nein", 
  210. bei der es nur einen Eintrag gibt, entweder SERIAL2 oder LAN. Vermutlich 
  211. wird man ohnehin immer nur einen der beiden Kanäle benutzen, so daß "Nein" 
  212. wohl die meistgebrauchte Einstellung sein dürfte.
  213.  
  214. LAN_S2
  215. Hier wird die Voreinstellung von Kanal A des ESCC festgelegt, also ob er 
  216. für LAN ("0") oder wie normalerweise der Fall für SERIAL2 ("1") benutzt 
  217. wird. Falls bei LANEXT festgelegt wurde, daß nur ein Eintrag existiert, so 
  218. ist die hier gemachte Einstellung nicht nur die Voreinstellung, die direkt 
  219. nach dem Laden der Treiber aktiv ist, sondern auch die endgültige 
  220. Festlegung, ob ein SERIAL2- oder LAN-Treiber bereitgestellt. "u" ist die 
  221. Standardeinstellung, bei der normalerweise SERIAL2, aber auf dem Falcon 
  222. LAN, als Voreinstellung benutzt wird.
  223.  
  224. DTRM2:
  225. Das DTR(Data Terminal Ready)-Signal der Schnittstelle MODEM2 wird beim 
  226. Start dieses Treibers einmalig auf den hier angegebenen Wert gesetzt. Eine 
  227. Aktivierung mit "Ja" entspricht der Arbeitsweise des TOS, eine 
  228. Deaktivierung mit "Nein" verhindert das "ungefragte" Abheben eines 
  229. entsprechend konfigurierten Modems. Einige Programme, die von diesen 
  230. Treibern nichts wissen und entsprechend Ataris Entwicklerdokumentationen 
  231. (die katastrophal falsch sind) erstellt wurden, kommen mit "Nein" nicht 
  232. klar (unmotiviertes Auflegen während der Datenübertragung).
  233.  
  234. DTRS2:
  235. Wie DTRM2, aber für Schnittstelle SERIAL2.
  236.  
  237. <NEWBEGIN>
  238. M2DRI:
  239. Diese Frage erscheint beim ST_ESCC.PRG nicht. Sie ist nur beim MegaSTE 
  240. sinnvoll, der keinen RING-Eingang auf der MODEM2-Schnittstelle hat. Es ist 
  241. aber ein (fast?) nie benutzter DSR-Eingang vorhanden. Die Einstellung "Ja" 
  242. tut so, als ob der DSR-Eingang ein RING-Eingang wäre und meldet den 
  243. fragenden Programmen das Vorhandensein und den Zustand eines RING-Eingangs 
  244. auf MODEM2. "Nein" ist die übliche Einstellung, die Schnittstelle hat also 
  245. DSR, aber kein RING. Um "Ja" sinnvoll zu nutzen, muß man RING vom Modem 
  246. auf DSR des Computers legen. Modifikation am 9poligen SUB-D-Stecker (des 
  247. Modemkabels), den man (zum Betrieb, nicht zum Löten) in die MODEM2-Buchse 
  248. steckt: Draht von Pin6 (DSR) abtrennen und Drahtende isolieren. Draht von 
  249. Pin9 (RING) ablöten und an Pin6 anlöten.
  250. <NEWEND>
  251.  
  252. RBLM2:
  253. Wenn man hiermit nichts anzufangen weiß, einfach 256 einstellen. Hier wird 
  254. die Empfangspufferlänge der MODEM2-Schnittstelle in Byte eingestellt. Sie 
  255. darf maximal 65534 und minimal 16 betragen. Werte außerhalb dieses 
  256. Bereiches werden auf den Standardwert von 256 gesetzt. Die Länge wird auf 
  257. eine gerade Zahl abgerundet. Die Wassermarken werden generell auf 1/4 (low 
  258. water mark) und 3/4 (high water mark) gesetzt.
  259.  
  260. TBLM2:
  261. Wie RBLM2, aber diesmal die Sendepufferlänge.
  262.  
  263. RBLS2:
  264. Wie RBLM2, aber diesmal für Schnittstelle SERIAL2.
  265.  
  266. TBLS2:
  267. Wie RBLM2, aber diesmal die Senderpufferlänge für Schnittstelle SERIAL2.
  268.  
  269.  
  270. <NEWBEGIN>
  271. MODEM2 des TT mit 57600Bd und 115200Bd
  272. --------------------------------------
  273. (Nur für Experten)
  274. Der Leiterzug von pin17 des TT-MFP (MC68901) zu pin32 des SCC (Z85C30) 
  275. wird aufgetrennt (oder pin17 des TT-MFP wird mit Plaststreifen gegen 
  276. Fassung isoliert). Pin32 des SCC wird mit pin13 des SCC verbunden. Bei der 
  277. entsprechenden Frage (M2TT) in der Konfiguration des ?SCC.PRG muß man dann 
  278. vorgeben, einen MegaSTE/Falcon zu benutzen.
  279.  
  280.  
  281. MegaSTE mit MODEM2/SERIAL2-Fehlern
  282. ----------------------------------
  283. Es gibt einige MegaSTE, die bei der Datenübertragung über MODEM2 oder 
  284. SERIAL2 und gleichzeitigen DMA-Zugriffen auf Festplatte oder Diskette 
  285. Dateien zerstören. Meist äußert sich dies darin, daß (z.B. per ZMODEM) 
  286. empfangene (oder gesendete) Archive (z.B. LZH, ZOO, ZIP) sich nicht mehr 
  287. auspacken lassen (Fehlermeldung des Packers). Dieser Fehler wird durch ein 
  288. fehlerhaftes PAL in der Steuerlogik für den SCC verursacht. Franz Sirl hat 
  289. ein GAL entwickelt, das das PAL ersetzt und die Fehler erfahrungsgemäß 
  290. beseitigt. Das Listing für das GAL ist in Mailboxen im Archiv FSER096B.LZH 
  291. zu finden.
  292. <NEWEND>
  293.  
  294.  
  295. LAN-Unterstützung
  296. -----------------
  297. Das hat jetzt wieder eine ganze Menge Arbeit gemacht und ist noch nicht so 
  298. ganz wie ich es mir vorstelle. Wäre nett, wenn die (potentiellen) Anwender 
  299. sich dazu mal äußern.
  300.  
  301. Die LAN-Schnittstelle und die SERIAL2-Schnittstelle benutzen den gleichen 
  302. Kanal im SCC, Kanal A. Dieser Kanal A wird nur jeweils mit einem anderen 
  303. Pegelwandler verbunden. SERIAL2 und LAN können also _nicht_ gleichzeitig 
  304. betrieben werden. Im MegaSTE und TT erfolgt die Umschaltung zwischen den 
  305. Pegelwandlern über das Soundchip-Portbit PA7 und die Ausgangsleitungen des 
  306. nicht aktiven Pegelwandlers werden auf einen inaktiven Pegel gelegt (??). 
  307. Im Falcon gibt es keine Umschaltung, da nur der LAN-Pegelwandler vorhanden 
  308. ist. Beim 1*RS232+1*LAN-Pegelwandler zum ST_ESCC gibt es ebenfalls keine 
  309. Umschaltung. Die Mega-ST_ESCC-Version bietet bei entsprechender Bestückung 
  310. die Umschaltmöglichkeit mit einem mechanischen DIP-Schalter, der aber auch 
  311. durch eine Leitung zum Soundchip (also wie beim TT) ersetzt werden kann. 
  312. Mega-ST_ESCC schaltet jedoch im Gegensatz zum TT die Ausgangsleitungen des 
  313. nicht aktiven nicht inaktiv.
  314.  
  315. Dieses PA7-Bit wird in STs (und manchmal auch im MegaSTE und TT) durch 
  316. eine Drahtbrücke auf den Druckerport geführt zur Ansteuerung von Scannern. 
  317. Davon sollte der Besitzer des Rechners aber wissen und sich entsprechend 
  318. verhalten.
  319.  
  320. Ich bin der Meinung, daß man normalerweise nur entweder LAN (ein Mix aus 
  321. RS422 und RS423) oder SERIAL2 (RS232) benutzt. Der Treiber ist aber 
  322. flexibel genug, auch die abwechselnde Nutzung beider Schnittstellen zu 
  323. erlauben, ohne neu zu booten. Die Umschaltung erfolgt dabei ausschließlich 
  324. durch das Fopen (GEMDOS) auf U:\DEV\LAN oder U:\DEV\SERIAL2 und bleibt 
  325. auch nach Fclose bestehen. Die BIOS/XBIOS-Funktionen schalten nicht um 
  326. sondern nutzen die durch das GEMDOS gemachte Einstellung.
  327.  
  328. Die LAN-Schnittstelle hat keine RTS-Leitung, so daß dort normalerweise 
  329. kein RTS&CTS-Hardwarehandshake (Hwhs) möglich wäre. Auf dem MAC habe ich 
  330. in einem Terminalprogramm einen bidirektionalen Hwhs gefunden: DTR&CTS. 
  331. Anstelle der RTS-Leitung wird also die DTR-Leitung benutzt. Dies habe ich 
  332. hier implementiert, Hwhs (meist RTS&CTS genannt) auf LAN bedeutet also 
  333. DTR&CTS.
  334.  
  335. RTS wird intern benutzt, um den Sender hochohmig zu schalten. Im 
  336. SERSOFST.TXT ist eine entsprechende Möglichkeit vorgesehen, möglicherweise 
  337. baue ich das auch mal ein (über I/O-Lines). ##########
  338.  
  339. Momentan ist immer bei Umschaltung auf LAN kein DTR verfügbar in den 
  340. I/O-Lines, das wird sich eventuell noch ändern, so daß nur bei Hwhs kein 
  341. DTR verfügbar ist. ###############
  342.  
  343. Ich glaube, noch einen Unterschied zwischen den MAC-Schnittstellen und dem 
  344. kompatiblen(??) Atari-LAN gefunden zu haben: Beim Atari sind RXD+ und RXD- 
  345. über einen 100Ohm-Widerstand (Abschluß) verbunden und der GPI liegt über 
  346. 100Ohm an GND. Beim MAC sind diese Widerstände wohl nicht vorhanden und 
  347. werden nur an den Enden eines Appletalk-Netzwerkes über die kleinen Kästen 
  348. irgendwie realisiert. Sieht also so aus, als sollte man nur 2 Ataris 
  349. koppeln, könnte aber beliebig viele MACs aneinanderhängen??? Bitte mal 
  350. jemand was dazu sagen, der vom MAC diesbezüglich wirklich Ahnung hat.
  351.  
  352. Anschlußbelegung der 8poligen Mini-DIN-Buchse:
  353.   --***--
  354. / 8  7  6 \
  355. |5    4  3|
  356. \  2   1  /
  357.   -------
  358. Pin Name  Beschreibung
  359.  1  HSKo  Output Handshake, DTR-Signal vom SCC
  360.  2  HSKi  Input Handshake or External Clock, CTS-Signal zum SCC
  361.  3  TXD-  Transmit Data -, Sendedaten negiert
  362.  4  GND   Signal Ground
  363.  5  RXD-  Receive Data -, Empfangsdaten negiert
  364.  6  TxD+  Transmit Data +, Sendedaten nicht negiert
  365.  7  GPi   General Purpose Input, DCD-Signal zum SCC
  366.  8  RxD+  Receive Data +, Empfangsdaten nicht negiert
  367.  
  368. Wenn man die LAN(RS422/423)-Schnittstelle mit einer RS232 verbinden will 
  369. (als Nullmodem mit Benutzung von Hwhs), sollte man verbinden:
  370. LAN            RS232
  371. HSKo           CTS
  372. HSKi           RTS
  373. TXD-           RXD
  374. TXD+   offen
  375. RXD-           TXD
  376. RXD+   GND
  377. GND            GND
  378.  
  379. Interessanterweise negieren alle Pegelwandler, nur der für HSHi/CTS nicht. 
  380. Dies wurde natürlich im Treiber berücksichtigt.
  381.  
  382.  
  383. Für Programmierer: Der IOREC
  384. ----------------------------
  385. Finger weg von der Bestimmung der lesbaren Byteanzahl über den IOREC! Das 
  386. geht bei eingeschaltetem 4-Zeichen-Interrupt des ESCC und ST_ESCC voll 
  387. daneben. Immerhin bringt dieser Interruptmodus eine wesentliche 
  388. Systementlastung. Stattdessen FIONREAD oder gleich Fread benutzen, 
  389. funktionieren bei diesen Treibern beide richtig. Bconstat funktioniert 
  390. ebenfalls.
  391.  
  392. Wenn der Cookie RSVF und in der RSVF-Liste die benutzte Schnittstelle da 
  393. ist, darf man sich darauf verlassen, daß FIONREAD funktioniert. Das kann 
  394. der MiNT-User zwar sabotieren, aber dann ist er selbst schuld.
  395.  
  396. Solange die Fcntl-Funktion zur Veränderung der Puffergröße nicht 
  397. implementiert ist, ist es auf jeden Fall legal, die Puffergröße und die 
  398. Wassermarken in der IOREC-Struktur zu ändern. Dabei, und nur dabei, sehe 
  399. ich es als legal und erforderlich an, ebenfalls die Schreib- und 
  400. Lesezeiger gemeinsam auf Null zu setzen. Schließlich erwartet man in 
  401. diesem Umstellungsmoment keinen Datenübertragungen mehr.
  402.  
  403. Es ist denkbar, daß irgendwann die IOREC-Benutzung entfällt und durch eine 
  404. sinnvollere Datenstruktur ersetzt wird. Nur ein Beispiel: rückwärts 
  405. laufende Zeiger würden etwas Zeit einsparen. Aus Kompatibilitätsgründen 
  406. wird wohl eine tote IOREC-Struktur zurückbleiben. Wer aber wirklich sauber 
  407. programmieren will, sollte den Rückgabewert der XBIOS-Funktion IOREC 
  408. testen (oder den Wert des Zeigers in der MAPTAB, wenn man so direkt 
  409. reinfingert). Ist dieser Wert 0 oder ungerade, gibt es bestimmt keinen 
  410. IOREC.
  411.  
  412.  
  413. Für Programmierer: Unterstützte Funktionen
  414. ------------------------------------------
  415. Alle Treiber unterstützen inzwischen die TIOCCTL(MAP/GET/SET)-Funktionen 
  416. aus dem SERSOFST.TXT, wenn auch noch nicht für alle Leitungen und noch 
  417. ohne Callbacks. Aber das läßt sich problemlos per TIOCCTLMAP erfragen. 
  418. Welche Fcntl sonst noch unterstützt werden, läßt sich ebenfalls durch 
  419. Aufruf feststellen.
  420.  
  421.  
  422. <BEGINNEW>
  423. Für Programmierer: Behandlung von Empfangsfehlern
  424. -------------------------------------------------
  425. Der ESCC macht eine Fehlerbehandlung recht schwer (bzw langwierig, was die 
  426. Datenrate senken würde), wenn man seinen EmpfangsFIFO sinnvoll nutzt. 
  427. Deshalb ist die Empfangsfehlerabfrage mit TIOCCTLGET noch _nicht_ 
  428. implementiert. Fehlerhaft empfangene Zeichen (außer receiver overrun, also 
  429. nur parity und frame error) werden der Einfachheit halber mit in den 
  430. Empfangspuffer übernommen. Im Gegensatz dazu beseitigt z.B. der 
  431. MFP-Treiber alle Zeichen mit Empfangsfehlern.
  432. <ENDNEW>
  433.  
  434.  
  435. Versionen
  436. ---------
  437. Wenn nicht extra vermerkt, gelten die Daten für alle *SCC*.PRG.
  438. 1993-11-25
  439. jetzt auch 115200/57600 auf MODEM2 bei MegaSTE/Falcon
  440. ST_ESCC hat nichts sinnvolles zum Konfigurieren, entsprechend dämlich die 
  441. Meldung
  442. 1993-12-01
  443. TIOCM_RNG auf MODEM2 bei TT/Falcon/ST_ESCC, TIOCM_RNG auf SERIAL2 für 
  444. ST_ESCC, kleine Verzögerung für Siegfried Hartmanns TT an einer Stelle 
  445. eingebaut
  446. 1993-12-27
  447. Fcntl TIONOTSEND implementiert, bei ESCC und ST_ESCC ist 
  448. 4-Zeichen-Interrupt abschaltbar
  449. 1994-01-01
  450. TIOCM_DSR in den TIOCCTL* vorhanden, Fcntl TIOCFLUSH implementiert, 
  451. DTR-Signal durch Nutzer voreinstellbar, Puffergrößen durch Nutzer 
  452. einstellbar
  453. 1994-03-27
  454. Fcntl TIOCFLUSH Nr.1,2,3 gehen jetzt endlich
  455. 1994-04-07
  456. Empfangspuffer High-Water-Mark richtig initialisiert
  457. 1994-06-12
  458. M1EMU (MODEM1-Emulation durch MODEM2) ist möglich, alle ?TB?? 
  459. Konfigurationen in einer Tabelle
  460. 1994-06-17  ACHTUNG! Installationsblock an MagiC3 angepaßt. Nur noch 
  461. Treiber und DRVIN von 1994-06-17 oder jünger zusammen verwenden. Versionen 
  462. vor dem 1994-06-17 laufen nicht mit denen ab 1994-06-17 zusammen.
  463. 1994-07-11  Konfigurationspunkt LANBIT neu
  464. 1994-08-20  M2TT mit Autodetect ausgestattet, 1994-08-13  LANBIT, LANEXT, 
  465. LAN_S2 neu/geändert, Byte4.Bit0 im RSVF
  466. 1994-08-27  Konfigurationspunkt PCLK ersetzt durch automatische Ermittlung
  467. <NEWBEGIN>
  468. 1994-10-09  DTR mit TIOCCTLGET rücklesbar (RTS auch, aber noch versteckt), 
  469. CTS lesbar
  470. 1994-10-29  TIOCFLUSH korrigiert, etwas rumgebastelt, 230400Bd
  471. 1994-12-25  Konfigurationspunkt M2DRI, etwas rumgebastelt, u.a. für 68040 
  472. mit WriteBack-Cache-Einstellung
  473. <NEWEND>
  474. 1995-01-04  schnelle Bconout-Parameterübergabe geändert 
  475. (und MAPT_APP/MAPT_OVE Funktiosnummer), ...
  476. 1995-01-15  XON/XOFF-Empfangsfehler bei Empfangs != Sendepufferlänge raus
  477.  
  478. Harun Scheutzow
  479. (Harun_Scheutzow@b.maus.de)
  480.  
  481.  
  482.  
  483.  
  484. SCC.PRG, ESCC.PRG, ST_ESCC.PRG
  485. ------------------------------
  486.  
  487. (The most important parts translated from German to English on 1994-01-09 
  488. by Harun Scheutzow. I have no time for translating all. If anybody 
  489. translates the remaining parts, I'm very interested in getting the result 
  490. for including it in the next version of this package. My native language 
  491. is German, I think a person whos native language is English would do a 
  492. much better translation. Thanks! (Send only mails smaller than 16kbyte to 
  493. my email address.))
  494.  
  495. These are drivers for the serial interfaces realized by a SCC or ESCC (eg 
  496. IC Z8530, Am85C30, Z85230). They work together with DRVIN.PRG or an 
  497. equivalent replacement. 1_README.TXT contains an introduction.
  498.  
  499.  
  500. The general
  501. -----------
  502. I call only the Z85230 and the Am85C230A an "ESCC". These ICs have an 8 
  503. byte receiver FIFO and a transmitter FIFO not smaller than 4 byte. An ESCC 
  504. contains all functions of the SCC.
  505.  
  506. The configuration possibilities of the *SCC*.PRG differ a little bit.
  507.  
  508.  
  509. Clock rate and baud rate
  510. ------------------------
  511. A SCC can use different clock sources for the generation of baud rates. 
  512. The mostly used clock source is its system clock PCLK. This PCLK is 8MHz 
  513. (8000000Hz) in a normal (as delivered by Atari) MegaSTE, TT and Falcon. 
  514. That is a nice number, but unsiutable for generation of the high standard 
  515. baud rates. The high baud rates in MegaSTE/TT/Falcon are generated from 
  516. other sources. My hardware ST_ESCC is clocked by 14745600Hz.
  517.  
  518. It is possible to modify the MegaSTE/TT/Falcon with a quarz oscillator and 
  519. a bit wire to PCLK=14745600Hz (proposal of Franz Sirl). If only 115200Bd 
  520. and 57600Bd on MODEM2 is needed, a more simple modification with one wire 
  521. is possible. (## No time for description. If there is much interest, in a 
  522. next version. ##)
  523.  
  524. The drivers detect automatically whether there is a PCLK clock frequency 
  525. of 8MHz or 14745600Hz and display it rate in their installation message.
  526.  
  527. With a PCLK of 8Mhz are the following Rsconf-baud rates possible:
  528. (old - new)
  529. SERIAL2:
  530. 115200 - 150
  531.  57600 - 134
  532.  38400 - 110
  533. MODEM2:
  534.  38400 - 110
  535. 153600 -  75
  536.  76800 -  50
  537. On MegaSTE and Falcon (not on TT) additionally on MODEM2:
  538. 115200 - 150
  539.  57600 - 134
  540.  
  541. With PCLK = 14745600Hz are possible on MODEM2 and SERIAL2:
  542. old rate   new rate
  543.  115200      150
  544.   57600      134
  545.   38400      110
  546.  153600       75
  547.   76800       50
  548.  
  549. If the GEMDOS-Fcntl TIOC?BAUD is used there is no problem at all because 
  550. it provides the possible baud rates as "bit per second".
  551.  
  552. ST_ESCC contains ever an ESCC. MegaSTE/TT/Falcon contain only an ESCC if 
  553. somebody changed this IC. The driver for SCC runs on the ESCC too, but the 
  554. ESCC driver will not correctly run on a SCC.
  555.  
  556.  
  557. SCC and ESCC
  558. ------------
  559. Remember: I call only the Z85230 and the Am85C230A an "ESCC". ST_ESCC 
  560. contains ever an ESCC. In the MegaSTE/TT/Falcon there is a SCC in the 
  561. original state. To decrease the CPU load and to improve the data safety it 
  562. is possible to insert an ESCC with PLCC-package. SCC and ESCC are 
  563. pin-compatible enough.
  564.  
  565.  
  566. SCC.PRG
  567. -------
  568. This is the driver for MODEM2 and SERIAL2 of MegaSTE and TT and for the 
  569. only RS232 interface of the Falcon (signed with MODEM) drawn out by Atari. 
  570. This "MODEM" of the Falcon is called MODEM2 in this text because of its 
  571. similarity.
  572.  
  573. On the TT (and Falcon, if equipped with a speeder with FastRAM) *SCC*.PRG 
  574. must not be loaded in the FastRAM. Otherwise problems (bombs, lost of 
  575. characters, spurios behavior) could occur caused by a too fast access to 
  576. the SCC. The drivers must be loaded into physical RAM, they must _not_ be 
  577. loaded into virtual RAM.
  578.  
  579.  
  580. ESCC.PRG
  581. --------
  582. See SCC.PRG. This driver is only for computers with a Z85230 or Am85C230. 
  583. The SCC-drivers works with an ESCC too, but don't use the advantages of 
  584. the ESCC. The ESCC-driver is very unsuitable for a SCC!
  585.  
  586.  
  587. ST_ESCC.PRG
  588. -----------
  589. This driver is dedicated to my self developed hardware ST_ESCC which 
  590. provides two additional fast serial interfaces on ST/STE/MegaST. 115200Bd 
  591. run without problems on an 8MHz/68000 machine under TOS.
  592.  
  593.  
  594. LAN-Support
  595. -----------
  596. (-- something untranslated --) (... manything)
  597.  
  598.  
  599. Configuration
  600. -------------
  601. The configuration is done by using SETTER.TTP.
  602.  
  603. Because the explainations in the drivers are German I added an 
  604. abbreviation to each point.
  605.  
  606. USE4C
  607. This question appears only in the ESCC.PRG and ST_ESCC.PRG. Shall the 
  608. receiver interrupt take place after four received characters? I call this 
  609. mode which signals an interrupt after 4 characters 4ZI. 4ZI decreases the 
  610. CPU load in the "RTS/CTS"- and "without"- handshake modes radically. 
  611. "XON/XOFF"-handshake switches 4ZI automatically off because the number of 
  612. necessary special actions would be greater than the use.
  613. (-- something untranslated --)
  614. Normally you should switch 4ZI on, answer with "Yes", because 4 free 
  615. characters are sufficient and the profit by the reduced CPU load (the 
  616. number of receiver interrupts is reduced to 1/4) is important. If you use 
  617. unclean programs you should switch off 4ZI by answering "No". The programs 
  618. show their uncleannes by delays: if you type in the terminal mode an the 
  619. characters appear only if you typed 4 characters or more, unclean transfer 
  620. protocols will hang some time (or for ever) mostly at the beginning or the 
  621. end of transfer.
  622.  
  623. M2TT
  624. The standard setting "u" should cause no problems because the TT is 
  625. detected by the _MCH-cookie and then are on MODEM2 57600Bd and 115200Bd 
  626. unavailable. "0" forces 57600/115200 to be provided. This is on TTs only 
  627. senceful if you did the wire-modification. "1" forces 57600/115200 not to 
  628. be provided. If your SCC is clocked by a PLCK of 14745600Hz this answer 
  629. has no effect.
  630.  
  631. M1EMU:
  632. The normal setting is "u". This should not cause any problems because of 
  633. the automatic computer type detection using the _MCH-cookie. This function 
  634. was added for the Falcon owners and users of old programms. The normal 
  635. user can jump over the remaining text of this configuration point.
  636.  
  637. If M1EMU is switched on, no MFP*.PRG for MODEM1 shall be loaded because of 
  638. collisions! The MODEM1-connector of the computer becomes unusable if M1EMU 
  639. is active.
  640.  
  641. "u" activates M1EMU only on Falcons. "0" disables M1EMU on all computers. 
  642. "1" activates M1EMU on all computers.
  643.  
  644. M1EMU, the MODEM1-emulator, replaces the BIOS-routines of channel 6 
  645. (MODEM1) by the BIOS-routines of channel 7 (MODEM2). Additionally the 
  646. actual BIOS-device (AUX) is set to 7 (for a bit more clean software).
  647.  
  648. On the Falcon
  649. ... programs become usable, which like to work only on AUX (channel0) or 
  650. channel6. Because the RING-signal (of MODEM2) is attached there, were the 
  651. RING of MODEM1 is on STs, such programs may detect RING direct in the 
  652. hardware (MFP, Bit6). Instead of the DCD-signal (carrier detect) of MODEM1 
  653. (as on ST) on Bit1 of the MFP lays the /ACK-input from the printer port 
  654. (pin10), without any resistor, so that this signal may swing if there is 
  655. no printer connected or the printer is off. If the printer is on, /ACK 
  656. should be H most of the time, and these old programs interpret this as 
  657. "NO CARRIER". Patch: Cut of the connection (wire from pin10) to the 
  658. printer and connect pin10 with pin25 on the printer port. This signals 
  659. these old programs always "CARRIER".
  660.  
  661. On MegaSTE/TT and ST_ESCC
  662. ... it becomes possible to run old programs, which access the signals RING 
  663. and DCD direct and go over the BIOS for the other functions, on MODEM2 
  664. too. These programs must not access the receiver/transmitter register 
  665. directly. You have to connect the RING line and DCD line of MODEM1 
  666. with the same of MODEM2. A full plugable solution may consist of 3 
  667. SUB-D-connectors. RING is pin9 on a 9pin-SUB-D and pin22 on a 25pin-SUB-D. 
  668. CDC is pin1 on a 9pin-SUB-D and pin8 on a 25pin-SUB-D.
  669.  
  670. LANBIT
  671. (-- something untranslated --)
  672. Use other values than No only on MegaSTE and TT!
  673.  
  674. LANEXT
  675. (-- something untranslated --)
  676.  
  677. LAN_S2
  678. (-- something untranslated --)
  679.  
  680. DTRM2
  681. The DTR(data terminal ready)-signal of the MODEM2 interface is set at the 
  682. start of this driver on time to the value given here. Yes corresponds to 
  683. on and is equivalent to the behavior of TOS, No corresponds to off and 
  684. prevents most modems from going off hook before a communication program 
  685. has been started. Some programms which know nothing about these drivers 
  686. and are made according to ataris developer documentation (which is 
  687. catastrophic false), don't work with "No" (hang up during data 
  688. transmission).
  689.  
  690. DTRS2:
  691. The same as DTRM2 but for interface SERIAL2.
  692.  
  693. RBLM2:
  694. Use 256 as a default. Here the receiver buffer length in byte of the 
  695. MODEM2 interface can be set. It may be in the range of 65534 (maximum) to 
  696. 16 (minimum). Values out of this range are set to the default of 256. The 
  697. water marks are set to 1/4 (low water mark) and 3/4 (high water mark).
  698.  
  699. TBLM2:
  700. As RBLM2, but for the transmitter buffer length.
  701.  
  702. RBLS2:
  703. As RBLM2, but for the interface SERIAL2.
  704.  
  705. TBLS2:
  706. As RBLM2, but for the transmitter buffer length of interface SERIAL2.
  707.  
  708.  
  709. For programmers: The IOREC
  710. --------------------------
  711. Hands off from computing the readable number of bytes by the IOREC! This 
  712. method will fail if 4ZI is switched on in ESCC and ST_ESCC. Use the 
  713. function Fcntl FIONREAD or Fread, both work correctly in these drivers. 
  714. Bconstat works correctly too.
  715.  
  716. If the cookie RSVF exist and the RSVF-list contains the interface you can 
  717. rely on the correctness of FIONREAD. The MiNT-user may destroy this, but 
  718. he is responsible for that.
  719.  
  720. If the functions for modification of buffer length are not implemented, it 
  721. is legal to change the buffer address, largeness and water marks in the 
  722. IOREC. In this case, and only in this case, I see it as legal and 
  723. necessary to reset the read and write pointer in the IOREC to zero.
  724.  
  725. It is possible, that in the future the IOREC is no longer used. Because of 
  726. compatibility reasons a dead IOREC may remain. Who wants to program really 
  727. clean should examine the return value of the XBIOS-function IOREC (or the 
  728. pointer in the MAPTAB if you grab so direct in the memory). Is this value 
  729. zero or odd there is no IOREC.
  730.  
  731.  
  732. For programmers: Supported functions
  733. ------------------------------------
  734. All drivers support the TIOCCTL(MAP/GET/SET)-functions as described in 
  735. SERSOFST.TXT. May bee they don't support all signals and lines but that 
  736. can be requested by TIOCCTLMAP. Which Fcntls are supported a program 
  737. should determine by calling this functions.
  738.  
  739.  
  740. Versions
  741. --------
  742. See German part.
  743. 1994-06-17  ATTENTION! Installation block adapted to MagiC3. Use together 
  744. only drivers and DRVIN from 1994-06-17 or younger. Older versions will not 
  745. run together with newer ones.
  746. 1994-07-11  added configuration facility LANBIT
  747. 1994-08-20  M2TT provides machine autodetect, LANBIT, LANEXT, LAN_S2 
  748. new/changed, Byte4.Bit0 in RSVF
  749. 1994-08-27  configuration point PCLK replaced by automatic detection
  750. 1995-01-04  fast Bconmap parameter passing changed, ...
  751. 1995-01-15  XON/XOFF-receive error if rec.buffer length != tra.b.l removed
  752.