BASICODE

BASICODE 2 på en kompakt kassette
BASICODE-post

BASICODE var et computerprojekt, der var aktivt i 1980'erne og 1990'erne med det formål at etablere en ensartet sprogstandard for BASIC- programmeringssproget . BASIC var udbredt på mange hjemmecomputere, der var populære på det tidspunkt, men i utallige gensidigt uforenelige varianter. Projektet blev lanceret i 1980 af den hollandske radioforening Nederlandse Omroep Stichting (NOS) i radioserien Hobbyscoop og senere også støttet af WDR Computerclub , DDR 's Radio og British Broadcasting Corporation (kort sagt BBC).

Systemet var baseret på computerspecifikke yderligere programmer, der kaldte underrutinerne defineret af BASICODE-sprogstandarden til input og output af tekst, grafik og lyd i henhold til de respektive computers tekniske egenskaber. Disse programmer, kendt som bascodere , gjorde det også muligt at udveksle programmer og data mellem forskellige hjemmecomputerplatforme og via radioudsendelse ved at definere et ensartet dataformat til de kompakte kassetter, som derefter almindeligvis blev brugt som databærere .

udvikling

Udgangspunktet

Fra slutningen af ​​1970'erne til slutningen af ​​1980'erne var hjemmecomputere baseret på 8-bit processorer meget populære blandt private brugere. De bedst kendte var TRS-80 fra Tandy, PET 2001 , VC20 , C64 eller C128 samt Plus / 4 fra Commodore , modellerne fra Atari ( 400 , 800, XL, XE), de forskellige versioner af Apple II modellerne fra Schneider CPC-serien , computere fra producenten Sinclair Research ( ZX80 , ZX81 , ZX Spectrum ) og i DDR computere i serien Z1013 , Z9001, KC85 / 1 og KC87 samt KC85 / 2 til KC85 / 4 fra Robotron . Fælles for disse computere var, at de var udstyret med en 8-bit processor af typerne MOS Technologies 6502 , Intel 8080 eller Zilog Z80 , mellem 16 og 64 KByte RAM-hukommelse , en forbindelsesmulighed for kassetteoptagere eller en indbygget kassette drev til datalagring på kompakt kassette (TRS-80 havde allerede slots til 5 1/4 tommer disketter) samt en tolk, der ofte var permanent installeret i ROM-hukommelsen til BASIC-programmeringssprog, som var udbredt på det tidspunkt . Den enkle lærbarhed af BASIC-sproget, der var designet til begyndere, samt dets umiddelbare tilgængelighed på alle disse computere førte til, at mange ejere af hjemmecomputere programmerede sig selv og udvekslede deres programmer med hinanden.

Problemet med udveksling af programmer og data mellem computere fra forskellige producenter var på den ene side, at de anvendte BASIC-varianter var fuldstændig uforenelige med hinanden på mange områder. Så du brugte forskellige BASIC-kommandoer til den samme handling (såsom at rydde skærmen , tegne et punkt på skærmen eller udsende en tone ), så f.eks. Et BASIC-program skrevet på en C64 kan skrives til det Normalt ikke arbejde på en Atari XL og omvendt. For det andet adskiller computerne sig i deres tekniske udstyr, for eksempel skærmopløsningen, antallet af mulige farver eller de tilgængelige muligheder for lydoutput. For det tredje var de dataformater, der blev brugt på de forskellige computere til at gemme data og programmer på kompakte kassetter, også uforenelige med hinanden.

Den første standard

Schneider CPC664
Schneider CPC6128
Sinclair ZX Spectrum

Omkring 1980 startede den hollandske radioforening NOS med at sende computerprogrammer i radioen. Da programmer og data blev gemt på de kompakte kassetter som toner, var det muligt at optage sådanne radioudsendelser på en kassetteoptager og derefter læse i udsendelsesprogrammerne med computeren. Af de problemer, der blev præsenteret i starten, viste det sig imidlertid, at et program næsten altid skulle tilpasses specielt til alle populære computertyper og derefter udsendes i de rigtige versioner flere gange på radioen. Den meget lave datatæthed ved lagring på kompakte kassetter sammenlignet med nutidens databærere betød, at udsendelsen på radioen og dermed også optagelsen tog tilsvarende lang tid, og at der således kun kunne sendes et meget begrænset antal programmer i en udsendelse. Så udsendelse af det samme program i flere forskellige versioner var en stor ulempe.

