Editor-Beschreibung Bestandteile: Editor/Assembler Reassembler Binder Es erfolgt eine Speicherung von Maschinencode (MC) und Markentabelle. Die Eingabe der Befehle erfolgt zeilenweise; Syntaxfehler werden sofort er- kannt.Es gibt 3 Betriebsarten mit spezifischen Kommandos: Anzeigemodus Quellcode-Eingabe-Modus RAM-Modus Aufruf des Editors: J 2C03 NEUSTART J 2C00 RESTART zur Weiterbear- beitung vorhandener MC und MTB (Markentabelle) Ausschrift: EDIT MTB#1C20 Die Vorzugsadresse der MTB kann ueberschrieben werden, wenn diese auf anderem RAM-Bereich liegen soll. Vor MTB werden noch 20H Byte Arbeitsspeicher benoetigt. Das 1.Byte der MTB muss 00 sein. Bei Start auf 2C03H ist das in der angegebenen MTB der Fall. Nach der Betaeti- gung von ENTER befindet sich der Editor im Anzeigemodus. Von hier aus sind alle Modi erreichbar. Mit dem Kommando "G#adr" kann man die gewuenschte Programm- stelle (Adr) anwaehlen. Zur Be- staetigung von Kommandos dient immer die ENTER-Taste, zur Ablehnung dient in der Regel die OFF-Taste. Folgende Tasten er- hielten fuer den Editor zusaetz- liche Funktionen: @ = OFF S4-S = Kursor nach oben S4-R = Kursor nach unten S4-J = Kursor an Bildanfang S4-O = Kursor an Zeilenanfang S4-V = Tabulator S4-W = Zeichen loeschen S4-N = Zeile loeschen S4-T = BS loeschen Uebergaenge zwischen den Modi: ________________________________ |Anzeigemodus(OFF->>Betr.-Syst)| ________________________________ |"R" ^ |"Q" ^ |Enter |OFF | |OFF V | V | | RAM-Mod.| | Eingabe-Mod. | Das Ende der MTB ist immer 0. Werden bei der Eingabe Marken vereinbart, wird MTB automatisch gefuellt (127 Marken sind moeg- lich). Ein Ueberlaufen der MTB (in den Bereich des Editors zB.) wird nicht verhindert. Der Be- diener kann sich aber jederzeit im RAM-Modus ueber die Ausdeh- nung der MTB (belegter RAM-Be- reich) informieren. Ausserdem kann mit dem Kommando "P" im Anzeigemodus der Editor auf Vollstaendigkeit und Fehler- freiheit getestet werden. Erfolgt nach dem Kdo "P" der Sprung ins Betriebssystem, ist der Editor zerstoert (zB. auch im Ergebnis eines fehlerhaften Anwendertestlaufes) und muss wieder vom Band geladen werden. Verlassen des Editors: Der Editor wird durch Betaeti- gung der OFF-Taste in das Be- triebssystem verlassen. Mittels Monitorkommandos werden nun die RAM-Bereiche des Maschinencodes und der MTB auf Band ausgela- gert (Ausdehnung vorher im RAM-Modus oder mit "D" fest- stellen).Es ist zweckmaessig, aber nicht Bedingung, die MTB einschliessl. der 20H Byte Arbeitsspeicher (also ab 1C00H) auszugeben. Nach dem Laden von MC und MTB sowie Start des Editors befindet sich in diesem Fall der Editor auf der Anzeigeadresse, von der aus er verlassen wurde. Das Ausla- gern von Programmen erfolgt vor deren Test, sonst gibt es meist Aerger! Ein ordnungsgemaess ausgelagertes Programm (MC+MTB) kann jederzeit wieder geladen und im Editor erweitert, geaen- dert oder korrigiert werden. Zur Lauffaehigkeit eines fertigen und gebundenen Progr. ist die MTB nicht erforderlich. Nach dem Einschalten des Z1013 ist zuerst der Editor zu laden, auf 2C03H zu starten (definierte RAM-Belegung) und mit OFF wieder zu verlassen. Erst jetzt werden vorhandene Programme und deren MTB geladen und der Editor auf 2C00H gestartet. Folgend werden die einzelnen Modi und deren Kommandos be- schrieben. Anzeigemodus ------------ Hier ist es moeglich, bereits erstellte Programme zu kontrol- lieren, interessierende Stellen zu suchen, anzuwaehlen und zu korrigieren. Der Anzeigemodus ist durch folgende Bildschirm- ausschrift gekennzeichnet (Bsp): EDIT 02EF MAR 02D0 * LD HL,0123H MA1: ADD HL,DE INC JRNZ MA1 LD A,B POP DE RET Das * steht vor der Befehlsaus- schrift des zur Bearbeitung an- stehenden Befehls. Die oberste Zeile enthaelt nach der Kennung EDIT die Adresse (hex) des zur Bearbeitung anstehenden Befehls (Anzeigeadresse). Danach folgt die Angabe der davor stehenden Globalmarke. Das ist eine Marke, die als 3. Zeichen einen Buchstaben enthaelt. Es folgt die Adresse dieser Marke. Bezeichnet man Programmanfaenge oder markante Stellen im Programm mit Globalmarken, so erhaelt man einen Ueberblick, in welchem Programmstueck man sich befindet. Danach folgt die Auflistung der Befehle. Im Anzeigemodus gibt es Anzeige- und Korrekturkommandos. Die Anzeigekommandos dienen der Kontrolle des Programms und der Positionierung zwecks Korrektur und Eingabe. Angezeigt wird das, was der Reassembler an MC aus dem RAM angeboten bekommt. Dem- zufolge werden auch Daten oder Texte (ASCII) als Befehle aus- geschrieben. Ausserdem werden die Informationen aus der MTB genutzt. Liegt zu einer Befehls- adresse eine Markenvereinbarung vor, so wird die Marke mit an- gegeben. Gibt es bei einer Be- fehlsadresse einen Markenzugriff,so wird statt der im RAM stehenden Hexazahl die Marke ausgegeben. Kdo's im Anzeigemodus: Taste Zusatz Funktion %Hinweisnr ________________________________ R #adr ENTER RAM-Anz.ab adr,Ein- tritt in RAM-Mod.%7 R ENTER RAM-Anz.ab Anz.-adr Eintr. in RAM-Mod. G #adr ENTER Anzeige ab adr %7 G #0 ENTER Anzeige der mit EXT zugewiesenen Marken G ENTER Anzeige ab Programm ende %3 B ENTER Binden des Progr. auf Anzeigeadr. B #adr ENTER Binden des Progr.so dass angezeigter Befehl auf adr. laeuft M #adr1ENTER Verschieben d.Prog #adr2ENTER mit Marken von: adr1 bis ausschl. adr2 auf Bereich ab Anzeigeadr %4%5 M #adr ENTER *adr bis Progr.Ende ENTER auf Anz-Adr %3%4 V #adr1ENTER Verschieben nur #adr2ENTER der Marken von: *adr1 bis ausschl. adr2 auf Bereich ab Anzeigeadr.%5%6 V #adr ENTER *adr bis Progr.Ende ENTER auf Anz.Adr %3%6 E #adr ENTER Schaffen eines Ein- gabebereiches ab Anzeigeadr bis aus- schl. adr ;das fol- gende Progr. wird mit Marken auf adr verschoben %4 E ENTER Schaffen 1 Byte Eingabebereich %4 S #adr ENTER Streichen der Be- fehle ab Anz.adr bis adr %5%7 S ENTER Str.angez.Befehl OFF Verlassen des Editors P Pruefen des Editors %8 Q Eintritt in Quell- eingabemodus + Anz.Adr.increment. %2 A Anzeige ab letzter Globalmarke N Naechste Seite anzeigen Z Vorige Seite anzei- gen (zurueck) %1 S4-R Anzeigeadr := Adresse des naechsten Befehls S4-S Davorstehender Befehl wird aktueller Befehl Hinweise: --------- %1 Ein Befehlsblock benoetigt an seiner Anfangsadresse immer eineGlobalmarke. Existiert im Bereichvon 256 Bytes vor der aktuellen Befehlsadresse keine Globalmarke, so werden die Kommandos "Z" u. "S4-S" nicht ausgefuehrt. In diesem Fall muss man sich mit dem "G"-Kommando an den Progr.- anfang oder eine markante Pro- grammstelle zurueckbewegen und eine Globalmarke eingeben. %2 Dieses Kdo ist noetig, um zwischen Datenbloecken einen Befehlsanfang wieder finden zu koennen (mit Globalmarke kenn- zeichnen; dann besser findbar). %3 Programmende = Adresse, ab der mindestens 4 Mal 0FFH als Speicherinhalt steht. %4 Verschieben ist nur in einem Speicherbereich moeglich, der zuvor mit 00H oder 0FFH geladen wurde (verhindert versehentliche Zerstoerung von Programmen). "M" geht nur in einen genuegend grossen Freibereich. "E" benoetigt am Progr.ende genuegend freie Speicherplaetze. Sonst werden diese Kdo's ignoriert. %5 Bei Angabe von 2 Adressen muss Endadr>Anfangsadr sein. Bei "S" muss die angegebene Adresse>Anzeigeadr sein. Sonst erfolgt keine Kdo-Ausfuehrung. Angabe der Adresse 0 bei "S" verhindert das Streichen. %6 Verwenden, wenn der zugehoerige MC schon auf dem Zielbereich steht und der Urspruengliche RAM nicht mehr verfuegbar ist (zB ander- weitig belegt). %7 Unter adr kann eine Hexazahl mit fuehrender Ziffer oder eine vereinbarte Marke eingege- ben werden %8 Bei defektem Editor erfolgt ein Sprung in das Betriebs- system Er ist dann neu zu laden. Quellcode-Eingabemodus ---------------------- Nach Eintritt in diesen Modus kann der anstehende Befehl korr giert oder ueberschrieben werden (ACHTUNG BEIM UEBERSCHREIBEN: Soll zB. ein 1Byte-Befehl durch einen 2 yte-Befehl ersetzt wer- den, ist vorher der noetige Freibereich ( E-Kdo) zu schaffen, sonst werden folgende Befehle zerstoert. Ebenso sind umgekehrt die Restbytes zu streichen. Marken duerfen nicht ueberschrieben werden, sie sind mit dem S- Kdo zu streichen und nach der Schaffung eines Frei- bereiches neu einzugeben. Anderenfalls verschwindet die Marke zwar aus der Anzeige, aber nicht aus MTB. Bei dem Bindelauf passieren dann sehr schwer zu findendede Fehler. Der Aufruf einer Marke kann hingegen bedenkenlos ueberschrieben werden zB. CALL MUL o.JR EM1.) Nach Betaetigen von ENTER wird uebersetzt. Liegt ein Syntaxfehhler vor, wird ausge- schrieben. Wird eine Marke zum 2. Mal vereinbart, erfolgt die Ausschrift M. In diesen Faellen wird korrigiert und erneut ENTER betaetigt. Der richtig uebersetzte Befehl wird im MC ab Anzeigeadr. abgelegt. Marken werden in MTB eingetragen. Der uebersetzte Befehl und folgende werden reassembl. zur Kontrolle angezeigt. Vor dem aktuellen Befehl steht + . Nach Betaetigen von ENTER wird das Programm ab der naechsten Befehlsadr angezeigt und die Eingabe des naechsten Befehles kann erfolgen. Die OFF-Taste fuehrt wieder in den Anzeigemodus. Eingabeformat: -------------- Das Markenfeld beginnt ab der 2. Position der Eingabezeile (Position des Kursors am Anfang). Eine Marke muss aus 3 Zeichen bestehen! Die Trennung Markenfeld - Operationscodefeld erfolgt durch mindestens 1 Leer- zeichen. Wird keine Marke eingegeben, genuegt die Eingabe eines Leer- zeichens bis zum Operationscode oder das Betaetigen des Tabulat rs. Operationscode und Operanden duerfen nur durch 1 Leerzeichen getrennt werden. Kommentar ist nicht moeglich. Befehlssatz ----------- Der Befehlssatz entspricht dem der Anlage 1 des Handbuches des MRB Z1013. Abweichend davon wer- den die RST-Befehle nicht mit ihrer Adress dargestellt: RST 00 = RST 0 RST 08 = RST 1 RST 10 = RST 2 RST 18 = RST 3 RST 20 = RST 4 RST 28 = RST 5 RST 30 = RST 6 RST 38 = RST 7 Zahlen koennen hexadezimal oder dezimal eingegeben werden. Sie muessen mit einer Ziffer begin- nen (zB. 27F0H ; 0FF35H). Hexazahlen sind mit dem Zeichen H abzuschliessen, bei Dezimal- zahlen erfolgt keine weitere Kennzeichnung. Fuer alle Zahlen koennen Marken angegeben werden, die geeignet vereinbart werden. Nach Angabe einer Marke kann be- ginnend mit der Kennzeichnung "+" oder "-" ein Offset als Zahl im Bereich von +127...-128 ange- geben werden, (zB. CALL DI +3). Diese Informationen werden in der MTB gespeichert. Die Zuwei- sung des Zahlenwertes erfolgt beim Binden. Das Zeichen # mit der folgenden Angabe eines Offsets kann fuer die Angabe des Zuweisungszaehlers geschrieben werden, wird aber sofort ueber- setzt und reassembliert. Folgende Pseudooperationen werden verarbeitet: DB nn Definiere Byte mit Wert n DW nnnn definiere Doppelbyte mit Wert nnnn DM 'ABC' Definie e ASCII-Zei- chenkette (hier ABC) MAR EXT nnnn Definiere Marke mit der externen Adr nnnn (entspr.EQU Anweisg) Binden ------ Es kann nur das erstellte Progr. als Gesamtmodul gebunden werden. Die Bindeoperation bezieht sich auf die 64K des U880. Alle Zahlen die symbolisch mit einer Marke angegeben wurden, werden entspr. dem Markenwert in den MC des erstellten Programms einge- tragen. Dami wird der MC lauf- faehig. Beim Binden auf Anzeige- adresse entspr. den Marken die Adressen, auf denen sie verein- bart wurden. Beim Binden auf an- gegebene Adr. werden die Marken- werte so verschoben, dass das Progr. auf der angegebenen Adr. lauffaehig ist. Marken, die mittels Pseudooperation EXT ver- einbart wurden, werden dabei nicht mit verscho ben, sondern b halten ihren Wert bei. EXT-Marken sind solche, die sich auf Eintrittsadr. anderer fer- tiger oder noch zu erstellender Programme beziehen. Sie lassen sich im Anzeigemodus auf einen beliebigen Bereich verschieben oder koennen im R-Modus durch erneute Eingabe anderen Adressen zugewiesen werden. So koennen sie entsprechend der Bindeadresse eines anderen Programms positioniert werden. Ein modularer Aufbau sehr umfangreicher Gesamtprogramme ist ohne weiteres moeglich. Fehlermeldungen des Binders: ---------------------------- Nicht zugewiesene Markennamen werden mit der Adr., an der auf sie zugegriffen wird, ausge- schrieben. Zu grosse Distanzen bei Relativspruengen fuehren zur Ausschrift der Adr., auf der der Relativsprung steht Fortsetzung Beschreibung Editor Binder Relativspruenge mit zu grosser Distanz werden durch Absolutspr. ersetzt. Nach jeder Fehleraus- schrift wird ENTER betaetigt, um weitere Fehler zu finden. Erst wenn beim Bindelauf keine Fehlerausschrift erfolgte, war dieser erfolgreich und ist das Progr. lauffaehig! Die Marken- tabelle wird beim Binden nicht veraendert. RAM-Modus --------- Der RAM-Modus meldet sich mit 64 Datenbytes in folgender Form: aaaa 00 01 02 03 04 05 06 07 bbbb> 08 09 0A 0B 0C 0D 0E 0F 10 11 12>13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F Die Anfangsadresse steht links oben (aaaa). Die vor dem Zeichen > stehende Adr bezeichnet die RAM-Zelle, auf die sich die naechste Eingabe bezieht. Der Kursor steht nach dem > .Hier koennen Datenbytes als Hexazif- fern eingetragen werden. Falsche Eingaben werden mit S4-W ge- loescht. Die Eingabe eines Byte wird mit ENTER vollzogen. Die gleichen Daten koennen durch weiteres Betaetigen von ENTER auf die naechsten Eingabe- adressen gegeben werden. Das Zeichen > ist in der Datenbyte- ausschrift wiederzufinden und kennzeichnet nochmals das aktuell anstehende Byte. Es wirkt hier gleichzeitig als Kursor und laesst sich mit den Kursorsteuertasten bewegen (-> <- S4-S S4-R). Am oberen und unteren Bildrand wird gerollt. Das aktuelle Datenbyte bleibt so immer im Anzeigebereich. Die Adressen am linken oberen Bild- rand werden staendig aktuali- siert. Kommandos im RAM-Progr.: Kdo Zusatz Funktion ________________________________ S4-R Rollen S4-S Rollen -> Eingabeadr incr. <- Eingabeadr decr. 0...9 Eingabedaten A...F angeben S4-W ENTER Eingabedaten uebernehmen;Adr incr. I eeee Eingabedaten auf ENTER Bereich ab Eingabe- adr bis ausschl. eeee eintragen M qqqq ENTER Daten ab Adr qqqq eeee ENTER bis ausschliessl. eeee auf Bereich ab Eingabeadr ver- schieben. G aaaa ENTER Anzeige der Ziel- adr aaaa OFF Verlassen des RAM-Mod. I Das Kommando "I" dient zum Eingeben von Daten im Block bis zu einer Endadresse. nach dem Betaetigen von I steht der Kursor in der 3. Zeile. Hier wird die 4-Stellige hexadezimale Endadresse ver- langt. Die Eingabe wird mit ENTER abgeschlossen bzw. mit OFF ignoriert. Die Uebernahme der nach > angegebenen Daten in den RAM erfolgt nur bei richtigen Angaben und wenn die Endadresse groesser als die Anzeigeadresse ist. Das Kommando "M" dient dem Verschieben von Bytes. Verschoben wird auf den Bereich ab Anzeigeadresse. Nach "M" werden die Anfangs und die Endadresse des Quellbereiches angefordert. Sie werden jeweils mit ENTER bestaetigt. Beim Umladen wird der Quellbereich geloescht (zu FFH). Die Ueberlappung von Quelle und Ziel ist teilweise moeglich. Die Kommandos "M" (move) bzw. "I" (initialise) entsprechen den Monitorkommandos "T" (Transfer) bzw. "K" (Kill). Ein besonderer Vorteil des RAM-Modus ist seine Echtzeitfaehigkeit (im Gegensatz zu "D" oder "M" des Monitors). D.h. die Anzeige der Speicherzellen erfolgt dynamisch, so dass sich aendern- de RAM-Inhalte beobachtet werden koennen. Durch die Moeg- lichkeit der Vorbereitung der Dateneing. (Ausfuehrung gezielt mit ENTER) kann auch in laufende Programme (Interruptebenen) eingegriffen werden. Ebenso ist die Einbindung nur des RAM-Programmes in ein Echtzeit- betriebssystem denkbar (ohne Editor). Damit werden auch Programme beobachtbar, die nicht ueber Interrupt laufen, sondern von dem genannten EZ-BS verwaltet werden. Wie der RAM- Modus ohne Editor zu handhaben ist, wird im folgenden Abschnitt erlaeutert. Nutzung des RAM-Programms ohne Editor -------------------------------- Das RAM-Programm benutzt die Zellen 00D4 und 00D5 als Arbeitszellen. Es ist als Unter- progr. geschrieben, endet also mit RET. Die Startadresse ist 2EBE. Zuerst wird der Editor V8 geladen. Zum Start des Pr. werden 2 MC-Befehle auf beliebigen Adr. (zB. 0200H) benoetigt: 0200 CALL 2EBEH 0203 JMP 0F000H Wird nun mit dem Monitor-Kdo. # J 0200 gestartet, ist der RAM wie im Editor manipulierbar. Die Betaetigung der OFF-Taste fuehrt in das BS zurueck. Diese Nutzungsmoegl. hat den Nachteil, dass der gesamte Editorbereich (2C00 -3FFF) belegt ist. Das RAM-Pr. laesst sich durch folgende Schritte im Monitor einfach auf 1K (2C00- 2FFF) abruesten. Damit steht der Bereich 3000-3FFF wieder zur freien Verfuegung. # M 3B77 ENTER E5 # 12 2C; ENTER # M 3B7B ENTER E5 # 12 2C; ENTER # T 3B74 2C2F 0B ENTER # M 2C28 ENTER 74 # 2F 2C; ENTER # K 3000 3FFF FF ENTER Diese Reihenfolge ist einzuhal- ten. Nun kann wieder wie oben beschrieben gestartet werden. Es ist weiterhin moeglich, vor dem Start die gewuenschte Anzeigeadr in 00D4 und 00D5 (L-H) einzutragen. SPEICHERBELEGUNG EDITOR ----------------------- 002B Kursorpos. 002C Zwischensp. Kursor 00D0- Tabulatoren 00D3 00D4 Merkzellen f."RAM" 00D5 0100- Stack 01FF 2C00- Unterpr.f.Editor u."RAM" 2EBD 2EBE- "RAM"-Pr.d.Editors 2FFF 3000- Editor 3BFF 3C00- Listen f. Editor 3FFF ED00-Bildwiederholspeicher EDFF Ausser den hier angegebenen Speichern werden mit Ausnahme der MTB(+20H Byte) keine wei- teren benoetigt, benutzt oder geaendert. Bei Nutzung nur des RAM-Pr. wird der Anwenderstack des Z1013 genutzt. Bei Nichtaus- reichen des Stacks, insbeson- dere in Verbindung mit Inter- ruptroutinen, ist dieser entspr. auf einen groesseren Adressraum zu verlegen. Vom Betriebssystem des Z1013 werden die Routinen OUTCH u. INKEY genutzt. VIEL ERFOLG BEI DER ERSTELLUNG VON MASCHINENPROGRAMMEN!! Ende Aenderungen und Hinweise nach Redaktionsschluss: -------------------------------- - als Kursorzellen werden statt 2BH und 2CH die Zellen D6H und D7H genutzt. - die Beschreibung bezieht sich auf die Version 9 (ohne Test) - Namen von gestrichenen Marken sollten notiert werden. Sie koennen mit gleichem Namen spaeter wieder verwendet werden. Nur so ist die Nutzung aller 127 moeglichen Marken realisierbar. - externe Marken sollten ausser- halb des Speicherbereiches lie gen, auf dem das Progr. ge- schrieben wird. Andernfalls werden diese bei Nutzung der Kdos E# und S# mit verschoben. Erforderlichenfalls muss hier die Zuweisung der Adressen unmittelbar vor dem Binden erfolgen bzw mit G#0 ueberpruefen. - ein mit EXT vereinbarter Mar- kenname bleibt extern, auch nach Streichung und Wiederver- wendung. Eine einfache Marke kann in eine EXT-Marke geaen- dert werden. - fuer eigene Erweiterungen des Editors stehen im Anzeigemodus die Kdo's "X" und "C" zur Ver- fuegung. Diese werden auf 3127 bzw 3122H abgefragt und koennen von dort mit JPZ verzweigt werden: 3122 CMP 043H ;"C"? 3122 CMP 043H JPZ CCC 3127 CMP 058H JPZ XXX Damit veraendert sich die Pruefsumme. Diese wird ab 2C2FH berechnet (Summe ueber gesamten Programmspeicher = 0).Im Anschluss an die Pruef- summenberechnung folgt das er- forderliche Ausgabebyte ( nach RET). Die eigenen Erweiterung- en muesse mit RET enden und fuehren in den Anzeigemodus zurueck. Folgende Unterprogramme koennen zum Dialog auf dem kleien BS des Editors genutzt werden: BSS 2C06 BBZ 2C1E BSL 2C09 TX 2C21 BKS 2C0C BSZ 2C24 BKL 2C0F DS 2C27 HBS 2C12 SN 2C2D HDA 2C15 ZLE 2C18 BBS 2C1B Erlaeuterungen: --------------- UP EING-REG AUSG-REG ------------------------------- BSN A A BSS A,DE - BSL DE A BKS DE - BKL - DE HBS A,DE HDS HL,DE - HBA DE A HDA DE HL ZLE A, E HL,AF BSZ A,DE,C - BBS - Cy BBZ DE,C Cy TXS HL HL;A=undf. Funktionen: ----------- SN Zeichen auf Kursorpos. bzw. Steuerzeichen ausfuehren SS Zeichen schreiben BSL -"- lesen KS Kursor setzen BKL -"- -pos. lesen BS Byte schreiben HD Doppelbyte schreiben HBA Byte lesen (mit Anforder- g.) DA Doppelbyte wie HBA LE Zahl lesen;bit7,A=1->HEX =0->DEZ SZ Zeichen in Zeile schreiben BBS Tast auf BS bis ENTER/OFF BZ Taste auf Zeile (wie BBS) TXS Text ausschreiben Reg.DE gibt eine Displayposition an nach: D=Zeile (0-7) E=Spalte (0-31); E 32-> next line Um alle moeglichen Steuerzeichen zu nutzen, sollte die Tastatur- routine des Editor (2C2AH) ver- wendet werden. BSN: schreibt das Zeichen in A (ASCII) ab Kursor auf ldschirm und rueckt den Kursor. Steuerzeichen werden ausgefuehrt: 8 Kursor links 09 -"- rechts 0A -"- nach unten 0B -"- -"- oben 0C CLS 0D Kursor an Zeilenanfang 1A Zeichen streichen 18 Zeile loeschen ; 02 home BBS: schreibt Zeichen in A auf Position DE BSL: liest Zeichen von Pos. DE nach A KS: setzt Kursor auf Pos. DE BKL: liest Kursorpos. nach DE HBS: schreibt Zahl aus A in 2 Hexaziffer auf Pos. DE HDS: schreibt Zahl aus HL ab Position DE HDA: fordert hex.Zahlenwert in Form von 4 Hexaziffern ab Pos.DE(aktiviert Tastatur) ZLE: liest beliebig lange Zahl hex oder dez ab Pos. DE. Maximal zu lesende Ziffernzahl wird in Bit 0...6,A uebergeben. Bit7,A=0 als Dezimalzahl; Bit7,A=1 als Hexazahl. Gelesener Wert in HL BSZ: ASCII-Zeichen in A auf Kur- sorpos., wenn Kursor auf einer Pos. der Zeile D und der Spalten E bis E+C befindet. BBS: Taste auf Bildschirm bis ENTER oder OFF betaetigt wurde Cy=1:OFF betaetigt; Cy=0:ENTER BBZ: wie BS, aber in Grenzen wie BSZ TXS: Schrieben eines durch HL gezeigerten Textes (Folge von ASCIIund Steuerzeichen) Das 1. und das letzte Byte des Textes wird durch Bit 7 =1 markiert. TNS: nummerierten Text schreiben; wie TXS, nur dass mehrere mit Bit7 ge- kennzeichnete Texte hinter- einander stehen. HL zeigert den Anfang der Texttabelle; A gibt die lfd. Nr. des Textes an.(verwendet TXS) Die Beschreibung der Unterpro- gramme ist als Hinweis zu verstehen und erhebt keinen Ans- pruch auf Vollstaendigkeit!!!! Sie ist sozusagen eine Hacker- Hilfe. BESCHREIBUNG DES TESTMODUS -------------------------- Der Testmodus ist im Editor ab Version 10 implementiert. Damit verbunden sind abweichend von der Beschreibung der Version 9 einige folgend beschriebene Veraenderungen bzw. Erweiter- ungen. Erweiterungen: Arbeitsspeicher 00D8 - 00DC Merkzellen Programmspeicher 2800 - 3FFF Editor+Test enthaelt Freibereich f. List-pr. Kommandos im Anzeigemodus: T -Eintritt in den Testmodus H -Vereinbarung der aktuellen Anzeigeadresse als Haltepkt. Die Startadressen des Editors wurden beibehalten !! Veraenderungen: Aufgrund des laengeren Programms musste die Markentabelle (Stan- dart) weiter nach vorn verlagert werden. Sie beginnt jetzt auf 1820H und wird bei Neustart auf 2C03H dort initiiert und auch vom Restart dort angeboten. Der verfuegbare Anwenderspeicher verringert sich so zwangslaeufig auf 5,5kByte (200 - 17FF) in derGrundausbaustufe (16K). Der Testmodus _____________ Es ist moeglich, ein Programm schrittweise oder abschnitts- weise (Halt bei jew. vereinb. Haltepunkten) zu testen oder v. einem bestimmten Programmzaeh- lerstand mit angebbaren Registerbelegungen im Echtzeit- lauf zu starten. Besonders vor- teilhaft ist der direkte Dialog mit dem Editor. Startadresse und Haltepkte. werden durch bzw. im Anzeigemod. festgelegt und bei Abbruch des Tests wird zum zum Test anstehenden Befehl in den Anzmod. zurueckgekehrt. So ist der Ablauf Test-Korrektur- Test-... schnell und sehr un- kompliziert moeglich. Bei Eintritt in den Testmod. mit Kdo T wird automatisch auf die Eintrittsadresse gebunden. Bei vom Binden her bekannten Fehlerausschriften ist der Test sofort mit OFF zu verlassen und es sind die noetigen Korrekturen auszufuehren. (BEACHTE: Bindelaeufe auf externe Adressen sind erst nach erfolgtem Test sinnvoll) Der Testmodus meldet sich : TEST SCHRI MAR:1800 Beispiel: 1820 LD HL,0FFFFH !!!!! AF:5500 BC:0000 DE:1234 HL:CCAB M:FF SP:xxxx IX:0000 IY:1DEF CSPZ:0100 Nach Ausschrift TEST steht der Kursor, es folgt ein der Test- art zugeordneter Text. Danach wird die Globalmarke mit Adr. angezeigt. Naechste Zeile: Adr. des auszufuehrenden Befehls und Befehl mit Markenangabe. Es folgen Vordergrundregister und Flags. Durch Ueberschreiben koennen die Inhalte geaendert werden (ausser SP und Programm- zaehler). Die Flags werden durch Ueberschreiben des F-Registers (AF) geaendert. Die Aenderung ist mit ENTER abzuschliessen. Kommandos Testmod.: ------------------- OFF: Eintr. in Anzeigemodus T : Test bis Haltepkt. oder Ausfuehrung eines Befehls %1 Ausschr. SCHRI (Schrittest) N : Test bis zum naechsten no- tierten Befehl -> Abarbeit- ung von Schleifen u. Unter- pr. %2 Ausschrift SCHLE (Schleife) L : Start des Echtzeitlaufes %3 Ausschr.: LAUF R ENTER: Register ueberschreiben Ausschrift: REG.K Erlaeuterungen: --------------- %1 Testlauf wird nach jedem Be- fehl unterbrochen und die Haltebedingung uebeprueft. Wurde im Anzeigemodus ein Haltepkt. eingegeben (H-Kdo), laeuft das Pro-gramm bis zu diesem. Nun kann der Schrittest durch weitere Betaetigung der Taste T im Einzelschrittbetrieb fortgesetzt werden oder es erfolgt im Anzeigemodus die Eingabe eines neuen Halte- punktes. Die Definition eines Haltepunktes vor Ein- tritt in den Testmodus ist NICHT Bedingung. Ohne HP wird sofort Einzelschrittbetrieb (Befehl fuer Befehl) ausge- fuehrt. Ein eingegebener HP wird bei Erreichen geloescht. Der Testlauf kann mit OFF unterbrochen werden. Dieser Lauf bis HP ist etwa 1000 mal langsamer als der Echtzeit- lauf. %2 Kdo N setzt den HP auf den naechsten notierten Befehl und startet den Testlauf in der Art wie bei T. War der anstehender Befehl ein CALL, wird nach Abarbeitung des UP angehalten. Dieser Testlauf ist auch bei langen Schleifen mit DJNZ oder bedingten Spruengen sehr sinnvoll. Auch hier kann mit OFF unter- brochen werden. %3 Der Echtzeitlauf wird mit Abarbeitung des Befehls RST 7 unterbrochen. Sonst ist ein Abbr. bei einem Irrlauf z.B. nur mit RESET moeglich. Be- dingt durch die Hardware des Z 1013 koennen nur im RAM stehende Programme getestet werden. Sollen aber z.B. Teile des Betriebssystems in ihrer Funktion analysiert werden, so muessen diese vor- her in den RAM geschoben und dort lauffaehig gemacht werden. Weiterhin stehen fuer T und N folgende Forderungen an das zu testende Programm: Das I-Register der CPU darf nicht veraendert werden. IM2 darf nicht verlassen werden. PIO-Port B (System- port) darf nicht initiali- siert werden. Die Befehle DI und EI sollen nicht verwendet werden. Ein mit DI und EI eingeschlossenes Programm- stueck kann vom Testpr. nicht unterbrochen werden und laeuft im Echtzeitlauf. Dieser Sachverhalt kann ziel- gerichtet genutzt werden, DI und EI fuehren also nicht zu Fehlern, nur zu anderem Verhalten als fuer diese Testart vorgesehen. Uner- wuenschte oder verbotene Be- fehle werden nicht mit ge- testet, indem der Testmodus verlassen, im Anz.-mod. weitergeblaettert, und wieder in den Testmodus eingetreten wird. Das Testen von Programmen wird mit dieser Testhilfe zum Erlebnis. Viel Erfolg ! ------------- Ergaenzungen zu Version 14: --------------------------- Quellcodeeingabe ist auf belie- biger Zeile moeglich. Bei Ein- tritt in den Q-Modus oberhalb oder in der 3.Zeile erfolgt ein Rollen in der 3.Zeile (2 letzte Befehle bleiben sichtbar). Bei Eintritt unterhalb der 3.Zeile wird auf der Eintrittszeile gerollt. Achtung, hierbei werden weniger als 4 folgende Bytes an- gezeigt! Bei Verwendung der DM-Anweisung in Verbindung mit Marken tritt ein "Schoenheitsfehler" auf,der aus speicheroekonomischen Gruenden nicht beseitigt wurde: Die Marke wird auf dem BS nur eine Zeile weiter gerollt und steht dann scheinbar an einer falschen Adresse. Das ist aber nicht der Fall!! Im RAM-Modus kann durch Betae- tigung der Taste "U" auf ASCII- Anzeige umgeschaltet werden. U wirkt als Ringschalter und hat drei Modi: -hexa -ASCII -ASCII ohne Bit7 (Zwangs-ASCII). Merk- und Arbeitszellen belegen jetzt den Bereich von 00D0H bis einschliesslich 00DDH. (Stack ab 100H, Anwenderbereich ab 200H, Markentabelle ab 1820H) Der im Echtzeittest als Haltepunkt dienende RST7 wird beim Er- reichen durch NOP ersetzt.