home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / telecomm / fser096b / read.me < prev    next >
Text File  |  1993-08-08  |  14KB  |  356 lines

  1.  
  2. Fast_Ser
  3. ========
  4.  
  5. Fast_Ser ist ein erweiterter Treiber für serielle Schnittstellen 
  6. auf dem STE/TT/Falcon030.
  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:1; /* 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:1; /* bit 1 in einem word */
  37.         unsigned irq_flag:1;   /* bit 0 in einem word */
  38.         WORD task;
  39.         WORD resv[3];
  40.         ULONG dcd_on;
  41.         ULONG dcd_off;
  42.         UWORD rxbuffer_overflows;
  43.         UWORD framing_errs;
  44.         UWORD parity_errs;
  45.         UWORD charlost_errs;
  46.     } CHAN_INFO;
  47.  
  48.     typedef struct
  49.     {
  50.         LONG baudrate;
  51.         UWORD SCC_BRG_value;
  52.         UWORD SCC_MISC_value; /* bit 15..14 Clock mode (Reg. 4)
  53.                                  bit 9..8   BRG mode   (Reg. 14)
  54.                                  bit 6..3   Rx/Tx Clock Source (Reg. 11)
  55.                               */
  56.     } BAUD_INFO;
  57.     
  58.     baud_table: Zeiger auf die Tabelle mit den Baudrateninfos, in der 
  59.                 eine Null bei 'baudrate' das Ende markiert, -1 steht
  60.                 für eine nicht verfügbare Baudrate (nur bei den 
  61.                 ersten 16 Standardeinträgen!!), 
  62.                 -2 für einen freien Eintrag
  63.     alt_baud_table: wie baud_table, nur sind hier an den Indices
  64.                     0 und 1 höhere Baudraten eingefügt. Dadurch können
  65.                     auch Programme, die Fast_Ser nicht direkt unter-
  66.                     stützen, die höheren Baudraten nutzen 
  67.     chip_address: Hardwareadresse des Chips bzw. der internen
  68.                   Peripherie bei 68302, etc
  69.                   z.b $FFFF8C81 für Serial 2 auf MSTE/TT
  70.     chip_type: Welcher Chiptyp hängt an diesem Kanal dran?
  71.                $00: MFP
  72.                $10: Standard-SCC 8530
  73.                $11: VLSI-SCC VL85C30
  74.                $12: Zilog-SCC Z85C30
  75.                $13: AMD-ESCC Am85C30
  76.                $14: Zilog-ESCC Z85230
  77.                $15: AMD-ESCC Am85C230A
  78.                $20: ISDN-Coprozessor MC68302
  79.                $30: Ethernet-Coprozessor MC68EN360
  80.     flags: verschiedene bislang unbenutzte Flags
  81.     extrd_flag: Beim SCC ist in WR7' das ExtendedRead-Flag gesetzt.
  82.     irq_flag:   gesetzt: Die Interruptroutinen nutzen die SCC-FIFOS.
  83.     task: hier trägt eine Task, die die Schnittstellenhardware für 
  84.           sich haben will, ihre Nummer ein.
  85.           -1 steht für nicht reserviert.
  86.     dcd_on: letzter hz_200-Zeitpunkt, an dem DCD aktiv wurde
  87.     dcd_off: letzter hz_200-Zeitpunkt, an dem DCD inaktiv wurde
  88.     rxbuffer_overflows: Anzahl der Charakter, die bei einem vollem
  89.                         Empfangsbuffer verlorengingen
  90.     framing_errs: Anzahl der empfangenen Charakter mit Framing-Fehler
  91.                   (SCC-bedingt ein unsicherer Wert)
  92.     parity_errs:  Anzahl der empfangenen Charakter mit Parity-Fehler
  93.     charlost_errs: Anzahl der Charakter, die verlorengingen, weil der
  94.                    SCC nicht schnell genug abgefragt wurde
  95.                    (tatsächliche Anzahl kann größer sein!)
  96.  
  97. Bei den Standard-Clockraten für den SCC unterstützt Fast_Ser momentan
  98. folgende Baudratenliste (auf die alt_baud_table zeigt):
  99.  
  100. Listen für den MSTE/Falcon030
  101.  Kompatibilität im FSERIAL.CPX =AN:
  102.  Index:  Modem 2:     Serial 2:          Original:
  103.    0:    57600        57600              19200
  104.    1:    38400        38400              9600
  105.    2:    19200        19200              4800
  106.    3:    9600         9600               3600
  107.    4:    4800         4800               2400
  108.    5:    3600         3600               2000
  109.    6:    2400         2400               1800
  110.    7:    2000         2000               1200
  111.    8:    1800         1800               600
  112.    9:    1200         1200               300
  113.   10:    600          600                200
  114.   11:    300          300                150
  115.   12:    200          200                134
  116.   13:    150          150                110
  117.   14:    134          134                75
  118.   15:    110          110                50
  119.   16:    75           75
  120.   17:    50           50
  121.   18:    38400        38400
  122.   19:    57600        57600
  123.   20:    76800        115200
  124.   21:    153600
  125.  
  126.  Kompatibilität im FSERIAL.CPX =AUS:
  127.  Index:  Modem 2:     Serial 2:          Original:
  128.    0:    19200        19200              19200
  129.    1:    9600         9600               9600
  130.    2:    4800         4800               4800
  131.    3:    3600         3600               3600
  132.    4:    2400         2400               2400
  133.    5:    2000         2000               2000
  134.    6:    1800         1800               1800
  135.    7:    1200         1200               1200
  136.    8:    600          600                600
  137.    9:    300          300                300
  138.   10:    200          200                200
  139.   11:    150          150                150
  140.   12:    134          134                134
  141.   13:    110          110                110
  142.   14:    75           75                 75
  143.   15:    50           50                 50
  144.   16:    38400        38400
  145.   17:    57600        57600
  146.   18:    76800        115200
  147.   19:    153600
  148.  
  149.  
  150.  Liste für den TT:
  151.  Kompatibilität im FSERIAL.CPX =AN:
  152.  Index:  Modem 2:     Serial 2:          Original:
  153.     0:    38400        57600              19200
  154.     1:    76800        38400              9600
  155.     2:    19200        19200              4800
  156.     3:    9600         9600               3600
  157.     4:    4800         4800               2400
  158.     5:    3600         3600               2000
  159.     6:    2400         2400               1800
  160.     7:    2000         2000               1200
  161.     8:    1800         1800               600
  162.     9:    1200         1200               300
  163.    10:    600          600                200
  164.    11:    300          300                150
  165.    12:    200          200                134
  166.    13:    150          150                110
  167.    14:    134          134                75
  168.    15:    110          110                50
  169.    16:    75           75
  170.    17:    50           50
  171.    18:    38400        38400
  172.    19:    76800        57600
  173.    20:    153600       115200
  174.  
  175.  Kompatibilität im FSERIAL.CPX =AUS:
  176.  Index:  Modem 2:     Serial 2:          Original:
  177.     0:    19200        19200              19200
  178.     1:    9600         9600               9600
  179.     2:    4800         4800               4800
  180.     3:    3600         3600               3600
  181.     4:    2400         2400               2400
  182.     5:    2000         2000               2000
  183.     6:    1800         1800               1800
  184.     7:    1200         1200               1200
  185.     8:    600          600                600
  186.     9:    300          300                300
  187.    10:    200          200                200
  188.    11:    150          150                150
  189.    12:    134          134                134
  190.    13:    110          110                110
  191.    14:    75           75                 75
  192.    15:    50           50                 50
  193.    16:    38400        38400
  194.    17:    76800        57600
  195.    18:    153600       115200
  196.  
  197.  
  198. Bei einem Terminalprogramm (z.B. RUFUS) bedeutet das, daß man
  199. um eine Baudrate von 57600 auf Serial 2 zu erreichen, 19200 Baud
  200. auswählen muß (im Kompatibilitäts-Modus). Allerdings liegen die 
  201. hohen Baudraten bei Serial 2 ein bißchen (vernachlässigbar) neben 
  202. dem Standard.
  203.  
  204. Hardwarebug!
  205. Serial 2 beim MSTE hat einen Hardwarebug, der Zeichen verschluckt.
  206. Bei höheren Geschwindigkeiten kann der Bug auch bei Modem2 auftreten.
  207. Das hängt von der MSTE-Platinenrevision ab. Dagegen hilft: ein anderes
  208. GAL (Listing sollte seit 0.96 im Archiv dabei sein) oder/und ein
  209. ESCC 85230.
  210.  
  211. Achtung!!
  212. Über die Baudraten mit einem Index größer 15 sind keine Annahmen 
  213. zulässig!!. (Abfragen mit Rsconf!)
  214.  
  215. Achtung!! zum zweiten!
  216. RZ.PRG und SZ.PRG (Version 1.9b) von Michael Ziegler arbeiten
  217. mit dem auf Modem 1 eingestellten Baudratenindex.
  218.  
  219. Custom-Version:
  220. Falls jemand spezielle oder noch höhere Baudraten braucht, soll
  221. er sich bei mir melden. Es ist einiges möglich!
  222.  
  223. Ich habe meinen MegaSTE umgerüstet und betreibe einen
  224. Zilog ESCC 85230 mit 14.7456 MHz. Der Umbau kostet ca. 40 DM.
  225. (Der Umbau ist zum Betrieb von Fast_Ser _nicht_ nötig!!)
  226.  
  227. Dazu braucht man:
  228.  1 ESCC Zilog Z8523016VSC ca. 35 DM
  229.  1 Quarzoszillator 14.7456 MHz ca. 5 DM
  230.  1 Fast_Ser-Version für eine PCLK von 14.7456 MHz
  231.  und ein paar Lötkenntnisse
  232. Die Bauteile sind bei mir erhältlich.
  233.  
  234. Bauanleitung:
  235.  1. alten 85C30 aus dem Sockel hebeln (sehr vorsichtig!!!!!,
  236.      die Sockel sind sehr spröde und brechen leicht!)
  237.  2. am Sockel den Pin 23 (vom markierten Pin 1 gegen den
  238.      Uhrzeigersinn zählen) abzwicken
  239.  3. am neuen ESCC den Pin 23 (PCLK) _vorsichtig_ nach oben biegen
  240.  4. ESCC in den Sockel drücken
  241.  5. den Quarzoszillator mit Pin 2 (7) und Pin 4 (14) auf ein
  242.      14-poliges TTL-IC (74..) (Pin 1 beachten!!) in der Nähe 
  243.      des ESCC löten. Achtung: die Bauhöhe ist unter Umständen
  244.      durch das Netzteil begrenzt!
  245.  6. Pin 3 des Quarzoszillators jetzt mit Pin 23 des ESCC verbinden
  246.  7. das war's!
  247. Mit diesem Umbau sind auf beiden Kanälen bis zu 230400 baud alle
  248. üblichen Baudraten möglich. Falls man auch auf die Pins 13 und 32
  249. (/RTxCA und /RTxCB) die 14.7456 MHz legt, sind theoretisch Baudraten
  250. bis 921600 möglich.
  251.  
  252.  
  253. So das war's vorläufig!
  254. Falls jemand Fehlermeldungen, Wünsche, etc hat, bitte melden bei:
  255.  
  256. Post:
  257. Franz Sirl
  258.  
  259. Bischof-Adalbert-Str. 29
  260. 80809 München
  261.  
  262. Maus: Franz Sirl@M  bzw. Franz Sirl@m.maus.de
  263.  
  264. Voice: 089/356 85 13
  265.  
  266. mfg Franz Sirl, 08-08-93
  267.  
  268.  
  269. Testing/Planning:
  270.  INF-Datei zum beliebigen konfigurieren  der Baudraten
  271.  restliche XSDD-Funktionen
  272.  echter MinT-Devicetreiber
  273.  MinT/MTOS Kompatibilität (XSDD-Protokoll)
  274.  applestyle-Handshake auf Modem2/Serial2, um den LAN-Port mit den
  275.   Standard-Pegelumsetzern betreiben zu können
  276.  
  277. Release Notes:
  278. 0.96beta, 08-08-93:
  279.  Falcon wird unterstützt, FPATCH2 _vollständig_ integriert
  280.  Es sind jetzt 2 Versionen im Archiv:
  281.   Fast_Ser.prg ohne XSDD
  282.   FastXSer.prg mit XSDD
  283.  XSDD-Dokumentation XSDD.TXT (mit freundlicher Genehmigung von 
  284.   Stephan Baucke) im Archiv dabei
  285.  XSDD-Protokoll _teilweise_ für Modem2/Serial2 integriert,
  286.   wird auch von GSZRZ seit 3.5 und Connect seit 2.20 unterstützt
  287.  XSDD-Cookie wird als "xSDD" eingetragen, um den vorläufigen Status
  288.   der Implementation zu kennzeichnen
  289.  XSDD_TST.C als Beispiel-Code zu XSDD im Archiv
  290.  Empfangsbuffergröße auf 2048 Byte gesetzt
  291.  Bug bei XON/XOFF behoben
  292.   (Transmit wurde nach dem XON der Gegenstelle erst wieder gestartet, 
  293.   wenn wieder ein Zeichen in den Puffer geschrieben wurde)
  294. 0.95xxxx, 22-07-93:
  295.  Verschiedene nichtöffentliche Testversionen
  296. 0.94beta, 20-01-93:
  297.  FSERIAL.CPX von Roman Hodek ist mit dabei
  298.  Bei vollem Cookiejar wird jetzt ein Größerer (40) installiert
  299.  Noch ein Fehler bei NoProtocol auf TT behoben (Anrufbeantworterbug)
  300. 0.93beta, 24-11-92:
  301.  Interruptroutinen korrigiert (NoProtocol auf TT) und optimiert
  302.  CTS-Handling optimiert
  303.  Xbios/Iorec()-Patch wird bei TOS2.05 installiert
  304. 0.92beta, 04-11-92:
  305.  Interruptfehler beim TT behoben
  306.  Bconin für XON/XOFF korrigiert
  307.  Am85C230A wird erkannt
  308. 0.91beta, 16-10-92:
  309.  Fehler bei NoProto/XONXOFF behoben (seit 0.88)
  310. 0.90beta, 12-10-92:
  311.  Fehler bei Empfangspufferüberlauf behoben (seit 0.88)
  312. 0.89beta, 11-10-92:
  313.  Fehler bei Einstellung über Kontrollfeld behoben (seit 0.88)
  314. 0.88beta, 05-10-92:
  315.  FSER_INFO enthält Pointer auf die Basepage von Fast_Ser
  316.  Modem 2 auf MSTE unterstützt 57600
  317.  Transmit-Performance verbessert
  318.  CHAN_INFO mit WR5 und RR0 erweitert, um Terminalprogramme besser
  319.  zu unterstützen
  320. 0.85beta, 29-09-92:
  321.  CHECKSCC V1.10 sollte jetzt funktionieren
  322.  SCC-Typabfrage wieder drin
  323.  FSER_INFO enthält Versionsnummer
  324. 0.83beta, 27-09-92:
  325.  Routine die den SCC-Typ testet disabled, da noch fehlerhaft.
  326.  Z85C30 blockiert danach. Deswegen läuft auch CHECKSCC nicht.
  327.  Neuer Eintrag alt_baud_table in CHAN_INFO.
  328.  Cookie 'FSER' wird installiert. Enthält Pointer auf interne 
  329.  Strukturen (momentan nur ein WORD, LSB ist Flag ob baud_table [=0]
  330.  oder alt_baud_table [=1] benutzt wird). Default ist jetzt 1, d.h.
  331.  alt_baud_table mit verschobenen Standardeinträgen.
  332.  baud_table zeigt auf die Standardtabelle, in der Index 0--15
  333.  die originalen Baudraten anwählen, und die Indices >=16 davon
  334.  abweichende Baudraten bezeichnen.
  335.  XON/XOFF als Beta-Version implementiert.
  336.  
  337. 0.80beta, 26-09-92:
  338.  TT-lauffähig.
  339.  Alle Bco...-Routinen für Modem/Serial 2 neu geschrieben,
  340.  Interruptroutinen für SCC implementiert, XON/XOFF-mode noch
  341.  !!!nicht!!! implementiert.
  342.  Beim Rückgabewert von Rsconf werden die Break-Bits von
  343.  RSR/TSR richtig gesetzt.
  344.  Die interne Tabelle zur Baudratenprogrammierung ist zugreifbar,
  345.  für eigene Werte sind jetzt 10 Einträge frei.
  346.  Beim Zilog ESCC 85230 wird das ExtendedRead-Bit (WR7' bit 6) gesetzt 
  347.  und das TxFIFO-Level-Bit (WR7' bit 5) zurückgesetzt.
  348.  
  349. 0.60beta, 08-09-92:
  350.  In der Struktur wird die Variable chip_type gesetzt.
  351.  Das Programm CHECKSCC V1.00 ist im Paket mit dabei.
  352.  Es testet den Chip-Typ und die Frequenzen, die am SCC anliegen.
  353.  
  354. 0.50beta, 30-08-92:
  355.  erste öffentliche Beta!!-Version
  356.