Junior Prommer - für Engagierte mit kleinem Geldbeutel

BEI DIESEM HARDWAREPROJEKT HANDELT ES SICH KEINESWEGS UM EINEN WEITEREN EPROMMER DER ABSOLUTEN BILLIGKLASSE ODER DER NOBELKLASSE, SONDERN VIELMEHR UM EIN EXTREM GÜNSTIGES ABER AUCH SEHR LEISTUNGSFÄHIGES GERÄT. SIE HABEN HIER DIE MÖGLICHKEIT DIE GENAUE FUNKTIONSWEISE DES JUNIOR PROMMERS UND DAMIT DIE FUNKTIONSWEISE VON EPROMMERN SCHLECHTHIN KENNENZULERNEN.

Der Junior Prommer ist weder der erste seiner Art noch wird er der letzte sein, doch ist er wohl für viele, die eine Ausgabe von über 200 DM scheuen, nur um mal so’n Käfer zu brennen, eine ernsthafte Alternative. Mit einem Materialaufwand von etwa 70 DM und ein wenig Geduld können auch Sie ein Gerät besitzen, welches folgendes leistet:

  1. Programmiert alle EPROMs vom Typ 2716 bis zum Typ 27011 und ist durch flexible Auslegung auch für zukünftige, 28-polige Speicherbausteine geeignet.
  2. Vollkommen softwaregesteuert, wodurch ernsthafte Fehlbedienungen weitgehend ausgeschlossen werden.
  3. Betrieb mit einer einzigen Spannung von 5V bei einem maximalen Strombedarf von 400 mA.
  4. Kann an jeder normgerechten Centronics-Schnittstelle (z.B. auch an der des AMIGA oder des IBM-PC) betrieben werden.
  5. Bietet die Möglichkeit festzustellen, ob ein Speicherbaustein eingesetzt ist.
  6. Bearbeitet außerdem noch ROMs, EEPROMs und pinkompatible Speicherbausteine.

Was sind eigentlich EPROMs ?

Nüchtern gesehen sind es schlicht Speicherbausteine, die zu jeder ihnen angelegten Eingangsadresse ein passendes und programmierbares Ausgangsdatenwort parat haben. Der Wertebereich der Eingangsadressen zusammen mit dem der Ausgangsdatenwörter ist ein Maß für die Speicherkapazität. Heute gebräuchliche EPROMs sind die der 27XXX-Serie (Tabelle 1). XXX steht fast immer für die Speicherkapazität in Kilobit (Bit/1024). Oft eingesetzt als Programmspeicher in Microcomputern, hat das EPROM einen Nachteil und einen entscheidenden Vorteil: Programmiert werden muß ein EPROM mit einer recht aufwendigen und zeitraubenden Prozedur, wozu es natürlich EPROMMER gibt. Jedoch bleiben die einmal programmierten Daten trotz fehlender Versorgungsspannung bis zum Löschen durch starkes ultraviolettes Licht erhalten.

Jetzt ist auch der Name verständlicher: EPROM ist eine Abkürzung für Erasable-Programmable-Read-Only-Memory. Zu Deutsch: Löschbarer und programmierbarer Festwertspeicher.

Prototyp des Junior Prommer

Da ein EPROM mit UV-Licht gelöscht werden soll, ist es meist mit einem Quarzglasfenster ausgestattet, durch welches man den Halbleiterkristall mit UV-Licht bestrahlen kann, um alle Speicherzellen in einen definierten (gelöschten) Ausgangszustand zu bringen. Daher sollte es selbstverständlich sein, daß ein EPROM durch das Aufkleben eines UV-lichtdichten Aufklebers vor ungewolltem Löschen durch den in normalem Umgebungslicht enthaltenen UV-Anteil bewahrt wird. Intern werden die digitalen Informationen durch das Vorhandensein oder Nichtvorhandensein einer Ladung gespeichert. Das Aufbringen dieser Ladung geschieht auf elektrischem Wege, eben durch das Programmieren mit dem Junior Prommer, das Löschen der Ladung jedoch nur über UV-Licht.

