|
|
Auf dieser Seite will ich etwas näher auf die Technik in den Modulen eingehen, auf denen die Vielseitigkeit des TI-99/4A beruht,
d.h. ich werde sie öffnen, Fotos vom Innenleben machen, und ein paar Worte zur Funktion hinterlassen. Wenn man das Ergebnis betrachtet, darf man folgendes nicht vergessen:
| ||||
Unterschiedliche Hardware | ||||
Je nach Hersteller, Alter des Moduls und der Aufgabenstellung für die abgelegte Software, gibt es auch passende Hardwarekonzepte für die Module. Diese sind:
| ||||
Wat is enne Ge Romm? Da stelle ma uns mal janz dumm... | ||||
|
... Nein, das hier ist kein 'Basis-Repetitorium' in Sachen GROM - ich setze voraus, daß der Leser weiß, was ein GROM ist, wie es adressiert wird und wie man Daten daraus liest.
Hier kommen die Spezialitäten dran: GROM Basisadresse, Module Library etc. seien da als Stichworte schon mal gespoilert. Die nebenstehende Memory-Map (obere Graphik) zeigt die diversen Zugriffsadressen, wie der TI-99/4A für den GROM-Zugriff vorsieht. Der Bereich des lesenden und schreibenden Zugriffs wiederholt sich pro Funktion alle 4 Byte, was bedeutet, daß es im gesamten Adressbereich von >9800 bis >9FFE (danach kommt der Memory-Block 5) insgesamt 256 GROM-Basisadressen gibt. Daraus und aus der Tatsache, daß die 6KB pro GROM historisch-technisch bedingt sind, folgt ein adressierbarer GROM/GRAM-Speicher von theoretisch 16MB (256 * 64KB). Theoretisch deshalb, weil die 3 TI-Basic GROMs innerhalb der Konsole auf allen Basisadressen reagieren und somit 24KB von den möglichen 64KB jeder Basisadresse wegnehmen. Aber diese Feinheiten, und wie man sie umgehen kann, damit dann echte 16MB bereitstehen, lassen wir hier beiseite - dazu gibt es ein separates Hardware-Projekt. Die Basisadresse ist für das GROM selbst übrigens irrelevant bzw. transparent - das muss durch die Decodierung 'außerhalb' des Chips erledigt werden. Zu beachten ist auch, daß das TI-Monitorprogramm nur die ersten 16 Basisadressen scannt, und bei Vorliegen von GROM auf einer anderen als der Standardadresse >9800 den Text 'Review Module Library' anzeigt, womit man sich dann durch die ersten 16 Bereiche arbeiten kann. Jedes GROM verfügt übrigens über einen eigenen 16 Bit breiten Adresszähler der GROM-Adresse sowie über einen Adressdecoder, der jedes GROM nur auf exakt einem festgelegten 8KB Block im Adressraum der jeweiligen Basisadresse aktiviert. Siehe hierzu auch Punkt 3 in der unteren Graphik mit den Spezifikationen der GROMs. Deswegen können alle GROMs einer Basisadresse an allen Pins identisch angesteuert werden - sie 'wissen' selbst, wann sie dran sind. Dieses Verhalten ist aber auch aus einem anderen Grund erforderlich: beim Lesen der aktuellen GROM-Adresse liefern ALLE GROMs der aktuellen Basisadresse den internen Zählerstand ab - wäre das nicht so, gäbe es regelmäßige Kurzschlüsse, mit anderen Worten: es würde gar nichts funktionieren! Ein genauerer Blick in die Specs zeigt übrigens, daß in der Tat schon beim initialen Design an ein GRAM gedacht wurde: "-SPARE TO WRITE RAM OR PROM" - klar, ne?! Am Ende sollte sich das Teil gar selbst programmieren können... Eine Anmerkung zur o.a. GROM-Memory-Map darf hier nicht fehlen: Wenn man eine snug HSGPL in der PEB hat, sind die Bereiche jenseits der 16 vom Monitorprogramm unterstützten Basisadressen nicht uneingeschränkt verfügbar, da einige für die Programmierung der FLASH-EPROMs auf der Karte benötigt werden. Hierzu lese man die Anleitung zu dieser Karte - Michael hat darin viele hilfreiche Informationen zusammengetragen. |
![]()
| |||
Das QI-Dilemma | ||||
|
Die Standard-Konsole (die 'alte') erlaubt GROM und ROM im Modulport, die neue scannt das ROM nicht mehr.
Welche man hat, ist nur dann eindeutig zu erkennen, wenn man die schwarz-silberne Ausführung hat, die weißen können beides sein -
bei diesen kann man anhand der Meldung des ROM-Monitors auf dem Startbildschirm erkennen, ob man eine 'alte' hat:
das Copyright ist bei den alten 1981, bei den neuen 1983 und i.d.R. steht am Ende V 2.2. Irgendwie hatte TI damit ein Problem, weil auf einmal(?) Cartridges auf den Markt kamen, die auch ohne den 'Segen aus Lubbock' (= PHM-Nummer) genutzt wurden. Da man sowieso - warum auch immer 😉 - ein billigeres Redesign wollte, wurde das 'IC-Grab' in der Urversion beseitigt und mittels FPGA eine neue Konsole aufgelegt - mit durchaus sauberem PCB-Design und optimiertem Netzteil, diesmal aber mit einem Monitor, der das ROM ab >6000 im Modulport ignorierte! Der Adressbereich war noch verfügbar, wurde aber vom Monitorprogramm nicht mehr gescannt und zur Auswahl angeboten - Bingo! Das war der nächste Schuss ins Knie, den die Texaner abgegeben hatten - auf einmal liefen alle ROM-only Module nicht mehr... obwohl es schon damals Stimmen gab, die behaupteten daß die einzig guten Spiele, die als Modul vorlagen, nicht von TI stammten und somit ohne GROM-Lizenz hergestellt wurden - die rund 20 Titel von Atari nur beispielhaft genannt (obwohl man das auch als Revanche von TI an Atari wegen Activision ansehen könnte, aber das ist eine andere Geschichte). Soweit ich weiß hatte danach nur Tigervision eine Reihe an Modulen aufgelegt, die keine Module mehr waren, sondern Sidecars! Von diesen habe ich nur 'Miner 2049er', den ich aber erst untersuchen kann, wenn ich ihn in Händen habe. |
| |||
ROM-Banking - Thema mit Variationen | ||||
|
Bevor es mit den GROMs losgeht, möchte ich noch ein paar Worte über das ROM-Banking verlieren.
Der Adressbereich >6000 bis >7FFF (Memory Block 3, MB3) umfasst bekanntermaßen exakt 8KB, das sog. Modul-ROM. Diesen zu erweitern ist nur möglich, indem sein Inhalt nach Bedarf umgeblendet wird, wobei es komplette Umblendungen gibt (das setzt adressmäßig identische Codesequenzen voraus) sowie teilweise Umblendungen (i.d.R. wird die obere Hälfte ersetzt). Der resultierende Adressbereich ist aber immer MB3. Die Funktionalität all dessen, was im Modulport steckt, wird bestimmt durch die Signale, die dort verfügbar sind. Diese sind (die Sternchen kennzeichnen Änderungen der QI-Versionen):
Das Banking erfolgt immer durch Schreiben auf die Adressen des MB3, aber welche das sind, ist je nach Modul unterschiedlich. Meist wird ein Latch oder ein D-Flipflop verwendet, durch das bestimmte Datenleitungen als zusätzliche Adressleitungen an ein ROM/PROM/EPROM/EEPROM oderwasauchimmer gelegt werden. Dabei gibt es Varianten, die eine sog. Adress-Trap verwenden (wie z.B. bei DSRs für Diskcontroller, wo die Register des Floppy-Controllers oder des System-RAMs aus dem durchgängigen Adressbereich ausgespart werden), oder andere, denen das völlig egal ist (und strenggenommen sehe ich aktuell keinen Grund für Traps im MB3). Beispiele (NB: diese Angaben stammen von den entsprechenden Foren auf Atariage und sind bislang nicht durch mich verifiziert worden!):
| ||||
.. einen hab ich noch! - Module auslesen | ||||
|
Wie kommt man denn nun an den Inhalt der Module? Sobald ein Modul steckt, haben wir entweder nur noch TI-Basic
(und das kann ohne fremde Hilfe kein Assemblerprogramm ausführen) oder wir kommen gar nicht dort rein, weil uns (siehe Multiplication 1)
entweder gar keine Auswahl vorgelegt wird, oder das Modul gleich nach dem Punkt, wo eigentlich das Titelbild kommt, die Kontrolle übernimmt. Erfahrene TI-Fans werden nun sagen: Geht doch alles ganz einfach mit dem GRAM-Cracker von Millers Graphics! Tja - den muss man aber erst mal haben, und vielleicht noch dazu eine 32K-Speichererweiterung (ist aber kein Muss). Der Trick mit dem Laden einer Auslesesoftware per Minimem, E/A oder sonstwas, und dem Wechsel des Moduls zu dem, was man auslesen will, scheitert entweder am Reset beim Stecken des Moduls (kann man mit etwas Tesa vermeiden), oder - wenn man den Reset unterbindet - es kommt zum Absturz, weil kurzzeitig die Adress- oder Datenleitungen gestört werden. Den Reset kann ein per Load-Interrupt aufrufbares Programm möglicherweise 'überleben', aber eben nur möglicherweise. Aber es geht viel einfacher, wenn man ein TIPI-32K oder ein anderes Sidecar mit 32K und Loader-DSR angesteckt hat, vorausgesetzt, das aktuell gesteckte Modul erlaubt den Aufruf von TI-Basic: aus TI-Basic heraus ruft man den Loader mit der passenden Software (z.B. dem snug Memory-Manager) auf und - schwupp - kann man ans Auslesen gehen! Speichern muss man das natürlich auch irgendwo, aber auch da hilft - sofern man keine PEB hat - eines der Sidecars. ODER man wählt die Warmduscher-Variante und lädt sich die Files aus dem Netz... 😉 Aber das hier ist ja die Kategorie 'Hardware-Projekte' und da darf es schon mal elektrischer werden... Das Konzept: man baue sich einen Modulport-Adapter für zwei Module: ein assemblerfähiges Modul (Modul A) und das MOC (Module Of Choice, Modul B). Die beiden werden komplett parallel kontaktiert, bis auf ROMS (Pin 34, Cartridge ROM Select - MB3) und GS (Pin 21, GROM Select). ROMS und GS, die beide Low-Aktiv sind, werden an die Eingänge von je 2 OR-Gattern geführt, die anderen Eingänge werden mit 10K an +5V angeschlossen, und über einen Kippschalter wechselseitig an Masse geschaltet, so daß immer ein Gatterpaar pro Modul das Signal durchlässt, und das andere es auf log. High hält. Nun wird Modul A aktiviert (Kippschalter dieser Seite = geschlossen), das System gestartet, die Software geladen, und sobald die Software läuft wird umgeschaltet. Zu beachten ist dann noch, daß man das GROM im Modul initialisieren muss, indem ein Datenbyte gelesen wird - dadurch wird das Adresszähler-Flipflop zurückgesetzt, was für die korrekte Funktion notwendig ist. Ein Schaltbild spare ich mir - das ist jetzt wirklich zu trivial. Ach ja: die Teile, speziell die Steckverbinder, bekommt man bei Aliexpress, zumindest habe ich meine von dort: den Edge-Connector, den man zuschneiden muss, die 34 Pole für den Modulport, 44 Pole für den Erweiterungsstecker, und 60 Pole für die PEB. | ||||
Typ 1 - Multiplication 1 | ||||
|
An sich nichts besonderes: drei GROMs, zwei Kondensatoren für +- 5V und ein 100 Ohm Widerstand für den Reset. Interessant ist vielleicht, daß dieses Modul die Modulauswahl übergeht, und - sobald der Startbildschirm mit dem charakteristischen Beep erscheint - nach dem Drücken irgendeiner Taste direkt die Modulsoftware startet. An diesem Punkt macht sich übrigens ein Unterschied zwischen den US-Konsolen und denen für den Rest der Welt bemerkbar: alles geht irgendwie zu langsam, was - ich muss das erst an meiner US-Konsole verifizieren - wohl an den 50Hz Interruptfrequenz des VDP liegt, denn die ist in den US-Versionen mit 60Hz bekanntermaßen 20% höher. |
![]()
| |||
Typ 1 - Fitness Training für den 99/4 | ||||
| Das ist eins von den 'very rare' Modulen, denn es ist NICHT Physical Fitness, auch wenn dies - oha - auf der Platine aufgedruckt ist! Es ist die deutsche Version, mit dem auch vom 'Schachmeister' bekannten TI-99/4 Titelbild (siehe unten), die auch inhaltlich etwas anders aufgebaut ist. Und - ebenfalls im Vorgriff auf den Absatz weiter unten - wir haben auch hier den -5V/Reset Kurzschluss - diesmal etwas 'leistungsfähiger' mit einem richtigen Draht. Den habe ich natürlich sofort gegen einen 150 Ohm Widerstand ausgetauscht - logo. Die GROMs sind tatsächlich Baujahr 1980, mithin also mein ältestes Modul derzeit. Mir ist bei diesem Modul übrigens das erste Mal aufgefallen, daß bei manchen die 'Prägung' auf der Bodenplatte um 180 Grad verdreht ist (oder doch 360? Mal ALB fragen...). Das ist kein Spezifikum der 'alten' Module, das scheint insofern Zufall zu sein, als es wohl von dem benutzten Werkzeug bzw. der jeweiligen Produktionslinie abzuhängen scheint. |
![]()
| |||
Typ 2 - Parsec-Variationen | ||||
|
Aktuell habe ich drei verschiedene Parsec-Versionen in der Schublade (sooo selten sind die gar nicht - TE-II habe ich z.B. fünf!),
und irgendwie kam ich auf die Idee 'Wiegst die Dinger mal.'.
Gesagt, getan - und auf einmal hatten die alle ein unterschiedliches Gewicht (71g, 72g, 75g)!? Na - flugs aufgeschraubt und gesehen: drei verschiedene Platinen... naja, drei Bestückungsvarianten - die Platinen sind identisch. Den größten Unterschied dürfte der Elko machen, aber die 3 Gramm der Variante 3, sind das wirklich die Glas-Kondensatoren? Muss ich mal auslöten und wiegen. |
![]()
| |||
Typ 2 - Darf's etwas mehr sein? - Othello | ||||
| Die Parsec-Platine hat Platz für maximal 3 GROMs. Maximal? Die kann man doch 'stacken', also übereinanderlöten (sieht man bei Extended Basic). Wie dem auch sei - die Typ 2 Platine gibt es auch in anderem Layout für bis zu vier GROMs. |
![]()
| |||
Typ 2 - Video Chess, PCB Rev2, oder: Warum Power Supply 'Power' heißt | ||||
|
Und wieder ein Fall von fehlendem Review vor Produktion - oder?
Wer genau hinsieht kann erkennen, daß die Reset-Leitung, die bekanntlich über 100 Ohm an -5V gezogen wird, durchgebrannt ist! Warum? Naja, da hat jemand einen Kurzschluss gebaut, und die -5V des Netzteils hatten genug Power (sic!), um die Leiterbahn durchbrennen zu lassen. Das hat man dann mit dem 100 Ohm Widerstand (der sich nicht einsparen ließ) wieder gerichtet, und bei Othello (PCB Rev4) sieht man dann die Revision. ... oder war dieses Modul, das zu den frühesten des TI-99 gehört, in dieser Form am TI-99/4 lauffähig, weil dessen Reset-Hardware anders ist? Wenn man sich den Reset-Schaltkreis ansieht, wird es klarer: der Reset-Pin 5 des Taktgenerators U601 (nur dieser ERZEUGT den Reset - die CPU bekommt Reset von hier) ist zwar recht hochohmig angeschlossen, aber der Kondensator geht mit Plus Richtung Modulport (nach oben raus). Wenn man ihm also direkt kontaktiert, klebt seine Anode über den Draht fest an -5V, die Kathode (und in diesem Moment ist es richtig, von Anode und Kathode zu sprechen, da Elkos ähnlich einer Diode reagieren, wenn man sie verpolt) liegt an +5V - in der Folge fließt ein Strom durch den Taktgenerator und irgendwann gibt einer nach - hier eben die Leiterbahn. |
![]()
| |||
Typ 2 Exkurs - Video Chess == Schachmeister? Strange Phenomena... | ||||
|
Schaut man sich die Labels und die Gehäuse an, denkt man sicher: "Video-Chess ist älter als Schachmeister, aber am Ende ist dasselbe drin." Mitnichten (die Neffen mal beiseite gelassen...), denn der Schachmeister gehört zur alten Garde der TI-99/4 Module, was auch die mit 3008 recht niedrige PHM-Nummer anzeigt. Und er zeigt das ganz unverblümt im Startbildschirm, den er ziemlich verbiegt und sich als TI-99/4 ausgibt - na gut, billiger bekommt man aktuell keinen 99/4 - oder? Aber dann wird es 'strange': Die Auswahl des Schachmeister Moduls zeigt den im 99/4 noch vorhandenen Formelrechner, der nichts anderes macht, als die im TI-Basic sowieso vorhandenen Algorithmen der 'Allgemeinheit' in angepasster Form zu präsentieren. Aber wenn man 2 drückt, kommt der Schachmeister, und beim Druck auf 3 passiert... nichts (ob es piept (sic!) kann ich aktuell mangels Audio nicht sagen). In der Anfangsanmiation zeigt das '1983er' Schachmeister-Modul (Made in Italy 1983) übrigens 1979 als Copyright, während das '1979'er Video Chess (Made in USA 1982) dies unterlässt - strange indeed! Es gibt noch mehr Unterschiede, aber das kommt im Software Dies-und-Das dran. Ach ja: Die Platine ist die neue, ohne den Kurzschluss, aber mit einem Kondensator dort, wo bei Othello eine Drahtbrücke ist? |
![]()
| |||
Typ 3 - Atari Dig Dug | ||||
| 2 ROMs und 2 TTLs ('00: 4x NAND mit 2 Eingängen, '75: 2x 2 bistabile Latches), das ist mal der aktuelle Stand. Nicht alle Atari-Module sind verschraubt, was man recht leicht an dem Abdruck des Schraubenloches im Label erkennen kann. Ist diese Fläche glatt, dann ist das Gehäuse verschweißt! Den Schaltplan liefere ich noch... |
| |||
Typ 4 - TI Extended Basic - (fast) volle Hütte | ||||
|
2x ROM mit Banking, 4x GROM (2x2 'piggiback' == huckepack) und etwas TT-Logik
('00: 4x NAND mit 2 Eingängen, '74: 2x D-Flipflop mit Preset & Clear), -
das ist das übliche TI-XB oder EB.
Durch das Banking war ein anderes Platinenlayout erforderlich, und um die Schaltung zu analysieren, muss ich die Bauteile zuerst entfernen. Das dauert noch ein wenig... mit ca. 80g Gewicht/Masse ist es aber in dieser Liste schon mal der derzeitige Spitzenreiter. Übrigens: Die PCBs der 1980er (schwarz) und der 1982er Version (weiß) sind identisch! Alles richtig gemacht... |
![]()
| |||
| Kontakt: {anyname}@{use_the_url}.net |
Alle Bilder auf dieser Seite mit Ausnahme des Case und Miner 2049er (© Hauke H.) wurden von mir erstellt. Findet ihr sie anderswo, wurden sie hier geklaut! |
Letzte Aktualisierung: 2025-11-22 CW |