ctr

DeMon48_128k

Intel 8049 (8048, 8748, 8749, 8035, 8039) / MCS-48 Hardware-Debugger & Monitor


Status : Status

Versions-Information
Hardware: V0.8.7
Firmware: V0.8.17
PC-Software: V0.8.3
Dokumentation: V0.8.10
Zeichnungssatz: V0.7.1

Zusatz-Information
Dokumentation (de): Anzeigen
Documentation (en): Anzeigen
Zeichnungssatz(de): Anzeigen Drawings (en): Anzeigen

Download
Dokumentation (de): Download
Documentation (en): Download
Zeichnungs.(de/en): Download
Firmware
PIC16F874: Download
PIC16F84: Download
Download, install and use at your own risk !
Features
  • Unverändert für Intel 8035, 8039, 8048, 8049, 8748, 8749 verwendbar
  • Transparenter Zugriff auf alle internen Register und RAM des Intel MCS-48 µCs
  • Bis zu 128kB an dem für max. 4kB ausgelegten µC, alle On-Chip-Ressourcen bleiben erhalten
  • Volle 16-Bit-Adressen bei Sprüngen per JMP/CALL/RET (z.B. von 0x08E7 nach 0x53F0) möglich
  • 64kByte als Programm- und zusätzlich 64kByte als Datenspeicher nutzbar
  • Die Hardware besteht nur aus neu beschaffbaren Standard-Bauteilen (ausser MCS-48 µC)
  • In einer 4/8kByte Memory-Map können 8243 Port-Expander genutzt werden
  • Softwaregesteuerte Umschaltmöglichkeit zwischen Harvard- und Von-Neumann-Architektur
  • Normalerweise unmögliches Laden des Programmspeichers durch auf dem MCS-48 µC laufende Software
  • Optionaler externer Takteingang mit störungsfreier Umschaltung
  • Memory-mapped I/O-Bereich kann eingeblendet werden
  • Ein durch die Hardwarekonfiguration eingeblendeter I/O-Bereich kann über Softwarekommandos aus- und eingeblendet werden
  • Hardware-Interrupts sind vollständig unterstützt
  • Soft- und Hardware-Breakpoints
  • GUI für Windows-Betriebssysteme mit Single-Line-Disassembler
  • Unterstützung für AS Macroassembler
DeMon48_128k_Blockdiagram

Neues zum Projekt

RessourceOnlineDownload
Projekt-Dokumentation (de)ViewDownload
Project-Documentation (en)ViewDownload
Zeichnungssatz und Grafiken (de/en)ViewDownload
Set of drawings and graphics (de/en)ViewDownload
PIC16F874 Firmware (Debug-µC)N/ADownload
PIC16F84 Firmware (Addressbus-Monitor)N/ADownload

DeMon48_128k_AddressbusMonitor


Neuigkeiten


13.03.2025

Mit Hilfe eines Bits des Expansion-Registers "EXP" kann das automatische Laden des an P2.0...P2.3 angeschlossenen D-FFs unterdrückt werden. Die entsprechenden Änderungen sind im Zeichnungssatz V0.7.1 (de) / (en) auf Blatt 4 und Blatt 5, in der Dokumentation V0.8.10 (de) / (en) in Kapitel 3.6.5 und als Beispiel in Kapitel 7.3.0 festgehalten.

10.03.2025

Erneute Änderung auf Blatt 4 des Zeichnungssatzes V0.7.0.

08.03.2025

Der Zeichnungssatz V0.7.0 ist mit Erweiterungen beziehungsweise Änderungen auf Blatt 4, Blatt 19, Blatt 20 und Blatt 21 Online und als Download verfügbar.

13.02.2025

Die jetzt als V0.8.9 verfügbare Dokumentation wurde im Kapitel 2.2.1 konkretisiert.

10.02.2025

Wie auf dieser Seite zu sehen ist, gibt es jetzt auch ein (vorläufiges) Blockdiagramm des DeMon48_128k Systems.

