home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
mac
/
1000
/
CCE_1024.ZIP
/
CCE_1024
/
UP220195.LZH
/
EXTRA
/
FSER096B.LZH
/
READ.ME
< prev
next >
Wrap
Text File
|
1993-08-08
|
14KB
|
356 lines
Fast_Ser
========
Fast_Ser ist ein erweiterter Treiber für serielle Schnittstellen
auf dem STE/TT/Falcon030.
Für Modem/Serial 1 (MFP) ist eine erweiterte Rsconf-Auskunftsfunktion
implementiert. Für Modem/Serial 2 (SCC) sind zusätzlich alle Bco...-
und Interrupt-Routinen neu (und hoffentlich fehlerfrei) implementiert,
und die Baudratentabelle ist mit eigenen Werten programmierbar.
Fast_Ser stellt eine Standardschnittstelle zur jeweiligen
Hardware mit Hilfe der Rsconf-Funtion her.
- Cookie 'FSER', zeigt auf Struktur FSER_INFO:
typedef struct
{
UWORD version;
unsigned unused:15;
unsigned baud_table_flag:1; /* bit 0 in einem word */
BASPAG *mem_blk;
} FSER_INFO;
- Rsconf( -3, -2, xx, xx, xx, xx ) liefert 'FSER' als long
- Rsconf( -3, -3, xx, xx, xx, xx ) liefert einen Pointer auf die
Struktur CHAN_INFO, die wie folgt definiert ist:
typedef struct
{
BAUD_INFO *baud_table;
BAUD_INFO *alt_baud_table;
UBYTE **chip_address;
UWORD chip_type;
unsigned flags:14;
unsigned extrd_flag:1; /* bit 1 in einem word */
unsigned irq_flag:1; /* bit 0 in einem word */
WORD task;
WORD resv[3];
ULONG dcd_on;
ULONG dcd_off;
UWORD rxbuffer_overflows;
UWORD framing_errs;
UWORD parity_errs;
UWORD charlost_errs;
} CHAN_INFO;
typedef struct
{
LONG baudrate;
UWORD SCC_BRG_value;
UWORD SCC_MISC_value; /* bit 15..14 Clock mode (Reg. 4)
bit 9..8 BRG mode (Reg. 14)
bit 6..3 Rx/Tx Clock Source (Reg. 11)
*/
} BAUD_INFO;
baud_table: Zeiger auf die Tabelle mit den Baudrateninfos, in der
eine Null bei 'baudrate' das Ende markiert, -1 steht
für eine nicht verfügbare Baudrate (nur bei den
ersten 16 Standardeinträgen!!),
-2 für einen freien Eintrag
alt_baud_table: wie baud_table, nur sind hier an den Indices
0 und 1 höhere Baudraten eingefügt. Dadurch können
auch Programme, die Fast_Ser nicht direkt unter-
stützen, die höheren Baudraten nutzen
chip_address: Hardwareadresse des Chips bzw. der internen
Peripherie bei 68302, etc
z.b $FFFF8C81 für Serial 2 auf MSTE/TT
chip_type: Welcher Chiptyp hängt an diesem Kanal dran?
$00: MFP
$10: Standard-SCC 8530
$11: VLSI-SCC VL85C30
$12: Zilog-SCC Z85C30
$13: AMD-ESCC Am85C30
$14: Zilog-ESCC Z85230
$15: AMD-ESCC Am85C230A
$20: ISDN-Coprozessor MC68302
$30: Ethernet-Coprozessor MC68EN360
flags: verschiedene bislang unbenutzte Flags
extrd_flag: Beim SCC ist in WR7' das ExtendedRead-Flag gesetzt.
irq_flag: gesetzt: Die Interruptroutinen nutzen die SCC-FIFOS.
task: hier trägt eine Task, die die Schnittstellenhardware für
sich haben will, ihre Nummer ein.
-1 steht für nicht reserviert.
dcd_on: letzter hz_200-Zeitpunkt, an dem DCD aktiv wurde
dcd_off: letzter hz_200-Zeitpunkt, an dem DCD inaktiv wurde
rxbuffer_overflows: Anzahl der Charakter, die bei einem vollem
Empfangsbuffer verlorengingen
framing_errs: Anzahl der empfangenen Charakter mit Framing-Fehler
(SCC-bedingt ein unsicherer Wert)
parity_errs: Anzahl der empfangenen Charakter mit Parity-Fehler
charlost_errs: Anzahl der Charakter, die verlorengingen, weil der
SCC nicht schnell genug abgefragt wurde
(tatsächliche Anzahl kann größer sein!)
Bei den Standard-Clockraten für den SCC unterstützt Fast_Ser momentan
folgende Baudratenliste (auf die alt_baud_table zeigt):
Listen für den MSTE/Falcon030
Kompatibilität im FSERIAL.CPX =AN:
Index: Modem 2: Serial 2: Original:
0: 57600 57600 19200
1: 38400 38400 9600
2: 19200 19200 4800
3: 9600 9600 3600
4: 4800 4800 2400
5: 3600 3600 2000
6: 2400 2400 1800
7: 2000 2000 1200
8: 1800 1800 600
9: 1200 1200 300
10: 600 600 200
11: 300 300 150
12: 200 200 134
13: 150 150 110
14: 134 134 75
15: 110 110 50
16: 75 75
17: 50 50
18: 38400 38400
19: 57600 57600
20: 76800 115200
21: 153600
Kompatibilität im FSERIAL.CPX =AUS:
Index: Modem 2: Serial 2: Original:
0: 19200 19200 19200
1: 9600 9600 9600
2: 4800 4800 4800
3: 3600 3600 3600
4: 2400 2400 2400
5: 2000 2000 2000
6: 1800 1800 1800
7: 1200 1200 1200
8: 600 600 600
9: 300 300 300
10: 200 200 200
11: 150 150 150
12: 134 134 134
13: 110 110 110
14: 75 75 75
15: 50 50 50
16: 38400 38400
17: 57600 57600
18: 76800 115200
19: 153600
Liste für den TT:
Kompatibilität im FSERIAL.CPX =AN:
Index: Modem 2: Serial 2: Original:
0: 38400 57600 19200
1: 76800 38400 9600
2: 19200 19200 4800
3: 9600 9600 3600
4: 4800 4800 2400
5: 3600 3600 2000
6: 2400 2400 1800
7: 2000 2000 1200
8: 1800 1800 600
9: 1200 1200 300
10: 600 600 200
11: 300 300 150
12: 200 200 134
13: 150 150 110
14: 134 134 75
15: 110 110 50
16: 75 75
17: 50 50
18: 38400 38400
19: 76800 57600
20: 153600 115200
Kompatibilität im FSERIAL.CPX =AUS:
Index: Modem 2: Serial 2: Original:
0: 19200 19200 19200
1: 9600 9600 9600
2: 4800 4800 4800
3: 3600 3600 3600
4: 2400 2400 2400
5: 2000 2000 2000
6: 1800 1800 1800
7: 1200 1200 1200
8: 600 600 600
9: 300 300 300
10: 200 200 200
11: 150 150 150
12: 134 134 134
13: 110 110 110
14: 75 75 75
15: 50 50 50
16: 38400 38400
17: 76800 57600
18: 153600 115200
Bei einem Terminalprogramm (z.B. RUFUS) bedeutet das, daß man
um eine Baudrate von 57600 auf Serial 2 zu erreichen, 19200 Baud
auswählen muß (im Kompatibilitäts-Modus). Allerdings liegen die
hohen Baudraten bei Serial 2 ein bißchen (vernachlässigbar) neben
dem Standard.
Hardwarebug!
Serial 2 beim MSTE hat einen Hardwarebug, der Zeichen verschluckt.
Bei höheren Geschwindigkeiten kann der Bug auch bei Modem2 auftreten.
Das hängt von der MSTE-Platinenrevision ab. Dagegen hilft: ein anderes
GAL (Listing sollte seit 0.96 im Archiv dabei sein) oder/und ein
ESCC 85230.
Achtung!!
Über die Baudraten mit einem Index größer 15 sind keine Annahmen
zulässig!!. (Abfragen mit Rsconf!)
Achtung!! zum zweiten!
RZ.PRG und SZ.PRG (Version 1.9b) von Michael Ziegler arbeiten
mit dem auf Modem 1 eingestellten Baudratenindex.
Custom-Version:
Falls jemand spezielle oder noch höhere Baudraten braucht, soll
er sich bei mir melden. Es ist einiges möglich!
Ich habe meinen MegaSTE umgerüstet und betreibe einen
Zilog ESCC 85230 mit 14.7456 MHz. Der Umbau kostet ca. 40 DM.
(Der Umbau ist zum Betrieb von Fast_Ser _nicht_ nötig!!)
Dazu braucht man:
1 ESCC Zilog Z8523016VSC ca. 35 DM
1 Quarzoszillator 14.7456 MHz ca. 5 DM
1 Fast_Ser-Version für eine PCLK von 14.7456 MHz
und ein paar Lötkenntnisse
Die Bauteile sind bei mir erhältlich.
Bauanleitung:
1. alten 85C30 aus dem Sockel hebeln (sehr vorsichtig!!!!!,
die Sockel sind sehr spröde und brechen leicht!)
2. am Sockel den Pin 23 (vom markierten Pin 1 gegen den
Uhrzeigersinn zählen) abzwicken
3. am neuen ESCC den Pin 23 (PCLK) _vorsichtig_ nach oben biegen
4. ESCC in den Sockel drücken
5. den Quarzoszillator mit Pin 2 (7) und Pin 4 (14) auf ein
14-poliges TTL-IC (74..) (Pin 1 beachten!!) in der Nähe
des ESCC löten. Achtung: die Bauhöhe ist unter Umständen
durch das Netzteil begrenzt!
6. Pin 3 des Quarzoszillators jetzt mit Pin 23 des ESCC verbinden
7. das war's!
Mit diesem Umbau sind auf beiden Kanälen bis zu 230400 baud alle
üblichen Baudraten möglich. Falls man auch auf die Pins 13 und 32
(/RTxCA und /RTxCB) die 14.7456 MHz legt, sind theoretisch Baudraten
bis 921600 möglich.
So das war's vorläufig!
Falls jemand Fehlermeldungen, Wünsche, etc hat, bitte melden bei:
Post:
Franz Sirl
Bischof-Adalbert-Str. 29
80809 München
Maus: Franz Sirl@M bzw. Franz Sirl@m.maus.de
Voice: 089/356 85 13
mfg Franz Sirl, 08-08-93
Testing/Planning:
INF-Datei zum beliebigen konfigurieren der Baudraten
restliche XSDD-Funktionen
echter MinT-Devicetreiber
MinT/MTOS Kompatibilität (XSDD-Protokoll)
applestyle-Handshake auf Modem2/Serial2, um den LAN-Port mit den
Standard-Pegelumsetzern betreiben zu können
Release Notes:
0.96beta, 08-08-93:
Falcon wird unterstützt, FPATCH2 _vollständig_ integriert
Es sind jetzt 2 Versionen im Archiv:
Fast_Ser.prg ohne XSDD
FastXSer.prg mit XSDD
XSDD-Dokumentation XSDD.TXT (mit freundlicher Genehmigung von
Stephan Baucke) im Archiv dabei
XSDD-Protokoll _teilweise_ für Modem2/Serial2 integriert,
wird auch von GSZRZ seit 3.5 und Connect seit 2.20 unterstützt
XSDD-Cookie wird als "xSDD" eingetragen, um den vorläufigen Status
der Implementation zu kennzeichnen
XSDD_TST.C als Beispiel-Code zu XSDD im Archiv
Empfangsbuffergröße auf 2048 Byte gesetzt
Bug bei XON/XOFF behoben
(Transmit wurde nach dem XON der Gegenstelle erst wieder gestartet,
wenn wieder ein Zeichen in den Puffer geschrieben wurde)
0.95xxxx, 22-07-93:
Verschiedene nichtöffentliche Testversionen
0.94beta, 20-01-93:
FSERIAL.CPX von Roman Hodek ist mit dabei
Bei vollem Cookiejar wird jetzt ein Größerer (40) installiert
Noch ein Fehler bei NoProtocol auf TT behoben (Anrufbeantworterbug)
0.93beta, 24-11-92:
Interruptroutinen korrigiert (NoProtocol auf TT) und optimiert
CTS-Handling optimiert
Xbios/Iorec()-Patch wird bei TOS2.05 installiert
0.92beta, 04-11-92:
Interruptfehler beim TT behoben
Bconin für XON/XOFF korrigiert
Am85C230A wird erkannt
0.91beta, 16-10-92:
Fehler bei NoProto/XONXOFF behoben (seit 0.88)
0.90beta, 12-10-92:
Fehler bei Empfangspufferüberlauf behoben (seit 0.88)
0.89beta, 11-10-92:
Fehler bei Einstellung über Kontrollfeld behoben (seit 0.88)
0.88beta, 05-10-92:
FSER_INFO enthält Pointer auf die Basepage von Fast_Ser
Modem 2 auf MSTE unterstützt 57600
Transmit-Performance verbessert
CHAN_INFO mit WR5 und RR0 erweitert, um Terminalprogramme besser
zu unterstützen
0.85beta, 29-09-92:
CHECKSCC V1.10 sollte jetzt funktionieren
SCC-Typabfrage wieder drin
FSER_INFO enthält Versionsnummer
0.83beta, 27-09-92:
Routine die den SCC-Typ testet disabled, da noch fehlerhaft.
Z85C30 blockiert danach. Deswegen läuft auch CHECKSCC nicht.
Neuer Eintrag alt_baud_table in CHAN_INFO.
Cookie 'FSER' wird installiert. Enthält Pointer auf interne
Strukturen (momentan nur ein WORD, LSB ist Flag ob baud_table [=0]
oder alt_baud_table [=1] benutzt wird). Default ist jetzt 1, d.h.
alt_baud_table mit verschobenen Standardeinträgen.
baud_table zeigt auf die Standardtabelle, in der Index 0--15
die originalen Baudraten anwählen, und die Indices >=16 davon
abweichende Baudraten bezeichnen.
XON/XOFF als Beta-Version implementiert.
0.80beta, 26-09-92:
TT-lauffähig.
Alle Bco...-Routinen für Modem/Serial 2 neu geschrieben,
Interruptroutinen für SCC implementiert, XON/XOFF-mode noch
!!!nicht!!! implementiert.
Beim Rückgabewert von Rsconf werden die Break-Bits von
RSR/TSR richtig gesetzt.
Die interne Tabelle zur Baudratenprogrammierung ist zugreifbar,
für eigene Werte sind jetzt 10 Einträge frei.
Beim Zilog ESCC 85230 wird das ExtendedRead-Bit (WR7' bit 6) gesetzt
und das TxFIFO-Level-Bit (WR7' bit 5) zurückgesetzt.
0.60beta, 08-09-92:
In der Struktur wird die Variable chip_type gesetzt.
Das Programm CHECKSCC V1.00 ist im Paket mit dabei.
Es testet den Chip-Typ und die Frequenzen, die am SCC anliegen.
0.50beta, 30-08-92:
erste öffentliche Beta!!-Version