Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:software:edas [2011/02/03 10:55] – angelegt volkerpz9001:software:edas [2020/04/30 07:50] (aktuell) – [Assembler] volkerp
Zeile 7: Zeile 7:
 ===== Speicherbelegung ===== ===== Speicherbelegung =====
  
-RAM-Version +RAM-Version 1000H-37FFh
  
-ROM-Version +ROM-Version C000h-E7FFh
  
 +Der Speicher von 0300h-0FFFh wird als Arbeitspeicher genutzt.
 +
 +Der Speicher von 3800H bis RAM-Ende (RAM-Version) bzw. 1000H-RAM-Ende (ROM-Version) wird als Textspeicher genutzt. Mit dem Kommando #A des Editors kann dieser Bereich geändert werden, um Speicherplatz für den übersetzten Maschinencode freizuhalten.
  
 ===== Editor ===== ===== Editor =====
Zeile 16: Zeile 19:
 Der Editor wird vom OS durch Eingabe von **EDIT** gestartet. Der Editor wird vom OS durch Eingabe von **EDIT** gestartet.
  
-Nach dem Start meldet sich der Editor mit "EDIT:". Wird hier "N" (Neustart) eingegeben, wir der Editor initialisiert; vorher eingegebener Text ist verloren. Jede andere Taste bewirken einen Restart des Editors. Ein im Textpuffer stehender Text bleibt erhalten. Durch die Ausgabe von "+" auf dem Bildschirm wird die nächste Bedienereingabe angefordert.+Nach dem Start meldet sich der Editor mit "EDIT:". Wird hier "N" (Neustart) eingegeben, wir der Editor initialisiert; vorher eingegebener Text ist verloren. Jede andere Taste bewirken einen Restart des Editors. Ein im Textpuffer stehender Text bleibt erhalten.  
 + 
 +Durch die Ausgabe von "+" auf dem Bildschirm wird die nächste Bedienereingabe angefordert.
  
 Der Editor arbeitet zeilenorientiert, d.h., es werden stets vollständige Zeilen Der Editor arbeitet zeilenorientiert, d.h., es werden stets vollständige Zeilen
Zeile 23: Zeile 28:
 Zeichenkette erfolgen.  Zeichenkette erfolgen. 
  
-Durch die Ausgabe von "+" auf dem Bildschirm wird die nächste +Korrekturen während der Eingabe einer Zeile sind durch Betätigen der Kursortaste <- und anschließende Eingabe der richtigen Zeichen möglich. Beginnt die Bedienereingabe mit dem Zeichen # (Kommandokennzeichen), so wird die nachfolgend eingegebene Zeile als Kommentar interpretiert. Andernfalls wird sie als neue Zeile in den Quelltext übernommen. Die maximale Länge einer Zeile beträgt 72 Zeichen.
-Bedienereingabe angefordert. Korrekturen während der Eingabe einer Zeile sind durch Betätigen der Kursortaste <-- und anschließende Eingabe der richtigen Zeichen möglich. Beginnt die Bedienereingabe mit dem Zeichen # (Kommandokennzeichen), so wird die nachfolgend eingegebene Zeile als Kommentar interpretiert. Andernfalls wird sie als neue Zeile in den Quelltext übernommen. Die maximale Länge einer Zeile beträgt 72 Zeichen.+
  
 EDIT realisiert folgende Funktionen: EDIT realisiert folgende Funktionen:
Zeile 37: Zeile 41:
  
 ^ Kommando ^ Syntax ^ Erläuterung ^ ^ Kommando ^ Syntax ^ Erläuterung ^
-| assign | #A | Anzeigen und Modifizieren des Textpufferbereiches | +| assign | #A | Anzeigen und Modifizieren des Textpufferbereiches\\ Eingabe hexadezimal als "neue Textpufferanfangsadresse,Endeadresse[N]" in der Form XXXXX,XXXXX[N]. Das "N" (Neustart) bewirkt ein Leeren des Textpuffers. 
-| begin | #B | Neustart des Aufbereitungsvorganges |+| begin | #B | Neustart des Aufbereitungsvorganges, Rücksetzen auf Textanfang |
 | end| #E | Beenden der Arbeit mit dem Editor | | end| #E | Beenden der Arbeit mit dem Editor |
 | read| #R"Name" | Eingabe von der Kassette in den Textpuffer | | read| #R"Name" | Eingabe von der Kassette in den Textpuffer |
 | write | #W"Name" | Ausgabe des Textpufferinhaltes auf Magnetband | | write | #W"Name" | Ausgabe des Textpufferinhaltes auf Magnetband |
 | text | #Tn,m | Ausschreiben des Textpufferinhaltes |  | text | #Tn,m | Ausschreiben des Textpufferinhaltes | 