06.02.2025

Die als V0.8.8 verfügbare Dokumentation wurde in den Kapiteln 2 und 3 ergänzt.

31.01.2025

Die Logik-Analysator Aufzeichnungen in der Dokumentation (Kapitel 2.5.0) und im Zeichnungssatz, Blatt 17, wurden um die Information, dass die Angaben zum "RET"-Befehl auch für den "RETR"-Befehl gelten, ergänzt.
Die Versionsangaben (Dokumentation 0.8.7 / Zeichnungssatz 0.6.9) blieben unverändert.

25.01.2025

Fail: Es wurde nach einem zu dem in der Intel-Literatur beschriebenem alternativen Weg gesucht, um das interne ROM eines MCS-48 µCs auszulesen, also ohne hohe Spannungen und das Spiel mit EA, *RESET, BUS und P2.0...P2.3. Die Idee war, EA auf L zu legen nachdem der µC den ersten Befehlszyklus eines im externen Programmspeicher abgelegten 1-Byte/2-Zyklen "MOVP A,@A"-Befehls (copy current page data @A to A) beendet hat. Die Hoffnung war, dass der µC dann im zweiten Befehlszyklus auf den durch A adressierten Speicherplatz im internen Programmspeicher zugreift und dessen Inhalt nach A kopiert. Sobald mit Hilfe von ALE die Adresse des nächsten Befehls im externen Programmspeicher ausgegeben und zwischengespeichert werden soll, wird EA wieder H und der µC sollte wieder auf den externen Programmspeicher zugreifen. Die Hardware, um an EA in den geeigneten Momenten L- und wieder H-Pegel zu legen, funktioniert einwandfrei, auch das *PSEN-Signal bleibt erwartungsgemäß während EA=L auf H-Pegel - aber der Befehlszähler (PC) kommt völlig durcheinander (bemerkenswert: nur für einen Befehlszyklus, nachdem EA wieder H-Pegel erhält), so dass der µC nach EA=L,EA=H zwangsläufig "crasht". Sicher ist es möglich, durch weitere Hardware auch ein Workaround dafür zu finden - jedoch stünde das in keinem Verhältnis und brächte gegenüber der in Intels Literatur beschriebenen Methode keinen Vorteil.

01.01.2025

Der Zeichnungssatz steht als V0.6.9 und die Dokumentation als V0.8.7 zur Verfügung.

07.12.2024

Blatt 16 des Zeichnungssatzes und Kapitel 2.5.0 der Dokumentation wurden bezüglich des externen Zugriffs mit Hilfe des PROG-Signals aktualisiert und sind in der Dokumentation V0.8.6 und dem Zeichnungssatz V0.6.8 verfügbar.

29.11.2024

Kapitel 7.2.0 der Dokumentation wurde in das Kapitel 2.6.0 verschoben.

28.11.2024

Die für mich zunächst etwas mysteriösen MCS-48 "INS A,BUS"- und "OUTL BUS,A"-Befehle und deren Ausführung durch einen
MCS-48 µC wurden genauer untersucht und in der jetzt als V0.8.4 vorliegenden Dokumentation im Kapitel 7 das Unterkapitel 7.2.0 gewidmet.
Blatt 18 im jetzt als V0.6.7 vorliegenden Zeichnungssatz wurde um die entsprechende Logik-Analysator Aufzeichnung ergänzt und leicht überarbeitet.
Das "RAM_Test"-Demonstrationsprogramm im Kapitel 7 der Dokumentation wurde ebenfalls erweitert und überarbeitet und liegt als V1.1.0 vor.
Alle genannten Änderungen und Ergänzungen sind natürlich ebenfalls in den aktuellen Download-Versionen enthalten.

24.11.2024

