*****************************************************************
OBJEKTCODEEDITOR OCE FUER Z1013
*****************************************************************
Der Objektcodeeditor enthaelt einen Assembler zur Uebersetzung von
Befehlen im Mnemonikcode in Maschinencode und den Reassembler zur
Rueckuebersetzung.
Ausser dem Maschinencode wird noch eine Markentabelle abgespeichert.
Programmstandort:
4000H ...5DFFH
OCE-Stack:
200H abwaerts
Hinweise zur Benutzung:
- adr = Hexzahl oder vereinbarte Marke
- ein Programmende ist eine Adresse, ab der mind. viermal
der Speicherinhalt 'FF' steht
- Verschieben von Progr.teilen nur in mit '00' oder 'FF'
belegten Speicher moeglich (bei M+E beachten)
- es ist deshalb guenstig, den Speicher mit 'FF' zu initiali-
sieren !
Nach dem Start des OCE auf der Adresse 4000H kann die Adresse der
Markentabelle eingegeben werden. Es muessen davor 20 Speicher-
plaetze freier Speicher sein fuer Merkzellen des OCE.
Danach befindet sich der OCE im Anzeigemodus.
+ Markentabelle
- Ende der Tabelle : '00'
- max. 127 Marken
- jede Vereinbarung und jeder Zugriff braucht 5 Byte
- ein Ueberlaufen wird nicht verhindert
+ Anzeigemodus
- Programmanfaenge und markante Programmstellen mit Global-
marken versehen ! (3.Zeichen = Buchstabe)
- Kommandos im Anzeigemodus :
Taste Funktion
------------------------------------------------------------
K direkte Maschinencodeeingabe
T Uebergang zum Testmodus ab Anzeigeadr.
H Vereinbarung der Anzeigeadr. als Haltepunkt
R Uebergang zum RAM-Modus
Q Uebergang zum Quellcodeeingabemodus
DOWN naechster Befehl
UP vorstehender Befehl
N 32 x DOWN
Z 32 x UP ( 'UP' und 'Z' nur bei vorhandener Globalmarke
bis 256 Byte vor akt. Adresse )
+/- Anzeigeadr. incrementieren
-/- Anzeigeadr. decrementieren
A Anzeige ab vorstehender Globalmarke
G G CR Anzeige ab Programmende
G 0 CR Anzeige ab der mit EXT vereinbarten Marke
G adr CR Anzeige ab adr
B Bindekommando (ersetzt symb. Adr. durch hexadez.)
erzeugt lauffaehiges Programm
B CR Binden auf Anzeigeadr.
B adr CR
-2-
M Verschieben von Programmen mit Marken
M adr CR CR Verschieben von adr bis Programmende auf Bereich
ab Anzeigeadr.
M adr1 CR adr2 CR von adr1 bis ausschliesslich adr2 auf Be-
reich ab Anzeigeadr.
V Verschieben nur der Marken (Markenumrechnung)
V adr CR von adr bis Progr.ende auf Anzeigebereich
V adr1 CR adr2 CR von adr1 bis ausschl. adr2 auf Anzeigeadr.
E Eingabebereich schaffen
E CR 1 Byte
E adr CR ab akt. Adr. bis ausschl. adr
das folgende Programm wird entsprechend verschoben
S Streichen von Befehlen
S CR 1 Befehl streichen
S adr CR von Anzeigeadr. bis adr streichen
L Anzeige ab Programmzaehler vor dem letzten Schritt im Testmode
O Quellprogrammausgabe
O adr CR Programm ab adr als Quelle in RAM geschrieben
I Quellprogrammeingabe
I adr CR Quellprogramm ab adr wird in Anzeigebereich ueber-
nommen (gl. Format wie oben)
P Reassemblerliste drucken
akt. Zeile mit '*' gekennzeichnet
Unterbrechung 'S, Fortsetzung 'Q
bei Ende wird Seitenvorschub erwartet - F
P adr CR : adr= Endadr. abs. oder symbolisch
P CR bis Progr.ende
+ Quellcodeeingabemodus
- Zahlen dez. oder hex. mit Ziffer beginnend
(z.B. : 0BFFEH )
- Marke 3 Zeichen, erstes = Buchstabe
- alte Marken ueberschreibbar
- keine Marke: Tabulator oder 1 Leerzeichen
- nach Marke kann Offset bis +127/-128 stehen
- Op.code,Operanden nur durch Leerzeichen getrennt
- Ueberschreiben von Quellcode vermeiden! Vorsicht!
- kein Kommentar!
- Korrekturen: mit S Befehl streichen
mit E Freiraum schaffen
Eingebe neuer Befehl
- Fehlermeldungen:
F Operations- oder Operandenfehler
M Marke schon vorhanden
O Offset zu gross
- Uebernahme mit CR, nochmaliges CR naechster Befehl, jede
andere Taste - Anzeigemodus
- Pseudooperationen:
DB n DW nn
DM "text" MAR:EXT adr -ext. Marken deklarieren
- # Speicherplatzzaehler
+ Binden
- mit 'B' auf waehlbare adr oder nach 'T' auf die Anzeigeadr.
- nur das erstellte Programm als gesamtes (1 Schritt)
- mit EXT vereinbarte Marken werden nicht verschoben
- nach Fehlermeldung mit CR weitere Fehler angezeigt
( Bindeoperation unterbrochen!)
- MTB beim Binden nicht veraendert!
-3-
+ RAM-Modus
- Funktionen des RAM-Modus:
* Anzeige eines bel. Speicherbereichs in HEX oder ASCII
* Speichereingabe
* Kopieren eines Bereichs in anderen
* Vergleich
* Suchen nach Bytes
* Speicherbereich ausdrucken
- Kommandos:
Taste Funktion
-----------------------------------------------------------------
H Speicher in HEX anz.
S " " ASCII "
- +1
- -1
DOWN +8
UP -8
N naechste Seite
Z 1 Seite zurueck
G direkte Positionierung
CR uebernehmen Eingabefeld in akt. Pos. (HEX)
T ASCII-Code des naechsten ueber Tast. eingeg. Zeichens
in Eingabefeld uebernehmen
I Fuellen eines Bereiches
I adr CR ab akt. Adr. bis ausschl. adr
M Kopieren eines Bereichs
M adr1 CR adr2 CR -von adr1 bis ausschl. adr2 in akt. Ber.
V Vergleichen
V adr1 CR adr2 CR -Anzahl der Differenzen angezeigt
Kursor auf ersten Unterschied
Fortsetzung: CR Wert aus Eingabefeld (Vergl.bereich)
wird auf akt. Adr. uebernommen
V Fortsetzung Vergleich
BREAK Abbruch
L Suchen einer Datenfolge
L adr1 CR adr2 CR Datenfolge ab adr1 bis ausschl. adr2
wird im Speicher gesucht
wenn gefunden, auf akt. adr:
CR Suche fortsetzen
BREAK Abbruch, Bereich vor Suche angezeigt
P Ausdruck Speicherbelegung
P adr CR -anlog P im Anzeigem.
+ Testmodus
T Abarbeitung akt. Befehl und protokollieren
normal naechster (vom Progr. auszuf.) Befehl, wenn zuvor
im A-Modus Haltepkt. festgelegt, dann dieser
N Abarbeitung akt. Befehl und Protokoll, naechster im
Speicher stehender Befehl
L direktes Abarbeiten (Echtzeit)
0FFH wirkt als Softwarehaltepunkt, naechster Bef. protok.
R Aendern Registerinh. mit CR bestaetigt
BREAK nicht uebernommen
- Achtung: bei 'T' und 'N' I-Reg. nicht veraendert, IM2
+ Tastencodes: CR/0D,BREAK/03,DOWN/0A,UP/0B,LEFT/08,RIGHT/09
(INS/05,DEL/13,TAB/17)
+ Drucker: eigene Routine enthalten,andere ueber Sprungverteiler
auf 5D43H/5D44H; Uebergabe in A (JMP FFE8H)
******
ANMERKUNGEN: Der Objektcode-Editor ist aus dem Edito-Assembler
vom MC 80 aus Gera entstanden. dieser Computer loescht bei der
Grundinitialisierung sofort seinen gesammten Speicher und traegt
in jede Zelle ein 'FF' ein.
Deshalb tun Sie dasselbe. Vor Laden und Starten des OCE zuerst
den gesammten Speicherbereich, den Sie nutzen wollen, mit FF be-
schreiben.
(z.B.: K 0100 DFFFH FF)
Der Speicherbereich fuer Markentabellen ist im Grundzustand auf
7800H eingestellt. (MTB#7800)
Setzen Sie zuerst mit dem Kommando G eine Globalmarke.
(G aadr. >ENTER<, dann meldet er sich auf der gewuenschten
Adresse, jetzt Q, dann Marke setzen).
Ein Rueckwartsblaettern ist nur bei gesetzter Globalmarke moeg-
lich.
Wenn Sie Teile loeschen wollen, jedes Zeichen, auch hinter dem
Cursor, loeschen.
letzter Bearbeiter:
Uwe Gast
Ringfurther Weg 5
Magdeburg
3035