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' 
verffentlicht wurde, am Atari ST zu betreiben. PINATUBO ntersttzt 
den im ST-Computer Hardware-Sonderheft verffentlichten Megabit-
Programmieradapter und ist als Alternative zur Original-Software 
gedacht, welche bei Maxon Computer GmbH zusammen mit der Leerplatine 
/ dem Fertiggert erhltlich 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. 
Auerdem 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

 - luft 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 
   mglich, s.u.).

 - luft auflsungsunabhngig 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, unverndert und 
komplett kopiert werden. Daher ist der Vertrieb ber 'PD-
Hndler/Versender' nicht gestattet!
Die Verbreitung ber Mailboxen ist gestattet, solange diese fr den Download 
keine zustzlichen Gebhren nehmen.

  Wer PINATUBO lnger als 3 Wochen benutzt, mu sich bei mir 
registrieren lassen, indem er/sie mir (mindestens) 20 DM zukommen 
lt (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 lnnen, 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
     Ahornstrae 36
     W-5100 Aachen

Hinweis:
--------
  Ich bernehme keine Garantie fr die Fehlerfreiheit des Programmes 
und kann fr Schden, die auf eine Fehlfunktion des Programmes 
zurckzufhren sind, nicht haftbar gemacht werden. Ich habe das 
Programm zwar ausgiebig getestet, kann allerdings Fehler nicht 
komplett ausschlieen. Wenn Fehler auftreten, freue ich mich ber 
eine Beschreibung, wie diese reproduziert werden knnen, 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 gewhlten Epromtyp und Programmieralgorithmus, die Puffergre 
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 angewhlte Datei wird in den Puffer geladen. Wenn die Datei krzer als 
  der Puffer ist, wird dieser nicht verkrzt.
Anhngen:
  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 whlen:
  der Epromtyp kann aus einer Liste gewhlt 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 mglich.
Algorithmus:
  hier kann der Programmieralgorithmus gewhlt 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 nchsten Byte weitergemacht. Bei er Anwendung 
    dieses Algorithmus' mte 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 bentigt 
    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 auerdem 
ber die Funktionstasten F1-F10 erreichbar.

Action:
=======
Auslesen:
  Das eingesetzte Eprom wird ausgelesen, der alte Pufferinhalt wird 
  berschrieben. Die Puffergre 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' gendert werden mssen und nicht umgekehrt.

Programmieren:
  Das Eprom wird mit dem aktuellen Pufferinhalt und dem eingestellten 
  Algorithmus programmiert. Dies ist nur mglich, 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 gewhlten Eprom-Typs 
  angezeigt, dies funktioniert mit allen Typen bis 32 Pins.


Die Datei PINATUBO.INF
======================
In der Datei PINATUBO.INF knnen 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 verhlt:
    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 ntig 
        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 Lnge 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 Lnge (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 gelscht werden). Ein Verify, ob der Inhalt $FF 
        stimmt, erfolgt aber immer.

Die Befehle knnen in beliebiger Reihenfolge in der Datei 
PINATUBO.INF stehen, die maxinale Anzahl zustzlich definierbarer 
Algorithmen ist auf 100 beschrnkt.

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 mchte, 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 beeintrchtigt den normalen Betrieb des 
Easyprommers ohne Megabit-Adapter nicht.
  Des weiteren scheint der Easy-Prommer deutlich kritischer in Bezug 
auf lange Anschlukabel 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 whrend 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 mglichst am oberen Ende des erlaubten Bereiches liegt, 
wenn man den Prommer aus dem Joystick-Port versorgt, liegen z.B. 
hufig 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 hlt - 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 knnen nach Rcksprache ergnzt 
werden, wenn man mir die entsprechenden Unterlagen (und evtl. ein Muster, 
wenn ich es testen soll ...) zukommen lt.

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-Oberflche, Brennen von High-/Low/...-bytes, 
                  neue Pufferverwaltung, 27020 getestet
           V1.2   Pufferverwaltung gendert, 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 
                    knnen unabhngig vom Typalle Algorithmen gewhlt 
                    werden.
                  Hilfe: Pinbelegung eingebaut
                  Datei PINATUBO.INF wird ausgewertet
                  Dateiname im Statusfenster wird wenn ntig gekrzt
                  ROMS knnen nicht mehr programmiert werden (es 
                    passierte zwar nichts, war aber unschn)
                  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 
                    ausgewhlten 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 anwhlbar
                  Support fr Vesuv (noch nicht 100% getestet)

meine Adresse:
--------------
Michael Schwingen
Ahornstrae 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
 
|-THiS FiLE PASSED THR0UGH --- /\ ---.------ /\ ---*--. FiDONET 2:200/600.34-|
|                     .  * .  // \        . // \  .      FUJiNeT 7:102/102   |
| I.C.S Swedish HQ           //   \   +    //   \      .  MeGANeT 66:666/1   |
|                       +   //  /  \      //     \   +                       |
|  Sync World HQ           /\\  \\ /  .  //   \\ /       16800 DUAL STANDARD |
|                      .  // \   \/     //    /\/   .                        |
|  +46-451-91002          \\ /   /      \\  \/    +         +46-451-91002    |
|                      *   \\   /  + .   \\  \ .    .  .                     |
|                        .  \\ /          \\ /                               |
|- SysOp: Troed ------------ \/ARCASTIC -- \/XISTENCE --- CoSysOp: Zaphod B -|
< Advertisment added using -=Bad Ad=- 1.91 by Troed/Sync. BBS: +46-451-91002 >