Das in der Dokumentation, Kapitel 7 hinterlegte MCS-48 Programm zum Testen des gesamten DeMon48_128k 128kB RAM und zur Demonstration des Umgangs mit der MMU wurde überarbeitet und erkennt jetzt aufgrund einer verbesserten Testmethode wesentlich mehr potentielle Fehler. Die Online- und Downloadversionen der Dokumentation wurden entsprechend aktualisiert und liegen als V0.8.3 vor.

16.11.2024

Die derzeitige Firmware zum Projekt ist als Download verfügbar.

29.10.2024

Statt der zweistelligen 7-Segmentanzeigen wurde ein LCD für die Ausgabe von Statusmeldungen für das Frontpanel vorgesehen (Zeichnungssatz Blatt 12). Der Zeichnungssatz wurde neben anderen Änderungen sowohl in der Online- wie in der Download-Version entsprechend angepasst und liegt als V0.6.6 vor, die angepasste und überarbeitete Firmware als V0.8.17. Die Projekt-Dokumentation wurde im Kapitel 7 um das Protokoll der seriellen Schnittstelle ergänzt (Kapitel 7.3.0) und liegt jetzt als V0.8.2 vor.

24.10.2024

Eine Korrektur im Zeichnungssatz - Blatt 13.

10.10.2024

Um automatisch nach einem Power-On-Reset ein MCS-48 Programm laden und ausführen lassen zu können, wurde das bereits zu Beginn des Projekts vorgesehene serielle 64kByte EEPROM sowohl in die Hardware als auch Software eingebunden. Es können beliebige Zusammenstellungen von 4kB-Blöcken dieses EEPROMS nach dem Anlegen der Betriebsspannung automatisch in das als MCS-48 Programmspeicher dienende RAM geladen und gestartet werden, sofern die jeweilige Funktion an der Hardware ausgewählt ist. Zeichnungssatz (V0.6.4), Dokumentation (V0.8.1), Hardware (V0.8.6), Firmware (V0.8.16) und GUI (V0.8.3) wurden dafür ebenso wie die Download-Versionen der Dokumente entsprechend aktualisiert und erweitert.

22.09.2024

Overclocking des 1984 hergestellten µPD8049 : Als absolute Obergrenze für ein Funktionieren des hier vorhandenen µPD8049 in dem Steckbrett-Aufbau wurden 15,5MHz und für ein zuverlässiges Umschalten der Taktquelle mit dem "Glitchless Clock Switch" wurden 14,1MHz ermittelt (mit dem Gesamt-System auf 3 Steckbretter verteilt aufgebaut). Bei 15,5MHz steigt die Stromaufnahme im Vergleich zum Betrieb mit 11MHz um etwa 10mA. Zum Test wurde die "RAM Test"-Software aus Kapitel 7 der Projekt-Dokumentation genutzt.

17.09.2024

Die Projekt-Dokumentation ist ab sofort vorläufig auch in englischer Sprache verfügbar. Ich bin mir noch nicht sicher, ob die Pflege der Dokumentation in je einer Online- und Download-Version in zwei Sprachen auf Dauer nicht zu arbeitsintensiv wird.

28.08.2024

Die Projekt-Dokumentation wurde um das Kapitel 7 erweitert, das aktuell eine Kurz-Referenz des Befehlssatzes der 8035-, 8039-, 8048-, 8049-, 8748-, 8749-, 8040- und 8050-µC und ein Test-Programm für das gesamte DeMon48_128k RAM als Demonstration des Umgangs mit der MMU enthält.

26.08.2024

Um auf den gesamten Adressraum zugreifen zu können (RAM-Test etc.), obwohl die Hardware durch die vorhandenen Jumper für das Einblenden eines memory-mapped I/O-Bereichs konfiguriert wurde, ist es jetzt möglich, softwaregesteuert über ein Bit des Expansions-Registers der MMU einen eventuell aktiven memory-mapped I/O-Bereich aus- und wieder einzublenden. Sowohl der jetzt als V0.6.2 vorliegende Zeichnungssatz (Blatt 5, Blatt 7) und die Kapitel 3 und Kapitel 5 der Dokumentation V0.7.40 wurden entsprechend aktualisiert. Ausserdem wurde Blatt 1 des Zeichnungssatzes übersichtlicher gestaltet.

