Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:software:idas [2011/02/03 11:45] volkerpz9001:software:idas [2025/11/20 13:02] (aktuell) – [Tabelle] volkerp
Zeile 9: Zeile 9:
 für den BASIC-Interpreter) rationell aufgestellt und getestet werden sollen. 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 umfaßt die Funktionen eines Editors (Programmaufbereitung), Assemblers (Übersetzung) und Laders (Installieren und Starten des Programms).+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 ===== ===== Speicherbelegung =====
  
-RAM-Version 0400h-1BFFh 
  
-ROM-Version 0C000h-0E7FFh+| Dateiname         | IDAS.COM                                                                                                                                                              | 
 +| Laden in          | OS                                                                                                                                                                    | 
 +| Programmstandort  | 0400h-1BFFh (RAM-Version)  -> robotron Kassette [[..:kassetten_robotron:r0122|]]\\ 0C000h-0E7FFh (ROM-Version)  -> robotron Modul [[..:module_robotron#idas-modul|]] 
 +| OS-Kommando       | IDAS                                                                                                                                                                  |
  
 Der Speicher von 300h-400h wird als Arbeitsspeicher genutzt. 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. Mein 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.+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|]]
  
-Der IDAS bei U. Zander meldet sich mit "INTERPRETING DIALOG-ASSEMBLER" und enthält zusätzlich den ZM (Z9001 MONITOR CENT1986), RENEW und QUICK,NORMAL,LOAD.+Auch von der RAM-Version gibt es verschiedene Fassungen (s.u.).
  
-Auch von der RAM-Version gibt es verschiedene Fassungen.+===== Downloads ===== 
 + 
 +  * {{ :z9001:software:z9001_idas.zip |}} reass. Quellcode zum Neuübersetzen, RAM-Version/ROM-Version/Version UZ 
 +  * http://www.sax.de/~zander/z9001/z9_idas.pdf -> UZander, Beschreibung INTERPRETATIVER DIALOGASSEMBLER
  
 ===== Anleitung ===== ===== Anleitung =====
Zeile 51: Zeile 58:
 Im Editmode erfolgt die Eingabe des Quelltextes in der Form: Im Editmode erfolgt die Eingabe des Quelltextes in der Form:
  
-  Zeilennr. Marke: Befehl+  Zeilennnummer Marke: Befehl
  
 Eine Marke kann stehen, muss aber nicht. Kommentare sind nicht  Eine Marke kann stehen, muss aber nicht. Kommentare sind nicht 
 möglich. möglich.
 +
 +Das Tabulatorzeichen ist nicht zulässig, es muss mit Leerzeichen gearbeitet werden!
  
 Verarbeitet wird ROBOTRON-Code für U880.  Verarbeitet wird ROBOTRON-Code für U880. 
Zeile 61: Zeile 70:
  
 <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>
  
Zeile 82: Zeile 97:
 | END                | Ende des Quelltextes ; danach dürfen keine Befehle mehr stehen, sonst Absturz möglich |  | 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.+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). 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. Die  Verwendung von ASCII-Zeichen ist möglich, wenn diese in Hochkommas eingeschlossen werden.
  
-Bsp.:   LD A,75     LD A,4BH     LD A,'K'     sind  identisch.+Bsp.: ''LD A,75'' und ''LD A,4BH'' und ''LD A,'K' '' sind identisch.
  
 === Kommandos === === Kommandos ===
  
 +| ASGN | Speicherplatzuweisung (s.o.) |  
 +| CM | Rückkehr ins OS (call monitor) |
 | LIST marke         | Anzeige Quelltext ab Marke |  | LIST marke         | Anzeige Quelltext ab Marke | 
 | LIST zeile1,zeile2 | Anzeige Quelltext ab Zeile1 bis Zeile2 |  | LIST zeile1,zeile2 | Anzeige Quelltext ab Zeile1 bis Zeile2 | 
Zeile 101: Zeile 117:
 | ADDR markename     | Ausgabe der Markenadresse |  | ADDR markename     | Ausgabe der Markenadresse | 
 | PUT  konstante     | Ausgabe des Wertes der Konstanten |  | PUT  konstante     | Ausgabe des Wertes der Konstanten | 
-| DR                 | Anzeige Register | +| DR                 | Anzeige Register (display register)\\ Flags: S Z x H x P/V N C 
 | DS                 | Speicher  anzeigen  /  ändern  (Ende  mit 'STOP'-Taste) | | 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. |
  
  
Zeile 116: Zeile 140:
 | +SYM+ | Symbolfehler |  | +SYM+ | Symbolfehler | 
  