Heute sind bereits EPROMs mit Kapazitäten bis zu einem Megabit (z.B. 27011) gängig. Da fast alle EPROMs eine Datenbreite von 8-Bit haben, muß man nur die Zahl hinter der 27 durch 8 teilen, um die Kapazität in Kilobyte zu erhalten. Eine Ausnahme bilden hier 27011 und 27513, mit denen es jedoch etwas Besonderes auf sich hat. Beide sind sogenannte ‘gebankte’ EPROMs, was heißt, daß sie mangels Adreßleitungen in mehrere Abschnitte (Banks) aufgeteilt wurden, die dann mit einer speziellen Prozedur ausgewählt werden. Daher hat man zwar nicht mehr an Kapazität parallel verfügbar, jedoch kann man aus einem großen Bereich wählen. Der 27513 ist organisiert zu 4 Bereichen je 16Kb. Der 27011 ist organisiert zu 8 Bereichen je 16Kb. Alle zukünftigen EPROMs höherer Kapazität im 28-poligen Gehäuse müssen zwangsläufig auf demselben Ansteuerprinzip beruhen.

Ansteuerung der EPROMs

Das Lesen der Daten aus einem EPROM ist trivial, und außerdem gleicht es hier fast allen anderen Speichern, die der Jedec-Norm folgen, wie z.B. ROMs, statische RAMs etc. Sobald stabile Eingangssignale an den Adreßleitungen anliegen und sowohl /CE / = Negation) als auch /OE aktiv sind, liegt auch nach einer gewissen Verzögerung, genannt Zugriffszeit, das über die Adresse gewählte 8-Bit Ausgangsdatenwort an. Die beiden Steuersignale /CE und /OE haben die Aufgabe, das EPROM zu selektieren und dessen Ausgangstreiber zu kontrollieren. /CE = 1 schaltet das ganze EPROM ab, unabhängig vom /OE Signal. /OE kontrolliert im Falle eines eingeschalteten EPROMs die Ausgangstreiber (low-Aktiv). Die restlichen Steuerleitungen haben nur in Verbindung mit der Programmierung eine Bedeutung.

Programmierung von EPROMs

Das Programmieren läuft generell bei allen EPROMs ähnlich ab. Nachdem Adressen, Daten und eventuell auch die Programmierspannung stabil anliegen, wird für eine festgelegte Zeit der Programmierimpuls gegeben. Danach legt man neue Daten und Adressen an und wiederholt den Programmierimpuls, bis alle Adressen programmiert sind. Wie das genau vor sich geht, hängt vom Typ und manchmal sogar vom Hersteller ab. Der Programmieralgorithmus bestimmt, welcher Weg eingeschlagen wird, um die Daten dauerhaft zu programmieren. Hier gibt es grob zusammengefaßt drei Möglichkeiten:

  1. Standardalgorithmus: das Programmieren mit einer konstanten Zeit (50ms), nach der angenommen wird, daß die Daten sicher gespeichert sind (nicht sehr effektiv).
  2. Bei ‘intelligenten Algorithmen’ arbeitet man mit wesentlich kürzeren Zeiten (ImS), nach denen jeweils geprüft wird, ob die Daten bereits akzeptiert wurden. Danach wird nochmal mit einem vielfachen (3 bis 4) der davor benötigten Zeit darüberprogrammiert, um eine sichere Programmierung aller Zellen zu gewährleisten. Die erreichbaren Zeiten liegen etwa um ein zehnfaches unter denen der Methode 1, jedoch wird sie erst ab dem Typ 2764 unterstützt.
  3. Beim sogenannten Quickpulsealgorithmus ist der Vorgang fast identisch mit dem von Punkt 2, jedoch arbeitet man mit noch kürzeren Programmierimpulsen (0.1ms) und übergeht das Nachprogrammieren. Dies ist zweifelsohne die schnellste Methode, doch wird sie nur ab dem Typ 27512 unter speziellen Bedingungen empfohlen.

Tabelle 1: Alle EPROM-Typen, die der Miniprommer bearbeiten kann, sind im Vergleich dargestellt. Einen Sonderstatus besitzen die Pins 1, 22, 23, 26 und 27, welche je nach Typ eine andere Funktion erfüllen und deshalb mit einem höheren Grad an Flexibilität ausgestattet sind.

Der Standardalgorithmus kann generell auf jedes EPROM angewendet werden. In Tabelle 1 und 2 kann man einen Überblick über alle Speichertypen gewinnen. Weiterhin kann man eine EPROM-Speicherzelle nur elektrisch programmieren, d. h. man kann ein Bit elektrisch auf 0 bringen und nur durch UV-Licht wieder in den ‘gelöschten’ 1-Zustand versetzen.

