home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / telecomm / conn210i / fastser / read.me < prev   
Text File  |  1993-07-24  |  11KB  |  285 lines

  1.  
  2. Fast_Ser
  3. ========
  4.  
  5. Fast_Ser ist ein erweiterter Treiber für serielle Schnittstellen 
  6. auf dem STE/TT (wer hat Unterlagen zum Falcon?).
  7. Für Modem/Serial 1 (MFP) ist eine erweiterte Rsconf-Auskunftsfunktion
  8. implementiert. Für Modem/Serial 2 (SCC) sind zusätzlich alle Bco...- 
  9. und Interrupt-Routinen neu (und hoffentlich fehlerfrei) implementiert, 
  10. und die Baudratentabelle ist mit eigenen Werten programmierbar.
  11.  
  12. Fast_Ser stellt eine Standardschnittstelle zur jeweiligen
  13. Hardware mit Hilfe der Rsconf-Funtion her.
  14.  
  15.  - Cookie 'FSER', zeigt auf Struktur FSER_INFO:
  16.     typedef struct
  17.     {
  18.         UWORD version;
  19.         unsigned unused:15;
  20.         unsigned baud_table_flag; /* bit 0 in einem word */
  21.         BASPAG *mem_blk;
  22.     } FSER_INFO;
  23.  
  24.  - Rsconf( -3, -2, xx, xx, xx, xx ) liefert 'FSER' als long
  25.     
  26.  - Rsconf( -3, -3, xx, xx, xx, xx ) liefert einen Pointer auf die
  27.     Struktur CHAN_INFO, die wie folgt definiert ist:
  28.     
  29.     typedef struct
  30.     {
  31.         BAUD_INFO *baud_table;
  32.         BAUD_INFO *alt_baud_table;
  33.         UBYTE **chip_address;
  34.         UWORD chip_type;
  35.         unsigned flags:14;
  36.         unsigned extrd_flag; /* bit 1 in einem word */
  37.         unsigned irq_flag;   /* bit 0 in einem word */
  38.         WORD task;
  39.         UBYTE WR5;
  40.         UBYTE RR0;
  41.         WORD resv[2];
  42.         ULONG dcd_on;
  43.         ULONG dcd_off;
  44.         UWORD rxbuffer_overflows;
  45.         UWORD framing_errs;
  46.         UWORD parity_errs;
  47.         UWORD charlost_errs;
  48.     } CHAN_INFO;
  49.  
  50.     typedef struct
  51.     {
  52.         LONG baudrate;
  53.         UWORD SCC_BRG_value;
  54.         UWORD SCC_MISC_value; /* bit 15..14 Clock mode (Reg. 4)
  55.                                  bit 9..8   BRG mode   (Reg. 14)
  56.                                  bit 6..3   Rx/Tx Clock Source (Reg. 11)
  57.                               */
  58.     } BAUD_INFO;
  59.     
  60.     baud_table: Zeiger auf die Tabelle mit den Baudrateninfos, in der 
  61.                 eine Null bei 'baudrate' das Ende markiert, -1 steht
  62.                 für eine nicht verfügbare Baudrate (nur bei den 
  63.                 ersten 16 Standardeinträgen!!), 
  64.                 -2 für einen freien Eintrag
  65.     alt_baud_table: wie baud_table, nur sind hier an den Indices
  66.                     0 und 1 höhere Baudraten eingefügt. Dadurch können
  67.                     auch Programme, die Fast_Ser nicht direkt unter-
  68.                     stützen, die höheren Baudraten nutzen 
  69.     chip_address: Hardwareadresse des Chips bzw. der internen
  70.                   Peripherie bei 68302, etc
  71.                   z.b $FFFF8C81 für Serial 2 auf MSTE/TT
  72.     chip_type: Welcher Chiptyp hängt an diesem Kanal dran?
  73.                $00: MFP
  74.                $10: Standard-SCC 8530
  75.                $11: VLSI-SCC VL85C30
  76.                $12: Zilog-SCC Z85C30
  77.                $13: AMD-ESCC Am85C30
  78.                $14: Zilog-ESCC Z85230
  79.                $15: AMD-ESCC Am85C230A
  80.                $20: ISDN-Coprozessor MC68302
  81.                $30: Ethernet-Coprozessor
  82.     flags: verschiedene bislang unbenutzte Flags
  83.     extrd_flag: Beim SCC ist in WR7' das ExtendedRead-Flag gesetzt.
  84.     irq_flag:   gesetzt: Die Interruptroutinen nutzen die SCC-FIFOS.
  85.     task: hier trägt eine Task, die die Schnittstellenhardware für 
  86.           sich haben will, ihre Nummer ein.
  87.           -1 steht für nicht reserviert.
  88.     WR5: Shadow Write Register 5 of SCC
  89.     RR0: wird bei jedem CTS oder DCD Wechsel mit Read Register 0
  90.          besetzt
  91.     dcd_on: letzter hz_200-Zeitpunkt, an dem DCD aktiv wurde
  92.     dcd_off: letzter hz_200-Zeitpunkt, an dem DCD inaktiv wurde
  93.     rxbuffer_overflows: Anzahl der Charakter, die bei einem vollem
  94.                         Empfangsbuffer verlorengingen
  95.     framing_errs: Anzahl der empfangenen Charakter mit Framing-Fehler
  96.                   (SCC-bedingt ein unsicherer Wert)
  97.     parity_errs:  Anzahl der empfangenen Charakter mit Parity-Fehler
  98.     charlost_errs: Anzahl der Charakter, die verlorengingen, weil der
  99.                    SCC nicht schnell genug abgefragt wurde
  100.                    (tatsächliche Anzahl kann größer sein!)
  101.  
  102. Bei den Standard-Clockraten für den SCC unterstützt Fast_Ser momentan
  103. folgende Baudratenliste (auf die alt_baud_table zeigt):
  104.  
  105. Liste für den MSTE
  106. Index:  Modem 2:     Serial 2:          Original:
  107.    0:    57600        57600              19200
  108.    1:    38400        38400              9600
  109.    2:    19200        19200              4800
  110.    3:    9600         9600               3600
  111.    4:    4800         4800               2400
  112.    5:    3600         3600               2000
  113.    6:    2400         2400               1800
  114.    7:    2000         2000               1200
  115.    8:    1800         1800               600
  116.    9:    1200         1200               300
  117.   10:    600          600                200
  118.   11:    300          300                150
  119.   12:    200          200                134
  120.   13:    150          150                110
  121.   14:    134          134                75
  122.   15:    110          110                50
  123.   16:    75           75
  124.   17:    50           50
  125.   18:    38400        38400
  126.   19:    57600        57600
  127.   20:    76800        115200
  128.   21:    153600
  129.  
  130. Liste für den TT:
  131. Index:  Modem 2:     Serial 2:          Original:
  132.    0:    38400        57600              19200
  133.    1:    76800        38400              9600
  134.    2:    19200        19200              4800
  135.    3:    9600         9600               3600
  136.    4:    4800         4800               2400
  137.    5:    3600         3600               2000
  138.    6:    2400         2400               1800
  139.    7:    2000         2000               1200
  140.    8:    1800         1800               600
  141.    9:    1200         1200               300
  142.   10:    600          600                200
  143.   11:    300          300                150
  144.   12:    200          200                134
  145.   13:    150          150                110
  146.   14:    134          134                75
  147.   15:    110          110                50
  148.   16:    75           75
  149.   17:    50           50
  150.   18:    38400        38400
  151.   19:    76800        57600
  152.   20:    153600       115200
  153.  
  154. Bei einem Terminalprogramm (z.B. RUFUS) bedeutet das, daß man
  155. um eine Baudrate von 57600 auf Serial 2 zu erreichen, 9600 Baud
  156. auswählen muß. Allerdings liegen die hohen Baudraten bei Serial 2
  157. ein bißchen neben dem Standard.
  158.  
  159. Hardwarebug!
  160. Serial 2 beim MSTE hat einen Hardwarebug, der Zeichen verschluckt.
  161.  
  162. Achtung!!
  163. Die Verschiebung der Baudratentabelle gilt nur solange die üblichen
  164. Terminalprogramme wie CoNnect oder Rufus dieses oder ein anderes 
  165. erweitertes Protokoll zum Ansprechen der höheren Baudraten nicht 
  166. unterstützen. Über die Baudraten mit einem Index größer 15 sind 
  167. keine Annahmen zulässig. (Abfragen mit Rsconf!)
  168.  
  169. Achtung!! zum zweiten!
  170. RZ.PRG und SZ.PRG (Version 1.9b) von Michael Ziegler arbeiten
  171. mit dem auf Modem 1 eingestellten Baudratenindex.
  172.  
  173. Custom-Version:
  174. Falls jemand spezielle oder noch höhere Baudraten braucht, soll
  175. er sich bei mir melden. Es ist einiges möglich!
  176.  
  177. Ich habe meinen MegaSTE umgerüstet und betreibe einen
  178. Zilog ESCC 85230 mit 14.7456 MHz. Der Umbau kostet ca. 40 DM.
  179.  
  180. Dazu braucht man:
  181.  1 ESCC Zilog Z8523016VSC ca. 35 DM
  182.  1 Quarzoszillator 14.7456 MHz ca. 5 DM
  183.  1 Fast_Ser-Version für eine PCLK von 14.7456 MHz
  184.  und ein paar Lötkenntnisse
  185. Die Bauteile sind bei mir erhältlich.
  186.  
  187. Bauanleitung:
  188.  1. alten 85C30 aus dem Sockel hebeln (sehr vorsichtig!!!!!,
  189.      die Sockel sind sehr spröde und brechen leicht!)
  190.  2. am Sockel den Pin 23 (vom markierten Pin 1 gegen den
  191.      Uhrzeigersinn zählen) abzwicken
  192.  3. am neuen ESCC den Pin 23 (PCLK) _vorsichtig_ nach oben biegen
  193.  4. ESCC in den Sockel drücken
  194.  5. den Quarzoszillator mit Pin 2 (7) und Pin 4 (14) auf ein
  195.     14-poliges TTL-IC (74..) (Pin 1 beachten!!) in der Nähe 
  196.     des ESCC löten. Achtung: die Bauhöhe ist unter Umständen
  197.     durch das Netzteil begrenzt!
  198.  6. Pin 3 des Quarzoszillators jetzt mit Pin 23 des ESCC verbinden
  199.  7. das war's!
  200. Mit diesem Umbau sind auf beiden Kanälen bis zu 230400 baud alle
  201. üblichen Baudraten möglich. Falls man auch auf die Pins 13 und 32
  202. (/RTxCA und /RTxCB) die 14.7456 MHz legt, sind theoretisch Baudraten
  203. bis 921600 möglich.
  204.  
  205.  
  206. So das war's vorläufig!
  207. Falls jemand Fehlermeldungen, Wünsche, etc hat, bitte melden bei:
  208.  
  209. Post:
  210. Franz Sirl
  211.  
  212. Bischof-Adalbert-Str. 29
  213. 8000 München 40
  214.  
  215. Maus:
  216. Franz Sirl@M
  217.  
  218.  
  219. mfg Franz Sirl, 24-11-92
  220.  
  221.  
  222. Testing/Planning:
  223.  INF-Datei zum beliebigen konfigurieren  der Baudraten
  224.  CPX-Modul
  225.  Block-Bco...-Routinen
  226.  MinT/MTOS Kompatibilität (XSDD-Protokoll)
  227.  
  228. Release Notes:
  229. 0.93beta, 24-11-92:
  230.  Interruptroutinen korrigiert (NoProtocol auf TT) und optimiert
  231.  CTS-Handling optimiert
  232.  Xbios/Iorec()-Patch wird bei TOS2.05 installiert
  233. 0.92beta, 04-11-92:
  234.  Interruptfehler beim TT behoben
  235.  Bconin für XON/XOFF korrigiert
  236.  Am85C230A wird erkannt
  237. 0.91beta, 16-10-92:
  238.  Fehler bei NoProto/XONXOFF behoben (seit 0.88)
  239. 0.90beta, 12-10-92:
  240.  Fehler bei Empfangspufferüberlauf behoben (seit 0.88)
  241. 0.89beta, 11-10-92:
  242.  Fehler bei Einstellung über Kontrollfeld behoben (seit 0.88)
  243. 0.88beta, 05-10-92:
  244.  FSER_INFO enthält Pointer auf die Basepage von Fast_Ser
  245.  Modem 2 auf MSTE unterstützt 57600
  246.  Transmit-Performance verbessert
  247.  CHAN_INFO mit WR5 und RR0 erweitert, um Terminalprogramme besser
  248.  zu unterstützen
  249. 0.85beta, 29-09-92:
  250.  CHECKSCC V1.10 sollte jetzt funktionieren
  251.  SCC-Typabfrage wieder drin
  252.  FSER_INFO enthält Versionsnummer
  253. 0.83beta, 27-09-92:
  254.  Routine die den SCC-Typ testet disabled, da noch fehlerhaft.
  255.  Z85C30 blockiert danach. Deswegen läuft auch CHECKSCC nicht.
  256.  Neuer Eintrag alt_baud_table in CHAN_INFO.
  257.  Cookie 'FSER' wird installiert. Enthält Pointer auf interne 
  258.  Strukturen (momentan nur ein WORD, LSB ist Flag ob baud_table [=0]
  259.  oder alt_baud_table [=1] benutzt wird). Default ist jetzt 1, d.h.
  260.  alt_baud_table mit verschobenen Standardeinträgen.
  261.  baud_table zeigt auf die Standardtabelle, in der Index 0--15
  262.  die originalen Baudraten anwählen, und die Indices >=16 davon
  263.  abweichende Baudraten bezeichnen.
  264.  XON/XOFF als Beta-Version implementiert.
  265.  
  266. 0.80beta, 26-09-92:
  267.  TT-lauffähig.
  268.  Alle Bco...-Routinen für Modem/Serial 2 neu geschrieben,
  269.  Interruptroutinen für SCC implementiert, XON/XOFF-mode noch
  270.  !!!nicht!!! implementiert.
  271.  Beim Rückgabewert von Rsconf werden die Break-Bits von
  272.  RSR/TSR richtig gesetzt.
  273.  Die interne Tabelle zur Baudratenprogrammierung ist zugreifbar,
  274.  für eigene Werte sind jetzt 10 Einträge frei.
  275.  Beim Zilog ESCC 85230 wird das ExtendedRead-Bit (WR7' bit 6) gesetzt 
  276.  und das TxFIFO-Level-Bit (WR7' bit 5) zurückgesetzt.
  277.  
  278. 0.60beta, 08-09-92:
  279.  In der Struktur wird die Variable chip_type gesetzt.
  280.  Das Programm CHECKSCC V1.00 ist im Paket mit dabei.
  281.  Es testet den Chip-Typ und die Frequenzen, die am SCC anliegen.
  282.  
  283. 0.50beta, 30-08-92:
  284.  erste öffentliche Beta!!-Version
  285.