-(Ein "beliebterFehler: in der Eingabezeile sind  Control-Zeichen enthalten. Deshalb: keine Cursortasten benutzen ! )+Ein beliebter Fehler: in der Eingabezeile sind Control-Zeichen enthalten. Deshalb: keine Cursortasten benutzen!
  
 +===== Beispiel =====
  
-=== Arbeit mit dem Massenspeicher ===+<code> 
 +IDAS : N 
 ++       1 JR START-# 
 ++       2 TXT: DB 'HALLO Z9001' 
 ++       3 DB 0 
 ++       10 START: LD DE,TXT 
 ++       20 LD C,9 
 ++       30 CALL 5 
 ++       LIST 
 +00001           JR      START-# 
 +00002   TXT:    DB      'HALLO Z9001' 
 +00003           DB      0 
 +00010   START:  LD      DE,TXT 
 +00020           LD      C,9 
 +00030           CALL    5 
 ++       RUN 
 +HALLO Z9001+                     
 ++       ASGN 
 +TB (2000H-206BH,BFFFH): 
 +MC (1C00H-1C16H,1FFFH):  
 +</code>
  
-| READ | Eingabe von Quelltext (an den Anfang)\\ durch 'DEVICE (T/C)T=Tape oder C=Console zuweisen.\\ READ von Console ermöglicht Eingabe ohne ZeilennummernDiese werden automatisch erzeugt| +erzeugter Maschinencode: 
-| READ zeile1 | Einfügen von Quelltext ab Zeile1 | +<code> 
-| READ marke | Einfügen von Quelltext ab Marke | +MC: 
-| WRIT | Ausgabe von Quelltext\\ durch 'DEVICE (T/C)T=Tape oder C=Console zuweisen. | +1C00   18 0C 48 41 4C 4C 4F 20 5A 39 30 30 31 00 11 02   ..HALLO Z9001... 
-| WRIT zeile1 | | +1C10   1C 0E 09 CD 05 00 C3 0A 05 00 FF 00 FF 00 FF 00   ................ 
-| WRIT marke | | + 
-| MCSV | MC-SAVEMaschinencode entsprechend der bei ASGN zugewiesenen Adressen auf Kassette schreiben. +1C00  18 0C            JR      1C0EH 
-| MCSV adr1,adr2 | Speicherabzug von Adresse1 bis Adresse2 auf Kassette schreiben|+1C02  48..             DB "HALLO Z9001",
 +1C0D  31 00 11         LD      DE,1C02H 
 +1C11  0E 09            LD      C,09H 
 +1C13  CD 05 00         CALL    0005H 
 +1C16  C3 0A 05         JP      050AH 
 +</code> 
 +JP 050Ah wird automatisch am Ende ergänzt und ist der Rücksprung in die Kommandoschleife. 
 + 
 +Textspeicher: 
 +<code> 
 +TB: 
 +2000   01 00 12 32 02 00 1C 00 4A 52 00 53 54 41 52 54   ...2....JR.START 
 +2010   2D 23 02 00 1B 64 0B 02 1C 54 58 54 00 44 42 00   -#...d...TXT.DB. 
 +2020   27 48 41 4C 4C 4F 20 5A 39 30 30 31 27 03 00 0C   'HALLO Z9001'... 
 +2030   64 01 0D 1C 00 44 42 00 30 0A 00 16 62 03 0E 1C   d....DB.0...b... 
 +2040   53 54 41 52 54 00 4C 44 00 44 45 00 54 58 54 14   START.LD.DE.TXT. 
 +2050   00 0E 62 02 11 1C 00 4C 44 00 43 00 39 1E 00 0E   ..b....LD.C.9... 
 +2060   3A 03 13 1C 00 43 41 4C 4C 00 35 00 FF 00 FF 00   :....CALL.5..... 
 + 
 +2000   01 00   12   32 02   00 1C         00 "JR" 00 "START" 
 +2012   02 00   1B   64 0B   02 1C "TXT"   00 "DB" 00 "'HALLO Z9001'
 +202D   03 00   0C   64 01   0D 1C         00 "DB" 00 "0"  
 +2039   0A 00   16   62 03   0E 1C "START" 00 "LD" 00 "DE" 00 "TXT" 
 +204F   14 00   0E   62 02   11 1C         00 "LD" 00 "C" 00 "9" 
 +205D   1E 00   0E   3A 03   13 1C         00 "CALL" 00 "5" 
 +206B 
 + 
 +2 Byte Zeilennummer (hex) 
 +1 Byte Länge 
 +2 Byte Token + Parameter (zB. Länge bei DB) 
 +2 Byte Adr MC-Code             
 +Marke (optional),Befehl,Parameter,immer durch 00 getrennt            
 +             
 +Token: (Liste  1648h-1837h) 
 + 32 JR 
 + 3A CALL 
 + 62 LD 
 + 64 DB 
 +</code> 
 + 
 +Auf Kassette gespeicherte Quelltexte haben ein Format analog zum [[edas|]]: 
 +  * Dateiendung .TXT (wird automatisch angehängt) 
 +  * keine Zeilennummern 
 +  * Zeilenende 0Dh 
 +  * Dateiende 00h 
 + 
 +<code> 
 +Block 00 
 +00000080h: 4A 52 20 53 54 41 52 54 2D 23 0D 54 58 54 3A 20 ; JR START-#.TXT:  
 +00000090h: 44 42 20 27 48 41 4C 4C 4F 20 5A 39 30 30 31 27 ; DB 'HALLO Z9001' 
 +000000a0h: 0D 44 42 20 30 0D 53 54 41 52 54 3A 20 4C 44 20 ; .DB 0.START: LD  
 +000000b0h: 44 45 2C 54 58 54 0D 4C 44 20 43 2C 39 0D 43 41 ; DE,TXT.LD C,9.CA 
 +000000c0h: 4C 4C 20 35 0D 00 00 00 00 00 00 00 00 00 00 00 ; LL 5............ 
 +</code> 
 +===== Versionen =====
  
-===== Hinweise =====+Vom IDAS gibt es mehrere verschiedene Versionen, die sich im Detail unterscheiden (Startmeldung, Fehlermeldungen, ...). Die ROM-Versionen enthalten auch verschiedene Zusatzprogramme.
  
-Vom IDAS gibt es meherere verschiedene Versionendie sich im Detail unterscheiden (Startmeldung, Fehlermeldungen, ...). Die ROM-Versionen enthalten auch verschiedene Zusatzprograme.+2025 habe ich IDAS reassemblieren müssen((IDAS Laden/Speichern hat nicht im Disk-OS funktioniertda Speicherzellen im FCB genutzt werdendie auch im Disk-OS verwendet werdenEin Patch ist jetzt verfügbar.)) und dabei auch die Versionen miteinander verglichenVermutlich ist die Version idas_c0.851 (U. Zander) die ältere der beiden Versionen. 
  
 **IDAS RAM-Version Kassette R0122**\\ **IDAS RAM-Version Kassette R0122**\\
Zeile 140: Zeile 239:
 4. Block CRC = 6904, SUM = 3FC4 4. Block CRC = 6904, SUM = 3FC4
  
-**mein Modul idas.rom**\\+**robotron Modul idas.rom**\\
 1. Block CRC = 7938, SUM = 8F16\\ 1. Block CRC = 7938, SUM = 8F16\\
 2. Block CRC = 1809, SUM = F6E1\\ 2. Block CRC = 1809, SUM = F6E1\\
Zeile 147: Zeile 246:
 5. Block CRC = E250, SUM = D35F 5. Block CRC = E250, SUM = D35F
  
-idas.rom = IDAS von Modul M002..M006\\ +  * idas.rom = IDAS von Modul M002..M006 
-Meldung mit "IDAS :"\\ +  Meldung mit "IDAS:" 
-enthält ZM Z9001 MONITOR V2.0 (ROM) 1985\\ +  enthält ZM Z9001 MONITOR V2.0 (ROM) 1985 
-EPROM (Software für robotron-EPROMMER)\\ +  EPROM (Software für robotron-EPROMMER) 
-ZM hat Register C und E vertauscht wie in ZM30 der Kassette R0112\\ +  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)+  IDAS entspricht der Version von Kassette R0122 (nur auf andere Adr. gelinkt)
  
 **ROM-Version U. Zander idas_c0.851**\\ **ROM-Version U. Zander idas_c0.851**\\
