Eine Funktion ist eine veränderliche Größe, die in ihrem Wert von einer anderen abhängig ist, Werte können Strings, Zahlen oder mathematische Ausdrücke sein. Die Beispiele zeigen A (eine numerische Variable) oder A$ (eine Stringvariable), die gleich der Funktion sind; eine. Funktion kann jedoch fast überall dort gebraucht werden, wo man einen Wert verwenden würde, einschließlich in einer anderen Funktion.
ARITHMETISCHE FUNKTIONEN
ABS - Gibt den absoluten ("unsigned") Wert einer Zahl, z.B.:
A = ABS (B)
CLOG - Gibt den Logarithmus zur Basis 10, z.B.:
A = CLOG (B)
EXP - Gibt den Wert um den spezifizierten Faktor potenzierten von 'e'. Diese Funktion ist reziprok zur LOG Funktion, z.B.:
A = EXP (B)
INT - Gibt den ganzzahligen Wert eines Ausdrucks, z.B.:
A = INT (B)
LOG - Gibt den natürlichen Logarithmus eines Wertes. Diese Funktion ist reziprok zur EXP-Funktion.
RND - Gibt eine Zufallszahl, die gleich oder größer '0' und kleiner als 'l' ist (der Wert hat keinen Einfluss), z.B.:
A = RND (0)
A = RND (0)*8 (A = eine Zahl, die gleich oder größer als '0' und kleiner als '8' ist)
SGN - Gibt eine -1, falls der Wert negativ ist, eine 0, falls der Wert null ist und eine 1, falls er positiv ist, z.B.:
A = SGN (A)
SQR - Gibt die positive Quadratwurzel eines positiven Wertes, z.B.:
A = SQR (B)
TRIGONOMETRISCHE FUNKTIONEN
ATN - Gibt den arc. Tangens eines Wertes im Bogenmaß oder im Winkelmaß, z. B.:
A = ATN (B)
COS - Gibt den Cosinus eines Wertes, z.B.:
A = COS (B)
DEG -Alle folgenden trigonometrischen Funktionen werden im Winkelmaß verarbeitet, z. B.:
DEG
RAD - Alle trigonometrischen Funktionen werden im Bogenmaß verarbeitet, sofern nicht DEG auszuführen ist.
SIN - Gibt den Sinus des Wertes, z.B.:
A= SIN (B)
TAN - Gibt den Tangens eines Wertes.
BESONDERE FUNKTIONEN
ADR - Gibt die dezimale Speicheradresse des Anfangs einer Stringvariablen, z.B.:
A = ADR (B$)
A = ADR ("DIESES STRING")
FRE - Gibt den (dezimalen) Wert des verfügbaren RAM's, z.B.:
A = FRE (0) (Der Wert hat keinen Einfluss).
PRINT FRE (A)
PEEK - Gibt den Inhalt einer Speicherstelle, z.B.:
A = PEEK (B)
USR - Ruft Programmiersprachen-Subroutinen von BASIC ab, USR(ADDR, P1, P2, . . . , PN), beispielsweise, schiebt die Argumente (P1 zu PN) in umgekehrter Reihenfolge auf den Stack. Somit wird das letzte Argument "PN" vor dem ersten Argument "P1" auf den Stack geschoben.
Die Anzahl der Arguments - durch ein einziges Byte repräsentiert - wird daraufhin auf den Stack geschoben. Sind in der Funktion keine Argumente spezifiziert, wird Null auf den Stack geschoben. Daraufhin wird die Progrommiersprachen-Subroutine an der Adresse (ADDR) aufgerufen. Soll die Programmiersprachen-Routine zu einem Wert in BASIC zurückkehren, müssen die Low und High Bytes jeweils in den Speicherplätzen $D4 und $D5 gespeichert werden.
Die Routine muß die Argumentenzählung und die Argumente vor dem Zurückkeren zu BASIC entfernen, oder es kommt zu einem System-Crash. Beispiel:
A = USR(B,C,D) (Die Routine bei B wird aufgerufen, und die Parameter in C und D werden über den Stack zur Subroutine geleitet.)
STRING-FUNKTIONEN
ASC - Gibt den ATASCII-Wert für das erste Zeichen eines Strings, z.B.:
A = ASC ("A") - (A ist 65)
A = ASC (B$) (Stringvariablen sind auch gültig.)
CHR$ - Gibt das durch den angesprochenen ATASCII-Wert vertretene Zeichen. Reziproke Funktion von ASC, z.B.:
A$ = CHR$ (65) (A$ = "A")
LEN - Gibt die Lange der String variablen, z.B.:
A = LEN (A$)
STR$ - Gibt den String eines angesprochenen Wertes an. (formt eine Zahl in eine Kette um), z.B.:
A$ = STR$ (65) (A$ =”65”).
VAL - Gibt den Wert einer Zahl n, die eine bestimmte Kette darstellt. (formt eine Kette in eine Zahl um), z.B.:
A = VAL ("100") (A = 100).
STRING-VERARBEITUNG
Im ATARI-BASIC werden keine String-Variablenfelder (String-Arrays) verarbeitet. Trotzdem sind Verknüpfungen ("Concatenation") möglich, z. B.:
Substrings
50 A$ = "WOLFGANGSTEPHENDAVID"
60 B$ = A$ (9,16) (B$ ist "STEPHEN")
Verknüpfung (Concatenation)
50 A$ = "HALLO"
60 B$ = "FRED"
70 A$ (LEN (A$) + 1) = B$ (A$ ist "HALLO FRED")
Suche noch einem String
50 FOR Z = 1 TO LEN (A$)
60 IF A$ (Z,Z) = "E" THEN PRINT "AN EZ"
70 NEXT Z
STEUERGERÄTE FUNKTIONEN
PADDLE - Nennt die Position eines Paddles (Drehreglers). Die Paddles sind von vorn nach hinten von 0-3 nummeriert. Die erhaltene Zahl liegt je noch Stellung zwischen 1 (min.) und 228 (max.), z.B.:
A = PADDLE (0)
PTRIG - Gibt eine '0' bei gedrücktem oder eine 'l' bei nicht gedrücktem Paddle, z.B.:
A = PTRIG (0)
STICK - Nennt die Position eines Steuerknüppels (Joysticks). Die Steuerknüppel haben die Nummer(n) '0' und / oder '1', von vorne nach hinten, z.B.:
A = STICK (0) (siehe Zeichnung)
STRIG - Gibt eine '0' bei gedrücktem oder eine 'l' bei nicht gedrücktem Steuerknüppel. Die Steuerknüppel haben die Nummer '0' und/oder '1', z.B.:
A = STRIG (0)