www.wikidata.de-de.nina.az
BASICODE war ein in den 1980er und 1990er Jahren aktives Computerprojekt mit dem Ziel einen einheitlichen Sprachstandard fur die Programmiersprache BASIC festzulegen BASIC war zwar auf vielen in dieser Zeit popularen Heimcomputern verbreitet jedoch in unzahligen zueinander inkompatiblen Varianten Das Projekt wurde 1980 von der niederlandischen Rundfunkvereinigung Nederlandse Omroep Stichting NOS in der Rundfunkserie Hobbyscoop ins Leben gerufen und spater auch vom WDR Computerclub vom Rundfunk der DDR und von der British Broadcasting Corporation kurz BBC unterstutzt BASICODE 2 auf einer KompaktkassetteBASICODE SchallplatteGrundlage des Systems waren rechnerspezifische Zusatzprogramme welche die Aufrufe der durch den BASICODE Sprachstandard definierten Subroutinen fur die Ein und Ausgabe von Text Grafik und Sound entsprechend den technischen Moglichkeiten des jeweiligen Rechners ausfuhrten Diese als Bascoder bezeichneten Programme ermoglichten daruber hinaus durch Definition eines einheitlichen Datenformats fur die damals als Datentrager ublichen Compact Cassetten den Programm und Datenaustausch zwischen verschiedenen Heimcomputerplattformen sowie uber die Ausstrahlung im Rundfunk Inhaltsverzeichnis 1 Entwicklung 1 1 Die Ausgangssituation 1 2 Der erste Standard 1 3 BASICODE 2 1 4 BASICODE 3 3C 1 5 Das Ende der Popularitat von BASICODE 2 Historische Bedeutung 3 Das BASICODE Datenformat 4 Der BASICODE Sprachstandard 4 1 BASICODE 2 4 2 BASICODE 3 3C 5 Literatur 6 Weblinks 7 AnmerkungenEntwicklung BearbeitenDie Ausgangssituation Bearbeiten nbsp Commodore 64 nbsp Atari 800 XLVom Ende der 1970er bis zum Ende der 1980er Jahre waren Heimcomputer auf der Basis von 8 Bit Prozessoren unter Privatanwendern sehr popular Zu den bekanntesten gehorten dabei der TRS 80 von Tandy der PET 2001 VC20 C64 bzw C128 sowie Plus 4 von Commodore die Modelle von Atari 400 800 XL XE die verschiedenen Ausfuhrungen des Apple II die Modelle der Schneider CPC Reihe die Computer des Herstellers Sinclair Research ZX80 ZX81 ZX Spectrum und in der DDR die Rechner der Baureihen Z1013 Z9001 KC85 1 und KC87 sowie KC85 2 bis KC85 4 von Robotron Gemeinsam war diesen Rechnern dass sie mit einem 8 Bit Prozessor der Typen MOS Technologies 6502 Intel 8080 oder Zilog Z80 zwischen 16 und 64 KByte RAM Speicher einer Anschlussmoglichkeit fur Kassettenrekorder oder einem eingebauten Kassettenlaufwerk zur Datenspeicherung auf Compact Cassette der TRS 80 hatte bereits Slots fur 5 1 4 Zoll Disketten sowie einem oft im ROM Speicher fest eingebautem Interpreter fur die damals weit verbreitete Programmiersprache BASIC ausgestattet waren Die leichte Erlernbarkeit der fur Einsteiger konzipierten Sprache BASIC sowie ihre unmittelbare Verfugbarkeit auf all diesen Rechnern fuhrte dazu dass viele Besitzer von Heimcomputern selbst programmierten und ihre Programme untereinander austauschten Problematisch fur den Austausch von Programmen und Daten zwischen Computern verschiedener Hersteller war jedoch zum einen dass die verwendeten BASIC Varianten untereinander in vielen Bereichen vollig inkompatibel waren Sie verwendeten also fur die gleiche Aktion wie zum Beispiel das Loschen des Bildschirms das Zeichnen eines Punktes auf den Bildschirm oder die Ausgabe eines Tones verschiedene BASIC Befehle so dass beispielsweise ein auf einem C64 geschriebenes BASIC Programm ohne manuelle Anpassung in der Regel nicht auf einem Atari XL funktionierte und umgekehrt Zum zweiten unterschieden sich die Computer in ihrer technischen Ausstattung also zum Beispiel der Bildschirmauflosung der Anzahl der moglichen Farben oder den fur die Soundausgabe verfugbaren Moglichkeiten Drittens waren die auf den verschiedenen Rechnern verwendeten Datenformate zum Abspeichern von Daten und Programmen auf Compact Cassette ebenfalls inkompatibel zueinander Der erste Standard Bearbeiten nbsp Schneider CPC664 nbsp Schneider CPC6128 nbsp Sinclair ZX SpectrumUm 1980 begann die niederlandische Rundfunkvereinigung NOS mit der Ausstrahlung von Computerprogrammen im Radio Da Programme und Daten auf den Compact Cassetten als Tone gespeichert wurden war es moglich solche Radiosendungen auf einem Kassettenrekorder aufzuzeichnen und die gesendeten Programme dann anschliessend mit dem Computer einzulesen Aus den eingangs dargestellten Problemen ergab sich jedoch dass ein Programm fast immer fur alle popularen Computertypen speziell angepasst werden musste und dann in entsprechenden Versionen auch mehrfach im Radio gesendet wurde Die bei der Speicherung auf Compact Cassetten sehr geringe Datendichte im Vergleich zu heutigen Datentragern bedeutete dass die Ausstrahlung im Radio und damit auch die Aufzeichnung entsprechend lange dauerte und somit in einer Sendung nur eine sehr begrenzte Anzahl an Programmen gesendet werden konnte Die Ausstrahlung des gleichen Programms in mehreren verschiedenen Versionen war also ein grosser Nachteil Im Jahr 1982 kamen dann die Verantwortlichen bei NOS auf die Idee ein einheitliches Datenformat zu entwickeln Ein fur jeden Computertyp spezifisches Programm der sogenannte Bascoder ubernahm dabei das Einlesen dieses Formats von der Kassette beziehungsweise das Abspeichern von Programmen und Daten in diesem einheitlichen Format auf die Kassette Auch diese Programme wurden von NOS uber Rundfunk verbreitet Sie konnten daruber hinaus auf Compact Cassetten von NOS erworben werden und wurden auch zwischen Computerbenutzern im privaten Kreis weitergegeben Das hinsichtlich Storungen bei der Ubertragung sehr robuste Format konnte von allen damals verbreiteten Homecomputern am jeweiligen Datenein und ausgang gelesen und geschrieben werden Die Robustheit dieses Standards ermoglichte auch die Ausstrahlung auf Mittelwelle Frequenzen was wiederum die Reichweite und damit die Zahl der moglichen Empfanger vergrosserte Die im niederlandischen Rundfunk durch die NOS von Hilversum gesendeten Programme konnten zum Beispiel auch in weiten Teilen der Deutschen Demokratischen Republik DDR empfangen werden Im Westen Deutschlands konnten bei guten Empfang die Sendungen der BBC aus Grossbritannien genutzt werden die ebenfalls BASICODE Programme ausstrahlte Grosste Bekanntheit durfte BASICODE in der Bundesrepublik Deutschland durch den WDR Computerclub erlangt haben der an Sonntagen unter der Bezeichnung Hard Bit Rock BASICODE Programme uber das TV Tonsignal sendete Da wahrend der Ausstrahlung der Programme keine weitere Moderation in der Sendung moglich war wurden spater BASICODE Programme mittels Videodat ubertragen Dieses System nutzte die sogenannte Austastlucke im Videosignal des Fernsehbildes zur lautlosen Datenubertragung BASICODE 2 Bearbeiten nbsp Sinclair ZX81 nbsp RFT KC 85 3 nbsp Robotron KC 87 nbsp Apple II nbsp Colour Genie EG2000Der mit BASICODE geschaffene Standard loste zwar eines der eingangs dargestellten Probleme namlich das der zueinander inkompatiblen Datenformate Programme mussten jedoch weiterhin auf jedem einzelnen Rechnertyp an den jeweiligen BASIC Dialekt und die spezifischen technischen Gegebenheiten angepasst werden Eine mogliche Beschrankung auf diejenigen Elemente der Sprache BASIC die allen Dialekten gemeinsam war bedeutete unbefriedigende Einschrankungen hinsichtlich der Funktionalitat der Programme zum Beispiel den Verzicht auf Grafik und Sound und nur unkomfortable Moglichkeiten zur Dateneingabe uber die Tastatur und zur Steuerung der Datenausgabe auf dem Bildschirm Aus diesem Grund wurde 1984 der Standard BASICODE 2 geschaffen Die auf diesem Standard basierenden Bascoder enthielten nicht nur die Routinen zur Ein und Ausgabe von Programmen und Daten auf Compact Cassetten Zusatzlich zu einem Satz von ca 50 BASIC Befehlen funktionen und operatoren die in allen BASIC Dialekten identisch waren definierte der Sprachstandard von BASICODE 2 daruber hinaus erstmals auch eine Bibliothek an Subroutinen deren Aufruf auf allen Computern die gleiche Funktionalitat bereitstellte Dazu wurde festgelegt dass der Bereich der Programmzeilen unterhalb der Zeilennummer 1000 fur den Bascoder reserviert war und in BASICODE geschriebene Programme somit erst ab der Zeilennummer 1000 beginnen durften Die Subroutinen des Bascoders in den Zeilennummern unter 1000 wurden dann durch die GOSUB Anweisung aufgerufen Dabei notwendige Argumente wurden ubergeben indem vor dem Aufruf bestimmten fur den Bascoder reservierten Variablen die entsprechenden Werte zugewiesen wurden Der BASICODE Sprachstandard enthielt daruber hinaus noch einige weitere Festlegungen die sich aus den Einschrankungen einiger Rechnertypen ergaben So durfte beispielsweise im Gegensatz zu den BASIC Dialekten fast aller anderen Computer auf dem ZX81 eine Programmzeile nur einen einzigen BASIC Befehl enthalten oder eine Programmzeile im BASIC Dialekt der KC Reihe durfte nicht langer als 60 Zeichen sein Solche Einschrankungen mussten da der Bascoder zusammen mit dem BASICODE Programm vom jeweils rechnerspezifischen BASIC Interpreter abgearbeitet wurde fur alle BASICODE Programme gelten um volle Plattformunabhangigkeit zu erreichen Die Bascoder wurden also auf ihren jeweiligen Rechnern als normale Programme geladen und stellten anschliessend die zusatzlichen Routinen fur den gemeinsamen Sprachstandard und fur die Ein und Ausgabe auf Kassetten zur Verfugung Die in BASICODE geschriebenen Programme waren somit erst nach dem Laden und Starten des Bascoders nutzbar Auf einigen Rechnern konnten jedoch die BASICODE Programme zusammen mit dem Sprachteil des Bascoders im typspezifischen Datenformat gespeichert werden Dadurch war es dann zwar nicht mehr moglich diese Aufzeichnung auf anderen Rechnertypen zu verwenden Allerdings hatten die typspezifischen Datenformate fast immer eine deutlich hohere Datendichte so dass das gleiche Programm deutlich schneller als im BASICODE Format geladen werden konnte Daruber hinaus stand ohne die Notwendigkeit vor der Ausfuhrung des BASICODE Programms den kompletten Bascoder laden zu mussen deutlich mehr Arbeitsspeicher zur Programmlaufzeit zur Verfugung Bascoder fur den BASICODE 2 Standard existierten unter anderem fur die Computertypen Exidy Sorcerer DAI Colour Genie Commodore PET VIC 20 C64 Amiga Sinclair ZX81 Sinclair ZX Spectrum Sinclair QL Philips P2000T Acorn Atom BBC Electron Tandy TRS 80 MSX Oric Atmos Grundy NewBrain Amstrad CPC 464 IBM PC Apple II Texas Instruments TI 99 4A Mattel Aquarius und andere Erfahrene Computerbesitzer waren daruber hinaus auch in der Lage einen eigenen Bascoder fur ihr spezielles System zu entwickeln da der Sprachstandard und das Datenformat offengelegt und gut dokumentiert waren Der durch BASICODE 2 definierte Sprachstandard ermoglichte bereits die Entwicklung von systemunabhangigen Programmen mit fur die damalige Zeit relativ fortgeschrittenen Moglichkeiten BASICODE wurde daruber hinaus auch genutzt um in Form sogenannter Journale Informationen wie zum Beispiel Neuigkeiten aus der Computerszene im Radio zu senden und zwischen Computernutzern weiterzugeben Auch ein umfangreicher Kurs zur Programmierung in BASICODE und andere Dokumentationen wurden auf diesem Weg verbreitet BASICODE 3 3C Bearbeiten 1986 wurde der neue Standard BASICODE 3 entwickelt Dieser enthielt als wesentliche Neuerungen Routinen fur einfache monochrome Grafikausgabe das Lesen und Speichern von Daten aus Programmen heraus sowie fur die Ausgabe von Sound Mit BASICODE 3 wurde BASICODE insbesondere auch in der Computerszene der DDR bekannt und BASICODE Programme wurden ab 1989 auch im Rundfunk der DDR gesendet Auch der niederlandische Sender TROS Televisie en Radio Omroep Stichting sendete BASICODE 3 Programme In der DDR erschien daruber hinaus ein Buch dem eine kleine Schallplatte 1 mit den Bascodern fur alle in der DDR verbreiteten Computertypen beilag Die letzte uberarbeitete BASICODE Version die insbesondere die Bildschirmausgabe in Farbe als Neuerung enthielt wurde 1991 als BASICODE 3C veroffentlicht Das Ende der Popularitat von BASICODE Bearbeiten Mit dem Beginn der 1990er Jahre nahm die Popularitat von BASICODE aufgrund der immer weiteren Verbreitung von 16 und 32 Bit Computern und insbesondere neuer Varianten des IBM PCs sowie dazu kompatibler Gerate sehr schnell ab Auch wenn fur diese Computer meistens noch Bascoder entwickelt wurden war BASICODE zu limitiert um die technischen Moglichkeiten dieser Rechnergeneration angemessen auszunutzen Daruber hinaus entfiel durch die weitestgehende Konzentration auf wenige Rechnerarchitekturen im 16 und 32 Bit Bereich der Hauptgrund fur die Entstehung und Nutzung von BASICODE Viele Menschen waren aufgrund der zunehmenden Komplexitat der Hard und Software der neuen Systeme nicht mehr daran interessiert oder in der Lage selbst zu programmieren Auch die zunehmende Popularitat von grafischen Benutzeroberflachen trug zum raschen Ruckgang der Verbreitung von 8 Bit Computern und damit auch von BASICODE bei Der aus dem DDR Rundfunk hervorgegangene Deutschlandsender Kultur der spater mit anderen Sendern zum Deutschlandradio fusionierte strahlte noch bis etwa 1992 BASICODE Programme aus Ein noch geplanter Standard BASICODE 4 wurde nie offiziell realisiert da die NOS kurz nach der Veroffentlichung von BASICODE 3C ihre Unterstutzung des Projektes aufgab BASICODE wird heute noch von einigen Enthusiasten insbesondere 8 Bit Computer Fans vorwiegend aus nostalgischem Interesse weiterhin verwendet besitzt jedoch keine praktische Relevanz mehr Historische Bedeutung BearbeitenBASICODE war im Heimanwenderbereich einer der fruhen Versuche auf verschiedenen zueinander inkompatiblen Rechnerarchitekturen einen gemeinsamen Standard zum Austausch von Programmen und Daten zu schaffen Es entstand etwa zur gleichen Zeit wie das von Microsoft entwickelte MSX System dessen Standardisierung neben einem einheitlichen BASIC Sprachstandard auch eine definierte Hardware Spezifikation umfasste Entsprechende Computer wurden von verschiedenen Unternehmen verkauft und standen dabei in Konkurrenz zu anderen popularen Heimcomputern In grosserem Mass erfolgreich war MSX nahezu ausschliesslich in den Heimatmarkten der Hersteller wie beispielsweise in Japan und Sudkorea in den Niederlanden und in Brasilien Im Gegensatz zu MSX definierte BASICODE keine Hardware Spezifikation sondern einen Sprachstandard fur die auf Heimcomputern nahezu universell verfugbare Programmiersprache BASIC sowie ein Datenformat fur Compact Cassetten das auf allen mit BASICODE ausgestatteten Computern gelesen und geschrieben werden konnte Die Umsetzung von BASICODE erfolgte damit ausschliesslich durch Zusatzsoftware und war deshalb nicht auf Rechner bestimmter Hardwarehersteller beschrankt Die Verbreitung von BASICODE lasst sich schwer einschatzen da sowohl die Bascoder als auch die in BASICODE entwickelten Programme frei verfugbar waren und weitergegeben wurden Bascoder waren jedoch fur nahezu jeden jemals verkauften Heimcomputer dieser Computer Ara erhaltlich Kommerziell war BASICODE aufgrund seiner freien Verbreitung nicht von Relevanz Konzeptbedingt war es mit BASICODE allerdings nicht moglich die jeweils spezifischen technischen Moglichkeiten eines bestimmten Rechnertyps voll auszunutzen Der durch BASICODE definierte Sprachstandard beschrankte sich nahezu vollstandig auf den kleinsten gemeinsamen Nenner aller relevanten Computersysteme Dieses Konzept wurde erst mit BASICODE 3 3C teilweise aufgegeben da einige Rechnertypen beziehungsweise Varianten wie beispielsweise die ZX80 ZX81 Rechner und der KC87 keine echte Grafikausgabe und keine Farbausgabe ermoglichten und somit die entsprechenden neu eingefuhrten Funktionen von BASICODE 3 3C auf diesen Rechnern nicht mehr nutzbar waren Insbesondere bei zeitkritischen Anwendungen und im Bereich der Grafik und Soundausgabe also zum Beispiel bei der Entwicklung von Computerspielen war BASICODE einer Programmierung im jeweils systemspezifischen BASIC Dialekt oder direkt im Maschinencode klar unterlegen Die Starken von BASICODE lagen somit eher in den Bereichen Anwendungsentwicklung Software fur den Bildungsbereich und Datenaustausch Das BASICODE Datenformat wurde daruber hinaus auch zur Weitergabe von Programmen in der Programmiersprache Pascal genutzt die hinsichtlich ihrer Sprachdefinition deutlich besser standardisiert war als BASIC Pascal Compiler waren allerdings nur auf einigen Heimcomputer Typen verfugbar Das grundlegende Konzept von BASICODE namlich die Definition eines Sprachstandards zur plattformunabhangigen Softwareentwicklung und die Realisierung dieses Standards durch systemspezifische Programme Bascoder ist spater bei der Programmiersprache Java ebenfalls realisiert worden und zwar in Form der betriebssystemspezifischen Java Virtual Machines zur Ausfuhrung der Java Programme Die Weitergabe von Daten und Informationen im BASICODE Datenformat als Journale erinnert daruber hinaus an heute genutzte plattformunabhangige Dokumentformate wie zum Beispiel das Portable Document Format PDF und die dafur notwendigen systemspezifischen PDF Reader Programme Das BASICODE Datenformat BearbeitenIm BASICODE Format erfolgt die Aufzeichnung von Programmen analog zur Aufzeichnung von Daten Bei der Aufzeichnung von Programmen werden also die einzelnen BASIC Befehle nicht wie meistens ublich in Form von 1 Byte Einheiten Token sondern Zeichen fur Zeichen abgespeichert und eingelesen Jedes Byte wird in der Form 1 Startbit 8 Datenbits 2 Stoppbits ubertragen Die sich daraus ergebende Redundanz dient vor allem der Sicherheit bei der Ubertragung Bit 7 wird immer negiert ubertragen was insbesondere bei der Ubertragung von ASCII Zeichen von Nutzen ist Diese enthalten an Bit 7 stets ein 0 Bit so dass sich bei ASCII Zeichen durch die negierte Ubertragung drei Stoppbits ergeben Der Beginn einer Ubertragung wird durch das Zeichen 02 STX Start of Text markiert das Ende durch das Zeichen 03 ETX End of Text Nach ETX wird noch ein Checkbyte gesendet das aus den vorherigen Bytes einschliesslich STX und ETX durch bitweise Binaraddition XOR berechnet wird Das Zeichen 0DH bzw 13D kennzeichnet bei der Ubertragung das Ende einer Zeile Von Programmen erzeugte Datenfiles konnen alle Zeichen als Daten verwenden so dass sie keine Steuerzeichen enthalten Sie werden vielmehr in 1 024 Byte Blocken gelesen und geschrieben Als Tonsignale werden Rechteckschwingungen in Form einer 1200 Hz Schwingung fur ein 0 Bit und zwei 2 400 Hz Schwingungen fur ein 1 Bit mit einer Lange von jeweils 1 1200 Sekunden fur jedes Bitsignal verwendet Eine Pause von mehr als 1 1800 Sekunden zwischen zwei Flanken markiert den Beginn der Ubertragung eines Bytes die darauf folgende Schwingung stellt also ein Startbit dar Nach dem Startbit und vor der Ubertragung der acht Datenbits folgt erneut eine Pause von mindestens 1 1800 Sekunden Ein 2400 Hz Signal von funf Sekunden Dauer markiert den Beginn einer Ubertragung und dient zur Synchronisation des Leseprogramms Am Ende einer Ubertragung wird ein 2400 Hz Signal von einer Sekunde Dauer gesendet Die theoretische Datenrate dieses Formats betragt 1200 Bits pro Sekunde bit s Aufgrund der Ubertragung von drei zusatzlichen Bits pro Datenbyte sowie der Pausen vor und nach einem Startbit ergibt sich daraus eine reale Datenrate von etwa 102 Bytes pro Sekunde also etwa sechs KBytes pro Minute Der BASICODE Sprachstandard BearbeitenBASICODE 2 Bearbeiten In BASICODE 2 erlaubte BASIC Befehle funktionen und operatorenDie im Folgenden genannten Elemente der Programmiersprache BASIC sind in den BASIC Dialekten aller unterstutzten Computertypen mit identischer Funktionalitat verfugbar Sie sind somit auch Teil des BASICODE Sprachstandards Befehle DATA DIM END FOR GOSUB GOTO IF INPUT NEXT ON PRINT READ REM RESTORE RETURN RUN STEP STOP THEN TAB TO Funktionen ABS ASC ATN COS EXP INT LEN LOG SGN SIN SQR TAN VAL CHR LEFT MID RIGHT AND OR NOT Rechenoperatoren Potenzieren Multiplikation Division Addition und Verkettung von Stringvariablen Subtraktion Vergleichsoperatoren lt gt lt gt lt gt In BASICODE 2 durch den Bascoder bereitgestellte RoutinenDie folgenden im Bascoder enthaltenen Routinen sind in den einzelnen BASIC Dialekten durch verschiedene in ihrer Syntax zueinander inkompatible Befehle oder Funktionen realisiert Durch die GOSUB Aufrufe wird also gewahrleistet dass diese Moglichkeiten als Teil des BASICODE Sprachstandards einheitlich auf allen entsprechenden Rechnern verfugbar sind GOSUB 100 Loschen des Bildschirms GOSUB 110 Setzen des Cursors an eine bestimmte Position Ubergabe der Position in den Variablen HO und VE GOSUB 120 Ermittlung der Position des Cursors Ruckgabe der Position in den Variablen HO und VE GOSUB 200 Auslesen eines Tastendrucks Ruckgabe des Zeichens in der Variablen IN Ruckgabe einer leeren Variablen IN wenn keine Taste gedruckt wurde GOSUB 210 Warten auf einen Tastendruck Ruckgabe des Zeichens in der Variablen IN GOSUB 250 Ausgabe eines einfachen kurzen Tons Beep GOSUB 260 Ermittlung einer Zufallszahl zwischen 0 und 1 Ruckgabe der Zahl in der Variablen RV GOSUB 270 Ermittlung der Grosse des freien Speichers Ruckgabe des Wertes in der Variablen FR GOSUB 300 Umwandlung eines numerischen Wertes in einen String Ubergabe des numerischen Wertes in der Variablen SR Ruckgabe des Strings in der Variablen SR GOSUB 310 Analog zu GOSUB 300 zusatzliche Angaben Ubergabe einer festen Stringlange in der Variablen CT Ubergabe der Position des Dezimalpunkts in der Variablen CN GOSUB 350 Ausgabe eines Strings auf dem Drucker Ubergabe des Strings in der Variablen SR GOSUB 360 Ausgabe eines Zeilenumbruchs auf dem Drucker Weitere allgemeine FestlegungenEine Zeile eines BASICODE Programms darf einschliesslich Zeilennummer und Leerzeichen maximal 60 Zeichen lang sein und sollte nur eine Anweisung enthalten Das Argument fur die Winkelfunktionen ist im Bogenmass anzugeben Die logischen Operatoren AND und OR durfen in BASICODE nicht zur bitweisen Verknupfung von Zahlen verwendet werden Bei der Verwendung von Stringfunktionen sollte auf eventuelle Unterschiede im Zeichensatz zwischen verschiedenen Computertypen geachtet werden Variablennamen durfen maximal zwei Zeichen ein oder zwei Grossbuchstaben oder ein Grossbuchstabe und eine Ziffer lang sein Jeder Variable muss vor ihrer erstmaligen Verwendung in Befehlen oder Funktionen ein Wert zugewiesen werden da eine implizite Initialisierung nicht auf allen Rechnertypen funktioniert Numerische Variablen sind von einfacher Genauigkeit sechs gultige Ziffern Stringvariablen konnen maximal 255 Zeichen lang sein Jedes BASICODE Programm beginnt in Zeile 1000 Ab der Zeilennummer 30000 stehen Kommentare zum Programm ab Zeile 32000 formale Fakten wie Name des Autors oder Versionsinformationen BASICODE 3 3C Bearbeiten In BASICODE 3 3C erlaubte BASIC Befehle funktionen und operatorenHinsichtlich der in BASICODE erlaubten Elemente der Sprache BASIC unterscheidet sich BASICODE 3 3C nur geringfugig von BASICODE 2 Der wichtigste Unterschied ist die Neuaufnahme von DEF FN zum Definieren von eigenen Funktionen Befehle DATA DEF FN DIM FOR GOSUB GOTO IF INPUT LET NEXT ON PRINT READ REM RESTORE RETURN STEP TAB THEN TO Unterschiede zu BASICODE 2 Neu hinzugekommen DEF FN LET Entfernt END RUN STOP Funktionen ABS ASC ATN COS EXP INT LEN LOG SGN SIN SQR TAN VAL CHR LEFT MID RIGHT AND OR NOT Rechenoperatoren Potenzieren Multiplikation Division Addition und Verkettung von Stringvariablen Subtraktion Vergleichsoperatoren lt gt lt gt lt gt In BASICODE 3 3C durch den Bascoder bereitgestellte RoutinenDer Umfang der Bascoder Subroutinen wurde mit BASICODE 3 3C deutlich ausgeweitet im Vergleich zum Vorganger Insbesondere die neu hinzugekommenen Moglichkeiten zur Tonausgabe 400 zur Arbeit mit externen Dateien 500 580 und zur Grafikdarstellung 600 650 erweiterten die Moglichkeiten von BASICODE erheblich GOTO 20 Programmstart System Reset Loschen aller Variablen GOSUB 100 Initialisieren des Textmodus Loschen des Bildschirms GOSUB 110 Setzen des Cursors an eine bestimmte Position Ubergabe der Position in den Variablen HO und VE GOSUB 120 Ermittlung der Position des Cursors Ruckgabe der Position in den Variablen HO und VE GOSUB 150 Auffalliges Anzeigen eines Strings auf dem Bildschirm links und rechts drei Leerzeichen Ubergabe des Strings in der Variablen SR GOSUB 200 Auslesen eines Tastendrucks Ruckgabe des Zeichens in der Variablen IN Ruckgabe einer leeren Variable IN wenn keine Taste gedruckt wurde GOSUB 210 Warten auf einen Tastendruck Ruckgabe des Zeichens in der Variablen IN GOSUB 220 Auslesen eines Zeichens vom Bildschirm Ubergeben der Bildschirmposition in den Variablen HO und VE Ruckgeben des Zeichens als numerischer Wert in der Variablen IN GOSUB 250 Ausgabe eines einfachen kurzen Tons Beep GOSUB 260 Ermittlung einer Zufallszahl zwischen 0 und 1 Ruckgabe der Zahl in der Variablen RV GOSUB 270 Ermittlung der Grosse des freien Speichers Ruckgabe des Wertes in der Variablen FR GOSUB 280 Aus bzw Einschalten der STOP BREAK Taste Ubergabe des gewunschten Status in der Variablen FR FR 0 bzw FR 1 GOSUB 300 Umwandlung eines numerischen Wertes in einen String Ubergabe des numerischen Wertes in der Variablen SR Ruckgabe des Strings in der Variablen SR GOSUB 310 Analog zu GOSUB 300 zusatzliche Angaben Ubergabe einer festen Stringlange in der Variablen CT Ubergabe der Position des Dezimalpunkts in der Variablen CN GOSUB 330 Umwandlung alle Kleinbuchstaben in einem String in Grossbuchstaben Ubergabe und Ruckgabe des Strings in der Variablen SR GOSUB 350 Ausgabe eines Strings auf dem Drucker Ubergabe des Strings in der Variablen SR GOSUB 360 Ausgabe eines Zeilenumbruchs auf dem Drucker GOSUB 400 Ausgabe eines Tons Ubergabe der Lautstarke Dauer und Tonhohe in den Variablen SV SD und SP GOSUB 450 Warten einer bestimmten Zeit auf einen Tastendruck Ubergabe der Dauer in der Variablen SD in 100 Millisekunden Einheiten GOSUB 500 Offnen einer Datei Ubergabe des Namens in der Variablen NF Festlegung eines Datei Identifiers in der Variablen NF GOSUB 540 Lesen eines Strings aus einer Datei Ubergabe des Identifiers in der Variablen NF Ruckgabe des Strings in der Variablen IN GOSUB 560 Schreiben eines Strings in eine Datei Ubergabe des Identifiers in der Variablen NF Ubergabe des Strings in der Variablen SR GOSUB 580 Schliessen einer Datei Ubergabe des Identifiers in der Variablen NF GOSUB 600 Initialisieren des Grafikmodus Loschen des Bildschirms GOSUB 620 Setzen eines Punktes Ubergabe der Position in den Variablen HO und VE Ubergabe der Farbe in der Variablen CN GOSUB 630 Zeichnen einer Linie ausgehend von der aktuellen Grafikposition Ubergabe des Endpunktes in den Variablen HO und VE Ubergabe der Farbe in der Variablen CN Festlegen der Grafikposition gegebenenfalls vorher durch das Setzen eines Punktes GOSUB 650 Ausgabe eines Strings im Grafikmodus Ubergabe der Position in den Variablen HO und VE Ubergabe des Strings in der Variablen SR GOTO 950 Beenden des BASICODE Programms Unterschiede zu BASICODE 2 Neu hinzugekommen 20 150 220 280 330 400 450 500 580 600 650 950 Abweichend 100 Die Ubergabe und Ruckgabe von Positionsangaben im Textmodus erfolgt in absoluten Werten Im Grafikmodus werden die Variablen HO und VE hingegen mit relativen Werten belegt Das bedeutet dass fur das Setzen eines Punktes in der Mitte des Bildschirms die Koordinaten HO 0 5 und VE 0 5 ubergeben werden mussen fur die linke obere Ecke HO 0 und VE 0 und fur die rechte untere Ecke HO 1 und VE 1 Damit soll unabhangig von der konkret verfugbaren Bildschirmauflosung eine vergleichbare Ausgabe erreicht werden Weitere allgemeine Festlegungen zusatzlich zum BASICODE 2 Standard Die Namen von selbst definierten Funktionen durfen ebenso wie Variablennamen maximal zwei Zeichen lang sein Die Definition von eigenen Stringfunktionen ist in BASICODE nicht moglich Das Programm endet mit GOTO 950 da die Befehle RUN END und STOP verboten sind Folgende Variablennamen stehen in BASICODE nicht zur Verwendung im Programm zur Verfugung alle Variablen die mit dem Buchstaben O beginnen AS AT DI DI DS DS EI EI EL ER FN GO GR IF LN SQ SQ ST TI TI TO PI Folgende Variablen werden vom Bascoder genutzt zum Beispiel bei der Ubergabe von Argumenten an die Bascoder Subroutinen beziehungsweise der Ruckgabe von Werten A CN CT FR HG HO IN IN NF NF RV SD SP SR SR SV VE VGLiteratur BearbeitenMichael Wiegand Manfred Fillinger BASICODE Mit Programmkassette Ravensburger Buchverlag Ravensburg 1986 ISBN 3 473 44010 8 Hermine Bakker Jacques Haubrich Autoren Stichting BASICODE Hrsg Het BASICODE 3 boek 3 Auflage Kluwer Technische Boeken B V Deventer Antwerpen 1988 ISBN 90 201 2111 1 Horst Volz Basicode mit Programmen auf Schallplatte fur Heimcomputer Verlag Technik Berlin 1990 ISBN 3 341 00895 0 Weblinks BearbeitenBasiCode Software fur alle Informationen zur Geschichte und zur Programmierung BASICODE an example of Dutch computer folklore historische Informationen englisch Victor Reijs Overview of BASICODE 3 10 September 2005 archiviert vom Original am 5 Dezember 2017 abgerufen am 25 Mai 2022 englisch A collection of BASICODE programs by various authors Verschiedene BASICODE Programme englisch Anmerkungen Bearbeiten Bilder der Schallplatte ganz unten nbsp Dieser Artikel wurde am 21 Juni 2005 in dieser Version in die Liste der exzellenten Artikel aufgenommen Abgerufen von https de wikipedia org w index php title BASICODE amp oldid 223143513