Ŀ Ŀ Tips & Tricks ٳ LPT-INFO ---> Der PC-Druckerport und seinen Metamorphosen ******************************************* Der ursprnglich ziemlich misratene (unidirektionale) Druckerport der IBM-kompatiblen ist inzwischen doch zu einem universellen (bidirek- tionalen) Parallelport herangereift. Es mag schon schizophren klingen, aber IBM hatte vor knapp zwanzig Jahren dem langsamsten aller Pereferiegerte, dem Drucker (ursprng- lich mit 300 Baud) die aufwendigste Schnittstelle gewidmet. Dies extrem niedere Datenbertragungsrate war auch die Ursache, da man sich nicht viel Gedanken um einen Hardwarehandshake machte, sondern den Handshake einfach per Software ber den INT 17h abwickelte. Da man so einen Port auch zu was anderem, als auf den Drucker zu warten brauchen knnte - auf diese Idee kam wohl keiner. In der c't 6/88, S 166 stellte Andreas Stiller schon vor, wie dieser unidirektionale Standard Printer Port (SPP) alleine durch ndern einer einzigen Leitung bidirektional gemacht werden kann, dies erkannte IBM dann bei der groen PC-Revision namens PS/2 auch - leider etwas spt. In der Zwischenzeit zeigte sich, da der "klassische" Parallelport zumindest als 4-Bit bidirektionaler Port (ber die Handshakeleitungen) einsetzbar war, was bei der Rechner-Rechner-Kopplung, LAN- und SCSI- Adaptern interessant war. So konnte aus dem alten Parallport immerhin schon 50-100 KByte/sec herausgeholt werden, was gegenber den seri- ellen Port mit nur 12 kByte/sec doch beachtlich war. Als Handicap stellte sich aber noch immer der Handshake dar, der noch 4-6 achtbittige Portzugriffe bentigte, was auf einem 286er jeweils gut 1 sec dauerte. Hier greift nun eine kleine Hardware-Erweiterung ein, die den Hand- shake im EEP-Modus per Hardware durchfhrt. Die geistigen Vter dieser Variante waren Intel, Zenith und Xircom, als Name wurde "Enhanced Parallel Port (EPP)" gewhlt. In der Theorie waren nun Datenber- tragungsraten bis zu 8 MByte/sec zu erwarten. Einen Schritt weiter ging Microsoft sogar indem es eine FIFO (First In, First Out) in den Parallelport integrierte und diesen nun "Enhanced Capability Port (ECP)" taufte. Das ganze wurde auch noch DMA-fhig gemacht und wre Ideal wenn es seitens der Mainboard- desingner auch bercksichtigt werden wrde. Leider ist das nicht der Fall, so da es oft Probleme mit dem DMA gibt, da der DMA-Kanal nicht eindeutig zugeordnet ist, oft kommt es hier zu DMA-Kanal-Teilungen mit den Floppies 3 und 4. So landet der ECP zum Schlu doch wieder in der Leistungsklasse des EPP, da er von diversen Board's und den Partner- gerten an den Schnittstellen nicht untersttzt wird. Bis zu 1 MB/sec sind aber sogar schon mit einem ganz normalen Paral- lelport drinnen wenn man einen guten Handshake-Erstaz findet. Einen etwas seltsam anklingenden Weg hat z.B. die Firma Noveca, Taufkirchen gefunden, bei der das Timing der Druckerschnittstelle mit einem Treiber ausgestoppt wird und die mit Prfsummen geschtzten Daten im "free run" asyncron ber den Port schickt. Als "Gegenber" steht dan als "DockingStation" ein entsprechender "RAP-Adapter" welche mit einem eigenen Prozessor bis zu 1 MB Puffer verwalten kann. Als Anwendungs- flle wird hier z.B. Drucker, CD-ROM und SCSI gesehen. Es ist damit zu rechnen, da ESCOM demnchst diesen RAP-Adapter vermarkten wird. Nun noch ein paar Tabellen zum Printerport ------------------------------------------ TRANSFERRATEN LESEN [ alles in kB/sec ] SCHREIBEN -------------------------------------------------------------------- unidirektional 100-150 200-300 bidirektional 200-300 200-300 RAP (uni) 500 200-300 RAP (bi) 1000 1000 EPP 1000-2300 1000-2300 ECP 1000-2100 1000-2100 PORT-Adressen SSP EPP ECP -------------------------------------------------------------------- 378h Daten Daten Adr/RLE 379h Status Status Status 37Ah Steuer Steuer Steuer 37Bh - Adr.-Strob - 37Ch - Data-Strob - 37Dh - Data-Strob - 37Eh - Data-Strob - 37Fh - Data-Strob - 778h - - Daten/Test/Konfig A 779h - - Konfig B 77Ah - - extended Steuer Wir knnen also sehen, da der Paralellport sich im Laufe der Zeit doch ganz ansehnlich weiterentwickelt hat. Wir men aber auch im Auge behalten, da beide Partner mit Schnittstellen der gleichen Leistungs- klasse ausgestattet sein mssen um das Letzte aus ihnen herauszuholen, was gerade im Laptopbereich nicht immer der Fall sein wird, und es ist eventuell sogar Software dazu erforderlich die den DMA- oder RAP-Mode versteht, z.B. in Form von Schnittstellentreibern. Quelle : c't 07/93, Seite 120ff PPA-Autor : USe/Va ............................................................ TIPS.TXT COM4-Adressenkonflikte bei S3- und 8514/A-Karten ************************************************ Bei Windows-Grafikbeschleunigerkarten mit S3-Chips oder auch den 8514/A-kompatiblen Grafikkarten ist oft die in PC's fr die COM4 vor- gesehene Portadresse durch die Grafikkarte belegt - wie lt sich nun Ersatz fr die COM4-Schnittstelle finden ? 1) Die seltene Hardwarevariante: Die I/O-Karte lt sich auch auf andere Adressen als die bliche 2E8h jumpern - nur wie bring ich es DOS bei ? 2) Die WINDOWS-Variante: Erzwingen von "COM4" auf "fremder Adresse" in der Systemsteuerung fr DOS-Boxen. 3) Die OS/2-Variante: In der CONFIG.SYS die Portadresse und den INT per COM.SYS ezpilizit zuweisen. Was mu aber unter'm DOS geschehen, damit es eine fremde Portadresse akzeptiert ? DOS akzeptiert von Haus aus ja nur Schnittstellen, die das ROM-BIOS beim Kaltstart gefunden und initialisiert hat. Das Problem ist, das ein "normales" BIOS nur auf den standardisierten Adressen sucht, also mu man selbst Hand anlegen und dem DOS erzhlen wo die COM4 zu finden ist (wenn es sich um eine abweichende Portadresse handelt). Als erstes mu mal die Portadresse in den BIOS-DATA-Bereich geschrie- ben werden. Das wre an die Adresse 40:06h als Word im Intelformat, z.B. die Portadresse 2F0h eben als "F0 02". Das MODE-Kommando vom DOS sollte nun schon bereit sein diesen COM-Port zu bedienen und zu initialisieren - denn erst nach dieser Grund- initialisierung ist der Port funktionsbereit. Jetzt sollte es bei Programmen, die eine gute Konfigurierbarkeit von Portadresse und Interrupt bieten und die Schnittstelle programmintern nochmals initialisieren zu keinen Problemen mehr kommen (z.B. Ter- minalprogramme). Probleme knnen aber trotzdem bei manchen Schnittstellen auftreten, bei denen trotz MODE-Kommando mit Initialisierungsparameter noch hartnckig "Schreibstrungen" auftreten. Abhilfe kann zum Teil durch Ersatzprogramme fr das MODE (aus dem PD-Bereich oder auch dem DOS-eigenen Testprogramm MSD) erreicht werden um eine "lauffhige" Grundinitialisierung zu erreichen. Es knnen aber auch noch Software-Probleme auftreten, wenn die Software die Anzahl der seriellen Schnittstellen im "Equipment-Word" auf der Adresse 40:10h abfragt. Dort steht die Anzahl der COM's in den drei Bits 9,10 und 11, also .....000 fr keine, .....001 fr eine usw. steht. Auch dies lt sich ber den DEBUG bewerkstelligen. Die DEBUG-Befehle kann man auch noch automatisieren, in dem man sie in eine Textdatei schreibt und vom DEBUG automatisch ausfhren lt. Dies ist z.B. mit einer Batchdatei sehr einfach zu machen, z.B. ---> DEBUG < Textdatei Ob's funktioniert kann ich nicht versprechen, da ich keine entsprech- ende Hardware habe. Ich fand es aber interessant hier mal kennen zu lernen wie DOS seine Schnittstellen initialisiert/verwaltet und wo diese Parameter im BIOS-Databereich wiederzufinden sind, gerade die Funktion des Equipment-Word war mir bisher noch nicht so klar. Quelle : c't 07/93, Seite 174 PPA-Autor : USe/Va