Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:software:os:kommandos [2020/08/10 06:49] – angelegt volkerpz9001:software:os:kommandos [2023/06/13 14:36] (aktuell) – [Disketten und USB] volkerp
Zeile 6: Zeile 6:
 Den Speicher teilen sich Betriebssystem, Bildwiederholspeicher, Anwendungsprogramme und Daten. Den Speicher teilen sich Betriebssystem, Bildwiederholspeicher, Anwendungsprogramme und Daten.
  
-Der Z9001 verwaltet den Speicher nicht selbst. Der Anwender muss selbst die Speicheraufteilung und -nutzung im Blick haben. Die Programme haben feste Speicherbereiche (Programmstandorte und Arbeitsspeicher). Gerade bei der Nutzung von Treiber-Programmen ist deshalb darauf zu achten, dass sich verschiedene Treiber und die restlichen Programme nicht in den Speicherbereichen überschneiden! +Der Z9001 verwaltet den Speicher nicht selbst. Der Anwender muss selbst die Speicheraufteilung und -nutzung im Blick haben. Die **Programme** haben feste Speicherbereiche (Programmstandorte und Arbeitsspeicher). Gerade bei der Nutzung von Treiber-Programmen ist deshalb darauf zu achten, dass sich verschiedene Treiber und die restlichen Programme nicht in den Speicherbereichen überschneiden! 
  
 Standard-Aufteilung mit 2 gesteckten 16K-RAM-Modulen: Standard-Aufteilung mit 2 gesteckten 16K-RAM-Modulen:
Zeile 36: Zeile 36:
 </ditaa> </ditaa>
  
-Wichtige Programme und ihre Speicherbereiche:+Einige Programme und ihre Speicherbereiche:
  
 <code> <code>
-ZM30 3000-3DFF +Programmname    anfangsadresse-endadresse (hexadezimal) 
-GRAF 8E60-A7FF (Grafik-Treiber f. BASIC) + 
-EPSON A400-AFFF+IDAS            0400-1BFF  interpretativer Dialogassembler 
 +ASM             1000-37FF  Assembler + Editor, EDAS 
 +ZM30 3000-3DFF  Zusatzmonitor
 ZMA8 A800-B5FF ZMA8 A800-B5FF
-CRT40 B000-B2FF +EPROM2A         2A00-2DFF  EPROM-Programmierung 
-USBX B600-BFFF +EPROM6A         6A00-6DFF 
-V24 B800-BBFF +EPROMA2         A200-A5FF  
-DOSX BD00-BFFF + 4000-57FF (Hintergrund-RAM)+BASIC           C000-E7FF  ROM-Basic
 </code> </code>
  
-Man erkennt z.B., dass ZMA8 und CRT40 nicht zusammen genutzt werden können. 
  
 ===== Dateien ===== ===== Dateien =====
Zeile 55: Zeile 56:
 Programme können in ROM-Modulen enthalten sein (IDAS-Modul, ASM-Modul, BASIC-Modul u.a.). Diese Programme sind sofort nach dem Einschalten des Kleincomputers verfügbar und brauchen nicht erst geladen zu werden. Programme können in ROM-Modulen enthalten sein (IDAS-Modul, ASM-Modul, BASIC-Modul u.a.). Diese Programme sind sofort nach dem Einschalten des Kleincomputers verfügbar und brauchen nicht erst geladen zu werden.
  
-Sonstige Programme werden von Kassette (oder von anderen externen Speichermedien wie Diskette oder USB-Stick) in den Speicher geladen. Programme und Daten sind in diesem Fall in Dateien organisiert. +Sonstige Programme werden von Kassette (oder von anderen externen Speichermedien wie Diskette oder USB-Stick) in den Speicher geladen. Programme und Daten sind in diesem Fall in **Dateien** organisiert. 
  
 Das "Dateisystem" einer Kassette ist ganz einfach aufgebaut: alle Dateien liegen hintereinander auf der Kassette. Der Anwender muss selbst den Überblick behalten, an welcher Position der Kassette welches Programm abgelegt ist. Dieses ist üblicherweise auf den Kassetteneinlegern vermerkt. Das "Dateisystem" einer Kassette ist ganz einfach aufgebaut: alle Dateien liegen hintereinander auf der Kassette. Der Anwender muss selbst den Überblick behalten, an welcher Position der Kassette welches Programm abgelegt ist. Dieses ist üblicherweise auf den Kassetteneinlegern vermerkt.