I 1982 kom de ansvarlige hos NOS på ideen om at udvikle et ensartet dataformat. Et specifikt program for hver type computer, den såkaldte bascoder , overtog læsning af dette format fra kassetten eller lagring af programmer og data i dette ensartede format på kassetten. Disse programmer blev også sendt af NOS via radio. De kunne også købes på kompakte kassetter fra NOS og blev også videregivet mellem private computerbrugere. Formatet, som er meget robust med hensyn til interferens under transmission, kunne læses og skrives af alle hjemmecomputere, der i vid udstrækning blev brugt på det tidspunkt ved den respektive dataindgang og -output. Robustheden ved denne standard gjorde det også muligt at sende på mellembølgefrekvenser , hvilket igen øgede rækkevidden og dermed antallet af mulige modtagere. De programmer, der sendes på hollandsk radio af NOS von Hilversum, kunne f.eks. Også modtages i store dele af den tyske demokratiske republik (DDR). I det vestlige Tyskland, hvis modtagelsen var god, kunne BBC- programmerne fra Storbritannien bruges, som også udsendte BASICODE-programmer. BASICODE er sandsynligvis bedst kendt i Forbundsrepublikken Tyskland gennem WDR Computer Club, der udsendte BASICODE-programmer over tv-lydsignalet om søndagen under navnet "Hard-Bit-Rock". Da ingen yderligere moderering var mulig under udsendelsen af ​​programmerne, blev BASICODE-programmer senere transmitteret ved hjælp af videodata . Dette system brugte det såkaldte blanking-interval i tv-billedets videosignal til lydløs datatransmission.

BASICODE 2

Sinclair ZX81
RFT KC 85/3
Robotron KC 87
Apple II
Farve Genie EG2000

Standarden oprettet med BASICODE løste et af de problemer, der blev præsenteret i starten, nemlig den af ​​de gensidigt inkompatible dataformater. Programmerne skulle dog stadig tilpasses til den respektive BASIC-dialekt og de specifikke tekniske betingelser for hver enkelt computertype. En mulig begrænsning af de elementer i BASIC-sproget, som var fælles for alle dialekter, betød utilfredsstillende begrænsninger med hensyn til programmenes funktionalitet, for eksempel afvisning af grafik og lyd og kun ubelejlige muligheder for datainput via tastaturet og for styring af dataoutput på skærmen. Af denne grund blev BASICODE 2-standarden oprettet i 1984. Bascoderne, der er baseret på denne standard, indeholdt ikke kun rutinerne for indlæsning og udsendelse af programmer og data på kompakte kassetter. Ud over et sæt på ca. 50 BASIC-kommandoer, funktioner og operatorer, som var identiske i alle BASIC-dialekter, definerede BASICODE 2-sprogstandarden også for første gang et bibliotek med underrutiner, der kan kaldes den samme funktionalitet på alle leverede computere .

Til dette formål blev det specificeret, at området for programlinjerne under linjenummer 1000 var reserveret til baskoderen, og programmer skrevet i BASICODE derfor kun kunne starte fra linie nummer 1000. Basrutens underrutiner i linjenumrene under 1000 blev derefter kaldt af GOSUB-instruktionen. De nødvendige argumenter blev sendt ved at tildele de relevante værdier til bestemte variabler, der var reserveret til baskoderen inden opkaldet. BASICODE-sprogstandarden indeholdt også et par andre specifikationer, der var resultatet af begrænsningerne for nogle typer computere. For eksempel, i modsætning til BASIC-dialekterne på næsten alle andre computere, kunne en programlinje på ZX81 kun indeholde en enkelt BASIC-kommando, eller en programlinje i BASIC-dialekten i KC-serien kunne ikke være længere end 60 tegn. Da Bascoder blev behandlet sammen med BASICODE-programmet af den computerspecifikke BASIC-tolk, måtte sådanne begrænsninger gælde for alle BASICODE-programmer for at opnå fuld platformuafhængighed.

