Waterloo Structured BASIC

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Dieser Artikel beschreibt Waterloo Structured BASIC von Watcom. Außerdem gibt es Structured BASIC von Ariolasoft, das ebenfalls als Steckmodul vertrieben wurde, sowie Strubs.

Waterloo Structured BASIC
Die Einschaltmeldung von Waterloo Structured BASIC.
Firma University of Waterloo
Verleger Watcom
Release 1984
Lizenz Vollversion
Plattform(en) C64
Genre BASIC-Erweiterung
Steuerung Icon tastatur.png
Medien Icon cartridge.png
Sprache(n) Sprache:englisch

Waterloo Structured BASIC (auch Waterloo BASIC) ist eine BASIC-Erweiterung, die von der Computer Systems Group der University of Waterloo ursprünglich 1978 für die IBM Series/1 entwickelt wurde. Später wurde Waterloo BASIC auch für die IBM-Serien 370, 3030 und 4300 sowie den Commodore PET, 8032, VC 20 und C64 angepasst.

Waterloo BASIC ist eine ziemlich schlanke Erweiterung (das ROM des Steckmoduls ist nur zu etwa 4 kBytes belegt). Im Vergleich zu anderen Erweiterungen bringt sie relativ wenige Befehle mit, die es in erster Linie ermöglichen, besser strukturierten BASIC-Code (z.B. ohne GOTOs) zu schreiben.

Eigenschaften[Bearbeiten | Quelltext bearbeiten]

Unterstützung von mehrzeiligen IF-Bedingungen (dann ohne THEN) sowie optionalem ELSE:

1 INPUT A
2 IF A > 10
3   PRINT"A IST"
4   PRINT"GROESSER 10"
5 ELSE
6   PRINT"A IST"
7   PRINT"KLEINER ODER GLEICH 10"
8 ENDIF

IF/ELSEIF/ELSE/ENDIF-Konstruktionen:

1 INPUT A%
2 IF A% > 10
3   PRINT"A% GROESSER 10"
4 ELSEIF A < 5
5   PRINT"A% KLEINER 5"
6 ELSE
7   PRINT"A% GROESSER 4 UND KLEINER 11"
8 ENDIF

LOOP/ENDLOOP-Konstruktion mit QUIT:

1 A=0
2 LOOP
3  A=A+1
4  PRINT A
5  IF A>5 THEN QUIT
6 ENDLOOP

...sowie WHILE/ENDLOOP, LOOP/UNTIL und WHILE/UNTIL-Konstruktionen und Unterprogrammaufrufe per CALL/PROC/ENDPROC.

Ferner werden die Befehle RENUMBER, DELETE und AUTO zur Verfügung gestellt.

QUIT kann nicht zum Verlassen von FOR-Loops benutzt werden.

QUIT muss zum ordnungsgemäßgen Funktionieren alleine in einer Zeile oder unmittelbar auf das THEN eines alleine in einer Zeile stehenden IFs stehen.

Das Verschachteln der jeweiligen neuen Konstruktionen ineinander wird unterstützt.

Technische Details[Bearbeiten | Quelltext bearbeiten]

Benutzte Token

  • $f3,$ff,$ff - IF
  • $f4,$ff,$ff - CALL
  • $f5,$ff,$ff - LOOP
  • $f6,$ff,$ff - ENDLOOP
  • $f7,$ff,$ff - UNTIL
  • $f8,$ff,$ff - WHILE
  • $f9,$ff,$ff - ELSEIF
  • $fa,$ff,$ff - ELSE
  • $fb,$ff,$ff - ENDIF
  • $fc,$ff,$ff - PROC
  • $fd,$ff,$ff - ENDPROC
  • $fe,$ff,$ff - QUIT

RENUMBER, DELETE und AUTO funktionieren nur im Direktmodus und werden nicht tokenisiert.

Weblinks[Bearbeiten | Quelltext bearbeiten]