23.08.2024

Die Dokumentation wurde unter anderem in Punkt 2.4.0, Kapitel 2 um die Pinbelegung des DIP40-Gehäuses ergänzt und ist als V0.7.39 verfügbar.

16.08.2024

Das Projekt wurde im Verlauf der vergangenen Woche um die Möglichkeit, ein externes Taktsignal einzuspeisen und störungsfrei zwischen diesem und dem internen 11MHz Oszillator umzuschalten, erweitert. Der ergänzte Zeichnungssatz (Blatt 1, Blatt 11,
Blatt 19) ist jetzt als V0.6.1 verfügbar und die aktualisierte Dokumentation V0.7.38 enthält das um den Punkt 3.8.0 erweiterte Kapitel 3. Ausserdem wurde die Firmware des Debug-µCs und das GUI angepasst und Kapitel 4 der Dokumentation umstrukturiert.

08.08.2024

Kosmetische Änderungen an der jetzt als V0.7.37 bereitgestellten Dokumentation.

01.08.2024

Nachdem sich eine intensive Revision diesmal vor allem dem Kapitel 4 der Dokumentation gewidmet hat, ist diese deutlich gestrafft und mit besserer Textqualität als V0.7.36 verfügbar.

29.07.2024

Die in Teilen weiter entwickelte Dokumentation liegt als V0.7.35 vor.

25.07.2024

Durch eine in der Zerlegung von Binärwerten in Dezimale verbesserte, schnellere Firmware konnte der PIC16F84 Controller des Adressbus-Monitors durch den 4MHz-Typ ersetzt werden. Die Online- und Downloadversion des Zeichnungssatzes mit dem aktualisierten Blatt 9 liegt als V0.5.9 vor.

19.07.2024

Nach einer gründlichen Neuorganisation und Revision des zweiten Kapitels der Dokumentation liegt diese - übersichtlicher und logischer im Aufbau - als V0.7.34 vor.

13.07.2024

Da offenbar bei den Verfassern der Datenblätter von Intel einige Verwirrung herrschte, was man als Befehlszyklus (instruction cycle, t=15/fosc) und was als Maschinenzyklus (machine cycle, t=3/fosc) bezeichnen sollte, konnte, mit Impulsgenerator und Oszilloskop ausgestattet, einigen Fehlern bei der Beschreibung des Timer/Counter-Blocks auf die Spur gekommen werden. Ebenso wurde die Funktion von P1 und P2 auf Übereinstimmung mit dem Datenblatt geprüft und ebenfalls Ungereimtheiten ausgeräumt. Daher gibt es schon wieder ein Update der Dokumentation als V0.7.32 mit entsprechenden Änderungen in den P1, P2 und den Timer/Counter betreffenden Abschnitten des Kapitel 2.

12.07.2024

Es wurde ein Abschnitt über den Hardware-Timer/Counter zum Kapitel 2 der ab sofort als V0.7.31 verfügbaren Dokumentation hinzugefügt.

11.07.2024

Neben einer allgemeinen Revision wurde ein Abschnitt zu den Reset- und Interrupt-Vektoren zum Kapitel 2 der jetzt als V0.7.30 bereitgestellten Dokumentation hinzugefügt.

05.07.2024

Nach einer intensiven Revision der Kapitel 2 und Kapitel 4 steht die Dokumentation als V0.7.29 Online und als Download zur Verfügung.

01.07.2024

Die Dokumentation steht nach einer allgemeinen Revision mit Änderungen, die fast ausschließlich Textgliederung und Formulierung betreffen, als V0.7.28 zur Verfügung. Kapitel : 1.1.0, 2.3.0, 3.0.0, 3.2.0, 3.5.0, 3.7.0, 4.0.0, 4.1.1, 4.1.2, 4.1.5

