HC-BASIC (manchmal auch KC-BASIC genannt) ist ein BASIC-Interpreter aus der DDR. Er stellte in der DDR einen Quasi-Standard dar.

Geschichte & Entwicklung mini|Kassette für den Z9001 mit HC-BASIC mini|HC-BASIC auf dem KC 85/1 HC-Basic wurde für die 1984 auf den Markt gebrachten Kleincomputer Z 9001 und HC 900 bzw. KC 85/2 entwickelt. Bei der ersten Gerätegeneration war der Interpreter nicht integriert, sondern musste von Kassette oder Modul geladen werden. Die Nachfolger (ab KC 87 und KC 85/3) hatten diesen fest eingebaut. Das Programm war 10,5 kB groß.

Wenig später erschien es für den Z 1013 vom VEB Robotron-Elektronik Riesa in einer leicht angepassten Version.

Beschaffung des Programmcodes Mit Aufnahme der Entwicklungen für einen Kleincomputer bei Robotron (Z 9001) sollte ein passender BASIC-Interpreter gefunden werden. Dazu zog man zwei Entwicklungen heran: VEB Transformatoren- und Röntgenwerk „TuR“ Dresden; 13 KB groß, beherrschte MAT-Befehle für Matrix-Operationen sowie Subroutinen, komplette Eigenentwicklung aber orientierte sich grob an HP BASIC Forschungszentrum für Tierproduktion Dummerstorf-Rostock; 8 KB groß, Mischung aus Microsoft BASIC und Sinclair BASIC sowie Bestandteile von Programmcode des Tischrechners HP 9845B enthalten

Schließlich entschied man sich für letztgenannte Version, da diese weniger Speicher benötigte und auf das weltweit etablierte Microsoft BASIC setzte. Es wurden nur noch kleinere Anpassungen vorgenommen. Ende 1983 / Anfang 1984 wurde das Endprodukt dem VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen (im Kombinat Mikroelektronik Erfurt) übergeben, um eine frühzeitige Kompatibilität zu gewährleisten. Die Entwicklung aus Dummerstorf stammt wiederum aus einer Zeitschrift westlicher Herkunft, dessen 6-seitiges Hexdump in zwei Tagen abgetippt, getestet, angepasst und gespeichert wurde.Anlage 3 zum Dokument "Erzeugnislinie Heimcomputer, Kleincomputer und Bildungscomputer des VEB Kombinat Robotron Dresden" - Über die Entstehung der Prototypen der Robotron-Heimcomputer. (PDF; 197 kB) Klaus-Dieter Weise, S. 12f. (PDF)

Start BASIC musste immer vom Betriebssystem aus gestartet werden; Kaltstart: BASIC eingeben + Warmstart: REBASIC eingeben +

Unterschiede zu anderen BASIC-Dialekten

Der Dialekt beherrschte über 100 Befehle und war somit umfangreich und komfortabel zu programmieren. Eine Programmzeile durfte nicht länger als 60 Zeichen sein.

Vorteile über 100 Befehle zur Verfügung direkte Grafikbefehle wie Circle, Line usw. im Vergleich zu anderen Dialekten wie Commodore Basic V2 möglich gute Kompatibilität der unterschiedlichen Versionen untereinander

Nachteile Fehlende Integerzahlen und dadurch v. a. langsamer Grafikaufbau mit PSET, VPOKE, VPEEK (nur KC85) sowie träge bei der Indizierung von Arrays sowie simplen Operationen wie A=A+1 Lästige Integer-Beschränkung bei POKE/DOKE/PEEK/DEEK/AND/OR/NOT: Adressangabe bzw. Werte nur im Bereich −32768..32767 erlaubt RENUMBER gefährlich: Stürzt manchmal ab und kann nicht-monotone Nummerierungen generieren. Ein solches Programm ist nicht mehr editierbar und nur über LIST, Texteditor, LOAD rettbar. Lange Programme (> 16 KByte) langwierig zu editieren: Die Eingabe einer Zeile mit niedriger Zeilennummer verursacht das Verschieben des übrigen Programms im Speicher Fehlende „Sprungvorhersage“ und dadurch langsame GOTO und GOSUB bei langen Programmen; fehlende Tokenisierung der Sprungziele und von numerischen Konstanten Fehlende „double“-Gleitkommazahlen verhindern Nutzbarkeit für geodätische und astronomische Anwendung sowie numerische Simulation

