Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:software:idas [2011/01/30 11:02] – angelegt volkerpz9001:software:idas [2018/10/17 11:21] (aktuell) volkerp
Zeile 3: Zeile 3:
 **Ein Interaktiver Dialogassembler für KC 87** **Ein Interaktiver Dialogassembler für KC 87**
  
-IDAS belegt den Speicher von 0300H bis 10FFH.+Der IDAS ist ein Dienstprogramm zur dialogorientierten Erarbeitung von 
 +Programmen in der Assemblersprache SYPS K 1520. Er vereinigt in sich 
 +Editier-, Übersetzer- und Interpreterfunktionen. Besonders geeignet ist er 
 +dann, wenn Befehlsfolgen und kurze Programme (z. B. Unterprogramme 
 +für den BASIC-Interpreter) rationell aufgestellt und getestet werden sollen. 
 + 
 +Mit IDAS hat der Anwender die Möglichkeit, Programme auf Assemblerniveau zu schreiben. IDAS erzeugt daraus Maschinencode. Das Besondere am IDAS besteht in seiner einfachen Bedienung und der Möglichkeit, das Programm abschnittsweise abarbeiten zu lassen. Damit werden gute Voraussetzungen für einen effektiven Programmtest geschaffen. Der IDAS umfasst die Funktionen eines Editors (Programmaufbereitung), Assemblers (Übersetzung) und Laders (Installieren und Starten des Programms). 
 + 
 + 
 +===== Speicherbelegung ===== 
 + 
 + 
 +| Dateiname | IDAS.COM | 
 +| Laden in | OS | 
 +| Programmstandort | 0400h-1BFFh (RAM-Version)\\ 0C000h-0E7FFh (ROM-Version) | 
 +| OS-Kommando | IDAS | 
 + 
 +Der Speicher von 300h-400h wird als Arbeitsspeicher genutzt. 
 + 
 +Es gibt zwei ROM-Versionen: \\ 
 +Da der IDAS nur ~ 6KByte Speicher belegt, sind im Modul noch 4K ROM frei. Das robotron-IDAS-Modul meldet sich mit "IDAS :" und enthält im zusätzlichen Speicher den ZM 2.0 (Z9001 MONITOR V2.0 (ROM) 1985) und die EPROM-Software für das Programmier-Modul. 
 +Der IDAS bei U. Zander meldet sich mit "INTERPRETING DIALOG-ASSEMBLER" und enthält zusätzlich den ZM (Z9001 MONITOR CENT. 1986), RENEW und QUICK,NORMAL,LOAD. RENEW stellt ein versehentlich mit NEW gelöschtes Basic-Programm wieder her. Die Kassettenroutinen QUICK,NORMAL,LOAD erfordern einen speziellen Adapter am User-Port. Sie funktionieren nicht mit dem normalen Kassetteninterface! -> [[z9001:software:turbo#quick_v_idas-modul_uzander|]] 
 + 
 +Auch von der RAM-Version gibt es verschiedene Fassungen (s.u.). 
 + 
 +===== Anleitung =====
  
 Nach Start erscheint die Meldung 'IDAS:'; mit Eingabe des  Nach Start erscheint die Meldung 'IDAS:'; mit Eingabe des 
Zeile 9: Zeile 34:
 bewirkt einen Restart. bewirkt einen Restart.
 Eine Zuweisung der Speicherbereiche fuer Quelltext (TB) und  Eine Zuweisung der Speicherbereiche fuer Quelltext (TB) und 
-Maschinencode (MC) ist mit dem Kommando ASGN möglich.+Maschinencode (MC) ist mit dem Kommando **ASGN** möglich.
  
 Standard: MC 1C00H - 1FFFH und TB 2000H - ... Standard: MC 1C00H - 1FFFH und TB 2000H - ...
Zeile 15: Zeile 40:
 Bei Bereichsüberschreitung erfolgt eine Fehlermeldung ( +TB+ / +MC+ ).  Bei Bereichsüberschreitung erfolgt eine Fehlermeldung ( +TB+ / +MC+ ). 
  
-IDAS wird durch das Kommando CM ( Call Monitor ) verlassen.+IDAS wird durch das Kommando **CM** ( Call Monitor ) verlassen.
  
 Im Kommando-Mode werden die eingegebenen Befehle sofort  Im Kommando-Mode werden die eingegebenen Befehle sofort 
Zeile 38: Zeile 63:
  
 <code> <code>
-     ROBOTRON      Zilog             ROBOTRON    Zilog+     ROBOTRON      Zilog
  
-M1:  LD M,A   M1:  LD (HL),A         OUT 80H     OUT (80H),A +M1:  LD M,A   M1:  LD (HL),A 
-     JR M1-#       JR M1             IN  3CH     IN A,(3CH) +     JR M1-#       JR M1 
-     JMP M1        JP M1             CMP 0       CP 0 +     JMP M1        JP M1 
-     JRC M1-#      JR C,M1           ADD B       ADD A,B +     JRC M1-#      JR C,M1 
-     JPZ M1        JP Z,M1           JMP M       JP (HL) +     JPZ M1        JP Z,M1 
-     CANZ M1       CALL NZ,M1        RNC         RET NC+     CANZ M1       CALL NZ,M1
      DJNZ M1-#     DJNZ M1      DJNZ M1-#     DJNZ M1
 +     OUT 80H       OUT (80H),A
 +     IN  3CH       IN A,(3CH)
 +     CMP 0         CP 0
 +     ADD B         ADD A,B
 +     JMP M         JP (HL)
 +     RNC           RET NC
 </code> </code>
 +
 +=== Steueranweisungen für den Assembler ===
 +
 +| ORG adresse        | Anfangsadresse ; muss im MC-Bereich liegen | 
 +| konstante:EQU wert | Wertzuweisung zu einem Symbolnamen | 
 +| BER anzahl         | Bereich freihalten (wird nicht gelöscht) | 
 +| DB byte            | Byte definieren | 
 +| DB 'text'          | Text definieren | 
 +| DA adr             | Adresse (Doppelbyte) definieren | 
 +| END                | Ende des Quelltextes ; danach dürfen keine Befehle mehr stehen, sonst Absturz möglich | 
 +
 +Zahlenwerte können dezimal (ohne Kennzeichnung) oder hexadezimal (mit nachgestelltem 'H') angegeben werden.
 +Zahlen  müssen mit einer Ziffer beginnen, d.h. Hexadezimalzahlen größer 9FH benötigen eine Vornull (z.B.: 0CBH).
 +Die  Verwendung von ASCII-Zeichen ist möglich, wenn diese in Hochkommas eingeschlossen werden.
 +
 +Bsp.: ''LD A,75'' und ''LD A,4BH'' und ''LD A,'K' '' sind identisch.
 +
 +=== Kommandos ===
 +
 +| ASGN | Speicherplatzuweisung (s.o.) | 
 +| CM | Rückkehr ins OS (call monitor) |
 +| LIST marke         | Anzeige Quelltext ab Marke | 
 +| LIST zeile1,zeile2 | Anzeige Quelltext ab Zeile1 bis Zeile2 | 
 +| STEP abstand       | neuer Abstand der Zeilennummern | 
 +| KILL               | Löschen des gesamten Quelltextes | 
 +| KILL zeile1,zeile2 | Löschen Quelltext von Zeile1 bis Zeile2 | 
 +| RUN                | ganzes Programm übersetzen und starten | 
 +| RUN zeile1         | Programm ab Zeile1 übersetzen und starten | 
 +| RUN zeile1,zeile2  | wie RUN, aber nur von Zeile1 bis Zeile2 | 
 +| ADDR markename     | Ausgabe der Markenadresse | 
 +| PUT  konstante     | Ausgabe des Wertes der Konstanten | 
 +| DR                 | Anzeige Register (display register)\\ Flags: S Z x H x P/V N C | 
 +| DS                 | Speicher  anzeigen  /  ändern  (Ende  mit 'STOP'-Taste) |
 +| READ | Eingabe von Quelltext (an den Anfang)\\ durch 'DEVICE (T/C)' T=Tape oder C=Console zuweisen.\\ READ von Console ermöglicht Eingabe ohne Zeilennummern. Diese werden automatisch erzeugt. |
 +| READ zeile1 | Einfügen von Quelltext ab Zeile1 |
 +| READ marke | Einfügen von Quelltext ab Marke |
 +| WRIT | Ausgabe von Quelltext\\ durch 'DEVICE (T/C)' T=Tape oder C=Console zuweisen. |
 +| WRIT zeile1 | |
 +| WRIT marke | |
 +| MCSV | MC-SAVE. Maschinencode entsprechend der bei ASGN zugewiesenen Adressen auf Kassette schreiben. |
 +| MCSV adr1,adr2 | Speicherabzug von Adresse1 bis Adresse2 auf Kassette schreiben. |
 +
 +
 +=== Fehlermeldungen ===
 +
 +| +ILO+ | unzulässige Operation | 
 +| +IO+  | Ein-/Ausgabefehler | 
 +| +LNR+ | unzulässige Zeilennummer | 
 +| +MDS+ | mehrfach definiertes Symbol | 
 +| +MNE+ | falsche Syntax ; unbekannter Code | 
 +| +NDS+ | nicht definiertes Symbol | 
 +| +OPD+ | Operandenfehler bzw. Operand fehlt | 
 +| +SYM+ | Symbolfehler | 
 +
 +Ein beliebter Fehler: in der Eingabezeile sind Control-Zeichen enthalten. Deshalb: keine Cursortasten benutzen!
 +
 +
 +===== Versionen =====
 +
 +Vom IDAS gibt es mehrere verschiedene Versionen, die sich im Detail unterscheiden (Startmeldung, Fehlermeldungen, ...). Die ROM-Versionen enthalten auch verschiedene Zusatzprogramme.
 +
 +**IDAS RAM-Version Kassette R0122**\\
 +1. Block CRC = DF95, SUM = 0536\\
 +2. Block CRC = EF0A, SUM = 51A5\\
 +3. Block CRC = 0904, SUM = E84B\\
 +4. Block CRC = 6904, SUM = 3FC4
 +
 +**robotron Modul idas.rom**\\
 +1. Block CRC = 7938, SUM = 8F16\\
 +2. Block CRC = 1809, SUM = F6E1\\
 +3. Block CRC = F7FA, SUM = 47AF\\
 +4. Block CRC = B8EF, SUM = C527\\
 +5. Block CRC = E250, SUM = D35F
 +
 +  * idas.rom = IDAS von Modul M002..M006
 +  * Meldung mit "IDAS:"
 +  * enthält ZM Z9001 MONITOR V2.0 (ROM) 1985
 +  * EPROM (Software für robotron-EPROMMER)
 +  * ZM hat Register C und E vertauscht wie in ZM30 der Kassette R0112
 +  * IDAS entspricht der Version von Kassette R0122 (nur auf andere Adr. gelinkt)
 +
 +**ROM-Version U. Zander idas_c0.851**\\
 +1. Block CRC = A02E, SUM = 8BC7\\
 +2. Block CRC = 628C, SUM = FBAD\\
 +3. Block CRC = A1C7, SUM = 4EA0\\
 +4. Block CRC = BBBA, SUM = C4D0\\
 +5. Block CRC = B139, SUM = EE30
 +
 +  * idas_c0.851 = IDAS von UZ,
 +  * Meldung mit "INTERPRETING DIALOG-ASSEMBLER"
 +  * enthält ZM Z9001 MONITOR CENT. 1986
 +  * QUICK, NORMAL, QLOAD (fuer [[z9001:software:turbo#quick_v_idas-modul_uzander|Turbolader mit Extra-Hardware]])
 +  * IDAS entspricht nicht der Version von Kassette R0122
 +  * IDAS entspricht nicht der Beschreibung (Seite 3: Nach dem Start meldet sich der Assembler mit der Ausschrift 'IDAS :')
 +
 +**ROM von W. Hasche idas_whasche.rom**\\
 +1. Block CRC = A02E, SUM = 8BC7\\
 +2. Block CRC = 628C, SUM = FBAD\\
 +3. Block CRC = A1C7, SUM = 4EA0\\
 +4. Block CRC = BBBA, SUM = C4D0\\
 +5. Block CRC = 4FDA, SUM = C4F0
 +
 +  * die letzten 2K sind vermutlich falsch EPROM5 = EPROM4 (bis auf ein Bit), damit entspricht idas_whasche.rom höchstwarscheinlich idas_c0.851
 +
 +**ROM-Version Bereich 8000h**\\
 +diese Version war bei Ebay versteigert worden. Leider ist die Software nicht publik.
  
  • z9001/software/idas.1296385349.txt.gz
  • Zuletzt geändert: 2011/01/30 10:02
  • (Externe Bearbeitung)