Bascoderne blev indlæst på deres respektive computere som normale programmer og leverede derefter de ekstra rutiner til den fælles sprogstandard og til input og output på kassetter. Programmerne skrevet i BASICODE kunne kun bruges efter indlæsning og start af Bascoder. På nogle computere kunne BASICODE-programmerne imidlertid gemmes sammen med Bascoderens sprogdel i det typespecifikke dataformat. Som et resultat var det ikke længere muligt at bruge denne optagelse på andre typer computere. De typespecifikke dataformater havde dog næsten altid en signifikant højere datatæthed, så det samme program kunne indlæses betydeligt hurtigere end i BASICODE-formatet. Derudover var der betydeligt mere hukommelse tilgængelig under programkørsel uden behov for at indlæse den komplette Bascoder, før BASICODE-programmet blev udført.

Bascoder til BASICODE-2-standarden eksisterede til computertyperne Exidy Sorcerer, DAI , Color 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 og andre. Erfarne computerejere var også i stand til at udvikle deres egen bascoder til deres særlige system, da sprogstandarden og dataformatet var åbent og veldokumenteret. Den sprogstandard, der er defineret i BASICODE 2, gjorde det allerede muligt at udvikle systemuafhængige programmer med muligheder, der var relativt avancerede for tiden. BASICODE blev også brugt til at sende information såsom nyheder fra computerscenen i radioen i form af såkaldte tidsskrifter og til at videregive den mellem computerbrugere. Et omfattende kursus om programmering i BASICODE og anden dokumentation blev også distribueret på denne måde.

BASICODE 3 / 3C

I 1986 blev den nye BASICODE 3-standard udviklet. De vigtigste innovationer var rutiner for enkel monokrom grafikoutput, læsning og lagring af data fra programmer og udsendelse af lyd. Med BASICODE 3 blev BASICODE kendt især i DDR-computerscenen, og BASICODE-programmer blev også sendt på DDR- radioen fra 1989 og frem . Den hollandske tv-station TROS (Televisie en Radio Omroep Stichting) udsendte også BASICODE 3-programmer. Derudover blev der udgivet en bog i DDR med en lille post med bascodere til alle typer computere, der blev brugt i DDR. Den sidst reviderede BASICODE-version, som inkluderede output af farveskærm som en innovation, blev offentliggjort i 1991 som BASICODE 3C.

Slutningen af ​​populariteten af ​​BASICODE

I begyndelsen af ​​1990'erne faldt BASICODE popularitet meget hurtigt på grund af den stigende spredning af 16- og 32-bit computere og især nye versioner af IBM PC og kompatible enheder. Selvom Bascoders for det meste stadig blev udviklet til disse computere, var BASICODE for begrænset til tilstrækkeligt at udnytte de tekniske muligheder i denne generation af computere. Derudover blev den væsentligste årsag til oprettelsen og brugen af ​​BASICODE fjernet på grund af den omfattende koncentration af nogle få computerarkitekturer i 16- og 32-bit-området. På grund af den stigende kompleksitet af hardware og software til de nye systemer var mange mennesker ikke længere interesserede i eller i stand til at programmere sig selv. Den stigende popularitet af grafiske brugergrænseflader bidrog også til det hurtige fald i spredningen af ​​8-bit computere og dermed også BASICODE.

Stoffet, at resultaterne fra DDR-radio Tyskland sender kultur, senere med andre sendere til Tyskland Radio fusioneret, exuded indtil omkring 1992 BASICODE programmer. En standard BASICODE 4, der stadig var planlagt, blev aldrig officielt implementeret, da NOS opgav sin støtte til projektet kort efter offentliggørelsen af ​​BASICODE 3C. BASICODE bruges stadig i dag af nogle entusiaster, især 8-bit computer fans, hovedsageligt af nostalgisk interesse, men er ikke længere praktisk relevant.

Historisk betydning

