Structured BASIC
Aus C64-Wiki
Zur Navigation springenZur Suche springen
Dieser Artikel beschreibt Structured BASIC von Ariolasoft. Außerdem gibt es Waterloo Structured BASIC von Watcom, das ebenfalls als Steckmodul vertrieben wurde, sowie Strubs.
| Structured BASIC | |
|---|---|
![]() | |
| Entwickler | R. Standke, Rainer Hartwig |
| Firma | Ariolasoft |
| Verleger | Ariolasoft |
| Release | 1984 |
| Lizenz | Vollversion |
| Plattform(en) | C64 |
| Genre | BASIC-Erweiterung |
| Steuerung | |
| Medien | |
| Sprache(n) | |
| Information | Preis: 189 DM (ca. 95 €) Cartridge-ID: 22 |
Structured BASIC ist eine BASIC-Erweiterung, die von R. Standke und Rainer Hartwig für den C64 entwickelt wurde. Sie erweitert den Befehlssatz des BASIC V2 um nützliche Kommandos und wurde 1984 von Ariolasoft vertrieben.
Befehlsübersicht[Bearbeiten | Quelltext bearbeiten]
Die neuen BASIC-Befehle dienen folgenden Zwecken:
- Funktionstastenbelegung
- Programmierung: Hilfen wie RENUMBER, Quellcodeanzeige, Fehlerbeseitigung, Schutzoptionen
- Erweiterte und zusätzliche numerische Funktionen
- Zusätzliche Disketten-Befehle
- Hochauflösende Grafiken auch im Farbmodus
- Befehle für die Manipulation des Textbildschirms
- Ergänzende Programmierbefehle zur strukturierten Programmierung
- DO...LOOPS mit 128 Ebenen
- Rekursive Programmaufrufe
- Vereinfachte Erstellung und Umgang mit Musik und Tönen
- Vereinfachter Umgang mit Eingabegeräten wie Paddles
- Gesamter Speicherraum 100KB durch externes ROM
| Token | Befehl | Format / Parameter | Beschreibung | Beispiel | |
|---|---|---|---|---|---|
| $fa | & | bis zu sechzehnstellige Binärzahl | Die Umrechnungsfunktion für Konstanten in Binärdarstellung zu entsprechenden Dezimalwerten ist als Präfix ausgeführt und kann in jedem numerischen Ausdruck verwendet werden. Das Zeichen & gefolgt von einem bis sechzehn Zeichen, die Binärziffern 0 und 1 enthalten, werden in die entsprechende Dezimalzahl umgerechnet (0 bis 65535). |
| |
| $f3 | £ | bis zu vierstellige Hexadezimalzahl | Die Umrechnungsfunktion für Konstanten in Hexdezimaldarstellung zu entsprechenden Dezimalwerten ist als Präfix ausgeführt und kann in jedem numerischen Ausdruck verwendet werden. Das Zeichen £ (Pfund) gefolgt von max. vier Zeichen, die Hexadezimalziffern 0 bis 9 und a bis f enthalten, werden in die entsprechende Dezimalzahl umgerechnet (0 bis 65535). |
| |
| $f9 | AT | PRINT AT <Spalte> , <Zeile> , <Ausdruck> [, | ;] ... | AT ist eine vom BASIC-V2-Befehl PRINT abhängige Anweisung, die den Cursor an eine definierte Stelle auf dem Bildschirm positioniert und einen oder mehrere Ausdrücke ausgibt. |
| |
| $da | BLOCK | ||||
| $f1 | CALL | ||||
| $ec | CATALOG | Mit CATALOG gibt der Interpreter das Inhaltsverzeichnis der Floppy in Laufwerk mit Geräteadresse 8 aus, ohne dass das aktuelle BASIC-Programm dabei gelöscht wird. CATALOG kann auch innerhalb eines Programms aufgerufen werden. | |||
| $d9 | CIRCLE | ||||
| $9c | CLR* | ||||
| $de | COLOUR | COLOUR [<Schriftfarbe>] [,<Hintergrundfarbe>] [,<Rahmenfarbe>] | Die Anweisung COLOUR setzt die drei Bildschirmfarben für Schrift, Hintergrund und Rahmen. Ohne Parameter werden die Standardfarben wiederhergestellt. |
| |
| $fc | DEC | DEC( <Zahlenstring> ) | Die Umrechnungsfunktion eines maximal vierstelligen Hexstrings in eine Dezimalzahl. |
| |
| $dd | DISK | ||||
| $d3 | DO | ||||
| $d5 | DRAW | ||||
| $ee | DUMP | ||||
| $cd | ELSE | ||||
| $80 | END* | ||||
| $e7 | ERROR | ||||
| $f0 | EXIT | ||||
| $e2 | FRAC | ||||
| $d7 | FRAME | ||||
| $8d | GOSUB* | ||||
| $89 | GOTO* | ||||
| $f4 | GRAPHICS | ||||
| $e5 | HELP | ||||
| $fb | HEX$ | HEX$( <Ausdruck> ) | Die Umrechnungsfunktion für Dezimal- oder Binärzahlen in Hexstrings. Die vorzeichenlose Zahl muss zwischen 0 und 65535 liegen und wird in den entsprechenden Hexstring umgewandelt. Ergebnisse im Bytebereich sind zweistellig, alle anderen vierstellig. Es wird kein Präfix erzeugt. |
| |
| $e1 | HIMEM | ||||
| $fd | IEC | ||||
| $8b | IF* | ||||
| $f5 | KEY | ||||
| $9b | LIST* | ||||
| $93 | LOAD* | ||||
| $cc | LOMEM | ||||
| $f2 | LOOP | ||||
| $ef | MEM | ||||
| $cf | MERGE | ||||
| $fe | MUSIC | ||||
| $a2 | NEW* | ||||
| $e0 | NOISE | ||||
| $df | NUMBER | ||||
| $e6 | OFF | ||||
| $91 | ON* | ||||
| $ea | PADDLE | ||||
| $d8 | PAINT | ||||
| $97 | POKE | POKE [<Speicheradresse>] , <Wert> [, <Wert>] ... | Hier wird der bereits vorhandene BASIC V2-Befehl POKE erweitert.
Es können nun weitere numerische Ausdrücke angegeben werden, bei der die Speicheradresse entsprechend erhöht wird. Die Speicheradresse ist optional. |
| |
| $e4 | POP | ||||
| $99 | PRINT* | ||||
| $f7 | PROC | ||||
| $d1 | PROTECT | ||||
| $f8 | QUIT | ||||
| $ce | RENEW | ||||
| $ed | RENUMBER | ||||
| $d0 | REPEAT | ||||
| $8c | RESTORE* | ||||
| $8a | RUN* | ||||
| $94 | SAVE* | ||||
| $db | SOUND | ||||
| $e8 | SPACE | ||||
| $e3 | SWAP | ||||
| $d6 | TEXT | ||||
| $dc | TRACE | ||||
| $eb | UNKEY | ||||
| $d2 | UNLOCK | ||||
| $f6 | UNTIL | ||||
| $95 | VERIFY* | ||||
| $e9 | WAVE | ||||
| $d4 | WHILE |
Speicherverwaltung[Bearbeiten | Quelltext bearbeiten]