Um die Implementierung neuer EPROMs in bestehende Systeme zu vereinfachen, geben Hersteller in ihren Datenblättern meistens eine Tabelle an, aus der entnommen werden kann, welche Signale man für jeden spezifischen Betriebszustand an die Steuerleitungen des EPROMs legen muß. Falls Sie daran interessiert sind, sollten Sie auf jeden Fall die Datenblätter der Hersteller zu Rate ziehen. Deshalb soll die Programmierung hier nur an dem konkreten Beispiel des Typs 2764 erläutert werden.

Beispiel Typ 2764

Zuerst muß das EPROM gelöscht sein, d.h. alle Bits haben den 1-Zustand, bevor man sie eventuell auf 0 programmieren kann. Nachdem die Versorgungsspannung eingeschwungen ist und alle Steuersignale inaktiviert sind, wird die Programmierspannung von hier 21V an den Pin 1 (Vpp) gelegt, um das EPROM in den Programmiermodus zu bringen. Jetzt wird der Pin /CE auf 0 gesetzt, um das EPROM zu aktivieren. Danach werden die erste zu programmierende Adresse und das Datenwort angelegt, um danach den Pin /PGM für eine Millisekunde auf 0 zu pulsen. Um die Richtigkeit der programmierten Daten zu prüfen, werden die Ausgangstreiber über /OE aktiviert und mit dem programmierten Datenwort verglichen. War dieser Schritt nicht erfolgreich, so kann er bis zu 15 mal wiederholt werden, bevor ein Fehler gemeldet wird. Aufgrund der verlangten Datensicherheit wird noch mit der vierfachen der bisher benötigten Zeit nachprogrammiert, bevor zur nächsten Speicherstelle übergegangen wird. Zuletzt überprüft man das vollständige EPROM noch einmal auf die Richtigkeit der Daten, bevor man es über /CE inaktiviert und die Programmierspannung abschaltet.

Der Junior Prommer

Der Junior Prommer ist konzipiert für den Betrieb an jeder Standard-Centronics Schnittstelle. Er stellt alle nötigen Programmierspannungen und Digitalleitungen zur Verfügung. Um die zehn Leitungen dieser Schnittstelle auf die nötige Anzahl zu erweitern, wird ein serielles Übertragungsprinzip angewandt. Ausgangsleitungen (insgesamt 24) werden mit einem Baustein 4094 realisiert, bei dem es sich um ein 8-Bit-”seriell ein / parallel aus”-synchrones Schieberegister mit nachgeschaltetem Register und schaltbaren Ausgängen handelt. Insgesamt drei dieser Schieberegister sind vorhanden, wobei alle Leitungen bis auf den TAKT parallel angesteuert werden, damit ein individueller Betrieb der Register möglich wird. Die Ausgänge von IC2 sind steuerbar, um einen bidirektionalen Datentransfer mit dem EPROM abwickeln zu können. Eingangsleitungen (insgesamt 8) werden mit dem Baustein IC1 / 4021 bedient, bei dem es sich um ein “parallel ein / seriell aus”-Schieberegister handelt, das wiederum mit separatem Takt betrieben wird. Um die Schnittstelle nicht modifizieren zu müssen, werden die seriellen Daten von IC1 über den Pin BUSY in den Rechner geleitet. Zusätzlich existiert noch ein Zähler IC6 / 4040, der die unteren zehn Adreßleitungen bedient und über die Schnittstelle inkrementiert sowie gelöscht werden kann.

Prototyp des Junior Prommer von innen

Die Programmierspannungen werden an Bord mit IC7 /TL497,einem frequenzgesteuerten Sperrwandler, erzeugt und über IC5 eingestellt auf 5V,12.5V,21V bzw. 25V. Der Sperrwandler ist in der Lage, auch bei höchster Programmierspannung den nötigen Strom von etwa 30mA zu liefern. Mit T4 bis T6 kann diese Programmierspannung dann wahlweise auf die Pins 22, 23 und 1 geschaltet werden. Gleichzeitig können diese Pins auch über digitale Ausgänge der Schieberegister kontrolliert werden. T2 schaltet bei 24-poligen Speichern die Versorgungsspannung. Die Stromaufnahme des Junior Prommers ist ganz von den verwendeten EPROMs abhängig und liegt in der Regel unter 300 mA. Die Versorgung des Junior Prommers kann der Rechner übernehmen, ist jedoch auch mit einem stabilisierten 5V-Netzteil über ST2 möglich.

