Etikett: programmeringsspråk

  • Från stordator till Atari ST – historien om BASIC och GFA BASIC

    BASIC skapades på 1960-talet för att göra programmering tillgänglig för vanliga studenter och blev senare det självklara språket i miljontals hemdatorer. På Atari ST fördes arvet vidare av GFA BASIC – ett snabbt och kraftfullt språk som gjorde det möjligt att utveckla allt från enkla hobbyprogram till grafiska verktyg och kommersiella spel.

    I dag förknippas programmering ofta med avancerade utvecklingsmiljöer, stora programbibliotek och språk med tusentals funktioner. Under datorernas barndom såg verkligheten helt annorlunda ut. Då kunde ett enda fel innebära flera timmars väntan, och programmeraren hade sällan direktkontakt med datorn.

    Programmeringsspråket BASIC förändrade detta. Det gjorde datorn mer tillgänglig, mer personlig och framför allt roligare att använda. Flera decennier senare fördes samma idé vidare av GFA BASIC, ett språk som blev särskilt populärt bland användare av Atari ST.

    När programmering skedde med hålkort

    I början av 1960-talet programmerades många datorer genom så kallad batchkörning. Programmeraren skrev sin kod på särskilda formulär. Därefter överförde en operatör instruktionerna till hålkort, som matades in i datorn.

    Resultatet kom ofta flera timmar senare. Hade programmeraren gjort ett litet skrivfel kunde hela körningen misslyckas. Då var det bara att rätta felet, skapa nya hålkort och ställa sig i kön igen.

    Professorerna John G. Kemeny och Thomas E. Kurtz vid Dartmouth College i USA ansåg att detta var ett dåligt sätt att lära ut programmering. Deras mål var att alla studenter, inte bara matematiker och tekniker, skulle kunna använda en dator.

    Lösningen blev ett tidsdelningssystem.

    Datorn blev interaktiv

    Med tidsdelning kunde flera personer använda samma dator samtidigt. Varje användare satt vid en egen terminal som var ansluten till centraldatorn via telefonledning.

    Dartmouths system kallades Dartmouth Time-Sharing System, förkortat DTSS. Det togs i bruk våren 1964. Några år senare var omkring 60 terminaler anslutna till systemet.

    Terminalerna bestod ofta av fjärrskrivare som skrev ut text på veckat papper. Hastigheten var omkring tio tecken per sekund. Det låter långsamt med dagens mått, men jämfört med hålkort var det närmast revolutionerande. Studenten kunde skriva ett kommando och få svar nästan omedelbart.

    För att systemet skulle bli lätt att använda behövdes också ett enkelt programmeringsspråk. Resultatet blev BASIC.

    Ett språk för vanliga människor

    Namnet BASIC är en förkortning av Beginner’s All-purpose Symbolic Instruction Code. Språket utformades för nybörjare och byggde på tydliga kommandon som:

    10 PRINT "HEJ"
    20 INPUT A$
    30 PRINT "VÄLKOMMEN "; A$
    40 END
    

    Varje programrad hade ett nummer. Radnumren bestämde ordningen och användes för att hoppa mellan olika delar av programmet med kommandot GOTO.

    Språket hade ett begränsat antal instruktioner. PRINT skrev ut text, INPUT tog emot information från användaren, IF fattade beslut och FOR skapade upprepningar.

    Det var inte lika avancerat som språk som ALGOL och FORTRAN, men det var betydligt lättare att lära sig. Vid Dartmouth kunde studenter komma i gång efter bara ett par föreläsningar.

    För första gången kunde även studenter inom exempelvis musik, historia och samhällsvetenskap använda datorer i sina studier.

    Spelen gjorde entré

    Kommandot INPUT gjorde det möjligt att skapa program som förde en enkel dialog med användaren. Det dröjde därför inte länge innan studenter började skriva spel.

    Tidiga BASIC-spel bestod huvudsakligen av text. Spelaren kunde till exempel styra en rymdfarkost, leda ett historiskt kungarike eller utforska en grotta genom att skriva kommandon på tangentbordet.

    Bland de mest kända spelen fanns:

    • Hunt the Wumpus, där spelaren utforskade ett grottsystem
    • Super Star Trek, en strategisk rymdsimulering
    • Star Trader, ett tidigt spel om handel i rymden
    • The Oregon Trail, en historisk simulering av en resa genom USA
    • Hammurabi, där spelaren styrde ett forntida rike

    Spelen spreds mellan universitet, datortillverkare och tidsdelningssystem. De publicerades också som programlistningar i böcker och datortidningar. Läsaren kunde skriva in koden rad för rad och sedan köra spelet på sin egen dator.

    BASIC bidrog därmed till att skapa flera spelgenrer långt innan kommersiella datorspel blev en stor industri.

    BASIC flyttar in i hemmet

    När de första mikrodatorerna började säljas under 1970-talet behövdes ett programmeringsspråk som både var lätt att använda och tillräckligt litet för att rymmas i datorns begränsade minne.

    BASIC passade perfekt.

    År 1975 presenterades mikrodatorn Altair 8800. Bill Gates och Paul Allen kontaktade tillverkaren och erbjöd sig att skapa en BASIC-version för datorn, trots att de själva inte hade tillgång till någon Altair.

    I stället använde de en simulator som kördes på en större PDP-10-dator. Den färdiga tolken rymdes i omkring fyra kilobyte minne och levererades på hålremsa.

    Programmet blev Microsofts första produkt.

    Microsoft licensierade därefter olika BASIC-versioner till ett stort antal datortillverkare. Språket dök upp i datorer som Commodore PET, Apple II, TRS-80 och flera MSX-maskiner.

    Under slutet av 1970-talet och början av 1980-talet förväntades nästan varje hemdator starta direkt i en BASIC-tolk. När datorn slogs på möttes användaren ofta av en blinkande markör och ordet:

    READY
    

    Därifrån kunde användaren omedelbart börja programmera.

    BASIC fanns överallt

    Olika datortillverkare utvecklade egna varianter av språket. Commodore hade sin BASIC, Sinclair hade Sinclair BASIC och Atari utvecklade Atari BASIC. BBC Micro levererades med det betydligt mer avancerade BBC BASIC.

    Trots att språken byggde på samma grund fanns stora skillnader. Vissa versioner hade grafikkommandon, andra saknade stöd för ljud eller avancerad textbehandling. Ett program skrivet för en dator fungerade därför inte alltid på en annan.

    Ändå lärde sig miljontals människor programmering genom BASIC. Många framtida programmerare började med små program som skrev ut text, räknade tal eller ritade figurer på bildskärmen.

    Från Atari BASIC till Turbo-Basic XL

    Den tyske programmeraren Frank Ostrowski utvecklade under 1980-talet ett snabbare alternativ till Atari BASIC. Språket kallades Turbo-Basic XL och publicerades 1985 i den tyska datortidningen Happy Computer.

    Programmet distribuerades som en lång BASIC-listning. Läsaren fick själv skriva in hela programmet på sin Atari-dator. När allt hade skrivits in korrekt fick användaren en snabbare och mer avancerad BASIC-tolk.

    Turbo-Basic XL innehöll bland annat strukturerade programmeringskommandon och kunde även användas tillsammans med en kompilator. Ett BASIC-program kunde därmed omvandlas till snabbare maskinkod.

    Erfarenheterna från Turbo-Basic XL ledde vidare till ett nytt språk för 16-bitarsdatorer: GFA BASIC.

    GFA BASIC föds

    GFA BASIC utvecklades av Frank Ostrowski vid det tyska företaget GFA Systemtechnik. Förkortningen GFA stod för Gesellschaft für Automatisierung, ungefär ”företaget för automatisering”.

    Den första versionen släpptes 1986 och blev särskilt populär på Atari ST.

    Atari ST levererades ursprungligen med ST BASIC, men denna BASIC-version betraktades av många användare som långsam och begränsad. GFA BASIC erbjöd bättre prestanda och betydligt fler funktioner.

    Språket passade dessutom väl ihop med Atari ST grafiska användarmiljö GEM.

    Med GFA BASIC gick det att skapa program med:

    • fönster
    • menyer
    • dialogrutor
    • musstyrning
    • grafik
    • ljud
    • filhantering
    • systemanrop

    Det gjorde språket användbart både för nybörjare och mer erfarna programmerare.

    Programmering utan radnummer

    En av de tydligaste skillnaderna mot äldre BASIC-versioner var att GFA BASIC inte byggde på traditionella radnummer.

    I stället kunde programmen skrivas med strukturerade block och procedurer. Koden blev lättare att läsa och mer lik den struktur som användes i moderna programmeringsspråk.

    Ett enkelt program kunde exempelvis se ut ungefär så här:

    INPUT "Vad heter du? ", namn$
    PRINT "Hej "; namn$
    

    Mer avancerade program kunde delas upp i procedurer. Det gjorde det möjligt att bygga betydligt större program utan att fastna i ett virrvarr av GOTO-kommandon.

    GFA BASIC erbjöd också direkt åtkomst till många av Atari ST funktioner. Det gjorde det möjligt att skapa snabba program utan att hela programmet behövde skrivas i assembler.

    Tolk eller kompilator?

    Ett BASIC-program kunde vanligtvis köras direkt genom en tolk. Tolken läste programmet och utförde instruktionerna medan programmet kördes.

    Det var praktiskt under utvecklingen eftersom programmeraren snabbt kunde ändra och testa koden. Nackdelen var att programmet ofta kördes långsammare.

    Med en kompilator översattes programmet i förväg till maskinkod. Det färdiga programmet kunde därefter startas utan att användaren hade GFA BASIC installerat.

    GFA BASIC fanns tillsammans med en kompilator, vilket gjorde det möjligt att utveckla riktiga fristående program. För många hobbyprogrammerare blev detta ett första steg från enkla experiment till fullständiga applikationer.

    Mer än ett nybörjarspråk

    GFA BASIC användes inte bara till små hobbyprogram. Språket användes även för att skapa verktyg, grafikprogram, spelredigerare och kommersiell programvara.

    Spelutvecklaren Éric Chahi använde exempelvis ett verktyg skrivet i GFA BASIC under utvecklingen av det uppmärksammade spelet Another World. Verktyget användes för att skapa scener och skript, medan själva grafikmotorn skrevs i assembler.

    Även utvecklingsverktyg för rollspelsserien Amberstar skapades med GFA BASIC.

    Det visar att språket kunde fungera som ett praktiskt verktyg även i professionella projekt.

    Versioner för fler datorer

    Efter framgången på Atari ST portades GFA BASIC till flera andra plattformar. Versioner släpptes för:

    • Amiga
    • MS-DOS
    • 16-bitars Windows
    • 32-bitars Windows

    Version 2.0 blev särskilt populär, medan version 3.0 introducerade stöd för användardefinierade datatyper och mer avancerade datastrukturer.

    Den sista officiella versionen blev 3.6.

    Omkring 2002 upphörde GFA Software med den aktiva utvecklingen. Några år senare stängdes även företagets webbplats och officiella e-postlistor.

    Användarna lät dock inte språket försvinna. Entusiaster skapade egna webbplatser, diskussionsforum, editorer, rättningar och verktyg. Det finns fortfarande projekt som försöker bevara språket och göra gamla GFA-program användbara på moderna datorer.

    Den röda manualen

    En märklig detalj i GFA BASIC historia var programmets manual. Vissa upplagor trycktes med svart text på rött papper.

    Tanken var att göra manualen svår att fotokopiera och därmed förhindra piratkopiering. Resultatet blev inte helt lyckat. Det röda papperet gjorde ibland originalet svårare att läsa, medan en skickligt inställd kopiator kunde producera en tydligare kopia.

    Historien säger en del om 1980-talets programvarumarknad. Innan internet och digitala manualer var tryckta handböcker en viktig del av programvarupaketet och ibland lika värdefulla som själva disketterna.

    När BASIC förlorade sin huvudroll

    Under 1980-talet förändrades datorerna snabbt. Operativsystem som MS-DOS tog över rollen som datorns huvudsakliga gränssnitt. Senare blev grafiska miljöer som Windows, Macintosh och Amiga Workbench vanliga.

    BASIC-tolken var inte längre det första användaren mötte när datorn startade. Program distribuerades färdigkompilerade på diskett, och det blev allt mindre vanligt att användare skrev in program från tidningar.

    BASIC försvann dock inte.

    Microsoft fortsatte utvecklingen med GW-BASIC, QuickBasic och QBasic. År 1991 lanserades Visual Basic, som gjorde det möjligt att skapa Windows-program genom att placera ut knappar, menyer och andra komponenter på skärmen.

    Visual Basic blev mycket vanligt för kontorsprogram, databassystem och interna företagsverktyg. Senare kom Visual Basic .NET, som fortfarande används i vissa organisationer.

    BASIC lever vidare

    I dag finns BASIC i många olika former. Språket används inte längre som standardgränssnitt på persondatorer, men det lever vidare inom utbildning, hobbyprogrammering, retrodatorkultur och spelutveckling.

    Det finns moderna varianter som:

    • FreeBASIC
    • PureBasic
    • QB64
    • Small Basic
    • Gambas
    • X11-Basic
    • BlitzMax

    Äldre datorer har samtidigt fått nya BASIC-tolkar och kompilatorer. Entusiaster utvecklar språk för Atari 8-bitarsdatorer, Commodore 64, Amiga och andra klassiska system.

    För många handlar det inte bara om nostalgi. BASIC erbjuder fortfarande något som moderna utvecklingsmiljöer ibland saknar: möjligheten att skriva några få rader kod och omedelbart se resultatet.

    Ett språk som öppnade dörren

    BASIC skapades för att göra datorer tillgängliga för alla studenter. Det var ett radikalt mål i en tid då datorer var dyra maskiner som användes av specialister bakom stängda dörrar.

    GFA BASIC förde samma idé vidare under hemdatorernas storhetstid. Språket gav Atari ST- och Amiga-användare möjlighet att skapa grafiska program, verktyg och spel utan att först behöva behärska assembler eller avancerad systemprogrammering.

    Dagens programmeringsspråk är betydligt mer kraftfulla, men principen bakom BASIC är fortfarande aktuell: programmering ska vara begriplig, tillgänglig och rolig.

    För en hel generation var BASIC inte bara ett programmeringsspråk. Det var dörren in till datorns värld.

    Youtube innehålle om programmeringsspråket basic.

    Fakta: BASIC och GFA BASIC

    BASIC:
    Programmeringsspråk skapat av John G. Kemeny och Thomas E. Kurtz vid Dartmouth College.

    Första lansering:
    1964.

    Namnet betyder:
    Beginner’s All-purpose Symbolic Instruction Code.

    Ursprungligt syfte:
    Att göra programmering lättillgänglig för studenter utan teknisk bakgrund.

    GFA BASIC:
    En strukturerad och snabb BASIC-dialekt utvecklad av den tyske programmeraren Frank Ostrowski.

    Lanserades:
    1986.

    Populär plattform:
    Atari ST.

    Andra plattformar:
    Amiga, MS-DOS och Microsoft Windows.

    Viktiga egenskaper:
    Strukturerad programmering, procedurer, grafik, ljud, filhantering och stöd för Atari ST:s grafiska GEM-miljö.

    Sista officiella version:
    GFA BASIC 3.6.

    Användningsområden:
    Hobbyprogram, spel, grafikprogram, utvecklingsverktyg och kommersiella applikationer.

    Annons

    Strul med e-posten? Hjälp med TV? Problem med wifi?
    Digital Fixare

  • IBM 2741 – skrivmaskinen som lärde datorer att prata med människor

    I mitten av 1960-talet började datorer för första gången svara direkt på vad människor skrev. Det skedde inte på skärmar, utan på papper – med ljudet av en elektrisk skrivmaskin i bakgrunden. IBM 2741 var en av de viktigaste länkarna mellan människa och stordator och gjorde interaktiv datoranvändning möjlig långt innan bildskärmsterminaler blev vardag.

    IBM 2741 – skrivmaskinen som lärde datorer att prata med människor
    När vi i dag tänker på datorer ser vi framför oss skärmar, tangentbord och tysta tangenttryckningar. Men i mitten av 1960-talet lät datorer mer som kontor: de knackade, slamrade och skrev bokstäver direkt på papper. En av de mest inflytelserika maskinerna från denna tid var IBM 2741, en skrivande datorterminal som kom att spela en viktig roll i övergången från batchkörning till interaktiv datoranvändning.

    Ett stort steg bort från teletype-eran
    IBM 2741 introducerades 1965 och var i grunden en kraftigt modifierad IBM Selectric-skrivmaskin, försedd med elektronik som gjorde att den kunde kopplas direkt till en dator. Jämfört med dåtidens teletype-maskiner var den ett tekniksprång: cirka 50 % högre utskriftshastighet, betydligt tystare drift, bokstavskvalitet snarare än ”telegramstil”, både versaler och gemener samt utbytbara typhjul som gav olika typsnitt och symboluppsättningar. Plötsligt kunde användare skriva kommandon och få svar direkt – allt på papper.

    Datorn flyttar ut från maskinrummet
    IBM 2741 användes främst tillsammans med IBM System/360, men förekom även med andra IBM-system och ibland med icke-IBM-miljöer där man behövde snabb och snygg utskrift. Till skillnad från stora konsolskrivare som stod i datorhallar var 2741 byggd för fjärranvändning. Den kunde placeras i ett kontor eller klassrum och kopplas upp via telefonlinje, vilket gjorde att fler kunde arbeta interaktivt utan att befinna sig nära själva stordatorn.

    Mekanik möter digital logik
    Tekniskt var IBM 2741 en hybrid. Den kombinerade Selectric-mekanik – där ett roterande typhjul slår fram rätt tecken – med IBM:s SLT-elektronik och ett seriellt gränssnitt av RS-232-typ. Terminalen arbetade kring 14 tecken per sekund och använde ett serieformat med startbit, sex databitar, udda paritet och 1,5 stoppbitar. En detalj som skiljde den från senare ASCII-terminaler var att den mest signifikanta databiten skickades först.

    Skiftlägen och teckenuppsättningar
    Som hos dåtidens kontors-Selectrics fanns omkring 88 tryckbara tecken plus mellanslag och vissa styrkoder. Det räckte inte för att få in hela EBCDIC eller ASCII inklusive gemener, så terminalen använde skifttecken för att växla läge och därmed nå fler symboler än vad sex databitar kan beskriva direkt. Nackdelen var att utskriftshastigheten i praktiken kunde sjunka, eftersom extra skifttecken behövde skickas för att få fram rätt tecken på papper.

    Två varianter – olika kodning, olika beteende
    IBM 2741 fanns i två huvudvarianter: en med ”correspondence coding” och en med PTT/BCD eller PTT/EBCD. Skillnaden låg bland annat i hur tecken var placerade på typhjulet och vilka tilt-/rotationskoder som behövdes för att slå fram ett visst tecken. En ”correspondence”-maskin kunde använda standard-typhjul från kontors-Selectrics, medan PTT-varianter krävde specialelement och hade mindre urval av typsnitt. Elementen gick att byta fysiskt – men resultatet blev ”gibberish” om kodningen inte matchade. Detta påverkade även mjukvaran, eftersom värddatorn behövde kunna avgöra vilken typ av terminal som var ansluten.

    En terminal som gjorde APL möjligt i praktiken
    IBM 2741 blev starkt förknippad med programmeringsspråket APL. APL var fyllt av specialsymboler och krävde därför en särskild tangentbords- och typhjulslösning. IBM implementerade APL som ett timesharing-system på System/360 under namnet APL\360, och i den miljön var IBM 2741 (eller IBM 1050 med APL-element) i praktiken en nyckelkomponent. Många av symbolerna skapades genom skiftade nedslag och övertryck (overstrike), och alfabetet var begränsat men kompletterades av den stora mängden APL-tecken.

    En oväntad roll i ALGOL 68-historien
    Även ALGOL 68, ett språk definierat med många specialtecken, drog indirekt nytta av att APL-typhjulet fanns. Flera av de symboler som behövdes för standarddokumentet fanns redan på APL-elementet, vilket gjorde att det kunde användas för att producera delar av språkspecifikationen – trots att APL och ALGOL inte är nära släkt.

    Enkel linjeprotokoll – och en tidig “break”-funktion
    Kommunikationen var enkel och symmetrisk. Meddelanden började med ”circle D” och slutade med ”circle C”, och man antog ett bestämt skiftläge vid start. När den andra änden sände var tangentbordet låst. Men operatören kunde avbryta med ATTN-tangenten, som skickade en lång ”spacing condition” (en paus i signaleringen) som tolkades som ett inramningsfel – ungefär som en break-signal på senare ASCII-terminaler. Om systemet respekterade avbrottet stoppade det sändningen och markerade slutet på meddelandet, varefter användaren fick kontroll igen.

    Besläktade maskiner och kloner
    IBM 2740 var en närbesläktad modell som saknade avbrottsfunktionen och uppringt stöd, men som kunde fungera i punkt-till-punkt-, multipunkt- eller broadcastläge. Den kunde också utrustas med buffer för bättre utnyttjande av snabbare linjer. IBM sålde dessutom Selectric-mekaniken till andra tillverkare, vilket ledde till billigare ”2741-kloner” och integration i andra system – bland annat i vissa brittiska datorlösningar från 1960- och 70-talen.

    Nedgången: daisy wheel, ASCII och videoterminaler
    Från mitten av 1970-talet började IBM 2741 ersättas av terminaler med daisy wheel-mekanismer, som kunde ge likvärdig utskriftskvalitet men med högre hastighet (omkring 30 tecken per sekund), bättre driftsäkerhet och lägre kostnad. De kunde också hantera hela ASCII:s tryckbara tecken, och hade utbytbara hjul även för specialuppsättningar (inklusive APL). När pappersutskrifter inte längre var ett krav tog videobaserade terminaler över. IBM 3767, med punktmatrisskrivare i upp till 80–120 tecken per sekund, var ytterligare ett alternativ.

    Ett mekaniskt minne av den interaktiva revolutionen
    IBM 2741 visar tydligt hur övergången till interaktiv datoranvändning såg ut i praktiken: en robust skrivmaskin som blev en kommunikationsenhet, där människor kunde arbeta i dialog med en stordator. Den var långsam med dagens mått, men den gav något som var revolutionerande då – en känsla av direktkontakt med datorn, bokstav för bokstav, rad för rad, på papper.

    Film på youtube som visar hur IBM Golf boll teknik fungerar.

    Fakta: IBM 2741
    • Typ: Utskrivande datorterminal (hardcopy) baserad på IBM Selectric-mekaniken
    • Introducerad: 1965
    • Användning: Främst som fjärrterminal till IBM System/360, men förekom även med andra system
    • Utskrift: Bokstavskvalitet med utbytbara typhjul/”typeballs” (olika typsnitt och teckenuppsättningar)
    • Hastighet: cirka 14,1 tecken/sekund
    • Dataformat: seriell överföring med 6 databitar, udda paritet och 1,5 stoppbitar (ej ASCII-baserad)
    • Varianter: ”correspondence coding” samt PTT/BCD eller PTT/EBCD (påverkar både typhjul och kodning)
    • Känd för: Stark koppling till APL (APL-typhjul och tangentbordslayout med många specialsymboler)
    • Avbrott: ATTN-funktion som kunde avbryta sändning (break-liknande signal)
    • Ersattes av: senare ASCII-terminaler och daisy wheel-skrivare under 1970-talet

    Annons

    Strul med e-posten? Hjälp med TV? Problem med wifi?
    Digital Fixare