BASICODE var et af de tidlige forsøg i hjemmebrugersektoren for at skabe en fælles standard for udveksling af programmer og data om forskellige gensidigt inkompatible computerarkitekturer. Det blev oprettet omkring samme tid som MSX- systemet udviklet af Microsoft , hvis standardisering omfattede en ensartet BASIC sprogstandard samt en defineret hardwarespecifikation. Tilsvarende computere blev solgt af forskellige virksomheder og var i konkurrence med andre populære hjemmecomputere. I vid udstrækning havde MSX næsten udelukkende succes på producenternes hjemmemarkeder som Japan og Sydkorea , Holland og Brasilien . I modsætning til MSX definerede BASICODE ikke en hardwarespecifikation, men en sprogstandard for BASIC-programmeringssproget, som næsten er universelt tilgængelig på hjemmecomputere, og et dataformat til kompakte kassetter, der kunne læses og skrives på alle computere udstyret med BASICODE. Implementeringen af ​​BASICODE fandt udelukkende sted med yderligere software og var derfor ikke begrænset til computere fra visse hardwareproducenter. Spredningen af ​​BASICODE er vanskelig at vurdere, fordi både bascodere og programmer udviklet i BASICODE var frit tilgængelige og blev videregivet. Bascoders var dog tilgængelige for næsten alle hjemmecomputere, der nogensinde er solgt i denne computeræra. På grund af sin gratis distribution var BASICODE ikke kommercielt relevant.

På grund af konceptet var det ikke muligt med BASICODE at udnytte de specifikke tekniske muligheder for en bestemt type computer fuldt ud. Sprogstandarden defineret af BASICODE var næsten fuldstændig begrænset til den laveste fællesnævner for alle relevante computersystemer. Dette koncept blev kun delvist forladt med BASICODE 3 / 3C, da nogle computertyper eller varianter såsom ZX80 / ZX81-computere og KC87 ikke tillod ægte grafik og farveoutput og dermed de tilsvarende nyligt introducerede funktioner i BASICODE 3 / 3C på disse computere var ikke længere anvendelige. Især til tidskritiske applikationer og inden for grafik og lydoutput, for eksempel inden for udvikling af computerspil , var BASICODE klart ringere end programmering i den systemspecifikke BASIC-dialekt eller direkte i maskinkoden . Styrken ved BASICODE var derfor mere inden for applikationsudvikling, software til uddannelse og dataudveksling. BASICODE-dataformatet blev også brugt til at overføre programmer på Pascal- programmeringssproget , hvilket var signifikant bedre standardiseret end BASIC med hensyn til dets sprogdefinition. Pascal-kompilatorer var kun tilgængelige på nogle typer hjemmecomputere.

Grundkonceptet med BASICODE, nemlig definitionen af ​​en sprogstandard til platformuafhængig softwareudvikling og implementeringen af ​​denne standard gennem systemspecifikke programmer (Bascoder), blev også implementeret senere i Java- programmeringssproget i form af operativsystemet systemspecifikke Java Virtual Machines til udførelse af Java-programmer. Overførsel af data og information i BASICODE-dataformatet som tidsskrifter minder også om de platformuafhængige dokumentformater, der anvendes i dag, såsom Portable Document Format (PDF) og de systemspecifikke PDF-læserprogrammer, der kræves til dette.

BASICODE-dataformatet

I BASICODE-formatet registreres programmer på samme måde som data. Når programmer optages, gemmes de enkelte BASIC-kommandoer ikke og læses karakter for tegn, som det normalt er tilfældet i form af 1- byte- enheder (tokens).

Hver byte transmitteres i form af "1 startbit - 8 databit - 2 stopbit". Den resulterende redundans bruges primært til sikkerhed under transmission. Bit 7 transmitteres altid negeret, hvilket er særligt nyttigt ved transmission af ASCII- tegn. Disse indeholder altid en 0 bit ved bit 7, således at tre stopbit skyldes den negerede transmission af ASCII-tegn. Begyndelsen på en transmission er markeret med tegnet 02 (STX, start af tekst), slutningen med tegnet 03 (ETX, slutningen af ​​tekst). Efter ETX sendes en anden kontrolbyte, som beregnes ud fra de tidligere byte inklusive STX og ETX ved bitvis binær tilføjelse (XOR). Tegnene 0DH eller 13D angiver slutningen af ​​en linje under transmission. Datafiler genereret af programmer kan bruge alle tegn som data, så de ikke indeholder nogen kontroltegn. Snarere læses og skrives de i 1.024-byte blokke.

