Update des MONI11m

Ab der Version vom 03.06.2001 ist der MONI11m in der Lage sich selbst im externen EEPROM zu überschreiben. Vor dem Update sollte das 68hc11 System ausgeschaltet und erneut eingeschalten werden, um sicher zu sein, daß keine Interrupts mehr aktiv sind. Das Update kann einfach mit dem Hyper Terminal ausgeführt werden. Dabei ist die neue Version von "moni11m.sr" genau wie beim Laden eines Programms in den RAM zu laden. Es wird aber nicht das Kommando "L" sondern "U" oder "UPDATE " gestartet. Nach der Eingabe des Kommandos ist also "moni11m.sr " mit dem Hyper Terminal als Textfile zu senden.

Bild: Laden eines Programms

Das Laden erfolgt dabei wie bei dem Kommando "L" in den RAM aber fest auf Adresse 2000 Hex. Sind beim Laden keine Fehler aufgetreten, so erscheint die Ausschrift "-ok-". Jetzt prüft das UPDATE Kommando die Gültigkeit der geladenen Daten, in dem überprüft wird, ob im RAM an der Adresse, wo die Daten stehen müssen die nach der Programmierung im EEPROM auf den Adressen fffe Hex und ffff Hex geladen sind, nicht ff, ff Hex sind. An dieser Stelle im EEPROM muß sich der RESET-Vektor, also die Startadresse des Monitor befinden. Wird ein ff, ff Hex gefunden, so wird das Update sofort abgebrochen und es erscheint die Meldung "-error- ". Sind die Daten fehlerfrei, dann wird sofort mit dem Programmieren begonnen. Das Programmieren dauert etwa 5-6 mal länger als die Zeit vom Start des Ladens bis zum erscheinen der Ausschrift "-ok-". Das Programmieren darf  auf keinen Fall abgebrochen werden! Warten Sie bis sich der neue Monitor meldet. Ist beim Programmieren ein Fehler aufgetreten, dann erscheint hinter dem "-ok-" ein Fragezeichen und es wird versucht den Monitor zu starten. Wenn er noch arbeitet und die Registeranzeige mit dem Kommando "R" auch noch geht, dann steht in IY die fehlerhafte Adresse im EEPROM. Ist die Programmierung erfolgreich, dann erscheint hinter dem "-ok-" ein Ausrufezeichen und der neue Monitor wird gestartet. Bei einem Update von der Version vom 12.06.2002 auf die Version vom 31.07.2002 entstand auf dem Hyper Terminal folgendes Bild.

MONI11m 12.06.2002 (c) MCT & TU-D

* For general help try h or ? at command prompt (:).

* You can also try h or ? for entries marked with (h), after invoking them.

:update
.................................
-ok-!
MONI11m 31.07.2002 (c) MCT & TU-D

* For general help try h or ? at command prompt (:).

* You can also try h or ? for entries marked with (h), after invoking them.

:h
--- RAM / EEPROM --------------------------------------------------------------
Modify (h)          :M  (addr)
Display             :D  (start) [end]
Fill                :F  (start end byte)
Compare             :C  (start1 end1 start2)
Move                :MO (start1 end1 start2)
Search byte         :SE (start end byte)
HC11 EEPROM (h)     :WE (addr)
FlashEEPROM write   :WF (start1 end1 start2)
--- REGISTER ------------------------------------------------------------------
Display register    :R
Change register     :RA (v)|:RB (v)|:RC (v)|:RX (vv)|:RY (vv)|:RS (vv)|:RP (vv)
--- DEBUG ---------------------------------------------------------------------
Set breakpoint      :SB (addr)
Display breakpoint  :DB
Clear breakpoint    :CB
Trace               :T  [addr]
Goto                :G  [addr]
--- SPECIAL -------------------------------------------------------------------
Load s-records      :L  [addr]
Load BIN File       :O                (Load File at MCT 'OUT' Format)
Memory Test         :MT (start end)
Add two hex numbers :CA (nu1 nu2)
:

Update vom 15.07.2004


MONI11m 31.07.2002 (c) MCT & TU-D

* For general help try h or ? at command prompt (:).

* You can also try h or ? for entries marked with (h), after invoking them.

:up
.................................
-ok-!
MONI11m 15.07.2004 (c) MCT & TU-D

* For general help try h or ? at command prompt (:).

* You can also try h or ? for entries marked with (h), after invoking them.

