Vollkompatible Erweiterung der Ataris um mehrere Parallelports ************************************************************** Ziel ---- Es werden 4 Druckerports gebraucht, mit denen auch ahnungslose Programme arbeiten k”nnen. Es soll alles, was am Originalport nutzbar ist, an beliebigen Ports nutzbar sein, z.B. Drucker, EPROM- und GAL-Programmierer, Scanner, Sampler, Foliotalks. Neue Programme sollen den Port selbst w„hlen k”nnen. So ergeben sich die Forderungen: - aus der Sicht eines Programms volle Kompatibilit„t zum Original, inklusive der Bidirektionalit„t der Datenleitungen D7..D0 - die Ports „ndern ihre Ausgangspegel nicht, wenn sie inaktiv sind - durch Software umschaltbar Das Projekt tr„gt den Namen Mulpri und das Kurzzeichen 4P. Copyright --------- Dies ist die freie Version von Mulpri. Diese Version geh”rt zu der besonderen Art von Shareware, die aus einer Hardware-Bauanleitung und Software besteht. Natrlich sind weder Hardware noch Software in ihrer Funktion eingeschr„nkt. Der Shareware-Preis, den jeder Mulpri-Bastler bezahlen sollte, betr„gt 30DM (Kontonummer folgt). Das halte ich fr Mulpri angemessen, hoffentlich viele Bastler/Nutzer auch. Dieses Paket darf und soll frei kopiert werden, solange alle im Abschnitt Inhalt aufgefhrten Dateien unver„ndert weitergegeben werden. Wenn Dateien oder modifizierte Originaldateien hinzufgen werden, so muž fr diese ein wesentlich anderer Name gew„hlt und deren Inhalt vermerkt werden. Die šbersetzung in andere Sprachen ist ausdrcklich erwnscht. Mulpri darf fr den Eigenbedarf gebaut werden. Gegen den Aufbau fr gute Freunde habe ich ebenfalls nichts. Dabei darf der Bastler aber keinen Gewinn machen. Eine kommerzielle Fertigung oder Verwertung ist nur mit meiner schriftlichen Zustimmung erlaubt. Ich habe diese Bauanleitung sorgf„ltig berprft. Ich hafte in keiner Weise fr eventuelle Fehler und/oder (daraus resultierende) Besch„digungen irgendwelcher Objekte oder Subjekte oder die Unbrauchbarkeit fr einen Einsatzzweck. Ich bitte aber darum, mir Fehler mitzuteilen. Diese Bugreports sollten so genau wie m”glich sein. Nur wenn ich einen Fehler finden kann, kann ich ihn beseitigen. In diesem Paket sind alle Informationen zu Mulpri enthalten. Aužer dem Layout als Scooter-Datei und den Quellen der Programme habe auch ich nicht mehr. Anfragen werden normalerweise nur beantwortet, wenn es mich kein Geld kostet (Email oder frankierten Rckumschlag beilegen). Ich habe auch ein Telefon, das man nur in Ausnahmef„llen strapazieren sollte. Es gibt bei mir eine fertig aufgebaute Version, die sich im Aufbau m”glicherweise von der freien Version unterscheidet. Die Fertigversion enth„lt alle Funktionen der freien Version und eventuell noch Erweiterungen. Preis und Bezugsbedingungen teile ich auf Anfrage mit. Wahrscheinlich gibt es die Platinen der freien Version und die GALs ebenfalls bei mir. Preis erstmal auf Anfrage. Meine Postanschrift: Harun Scheutzow Dresdener Straže 83 D-10179 Berlin Per Email bin ich zu erreichen im Mausnetz: Harun Scheutzow @B aus dem Internet: Harun_Scheutzow@B.maus.de Meine Bankverbindung: Kontoinhaber: Harun Scheutzow Kontonummer: 581854107 Bankleitzahl: 10010010 Bank: Postgiroamt Berlin Inhalt des Paketes ------------------ Bilder sind 300dpi GEM-IMG monochrom, Mažstab 1:1. Bestckungspl„ne sind Ansicht von der Oberseite (Bauelemente auf Unterseite erscheinen in Spiegelschrift). Layouts sind Ansicht von der Unterseite (Kupferseite) der Platine. MUL_USG.IMG Layout der Mulpri-Hauptplatine. Sieht mit 300dpi sehr eng aus. Ich habe 1270dpi-Druck auf Film belichtet -> super. MUL_BP.IMG Bestckungsplan der Mulpri-Hauptplatine SND_USG.IMG Layout der Soundchipplatine SND_BP.IMG Bestckungsplan der Soundchipplatine 4P_TEXT.TXT dieser Text, die gesamte Erkl„rung 4P.JED JEDEC-File fr Hauptplatinen-GALs 4P_SND.JED JEDEC-File fr Soundchipplatinen-GAL 4P_AUTO.PRG Treiber fr den AUTO-Ordner 4P_AUTO.TXT Dokumentation zu 4P_AUTO.PRG 4PRN_COO.TXT Dokumentation des von 4P_AUTO angelegten Cookies 4P_ACC.ACC Accessory fr die Einstellungen 4P_ACC.TXT Dokumentation zu 4P_ACC.ACC Es geh”ren in Zukunft dazu (am 08.08.1993 noch nicht): 4P_CPX.CPX CPX fr die Einstellungen 4P_CPX.TXT Dokumentation zu 4P_CPX.CPX Realisierung ------------ Der Soundchip-PortB (D0-D7 auf SUBD-25pol, pin2-pin9) wird je Druckerport (kurz: Dp) ber ein 8Bit-Latch gefhrt. Vom Soundchip-PortA werden Bit5 (/STROBE-Signal auf SUBD-25pol-pin1) und optional Bit7 (/SELIN, gern fr Scanneranschluž herausgefhrt auf SUBD-25pol-pin17, beim Falcon ist standardm„žig Bit3 herausgefhrt) werden ebenfalls je Dp ber ein Latch gefhrt. Die BUSY-Signale (SUBD-25pol-pin1) werden ber einen X-auf-1 Multiplexer gesammelt und dem MFP Bit0 zugefhrt. Fr den Falcon k”nnte man noch ACK ber einen Multiplexer einsammeln, das liegt auf SUBD-25pol-pin10 und geht an MFP Bit1. Das /STROBE-Latch muž bei einem Reset automatisch auf H-Pegel gesetzt werden. Fr Bidirektionalit„t muž das PortB-Latch auch auf Eingabe schaltbar sein. Auf der Datenbusseite des Soundchip h„ngt eine Schaltung, die beim Beschreiben des Auswahlregisters des Soundchips die Datenbits D3..D0 speichert, wenn eine Adresse von $1X geschrieben wurde. Mit den Bits D3..D0 wird der Dp ausgew„hlt, wobei immer nur das Bit des gewnschten Dp auf H zu setzen ist. Inaktivierung aller Dp ist zum Umschalten erforderlich. Der Wert nach Reset ist bin„r 0001 (erster Dp ausgew„hlt). Die Software setzt immer das zu aktivierende Dp-Bit auf H, aber die RDxL-Leitungen sind L-aktiv und enthalten die negierten Werte der Softwareseite. Bei der TTL-Realisierung wird durch die Gleichungen des GALs sichergestellt, daž immer nur ein Dp aktiviert wird. So werden Kurzschlsse zwischen den Treiberausg„ngen bei der Betriebsart Eingabe durch unsinnige Softwareeinstellungen verhindert. Wenn ein MACH eingesetzt wird, so liežen sich bei gleichzeitiger Aktivierung von mehr als einem Port Sonderfunktionen realisieren, z.B. die automatische Durchschaltung eines Eingabeports auf einen Ausgabeport. Fr Bidirektionalit„t wird beim Beschreiben des Auswahlregisters mit $07 ein FlipFlop gesetzt, das bei Reset und jedem anderen Schreiben auf das Auswahlregister zurckgesetzt wird. Ist das FlipFlop gesetzt und es erfolgt ein Schreibzugriff auf das Datenregister, so wird das Bit7 vom Datenbus gespeichert (Bit7 =0 bedeutet Dp auf Eingabe). Dieses Bit7 (IOD7) wird von den Druckerports gelatcht. Durch Reset werden IOD7 und alle I/O-Flags auf Ausgabe gesetzt. Ist ein Dp aktiviert, so sind seine Latches auf Durchgang geschaltet und der Multiplexer legt sein BUSY an den MFP an. Ist ein Dp inaktiv, so sind die Latches im Speicherzustand und BUSY wird nicht durchgeschaltet. Die Umschaltung der Druckerports bernimmt ein Programm. Es ist immer darber informiert, welcher Dp aktiv ist und welche Pegel an den inaktiven Dp zuletzt ausgegeben wurden. Zur Umschaltung wird zuerst der Dp inaktiviert. Dann werden aus dem Soundchip die Zust„nde des PortB und des Bit5 (optional auch Bit7 oder Bit3) von PortA gelesen und in den Merkerzellen fr den ehemals aktiven Dp abgelegt. Auch Bit7 von Register7 wird gelesen und gespeichert. Nun werden aus den Merkerzellen des zu aktivierenden Dp die eben genannten Zust„nde geholt und in den Soundchip geschrieben. Zuletzt wird der neue Dp aktiviert. Der Anschluž erfolgt am Original-Druckerport und mit 8 Leitungen an die Platine am Soundchip. Diese 8 Leitungen k”nnen auch steckbar ausgelegt und herausgefhrt werden, so daž die Mulpri-Platine extern angeschlossen wird. Die Stromversorgung der Mulpri-Platine kommt ber die Leitungen vom Soundchip. Fr die Versorgung von Ger„ten, die an Mulpri angeschlossen werden, sollte man unbedingt extra Leitungen verlegen. Schaltung am Soundchip ====================== Signalbelegung der Steuerleitungen BDIR (pin27) und BC1 (pin29) im ST BDIR BC1 Aktion inaktiv low low $FFFF8800 read low high Daten lesen $FFFF8800 write high high Auswahlregister beschreiben $FFFF8802 read low low (=inaktiv -> sinnloser Zugriff) $FFFF8802 write high low Daten schreiben Wichtig! Der Soundchip wird anscheinend nur mit /AS und nicht mit /UDS selektiert, so daž bei der Selektion noch keine gltigen Daten auf dem Bus liegen. Erst mit der Deselektionsflanke darf man die Daten vom Bus bernehmen. BDIR und BC1 mssen zur gleichen Zeit umschalten, sonst entstehen zwischenzeitlich andere Zust„nde. Der Soundchip ist relativ langsam und so unkritisch. Aber auch fr ein 25ns-GAL drften die Flanken gleichzeitig genug sein, da BDIR und BC1 im ST durch je ein Gatter eines 74LS02 aus RWL, SNDCSL und A1 erzeugt werden: BDIR = /(RWL + SNDCS) BC1 = /(A1 + SNDCS) Schaltung am Soundchip-Computerbus ---------------------------------- Signale vom Soundchip-Businterface: RSTL L-aktives Reset BDIR BC1 D7..D0 Daten vom Bus Signale zur externen Schaltung: RD3L..RD0L L-aktive 1 aus 4 Auswahl des aktiven Dp REXL L-aktives Resetsignal IOD7 Bit7 von Register7 des Soundchip, Richtungsbit Es wird ein GAL20v8(-25ns) am Soundchip eingesetzt. GAL 20v8 wird mit selbsterzeugtem GCLK getaktet. /OE des GALs wird auf GND gelegt. Es hat Register mit zus„tzlicher Selbsthaltung. Die Computerbusdefinition sichert, daž die Eingangssignale nicht im Moment der Taktflanke wechseln. ( <- ist das = fr registered-Ausg„nge) Resetproblem ------------ Mit der steigenden Flanke des Reset-Signals RSTL werden die Reset-Werte in die GAL-Register geschrieben. So erh„lt man erstens nach PowerOn andere Werte als nur die GAL-Register-Grundstellung 0, und zweitens werden auch die anderen Resetm”glichkeiten ber den CPU-Befehl RESET und das Drcken der Reset-Taste bercksichtigt. Will man aber bestimmte Pegel einschreiben, und taktet das GAL nicht nur direkt mit dem RSTL-Signal, sondern ber ein GAL-Gatter, so mssen die Pegel an den Registereing„ngen des GALs lange genug nach der RSTL-L/H-Flanke noch anliegen. Dafr wird eine Verz”gerung des Reset-Signals gebraucht, die durch ein GAL-Gatter erzeugt wird. Dieses Reset heižt REXL und wird auch der externen Schaltung zugefhrt. Damit keine St”rungen durch evtl. Reflexionen auf REXL auftreten (Takt, obwohl RSTL nicht mehr L ist), wird REXL mit RSTL verknpft. GAL20v8 Pinbelegung ------------------- ---*--- GCLK | 1 24| VCC sndcp40 sndcp37 D0 | 2 23| DEBC1 sndcp36 D1 | 3 22| GCLK sndcp35 D2 | 4 21| REXL sndcp34 D3 | 5 20| RD0L sndcp33 D4 | 6 19| RD1L sndcp32 D5 | 7 18| RD2L sndcp31 D6 | 8 17| RD3L sndcp30 D7 | 9 16| IOD7 sndcp29 BC1 |10 15| IOFE (intern) sndcp27 BDIR |11 14| RSTL sndcp23 GND |12 13| GND sndcp1 ------- DEBC1 ist das extern auf der H/L-Flanke um mindestens 25ns verz”gerte BC1-Signal. Die Verz”gerung erfolgt mit einem 4.3kOhm/22pF-Tiefpaž. Minimalverz”gerung fr H/L ist 28ns bei 2.7V auf 2.0V bei Cgesamt=22pF. Die L/H-Flanke ist auf jeden Fall schnell genug (DEBC1 geht in 200ns von 0V auf 2V, wenn BC1 auch nur auf 2.7V geht, Cgesamt=34pF), damit ein definierter H-Zustand rechtzeitig vor Ende dieses Zugriffes erreicht wird. Die H/L-Flanke erreicht den L-Pegel auf jeden Fall frh genug vor Ende des eventuell ganz schnell nachfolgenden Zugriffs, da eine Entladung von 5V auf 0.8V nur 270ns dauert. Die 4.3kOhm belasten BC1 nicht wesentlich, da Cgesamt max. 34pF (22pF Kondensator, 12pF GAL max.) ist. Beide GCLK verbunden, beide GND verbunden. GAL sitzt auf kleiner Platine und diese kopfber auf Soundchip. Beide Pin1 zeigen in gleiche Richtung. Belegung des 8poligen EXT-Verbinders ------------------------------------ 1 VCC 2 GND 3 REXL 4 RD0L 5 RD1L 6 RD2L 7 RD3L 8 IOD7 GAL20v8 Gleichungen ------------------- ;Takt fr das GAL: L-Impuls bei Schreiben auf Auswahlregister, ;L-Impuls bei Schreiben auf Register7, L-Impuls bei Reset ;auf GAL-Clock-Eingang gelegt ;L/H-Flanke bei Inaktivierung schreibt ein GCLK.OE = 1 /GCLK = BDIR * BC1 * REXL + /RSTL * /REXL + BDIR * /BC1 * IOFE * REXL ;getriebenes Reset fr externe Schaltung, intern als verz”gertes ;(l„nger aktives) REXL.OE = 1 REXL = RSTL ;speichert /D0 beim $1X-Schreiben auf Auswahlregister, L nach Reset ;es darf nur ein Bit D3..D0 auf H gesetzt sein, sonst wirkt es ;wie D3..D0 =L, also alles inaktiv /RD0L <- /RD0L * D7 + /RD0L * D6 + /RD0L * D5 + /RD0L * /D4 + /RD0L * /DEBC1 + D0 * /D1 * /D2 * /D3 * /D7 * /D6 * /D5 * D4 * DEBC1 + /REXL ;speichert /D1 beim $1X-Schreiben auf Auswahlregister, H nach Reset /RD1L <- /RD1L * D7 * REXL + /RD1L * D6 * REXL + /RD1L * D5 * REXL + /RD1L * /D4 * REXL + /RD1L * /DEBC1 * REXL + /D0 * D1 * /D2 * /D3 * /D7 * /D6 * /D5 * D4 * DEBC1 * REXL ;speichert /D2 beim $1X-Schreiben auf Auswahlregister, H nach Reset /RD2L <- /RD2L * D7 * REXL + /RD2L * D6 * REXL + /RD2L * D5 * REXL + /RD2L * /D4 * REXL + /RD2L * /DEBC1 * REXL + /D0 * /D1 * D2 * /D3 * /D7 * /D6 * /D5 * D4 * DEBC1 * REXL ;speichert /D3 beim $1X-Schreiben auf Auswahlregister, H nach Reset /RD3L <- /RD3L * D7 * REXL + /RD3L * D6 * REXL + /RD3L * D5 * REXL + /RD3L * /D4 * REXL + /RD3L * /DEBC1 * REXL + /D0 * /D1 * /D2 * D3 * /D7 * /D6 * /D5 * D4 * DEBC1 * REXL ;speichert D7 beim Schreiben auf Register7 des Soundchips ;H nach Reset (Soundchip-Wert fr Ausgabe) ;(bei BC1 =L gibt es nur Takt bei Schreiben auf Register7) IOD7 <- IOD7 * DEBC1 + D7 * /DEBC1 + /REXL ;H solange Soundchip-Auswahlregister $07 enth„lt (intern) IOFE <- REXL * /D7 * /D6 * /D5 * /D4 * /D3 * D2 * D1 * D0 Der x646, ein bidirektionaler Treiber mit Registern =================================================== Pinbelegung ----------- --*-- CAB | 1 24| VCC SAB | 2 23| CBA DIR | 3 22| SBA A0 | 4 21| /OE A1 | 5 20| B0 A2 | 6 19| B1 A3 | 7 18| B2 A4 | 8 17| B3 A5 | 9 16| B4 A6 |10 15| B5 A7 |11 14| B6 GND |12 13| B7 ----- Verhalten --------- zwei 8Bit-Ports A und B sowie zwei zugeordnete 8Bit-Register bei OEL =L DIR =L A ist Ausgang, B ist Eingang SBA =L B nach A durchgeschaltet SBA =H A liefert Daten aus RegisterB DIR =H A ist Eingang, B ist Ausgang SAB =L A nach B durchgeschaltet SAB =H B liefert Daten aus RegisterA bei OEL =H DIR =egal, A und B sind Eingang CAB und CBA sind von DIR und OEL unabh„ngig. SAB wirkt nur bei DIR =H. SBA wirkt nur bei DIR =L. Eine L/H-Flanke an CAB speichert die Daten von A im RegisterA. Eine L/H-Flanke an CBA speichert die Daten von B im RegisterB. Ist als Latch brauchbar: SAB und CAB sowie SBA und CBA verbunden. Bei L werden die Daten durchgeschaltet, mit der L/H-Flanke gespeichert und bei H die Registerdaten ausgegeben (hoffentlich ohne Spikes). Einsatz im Druckerport ---------------------- OEL = RDxL * DBx also =L (aktiv) bei Port x auf Ausgabe oder Port x selektiert realisiert ber wiredAND mit 2 Dioden und 10kOhm-Widerstand nach +5V DIR wird mit negierten gelatchten Richtungsbit des Soundchips gesteuert. PxDIR ist =H fr Soundchip auf Eingabe, x646 also auch vom erweiterten Druckerport zum alten Computerport geschaltet Anschlsse B an Soundchip, A nach aužen an neuen Druckerport. CAB =L immer (eigentlich: egal). SAB =L immer, bei Eingabefunktion immer durchschalten. CBA und SBA zusammen und als H-aktives "Latch enable" an RDxL. Dafr mssen alle alten RDx-Definitionen invertiert werden. Ein RDx ist also hier RDxL und L-aktiv. Das x in x646 steht fr die verschiedenen verwendbaren Baureihen. Empfehlenswert sind 74HCT646 und 74LS646. Der LS drfte etwas unempfindlicher gegen elektrische Zerst”rung sein, frižt aber einige mA mehr Strom. Ebenfalls nutzbar sind 74ALS646, 74ACT646 und 74FCT646, die aber alle unn”tig schnell schalten und sehr viel Strom liefern k”nnen (Geschwindigkeit und Strom von links nach rechts steigend). Das kann zu St”rimpulsen und Reflexionen auf den langen Leitungen fhren. Auf keinen Fall sollten 74646, 74S646 oder 74AS646 verwendet werden. Daneben existieren noch andere Logikserien, aber ber alle will ich mich nicht auslassen. Die Mulpri-Platine ================== Belegung der 26poligen Leiterplattenverbinder --------------------------------------------- fr Flachbandkabel auf SUB-D-Quetschbuchse/stecker Pinnummern der SUB-D-Buchse Sicht auf die Bohrungen von der Bestckungsseite: ------------------------------------** |13 12 11 10 09 08 07 06 05 04 03 02 01| |xx 25 24 23 22 21 20 19 18 17 16 15 14| -------------------------------------- Die beiden GALs --------------- Beide GALs sind GAL 16v8 und gleich. Das spart Arbeit. Jedes GAL ist fr zwei Druckerports zust„ndig. Die BUSY-Ausg„nge sind direkt verbunden und werden deshalb als tristate betrieben. Das GAL latcht das STR-Signal und das DIR-Signal. STR wird aužerdem getrieben, damit die Latches nicht von aužen umgekippt werden k”nnen. Die beiden BUSY-Eing„nge werden zusammengefažt. Bei Reset (REXL =L) werden die PxSTR =H und die PxDIR =L gesetzt. GAL-Pinbelegung --------------- Fr das zweite GAL sind alle "P0" durch "P2" und alle "P1" durch "P3" zu ersetzen, wenn der Anschluž in der Schaltung interessiert. --*-- VCC | 1 20| VCC REXL | 2 19| BENA intern RD0L | 3 18| P0DIR RD1L | 4 17| P0STR IOD7 | 5 16| P0SU intern P0BUSY | 6 15| P1SU intern frei | 7 14| P1DIR STR | 8 13| BUSY P1BUSY | 9 12| P1STR GND |10 11| GND ----- GAL16v8 Gleichungen ------------------- ;BUSY Output Enable, BUSY hochohmig, wenn kein Port gew„hlt BENA.OE = 1 BENA = /RD0L + /RD1L ;Dir-Latch Port0 P0DIR.OE = 1 P0DIR = P0DIR * RD0L * REXL + /IOD7 * /RD0L * REXL + /IOD7 * P0DIR * REXL ;Strobe-Ausgang Port0 P0STR.OE = 1 P0STR = P0SU ;Strobe-Latch Port0, intern P0SU.OE = 1 P0SU = /REXL + P0SU * RD0L + STR * /RD0L + STR * P0SU ;Strobe-Latch Port1, intern P1SU.OE = 1 P1SU = /REXL + P1SU * RD1L + STR * /RD1L + STR * P1SU ;Dir-Latch Port1 P1DIR.OE = 1 P1DIR = P1DIR * RD1L * REXL + /IOD7 * /RD1L * REXL + /IOD7 * P1DIR * REXL ;BUSY-Ausgang zum Computer, gesammelte PxBUSY ;hochohmig wenn beide Px inaktiv BUSY.OE = BENA BUSY = P0BUSY * /RD0L + P1BUSY * /RD1L ;Strobe-Ausgang Port1 P1STR.OE = 1 P1STR = P1SU Schaltungsdetails ----------------- Zum Schutz der GAL-Eing„nge (BUSY) wurden 1kOhm-Widerst„nde vorgesehen. Die 330Ohm-Pullups an den BUSY-Eing„ngen der Mulpri-Platine belasten die Signalquelle wie viele alte Centronics-Ports mit 16mA im Low-Zustand. Der AtariST hat meist ebenfalls 330Ohm-Widerst„nde. Man kann sie etwas gr”žer w„hlen, um die Last zu verringern. Das kann aber beim Einlesen von schnellen Impulsfolgen (z.B. vom GAL-Prommer) zu seltsamen Effekten fhren, die nicht auf ihre Ursache hindeuten. So wurden bei 2kOhm-Pullups beispielsweise einige Low-Pegel als High-Pegel gelesen (wirklich!). Bauteilliste Soundchipplatine ----------------------------- GAL20v8-25 programmiert optional 24polige Fassung (schmal) 4.3kOhm SMD-Widerstand 22pF SMD-Kondensator 100nF SMD-Kondensator (optional) 40polige Fassung (mit gedrehten Kontakten) mindestens 13, h”chstens 21 Kontaktstifte (eine Seite in Leiterplatte, andere Seite in Fassung auf Soundchip oder direkt auf Soundchip) Bauteilliste Mulpri-Platine --------------------------- 4 Stck 74HCT646 oder 74LS646 2 Stck GAL16v8-25 programmiert optional 2 Stck 20polige Fassung (schmal, mit gedrehten Kontakten) 8 Stck Dioden 1N4148, besser noch SD103B o.„. Shottky-Typ 4 Stck 330Ohm Widerstand (330Ohm bis 820Ohm) 4 Stck 1kOhm Widerstand (500Ohm bis 1.8kOhm) 4 Stck 10kOhm Widerstand (5kOhm bis 20kOhm) 5 Stck 100nF Kondensator (Abblockkondensator) 10 Stck Drahtschnipsel als Brcken 5 Stck Schneidklemm-Leiterplattenverbinder 5 Stck 25poliges Flachbandkabel, L„nge nach Bedarf 4 Stck SUB-D-Schneidklemm-Buchse (weiblich) 1 Stck SUB-D-Schneidklemm-Stecker (m„nnlich) Draht zur Verbindung mit Soundchip-Platine, optinal 15poligen SUB-D-Stecker und 15polige SUB-D-Buchse fr l”sbare Verbindung Aufbau der Soundchipplatine --------------------------- Zuerst werden die SMD-Bauelemente bestckt. Je nach Platz ber dem Soundchip sollte man fr das GAL und die Platine eine Fassung vorsehen, nur fr die Platine eine Fassung verwenden oder alles direkt l”ten. Die Kontaktstifte sind auf der Oberseite einzusetzen, wo auch das GAL sitzt. Die Kabel zur Mulpri-Platine (falls gewnscht, mit 15poligem SUB-D-Verbinder) sollten ebenfalls angel”tet werden, werden aber noch nicht mit der Mulpri-Platine verbunden. Die Platine sitzt kopfber (GAL zum Soundchip hin) auf dem Soundchip. Pin1 von GAL und Soundchip zeigen in die gleiche Reichtung. Wenn die Soundchip-Platine komplett auf dem Soundchip sitzt, kann eine Funktionskontrolle durchgefhrt werden. Der Rechner muž sich genau wie vor dem Einbau verhalten, ansonsten sind irgendwo Kurzschlsse oder schwerwiegende Defekte entstanden und zu suchen. Aufbau der Mulpri-Platine ------------------------- Zuerst werden die Brcken bestckt. Fr das Anquetschen der Flachbandkabel an die Leiterplattenverbinder (LPV) gibt es einige Varianten. Auf jeden Fall muž man darauf achten, daž Pin1 des LPV und des SUB-D-Verbinders auf der gleichen Ader des Kabels zu liegen kommen. Das Kabel wird in den LPV auf der Pin1-Seite bndig eingelegt, so daž Pin26 frei bleibt. - Man bohrt in ein Stck Hartholz, Plast oder Metall 26 L”cher entsprechend der Pins, steckt den LPV hinein und das Ganze mit Kabel zum Quetschen in einen Schraubstock. Danach wird der LPV eingel”tet. - Man l”tet zuerst den LPV ein, steckt das Kabel ein und legt zum Quetschen auf der Leiterseite ein Stck Weichholz zwischen Schraubstock und Platine, in das sich die berstehenden Pins hineinbohren k”nnen. Dann wird gequetscht. - Oder aber ach nicht doch ... (Man muž nicht mit einem Schraubstock arbeiten, sondern kann _bei_ _entsprechendem_ _Geschick_ solche Klemmverbindungen mit einem Hammer zusammenschlagen.) Es werden alle anderen Bauelemente bestckt. Die Kabel von der Soundchipplatine werden angel”tet. Dabei ist wieder darauf zu achten, daž die gekennzeichneten Pin1 miteinander verbunden werden und die restlichen Adern entsprechend folgen. Wurde ein Steckverbinder zur Soundchipplatine vorgesehen, so wird dieser gesteckt. Jetzt erfolgt ein Testlauf noch ohne Verbindung zum alten Druckerport. Alles sollte wie frher funktionieren, andernfalls muž man die Ursachen fr Rauchzeichen oder sonstiges suchen. Die Verbindung zwischen Original-Druckerport und Mulpri wird hergestellt. An Port1 der Mulpri wird ein Drucker (oder etwas anderes geeignetes) angeschlossen. Wenn der Rechner gestartet wird, sollte sich das Ger„t an Port1 so verhalten, als w„re es am Originalport. Wie und wo oder ob er/sie/es Mulpri in den Rechner einbaut, muž jeder selbst entscheiden. Verbindung zwischen Soundchipplatine und Mulpri-Platine ------------------------------------------------------- Wenn diese beiden Platinen nicht fest sondern steckbar verbunden werden sollen, so sind dafr eine 15polige SUB-D-Buchse auf der Soundchipplatinenseite und ein 15poliger SUB-D-Stecker auf der Mulpri-Platinenseite zu verwenden. Pinbelegung: (Pin1..8 wie Pin1..8 des EXT-Anschlusses auf Soundchipplatine) 1 VCC 2 GND 3 REXL 4 RD0L 5 RD1L 6 RD2L 7 RD3L 8 IOD7 9, 10, 11 optional VCC (+5V) fr externe Ger„te 12, 13, 14, 15 optional GND fr externe Ger„te Auf keinen Fall darf die Stromversorgung fr externe Ger„te wie EPROM/GAL-Programmierer irgendwo auf der Mulpri-Platine entnommen werden. Dafr sind die Zuleitungen nicht ausgelegt, so daž es zu St”rungen kommen kann. Wenn man seinem Rechnernetzteil die Versorgung dieser Ger„te zumuten kann, mssen dafr extra Kabel verlegt werden, am besten direkt vom GND- und VCC-Anschluž des Rechnernetzteils auf der Computerplatine. Dafr sind Pin9..11 und Pin12..15 reserviert. Nach Einschalten oder Reset --------------------------- ist Port1 eingeschaltet. Alle Ports sind auf Ausgabe, die /STROBE-Leitungen sind inaktiv (High). Wird kein Treiber geladen, kann man mit Port1 wie mit dem Originalport arbeiten. Falcon ------ Der Soundchip des Falcon heižt YM3439 und befindet sich in einem 44poligen Quadflatpack-Geh„use. Dafr pažt diese Soundchipplatine leider nicht. Ansonsten ist er aber wohl kompatibel, so daž ich bei entsprechendem Interesse wahrscheinlich eine Version fr den Falcon entwickeln werde. Aužerdem hat der Falcon einen Eingang (ACK) und einen Ausgang (SELECT) mehr am Druckerport als der ST. Diese kann man entweder ignorieren, fest mit einem Port verdrahten, ber noch zwei GALs in freier Verdrahtung fhren, oder: eine sp„tere kommerzielle Version der Hardware wird diese beiden Signale wahrscheinlich auch umschalten. Die Software wird dann entsprechend erg„nzt. Falls es jemanden interessiert: Die Druckerschnittstelle entspricht der des Atari-ST, bis auf zwei hinzugekommene Signale. Auf Pin17 liegt jetzt SELECT, das vom Soundchip PortA Bit3 gesteuert wird. Die Grundeinstellung nach Reset ist Low. Auf Pin10 ist der Eingang ACK, der zum MFP-Port Bit1 fhrt. Hier haben die Atari-Hardwaredesigner wieder gepennt (wie im 1040STE am Monodetect) und einen Pullup-Widerstand vergessen (Eingang ist freifliegend). šbrigens: Busy wird nur noch mit 3.3kOhm gegen +5V gezogen. Ist ein biáchen viel, meine ich. Scanner ------- Eine beliebte Anschlužm”glichkeit fr Flachbettscanner am ST-Druckerport ist das zus„tzliche Herausfhren eines Soundchip-PortA-Signal (bit7 war es wohl) auf Pin17 des Druckerports. Da die freie Version der Hardware das Umschalten dieses Signals noch nicht untersttzt, sollte man auf der Mulpri-Platine Pin17 des Anschlusses zum Originalport mit Pin17 eines Ports durch einen Draht verbinden. An diesen Port schliežt man dann seinen Scanner an. Einige Problemdrucker --------------------- Die Treiber der Mulpri-Karte k”nnen wesentlich mehr Strom liefern als der Originalport. So sollte auch der Anschluž alter Drucker funktionieren, die intern auf jedem Signal 330Ohm-Pullups haben. Die LS- und HCT-Versionen der Treiber k”nnen diesen Strom von 16mA normalerweise liefern, auch wenn der Hersteller dafr nicht garantiert. Wer ganz sicher gehen und solche Ger„te anschliežen will, sollte ACT(garantiert 24mA)- oder FCT(garantiert 48mA)-Treiber einsetzen (bringt aber mehr Hochfrquenzmll auf die Leitungen). Dann gibt es noch wenige Drucker, die grunds„tzlich nur funktionieren, wenn das auf Pin17 der 25poligen Druckerbuchse liegende (oder auch nicht) Signal SELECT auf Low-Pegel (also Masse) ist. In diesem Fall sollte man Pin17 mit Pin18 verbinden, entweder im Druckerkabel, oder auf dem fr Druckeranschluž vorgesehenen Port von Mulpri. Software ======== Zur Software geh”rt das Treiberprogramm 4P_AUTO.PRG, das Accessory 4P_ACC.ACC und das CPX-Modul 4P_CPX.CPX. Das CPX ist am 08.08.1993 noch nicht vorhanden. Die Anleitungen dazu befinden sich in den Files 4P_AUTO.TXT, 4P_ACC.TXT und 4P_CPX.TXT. CPX-Modul 4P_CPX.CPX -------------------- Das CPX kann alternativ zum Accessory benutzt werden. Es enth„lt die gleichen manuellen Umschaltfunktionen. Am 08.08.1993 existiert es noch nicht. Druckerspooler -------------- Im Hintergrund arbeitende Druckerspooler, besonders die von der BUSY-Interrupt getriebenen Sorte, sollte man tunlichst deaktivieren bzw. ganz rauswerfen, wenn man beabsichtigt, Mulpri mal umzuschalten. Druckerspoolerprogrammierer! Seht euch das File 4PRN_COO.TXT an und erg„nzt euren Spooler so, daž er mit Mulpri zusammenarbeitet. Kompatibilit„t ============== Mulpri kann als voll kompatibel bezeichnet werden. Ich m”chte aber auf alle Kleinigkeiten hinweisen, die mir als Inkompatibilit„t einfallen. Sie haben sich aber noch nicht negativ bemekrbar gemacht: - gr”žerer Treiberstrom der Ausg„nge - falls LS-Treiber, max. 0.4mA Eingangsstrom im L-Zustand, wenn D7..D0 auf Eingang geschaltet sind - BUSY-Signal und Ausgangssignale sind um etwa 25ns zus„tzlich verz”gert - /STROBE kann nicht mehr auf Eingang geschaltet werden (PortA des Soundchips hat m.W. noch keiner absichtlich auf Eingang geschaltet) - BUSY kann nicht mehr als Ausgang geschaltet werden (hat m.W. auch noch keiner absichtlich gemacht, wobei der MFP die 16mA fr den Pullup auch kaum aufbringen kann) Wenn ein Port im Zustand LOCKED1P ist, so darf man wie gewohnt am Soundchip fummeln. Ich bitte aber darum, im Interesse der Kompatibilit„t, die Ports nur mit der Funktion Pswitch des 4P_AUTO umzuschalten oder zur Ausgabe auf nichtaktive Ports die anderen Funktionen zu benutzen. Wer eine bestimmte nichtexistente Funktion braucht, sollte sich bei mir melden. Wenn ein Programm zur Steuerung einer bestimmten Hardware mehr als einen Port braucht und darauf schneller als ber Pswitch zugreifen m”chte, sollte sich der Programmierer ebenfalls bei mir melden. Dafr habe ich den Zustand LOCKED4P vorgesehen, zu dem es noch spezielle Routinen in 4P_AUTO geben wird. Wer in seinem Programm durch direkte Zugriffe auf den Soundchip die Mulpri-Hardware umschaltet, ohne sich vorher mit mir entsprechend verst„ndigt zu haben, hat mein ALLERGR™SSTES UNVERSTŽNDNIS. Versionen ========= Ich vergebe keine Versionsnummern, sondern berlasse die Unterscheidung dem in der Installationsmeldung ausgegebenen Datum bzw. dem Erstellungsdatum der Datei. Ich notiere das Datum in der deutschen Schreibweise, also Tag.Monat.Jahr. Neue Versionen sind zuerst in der Maus Berlin, Telefonnummer 030-727056 (oft besetzt, Gastdownload 10.00-19.00 und 23.00-03.00), zu finden und verbreiten sich schnell ber die M„use. Man sollte nach dem Filenamen "MULPRI*.*" suchen lassen. Reine Softwareupdates werden unter "4PSOFT*.*" erscheinen. Das Archiv wird MULPRIxx.LZH heižen, wobei xx fr die fortlaufende Ver”ffentlichungsnummer steht. 08.08.1993 erste ”ffentliche Version Harun Scheutzow, 26.06.1993 ...