-| insert | #In | Einfügen von Zeilen | +| insert | #In | Einfügen von Zeilen NACH Zeile n 
-| kill | #Kn,m | Streichen von Zeilen |+| kill | #Kn,m | Streichen von Zeilen n bis einschließlich m |
 | comment | #Cn,m | Anfügen von Kommentar | | comment | #Cn,m | Anfügen von Kommentar |
 | no comment | #Nn,m | Streichen von Kommentar | | no comment | #Nn,m | Streichen von Kommentar |
-| substitute | #Sn,m\\ /ZKa1/ZKn1/,/ZKa2/ZKn2/,...,/ZKan/ZKnn | Substituieren von Teilzeichenketten |+| substitute | #Sn,m\\ /ZKa1/ZKn1/,/ZKa2/ZKn2/,...,/ZKan/ZKnn| Substituieren von Teilzeichenketten |
 | uppercase | #UN oder #U[Y] | Umwandlung von Kleinbuchstaben in Großbuchstaben | | uppercase | #UN oder #U[Y] | Umwandlung von Kleinbuchstaben in Großbuchstaben |
 +| ??? | #D | Kommando ist nicht dokumentiert |
 +| (list) | #Ln,m | (Kommando ist nicht dokumentiert) Ausgabe auf Drucker |
 +
  
 **Fehlermeldungen** **Fehlermeldungen**
Zeile 86: Zeile 93:
 | 1 | Ausführung des 1. Durchlaufs. Von dem Quelltext, der im Textpuffer des EDIT steht, wird eine Symboltabelle im RAM erzeugt. Dieser Paß ist für die Übersetzung eines Programmes unbedingt notwendig. | | 1 | Ausführung des 1. Durchlaufs. Von dem Quelltext, der im Textpuffer des EDIT steht, wird eine Symboltabelle im RAM erzeugt. Dieser Paß ist für die Übersetzung eines Programmes unbedingt notwendig. |
 | P (print) | P[Zeilennummer1,Zeilennummer2[,Programmende]]\\ Ausgabe der Übersetzungsliste auf dem Listgerät. | | P (print) | P[Zeilennummer1,Zeilennummer2[,Programmende]]\\ Ausgabe der Übersetzungsliste auf dem Listgerät. |
-| M (MC-Output) | Ausgabe des Maschinencodes auf Magnetbandkassette oder in den Arbeitsspeicher entsprechend der Angabe "T" oder "R". |+| M (MC-Output) | Ausgabe des Maschinencodes auf Magnetbandkassette oder in den Arbeitsspeicher entsprechend der Angabe "T" oder "R".\\ NAME: Bis 8 Zeichen, in Hochkommas; ADDRESS: Startadresse oder einfach Enter  |
 | F (fault) | Syntaktische Prüfung des Quellcodes und Ausgabe der Fehlermeldungen bei syntaktisch falschem Programm. | | F (fault) | Syntaktische Prüfung des Quellcodes und Ausgabe der Fehlermeldungen bei syntaktisch falschem Programm. |
-| X (cross-referenze) | Ausgabe der Crossreferenztabelle |+| X (cross-reference) | Ausgabe der Crossreferenztabelle |
 | A (adress-dictionary) | Ausgabe der Symbolreferenztabelle | | A (adress-dictionary) | Ausgabe der Symbolreferenztabelle |
