Versionsgeschiche
Version 0.65 alpha:
- Unterstützung des Schrittmotor-Positioniersystems
- Naturgetreuere Umsetzung von 0x0A und 0x0D durch die
serielle Schnittstelle
Version 0.61 alpha:
- Wurde das Programm im Run-Modus beendet, so wurden die Fenster ALU, RAM usw. nicht korrekt
aktualisiert.
- Bei der Verwendung der Vorgabe-Code-Elemente konnte es sein, daß die Quellcodedatei
evtl. in anderen Editoren nicht korrekt dargestellt wurde.
Version 0.6 alpha:
- Der Analog-Digital-Wandler wird emuliert.
- Die CAPCOM-Einheit wird emuliert.
- Es wird eine serielle Schnittstelle emuliert, auf der Daten ausgegeben werden können
und von der Daten empfangen werden können.
- Die Funktionsweise der externen Interrupts wurde dahingehend erweitert, daß die
Interrupts jetzt über die beiden Bits INT0 und INT1 ausgelöst werden, wobei die
Einstellungen in den entsprechenden Bits in den Registern TCON und ITCON
berücksichtigt werden.
- Die Bedeutung von TLx und THx wurden für den Timer-Modus 1 vertauscht, so daß in TLx
jetzt das niederwertige Byte steht und in THx das höherwertige Byte.
- Die Ports verfügen jeweils über einen Ausgabe-Latch, aus dem Read-Modify-Write-Befehle
lesen.
- Es wird neben mov dptr,Marke auch mov dptr,#Marke
unterstützt.
- Es darf jetzt hinter einer Sprungmarke in der selben Zeile auch noch ein Befehl stehen.
- Als Rücksprungadresse zum Monitorprogramm wird 0x918E neben den bisherigen
Adressen unterstützt.
- Der externe Interrupt 1 wurde bisher nicht korrekt ausgelöst, wenn als Auslöseereignis
"fallende Flanke" gewählt wurde.
- Der Befehl djnz dard,Marke sprang bisher zu einer falschen Adresse, wenn
Marke eine höhere Adresse als der Befehl selber besaß.
Version 0.51 alpha:
- Bei der Bitadressierung können einzelne Bits jetzt auch über ihre smybolischen Namen
angesprochen werden.
- Der Timer führt nun 2 oder 4 Zyklen pro Befehl aus, wenn der Befehl 2 bzw. 4 Timerzyklen
benötigt auf dem echten 8051 Prozessor benötigt.
- Zum Aktivieren des Idle- oder Powerdown-Modus muß nun erst das entsprechende Enable-Bit
gesetzt werden und dann im nächsten Befehl kann erst der Stromsparmodus aktiviert werden.
(Dies entspricht dem Verhalten des echten 8051 Prozessors.)
- Einige vorgefertigte Code-Sequenzen können nun direkt aus dem Menü heraus eingefügt werden.
- Das Verhalten der Ports wird nun naturgetreuer simuliert.
Version 0.5 alpha:
- Es werden die beiden Timer in allen Betreibsmodi unterstützt.
- Der externe Datenspeicher und der Programmspeicher können nun getrennt werden.
- Der Run-Dialog ermöglicht jetzt das Anzeigen von Speicherstellen, während
das Programm läuft.
- Der Emulator besitzt ein komplettes Interrupt-System.
- Das Power-Management über die Register PCON und PCON1 wird unterstützt.
- Das SFR-Remapping über das PMAP-Bit im SYSCON-Register wird unterstützt.
- .equ-Konstanten können jetzt auch als 8-Bit-Konstanten verwendet werden.
(Also z.B. mov r0,#Quelle.)
- Bitadressierung ist jetzt auch über direkte Angabe der Bitnummer möglich
- Die LEDs an Port 1 können durch Anklicken ein- und ausgeschaltet werden
- Der reti-Befehl wurde vom Assembler bisher nicht korrekt erkannt.
- Die Befehle setb und clr funktionierten bisher teilweise nicht korrekt.
- Der Fehler, daß hinter Blöcken mit größeren .org-Angaben keine kleineren
Adressen mehr zugelassen wurden, wurde behoben.
Version 0.46 alpha:
- Die Emulator-Direktiven beginnen nun alle mit ";$", so daß sie vom echten Assembler
für einen Kommentar gehalten werden und ignoriert werden. Damit kann für den
Emulator und den echten Assembler der selbe Quellcode ohne irgendwelche Änderungen
verwendet werden.
- Der Speicherschutz kann über den Konfigurationsdialog eingestellt werden, so daß
die Emulatordirektive nicht mehr unbedingt erforderlich ist.
- Beim Löschen des Speichers kann ausgewählt werden, welche Speicher gelöscht werden sollen.
- Der Fehler, daß im Emulator nicht alle bitadressierbaren Adressen unterstützt wurden,
wurde behoben.
Version 0.45 alpha:
- Der Assembler kann jetzt ein Prüfsumme gemäß des SRec2-Formates erstellen.
- Es kann eingestellt werden, ob nur die SF-Registernamen erkannt werden sollen,
die auch vom as31 erkannt werden, oder ob alle SF-Registernamen erkannt werden sollen.
- Die Umsetzung der Bitadressierung erfolgt wie beim as31.
- Bei Sprungmarken muß der Doppelpunkt (wie beim echten as31) hinter dem
Markennamen stehen.
- Nach dem reinen Assemblieren wurde bisher fälschlicherweise die erste Programmzeile
hervorgehoben, so als wenn das Programm gestartet worden wäre.
- Der Hintergrund-Assembler hat bisher unter gewissen Randbedingungen Fehlermeldungen in
Dialogform statt in der Statuszeile ausgegeben.
Version 0.4 alpha:
- Es werden alle Assembler-Befehle des echten 8051-Prozessors unterstützt.
- Der Programmcode wird ständig im Hintergrund assembliert und in der Statuszeile
wird angezeigt, ob der Code korrekt ist und wenn nicht, an welcher Stelle die
Übersetzung gescheitert ist.
- In dem Fenster "Externer Speicher" wird nun automatisch die Disassemblierung des
Befehls, über dem sich die Maus befindet angezeigt.
- Die bisherige Direktive ".wort" heißt nun korrekt ".word" und zusätzlich gibt es
jetzt die neue Direktive ".byte".
Version 0.35 alpha:
- Die an Port 1 angeschlossenen LEDs können jetzt ebenfalls dargestellt werden.
- Es können nun beliebige Halteadressen definiert werden, bei deren Erreichen das
Programm automatisch unterbrochen wird.
- Das Programm stoppt nun, wenn die Adresse 0x91F9 oder 0x0000 erreicht wird. Der
Stopprg-Befehl ist nicht mehr nötig und wird auch nicht mehr unterstützt.
- Die Geschwindigkeit des emulierten Prozessors wurde erhöht.
Version 0.3 alpha:
- Der Emulator kennt alle Befehle bis auf die Befehle, die Bit-Adressierungen enthalten
und den reti-Befehl; damit sind jetzt 98 der 111 Befehle implementiert.
- Der Assembler kennt die Direktiven ".wort" und "$speedtest" um Datenwörter
direkt in den Programmcode einzufügen und um die Geschwindigkeit des Emulators
messen zu können.
- Der Code-Speicher (externer Speicher) kann nun auch über ein eigenes Fenster
eingesehen und bearbeitet werden.
- Der XRAM wird unterstützt und kann über das XMAP-Bit des SYSCON-Registers
oder über das "externer Speicher"-Fenster zugeschaltet werden.
- Indirekt Adressierung wird unterstützt
- Es existieren 8 DPTR, die über das DPSEL-Register umgeschaltet werden können.
- Die Register ACC,B,PSW,SP,DPL,DPH,DPSEL können auch über ihre Namen als Variablen angesprochen werden.
Der Assembler ersetzt die Namen durch die entsprechenden Adresse im SFR-Area.
- Das Special Function Area ist jetzt auch vorhanden und kann über direkt Adressierung der oberen
128 Bytes angesprochen werden.
- Das Flag-Register wird jetzt vollständig unterstützt.
- Der Editor wurde überarbeitet; es treten jetzt keine Verzögerungen zwischen einzelnen Tastenanschlägen auf.
- Der Fehler, daß das Programm nach dem Run-Modus nicht korrekt beendet wurde, ist behoben.
Version 0.2 alpha:
- Der Assembler kann nun auch fast (bis auf die Prüfsumme) sRec2-Code erstellen.
- Der Disassembler kann nun auch eRec2-Dateien auswerten.
- Mittlerweile werden etwa 1/3 aller Befehle unterstützt. Folgende Befehle werden noch nicht unterstützt:
- Alle Befehle, die "@Ri" als Parameter haben
- movx *, movc *
- Stackbefehle, Boolsche Operationen, Bitmanipulations Befehle, Sprungbefehle
- da a, mul ab, div ab
- Die ALU kennt diverse neue Register
- Einstellungen im Setup-Dialog werden jetzt korrekt gespeichert
- Fehler bei Binärdarstellung im Systemeumrechner behoben
- Neue Emulator-Direktive $protect default
- Mit den Fenster-Sets wird jetzt auch die Position des Rechnerfensters gespeichert.
- Im ALU-Fenster können die Register jetzt auch geändert werden.
Version 0.1 alpha:
Diese Version ist die erste Version überhaupt. Sie unterstützt bisher nur sehr wenige OpCodes.