Basicode

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Cassettes van een NOS-cursus Basicode

Basicode was een project met als doel een universele programmeertaal voor hobbycomputers te maken. De taal was afgeleid van de programmeertaal BASIC.

Oorsprong[bewerken]

In de jaren 80 had elke homecomputer zijn eigen BASIC-dialect. De programma's waren niet zonder meer onderling uitwisselbaar. Om dit probleem te verhelpen heeft men Basicode, een soort Esperanto voor homecomputers, ontwikkeld.

In 1981 werd Basicode door de Nederlandse Omroep Stichting in het radioprogramma Hobbyscoop tot leven geroepen. Het idee hiervoor kwam van zendamateur en toenmalig Philips-ingenieur Klaas Robers. Samen met enkele computer-enthousiasten ontwikkelde hij een uniforme standaard voor het overdragen van Basic-programma's via geluidscassettes, wat toen het gebruikelijke medium was om computerprogramma's op te slaan. Deze standaard werd Basicode genoemd. Later werden uitgebreidere versies uitgebracht onder de naam Basicode-2 en Basicode-3.

Voor veel homecomputers kwam een vertaalprogramma beschikbaar dat Basicode kon lezen en verwerken. De Basicode-programma's werden als geluidsbestand aan het eind van het programma uitgezonden en klonken als cirkelzaaggeluiden. Bekende woorden voor elke uitzendingen waren: "drie seconden na nu...". Niet iedere luisteraar kon dit geluid waarderen en dat leidde ertoe dat de Basicode-uitzendingen werden 'verbannen' naar middengolfzender Radio 5. De grotere storingsgevoeligheid op de AM en het gebruik van de Optimod-signaalprocessing gooiden echter vaak roet in het eten waardoor de programma's niet in te lezen waren. De Optimod werd daarom speciaal voor de Basicode-uitzendingen tijdelijk uitgezet.

Ook de TROS deed een tijd aan Basicode. Zij namen Basicode-3 onder de loep, een uitgebreidere versie dan Basicode-2.

Werking[bewerken]

Basicode maakte gebruik van standaard subroutines. Deze subroutines werden specifiek per computer geschreven, zodat het algemene programma deze kon oproepen zonder systeem-specifieke parameters.

Daarnaast definieerde Basicode de wijze waarop het programma als geluiden op de cassetterecorder werd vastgelegd. De verschillende computers hadden daar namelijk verschillende methoden voor in gebruik, waardoor ze elkaars cassettes normaalgesproken niet konden lezen.

Evoluties[bewerken]

Basicode 1[bewerken]

In de oorspronkelijke versie van Basicode was alleen het overdrachtformaat gestandaardiseerd. Dit gebeurt serieel, waarbij een binaire 0 wordt voorgesteld door één periode van 1200 Hertz en een binaire 1 door twee perioden van 2400 Hertz. De bruto overdrachtssnelheid is hierdoor 1200 baud. Omdat er voor en na iedere byte start- en stopbits worden gebruikt was de netto overdrachtssnelheid minder, maar hierdoor was het wel mogelijk na een storing opnieuw te synchroniseren zodat niet het hele programma verloren ging.

Basicode 2[bewerken]

Hoewel de Basicode-1 programma's door meerdere computers konden worden gelezen waren toch nog aanzienlijke handmatige aanpassingen nodig, omdat de diverse Basic-dialecten verschillende commando's gebruikten voor gelijke functies. Voor het wissen van het scherm gebruikte het ene Basic-dialect bijvoorbeeld het commando CLS terwijl bij een ander Basic-dialect een PRINT-opdracht met een speciaal teken moest worden gegeven. Dit werd opgelost door deze functies onder te brengen in computerspecifieke subroutines met regelnummers onder de 1000 en het Basicode-2 programma zelf te laten beginnen op regel 1000. Bij het inlezen worden deze dan samengevoegd waardoor een compleet Basic-programma ontstaat met een computerspecifiek deel afkomstig van het vertaalprogramma en een machine-onafhankelijk deel van het ingelezen Basicode-programma. In het voorbeeld zorgt de opdracht GOSUB 100 ervoor dat het scherm wordt gewist, waarbij op regel 100 dan de computerspecifieke opdracht voor het wissen van het scherm staat.
Basicode-2 programma's werden vanaf 1983 uitgezonden door de NOS en later ook de BBC. De NOS gaf ook een boek en cassette met vertaalprogramma's uit.

Basicode 3 / 3C[bewerken]

In 1986 verscheen de derde versie van Basicode, uitgebreid met geluid, grafische mogelijkheden en bestandsbeheer. In tegenstelling tot voorgaande versies was de NOS hier niet bij betrokken, maar werd het bijbehorende boek uitgegeven door Kluwer Technische Boeken en de programma's uitgezonden door de TROS. Er was namelijk onenigheid ontstaan tussen de NOS en de Stichting Basicode (waarin de makers van vertaalprogramma's waren verenigd) over de auteursrechten van de vertaalprogramma's. Hierdoor bleef de NOS na 1986 gewoon Basicode-2 uitzenden terwijl de TROS de nieuwe Basicode-3 programma's uitzond.
Basicode-3 bleef ook niet onopgemerkt in het buitenland. Eind jaren 80 begon Radio DDR met het uitzenden van Basicode-3 programma's; ook verscheen er een boek waarbij de vertaalprogramma's bijgeleverd werden op een grammofoonplaat i.p.v. cassette omdat dit de productie en verspreiding eenvoudiger en goedkoper maakte.

Einde van Basicode[bewerken]

Doordat eind jaren 80 de IBM-compatibele PC steeds goedkoper werd en ook geavanceerdere mogelijkheden kreeg begonnen de beperkingen die er binnen de Basicode-standaard golden steeds meer te knellen. Ook stapten veel computerhobbyisten over van de homecomputer op de PC, waardoor Basicode in feite overbodig werd. Een herstructurering in de radioprogrammering van de publieke omroep betekende uiteindelijk in 1992 het einde van de Basicode-uitzendingen bij zowel de NOS als de TROS.

Trivia[bewerken]

  • De NOS heeft als 1-aprilgrap het belastingprogramma van dat jaar op dubbele snelheid afgespeeld door de ether gestuurd. Uiteraard was het niet mogelijk om deze data te gebruiken.
  • Op 7 maart 2012 zond de NCRV in het programma Lunch! een stukje van het Tros-programma uit. Het 'kruistalraadsel' wordt besproken en daarna horen de luisteraars de kenmerkende piep-kraakgeluiden om het 'kruistalraadsel' te 'downloaden'.
  • In 1984 bracht de Nederlandse popgroep What Fun! het nummer Let's get Digital uit, waarin aan het einde een kort Basicode-programma was opgenomen.
Bronnen, noten en/of referenties