@l E************************************************************ Beschreibung zum Service-Programm "Hex-ASCII-Dump" V 1.01 und 1.02(RAM) fuer Z1013 (c) by W.Bernhardt, Berlin 1988 ************************************************************F Programmstandort: Version 1.01 0D700H - 0DFFDH Start:0D700H fuer 16-K-Variante: 3700H - 3FFDH Start: 3700H Version 1.02 0D600H - 0DFB3H Start:0D600H fuer 16-K-Variante: 3600H - 3FB3H Start: 3600H Hardware: Z1013 mindestens 16K RAM Taktfrequenz 2Mhz fuer Druck 4-K-Monitor mit Sprungverteiler und Hardcopyfunktion von Rainer Brosig, Coswig Dieses Programm realisiert folgende Funktionen: - Anzeige ausgewahlter RAM-Bereiche in hexadezimaler und ASCII-Darstellung - Editieren des angezeigten RAM-Bereiches a.) durch hexadezimale Eingabe b.) durch ASCII-Zeichen-Eingabe mit gleichzeitiger konvertierter bzw. rekonvertierter Anzeige - Rueckschreiben des editierten Bereiches in den RAM - Druck eines ausgwaehlten RAM-Bereiches als Hex-ASCII-Dump mittels Hardcopyfunktion u. Sprungver- teiler (V. 1.01) Druck ueber angehaengten phys. V.24-Treiber (V. 1.02) Die beiden Versionen des Hex-ASCII-Dump unterscheiden sich neben den etwas unterschiedlichen Standorten ansonsten nur in der Druckfunktion (siehe Druckmodus) ************ EAnfangsmenueF ************ Nach Programmstart meldet sich dieses mit dem Anfangsmenue. Mit den Cursortasten hoch bzw. runter kann die entsprechende Auswahl erfolgen. Wurde der Pfeil (->) vor den auszuwaehlenden Programmteil gebracht, ist dies mit CR (ENTER) zu bestaetigen. Damit wird die Ausfuehrung dieser Programmroutine eingeleitet. Alle von den 3 o.g. Tastenbetaetigungen abweichenden Ein- gaben werden als Fehleingaben betrachtet und entsprechend signalisiert. ************ EAnzeigemodusF ************ Erwartet wird eine vierstellige Eingabe der hexadezimalen Anfangsadresse (AAdr) des ausgewaehlten RAM-Bereiches. Im Anzeigemodus werden auf dem Bildschirm jeweils 24 Zeilen zu je 8 Byte hexadezimal sowie rechtsbuendig 8 Byte in ASCII- Darstellung angezeigt. Insgesamt werden damit jeweils 192 Byte aus dem RAM in den Bild- wiederholspeicher gelesen. Nicht druckbare Zeichen (<20H, >7EH) werden im ASCII-Teil als Punkte dargestellt. Die Anfangsadresse (AAdr) und die errechnete Endadresse (EAdr) des angezeigten RAM-Bereiches werden ebenfalls dargestellt. Mit den Cursortasten -> kann ab EAdr+1 vorwaerts, mit <- ab AAdr-1 rueckwaerts durch den gesamten RAM geblaettert werden. Bei Erreichen von 0FFFFH wird nahtlos ab 0H weitergeblaettert; der gleiche Uebergang erfolgt rueckwaerts bei Erreichen von 0H. Durch Eingabe von CR (ENTER) wird erreicht, dass die Eingabe einer neuen AAdr erwartet wird. Mit CTRL C (^C) wird das Programm beendet und kehrt in das Anfangsmenue zurueck. Mit der Eingabe "E" geht das Programm in den Editiermodus ueber. Alle abweichenden Kommandos bzw. Eingaben werden als Fehlein- gaben interpretiert und mit einem akustischen Signal quittiert. ************ EEditiermodusF ************ Das Editieren wird nur im Bildwiederholspeicher durchgefuehrt und beschraenkt sich eingabeseitig auschliesslich auf die 24 * 8 angezeigten hexadezimalen Byte. Im Editiermodus wird zusaetzlich zu den bisher angezeigten AAdr und EAdr die aktuelle Position des Cursors (CuAdr) innerhalb des betrachteten RAM-Bereiches dargestellt. ECursorbewegungen im DumpF Der Cursor (_) befindet sich auf dem 1.Halbbyte des ersten an- gezeigten hexadezimalen Zeichens. Mit den Cursorbewegungstasten <- und -> kann der gesamte ange- zeigte Hexa-Bereich ueberstrichen werden. (bei Erreichen des letzten Halbbyte kehrt Cursor zum Anfang zurueck und umgekehrt) Mit den Cursortasten hoch und runter kann der Cursor in der aktuellen Spalte jeweils bis zur ersten bzw. letzten Zeile bewegt werden. Weitere Bewegungen in gleicher Richtung bewirken ein akustisches Signal. Der Cursor bleibt in erreichter Zeile stehen, bis die Bewegungsrichtung geaendert wird. Bei den Bewegungen des Cursors sowie bei entsprechenden Ein- gaben wird die analoge RAM-Adresse innerhalb der Anzeige CuAdr jeweils aktualisiert. Die der besseren Uebersicht wegen im Hexdump zwischen den Byte befindlichen Leerzeichen werden bei den Cursorbewegungen und bei Eingaben uebersprungen. Der Editiermodus eignet sich damit nach den bisherigen Erkennt- nissen besonders gut fuer Hex-Eingaben zu EPROM-Programmierung. EHexadezimale AenderungenF Entsprechend der aktuellen Cursorposition koennen Aenderungen in einzelnen Byte bzw. Halbbyte vorgenommen werden. Dabei sind nur die Zeichen 0-9 sowie A-F (egal, ob Gross- oder Kleinschreibung) zugelassen; ansonsten akustisches Signal. Bei Veraenderung eines Halbbyte wird das Gesamtbyte sofort re- konvertiert und im ASCII-Dump zur Ansicht gebracht. Ist auch das 2.Halbbyte zu veraendern, steht also erst nach Aenderung beider Halbbyte das richtige ASCII-Zeichen im ASCII-Dump. Diese Verfahrensweise hat den Vorteil, dass wirklich nur das noetigste zu aendern ist. Ausserdem wird das Programm dadurch ziemlich schnell gemacht. EAenderungen im ASCII-CodeF Im Editiermodus ist auch die Eingabe von ASCII-Zeichen in den Hex-Dump-Bereich moeglich. Dazu ist jeweils in das 1.Halbbyte des zu veraenderten Byte ein "." (Punkt) einzugeben. Die Eingabe eines Punktes in das 2.Halbbyte ist nur zulasessig, wenn im ersten ebenfalls ein Punkt eingegeben wurde. Ansonsten ist das eine Fehleingabe und wird mit einem akustischen Signal quittiert. In das 2.Halbbyte Em u s sF nach dem Punkt im 1.Halbbyte dann das gwuenschte ASCII-Zeichen (von 20H bis 7EH) eingegeben wer- den. Nach erfolgter Eingabe des ASCII-Zeichens wird sofort konver- tiert und das Zeichen neu im Hex-Dump und auch im ASCII-Dump zur Anzeige gebracht. Wurde im ersten Halbbyte der Punkt versehentlich eingegeben, dann ist ein normales Verlassen des 2.Halbbyte mit den Cursor- tasten EnichtF moeglich. Durch Betaetigen von ^C wird die Punkteingabe rueckgaengig ge- macht und das urspruengliche Byte (1.u.2.Halbbyte) wieder an- gezeigt. EAchtung !F Das Betaetigen von ^C ohne Punkt im 1.Halbbyte fuehrt zum Abbruch des Editiermodus. ERueckschreiben in RAMF Mit Betaetigen von CR (ENTER) werden alle auf dem Bildschirm angezeigten Byte des Hexdump in den RAM entsprechend der ange- gebenen AAdr zurueckgeschrieben und das Programm kehrt in den Anzeigemodus zurueck. Mit ^C wird der Editiermodus beendet, ohne dass der Bildschirm- inhalt in den RAM zurueckgeschrieben wird. Evtl. durchgefuehrte Veraenderungen sind damit wirkungslos. Bei beiden Varianten, Rueckschreiben mit CR oder Abbruch mit ^C, wird der aktuelle RAM-Inhalt des gerade bearbeiteten Bereiches bei der Rueckkehr in den Anzeigemodus zur Kontrolle nochmals an- gezeigt. Mit "E" kommt man sofort in den Editiermodus zurueck und kann evtl. notwendige Korrekturen durchfuehren. Ansonsten kann weitergeblaettert, neu editiert oder auch das Programm ueber das Anfangsmenue beendet werden. ********** EDruckmodusF ********** Die Druckroutine bedarf des 4-KByte-Monitor von Rainer Brosig mit integrierten Sprungverteiler und bei Version 1.01 - Hardcopyfunktion sowie - eines entsprechenden Druckertreibers. bei Version 1.02 - ausser o.g. Sprungverteiler keine weiteren Forderungen, da phys. Druckertriber Bestandteil dieser Version Ohne diese Voraussetzungen sind die nachfolgenden Zellen mit C9H (RET) zu versehen: EVersion 1.01:F - D703H: (3AH) C9H [3703H: (3AH) C9H ] - setzen Hardcopyflag und Einschalten LED - D710H: (3AH) C9H [3710H: (3AH) C9H ] - ruecksetzen Hardcopyflag und Ausschalten LED EVersion 1.02:F - D603H: (C3H) C9H [3603H: (C3H) C9H ] - Uebergabe AKKU-Inhalt an Druckertreiber - D607H: (C3H) C9H [3607H: (C3H) C9H ] - Ruecksetzen Zeilenzaehler ueber Sprungverteiler DRDEL (0FFEBH) In Druckvorbereitung sind die AAdr und EAdr des zu druckenden RAM-Bereiches einzugeben. Desweiteren wird der filename ab- gefordert, der dann als Ueberschrift auf dem Hex-ASCII-Dump gedruckt wird. (filename max.16 Byte) Ueber den entsprechenden Druckertreiber ist in der Version 1.01 zu veranlassen, dass mit Einzelblatteinzug gedruckt wird. In der Version 1.02 mit integriertem Druckertreiber wurden programmtechnisch 62 zu druckende Zeilen vorgesehen (ent- spricht Format A4) Gedruckt wird in der V.1.02, indem das BIT 3 (Hardcopyflag) in der Systemzelle 27H ueber das Programm gesetzt wird und die Frage "StartDruck (J/N)" mit J beantwortet wird. Waehrend des Druckes wird jeweils die Taste BREAK abgefragt, so dass der Druck jederzeit mit ^C abgebrochen werden kann. Bei im phys. Druckertreiber enthaltenen BREAK fuehrt das zum Programmabruch. In der Version 1.02 wird ueber dem am Ende des Programms be- findlichen Druckertreiber gedruckt. (Treiber entsprechend des V.24-Moduls von Riesa) Bei Verwendung eigener Druckroutinen kann ab Zelle 0D603H der entsprechende Sprung dahin eingetragen werden. Das Ruecksetzen des Zeilenzaehlers kann ebenfalls ueber ein eigenes kleines Programm ab Adresse 0D607H angesprungen werden. Der integrierte Druckertreiber befindet sich ab Adresse 0DF79H. Als PIO-Adressen werden - 34H (Steuerwort) und - 35H (Daten) verwendet. Die Druckgeschwindigkeit wurde mit 9600 BAUD festgelegt. Mit der ESCAPE-Folge 1BH,40H,1BH,6CH,08H wird der Drucker am Anfang initialisiert und ein linker Rand von 8 Zeichen vorgegeben. Insgesamt werden pro Zeile 70 Zeichen gedruckt; beginnend mit der 4-stelligen Adresse, der sich 16 Hexazeichen und die je- weiligen 16 ASCII-Zeichen anschliessen. Fuer nicht druckbare Zeichen (< 20H, > 7EH) werden Punkte ge- druckt. Bei Erreichen der Endadresse wird jeweils eine volle Zeile ausgedruckt, gegebenenfalls also 15 Byte mehr als die einge- bene Endadresse. Waehrend des Druckes rollen die ausgegebenen Zeichen inner- halb eines Fensters ueber den Bildschirm. Bei Druckende bzw. Druckabbruch wird der Bildschirm im Fensterr geloescht. Das Programm befindet sich noch im Druckmodus; es kann ent- weder neu gedruckt oder mit ^C ins Anfangsmenue zurueckgekehrt werden. EAnmerkungenF - fehlende Moeglichkeit einer Tonausgabe z.B. ueber Tonband- buchse wirken sich nicht weiter nachteilig aus, da Fehlein- gaben auch daran zu sehen sind, dass die Eingabe nicht ange- nommen bzw. der Cursor nicht weiter bewegt wird. - versuchtes Rueckschreiben in ROM-Bereiche wurde programm- technisch nicht unterbunden. Editieren im BWS ist moeglich, Rueckschreiben natuerlich sinnlos. - alle im Programm verwendeten Monitorroutinen werden mit Restartbefehlen aufgerufen. Vor den RST-Befehlen wurde je- weils ein NOP-Befehl eingefuegt. - im Sinne einer breiten Anwendung dieses Service-Programms auch durch Z1013-Nutzer, die mit der Grundausstattungsvariante arbeiten, wurde die Einbeziehung des Z1013-Sprungvertei- lers von Rainer Brosig (Coswig) nur fuer die Druckroutine verwendet. TastencodeabweichungenF Funktion Code Schreibmaschinen- Folientastatur --------------------------------------------------------- Cursor 0AH | S4/R runter V Cursor 0BH ^ S4/S hoch | Abbruch 03H CTRL C S4/K EFehleingabenF - Anfangsmenue: Zeichen <> CR, Curs.hoch, Curs.runter - Adresseingabe: Zeichen <> 0-9, A-F, <-, ->, ^C, CR - Anzeigemodus: Zeichen <> E, CR, ^C, <-, -> - Editiermodus: Zeichen <> 0-9, A-F, CR, ^C, .(Punkt im 1.HB), Cursor hoch, runter, links,rechts verlassen Zeile 1 mit Cursor hoch verlassen Zeile 24 mit Cursor runter Zeichen <> druckbares ASCII-Zeichen oder ^C (wenn im 1.HB Punkt eingegeben wurde) - Druckmodus: Zeichen <> 0-9, A-F bei Adresseingabe EAdr < oder = AAdr Eingabe von mehr als 4 Zeichen pro Adresse EKontaktadresse:F Wolfgang Bernhardt Marienburger Str. 35 a Berlin 1 0 5 5