Hugo Gernsback’s 1934 Official Short Wave Radio Manual Complete Experimenter’s Set-Building and Servicing Guide (1934)

Een officiële gids met alle op dat moment bekende radiobuis-schakelingen voor het maken van kortegolfontvangers én -zenders. Deze gids moet wereldwijd een kentering hebben aangebracht in de productie van radiotoestellen en van invloed zijn geweest op het leven en werken van ontelbare mensen. Om het belang van deze publicatie te benadrukken werd deze in 1987 in ongewijzigde vorm opnieuw uitgebracht, met als toevoeging een verhandeling en vergelijking over het gebruik van transistoren.

De ‘manual’ bevat vooral veel schakelingen voor ontvangers en zenders. Meestal opgebouwd uit een radiobuis en bijbehorende ontvangstspoelen en met veel foto’s en werkbeschrijvingen aangevuld. Het is een geschiedenisboek die zich vooral door de technische lezer laat verslinden. Ik vind het boek, ondanks het feit dat veel van de schakelingen ondertussen door de tijd zijn achterhaald, fantastisch om door te bladeren. Veel van de schakelingen zijn op dat moment het neusje van de zalm op het gebied van innovatie en technische know-how en je kunt niet veel anders dan respect hebben voor deze mate van gedetailleerde publicatie. Ik vind de toevoeging van de pagina’s over transistoren (duidelijk herkenbaar als toevoeging door de afwijkende plaatsing van het paginanummer) een welkome aanvulling, omdat er moeite voor is gedaan buizenschakelingen en transistorschakelingen met elkaar in overeenstemming te brengen.

People’s Computer Company’s Dr. Dobb’s Journal’s Tiny BASIC (1976)

De magie van een goede programmeertaal zit verscholen in de eenvoud waarmee een bepaald idee kan worden uitgedrukt. Processor-assembleertaal is complex, krachtig en moeilijk om te leren gebruiken. Om een programmeertaal in de beginjaren van de thuiscomputers te laten landen moest deze niet alleen ‘goed’ zijn, maar als programma ook nog passen binnen de toenmalige beperkingen op het gebied van opslag, verwerkingssnelheid en werkgeheugen (RAM). De Tiny BASIC programmeertaal, als concept voor het eerst voorgesteld door Dennis Allison in het septembernummer van People’s Computer Company’s Dr. Dobb’s Journal, voldeed aan die eisen. De Journal begon net met publiceren en had als doel te dienen als referentiewerk; publicatie van een programmeertaal paste fabelhaft in dat concept. Tiny BASIC was op het moment van publiceren nog geen programmeertaal met een wijde beschikbaarheid voor de diversiteit aan computerhardware in die tijd: van de lezers van het blad werd de bovengemiddelde inspanning verwacht om Tiny BASIC zélf voor de eigen hardware te implementeren. Diverse codevoorbeelden en implementatierichtlijnen hielpen daar echter bij en Tiny BASIC kwam je daarna in heel veel varianten tegen.

De eigenschappen van de voorgestelde Tiny BASIC waren als volgt:

  • Alleen 8-bit (of 16-bit) integerberekeningen in het bereik -128 tot +127 of -32768 tot +32767
  • 26 variabelen met namen A, B, C, D, .. , Y, Z
  • De RND functie
  • 7 BASIC statements: INPUT, PRINT, LET, GOTO, IF, GOSUB, RETURN
  • Strings alleen als parameter voor PRINT

Hoewel de uitrusting van Tiny BASIC beperkt lijkt, viel dat in het licht van de hardwaremogelijkheden van de computers in de jaren ’70 nog reuze mee en ook zonder later geïntroduceerde toeters en bellen waren complexe programma’s mogelijk. Met INPUT was het mogelijk om invoer van een gebruiker te vragen (beperkt tot geen input, of een geheel getal). Met LET konden alle mogelijke berekeningen worden uitgevoerd – expressies geëvalueerd – zolang de uitkomsten maar beperkt bleven tot gehele getallen. En met PRINT konden de antwoorden op het scherm worden getoverd. Vorwaardelijke verwerking werd mogelijk met IF en grotere programma’s konden gebruik maken van routines met GOSUB en RETURN. Tiny BASIC was dan ook een instant succes.

In de latere jaren kwam je Tiny BASIC in allerlei vormen en onder diverse namen tegen. Laatst zag ik een implementatie op een Arduino, die een listing op een miniatuur OLED scherm toonde. En het stond de programmeurs vrij om zelf uitbreidingen aan de taal te maken, bijvoorbeeld door functies toe te voegen voor wiskundige berekeningen, of specifieke hardware of I/O uitbreidingen. Succes verzekerd.

De basis Tiny BASIC instructies zijn voldoende voor ieder denkbaar programma die binnen de beperkingen van geheugen en integerberekeningen moet werken. Met de combinatie van IF en GOTO waren ook herhalingen mogelijk:

100 LET L = 0
110 PRINT "IN THE LOOP", L
120 LET L = L + 1
130 IF L < 10 THEN GOTO 110
140 PRINT "OUT OF THE LOOP"

In latere Tiny BASIC versies werd zonder uitzondering de FOR .. TO .. NEXT constructie toegevoegd, zodat de code hierboven herschreven kon worden als:

100 FOR L = 0 TO 9
110 PRINT "IN THE LOOP", L
130 NEXT L
140 PRINT "OUT OF THE LOOP"

Omdat de Tiny BASIC programmeertaal maar weinig woorden kent en deze woorden toch al als enkele ’token’ in het geheugen van de computer werden opgeslagen, zochten veel computerbouwers naar manieren om met een enkele toets een geheel BASIC woord in te kunnen voeren. Hieronder een voorbeeld van de toetsenbord-layout voor de Tiny BASIC implementatie op de Micro-Professor MPF-1, wat gezien de aanwezigheid van FOR .. TO .. NEXT al een meer uitgebreide versie betreft. De commando’s SAVE, CONT, LIST, NEW, LOAD, RUN en ENTER zijn geen programmeerinstructies, maar middelen om programma’s in z’n geheel te laden van of bewaren op cassetteband, een programma te starten, te ‘listen’, of een afgebroken programma te hervatten.

Externe links