17.06.2024

Die Projekt-Dokumentation und der Zeichnungssatz wurden um Logik-Analysator Aufzeichnungen der Ausführung von "MOVP A,@A"-, "MOVP3 A,@A"- und "JMPP @A"-Befehlen erweitert (Kapitel 2.5.0 der Dokumentation beziehungsweise Blatt 16 im Zeichnungssatz) und stehen als V0.7.27 (Dokumentation) und V0.5.7 (Zeichnungssatz) Online und als Download bereit.

13.06.2024

Die Vereinfachung der Hardware-Breakpoint-Schaltung musste zurückgenommen werden, weil sich dadurch Glitches und eine Fehlfunktion des Hardware-Breakpoints ergeben konnten. Ausserdem wurde ein wichtiger Hinweis zum Kapitel 3.7.0 der Projekt-Dokumentation hinzugefügt und eine allgemeine Überarbeitung durchgeführt.

10.06.2024

Eine grundsätzlich logischer strukturierte und erweiterte Projekt-Dokumentation ist als V0.7.24 online und als Download bereitgestellt. Unter anderem wurden Teile des Kapitels 3 in das Kapitel 2 verlegt und der Schaltplan für den "NOP"-Test zum Kapitel 3.2.0 hinzugefügt.

08.06.2024

Eine erweiterte und überarbeitete Projekt-Dokumentation steht als V0.7.23 online und als Download zur Verfügung. Die neuen Kapitel sind 2.6.9 und 2.6.10, die Nummerierung der bestehenden Kapitel wurde entsprechend verschoben.

24.05.2024

Eine erweiterte Projekt-Dokumentation steht als V0.7.22 online und als Download zur Verfügung. Die neuen Kapitel sind 2.3.0, 2.4.0 und 2.4.1, die Nummerierung der bestehenden Kapitel wurde entsprechend verschoben.

18.05.2024

Der Zeichnungssatz steht jetzt als V0.5.4 zur Verfügung.

15.05.2024

Eine neue Version der Dokumentation steht als V0.7.21 online und als Download zur Verfügung. Es handelt sich um eine allgemeine Revision mit besseren Formulierungen und Konkretisierungen, u.a. bei der Beschreibung des *RESET-Signals und des 8049-Minimalsystems mit externem Programmspeicher.

07.05.2024

Eine neue Version der Dokumentation und des Zeichnungssatzes stehen als V0.7.20 bzw. V0.5.3 online und als Download zur Verfügung. Es handelt sich um eine allgemeine Revision mit einigen Konkretisierungen und Bereinigungen.

17.04.2024

Der Zeichnungssatz (Blatt 15) und die Dokumentation (Kapitel 2.5.0) wurden durch detailliertere Logik-Analysator Aufzeichnungen erweitert. Der Zeichnungssatz steht jetzt als V0.5.2 und die Dokumentation als V0.7.19 zur Verfügung.

12.04.2024

Eine neue Version des Zeichnungssatzes ist als V0.5.1 verfügbar. Die Darstellungen der Logik-Analysator Aufzeichnungen wurden überarbeitet, so dass sie übersichtlicher sind (Blatt 14, Blatt 15).

11.04.2024

In der Version V0.7.18 der als Download und Online verfügbaren Projekt-Dokumentation sind jetzt auch die auf Basis der Untersuchungen mit dem Logik-Analysator entstandenen Grafiken als Kapitel 2.5.0 enthalten.

04.04.2024

In der neuen Version V0.7.17 der von dieser Seite abrufbaren Download-Version (PDF) der Projekt-Dokumentation sind neben Änderungen am Text alle Zeichnungen (Diagramme, Schaltplanauszüge) in deutlich besserer Qualität enthalten. Die Online-Version der Projekt-Dokumentation V0.7.17 und die Online- und Downloadversionen des Zeichnungssatzes V0.5.0 enthalten ebenfalls Aktualisierungen.

