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:basic [2012/01/01 15:02] – [Patch BASIC86] volkerpz9001:basic [2021/05/25 05:44] (aktuell) – [BASIC-Varianten] volkerp
Zeile 5: Zeile 5:
 ===== Geschichte ===== ===== Geschichte =====
  
-Das Basic {{:z9001:basic.zip|}} ist eine Entwicklung des FTP Dummerstorf/Rostock (s.a. "Dr.-Ing. Jürgen Lübcke, Dipl.-Ing. Reinhard Vilbrandt: BASIC-Interpreter für K1520, rfe 1/1983, S. 14-16"). Ursprünglich entstand dieses BASIC als Mix aus dem  SPECTRUM und dem Microsoft-8K-BASIC, welches für viele Computer der frühen 80er Jahre verfügbar war.+Das Basic {{:z9001:basic.zip|}} ist eine Entwicklung des FTP Dummerstorf/Rostock (s.a. "Dr.-Ing. Jürgen Lübcke, Dipl.-Ing. Reinhard Vilbrandt: BASIC-Interpreter für K1520, rfe 1/1983, S. 14-16"). Ursprünglich entstand dieses BASIC als Mix aus dem  SPECTRUM und dem Microsoft-8K-BASIC, welches für viele Computer der frühen 80er Jahre verfügbar war.
  
 Dr. Keller hat mir Januar 2008 folgende Informationen mitgeteilt: Dr. Keller hat mir Januar 2008 folgende Informationen mitgeteilt:
Zeile 20: Zeile 20:
 Nach Übernahme der Dummerstorfer BASIC-Version geschah etwa folgendes: Nach Übernahme der Dummerstorfer BASIC-Version geschah etwa folgendes:
  
-  * Die Software stellt sich als Mischung (Sinclair, MS) heraus, wobei einige Passagen offensichtlich rückübersetze MS-Software waren.+  * Die Software stellt sich als Mischung (Sinclair, MS) heraus, wobei einige Passagen offensichtlich rückübersetzte MS-Software waren.
   * Etwa 6K-Byte der Software (Kern) wurde so gelassen der Rest wurde überarbeitet/ergänzt/verbessert.   * Etwa 6K-Byte der Software (Kern) wurde so gelassen der Rest wurde überarbeitet/ergänzt/verbessert.
   * Insbesondere wurden einige Fehler beseitigt, die schon in der MS-Version steckten und wesentliche Sprachkomponenten wurden angepasst (bei MKD durch Keller/Busch)   * Insbesondere wurden einige Fehler beseitigt, die schon in der MS-Version steckten und wesentliche Sprachkomponenten wurden angepasst (bei MKD durch Keller/Busch)