Zeile 61: Zeile 62:
 {{:z9001:kassetten:r0112_innen.jpg?200|}} {{:z9001:software:kassette_shuth.jpg?200|}} {{:z9001:kassetten:r0112_innen.jpg?200|}} {{:z9001:software:kassette_shuth.jpg?200|}}
  
-Kassetten-Dateien (s. [[z9001:software:os:kassetteninterface|]] haben einen 128 Byte großen Anfang, der nicht zum Programm gehört (Block 0, FCB). In diesem sogenannten Kopfblock stehen Programmname, Typ und der Speicherbereich, in den das Programm geladen werden soll. Ausführbare Maschinencode-Programme haben den Typ COM, Assembler-Quelltexte den Typ TXT.+Kassetten-Dateien haben einen 128 Byte großen Anfang, der nicht zum Programm gehört (Block 0, enthält den FileControlBlock FCB),  s. [[z9001:software:os:kassetteninterface|]]. In diesem sogenannten Kopfblock stehen Programmname, Typder Speicherbereich, in den das Programm geladen werden soll (Anfangsadresse, Endadresse), sowie die Startadresse, auf der das Programm nach dem Laden mit ''jp startadresse'' gestartet wird. Ausführbare Maschinencode-Programme haben den Typ COM, Assembler-Quelltexte den Typ TXT.
  
-Hinweis: BASIC-Programme und -Daten haben ein eigene Kassettenroutinen, ein eigenes Dateiformat und verzichten auf diesen Kopfblock!+Hinweis: BASIC-Programme und -Daten haben eigene Kassettenroutinen, ein eigenes Dateiformat und verzichten auf diesen Kopfblock!
  
 ===== Laden ===== ===== Laden =====
  
-Um ein Programm von Kassette zu laden, gibt man einfach den Programmnamen (ohne Typ) am Prompt ein: +Um ein Programm von Kassette zu laden, gibt man einfach den Programmnamen am Prompt ein. Der Typ COM wird automatisch ergänzt, kann aber ebenfalls mit angegeben werden:
   >ZM30   >ZM30
 +oder  
 +  >ZM30.COM
  
 Es erscheint die Aufforderung  Es erscheint die Aufforderung 
- 
   start tape   start tape
      
 Nach Enter wird auf Kassette der nächste Kopfblock geladen. Steht in ihm derselbe Programmname wie eingegeben und als Typ COM, wird das Laden fortgesetzt. Andernfalls gibt es eine Fehlermeldung. Nach Enter wird auf Kassette der nächste Kopfblock geladen. Steht in ihm derselbe Programmname wie eingegeben und als Typ COM, wird das Laden fortgesetzt. Andernfalls gibt es eine Fehlermeldung.
  
-Nach dem Laden startet das Programm automatisch!+Nach dem Laden startet das Programm automatisch((der Start erfolgt auch, wenn der Typ nicht COM ist! Zum Laden ohne automatisches Starten gibt es das Systemkommando CLOAD.))!
  
  
 ===== Kommandos ===== ===== Kommandos =====
  
-Maschinencode-Programme (Dateityp COM) enthalten ein oder mehrere Kommandos, die vom OS aus durch Eingabe des Kommandonamens gestartet werden (s. [phb2], Abschnitt 7). Nach Laden des Programms stehen die enthaltenen Kommandos dauerhaft bereit, bis der Speicherbereich durch ein anderes Programm überschrieben wird. +Um nicht jedesmal ein Programm von Kassette laden zu müssen, um es zu starten, oder um Programme zu starten, die im ROM-Modul stehen, enthalten Maschinencode-Programme ein oder mehrere **Kommandos**, die vom OS aus durch Eingabe des Kommandonamens gestartet werden. Nach Laden des Programms stehen die enthaltenen Kommandos dauerhaft bereit, bis der Speicherbereich durch ein anderes Programm überschrieben wird.  
 + 
 +Meist sind der Programmname und (einziger) Kommandoname identisch. Es gibt praktisch keinen Unterschied zwischen Programm und Starten des Kommandos. Beim erstmaligen Aufruf wird das Programm geladen und gestartet, beim erneuten Aufruf wird das gleichnamige Kommando im Speicher gefunden und gestartet. 
 + 
 +Programme wie [[z9001:software:edas|Assembler]] von Kassette [[z9001:kassetten_robotron:r0121|]] u.a. enthalten dagegen mehrere Kommandos, die erst nach dem Laden des Programms zur Verfügung stehen. Hier muss zweistufig gearbeitet werden: 
 +  >ASM       Laden des Assembler-Programmpakets in den Speicher 
 +  start tape 
 +  ... 
 +  >EDIT      Dieses Kommando ist erst nach Laden des Assemblers verfügbar. Es startet den Editor. 
 +  >ASM       Dieses Kommando ist erst nach Laden des Assemblers verfügbar. Es startet den eigentlichen Assembler. 
 +Kommando ASM und Programmname ASM sind gleich((eigentlich ist der volle Programmname ASM.COM und damit nicht gleich dem Kommando)), bewirken aber unterschiedliches. 
 + 
 +Wenn ein eingegebenes Kommando nicht im Speicher gefunden wird, versucht das Betriebssystem, ein gleichnamiges Programm mit Typ COM von Kassette zu laden. 
 + 
 +Manchmal sind Programmname und Kommando NICHT gleich. Damit kann gezielt ein Laden des Programms vom Start des Kommandos unterschieden werden. Der Zusatzmonitor wird z.B. mit  
 + 
 +  >ZM30 
 +   
 +von Kassette geladen, das Kommando zum erneuten Start ist jedoch 
 + 
 +  >ZM 
 + 
 +Kommandos können **Parameter** übergeben werden. Diese sind durch mindestens ein Leerzeichen vom Kommandoname getrennt. Beispiel ist das System-Kommando TIME: mit Parameter wird die Uhrzeit gesetzt, ohne Parameter die Zeit angezeigt. 
 + 
 +  >TIME 07:30    Uhrzeit setzen 
 +  >TIME          Uhrzeit anzeigen  
 +  07:30:03 
 +  >       
 + 
 + 
 +===== Mega-Modul ===== 
 + 
 +Die [[z9001:software:mega|]] stellt neben der Kassette ein weiteres spezielles Dateisystem zur Verfügung, von dem Programme geladen werden können. Im Mega-Modul gibt es zum einen Programme, die im ROM-Bereich des Modul stehen. Deren Kommandos können direkt aufgerufen werden, als wäre das entsprechende 10K-Modul gesteckt. Das betrifft z.B. BASIC und EDIT, ASM oder IDAS oder auch die Modul-eigenen Kommandos DIR, DUMP, SAVE, usw. 
 + 
 +Daneben enthält das Mega-Modul eine Vielzahl von Programmen, die in den RAM-Speicher geladen werden müssen. Diese Programme sind als FA-Dateien im Mega-Modul abgelegt((Details zu FA stehen hier: [[z9001:software:mega#software_ins_modul_integrieren|]])). FA-Dateien enthalten anstelle des Blocks 0 der Kassettendateien einen 32 Byte großen Bereich, in dem Programmname, Typ, Anfangs-, End-, und Startadresse stehen. Die Modulsoftware (Systemerweiterung '#') steuert den Ladevorgang. 
 + 
 +Wird ein Programmname eingegeben, sucht die Modulsoftware zuerst einen passenden Kommandonamen im Speicher. Wird hier nichts gefunden, wird ein passender FA-Dateiname im Mega-Modul (typ COM) gesucht. Wird er gefunden, wird das Programm in den RAM-Speicher geladen und dort gestartet. Wird er nicht gefunden, wird nun auf Kassette gesucht. Es erscheint "start tape"
 + 
 +Die Modulsoftware unterstützt im Unterschied zum OS die **Übergabe von Parametern** an zu ladende Programme. 
 +Bei Start des Programms werden die Parameter übergeben. Damit können Programme/Kommandos praktisch ohne Unterschied genutzt werden, egal ob sie schon in den RAM geladen wurden oder noch aus dem Modul geladen werden müssen. OS-SAVE (adaptiert von [[z9001:kassetten_robotron:r0111|]]) ist ein Beispiel dafür: 
 + 
 +  >OS-SAVE TEST.BIN 1000,10FF,0FFFF 
 + 
 +lädt erst OS-SAVE in den RAM-Speicher und startet es mit den übergebenen Parametern.  
 + 
 +Als Besonderheit können auch **BASIC-Programme** als FA-Dateien im Mega-Modul abgelegt werden. Diese BASIC-Programme werden ebenso wie die Maschinencodeprogramme direkt am OS-Prompt durch Eingabe des Programmnamens geladen und gestartet. Sie werden nicht in BASIC geladen und können hier auch nicht mit CLOAD"..." geladen werden. Beispiel: 
 + 
 +  >TATUM 
 +   
 +initialisiert BASIC, lädt das BASIC-Programm TATUM und startet es mit RUN. 
 + 
 + 
 +===== Disketten und USB ===== 
 + 
 +Mit den Erweiterungen [[z9001:software:disk_os|]] und [[z9001:software:usb|]] können Programme und Daten nicht nur auf Kassette, sondern auch auf Disketten bzw. USB-Speichermedien gespeichert und geladen werden. 
 + 
 +Bei [[z9001:software:disk_os|]] kommt das CP/M-Dateisystem zum Einsatz. Die Disketten sind 100% kompatibel zu CP/A und können parallel genutzt werden((Intern werden Maschinencode-Programme vom Typ COM werden als Typ KCC gespeichert, um eine Verwechslung mit CP/M-Programm zu verhindern. Der Anwender muss sich nicht darum kümmern, er speichert/lädt mit COM!)). BASIC-Programme können unter beiden Systemen (OS und CP/A) gleichwertig benutzt werden.  
 + 
 +Bei [[z9001:software:usb|]] werden FAT32-formatierte Datenträger genutzt. Die USB-Speichermedien können unter DOS/Windows gelesen und beschrieben werden((Dateinamen dürfen nur 8 Zeichen lang sein!)). 
 + 
 +Analog zur Kassettenaufzeichnung werden Programme und Daten mit einem Block 0 (Kopfblock) gespeichert. Zusätzlich gibt es noch den Dateinamen, der zum Programmnamen identisch sein muss. 
 + 
 +Wird ein Programmname eingegeben, sucht die Erweiterungssoftware zuerst einen passenden Kommandonamen im Speicher. Wird hier nichts gefunden, wird ein passender FA-Dateiname im Mega-Modul (typ COM) gesucht. Wird er gefunden, wird das Programm in den RAM-Speicher geladen und dort gestartet. Wird hier nichts gefunden, wird der Programmname als Datei auf Diskette bzw. USB-Speichermedium gesucht. Wird er gefunden, wird das Programm in den RAM-Speicher geladen und dort gestartet
  
-Meist sind der Programmname und (einziger) Kommandoname identisch. Es gibt praktisch keinen Unterschied zwischen Programm und Starten des Kommandos+Wird er nicht gefunden, wird nun auf Kassette gesucht. Es erscheint "start tape".
  
-Programme wie USBX, PRETTYC u.aenthalten dagegen mehrere Kommandos, die erst nach dem Laden des Programms zur Verfügung stehen. Hier muss dann zweistufig gearbeitet werden: +Im BASIC wird ganz normal mit den Kommandos CLOAD/LIST#1/CSAVE gearbeitetDas Speichern und Laden erfolgt nur auf Diskette bzwUSB-Speichermedium, die Kassette wird nicht genutzt.
-  >PRETTYC Laden des C-Compiler-Programmpakets in den Speicher +
-  >C@ Kompilieren. Dieses Kommando wird (nach Kaltstart) nicht mit DIR gelistet, es ist erst nach Laden von PrettyC verfügbar.+
  
-Kommandos können Parameter übergeben werdenDiese sind durch mindestens ein Leerzeichen vom Kommandoname getrennt.+Um einen Überblick über die Dateien zu behalten, besitzen beide Erweiterungen das Kommando DDIR zum Anzeigen der DateienAuch unter BASIC gibt es BASIC-Befehl DIR zum Anzeigen der BASIC-Dateien. 
 +In [[z9001:software:usb|]] gibt es außerdem das Kommando CD zum Verzeichniswechsel.
  
  • z9001/software/os/kommandos.1597042192.txt.gz
  • Zuletzt geändert: 2020/08/10 06:49
  • von volkerp