Die Bedeutung der Steckbrücken

In J1 darf nur ein Adressierstecker gesteckt werden. Mit ihm wird gewählt, ob der Junior Prommer am AMIGA oder ST betrieben wird. J2 ermöglicht bei einem Betrieb am Amiga die Stromversorgung über diesen.

Die Programmierung der Hardware

Bis auf die Pins 22, 23 und 1, auf die wahlweise eine Programmierspannung von 5V, 12.5V, 21V oder 25V geschaltet werden kann, werden alle Pins digital angesteuert. Eine Sonderstellung hat Pin 26, der zusätzlich den nötigen Strom liefert, um 24-polige EPROMs zu versorgen.

Wie Sie schon wissen, wird der Datentransport zwischen Rechner und Junior Prommer seriell über zehn Leitungen einer Centronics-Schnittstelle abgewickelt. In der Hauptsache besteht der Junior Prommer daher aus Schieberegistern und einem Zähler:

  1. Ausgangsschieberegister SRA (IC5): Es steuert die Programmierspannung und deren Verteilung.
  2. Ausgangsschieberegister SRB (IC4): Dessen Aufgabe ist es, die Steuerleitungen und oberen Adressen des EPROMs zu kontrollieren.
  3. Ausgangsschieberegister SRC (IC2): In das werden die ins EPROM zu programmierenden Daten geschoben.
  4. Eingangsschieberegister SRD (IC 1): Aus ihm werden die Zustände der Datenleitungen des EPROMs geschoben.
  5. Adreßzähler AZ (IC6): Er bedient die unteren Adressleitungen. Die benutzten Leitungen und deren Bedeutung sollen jetzt aufgezählt werden:

/STROBE, Pin 1:
Normalerweise wird mit diesem Signal dem Drucker die Gültigkeit der Daten angezeigt. Ähnlich auch hier: Wird STROBE auf 1 gesetzt, werden alle Register im Junior Prommer geladen. Der Ruhezustand dieser Leitung ist jedoch nicht 1, sondern 0. Das heißt, der Inhalt in den Schieberegistern der 4094 wird zu den Ausgängen übertragen, und in IC1 wird das Datenwort des EPROMs parallel geladen, um danach eventuell herausgeschoben zu werden.

DO, Pin 2:
Dieses Signal kontrolliert die Ausgangstreiber von SRC und damit die Datenrichtung zu oder von dem EPROM. Ist DO = 1, so gibt SRC seine Daten an die Datenleitungen des EPROMs. Falls DO = 0 ist, können die Datenleitungen des EPROMs über SRD gelesen werden. Es ist darauf zu achten, daß kein gleichzeitiges Aktivieren der Ausgangstreiber des EPROMs und der des SRC auftreten kann.

D1, Pin 3:
Dies ist die Taktleitung von IC5 (SRA), der die Programmierspannungen und deren Verteilung steuert. Bei der ansteigenden Flanke von DO wird das Bit an D7 in das Schieberegister des SRA geschoben.

D2, Pin 4:
Dies ist ebenfalls eine Taktleitung, jedoch für IC4(SRB), der die Steuersignale des EPROMs kontrolliert.

Abbildung 2: Das Schaltbild des Junior Prommers. J1 und J2 dienen einer Anpassung speziell an AMIGA und andere Rechner.

Miniprommer Stückliste

Halbleiter

Widerstände

Kondensatoren

Sonstiges

Verbindungskabel:

1 25 poliger Sub-D Quetschstecker
1 26 poliger, doppelreihiger Pfostenverbinder. Quetschausführung max. 50cm 26 adriges Flachbandkabel
1 Gehäuse 123L79B27T

Junior Prommer

D3, Pin 5:
Die Taktleitung für IC2(SRC), der die Datenleitungen des EPROMs kontrolliert.

D4, Pin 6:
Die Taktleitung für den Adreßzähler (AZ). Die abfallende Flanke von D4 erhöht den AZ um eins. Der AZ bedient lediglich die Adressen AO bis A9, um durch die Softwarekontrolle der übrigen Adressen eine höhere Flexibilität zu erreichen.