Datensicherung Das Speichern und Laden von tokenisierten Programmen ist via Kassette, Diskette und (USB-)Modul möglich, Kommando CSAVE und CLOAD. Die Formatendung lautet .sss. Dabei handelt es sich um einen Speicherabzug. Ein solches Programm ist nur mit einem Ent-Tokenisierer extern bearbeitbar.

Zudem ist das Speichern und Laden von Text möglich, mit LIST#1 und LOAD#1. Da das Einlesen langsam geht werden beim Speichern auf Kassette extra lange Vortöne (Synchronmuster) zwischen den 128-Byte-Datenblöcken generiert. Ein solcherart gespeichertes Programm kann extern bearbeitet werden.

Codebeispiel 10 COLOR0,7:CLS 20 PRINT 30 PRINT"Darstellung der Funktion Z=X*X-Y*Y" 40 W=PI/8 50 A=0:B=0:D=0 60 F1=20:F2=5:F3=8 70 V1=160:V2=100 80 CO=COS(W):SI=SIN(W) 90 SY=-.5:SX=-.03 100 FOR ZA=1 TO 2 110 FOR YR=3 TO -4 STEPSY 120 FOR XR=3 TO -3 STEPSX 130 ZR=YR*YR-XR*XR 140 X=INT(F1*(A+XR)+F3*(YR+C)*CO+V1) 150 Y=INT(F2*(B+ZR)+F3*(YR+C)*SI+V2) 160 PSET X,Y,0 170 NEXT XR,YR 180 IF ZA=1 THEN SY=-.04:SX=-.5 190 NEXT ZA

Preise War HC-BASIC separat zu erwerben, lauteten die Preise (in Mark) wie folgt:

System Kassette ROM-Modul HC 900 bzw. KC 85/2 99,00 M n. b. Z 9001 bzw. KC 85/1 87,00 M 785,00 M Z 1013 im Lieferumfang enthalten –

Verbreitung & Bedeutung Die Stückzahl der verkauften BASIC-Interpreter (ROM-implementiert und separat gekauft) korreliert in etwa mit der Stückzahl der verkauften Kleincomputer aller Varianten.

System: Verkaufte Einheiten: HC 900 ff. mind. 50.000 (nur 85/4) Z 9001 ff. ~ 30.000* Z 1013 ~ 25.000* Gesamt: mind. 105.000

Konkurrenz war eigentlich politisch sowie ideologisch nicht gewollt.Peter Salomon: Die Geschichte der Mikroelektronik-Halbleiterindustrie in der DDR. Funkverlag Bernhard Hein e.K., 2003, ISBN 3-936124-31-0, S. 89–90. Andere Interpreter wie Tiny-Basic (sog. „Mini-Basic“ für Z 1013 und JU+TE-Computer) erlangten keine größere Bedeutung, da keine Kompatibilität gewährleistet war.

„Professionelle“ BASIC-Interpreter wie für DCP spielten aufgrund der Preise (1980,00 M) und der anderen Zielgruppe für den Privatanwender keine Rolle. Auch in den Schulen, in der Ausbildung / Weiterbildung usw. wurde Programmieren nahezu nur mit HC-BASIC gelehrt.

Ein Export der Technik oder des Interpreters war von Anfang an ausgeschlossen, weder in die Staaten des RGW noch in den Raum des NSW.

Weblinks

Einzelnachweise

Kategorie:BASIC Kategorie:Historische Software Kategorie:Kombinat Mikroelektronik Kategorie:Kombinat Robotron Kategorie:Wirtschaft (DDR)