***************************************************************** 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