D5, Pin 7:
Die Taktleitung für IC1, über den die Datenleitungen des EPROMs gelesen werden können. Die jeweils ansteigende Flanke des Taktes bringt ein weiteres, invertiertes Bit aus dem Schieberegister IC1 an den Pin BUSY.

D6, Pin 8:
Rücksetzleitung des Adreßzählers IC6. Solange diese Leitung 1 ist, wird der Adreßzähler rückgesetzt.

D7, Pin 9:
Die gemeinsame Datenleitung aller Ausgangsschieberegister. Über diese Leitung wird der serielle Datenstrom zu den jeweils getakteten Ausgangsschieberegis-tem übertragen.

BUSY, Pin 11:
Über diesen Pin können durch IC1 die Datenleitungen des EPROMs seriell gelesen werden.

In der Praxis

Die Ansteuerung der Ausgangsschieberegister sollte mit einem Maschinenprogramm erfolgen, das den Centronics-Port direkt bedient. Das Schieben eines Datenwortes in eines der Ausgangsschieberegister folgt diesem Ablauf:

  1. Das höchstwertige Bit des Datenbytes auf D7 legen.
  2. Geben des Taktimpulses auf die jeweilige Taktleitung.
  3. Einmaliges Linksschieben des Datenbytes
  4. Wiederholen ab 1, bis das Byte vollständig herausgeschoben wurde.
  5. Geben des positiven STROBE- Impulses, damit die Daten des jeweiligen Registers zu den Ausgängen transferiert werden.

Die Ansteuerung des Eingangsschieberegisters SRD differiert leicht:

  1. Zuerst muß SRC über DO inaktiviert werden und das EPROM aktiviert werden.
  2. Geben des positiven STROBE-Impulses, damit die Zustände der Datenleitungen-in SRD übertragen werden.
  3. Setzen des invertierten BUSY-Signals in das niederwertigste Bit des Datenbytes.
  4. Linksschieben des Datenbytes.
  5. Wiederholen ab 2, bis das vollständige Byte übertragen ist.

Die Bedeutung der Schieberegisterbits

SRA:
Bit 0 (Q1):
Steuert den Pin 1 des EPROMs digital an. Falls an Pin 1 schon eine Programmierspannung geschaltet ist, bleibt diese Leitung irrelevant. Zu beachten ist, daß, bedingt durch C5, etwa 6 Millisekunden vergehen, bis der eindeutige Pegel am Sockel anliegt.

Bit 1 (Q2):
Hat zwei Funktionen. Zum einen steuert diese Leitung schlicht die Leuchtdiode D4 (1 = ein) und zum anderen kann man über sie die Treiberfähigkeit des EPROMs testen. Deswegen ist die Datenleitung D7 des EPROMs nicht mit einem ‘Pull-up’ verbunden, sondern über einen hochohmigen Wiederstand mit dieser Leitung.

Das hat einen ganz bestimmten Hintergrund: ist ein EPROM eingesetzt und nicht in seiner Treiberfähigkeit gestört, ist der Zustand dieser Leitung nicht entscheidend für die gelesenen Daten. Ist jedoch kein EPROM eingesetzt oder dessen Treiberfähigkeit gestört, folgt das Bit 7 aus den gelesenen Daten dieser Leitung, woran festgestellt werden kann, ob kein EPROM eingesetzt ist oder ob das EPROM einen Defekt hat. Während des normalen EPROMMerbetriebs sollte diese Leitung 1 sein.

Bit 2 (Q3):
Hier nicht belegt.

Bit 3 (Q4):
Schaltet die Programmierspannung auf Pin 23 des EPROMs (1 = Spannung ein).

Bit 4 (Q5):
Schaltet die Programmierspannung auf Pin 1 des EPROMs (1 = Spannung ein)

Bit 5-7:
Geben die Höhe der Programmierspannung nach folgender Zuordnung an:

000 = 5V
100 = 12.5V
010 = 21V 001 = 25V

Falls die Programmierspannung umgeschaltet wird, muß danach etwa eine Sekunde gewartet werden, bevor sie an einen Pin des EPROMs gelegt wird, da der Schaltregler sie sonst noch nicht ausrechend eingeregelt hat. Das gilt vor allem, wenn die Programmierspannung auf einen niedrigeren Wert geschaltet wird.