27.03.2024

Eine neue Revision der Projekt-Dokumentation, in der Hauptsache mit Konkretisierungen (unter anderem das "CLK"-Signal an T0 betreffend) und etwas verschlankt, ist als V0.7.16 online und als Download verfügbar.

04.03.2024

Es gibt eine neue Revision des Zeichnungssatzes und der Projekt-Dokumentation (Online- und Download-Versionen). Änderungen wurden im Zeichnungssatz an Blatt 12 und in der Dokumentation im Kapitel 2 vorgenommen, hauptsächlich an den MCS-48 Timing-Diagrammen als Folge der Messungen mit dem Logik-Analysator.

19.02.2024

Es wurden umfangreiche Untersuchungen mit Hilfe eines Logik-Analysators an den am µPD8049 verfügbaren Signalen unternommen, um den internen Abläufen und deren Timing dieses Mitglieds der Intel MCS-48 Familie etwas genauer auf die Spur zu kommen. Die bisherigen Ergebnisse sind als neues Blatt 14 ("MCS-48 Logic Analyzer Traces") in dem jetzt wieder erweiterten Zeichnungssatz (Online- und Download-Versionen) dokumentiert.
Ich habe trotz langer und aufwändiger Recherche über die Intel MCS-48 Familie keine Kenntnis, dass bisher detailliertere Informationen und Einblicke in die interne Funktion und dessen Timing aufgezeichnet und öffentlich zur Verfügung gestellt wurden : vermutlich eine Premiere.

03.02.2024

Die Projekt-Dokumentation und der Zeichnungssatz (Online- und Download-Versionen) wurden aktualisiert :
Unter anderem wurden Ungenauigkeiten in den Darstellungen des 8049 / MCS-48 Timings bei externen Zugriffen mit Hilfe des "PROG"-Signals und den unteren 4 Bit von P2 (P2.0, P2.1, P2.2, P2.3) (Dokumentation : Kapitel 2.4.8, Zeichnungssatz : Blatt 6,
Blatt 12) sowie in der Beschreibung der Memory-Maps (Dokumentation : Kapitel 5.3.0, Kapitel 5.4.0) korrigiert.

20.01.2024

Die Hardware-Memory-Management-Unit (MMU) des DeMon48_128k-Projekts wurde aktualisiert, so dass jetzt DBL als P4, DBH als P5, PBR als P6 und EXP als P7 über "MOVD Pp,A"-/"ORLD Pp,A"-Befehle angesprochen werden. Die MMU kann jetzt per Jumper so konfiguriert werden, dass DBL automatisch in jedem ALE-Zyklus mit dem aktuellen Inhalt von P2.3 ... P2.0 geladen wird und so transparent den Inhalt des niederwertigen Nibbles von P2 als A8 ... A11 für Datenspeicher- und I/O-Zugriffe bereitstellt. So kann auch in einer 4(8)kByte Memory Map (siehe Dokumentation / Kapitel 5) - beispielsweise, um das "PROG"-Signal für 8243 Portexpander statt für die MMU nutzen zu können - ein memory-mapped I/O-Bereich eingeblendet und angesprochen werden. Selbstverständlich bleiben alle anderen Funktionen der MMU erhalten und unverändert. Der Zeichnungssatz und die Projekt-Dokumentation (Online- und Download-Versionen) wurden entsprechend überarbeitet und erweitert.


01.01.2024