| Adressbereich | Belegung |
| $0000-$03FF | Wie beim normalen BASIC |
| $0400-$07FF | Video-RAM bei normalem Betrieb |
| $0800-$7FFF | Speicher für Anwendungsprogramm, Variablen und Strings |
| $8000-$9FFF | Structured BASIC (Zwei umschaltbare 8KB-Bänke) |
| $A000-$BFFF | Standard BASIC |
| $C000-$C3FF | Video-RAM bei Grafik |
| $C400-$CFFF | ? |
| $D000-$DFFF | I/O und Farb-RAM |
| $E000-$FF3F | Grafik-Speicher |
| $FF40-$FFFF | freies RAM |
Geänderte Vektoren[Bearbeiten | Quelltext bearbeiten]

| Adresse | Bedeutung | Structured BASIC | Original |
|---|---|---|---|
| $0300-$0301 | BASIC Fehlermeldungen | $9FDB | $E38B |
| $0302-$0303 | Eingabe einer Zeile | $8E3F | $A483 |
| $0304-$0305 | Umwandlung in Interpretercode | $82F9 | $A57C |
| $0306-$0307 | Umwandlung in Klartext | $B238 | $A71A |
| $0308-$0309 | BASIC-Befehl ausführen | $853B | $A7E4 |
| $030A-$030B | Nächstes Element eines Ausdrucks holen | $9029 | $AE86 |
| $0316-$0317 | BRK-Interrupt | $80AA | $FE66 |
| $031E-$031F | CHKIN-Routine; Eingabe | $8489 | $F20E |
| $0320-$0321 | CHKOUT-Routine; Ausgabe | $8469 | $F250 |
| $0326-$0327 | CHROUT-Routine; Ausgabe eines Zeichens | $C806 | $F1CA |
| $032E-$032F | Warmstart-Vektor | $80AA | $FE66 |
Hardware[Bearbeiten | Quelltext bearbeiten]
Schaltplan[Bearbeiten | Quelltext bearbeiten]
Bildergalerie[Bearbeiten | Quelltext bearbeiten]
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Thema: Structured Basic (CRT?) auf Forum64.de




