Applesoft BASIC • Handleiding
Verklaring elementen
Controle variabelen
- CLEAR
- Alle variabelen wissen.
- [LET] variabele = omschrijving
- Toewijzing variabelen.
- DIM variabele( size [, size ...] ) [, variabele( size [, size ...] ) ...]
- Reeks(en) van variabelen toewijzen met gegeven waarde(en).
- DEF FN naam(variabele) = getalwaarde
- Definieer de functie van een enkele variabele.
Controle gegevensdoorvoer
- GOTO lijnnummer
- Ga naar lijnnummer.
- GOSUB lijnnummer
- Voer subroutine in bij regelnummer.
- RETURN
- Keer terug van subroutine.
- ON getalwaarde GOTO lijnnummer [, lijnnummer ...]
- Ga naar onderdeel op basis van getalwaarde (waarde = 1, 2, ...).
- ON getalwaarde GOSUB lijnnummer [, lijnnummer ...]
- Ga naar onderdeel op basis van getalwaarde (waarde = 1, 2, ...).
- POP
- Zet laatste waarde
GOSUB om in een GOTO.
- FOR variabele = getalwaarde TO getalwaarde [ STAP getalwaarde ]
- Lus met tellervariabele.
- NEXT [variabele [, variabele ...] ]
- Einde van de lus(sen).
- IF omschrijving THEN voer actie uit
- IF omschrijving GOTO lijnnummer
- Voorwaarde; Als de omschrijving niet waar is, de rest van de lijn overslaan.
- END
- Correct afsluiten programma.
- STOP
- Pauze/onderbreking, als er een fout is opgetreden.
Foutafhandeling
- ONERR GOTO lijnnummer
- Bij fout ga naar.
- RESUME
- Probeer opnieuw vanaf foutlocatie
ONERR GOTO.
Tekst Invoer/Uitvoer
- PRINT omschrijving [ [;,] omschrijving ... ] [;]
- Tekstuitvoer.
; Aaneenschakeling, , gaat door naar de volgende tabstop. Bij achterstand ; wordt nieuwe lijn actief.
Omschrijving inclusief SPC(getalwaarde) meerdere spaties, of TAB(getalwaarde) kolominsprong.
- INPUT [tekenreeks ;] variabele [, variabele ...]
- Lees regel met door komma's gescheiden invoer, met optionele prompt.
- GET variabele
- Lees enkelvoudige toetsenbordinvoer.
- HOME
- Maak scherm leeg.
- HTAB getalwaarde
- Cursorpositie → horizontaal (1...40 of 1...80).
- VTAB getalwaarde
- Cursorpositie → verticaal (1...24).
- INVERSE
- Stel uitvoer 'zwart op wit' in.
- FLASH
- Stel uitvoer 'knipperend' in.
- NORMAL
- Stel uitvoer 'wit op zwart' in.
- TEXT
- Zet scherm in tekstmode.
Lage grafische resolutie
- GR
- Stel schermweergave in op gemengde tekst/lage resolutie ("lores") grafische modus, helder scherm op zwart.
- COLOR= getalwaarde
- Stel lage resolutiekleur in (0...15).
- PLOT getalwaarde, getalwaarde
- Teken in lage resolutie een punt (x = 0...39, y = 0...39/47).
- HLIN getalwaarde, getalwaarde AT getalwaarde
- Teken horizontale lijn (x1, x2 op positie y).
- VLIN getalwaarde, getalwaarde AT getalwaarde
- Teken verticale lijn (y1, y2 at x).
Hoge grafische resolutie
- HGR
- Stel schermweergave in op gemengde/hoge resolutie ("hires") grafische modus, helder scherm op zwart.
- HGR2
- Stel schermweergave in hoge resolutie mode (pagina 2), maak scherm leeg en zwart.
- HPLOT [TO] getalwaarde, getalwaarde [ TO getalwaarde, getalwaarde ] ...
- Teken hoge resolutie punt/lijn (x=0...279, y=0...191).
- HCOLOR= getalwaarde
- Stel hoge resolutiekleur in (0...7).
Interne gegevens
- DATA waarde [, waarde ...]
- Definieer gegevens. Waarden kunnen tekens (tekenreeksen zonder aanhalingstekens), tekenreeksen of getallen zijn.
- READ variabele [, variabele ...]
- Lees de volgende gegevenswaarde.
- RESTORE
- Herstel de gegevensreeks vanaf waarde 1.
Allerlei
- REM [commentaar]
- Omschrijving in programma. Documentatie. De lijn wordt verder genegeerd bij programma-uitvoering.
- TRACE
- Schakel de traceermodus in (regelnummers worden weergegeven).
- NOTRACE
- Schakel traceermodus uit.
Hoge resolutie vormtabellen - NIET GEÏMPLEMENTEERD
- ROT= getalwaarde
- Stel vormtabel en specifieke draaihoek in (0...63).
- SCALE= getalwaarde
- Stel schaal van vormtabel in (1...255).
- DRAW getalwaarde [ AT getalwaarde, getalwaarde ]
- Teken de vorm volgens de tabel in kleur.
- XDRAW getalwaarde [ AT getalwaarde, getalwaarde ]
- Teken hoge resolutie volgens vormtabel met XOR-functie.
Uitvoerding en programmastatus - NIET GEÏMPLEMENTEERD
- CONT
- Ga verder na STOP.
- DEL
- Verwijder programmalijnen.
- LIST [ lijnnummer [, lijnnummer ] ]
- Tonen programmalijnen.
- NEW
- Programma en variabelen wissen.
- RUN [ lijnnummer ]
- Programma uitvoeren vanaf bepaalde lijn.
Oorspronkelijke platformactie - NIET GEÏMPLEMENTEERD
- HIMEM: getalwaarde
- Zet adrestoewijzing van RAM hoog.
- IN# getalwaarde
- Rechtstreekse invoer vanaf poort.
- LOMEM: getalwaarde
- Zet adrestoewijzing van RAM lager.
- WAIT getalwaarde, getalwaarde [, getalwaarde]
- Een voorwaardelijke pauze inlassen tot geheugenlocatie door tweede argument gelijk is aan derde argument (of nul).
Cassettebandje - NIET GEÏMPLEMENTEERD
- LOAD
- Programma inladen vanaf cassette.
- RECALL
- Variabelen inladen van cassette.
- SAVE
- Programma bewaren op cassette.
- STORE
- Variabelen stockeren op cassette.
- SHLOAD
- Een vormtabel van hoge resolutie laden vanaf cassette.
Bibliotheek compatibiliteit schermfuncties
- SPEED= getalwaarde
- Stel de tekenuitvoervertraging in — zonder effect.
- POKE getalwaarde, getalwaarde
- Stel geheugenlocatie in met een waarde.
POKE 32,n — Linker tekstgrens.
POKE 33,n — Tekstbreedte.
POKE 34,n — Tekstgrens boven.
POKE 35,n — Tekstgrens onder.
POKE 36,n — Tekstcursorcooödinaat x.
POKE 37,n — Tekstcursorcoördinaat y.
POKE 216,n — ONERR waarde (n < 128 zet ONERR uit).
POKE 230,n — Hoge resolutie tekenpagina (32 = pagina 1, 64 = pagina 2).
POKE 49168,0 or POKE -16368,0 — Toetsenbord snel instellen op startinstelling.
POKE 49200,0 or POKE -16336,0 — Luidpsrekerschakelaar (no-op).
POKE 49232,0 or POKE -16304,0 — Grafische modus.
POKE 49233,0 or POKE -16303,0 — Tekstmodus.
POKE 49234,0 or POKE -16302,0 — Volledige grafische modus.
POKE 49235,0 or POKE -16301,0 — Gemengde tekst- en grafische modus.
POKE 49236,0 or POKE -16300,0 — Scherm pagina 1.
POKE 49237,0 or POKE -16299,0 — Scherm pagina 2.
POKE 49238,0 or POKE -16298,0 — Lage resolutie grafische modus.
POKE 49239,0 or POKE -16297,0 — Hoge resolutie grafische modus.
- CALL getalwaarde
- Oproepen specifiek onderdeel (Routine).
CALL 54915 or CALL -10621 — Wissen stapel (alle locaties FOR/NEXT, GOSUB/RETURN, en ONERR/RESUME invoer).
CALL 62248 or CALL -3288 — Locatie ONERR/RESUME invoer van stapel.
CALL 62436 or CALL -3100 — Toon hoge resolutie pagina 1.
CALL 62450 or CALL -3086 — Wis huidige hoge resolutipagina naar zwart.
CALL 62454 or CALL -3082 — Wis huidige hoge resolutiepaginan naar huidige kleur.
CALL 64500 or CALL -1036 — Beweeg de cursor naar rechts.
CALL 64528 or CALL -1008 — Beweeg de cursor naar links.
CALL 64538 or CALL -998 — Beweeg de cursor naar boven.
CALL 64578 or CALL -958 — Wis tekst vanf cursor tot onderaan scherm.
CALL 64614 or CALL -922 — Beweeg cursor naar beneden.
CALL 64668 or CALL -868 — Wis tekst van cursor tot op einde van lijn.
CALL 64780 or CALL -756 — Wacht op een toetsenbordaanslag.
CALL 65152 or CALL -384 — Zet tekst in inverse modus.
CALL 65156 or CALL -380 — Zet tekst in nomale modus.
- PR# getalwaarde
- Rechtsreekse uitvoer naar poort.
PR#0 — zet 40-kolommen-modus.
PR#3 — zet 80-kolommen-modus.
Functies
Numerieke functies
- ABS( getalwaarde )
- Absolute getalwaarde.
- ATN( getalwaarde )
- Boogtangens van een getal.
- COS( getalwaarde )
- Cosinus van een getal.
- EXP( getalwaarde )
- Machtsverheffen van een getal.
- INT( getalwaarde )
- Geheel getal afronden.
- LOG( getalwaarde )
- Natuurlijk logaritme van een getal.
- RND( getalwaarde )
- Willekeurig getal genereren.
Als getalwaarde positief is geef dan een waarde tussen 0 to 0.999...
Als getalwaarde nul is herhaal het laatste resultaat.
Als getalwaarde negatief is, herstart de generator.
- SGN( getalwaarde )
- Tekenwaarde (-1, 0, 1).
- SIN( getalwaarde )
- Sinus van een getal.
- SQR( getalwaarde )
- Vierkantswortel van een getal.
- TAN( getalwaarde )
- Tangens van een getal.
Reeks functies
- LEN( geneste lijstgegevens )
- Lengte van de reeks.
- LEFT$( geneste lijstgegevens, getalwaarde )
- Linkerdeel van de (reeks, lengte).
- MID$( geneste lijstgegevens, getalwaarde [, getalwaarde] )
- Onderdceel van de (reeks, eerste teken, lengte).
- RIGHT$( geneste lijstgegevens, getalwaarde )
- Rechter deel van de (reeks, lengte).
Omzettingsfuncties
- ASC( geneste lijstgegevens )
- ASCII code voor het eerste teken van de reeks.
- CHR$( getalwaarde )
- Teken uit specifieke ASCII code.
- STR$( getalwaarde )
- Reeksvoorstelling van getal.
- VAL( geneste lijstgegevens )
- Zet omschrijving om in een getal.
Systeemfuncties - Actie hardware
- FRE( getalwaarde )
- Verzamelen restreeksen (levert 0 op).
- PDL( getalwaarde )
- Paddle positie (paddle nummer).
- POS( getalwaarde )
- Cursor positie horizaontraal.
- SCRN( getalwaarde, getalwaarde )
- Lage resolutiekleur voor specifieke pixel (x,y).
- USR( getalwaarde )
- Machinetaalcode van specifiek adres uitvoeren, gemaakte waarde tonen - NIET GEÏMPLEMENTEERD.
Definitie van gebruikersfuncties
- FN naam( omschrijving )
- Uitvoeren gebruikersfunctie.
Bibliotheek functiecompatibiliteit
- PEEK( getalwaarde )
- Value at memory location.
PEEK(32) — Tekstgrens scherm → links.
PEEK(33) — Tekst → schermbreedte.
PEEK(34) — Tekstgrens scherm → boven.
PEEK(35) — Tekstgrens scherm → beneden.
PEEK(36) — Cursor tekst → x.
PEEK(37) — Cursor tekst → y.
PEEK(78) & PEEK(79) — Veld willekeurig getal.
PEEK(222) — Laatste foutmelding (code).
PEEK(230) — Pagina hoge resolutie tekenen (32 = pagina 1, 64 = pagina 2).
PEEK(49152) or PEEK(-16384) — Lees toetsenborduitvoer.
PEEK(49168) or PEEK(-16368) — Wis toestenbordaanslag.
PEEK(49178) or PEEK(-16358) — Controleer op tekstmodus (> 127) of grafische modus (< 128).
PEEK(49179) or PEEK(-16357) — Controleer op gemengde modus (> 127) of complete modus (< 128).
PEEK(49180) or PEEK(-16356) — Controleer pagina 2 (> 127) of pagina 1 (< 128).
PEEK(49181) or PEEK(-16355) — Controleer hoge resolutiemodus (> 127) of lage resolutiemodus (< 128).
PEEK(49182) or PEEK(-16354) — Controleer muistekstmodus (> 127).
PEEK(49183) or PEEK(-16353) — Controleer 80-kolommenmodus (> 127).
PEEK(49200) or PEEK(-16336) — Luidsprekerklik.
PEEK(49248) or PEEK(-16288) — Lees paddelknop #3 — Gebruik pijltje naar beneden.
PEEK(49249) or PEEK(-16287) — Lees paddelknop #0 — Gebruik 'Home'-toets.
PEEK(49250) or PEEK(-16286) — Lees paddelnkop #1 — Gebruik 'End'-toets.
PEEK(49251) or PEEK(-16285) — Lees paddelknop #2 — Gebruik 'PageUp'- of 'Shift'-toets.
Bewerkingen
Vergelijkende bewerkingen
- =
- Is gelijk aan.
- <
- Kleiner dan.
- >
- Groter dan.
- <=
- =<
- Kleiner dan of gelijk aan.
- >=
- =>
- Groter dan of gelijk aan.
- <>
- ><
- Verschillend van.
Boolean functies - Strikt logisch functies
- AND
- EN → beide ingangen = 1 levert uitgang = 1 / één ingang of beide = 0 levert uitgang = 0.
- OR
- OF → ingangen in toestand = 1 levert uitgang = 1 / één 1 ingang 1 levert uitgang = 1 / beide ingangen = 0 levert uitgang = 0 .
- NOT
- Inverse → ingang = 0 levert uitgang = 1 / ingang = 1 levert uitgang = 0.
Wiskundige bewerkingen
- ^
- Machtsverheffen.
- *
- Vermenigvuldigen.
- /
- Delen.
- +
- Optellen.
- -
- Aftrekken.
Reeksfuncties
- +
- Reekskoppeling.
Voorrangsregels
Deze worden verticaal weergegeven in volgorde van prioriteit, van hoog naar laag. Bewerkingen op dezelfde regel hebben dezelfde prioriteit en worden in een uitdrukking van links naar rechts uitgevoerd. Deze volgorde verschilt van de volgorde in sommige andere dialecten van BASIC, maar komt wel overeen met Applesoft.
( ).
+ - NOT (enkelvoudige invoer).
^.
* /.
+ -.
= < > <= =< >= => <> ><.
AND.
OR.
Foutmeldingen
Foutmeldingen kunnen opgezocht worden met PEEK(222) in een ONERR-toestand.
- 0
- 'Next' zonder 'for'.
- 16
- Syntax error (foutcode) — Niet gegenereerd.
- 22
- 'Return' zonder 'gosub'.
- 42
- Buiten gegevensgrens.
- 53
- Foute waarde.
- 69
- Te hoge geheugengrens.
- 77
- Buiten geheugengrens — Niet gegenereerd door alle browsers.
- 90
- Ongedefineerde functie.
- 107
- Foute omschrijving.
- 120
- Opnieuw gedefinieerde reeks.
- 133
- Deling door nul.
- 163
- Tikfout.
- 176
- Reeks te lang — Niet gegenereerd.
- 191
- Formule te complex — Niet gegenereerd door alle browsers.
- 224
- Ongedefineerde functie.
- 254
- Opnieuw invoer.
- 255
- Pause.
DOS 3.3 / ProDOS - Kort overzicht
DOS Commando's
- MON[,C][,I][,O]
- Traceert de DOS 3.3 commando's ('Commands', 'Input' and 'Output').
- NOMON[,C][,I][,O]
- Stopt het traceren van DOS 3.3 commando's ('Commands', 'Input' and 'Output').
- OPEN bestandsnaam[,Llen]
- Opent tekstbestand.
- APPEND filename
- Toevoeging bij tekstbestand.
- CLOSE [filename]
- Sluiten van een specifiek of alle geopende tekstbestand(en).
- POSITION bestandsnaam[,Rnum]
- Verdergaan in tekstbestand.
- READ bestandsnaam[,Rnum][,Bbyte]
- Lezen van een tekstbestand.
- WRITE bestandsnaam[,Rnum][,Bbyte]
- Tekstbestand schrijven.
- DELETE filename
- Bestand wissen.
- RENAME naamorigineel,naamnieuw
- Bestand hernoemen.
- PR# poort
- Zie BASIC voor identieke omschrijving.
Andere DOS-commando's zijn NIET GEÏMPLEMENTEERD.
DOS Foutmeldingen
Foutmeldingen kunnen opgevraagd worden via PEEK(222) in een ONERR-toestand.
- 1
- Taal niet beschikbaar — Niet gegenereerd.
- 2
- Buiten grenzen — Niet gegenereerd.
- 4
- Schrijfbeveiligd — niet gegenereerd.
- 5
- Einde reeks bereikt.
- 6
- Bestand niet gevonden.
- 7
- Stationconflict — niet gegenereerd.
- 8
- I/O fout (Invoer/Uitvoer) — niet gegenereerd.
- 9
- Schijf vol — niet gegenereerd.
- 10
- Bestand vergrendeld — niet gegenereerd.
- 11
- Ongeldige waarde.
- 12
- Geen buffers ingesteld — niet gegenereerd.
- 13
- Fout bestandstype — niet gegenereerd.
- 14
- Programma te lang — niet gegenereerd.
- 15
- Geen direct commando — niet gegenereerd.
ASCII Tabel
Dec = Decimale Waarde
Char = Teken
Dec Char Dec Char Dec Char Dec Char
--------- --------- --------- ----------
0 NUL (nul) 32 SPACE 64 @ 96 `
1 SOH (start of heading) 33 ! 65 A 97 a
2 STX (start of text) 34 " 66 B 98 b
3 ETX (end of text) 35 # 67 C 99 c
4 EOT (end of transmission) 36 $ 68 D 100 d
5 ENQ (enquiry) 37 % 69 E 101 e
6 ACK (acknowledge) 38 & 70 F 102 f
7 BEL (bell) 39 ' 71 G 103 g
8 BS (backspace) 40 ( 72 H 104 h
9 TAB (horizontal tab) 41 ) 73 I 105 i
10 LF (NL line feed, new line) 42 * 74 J 106 j
11 VT (vertical tab) 43 + 75 K 107 k
12 FF (NP form feed, new page) 44 , 76 L 108 l
13 CR (carriage return) 45 - 77 M 109 m
14 SO (shift out) 46 . 78 N 110 n
15 SI (shift in) 47 / 79 O 111 o
16 DLE (data link escape) 48 0 80 P 112 p
17 DC1 (device control 1) 49 1 81 Q 113 q
18 DC2 (device control 2) 50 2 82 R 114 r
19 DC3 (device control 3) 51 3 83 S 115 s
20 DC4 (device control 4) 52 4 84 T 116 t
21 NAK (negative acknowledge) 53 5 85 U 117 u
22 SYN (synchronous idle) 54 6 86 V 118 v
23 ETB (end of trans. block) 55 7 87 W 119 w
24 CAN (cancel) 56 8 88 X 120 x
25 EM (end of medium) 57 9 89 Y 121 y
26 SUB (substitute) 58 : 90 Z 122 z
27 ESC (escape) 59 ; 91 [ 123 {
28 FS (file separator) 60 < 92 \ 124 |
29 GS (group separator) 61 = 93 ] 125 }
30 RS (record separator) 62 > 94 ^ 126 ~
31 US (unit separator) 63 ? 95 _ 127 DEL
ASCII Tabel - Uitgebreide versie