Abbildung 3:Der Bestückungsplan erfordert eine ruhige Hand, denn es ist eng geworden.

Gängige Speichertypen der Jedec-Norm.

Typ Art Kapazi. P. Span. P.Algo.
2716 EPROM 2 Kb 25V 50mS
2732 EPROM 4 Kb 25V 50mS
2732A EPROM 4 Kb 21V 50mS
2764 EPROM 8 Kb 21V 1ms,4x
2764A EPROM 8 Kb 12.5V 1ms,3x
27128 EPROM 16Kb 21V 1ms,4x
27128A EPROM 16Kb 12.5V 1ms,3x
27256 EPROM 32Kb 12.5V 1ms,3x
27512 EPROM 64Kb 12.5V 1ms,3x/0.1ms,0x
27513 EPROM 16Kb*4 12.5V 1ms,3x/0.1ms,Ox
27011 EPROM 16Kb*8 12.5V 1ms,3x/0.1ms, Ox
2804 EEPROM 0.5Kb 5V 10mS
2816 EEPROM 2 Kb 5V 10mS
2864 EEPROM 8 Kb 5V 10mS

Tabelle 2

SRB:
Bit 0 (Ql): Steuert direkt Pin 20 (/CE) des EPROMs.

Bit 1 (Q2): Steuert digital Pin 22 (/OE, Vpp) des EPROMs an. Falls an diesem Pin schon Programmierspannung anliegt, ist dieses Bit irrelevant.

Bit 2 (Q3): Schaltet die Programmierspannung auf Pin 22 des EPROMs. (1 = Spannung ein)

Bit 3 (Q4): Steuert Pin 21 (A10) des EPROMs an.

Bit 4 (Q5): Steuert digital Pin 23 (All,Vpp) des EPROMs an. Wie immer hat die Programmierspannung Vorrang.

Bit 5 (Q6): Steuert Pin 2 (A12) des EPROMs an.

Bit 6 (Q7): Steuert invertiert Pin 26 (A 13.Vcc) des EPROMs an. Diese Leitung liefert den entsprechenden Strom um gleichzeitig die Stromversorgung von 24-poligen EPROMs zu übernehmen.

Bit 7 (Q8): Steuert den Pin 27 (A14,/PGM) des EPROMs direkt an.

SRC und ebenfalls SRD sind direkt mit den entsprechenden Datenleitungen des EPROMs verbunden (siehe Schaltplan).

Der Aufbau

Da das Layout des Junior Prommers sofort im Hinblick auf ein Gehäuse ausgelegt wurde, müssen der Nullkraftsockel (IC3) sowie die LED (D4) zuletzt auf die Lötseite montiert werden. Dadurch ist die Bauhöhe der anderen Bauteile, die sich ausschließlich auf der Bauteilseite befinden, unkritisch. Die Verbindung der Junior Prommer mit der jeweiligen Schnittstelle des Rechners geschieht über ein passend geschneidertes Flachbandkabel. Am einen Ende des unter 50 cm langen, 26-poligen Flachbandkabels wird ein 25-poliger Sub-D-Stecker angequetscht und am anderen ein 26-poliger Quetschverbinder. Natürlich muß Pin 1 des Sub-D-Steckers auch mit Pin 1 des Quetschverbinders zusammenliegen. Die 26. Ader des Flachbandkabels wird vor dem Sub-D-Stecker abgetrennt. Die Spulen LI und L2 sind z.B. von Conrad Electronic zu beziehen. Da das Layout stellenweise recht eng geraten ist, sollte man schon ein bißchen Lötfertigkeit besitzen.

Vorschau

Im nächsten Artikel dreht sich wieder alles um die Software. Es wird ein Assemblerprogramm beschrieben, mit dem die wichtigsten Operationen mit den gängigsten Typen möglich sind. Zudem werden alle Informationen gegeben, um eigene Software zu schreiben. Außerdem ist eine Diskette mit der Software-Version des Easyprommers für den Junior Prommer verfügbar.

Bleibt noch zu sagen, daß der Junior Prommer natürlich auch als Fertiggerät mit Gehäuse und Software erhältlich ist.

(RH)



Links

Copyright-Bestimmungen: siehe Über diese Seite
Classic Computer Magazines
[ Join Now | Ring Hub | Random | << Prev | Next >> ]