Dokumentation zur Junior-Prommer Treibersoftware PINATUBO V1.3 ============================================================== Copyright (C) 1992 Michael Schwingen. Allgemeines ----------- PINATUBO ist ein Treiberprogramm, welches dazu dient, den Junior- Prommer, welcher als Bauanleitung in der Zeitschrift 'ST-Computer' ver”ffentlicht wurde, am Atari ST zu betreiben. PINATUBO ntersttzt den im ST-Computer Hardware-Sonderheft ver”ffentlichten Megabit- Programmieradapter und ist als Alternative zur Original-Software gedacht, welche bei Maxon Computer GmbH zusammen mit der Leerplatine / dem Fertigger„t erh„ltlich ist. PINATUBO wurde neu erstellt und ist kein Update/Upgrade der Max*n-Software! Ab Version 1.4 untersttzt Pinatubo auch den Easy-Prommer, dazu ist aber unbedingt der Abschnitt 'Hardware' weiter unten zu beachten. Aužerdem muž in der .INF-Datei die Easyprommer-Ansteuerung aktiviert werden (s.u.), sonst stimmen die Programmierspannungen nicht ! PINATUBO hat folgende Vorteile: - Untersttzung des Megabit-Programmieradapters fr 27(C)010 bis 27(C)080- Eproms eingebaut, auch mit Easy-Prommer! - Untersttzung fr 87(C)51-Programmieradapter - l„uft auch auf Mega STE sowie auf STs mit Beschleunigerkarten sowie TT. Dabei wird - im Gegensatz zur Max*n-Software - das Programmiertiming per Timer korrekt eingehalten, die Eproms werden also korrekt und nach Herstellerspezifikation gebrannt (soweit mit der Junior-Prommer-Hardware m”glich, s.u.). - l„uft aufl”sungsunabh„ngig auf Grafikkarten. Nutzungsbedingungen ------------------- PINATUBO ist Shareware, d.h. das Copyright bleibt bei mir. Ich gestatte jedoch die freie Weitergabe von PINATUBO unter der Voraussetzung, daž keinerlei Entgelt fr die Weitergabe verlangt wird und daž alle Dateien, insbesondere dieser Text, unver„ndert und komplett kopiert werden. Daher ist der Vertrieb ber 'PD- H„ndler/Versender' nicht gestattet! Die Verbreitung ber Mailboxen ist gestattet, solange diese fr den Download keine zus„tzlichen Gebhren nehmen. Wer PINATUBO l„nger als 3 Wochen benutzt, muž sich bei mir registrieren lassen, indem er/sie mir (mindestens) 20 DM zukommen l„žt (fr Easyprommer 30DM), ich denke, daž dies angesichts des Entwicklungsaufwandes ein fairer Preis ist (alleine das Update bei Max*n, um Megabit-Eproms brennen zu l”nnen, kostet mehr als das Doppelte!) Die jeweils aktuelle Version des Programms bekommt man: - in der Maus AC3 - per 'anonymous FTP' auf ftp.informatik.rwth-aachen.de - gegen Einsendung einer formatierten Diskette mit freigemachtem Rck- umschlag bei mir: Michael Schwingen Ahornstraže 36 W-5100 Aachen Hinweis: -------- Ich bernehme keine Garantie fr die Fehlerfreiheit des Programmes und kann fr Sch„den, die auf eine Fehlfunktion des Programmes zurckzufhren sind, nicht haftbar gemacht werden. Ich habe das Programm zwar ausgiebig getestet, kann allerdings Fehler nicht komplett ausschliežen. Wenn Fehler auftreten, freue ich mich ber eine Beschreibung, wie diese reproduziert werden k”nnen, unter Angabe der Versionsnummer! Das Programm wurde auf einem 1040ST mit 16MHz-Prozessor getestet. Wenn auf bestimmten anderen Rechnern Probleme auftreten, bitte ich um Hinweise! Hardware-Voraussetzungen: ------------------------- Atari ST/Mega ST/STE/TT, genug RAM, damit Platz fr den kompletten Eprominhalt ist (512K sollten bis 27C020 reichen) AUFRUF ------ Das Programm wird durch Starten von PINATUBO.PRG aufgerufen, dabei muž die Datei PINATUBO.RSC im aktuellen Verzeichnis sein. Nach dem Start erscheint das Info-Fenster, welches Auskunft ber den gew„hlten Epromtyp und Programmieralgorithmus, die Puffergr”že etc. gibt. In der Titelzeile des Fensters wird der Name der zuletzt geladenen Datei angezeigt. Wenn im aktuellen Verzeichnis eine Datei PINATUBO.INF gefunden wird, so wird diese geladen (siehe unten). Das Men -------- Das Men bietet folgende Optionen: Datei ===== Laden: die angew„hlte Datei wird in den Puffer geladen. Wenn die Datei krzer als der Puffer ist, wird dieser nicht verkrzt. Anh„ngen: die Datei wird hinter die beim letzten Ladevorgang erreichte Adresse geladen. Vergleichen: die Datei wird mit dem Pufferinhalt verglichen. Speichern: der komplette Puffer wird gespeichert. Bei allen Dateioperationen wird die eingestellte Splitting-Option beachtet und nur der entsprechende Teil des Puffers bearbeitet. Optionen: ========= Typ w„hlen: der Epromtyp kann aus einer Liste gew„hlt werden. Splitten Even/ODD ...: hier kann man einstellen, welche Bereiche des Puffers bei allen Operationen benutzt werden. Es ist 16, 32 und 64-Bit-Splitting m”glich. Algorithmus: hier kann der Programmieralgorithmus gew„hlt werden. Es stehen folgende Algorithmen zur Wahl: "Standard 50ms" - der einfache, alte Standard-Algorithmus. Er verwendet einen Programmierimpuls von 50ms Dauer pro Byte, es werden maximal 2 Versuche gemacht. "INTeLLIGENT(TM) 1ms/3*" - schnellerer Algorithmus, ab 2764 anwendbar. Dieser Algorithmus brennt eine Speicherzelle mit maximal 25 Impulsen von je 1ms Dauer, bis der Inhalt stimmt. Dann wird mit der 3-fachen Zeit nachgebrannt. "INTeLLIGENT(TM) 1ms/4*" - eine modifizierte Version des Original- INTeLLIGENT- Algorithmus', bei der mit der 4-fachen Zeit nachgebrannt wird. Dies ist u.U. bei „lteren, kleinen EPROMs sinnvoll. "QUICK-PULSE(TM) 100us/0*" - der neueste und schnellste Algorithmus. Er brennt jedes Byte mit max. 25 100us langen Impulsen, bis der Inhalt stimmt - dann wird beim n„chsten Byte weitergemacht. Bei er Anwendung dieses Algorithmus' mžte eigentlich die Betriebsspannung des EPROMs auf 6V/6.25V und die Programmierspannung auf 12.75V/13V angehoben werden, dies untersttzt die Hardware allerdings nicht. "mod. QUICK-PULSE(TM) 100us/1*" - eine modifizierte Version, bei der jedes Byte mit der selben Zeit nachprogrammiert wurde, die ben”tigt wurde, bis der Inhalt das erste Mal stimmte. Dieses System sollte die Nachteile der Junior-Prommer-Hardware (s.o.) ausgleichen. "mod. Quick-Pulse 87C51" - eine modifizierte Version, die von Intel fr die Programmierung des 87C51 angegeben wird, dabei erfolgt eine šberprfung, ob der Inhalt der aktuellen Speicherzelle stimmt, erst nach 25 Programmierimpulsen. Die Anwendung ist nur bei 87C51 sinnvoll. Weitere Programmieralgorithmen kann man ber die Datei PINATUBO.INF selber definieren (s.u.). Die ersten 10 Algorithmen sind aužerdem ber die Funktionstasten F1-F10 erreichbar. Action: ======= Auslesen: Das eingesetzte Eprom wird ausgelesen, der alte Pufferinhalt wird berschrieben. Die Puffergr”že entspricht hinterher genau der des Eproms, bzw. bei aktiviertem Splitting einem entsprechenden Vielfachen. Vergleichen: Das Eprom wird mit dem Pufferinhalt verglichen. Leertest: Es wird geprft, ob alle Bytes des Eproms den Inhalt $FF haben. Bittest: Es wird berprft, ob der aktuelle Pufferinhalt in das Eprom programmiert werden kann. Dies ist dann der Fall, wenn bei der Programmierung nur Bits auf '0' ge„ndert werden mssen und nicht umgekehrt. Programmieren: Das Eprom wird mit dem aktuellen Pufferinhalt und dem eingestellten Algorithmus programmiert. Dies ist nur m”glich, wenn der Puffer nicht leer ist. Nach der Programmierung wird automatisch ein Vergleich durchgefhrt. Der Programmiervorgang kann durch Drcken von CTRL-ALT-SHIFT(links) abgebrochen werden, es kann allerdings etwas dauern, bis die Tastenkombination erkannt wird. Hilfe: ====== Pinbelegung: Es wird eine Pinbelegung des gerade gew„hlten Eprom-Typs angezeigt, dies funktioniert mit allen Typen bis 32 Pins. Die Datei PINATUBO.INF ====================== In der Datei PINATUBO.INF k”nnen diverse Einstellungen gemacht werden. Die Datei kann mit einem beliebigen Texteditor erstellt werden. Ein '#' am Zeilenanfang kennzeichnet einen Kommentar, unbekannte Befehle werden ignoriert. Es sind folgende Befehle erlaubt: Q n Bestimmt, wie Pinatubo sich beim Beenden des Programms verh„lt: n = 0: Alertbox mit Sicherheitsabfrage, Default ist Abbruch n = 1: Alertbox mit Sicherheitsabfrage, Default ist OK n = 2: Programm beenden ohne Rckfrage P Beim Ende des Programmierens wird ein 'Ping' erzeugt H n Auswahl der Prommer-Hardware: n = 0 (default): Junior-Prommer n = 1 Easy-Prommer n = 2 Vesuv (noch nicht getestet!) A "a" b c d e f g Neuen Programmieralgorithmus definieren. Es mssen folgende Parameter angegeben werden: a = Name b = Zeit der ersten Programmierimpulse, bis die zurckgelesenen Daten stimmen, in 100us c = Multiplikationsfaktor fr Nachbrenn-Zeit. Mit diesem Wert wird die Anzahl der Impulse (b) multipliziert, die n”tig waren, bis das erste Mal die richtigen Daten zurckgelesen wurden. d = Feste Nachbrenn-Zeit, in 100 us. Dieser Wert wird zu dem Ergebnis aus (c) addiert, dann werden die Daten mit einem Impuls der so berechneten L„nge nachgebrannt. e = Maximale Anzahl Versuche bei (a), bis die Daten stimmen mssen, sonst wird das Programmieren abgebrochen f = Verify-Flag. Wenn dieser Wert ungleich 0 ist, wird erst mit (e) Impulsen der L„nge (a) gebrannt und dann erst berprft, ob die Daten stimmen. Dies ist eigentlich nur fr den 87C51- Programmieralgorithmus von Bedeutung. g = $FF-Flag. Wenn dieser Wert ungleich 0 ist, werden auch $FF- Bytes gebrannt (dies ist fr SRAMs etc. gedacht, die nicht mit UV-Licht gel”scht werden). Ein Verify, ob der Inhalt $FF stimmt, erfolgt aber immer. Die Befehle k”nnen in beliebiger Reihenfolge in der Datei PINATUBO.INF stehen, die maxinale Anzahl zus„tzlich definierbarer Algorithmen ist auf 100 beschr„nkt. Hinweise zur Hardware ===================== Beim Megabit-Adaptermodul ist es sinnvoll, an Stelle der angegebenen 1N4148 besser Schottky-Dioden zu verwenden, z.B. BAT43. Fr den Junior-Prommer gilt das gleiche (D1-D3). Wer den Megabit-Adapter am Easy-Prommer verwenden m”chte, muž am Easyprommer folgende Modifikation vornehmen: Links vom Textool-Sockel befinden sich nebeneinander eine Diode 1N4148 sowie ein 22K-Widerstand. Die rechten Anschlsse der beiden Bauteile sind mit dem Textool-Sockel, Pin 24 verbunden, die Diode geht an Pin 14 des 4094 daneben, der Widerstand nach Masse. Die Diode wird gegen einen Schottky-Typ (z.B. BAT43) ausgetauscht, der Widerstand wird auf 10k verkleinert. Diese Modifikation beeintr„chtigt den normalen Betrieb des Easyprommers ohne Megabit-Adapter nicht. Des weiteren scheint der Easy-Prommer deutlich kritischer in Bezug auf lange Anschlužkabel zu sein als der Junior. Bei mir gingen 80cm, allerdings nur, wenn der Druckerportumschalter nicht dazwischen hing. Bei allen Programmieralgorithmen schneller als INTeLLIGENT wird von den Herstellern eigentlich gefordert, daž die Versorgungsspannung des Eproms w„hrend des Programmierens auf 6V oder mehr (je nach Hersteller) angehoben wird, dies wird aber von der Junior-Prommer- Hardware nicht untersttzt. Daher sollte man darauf achten, daž die Versorgungsspannung des Eprommers m”glichst am oberen Ende des erlaubten Bereiches liegt, wenn man den Prommer aus dem Joystick-Port versorgt, liegen z.B. h„ufig nur noch 4.5 - 4.8V am Eprom. Ich versorge meinen Eprommer aus einem Stabilisator, der mit einem 7805 mit einer Diode in der Masseleitung die Spannung auf etwas unter 6V h„lt - das ist zwar knapp ber dem erlaubten, funktioniert aber prima. Wem dies zu viel ist, der sollte zumindest 5.25V einstellen, das ist noch erlaubt. Weiterentwicklung ------------------ Bisher nicht untersttzte Speicher-Typen k”nnen nach Rcksprache erg„nzt werden, wenn man mir die entsprechenden Unterlagen (und evtl. ein Muster, wenn ich es testen soll ...) zukommen l„žt. Ich brauche noch genaue Infos, ob die Pinbelegung bei folgenden Typen korrekt ist: - 2716 - ROM 2K - ROM 4K Wer hierzu genauere Infos hat als ich, melde sich bitte! Žnderungen: ----------- 28.9.1992 V1.0 scheint zu laufen :-) V1.1 GEM-Oberfl„che, Brennen von High-/Low/...-bytes, neue Pufferverwaltung, 27020 getestet V1.2 Pufferverwaltung ge„ndert, Splitten funktioniert jetzt wirklich. 22.11.1992 V1.3 kleinere Žnderungen, ”ffentliche Version 7.12.1992 V1.3.1 EO und OE waren vertauscht V1.3.x Fileselect: besseres Verhalten bei 'Abbruch' Algorithmen-Auswahl ber Dialogbox statt Men, es k”nnen unabh„ngig vom Typalle Algorithmen gew„hlt werden. Hilfe: Pinbelegung eingebaut Datei PINATUBO.INF wird ausgewertet Dateiname im Statusfenster wird wenn n”tig gekrzt ROMS k”nnen nicht mehr programmiert werden (es passierte zwar nichts, war aber unsch”n) Initialisierung der Hardware erweitert (fr Martin :-)) $FF-Bytes werden wirklich nicht mehr gebrannt, wenn es nicht gewnscht ist (irgendwann seit 1.3.x falsch) Timing fr Megabit-Adapter etwas unkritischer 19.1.1992 V1.3.7 Easyprommer geht CRC eingebaut Summe und CRC werden bei Splitting nur ber die ausgew„hlten Bytes gebildet Bei Dateivergleich wird die Adresse jetzt korrekt in Hex angegeben Neues Programm: ROMMIX dint zum Zusammenbasteln und Auseinanderfummeln von Eproms, die Daten aus mehr als einer Datei enthalten. 26.1.1992 V1.4 diverse Kleinigkeiten Warnungen beim Laden / Vergleichen, wenn Datei zu lang / zu kurz ist 8.2.1992 V1.4.1 Pinatubo strzt nicht mehr ab, wenn die .INF-Datei nicht gefunden wird :-) 16.2.1992 V1.4.2 bei der Pinbelegung sind die Pins nicht mehr anw„hlbar Support fr Vesuv (noch nicht 100% getestet) meine Adresse: -------------- Michael Schwingen Ahornstraže 36 W-5100 Aachen eMail: MausNet: Michael Schwingen @ AC3 UUCP: rincewind@discworld.oche.sub.org (bitte keine langen Mails!) Internet: michaels@pool.informatik.rwth-aachen.de Bankverbindung: Raiffeisenbank Erp-Ahrem eG BLZ 370 692 50 Kto. 700 195