:h
--- RAM / EEPROM --------------------------------------------------------------
Modify (h)          :M  (addr)
Display             :D  (start) [end]
Fill                :F  (start end byte)
Compare             :C  (start1 end1 start2)
Move                :MO (start1 end1 start2)
Search byte         :SE (start end byte)
HC11 EEPROM (h)     :WE (addr)
FlashEEPROM write   :WF (start1 end1 start2)
--- REGISTER ------------------------------------------------------------------
Display register    :R
Change register     :RA (v)|:RB (v)|:RC (v)|:RX (vv)|:RY (vv)|:RS (vv)|:RP (vv)
--- DEBUG ---------------------------------------------------------------------
Set breakpoint      :SB (addr)
Display breakpoint  :DB
Clear breakpoint    :CB
Trace               :T  [addr]
Goto                :G  [addr]
--- SPECIAL -------------------------------------------------------------------
Load s-records      :L  [addr]
Load BIN File       :O                (Load File at MCT 'OUT' Format)
System Config       :SY
Memory Test         :MT (start end)
Add two hex numbers :CA (nu1 nu2)
:


In der Version vom 12.06.2002 sind folgende Veränderungen eingefügt.

  1. Die Arbeitszellen für den Breakpoint werden nur noch beim Kaltstart gelöscht. Der Systemruf "inimon" löscht den Breakpoint nicht mehr. Dadurch kann auch bei Verwendung dieses Systemrufes vor dem Neustart eines Programms ein Breakpoint gesetzt werden. Es muß kein SWI Befehl mehr am Anfang eines Programm hinter dem Aufruf von "inimon" eingefügt werden. Lädt man die zu testenden Programme mit dem Monitorkommando "L", entsteht daraus auch kein Nachteil.
  2. In den Kommandos "M" und "WE" kann jetzt zum Verändern von Speicherinhalten neben dem Zeichen "/" auch " " eingegeben werden. Auf dem Display erscheint dabei auch bei der Eingabe von " " ein "/". Ist der danach eingegebene Wert fehlerhaft, dann wird erneut zur Eingabe in diese Adresse aufgefordert, während sonst immer die Adresse inkrementiert wird.

Veränderungen in der Version vom 31.07.2002

Einfügung des Kommandos "O" ("OUT") zum laden von BIN Files in den internen EEPROM vom B600 bis B7FF Hex. Da der Zwerg11plus mit einer CPU ausgerüstet ist, die den internen EEPROM besitzt, kann ein Programm zum Abschluß noch in diesem EEPROM getestet werden. Das Assemblersystem von MCT erzeugt bei der Übersetzung für den internen EEPROM ein BIN File mit der Erweiterung '.out'. Das neue Kommando lädt solche Files in den RAM und programmiert danach den internen EEPROM. In dem folgenden Protokoll ist das Programmieren des BIN File 'mini11m.out' und dessen Test zu sehen. Dies ist möglich, da der Moni11m die Umgebung des Special Bootstrap Mode im Expandet Mode simuliert. Das Programm kann natürlich auch direkt im Spezial Bootstrap Mode abgearbeitet werden.
:out

Load MCT 'OUT' File to HC11
EEPROM at B600 - B7FF Hex.

(Go Transfer on HyperTerminal
with 'Send Text File').

Load 01FE Hex Byte to RAM o.k!

Programming EEPROM!

Programming o.k.


:g b600

MINI11m

M_addr
D_addr_addr
G_addr
:g ffbb

MONI11m 31.07.2002 (c) MCT & TU-D

* For general help try h or ? at command prompt (:).

* You can also try h or ? for entries marked with (h), after invoking them.

:

Veränderungen in der Version vom 15.07.2004

Es ist im Special Test Mode jetzt möglich das CONFIG Register ($103F) zu verändern. Um den Monitor im Special Test Mode zu starten, ist beim Zweg11plus ein Booten im Special Bootstrap Mode erforderlich. Es muß dann ein kleines Programm gestartet werden, das auf Adresse $0000 oder $B600 beginnt und im HPRIO Register ($103C) das MDA Bit (Bit 5) setzt und danach auf die Adresse $FFBB springt. Nun ist es möglich mit den neuen Kommandos das CONFIG Register zu verändern. Die neuen Kommandos werden aufgelistet, wenn man das Kommando "SY" eingibt. Das Kommando "SY" ist im "Help" des Hauptmenu bereits zu sehen.
Kann das verwendete System direkt im Special Test Mode gestartet werden, dann sind alle neuen Kommandos nutzbar, wenn man auf die Adressen $BFC0 - $BFFF im externen Speicher eine Kopie der Interruptvektoren von den Adressen $FFC0 - $FFFF schreibt. Diese Kopie kann man mit den Folgenden Kommandos anlegen:

:mo ffc0 ffff 2fc0
:wf 2fc0 2fff bfc0
:

Im folgenden Bild ist der Start eines Zwerg11plus im Special Bootstrap Mode mit dem Programm MINI11m zu sehen. Es wird das HPRIO Register mit 75 beschrieben, und dadurch der Special Test Mode eingeschaltet. Nun ist der Externe Speicher wieder zugriffsfähig, und es kann der MONI11m mit g ffbb gestartet werden. Wenn noch nicht im Expandet Mode die Kopie der Interruptvektoren angelegt wurde, dann sollte dies jetzt erfolgen.

HPRIO ändern und MONI11m starten

Die ersten 6 Befehle des Monitor brauchen nur 24 Takte und sind damit schneller als die geforderten 64 Takte maximal zum Beschreiben der Register INIT ($103D), TMSK2 ($1024) und OPTION ($1039) im Expandet Mode. Die Einstellungen sind damit auch bei jedem Start im Expandet Mode wirksam! Im Special Test Mode sind die Einschränkungen für den Zugriff auf diese Register nicht vorhanden und damit sind alle neuen Kommandos generell nutzbar. Im Zwerg11plus muß die Veränderung des CONFIG Registers im Special Test Mode erfolgen, während die Veränderung der anderen 3 Register auch im Expandet Mode möglich ist. Das System muß also unterschiedlich gebootet werden. Folgendes Bild erscheint, beim Starten des Kommandos SY.

:sy

--- System Config ------------------------------------------------------------
 CONFIG': 0D   INIT': 01   TMSK2': 00   OPTION': 10

 EEPROM: 1  COP: 1  IRQ: L  RAM: 0000  TIMERv: 01  COPv: 01

RESET all Config    :GR

EEPROM off/on       :E0  |:E1
COP    on/off       :C0  |:C1
IRQE   level/edge   :IL  |:IE

RAM    0000...f000  :MR (v)    0 <= v <= f hex
Timer  Clock/v      :TC (v)    v = 1 | v = 4 | v =  8 | v = 16
COP    Clock/v      :CC (v)    v = 1 | v = 4 | v = 16 | v = 64

Set all and exit SY :SA
:

In den beiden Zeilen unter der Überschrift werden die aktuellen Einstellungen aufgelistet. Darunter erscheinen die neuen Kommandos. Alle Kommandos führen die Einstellungen nicht direckt aus, sondern bereiten sie nur vor. Nach jedem Kommando erscheint das obige Bild neu, wobei in den Statuszeilen die vorbereiteten Veränderungen zu sehen sind. Sie werden erst mit dem Kommando SA in das CONFIG Register und die 3 Speicherzellen des Monitor programmiert. Im folgenden Bild ist die Einstellung des Vorteilers für die TIMER auf 16 zu sehen:

:tc 16

--- System Config ------------------------------------------------------------
 CONFIG': 0D   INIT': 01   TMSK2': 03   OPTION': 10

 EEPROM: 1  COP: 1  IRQ: L  RAM: 0000  TIMERv: 16  COPv: 01

RESET all Config    :GR

EEPROM off/on       :E0  |:E1
COP    on/off       :C0  |:C1
IRQE   level/edge   :IL  |:IE

RAM    0000...f000  :MR (v)    0 <= v <= f hex
Timer  Clock/v      :TC (v)    v = 1 | v = 4 | v =  8 | v = 16
COP    Clock/v      :CC (v)    v = 1 | v = 4 | v = 16 | v = 64

Set all and exit SY :SA
:


Die Kommandos 2 bis 4 sind nur im Special Test Mode möglich. Die darauf folgenden 3 können auch im Expandet Mode verwendet werden. Wird eins der ersten 3 Kommandos im Expandet Mode gestartet, dann erscheint folgender Hinweiß:

:e0

Boot System at special mode please

:

Sind alle Einstellungen vorbereitet, dann muß das Kommando SA gegeben werden. Es erscheinen folgende Meldungen:

:sa

Programming System Config


RESET 68hc11 please

:

Die Meldung "Programming System Config" erscheint sofort nach dem Eingeben des Kommandos SA. Die Meldung "RESET 68hc11 please" erscheint erst nachdem die Programmierung der Speicherzellen abgeschlossen ist. Es muß nun unbedingt das RESET Signal des 68hc11 aktiviert werden, damit die Änderungen Wirksam werden. Beim Zwerg11plus muß dabei im Expandet Mode gebootet werden. Systeme die im Special Test Mode gebootet werden können, brauchen nicht auf den Expandet Mode umgestellt werden. Um alle Werte wieder in den Grundzustand zu bringen, kann das Kommando "GR" eingegeben werden. Dies ist besonders wichtig für die restlichen Bit in den Registern, die durch die Kommandos nicht verändert werden können, aber durch vorher gelaufene Programme jede beliebige Einstellung haben können.



Zurück zur Lehrveranstaltungsbeschreibung 

Siegmar Schöne 15.07.2004