Die Hardware-Memory-Management-Unit (MMU) wurde um ein weiteres Register erweitert, so dass das DBR (Data-Bank-Register) jetzt aus DBL (Data-Bank-Register-Low) und DBH (Data-Bank-Register-High) besteht und die benötigten 8 Adressbits unabhängig von Port2 des Mikrocontrollers bereitstellen kann. Hintergrund ist, dass es sich bei den ersten ernsthaften Versuchen der 4kB-Bank-übergreifenden Programmierung als störend erwiesen hat, wenn nach einem Zugriff auf beispielsweise das PBR (Program-Bank-Register) auch das untere Nibble der Bank-Adresse für Datenspeicherzugriffe wiederhergestellt werden musste, weil der Inhalt von P2.0 bis P2.3 durch den "MOVD Pp,A"-Befehl zerstört worden war. Zusätzlich wurde die Struktur der Projekt-Dokumentation und des Zeichnungssatzes geändert. Der Zeichnungssatz und die Projekt-Dokumentation (Online- und Download-Versionen) wurden entsprechend überarbeitet und erweitert.


18.10.2023

Die Hardware des DeMon48_128k-Projekts ist um einen Adressbus-Monitor erweitert worden.
Auf zwei 4-Digit LED-Displays werden gleichzeitig die Adressen des letzten Programm- und Datenspeicher- beziehungsweise I/O-Zugriffs angezeigt. Durch einen Umschalter mit Mittelstellung kann die Anzeige im Oktal-, Hexadezimal- oder Dezimal-System ausgewählt werden.
Mit Hilfe von 3 LEDs wird das ausgewählte Anzeigeformat angezeigt und durch 2 weitere LEDs, ob bei der Binär-zu-Oktal- oder Binär-zu-Dezimal-Wandlung ein Überlauf stattgefunden hat (auf 4 Digits können im Oktal-Format beispielsweise maximal 12 Bit angezeigt werden, bei einem Eingabeformat von 16 Bit können also 4 Bit auf den Displays nicht angezeigt werden).
Auch bei einem Überlauf bei der Binär-zu-Dezimal-Wandlung wird auf den 4 Digits der korrekte "Rest" (1000er, 100er, 10er und 1er) angezeigt. Der Zeichnungssatz (Online- und Download-Version) wurde entsprechend überarbeitet und erweitert.


11.09.2023

Eine erweiterte Hardware-MMU ermöglicht 4kB-Bank-übergreifende Sprünge zu einer 16-Bit-Adresse per "JMP"-/"CALL"-/"RET"-Befehl (z.B. von 0x08E7 nach 0x53F0).

Beispiele :

08E3 SEL MB0   ;MB-FF (PC.11) = 0
08E4 MOV A,#05 ;A = 05
08E6 MOVD P6,A ;PBR = A
08E7 JMP 3F0   ;PC.0 ... PC.10 = 3F0

53F0 Nächster Befehl

Die Hardware-MMU unterstützt Unterprogrammaufrufe per "CALL" über 4kB-Bankgrenzen hinweg, allerdings muss die 4kB-Bank, zu der mit "RET" zurückgekehrt werden soll, beispielsweise in einem Register hinterlegt werden :

08E1 MOV R7,#00 ;R7 = 0 = aktuelle 4kB-Programmspeicherbank
08E3 SEL MB0    ;MB-FF (PC.11) = 0
08E4 MOV A,#05  ;A = 05
08E6 MOVD P6,A  ;PBR = A
08E7 CALL 3F0   ;Stack@SP = PC.0 ... PC.11, PC.0 ... PC.10 = 3F0

53F0 Nächster Befehl
[...]
542A MOV A,R7   ;A = R7
542B MOVD P6,A  ;PBR = A
542C RET        ;PC.0 ... PC.11 = Stack@SP

08E9 Nächster Befehl

Einzelheiten gibt es in der überarbeiteten Dokumentation (Kapitel 3.9.0) und dem zugehörigen Zeichnungssatz.

Zusätzlich wurde der Hardware-Breakpoint etwas verbessert.


DeMon48_128k_Breadboard1

DeMon48_128k_MMU_DBR_Write

DeMon48_128k_GUI

DeMon48_128k_Breadboard2