home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / telecomm / hsmoda04 / scc_x.txt < prev    next >
Text File  |  1994-05-06  |  20KB  |  480 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. Dies sind Treiber für die mit einem SCC oder ESCC (z.B. Z8530, Am85C30, 
  8. Z85230) ausgestatteten seriellen Schnittstellen der Ataris und für die 
  9. Zusatzhardware ST_ESCC. Sie funktionieren zusammen mit DRVIN.PRG oder 
  10. einem gleichwertigen Ersatz. Einführende Bemerkungen finden sich in 
  11. 1_README.TXT.
  12.  
  13.  
  14.  
  15. Allgemeines
  16. -----------
  17. Als "ESCC" betrachte _ich_ nur den Z85230 und den Am85C230A. Diese 
  18. besitzen nebem dem auf 8 Byte vergrößerten EmpfangsFIFO auch einen 
  19. mindestens 4 Byte großen SendeFIFO. Ein ESCC beinhaltet alle Funktionen 
  20. eines SCC.
  21.  
  22. Die Konfigurationsmöglichkeiten der einzelnen *SCC*.PRG unterscheiden sich 
  23. etwas.
  24.  
  25.  
  26. Taktrate und Baudraten
  27. ----------------------
  28. Ein SCC kann für die Baudratenerzeugung verschiedene Taktquellen 
  29. verwenden. Die meistbenutzte Taktquelle ist sein Systemtakt PCLK. Dieser 
  30. Takt PCLK beträgt bei einem normalen (so wie von Atari geliefert) MegaSTE, 
  31. TT und Falcon 8MHz (=8000000Hz). Das ist zwar eine schöne Zahl, die aber 
  32. zur Erzeugung der hohen Standardbaudraten wenig geeignet ist. Die hohen 
  33. Baudraten im MegaSTE/TT/Falcon werden aus anderen Taktquellen erzeugt. 
  34. Meine Hardware ST_ESCC wird immer mit 14745600Hz getaktet.
  35.  
  36. Man kann einen MegaSTE, TT oder Falcon mit einem Quarzoszillator und etwas 
  37. Draht auf PCLK=14745600Hz umbauen (Vorschlag von Franz Sirl). Wenn man nur 
  38. die 115200Bd und 57600Bd auf MODEM2 haben will, bietet sich ein 
  39. einfacherer Umbau nur mit Draht an. (### Nein, ich kann das jetzt hier 
  40. nicht beschreiben. Bei Interesse in späteren Versionen.###)
  41.  
  42. Da also zwei verschiedene Taktraten üblich sind, ist der im Computer 
  43. vorhandene PCLK in den Treibern einstellbar.
  44.  
  45.  
  46. Bei einem PCLK von 8MHz sind folgende Rsconf-Baudraten möglich:
  47. (neue - alte)
  48. SERIAL2:
  49. 115200 - 150
  50.  57600 - 134
  51.  38400 - 110
  52. MODEM2:
  53.  38400 - 110
  54. 153600 -  75
  55.  76800 -  50
  56. Bei MegaSTE und Falcon (nicht beim TT) sind zusätzlich auf MODEM2:
  57. 115200 - 150
  58.  57600 - 134
  59.  
  60. Bei PCLK = 14745600Hz sind bei MODEM2 und SERIAL2 möglich:
  61. neue Rate   alte Rate
  62.  115200      150
  63.   57600      134
  64.   38400      110
  65.  153600       75
  66.   76800       50
  67.  
  68. Wenn man die GEMDOS-Fcntl TIOC?BAUD benutzt, hat man ohnehin kein Problem, 
  69. dort erfährt man, welche Baudraten möglich sind im Klartext als 
  70. "Bit pro Sekunde".
  71.  
  72. ST_ESCC enthält immer einen ESCC. MegaSTE/TT/Falcon enthalten nur einen 
  73. ESCC, wenn den jemand extra gewechselt hat. Der Treiber für den SCC läuft 
  74. auch mit dem ESCC-Schaltkreis, umgekehrt nicht.
  75.  
  76.  
  77. SCC und ESCC
  78. ------------
  79. Zur Erinnerung nochmal: Als "ESCC" betrachte _ich_ nur den Z85230 und den 
  80. Am85C230A. Bei ST_ESCC wird immer ein ESCC eingesetzt. In 
  81. MegaSTE/TT/Falcon befindet sich im Originalzustand nur ein SCC. Zur 
  82. Entlastung der CPU und zur Verbesserung der Datensicherheit (geringere 
  83. Wahrscheinlichkeit von Zeichenverlusten beim Empfang) kann man einen ESCC 
  84. im PLCC-Gehäuse einsetzen. SCC und ESCC sind pinkompatibel genug.
  85.  
  86.  
  87. SCC.PRG
  88. -------
  89. Der Treiber für MODEM2 und SERIAL2 des MegaSTE und TT sowie für die 
  90. einzige durch Atari herausgeführte RS232-Schnittstelle des Falcon 
  91. (beschriftet mit MODEM), wegen ihrer Verwandschaften hier ebenfalls MODEM2 
  92. genannt.
  93.  
  94. Beim MegaSTE und TT wird momentan NICHT zwischen den Alternativen SERIAL2 
  95. und LAN umgeschaltet sondern einfach davon ausgegangen, daß SERIAL2 
  96. eingestellt ist (ist wohl nach Reset der Fall). Wenn man von Hand das 
  97. Soundchipbit auf LAN umschaltet, sollte man für SERIAL2 auf "kein 
  98. Handshake" schalten, da ich für die LAN-Schnittstelle noch nichts getan 
  99. habe.
  100.  
  101. Beim Falcon ist die zweite serielle Schnittstelle nicht umschaltbar, 
  102. sondern fest auf LAN gelegt (auf dem Gerät als "LAN" beschriftet). Sie 
  103. wird von diesem Treiber aber als SERIAL2 betrachtet und müßte "ohne 
  104. Handshake" nutzbar sein. Es gilt das Gleiche wie für MegaSTE/TT: Ich habe 
  105. mich mit dieser Schnittstelle und speziell deren Handshakeleitungen noch 
  106. nicht näher befaßt.
  107.  
  108. Beim TT (und Falcon, falls man dem einen Beschleuniger mit FastRAM 
  109. spendiert hat) darf SCC.PRG _keinesfalls_ ins FastRAM, da es sonst mit zu 
  110. schnellen Zugriffen auf den SCC Probleme geben kann. Diese Probleme 
  111. könnten sich in Zeichenverlusten, unsinnigem Verhalten oder Bomben äußern.
  112.  
  113.  
  114. ESCC.PRG
  115. --------
  116. Siehe SCC.PRG. Dieser Treiber ist nur für die Nutzer, die sich einen 
  117. Z85230 oder Am85C230A eingebaut haben. Der SCC-Treiber funktioniert 
  118. ebenfalls mit dem ESCC, nutzt die ESCC-Vorteile aber nicht aus. Der 
  119. ESCC-Treiber ist für den SCC sehr ungeeignet!
  120.  
  121.  
  122. ST_ESCC.PRG
  123. -----------
  124. Der Treiber nur für (ich komm mir langsam wie in einer Dauerwerbesendung 
  125. vor) die von mir entwickelte Hardware ST_ESCC, die zwei zusätzliche 
  126. schnelle serielle Schnittstellen in ST/STE/MegaST realisiert. 115200Bd 
  127. problemlos mit einem 8MHz/68000 unter TOS, das ist doch was.
  128.  
  129.  
  130. Die Konfiguration
  131. -----------------
  132. Die Konfiguration erfolgt durch das SETTER.TTP. Zur Bedienung siehe 
  133. SETTER.TXT.
  134.  
  135. PCLK
  136. Hier wird eingestellt, ob der SCC-Takt PCLK 8MHz ("Nein") oder 14745600Hz 
  137. ("Ja") ist. Bei nicht umgebauten Ataris müssen Sie mit "Nein" antworten. 
  138. Bei ST_ESCC.PRG wird die Frage nicht gestellt.
  139.  
  140. M2TT
  141. Wenn Sie einen nicht umgebauten (also originalen) TT benutzen, antworten 
  142. Sie mit "Ja". Dann sind auf MODEM2 leider keine 57600Bd und 115200Bd 
  143. verfügbar. Wenn man dan Draht-Umbau gemacht hat, sollte man mit "Nein" 
  144. antworten, genau wie die MegaSTE- und Falcon-User. Bei ST_ESCC.PRG wird 
  145. diese Frage nicht gestellt. Wenn Sie bei PCLK die 14745600Hz angegeben 
  146. haben, ist die Antwort auf diese Frage bedeutungslos.
  147.  
  148. USE4C
  149. Diese Frage erscheint nur bei ESCC.PRG und ST_ESCC.PRG. Soll ein 
  150. Empfangsinterrupt erst nach 4 empfangenen Zeichen erfolgen? Ich nenne 
  151. diesen Modus, der erst nach 4 Zeichen einen Interrupt auslöst, 4ZI. 4ZI 
  152. entlastet bei "RTS/CTS"- und "ohne"- Handshake die CPU wesentlich. Bei 
  153. "XON/XOFF"-Handshake ist er automatisch ausgeschaltet, der Aufwand an 
  154. Sonderbehandlungen hätte den Nutzen überstiegen. Neben den Vorteilen 
  155. verkürzt 4ZI aber die freie Länge des EmpfangsFIFOs von 8 auf 4 Zeichen. 
  156. Nach einer Interruptmeldung des ESCC an die CPU können vor einer Reaktion 
  157. der CPU nur noch 4 statt 8 Zeichen verlustfrei empfangen werden. 
  158. Normalerweise schaltet man 4ZI an, antwortet also mit "Ja", da 4 freie 
  159. Zeichen ausreichen und der Gewinn an CPU-Zeit durch die auf 1/4 
  160. reduzierten Empfangsinterrupts wesentlich ist. Wenn man unsaubere 
  161. Programme hat, muß man 4ZI wahrscheinlich immer ausschalten, also hier mit 
  162. "Nein" antworten. Diese unsauberen Programme äußern sich durch 
  163. verschiedene Verzögerungen: im Terminalmode kommen erst dann Zeichen auf 
  164. den Bildschirm, wenn es 4 Zeichen sind. Unsaubere Übertragungsprotokolle 
  165. hängen einige Zeit (oder ewig) fest, besonders am Anfang oder Ende.
  166.  
  167. DTRM2:
  168. Das DTR(Data Terminal Ready)-Signal der Schnittstelle MODEM2 wird beim 
  169. Start dieses Treibers einmalig auf den hier angegebenen Wert gesetzt. Eine 
  170. Aktivierung mit "Ja" entspricht der Arbeitsweise des TOS, eine 
  171. Deaktivierung mit "Nein" verhindert das "ungefragte" Abheben eines 
  172. entsprechend konfigurierten Modems.
  173.  
  174. DTRS2:
  175. Wie DTRM2, aber für Schnittstelle SERIAL2.
  176.  
  177. RBLM2:
  178. Wenn man hiermit nichts anzufangen weiß, einfach 256 einstellen. Hier wird 
  179. die Empfangspufferlänge der MODEM2-Schnittstelle in Byte eingestellt. Sie 
  180. darf maximal 65534 und minimal 16 betragen. Werte außerhalb dieses 
  181. Bereiches werden auf den Standardwert von 256 gesetzt. Die Länge wird auf 
  182. eine gerade Zahl abgerundet. Die Wassermarken werden generell auf 1/4 (low 
  183. water mark) und 3/4 (high water mark) gesetzt.
  184.  
  185. TBLM2:
  186. Wie RBLM2, aber diesmal die Sendepufferlänge.
  187.  
  188. RBLS2:
  189. Wie RBLM2, aber diesmal für Schnittstelle SERIAL2.
  190.  
  191. TBLS2:
  192. Wie RBLM2, aber diesmal die Senderpufferlänge für Schnittstelle SERIAL2.
  193.  
  194.  
  195. Für Programmierer: Der IOREC
  196. ----------------------------
  197. Finger weg von der Bestimmung der lesbaren Byteanzahl über den IOREC! Das 
  198. geht bei eingeschaltetem 4-Zeichen-Interrupt des ESCC und ST_ESCC voll 
  199. daneben. Immerhin bringt dieser Interruptmodus eine wesentliche 
  200. Systementlastung. Stattdessen FIONREAD oder gleich Fread benutzen, 
  201. funktionieren bei diesen Treibern beide richtig. Bconstat funktioniert 
  202. ebenfalls.
  203.  
  204. Wenn der Cookie RSVF und in der RSVF-Liste die benutzte Schnittstelle da 
  205. ist, darf man sich darauf verlassen, daß FIONREAD funktioniert. Das kann 
  206. der MiNT-User zwar sabotieren, aber dann ist er selbst schuld.
  207.  
  208. Solange die Fcntl-Funktion zur Veränderung der Puffergröße nicht 
  209. implementiert ist, ist es auf jeden Fall legal, die Puffergröße und die 
  210. Wassermarken in der IOREC-Struktur zu ändern. Dabei, und nur dabei, sehe 
  211. ich es als legal und erforderlich an, ebenfalls die Schreib- und 
  212. Lesezeiger gemeinsam auf Null zu setzen. Schließlich erwartet man in 
  213. diesem Umstellungsmoment keinen Datenübertragungen mehr.
  214.  
  215. Es ist denkbar, daß irgendwann die IOREC-Benutzung entfällt und durch eine 
  216. sinnvollere Datenstruktur ersetzt wird. Nur ein Beispiel: rückwärts 
  217. laufende Zeiger würden etwas Zeit einsparen. Aus Kompatibilitätsgründen 
  218. wird wohl eine tote IOREC-Struktur zurückbleiben. Wer aber wirklich sauber 
  219. programmieren will, sollte den Rückgabewert der XBIOS-Funktion IOREC 
  220. testen (oder den Wert des Zeigers in der MAPTAB, wenn man so direkt 
  221. reinfingert). Ist dieser Wert 0 oder ungerade, gibt es bestimmt keinen 
  222. IOREC.
  223.  
  224.  
  225. Für Programmierer: Unterstützte Funktionen
  226. ------------------------------------------
  227. Alle Treiber unterstützen inzwischen die TIOCCTL(MAP/GET/SET)-Funktionen 
  228. aus dem SERSOFST.TXT, wenn auch noch nicht für alle Leitungen und noch 
  229. ohne Callbacks. Aber das läßt sich problemlos per TIOCCTLMAP erfragen. 
  230. Welche Fcntl sonst noch unterstützt werden, läßt sich ebenfalls durch 
  231. Aufruf feststellen.
  232.  
  233.  
  234. Versionen
  235. ---------
  236. Wenn nicht extra vermerkt, gelten die Daten für alle *SCC*.PRG.
  237. 1993-11-25
  238. jetzt auch 115200/57600 auf MODEM2 bei MegaSTE/Falcon
  239. ST_ESCC hat nichts sinnvolles zum Konfigurieren, entsprechend dämlich die 
  240. Meldung
  241. 1993-12-01
  242. TIOCM_RNG auf MODEM2 bei TT/Falcon/ST_ESCC, TIOCM_RNG auf SERIAL2 für 
  243. ST_ESCC, kleine Verzögerung für Siegfried Hartmanns TT an einer Stelle 
  244. eingebaut
  245. 1993-12-27
  246. Fcntl TIONOTSEND implementiert, bei ESCC und ST_ESCC ist 
  247. 4-Zeichen-Interrupt abschaltbar
  248. 1994-01-01
  249. TIOCM_DSR in den TIOCCTL* vorhanden, Fcntl TIOCFLUSH implementiert, 
  250. DTR-Signal durch Nutzer voreinstellbar, Puffergrößen durch Nutzer 
  251. einstellbar
  252. 1994-03-27
  253. Fcntl TIOCFLUSH Nr.1,2,3 gehen jetzt endlich
  254. 1994-04-07
  255. Empfangspuffer High-Water-Mark richtig initialisiert
  256.  
  257.  
  258. Harun Scheutzow
  259. (Harun_Scheutzow@b.maus.de)
  260.  
  261.  
  262.  
  263.  
  264. SCC.PRG, ESCC.PRG, ST_ESCC.PRG
  265. ------------------------------
  266.  
  267. (The most important parts translated from German to English on 1994-01-09 
  268. by Harun Scheutzow. I have no time for translating all. If anybody 
  269. translates the remaining parts, I'm very interested in getting the result 
  270. for including it in the next version of this package. My native language 
  271. is German, I think a person whos native language is English would do a 
  272. much better translation. Thanks! (Send only mails smaller than 16kbyte to 
  273. my email address.))
  274.  
  275. These are drivers for the serial interfaces realized by a SCC or ESCC (eg 
  276. IC Z8530, Am85C30, Z85230). They work together with DRVIN.PRG or an 
  277. equivalent replacement. 1_README.TXT contains an introduction.
  278.  
  279.  
  280. The general
  281. -----------
  282. I call only the Z85230 and the Am85C230A an "ESCC". These ICs have an 8 
  283. byte receiver FIFO and a transmitter FIFO not smaller than 4 byte. An ESCC 
  284. contains all functions of the SCC.
  285.  
  286. The configuration possibilities of the *SCC*.PRG differ a little bit.
  287.  
  288.  
  289. Clock rate and baud rate
  290. ------------------------
  291. A SCC can use different clock sources for the generation of baud rates. 
  292. The mostly used clock source is its system clock PCLK. This PCLK is 8MHz 
  293. (8000000Hz) in a normal (as delivered by Atari) MegaSTE, TT and Falcon. 
  294. That is a nice number, but unsiutable for generation of the high standard 
  295. baud rates. The high baud rates in MegaSTE/TT/Falcon are generated from 
  296. other sources. My hardware ST_ESCC is clocked by 14745600Hz.
  297.  
  298. It is possible to modify the MegaSTE/TT/Falcon with a quarz oscillator and 
  299. a bit wire to PCLK=14745600Hz (proposal of Franz Sirl). If only 115200Bd 
  300. and 57600Bd on MODEM2 is needed, a more simple modification with one wire 
  301. is possible. (## No time for description. If there is much interest, in a 
  302. next version. ##)
  303.  
  304. Because two different clock rates exist the PCLK is adjustable in the 
  305. drivers.
  306.  
  307. With a PCLK of 8Mhz are the following Rsconf-baud rates possible:
  308. (old - new)
  309. SERIAL2:
  310. 115200 - 150
  311.  57600 - 134
  312.  38400 - 110
  313. MODEM2:
  314.  38400 - 110
  315. 153600 -  75
  316.  76800 -  50
  317. On MegaSTE and Falcon (not on TT) additionally on MODEM2:
  318. 115200 - 150
  319.  57600 - 134
  320.  
  321. With PCLK = 14745600Hz are possible on MODEM2 and SERIAL2:
  322. old rate   new rate
  323.  115200      150
  324.   57600      134
  325.   38400      110
  326.  153600       75
  327.   76800       50
  328.  
  329. If the GEMDOS-Fcntl TIOC?BAUD is used there is no problem at all because 
  330. it provides the possible baud rates as "bit per second".
  331.  
  332. ST_ESCC contains ever an ESCC. MegaSTE/TT/Falcon contain only an ESCC if 
  333. somebody changed this IC. The driver for SCC runs on the ESCC too, but the 
  334. ESCC driver will not correctly run on a SCC.
  335.  
  336.  
  337. SCC and ESCC
  338. ------------
  339. Remenber: I call only the Z85230 and the Am85C230A an "ESCC". ST_ESCC 
  340. contains ever an ESCC. In the MegaSTE/TT/Falcon there is a SCC in the 
  341. original state. To decrease the CPU load and to improve the data safety it 
  342. is possible to insert an ESCC with PLCC-package. SCC and ESCC are 
  343. pin-compatible enough.
  344.  
  345.  
  346. SCC.PRG
  347. -------
  348. This is the driver for MODEM2 and SERIAL2 of MegaSTE and TT and for the 
  349. only RS232 interface of the Falcon (signed with MODEM) drawn out by Atari. 
  350. This "MODEM2 of the Falcon is called MODEM2 in this text because of its 
  351. similarity.
  352.  
  353. On the MegaSTE and TT there will NOT be switched between the alternatives 
  354. SERIAL2 and LAN. It is expected that SERIAL2 is setted (so as after a 
  355. reset). If the soundchipbit is switched "manually" to LAN, on SERIAL2 
  356. should be switched to "no handshake" because I have done nothing special 
  357. for the LAN interface.
  358.  
  359. On the Falcon the second serial interface is not switchable, it is fast 
  360. directed to LAN (signed with LAN on the Falcon). This interface is called 
  361. SERIAL2 by this driver. It should be usable ab bit with "no handshake" 
  362. equal to the MegaSTE/TT. I didn't deal with this interface and its 
  363. handshake signals.
  364.  
  365. On the TT (and Falcon, if equipped with a speeder with FastRAM) *SCC*.PRG 
  366. must not be loaded in the FastRAM. Otherwise problems (bombs, lost of 
  367. characters, spurios behavior) could occur caused by a too fast access to 
  368. the SCC.
  369.  
  370.  
  371. ESCC.PRG
  372. --------
  373. See SCC.PRG. This driver is only for computers with a Z85230 or Am85C230. 
  374. The SCC-drivers works with an ESCC too, but don't use the advantages of 
  375. the ESCC. The ESCC-driver is very unsuitable for a SCC!
  376.  
  377.  
  378. ST_ESCC.PRG
  379. -----------
  380. This driver is dedicated to my self developed hardware ST_ESCC which 
  381. provides to additional fast serial interfaces on ST/STE/MegaST. 115200Bd 
  382. run without problems on an 8MHz/68000 machine under TOS.
  383.  
  384.  
  385. Configuration
  386. -------------
  387. The configuration is done by using SETTER.TTP.
  388.  
  389. Because the explainations in the drivers are German I added an 
  390. abbreviation.
  391.  
  392. PCLK
  393. Here you can set the SCC-clock PCLK to the value in your computer. Answer 
  394. "No" for normal (unmodified) Ataris which have an 8MHz PCLK. Answer "Yes" 
  395. for 14745600Hz PCLK. ST_ESCC.PRG doesn't ask this.
  396.  
  397. M2TT
  398. If you use an original (unmodified) TT, answer "Yes". On this machine are 
  399. 57600 and 115200Bd on MODEM2 impossible. Answer "No" if you use a MegaSTE 
  400. or Falcon. If your SCC is clocked by a PLCK of 14745600Hz this answer has 
  401. no effect.
  402.  
  403. USE4C
  404. This question appears only in the ESCC.PRG and ST_ESCC.PRG. Shall the 
  405. receiver interrupt take place after four received characters? I call this 
  406. mode which signals an interrupt after 4 characters 4ZI. 4ZI decreases the 
  407. CPU load in the "RTS/CTS"- and "without"- handshake modes radically. 
  408. "XON/XOFF"-handshake switches 4ZI automatically off because the number of 
  409. necessary special actions would be greater than the use.
  410. (-- something untranslated --)
  411. Normally you should switch 4ZI on, answer with "Yes", because 4 free 
  412. characters are sufficient and the profit by the reduced CPU load (the 
  413. number of receiver interrupts is reduced to 1/4) is important. If you use 
  414. unclean programs you should switch off 4ZI by answering "No". The programs 
  415. show their uncleannes by delays: if you type in the terminal mode an the 
  416. characters appear only if you typed 4 characters or more, unclean transfer 
  417. protocols will hang some time (or for ever) mostly at the beginning or the 
  418. end of transfer.
  419.  
  420. DTRM2
  421. The DTR(data terminal ready)-signal of the MODEM2 interface is set at the 
  422. start of this driver on time to the value given here. Yes corresponds to 
  423. on and is equivalent to the behavior of TOS, No corresponds to off and 
  424. prevents most modems from going off hook before a communication program 
  425. has been started.
  426.  
  427. DTRS2:
  428. The same as DTRM2 but for interface SERIAL2.
  429.  
  430. RBLM2:
  431. Use 256 as a default. Here the receiver buffer length in byte of the 
  432. MODEM2 interface can be set. It may be in the range of 65534 (maximum) to 
  433. 16 (minimum). Values out of this range are set to the default of 256. The 
  434. water marks are set to 1/4 (low water mark) and 3/4 (high water mark).
  435.  
  436. TBLM2:
  437. As RBLM2, but for the transmitter buffer length.
  438.  
  439. RBLS2:
  440. As RBLM2, but for the interface SERIAL2.
  441.  
  442. TBLS2:
  443. As RBLM2, but for the transmitter buffer length of interface SERIAL2.
  444.  
  445.  
  446. For programmers: The IOREC
  447. --------------------------
  448. Hands off from computing the readable number of bytes by the IOREC! This 
  449. method will fail if 4ZI is switched on in ESCC and ST_ESCC. Use the 
  450. function Fcntl FIONREAD or Fread, both work correctly in this drivers. 
  451. Bconstat works correctly too.
  452.  
  453. If the cookie RSVF exist and the RSVF-list contains the interface you can 
  454. rely on the correctness of FIONREAD. The MiNT-user may destroy this, but 
  455. he is responsible for that.
  456.  
  457. If the functions for modification of buffer length are not implemented, it 
  458. is legal to change the buffer address, largeness and water marks in the 
  459. IOREC. In this case, and only in this case, I see it as legal and 
  460. necessary to reset the read and write pointer in the IOREC to zero.
  461.  
  462. It is possible, that in the future the IOREC is no longer used. Because of 
  463. compatibility reasons a dead IOREC may remain. Who wants to program really 
  464. clean should examine the return value of the XBIOS-function IOREC (or the 
  465. pointer in the MAPTAB if you grab so direct in the memory). Is this value 
  466. zero or odd there is no IOREC.
  467.  
  468.  
  469. For programmers: Supported functions
  470. ------------------------------------
  471. All drivers support the TIOCCTL(MAP/GET/SET)-functions as described in 
  472. SERSOFST.TXT. May bee they don't support all signals and lines but that 
  473. can be requested by TIOCCTLMAP. Which Fcntls are supported a program 
  474. should determine by calling this functions.
  475.  
  476.  
  477. Versions
  478. --------
  479. See German part.
  480.