Zeile 33: Zeile 33:
   * der fertige Kassettentreiber wurde dann (etwa 12/83 oder 01/84 an Mühlhausen übergeben, so dass zur Frühjahrsmesse 84 bereits die Kompatibilität bezüglich der Datenübernahme gesichert war.   * der fertige Kassettentreiber wurde dann (etwa 12/83 oder 01/84 an Mühlhausen übergeben, so dass zur Frühjahrsmesse 84 bereits die Kompatibilität bezüglich der Datenübernahme gesichert war.
   * später gab es durch Hobbyisten (z.B. im ZKI) schnellere und stabilere Kassettentreiber, die auf der jeweils gerätespezifischen Hardware aufsetzten. Häufig wurden diese auf Einzelrechnern auch genutzt, sofern kein Datenaustausch erforderlich war.   * später gab es durch Hobbyisten (z.B. im ZKI) schnellere und stabilere Kassettentreiber, die auf der jeweils gerätespezifischen Hardware aufsetzten. Häufig wurden diese auf Einzelrechnern auch genutzt, sofern kein Datenaustausch erforderlich war.
-  * Auch darüber hinaus wurden im BASIC seitens MKD wesentliche Erweitungen, Verbesserungen und Fehlerkorrekturen vorgenommen, die beiden Computern (robotron und Mühlhausen) zu Gute kamen.+  * Auch darüber hinaus wurden im BASIC seitens MKD wesentliche Erweiterungen, Verbesserungen und Fehlerkorrekturen vorgenommen, die beiden Computern (robotron und Mühlhausen) zu Gute kamen.
  
 Der 8k-Kern wurde (meines Wissens) fast identisch von Mühlhausen genutzt. Die Unterschiede in den Sprachkomponenten wurden in die 2k-Erweiterungen gesteckt. Der 8k-Kern wurde (meines Wissens) fast identisch von Mühlhausen genutzt. Die Unterschiede in den Sprachkomponenten wurden in die 2k-Erweiterungen gesteckt.
Zeile 60: Zeile 60:
   * **RAM-Basic 1984 (BASIC84):** Auf Kassette R0111 enthalten.   * **RAM-Basic 1984 (BASIC84):** Auf Kassette R0111 enthalten.
   * **Basic-Modul 1984 (BASIC84)**: Kern EPROMs M497 bis M500, Erweiterung M501;\\ kaum verbreitet, entspricht dem RAM-Basic, hat RENUMBER   * **Basic-Modul 1984 (BASIC84)**: Kern EPROMs M497 bis M500, Erweiterung M501;\\ kaum verbreitet, entspricht dem RAM-Basic, hat RENUMBER
-  * **Basic-Modul ab 1985 (BASIC85)**: Kern EPROMs M507 bis M510, Erweiterung M511;\\ meldet sich mit MEMORY SIZE, hat den Befehl  RENUMBER+  * **Basic-Modul ab 1985 (BASIC85)**: Kern EPROMs M507 bis M510, Erweiterung M511;\\ meldet sich mit MEMORY SIZE, hat den Befehl  RENUMBER
   * **Basic-Modul ab 1986 (BASIC85P)**: Kern PROM DS2364D45 BM600 , Erweiterung M511;\\ meldet sich mit MEMORY END, sonst genau wie genau wie Basic-Modul ab 1985 (BASIC85)   * **Basic-Modul ab 1986 (BASIC85P)**: Kern PROM DS2364D45 BM600 , Erweiterung M511;\\ meldet sich mit MEMORY END, sonst genau wie genau wie Basic-Modul ab 1985 (BASIC85)
-  * **KC87.1x (BASIC85)**: Kern PROM DS2364D45 BM600,  Erweiterung PROM DS2364D45 BM602;\\ genau wie obiges BASIC-Modul +  * **KC87.1x (BASIC85)**: Kern PROM DS2364D45 BM600,  Erweiterung PROM DS2364D45 BM602;\\ genau wie obiges BASIC-Modul 
-  * **Plotter-Modul (BASIC86)**: Kern PROM DS2364D45 BM600, Erweiterung EPROM M122. Es gibt auch inhaltlich gleiche Module mit Kern PROM DS2364D45 BM600, Erweiterung PROM DS2364D45 BM608;\\ meldet sich mit MEMORY END, hat den Befehl RENUM und und enthält zusätzliche Grafikbefehle.+  * **Plotter-Modul (BASIC86)**: Kern PROM DS2364D45 BM600, Erweiterung EPROM M122((Bei meinem Modul (Bild oben) ist der Erweiterungs-2K-EPROM auch als Nummer M112 deklariert. BM112 ist allerdings auch der PROM des Druckermoduls. Ich glaube, dass mein Modul falsch bezeichnet ist. Dank an Denis Kushch für den Hinweis)). Es gibt auch inhaltlich gleiche Module mit Kern PROM DS2364D45 BM600, Erweiterung PROM DS2364D45 BM608;\\ meldet sich mit MEMORY END, hat den Befehl RENUM und und enthält zusätzliche Grafikbefehle. 
   * **KC87.2x/3x (BASIC86):** Kern PROM DS2364D45 BM600, Erweiterung PROM DS2364D45 BM608;\\ enthält das Plotter-BASIC im System.   * **KC87.2x/3x (BASIC86):** Kern PROM DS2364D45 BM600, Erweiterung PROM DS2364D45 BM608;\\ enthält das Plotter-BASIC im System.
   * außerdem ist noch ein leicht anderes Plotter-Modul-Basic aufgetaucht ("MEMORY END", BASIC-86, und einige wenige Unterschiede zum EPROM M122)   * außerdem ist noch ein leicht anderes Plotter-Modul-Basic aufgetaucht ("MEMORY END", BASIC-86, und einige wenige Unterschiede zum EPROM M122)
  
-Die praktischen Unterschiede zwischen RAM-BASIC und dem BASIC-Modul sind marginal (also zwischen BASIC84 und BASIC85), die Unterschiede zum neuen BASIC-Modul (Plotter,  KC87.2x) (BASIC86) betreffen einen erweiterten Sprachumfang (es gibt zusätzliche Grafikbefehle zur Ansteuerung des Plotters bzw. der Vollgrafik; hier wird aber noch ein zusätzlicher Treiber benötigt, s. [[z9001:plotter|]]), der Befehl RENUM statt RENUMBER und außerdem einen geänderten Kassettentreiber.+Die praktischen Unterschiede zwischen RAM-BASIC und dem BASIC-Modul sind marginal (also zwischen BASIC84 und BASIC85), die Unterschiede zum neuen BASIC-Modul (Plotter,  KC87.2x) (BASIC86) betreffen einen erweiterten Sprachumfang (es gibt zusätzliche Grafikbefehle zur Ansteuerung des Plotters bzw. der Vollgrafik; hier wird aber noch ein zusätzlicher Treiber benötigt, s. [[z9001:plotter|]]), der Befehl RENUM statt RENUMBER und außerdem einen geänderten Kassettentreiber.
  
 Hinweis: Leider wird beim BASIC86 beim Speichern auf Kassette ein unnötiger und mit zufälligen Zeichen belegter Startblock mit Blocknummer 0 geschrieben. Dieser Block bringt manches Kopierprogramm aus dem Tritt, außerdem verbraucht er zusätzlichen Platz auf der Kassette und das Schreiben und Einlesen dauert auch einen Block länger. Hinweis: Leider wird beim BASIC86 beim Speichern auf Kassette ein unnötiger und mit zufälligen Zeichen belegter Startblock mit Blocknummer 0 geschrieben. Dieser Block bringt manches Kopierprogramm aus dem Tritt, außerdem verbraucht er zusätzlichen Platz auf der Kassette und das Schreiben und Einlesen dauert auch einen Block länger.
Zeile 79: Zeile 79:
 </code> </code>
  
-zur Bestimmung der vorliegenden Version (RAM oder ROM). VS ist der Offset, der zu den Speicheradressen addiert wird, z.B. in Programmen mit Maschinencodeteil wie in CAVE, KNOSSOS oder MAZOGS+zur Bestimmung der vorliegenden Version (RAM oder ROM). VS ist der Offset, der zu den Speicheradressen addiert wird, z.B. in Programmen mit Maschinencodeteil wie MAZOGS
  
 <code> <code>
 20 DOKE9,AH:DOKE863+VS,DEEK(863+VS)+8192:RUN 20 DOKE9,AH:DOKE863+VS,DEEK(863+VS)+8192:RUN
 </code> </code>
- + 
  
 ===== Die Erweiterung von Lutz Elßner ===== ===== Die Erweiterung von Lutz Elßner =====
Zeile 96: Zeile 96:
 Die Anweisungen PRINT#, LIST#, LOAD#, INPUT# sind mit den Gerätenummern 0 ,2 ,3 und CLOAD, CLOAD*, CSAVE, CSAVE* mit beliebigen zugewiesenen Peripheriegeräten funktionstüchtig, wobei die "BASIC-üblichen" und die "Betriebssystem- üblichen" Aufzeichnungsverfahren anwendbar sind. Eine durchgehende Behandlung von OPEN und CLOSE ist dabei gewährleistet. Bei der Anwendung von Treiberprogrammen für serielle Schnittstellen (V24, IFSS) oder parallele Schnittstellen (CENTRONICS) mit verschiedenen Protokollen ist Datenaustausch mit gleichen und anderen Rechnern möglich. Die Anweisungen PRINT#, LIST#, LOAD#, INPUT# sind mit den Gerätenummern 0 ,2 ,3 und CLOAD, CLOAD*, CSAVE, CSAVE* mit beliebigen zugewiesenen Peripheriegeräten funktionstüchtig, wobei die "BASIC-üblichen" und die "Betriebssystem- üblichen" Aufzeichnungsverfahren anwendbar sind. Eine durchgehende Behandlung von OPEN und CLOSE ist dabei gewährleistet. Bei der Anwendung von Treiberprogrammen für serielle Schnittstellen (V24, IFSS) oder parallele Schnittstellen (CENTRONICS) mit verschiedenen Protokollen ist Datenaustausch mit gleichen und anderen Rechnern möglich.
  
-Mir sind bislang 2 verschiedene Revisionen dieser Erweiterung bekannt: Aus dem [[z9001:module:192k_modul|]] und von einer Kassette. Beide verzichten auf den RENUMBER-Befehl, enthalten dafür Blockungsalgorithmen für die Kassettenarbeit.+Mir sind bislang 2 verschiedene Revisionen dieser Erweiterung bekannt: Aus dem [[.:module_sonstige:192k_modul|]] und von einer Kassette. Beide verzichten auf den RENUMBER-Befehl, enthalten dafür Blockungsalgorithmen für die Kassettenarbeit.
  
 ===== CP/M-BASIC ===== ===== CP/M-BASIC =====
  
-Für CP/M gab es von Rossendorf bzw. Robotron angepasste BASIC-Varianten. (ZBASIC, ZBASICT oder auch  BAS, BAST):+Für CP/M gab es von Rossendorf bzw. Robotron angepasste BASIC-Varianten. (ZBASIC, ZBASICT oder auch  BAS, BAST):
  
 Das KC-BASIC für den Betrieb unter CP/M modifiziert (aufrufbar als ZBASIC oder BAS). Ausgangspunkt für die Modifikation war das sog. RAM-BASIC. Volle Kompatibilität ist gegeben, sofern diese zum RAM-BASIC gegeben war (d.h. Basic-Programme mit Maschinencode-Anteil laufen i.A. nicht!). Bei der Arbeit mit Disketten ist auf Großschreibung der Dateinamen zu achten, andernfalls kann es insbesondere für den ungeübten Nutzer zu Problemen kommen. Die Dateinamen können max. 8 Zeichen lang sein (Buchstaben,Zahlen). Als Typ wird standardmäßig "ZBS" verwendet (kann vom Nutzer nicht beeinflusst werden). Z.B. erscheint das Programm PASCH im Diskettenverzeichnis als PASCH.ZBS. Das KC-BASIC für den Betrieb unter CP/M modifiziert (aufrufbar als ZBASIC oder BAS). Ausgangspunkt für die Modifikation war das sog. RAM-BASIC. Volle Kompatibilität ist gegeben, sofern diese zum RAM-BASIC gegeben war (d.h. Basic-Programme mit Maschinencode-Anteil laufen i.A. nicht!). Bei der Arbeit mit Disketten ist auf Großschreibung der Dateinamen zu achten, andernfalls kann es insbesondere für den ungeübten Nutzer zu Problemen kommen. Die Dateinamen können max. 8 Zeichen lang sein (Buchstaben,Zahlen). Als Typ wird standardmäßig "ZBS" verwendet (kann vom Nutzer nicht beeinflusst werden). Z.B. erscheint das Programm PASCH im Diskettenverzeichnis als PASCH.ZBS.
Zeile 184: Zeile 184:
 </code> </code>
  
- + 
 ===== Übersicht Basic-Module (Dank an T. Paul) (Bilder s.o.): ===== ===== Übersicht Basic-Module (Dank an T. Paul) (Bilder s.o.): =====
  
Zeile 272: Zeile 272:
  
 ===== Internas ===== ===== Internas =====
 +
 +7.8.2012: Das Zahlenformat des BASIC entspricht dem SKR-Standardformat.
 +s. Lampe/ Jorke/ Wengel: Algorithmen der Mikrorechentechnik, VEB Verlag Technik, Berlin, 1983, S. 82ff.
 +
  
 <code> <code>
Zeile 539: Zeile 543:
 </code> </code>
  
-\\  +\\  
  
 ---- ----
  
 12.5.03 Dank an Lutz Elßner für das "Ur-Basic" 1984 (M497-M501) 12.5.03 Dank an Lutz Elßner für das "Ur-Basic" 1984 (M497-M501)
 +
  • z9001/basic.1325430147.txt.gz
  • Zuletzt geändert: 2012/01/01 15:02
  • von volkerp