Firkantbølger i form af en 1200 Hz svingning for en 0-bit og to 2.400 Hz svingninger for en 1-bit med en længde på 1/1200 sekunder for hvert bitsignal bruges som lydsignaler . En pause på mere end 1/1800 sekund mellem to kanter markerer begyndelsen på transmission af en byte, så den efterfølgende svingning repræsenterer en startbit. Efter startbit og før transmission af de otte databits er der en anden pause på mindst 1/1800 sekund. Et 2400 Hz signal, der varer fem sekunder, markerer starten på en transmission og bruges til at synkronisere læseprogrammet. I slutningen af ​​en transmission sendes et 2400 Hz signal, der varer et sekund.

Den teoretiske datahastighed for dette format er 1200 bits pr. Sekund (bit / s). På grund af transmissionen af ​​yderligere tre bits pr. Databyte og pauserne før og efter en startbit resulterer dette i en reel datahastighed på ca. 102 byte pr. Sekund, dvs. ca. seks KBytes pr. Minut.

BASICODE-sprogstandarden

BASICODE 2

GRUNDLÆGGENDE kommandoer, funktioner og operatører tilladt i BASICODE 2

Elementerne i det grundlæggende programmeringssprog BASIC, der er nævnt nedenfor, er tilgængelige i BASIC-dialekter af alle understøttede computertyper med identisk funktionalitet. De er derfor også en del af sprogstandarden BASICODE.

  • Kommandoer:
DATA    DIM     END     FOR     GOSUB   GOTO    IF      INPUT   NEXT    ON
PRINT   READ    REM     RESTORE RETURN  RUN     STEP    STOP    THEN    TAB
TO
  • Funktioner:
ABS     ASC     ATN     COS     EXP     INT     LEN     LOG     SGN     SIN
SQR     TAN     VAL

CHR$    LEFT$   MID$    RIGHT$

AND     OR      NOT
  • Aritmetiske operatorer:
^ Potenzieren
* Multiplikation
/ Division
+ Addition und Verkettung von Stringvariablen
- Subtraktion
  • Sammenligningsoperatører:
=       <>      <       >       <=      >= 

Rutiner leveret af Bascoder i BASICODE 2

De følgende rutiner indeholdt i Bascoder er implementeret i de enkelte BASIC-dialekter ved hjælp af forskellige kommandoer eller funktioner, der er inkompatible i deres syntaks. GOSUB-opkaldene sikrer, at disse muligheder er tilgængelige som en del af BASICODE-sprogstandarden på alle relevante computere.

GOSUB 100 Löschen des Bildschirms
GOSUB 110 Setzen des Cursors an eine bestimmte Position
          Übergabe der Position in den Variablen HO und VE
GOSUB 120 Ermittlung der Position des Cursors
          Rückgabe der Position in den Variablen HO und VE

GOSUB 200 Auslesen eines Tastendrucks
          Rückgabe des Zeichens in der Variablen IN$
          Rückgabe einer leeren Variablen IN$, wenn keine Taste gedrückt wurde
GOSUB 210 Warten auf einen Tastendruck
          Rückgabe des Zeichens in der Variablen IN$
GOSUB 250 Ausgabe eines einfachen kurzen Tons ("Beep")
GOSUB 260 Ermittlung einer Zufallszahl zwischen 0 und 1
          Rückgabe der Zahl in der Variablen RV
GOSUB 270 Ermittlung der Größe des freien Speichers
          Rückgabe des Wertes in der Variablen FR

GOSUB 300 Umwandlung eines numerischen Wertes in einen String
          Übergabe des numerischen Wertes in der Variablen SR
          Rückgabe des Strings in der Variablen SR$
GOSUB 310 Analog zu GOSUB 300, zusätzliche Angaben:
          Übergabe einer festen Stringlänge in der Variablen CT
          Übergabe der Position des Dezimalpunkts in der Variablen CN
GOSUB 350 Ausgabe eines Strings auf dem Drucker
          Übergabe des Strings in der Variablen SR$
