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
Die Einschaltmeldung von Structured BASIC.
Entwickler R. Standke, Rainer Hartwig
Firma Ariolasoft
Verleger Ariolasoft
Release 1984
Lizenz Vollversion
Plattform(en) C64
Genre BASIC-Erweiterung
Steuerung Icon tastatur.png
Medien Icon cartridge.png
Sprache(n) Sprache:englisch, Anleitung Sprache:deutsch
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).
? &11111 
31
$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).
? £F0 
240
$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.
                                 TEXT

? AT 35,0,"TEXT"
$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.
COLOUR 2,1,0
$fc DEC DEC( <Zahlenstring> ) Die Umrechnungsfunktion eines maximal vierstelligen Hexstrings in eine Dezimalzahl.
? DEC("1000") 
4096
$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.
? HEX$(15) 
0F
$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.

ABCDEF

POKE 1024,1,2,3 :REM AUSGABE ABC
POKE ,4,5,6 :REM FORTSETZUNG MIT DEF

POKE £D000,50,50: SPRITE0 X/Y-KOORD.
$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]

Die Originalverpackung
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]

376 seitiges deutschsprachiges Handbuch
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]

Schaltplan

Bildergalerie[Bearbeiten | Quelltext bearbeiten]


Cartridge
Platine Bestückungsseite
Platine Lötseite



Weblinks[Bearbeiten | Quelltext bearbeiten]