Zeile 161: Zeile 260:
 5. Block CRC = B139, SUM = EE30 5. Block CRC = B139, SUM = EE30
  
-idas_c0.851 = IDAS von UZ,\\ +  * idas_c0.851 = IDAS von UZ, 
-Meldung mit "INTERPRETING DIALOG-ASSEMBLER"\\ +  Meldung mit "INTERPRETING DIALOG-ASSEMBLER" 
-enthält ZM Z9001 MONITOR CENT. 1986\\ +  enthält ZM Z9001 MONITOR CENT. 1986 
-QUICK, NORMAL, QLOAD\\ +  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 Version von Kassette R0122 
-IDAS entspricht nicht der Beschreibung (Seite 3: Nach dem Start meldet sich der  +  IDAS entspricht nicht der Beschreibung (Seite 3: Nach dem Start meldet sich der Assembler mit der Ausschrift 'IDAS :')
-Assembler mit der Ausschrift 'IDAS :')+
  
 **ROM von W. Hasche idas_whasche.rom**\\ **ROM von W. Hasche idas_whasche.rom**\\
Zeile 176: Zeile 274:
 5. Block CRC = 4FDA, SUM = C4F0 5. Block CRC = 4FDA, SUM = C4F0
  
-die letzten 2K sind vermutlich falsch EPROM5 = EPROM4 (bis auf ein Bit)\\ +  * die letzten 2K sind vermutlich falsch EPROM5 = EPROM4 (bis auf ein Bit)damit entspricht idas_whasche.rom höchstwarscheinlich idas_c0.851
-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.\\
 +2025: Ich kann jetzt aber eine solche ROM-Version kompilieren.
  
  • z9001/software/idas.1296733513.txt.gz
  • Zuletzt geändert: 2011/02/03 10:45
  • (Externe Bearbeitung)