GOSUB 360 Ausgabe eines Zeilenumbruchs auf dem Drucker

Yderligere generelle specifikationer

En linje i et BASICODE-program kan bestå af op til 60 tegn, inklusive linienummer og mellemrum, og bør kun indeholde en sætning. Argumentet for de trigonometriske funktioner skal gives i radianer. De logiske operatorer AND og OR må ikke bruges i BASICODE til at linke numre bit for bit. Når du bruger strengfunktioner, skal du være opmærksom på forskelle i tegnsættet mellem forskellige computertyper. Variable navne kan være op til to tegn lange (et eller to store bogstaver eller et stort bogstav og et ciffer). Hver variabel skal tildeles en værdi, før den bruges første gang i kommandoer eller funktioner, da implicit initialisering ikke fungerer på alle typer computere. Numeriske variabler er enkelt præcision (seks gyldige cifre). Strengvariabler kan maksimalt være 255 tegn lange. Hvert BASICODE-program begynder i linje 1000. Fra linje nummer 30000 og frem er der kommentarer til programmet, fra linje 32000 og fremefter er der formelle fakta såsom navnet på forfatteren eller versionoplysninger.

BASICODE 3 / 3C

BASIC-kommandoer, funktioner og operatører tilladt i BASICODE 3 / 3C

Med hensyn til de elementer i det BASIC-sprog, der er tilladt i BASICODE, adskiller BASICODE 3 / 3C sig kun lidt fra BASICODE 2. Den vigtigste forskel er tilføjelsen af ​​DEF FN for at definere dine egne funktioner.

  • Kommandoer:
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
  • Funktioner:
ABS     ASC     ATN     COS     EXP     INT     LEN     LOG     SGN     SIN
SQR     TAN     VAL

CHR$    LEFT$   MID$    RIGHT$

AND     OR      NOT
  • Aritmetiske operatorer:
^ Potenzieren
* Multiplikation
/ Division
+ Addition und Verkettung von Stringvariablen
- Subtraktion
  • Sammenligningsoperatører:
=       <>      <       >       <=      >= 

Rutiner leveret af Bascoder i BASICODE 3 / 3C

Bascoder-underrutinerne er blevet udvidet betydeligt med BASICODE 3 / 3C sammenlignet med sin forgænger. Især udvidede de nyligt tilføjede muligheder for lydoutput (400), til arbejde med eksterne filer (500–580) og til grafisk visning (600–650) BASICODEs muligheder betydeligt.

GOTO   20 Programmstart, System-Reset, Löschen aller Variablen

GOSUB 100 Initialisieren des Textmodus, Löschen des Bildschirms
GOSUB 110 Setzen des Cursors an eine bestimmte Position
          Übergabe der Position in den Variablen HO und VE
GOSUB 120 Ermittlung der Position des Cursors
          Rückgabe der Position in den Variablen HO und VE
GOSUB 150 Auffälliges Anzeigen eines Strings auf dem Bildschirm
          (links und rechts drei Leerzeichen)
          Übergabe des Strings in der Variablen SR$

GOSUB 200 Auslesen eines Tastendrucks
          Rückgabe des Zeichens in der Variablen IN$
          Rückgabe einer leeren Variable IN$, wenn keine Taste gedrückt wurde
GOSUB 210 Warten auf einen Tastendruck
          Rückgabe des Zeichens in der Variablen IN$
GOSUB 220 Auslesen eines Zeichens vom Bildschirm
          Übergeben der Bildschirmposition in den Variablen HO und VE
          Rückgeben 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
          Rückgabe der Zahl in der Variablen RV
GOSUB 270 Ermittlung der Größe des freien Speichers
          Rückgabe des Wertes in der Variablen FR
GOSUB 280 Aus- bzw. Einschalten der STOP/BREAK-Taste
          Übergabe des gewünschten Status in der Variablen FR (FR=0 bzw. FR=1)

GOSUB 300 Umwandlung eines numerischen Wertes in einen String
          Übergabe des numerischen Wertes in der Variablen SR
          Rückgabe des Strings in der Variablen SR$
GOSUB 310 Analog zu GOSUB 300, zusätzliche Angaben:
          Übergabe einer festen Stringlänge in der Variablen CT
          Übergabe der Position des Dezimalpunkts in der Variablen CN