-| V (variation) | Änderung des Datenflusses für die Ausgabe des Maschinencodes und der Assemblerprotokolle.\\ Nach der Ausschrift "MO:" wird durch die Eingabe von "T" oder "R" festgelegt, ob die MC-Ausgabe bei der Ausführung des Kommandos M auf die Magnetbandkassette  oder in den RAM oder erfolgen soll.\\ Nach der Ausgabe von "LO:" wird durch die Eingabe von "C" der Bildschirm (Console) oder "F" der Drucker als Listgerät festgelegt. | +| V (variation) | Änderung des Datenflusses für die Ausgabe des Maschinencodes und der Assemblerprotokolle.\\ Nach der Ausschrift "MO:" wird durch die Eingabe von "T" oder "R" festgelegt, ob die MC-Ausgabe bei der Ausführung des Kommandos M auf die Magnetbandkassette  oder in den RAM oder erfolgen soll.\\ Nach der Ausgabe von "LO:" wird durch die Eingabe von "C" der Bildschirm (Console) oder "P" der Drucker als Listgerät festgelegt. | 
 | E (end) | Rücksprung in das Steuerprogramm (Monitor). | | E (end) | Rücksprung in das Steuerprogramm (Monitor). |
  
Zeile 145: Zeile 152:
  
 ===== Hinweise ===== ===== Hinweise =====
 +
 +Versionitis:
 +
 +**RAM-Version von Kassette R0121**\\
 +1. Block CRC = FF06, SUM = F6D4\\
 +2. Block CRC = D060, SUM = A690\\
 +3. Block CRC = 58BB, SUM = E640\\
 +4. Block CRC = 2BD6, SUM = FB4F\\
 +5. Block CRC = 2868, SUM = F82A
 +
 +**ROM-Version V. Pohlers ASM.COM**\\
 +1. Block CRC = A06F, SUM = 750A\\
 +2. Block CRC = 62E2, SUM = E05D\\
 +3. Block CRC = CCE5, SUM = 542C\\
 +4. Block CRC = 9249, SUM = 6ABC  <-- fehlerhaft, Version UZ ist korrekt\\
 +5. Block CRC = 1397, SUM = 6FF4
 +
 +**ROM-Version U. Zander edas__c0.851**\\
 +1. Block CRC = A06F, SUM = 750A\\
 +2. Block CRC = 62E2, SUM = E05D\\
 +3. Block CRC = CCE5, SUM = 542C\\
 +4. Block CRC = B883, SUM = 718E\\
 +5. Block CRC = 1397, SUM = 6FF4
 +
 +**ROM-Version Torsten Paul asm_tpaul.rom**\\
 +1. Block CRC = 1253, SUM = 6CD3\\
 +2. Block CRC = D3D1, SUM = EBE3\\
 +3. Block CRC = 9467, SUM = 51DC\\
 +4. Block CRC = 3F16, SUM = 8D99\\
 +5. Block CRC = 64BF, SUM = 8434
 +
 +**ASM-Modul von AS**\\
 +1. Block CRC = 1253\\
 +2. Block CRC = 0E96\\
 +3. Block CRC = 9467\\
 +4. Block CRC = 9D54\\
 +5. Block CRC = C6FD
 +
 +===== Tipps =====
 +
 +
 +  * Beim Assembler ASM auf Adresse 18C2H: CD 4E 17 ändern in 3 x NOP (00). Dann wird beim Speichern aus dem Editor nicht mehr mit gelistet, das Speichern geht wesentlich flotter.
 +  * Quelltexte bekommen die Endung TXT
 +
 +===== Beispiel =====
 +
 +<code>
 +robotron  Z 9001 Einschaltmeldung
 +
 +OS
 +>ASM EDAS laden, nach dem Laden stehen die 
 + Kommandos "EDIT" und "ASM" im Speicher
 +
 +>EDIT Den Editor starten
 +EDIT:N Neustart
 ++#R"V24A3Q" Datei V24A3Q.TXT laden
 ++#T, Quellcode auflisten
 ++#E Editor beenden
 +
 +OS
 +>ASM Assembler starten
 +ASM--HC:N Neustart
 +HL:
 +MO: T Ausgabe auf Tape (bzw. USB)
 +LO: C Listing auf Bildschirm (Console)
 +PASS: 1 1. Pass muss sein
 +PASS: M Ausgabe des Maschinencodes
 + Datei V24A3.COM wird erzeugt
 +NAME :"V24A3" Name in Gänsefüßchen
 +ADDRESS: Enter, Startadresse = Anfangsadresse
 +VERIFY ((Y)/N)? N
 +ASM--HC:
 +PASS: E Assembler beenden
 +
 +OS
 +>
 +</code>
 +
 +
  
  • z9001/software/edas.1296730500.txt.gz
  • Zuletzt geändert: 2011/02/03 09:55
  • (Externe Bearbeitung)