ctr

DeMon48_128k

Hardware-Debugger & Monitor für intel 8049 / MCS-48 von 1976 (Vorschau)


Status : Status

Version Information
Hardware: V0.8.0
Manual: V0.7.4
PC-Software: V0.8.0
Firmware: V0.8.8

Download
Drawings: Download
Manual (de): Download
Download, install and use at your own risk !
Features
  • GUI für Windows-Betriebssysteme, transparenter Zugriff auf alle internen Register und RAM
  • Bis zu 128kB an dem für 4kB ausgelegten µC, alle On-Chip-Ressourcen bleiben erhalten
  • 64kByte als Programm- und zusätzlich 64kByte als Datenspeicher nutzbar
  • In einer 4/8kByte Memory-Map können 8243 Port-Expander genutzt werden
  • Nur ein Signal (PROG) wird belegt, wenn Zugriff auf 128kByte RAM ermöglicht wird
  • Normalerweise unmögliches Laden des Programmspeichers durch auf dem µC laufende Software
  • Softwaregesteuerte Umschaltmöglichkeit zwischen nativer Harvard- und Von-Neumann-Architektur
  • Voll transparent für die Anwendersoftware, Hardware-Interrupts sind vollständig unterstützt
  • Memory-mapped I/O-Bereich kann eingeblendet werden
  • Software- und Hardware-Breakpoints (ohne Geschwindigkeitsverlust)
  • Unterstützung für AS Macroassembler
DeMon48_128k_Breadboard1

Download : DeMon48_128k Zeichnungssatz und Grafiken

Download : DeMon48_128k Projekt-Beschreibung (de)

DeMon48_128k_MMU_DBR_Write

Inhaltsverzeichnis der vollständigen Projekt-Beschreibung (siehe Downloads)

  • 1.0.0 Warum das DeMon48 Projekt entstand
    • 1.1.0 Vorgeschichte
  • 2.0.0 8049-Primer
    • 2.1.0 Der 8049 Mikrocontroller
    • 2.2.0 8049-Minimalsystem mit externem Programmspeicher
    • 2.3.0 8049-Steuersignale, -Timing
      • 2.3.1 EA
      • 2.3.2 *RESET
      • 2.3.3 *INT
      • 2.3.4 ALE
      • 2.3.5 *PSEN
      • 2.3.6 *RD
      • 2.3.7 *WR
      • 2.3.8 PROG
      • 2.3.9 8049-Timing
  • 3.0.0 MCS-48 im 21. Jahrhundert
    • 3.1.0 Bescheidene Anfänge : Oszillator-Inbetriebnahme
      • 3.1.1 NOP-Schleife, erste Hardware und Erweiterungen
    • 3.2.0 Modifizierte Harvard-Architektur
    • 3.3.0 Debug-µC, serielle Hardware
      • 3.3.1 Erster Test mit Debug-µC (NOP)
      • 3.3.2 Zweiter Test mit Debug-µC (256Byte-Page Write)
    • 3.4.0 Single-Step Hardware
    • 3.5.0 Zwischenstand
    • 3.6.0 Debug-µC, parallele Hardware
    • 3.7.0 Das "SEL MBx"-Problem (Speichermanagement à la intel in 1976)
      • 3.7.1 "SEL MBx" und Interrupts
      • 3.7.2 "SEL MBx" und "CALL"
    • 3.8.0 Bitte ein Bit ...
    • 3.9.0 Timer-/Counter-Interrupt
    • 3.10.0 DeMon48_128k Speicherorganisation / MMU
      • 3.10.1 Bildung der Adresse in verschiedenen Situationen
      • 3.10.2 Memory-Mapped-I/O mit 8049
  • 4.0.0 Die Monitor-Software : "God Mode" für den 8049-Entwickler
    • 4.1.0 Monitor-Aufruf
      • 4.1.1 PC (Program-Counter), PBR, DBR retten
      • 4.1.2 Monitor-Start
      • 4.1.3 Hardware-Interrupts abfangen
      • 4.1.4 Pending Bank Switch - "SEL MBx"
      • 4.1.5 A, T, PSW, R0 retten
      • 4.1.6 P1, P2, T0, T1, *INT, F1 lesen
      • 4.1.7 Internes RAM lesen
      • 4.1.8 8049-Stack modifizieren
    • 4.2.0 Monitor-Metazustand
      • 4.2.1 Internes RAM beschreiben
      • 4.2.2 PBR, DBR, P1, P2 und F1 beschreiben
    • 4.3.0 Monitor-Ausgang
      • 4.3.1 Gerettete und geänderte Inhalte zurückschreiben
      • 4.3.2 R0, PSW, T und A wiederherstellen
      • 4.3.3 8049-Stack modifizieren
      • 4.3.4 PC, Timer-/Counter-Konfiguration und MB-FF wiederherstellen
  • 5.0.0 Speicherkonfigurationen
    • 5.1.0 Jumper
    • 5.2.0 DA16 (Data Address 16)
    • 5.3.0 Modes
    • 5.4.0 Memory Maps
      • 5.4.1 Memory Map 1
      • 5.4.2 Memory Map 2
      • 5.4.3 Memory Map 3
      • 5.4.4 Memory Map 4
      • 5.4.5 Memory Map 5
      • 5.4.6 Memory Map 6
      • 5.4.7 Memory Map 7
  • 6.0.0 GUI / Windows-Software
    • 6.1.0 Status-Anzeigen
    • 6.2.0 Aux-/CPU-Registers & Ports
    • 6.3.0 External RAM (Program/Data)
    • 6.4.0 Internal RAM (Data)
    • 6.5.0 Schaltfläche 'File'
    • 6.6.0 Schaltfläche 'AS'
    • 6.7.0 Schaltfläche 'ROM'
    • 6.8.0 Schaltfläche 'Fill'
    • 6.9.0 Projekt-Konfiguration
    • 6.10.0 Schaltfläche 'Run'
    • 6.11.0 Schaltfläche 'Step'
    • 6.12.0 Schaltfläche 'Sync'
    • 6.13.0 Schaltfläche 'Reset'
    • 6.14.0 Optionen 'Mon.Entry' und 'Mon.Exit'
    • 6.15.0 Schaltfläche 'Auto'
    • 6.16.0 Software-Breakpoint
    • 6.17.0 Hardware-Breakpoint
    • 6.18.0 Stopwatch

DeMon48_128k_G_LA_SELMB

Warum das DeMon48 Projekt entstand

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 zurückliegenden Weg zum vorliegenden 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 !

DeMon48_128k_Breadboard2

Vorgeschichte

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ß.

DeMon48_128k_GUI

Wie es weiterging und alles Weitere zum DeMon48-Projekt in den Downloads :

Download : DeMon48_128k Zeichnungssatz und Grafiken

Download : DeMon48_128k Projekt-Beschreibung (de)

DeMon48_128k_NECuPD8049