GOSUB 330 Umwandlung alle Kleinbuchstaben in einem String in Großbuchstaben
          Übergabe und Rückgabe des Strings in der Variablen SR$
GOSUB 350 Ausgabe eines Strings auf dem Drucker
          Übergabe des Strings in der Variablen SR$
GOSUB 360 Ausgabe eines Zeilenumbruchs auf dem Drucker

GOSUB 400 Ausgabe eines Tons
          Übergabe der Lautstärke, Dauer und Tonhöhe in den Variablen SV, SD und SP
GOSUB 450 Warten einer bestimmten Zeit auf einen Tastendruck
          Übergabe der Dauer in der Variablen SD (in 100-Millisekunden-Einheiten)

GOSUB 500 Öffnen einer Datei
          Übergabe des Namens in der Variablen NF$
          Festlegung eines Datei-Identifiers in der Variablen NF
GOSUB 540 Lesen eines Strings aus einer Datei
          Übergabe des Identifiers in der Variablen NF
          Rückgabe des Strings in der Variablen IN$
GOSUB 560 Schreiben eines Strings in eine Datei
          Übergabe des Identifiers in der Variablen NF
          Übergabe des Strings in der Variablen SR$
GOSUB 580 Schließen einer Datei
          Übergabe des Identifiers in der Variablen NF

GOSUB 600 Initialisieren des Grafikmodus, Löschen des Bildschirms
GOSUB 620 Setzen eines Punktes
          Übergabe der Position in den Variablen HO und VE
          Übergabe der Farbe in der Variablen CN
GOSUB 630 Zeichnen einer Linie ausgehend von der aktuellen Grafikposition
          Übergabe des Endpunktes in den Variablen HO und VE
          Übergabe der Farbe in der Variablen CN
          Festlegen der Grafikposition gegebenenfalls vorher durch das Setzen eines Punktes
GOSUB 650 Ausgabe eines Strings im Grafikmodus
          Übergabe der Position in den Variablen HO und VE
          Übergabe 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

Overførsel og returnering af positionsinformation i teksttilstand foregår i absolutte værdier. I grafiktilstand tildeles variablerne HO og VE imidlertid relative værdier. Dette betyder, at koordinaterne HO = 0,5 og VE = 0,5 skal overføres for at indstille et punkt midt på skærmen, HO = 0 og VE = 0 for det øverste venstre hjørne og HO for det nederste højre hjørne = 1 og VE = 1. Målet er at opnå et sammenligneligt output uanset den specifikke tilgængelige skærmopløsning.

Yderligere generelle specifikationer (ud over BASICODE 2-standarden)

Navnene på selvdefinerede funktioner, som variabelnavne, kan være op til to tegn lange. Definitionen af ​​dine egne strengefunktioner er ikke mulig i BASICODE. Programmet slutter med "GOTO 950", fordi kommandoerne KØR, SLUT og STOP er forbudt.

Følgende variabelnavne er ikke tilgængelige i BASICODE til brug i programmet:

- 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

Følgende variabler bruges af bascoderen, f.eks. Når argumenter sendes til bascoder-underrutinerne, eller når værdier returneres:

- A, CN, CT, FR, HG, HO, IN, IN$, NF, NF$, RV, SD, SP, SR, SR$, SV, VE, VG

litteratur

  • Michael Wiegand, Manfred Fillinger: BASICODE. Med programkassette. Ravensburger Buchverlag, Ravensburg 1986, ISBN 3-473-44010-8 .
  • Hermine Bakker, Jacques Haubrich (forfattere), Stichting BASICODE (red.): Het BASICODE-3 boek. 3. Udgave. Kluwer Technische Boeken BV, Deventer / Antwerpen 1988, ISBN 90-201-2111-1 .
  • Horst Völz: Basicode med programmer registreret til hjemmecomputere. Verlag Technik, Berlin 1990, ISBN 3-341-00895-0 .

Weblinks

Bemærkninger

  1. Billeder af posten i bunden
Denne artikel blev tilføjet til listen over fremragende artikler den 21. juni 2005 i denne version .