Intel 8049 (8048, 8748, 8749, 8035, 8039) / MCS-48 Hardware-Debugger & Monitor
Dieses Projekt entstand, weil ich seit vielen Jahren noch eine "offene Rechnung" mit dem mich damals sehr frustrierenden Intel 8049 aus der MCS-48 Mikrocontroller-Familie hatte. Jetzt bin ich mit Blick auf die auf dem Weg zum jetzigen Stand des "DeMon48"-Projekts liegenden Hindernisse und Schwierigkeiten (inklusive neuer Frustrationen) unentschlossen, ob es nicht besser gewesen wäre, diese Rechnung "offen" zu lassen. Andererseits bot die intensive Beschäftigung mit dieser obskuren, ziemlich umständlich zu gebrauchenden und nicht übermäßig gut dokumentierten Mikrocontroller-Familie für eines ganz sicher Gelegenheit :
Hacking at its best !
Vor sehr langer Zeit erstand ich einige Mikrocontroller des zur Intel MCS-48 Familie gehörenden Typs 8049 (konkret ist es die second-source Type "µPD8049" von Nippon Electric Company (NEC)) - ohne die leiseste Idee, wie etwas oder was damit tatsächlich anzufangen sein würde. Und weil damals keine weiteren Informationen über diese Mikrocontroller für mich verfügbar waren, fristeten sie einige Jahre ein friedliches und von einer eventuellen Nutzung ungestörtes Dasein. Es vergingen etwa 6 weitere Jahre bis ich auf einen Bausatz für ein "Entwicklungssystem" ("PECAZ" : "Preiswertester Einplatinen-Computer Aller Zeiten") für 8049-Mikrocontroller stieß.
Dieses "Entwicklungssystem" bestand aus :
1 | Latch (74LS373) zum Demultiplexen des Adress- und Datenbusses |
1 | Fassung für den 8049 |
1 | Fassung für ein 2716/2732 EPROM |
2 | Taster (*RESET, *INT) |
2 | Schalter (T0, T1) |
13 | LEDs mit zugehörigen Widerständen und Transistor-Treibern (P1.0 bis P1.7, P2.3 bis P2.7) |
1 | Widerstand, Elektrolyt-Kondensator und Diode für den Power-On-Reset |
1 | 11MHz Quarz und Oszillator-Kondensator |
2 | Abblock-Kondensatoren |
1 | Grundplatine für Schalter, Taster, Transistoren, Widerstände, LEDs, mit einer Bus-Struktur auf die 2 kleinere Karten aufgesteckt werden können (1x 8049-Karte + 1x Erweiterung) |
1 | Kleine Platine für den Mikrocontroller, Latch und EPROM (8049-Karte) |
3 | Steckverbinder zur Verbindung von µC-Karte und Grundplatine |
Bilder: "PECAZ" - nachträglich u.a. für EPROMs des Typs 2764 modifiziert
Ein kompaktes Büchlein "Mikrocontroller angewandt MCS-48-Familie" aus der Elektor-Verlag GmbH (das 2 gravierende Fehler beziehungsweise Auslassungen bei der Beschreibung des Befehlssatzes enthält (MOVX @Ri,A ist falsch
als 0x50,0x51 (korrekt : 0xA0,0xA1) codiert und MOVX @Ri,A (0x90,0x91) fehlt vollständig, die Indexregister sind falsch als Rr und nicht korrekt als Ri benannt ("Ri : Data memory pointer (i = 0, or 1); Rr : Register
Designator (r = 0-7)" Quelle: Intel 8-Bit Embedded Controllers Handbook 1990; Kap. "MCS(R)-48 Instruction Set, Symbols and Abbreviations Used"; S.3-7), der demnach als "MOV @Rr,A" abgedruckte
"MOV @Ri,A"-Befehl wird falsch
als 2-Zyklen-Befehl ausgewiesen, das abgedruckte Demonstrations-Programm ist in seiner Interrupt-Routine fehlerhaft und nur eingeschränkt funktionsfähig und die von der von Intel veröffentlichten abweichende, abgedruckte
Single-Step-Schaltung ist mit Vorsicht zu genießen, wenn man die Q und *Q Ausgänge des 74LS74 FlipFlops gleichzeitig nutzen möchte - die in dieser "Sparschaltung" nicht immer komplementär sind : also insgesamt ziemlich
nutzlose Literatur) sowie ein teures, programmiertes EPROM (2732) mit dem fehlerhaften Demonstrations-Programm konnte man zusätzlich käuflich erwerben.
Bilder: "Mikrocontroller angewandt MCS-48-Familie"; ISBN 3-928051-23-7
Die damalige Unwissenheit, die fehlenden Informationsquellen, die Programmierung in Maschinensprache beziehungsweise Assembler, die teilweise durch die oben genannten Fehler im elektor-Büchlein zusätzlich erschwert wurde, das zum Testen einer Software notwendige Programmieren und Löschen des EPROMs führten nach einiger Zeit trotz des zu Beginn großen Enthusiasmus' zum Einschlafen des Interesses.
Einige Jahre später wurde durch mich ein einzelner 8049 µC eingesetzt - zu diesem Zeitpunkt bereits mit einem Exemplar des "Intel 8-Bit Embedded Controllers"-Handbuchs ausgestattet.
Bild: "Intel 8-Bit Embedded Controllers"-Handbuch (1990); ISBN 1-55512-093-8