Laser BASIC
Laser BASIC | |
---|---|
Entwickler | David Hunter |
Firma | Oasis Software |
Verleger | Ocean |
Release | 1985 |
Plattform(en) | C64, Amstrad CPC 464/664/6128, ZX Spectrum |
Genre | BASIC-Erweiterung |
Steuerung | |
Medien | , |
Sprache(n) | , Handbuch |
Laser BASIC ist eine BASIC-Erweiterung von Oasis Software mit über 200 neuen Befehlen, die besonders die Programmierung von Spielen unterstützt. Sie wurde von Ocean Software herausgegeben. Die letzte Version 1.3 für den Commodore 64 ist aus dem Jahr 1985.
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Zusammen mit dem mitgelieferten Editor für Software-Sprites und dem extra zu beziehenden Laser BASIC Compiler ist Laser BASIC ein leistungsfähiges Spiele-Entwicklungssystem für BASIC-Programmierer, von Ocean als The secret of advanced game programming beworben.
Das Programm wurde auf einer beidseitig beschriebenen Diskette bzw. zwei Kassetten ausgeliefert. Sie enthielten den BASIC-Interpreter, das Sprite-Generierungsprogramm "SPTGEN" mit drei Sprite-Bibliotheken und ein Demo in (Laser-)BASIC und in kompilierter Form. Dabei lag ein englischsprachiges Handbuch.
Bedienung[Bearbeiten | Quelltext bearbeiten]
Geladen und gestartet wird die BASIC-Erweiterung mit LOAD "LBI",8,1
von Diskette - dabei wird ein eigener Schnelllader benutzt (in Vice muss daher die True-Drive-Emulation aktiv sein) - bzw. mit LOAD "LBI",1,1
von Kassette.
Nach der Anzeige der Startgrafik erscheint ein Menü, in dem ausgewählt wird, welche der beiden Zusatzoptionen - "Turbo-Tape" oder "Multi-Tasking" - benutzt werden sollen. Je nach Auswahl wird der für das BASIC-Programm zur Verfügung stehende Speicherplatz verändert:
Modus | Turbo-Tape | Multi-Tasking | BASIC-Start | Bytes free |
1 | ON | ON | $5B01 | 17661 |
2 | OFF | ON | $5801 | 18429 |
3 | ON | OFF | $5101 | 20221 |
4 | OFF | OFF | $4E01 | 20989 |
Achtung: ist Multi-Tasking deaktiviert (Modus 3 oder 4), sind nicht nur die Mulit-Tasking-Befehle, sondern auch RENUM, AUTO und OLD nicht mehr benutzbar!
Dem Programmierer stehen nun mehr als 200 neue Befehle und Funktionen aus den Bereichen Toolkit, strukturierte Programmierung, Sound und Grafik zur Verfügung. Ein ausführliches Studium des Handbuchs ist notwendig, um mit dieser Fülle von Möglichkeiten sinnvoll arbeiten zu können.
Unterschiede zum Standard-BASIC[Bearbeiten | Quelltext bearbeiten]
Die Befehle des BASIC V2 sind unter Laser BASIC wie gewohnt zu benutzen, wenn man einige Ausnahmen beachtet.
- Abkürzungen von Standard-Befehlen mit <SHIFT>, wie z.B.
chR
stattchr$
, funktonieren nicht mehr.
- Statt dessen müssen die neuen Abkürzungen mit dem Punkt am Ende (siehe Tabelle der Schlüsselwörter) benutzt werden,
- im obigen Beispiel also
CHR$
→CH.
Im Vergleich zu BASIC V2 neue bzw. geänderte Befehle ohne neues Schlüsselwort:
- LIST: Syntax geändert, Komma statt Minuszeichen:
LIST 100-
→LIST 100,
LIST 10-50
→LIST 10,50
LIST -1000
→LIST,1000
- Ausgabe eines BASIC-Listings:
- Auf dem Schirm werden die Zeilen um drei Zeichen eingerückt angezeigt. Der Modus Klein-/Großschrift wird benutzt, wobei Schlüsselwörter zur besseren Lesbarkeit durch Großschrift hervorgehoben sind. Die Ausgabe des Listings kann mit der Leertaste angehalten oder wieder wieder fortgesetzt werden.
- Bei der Ausgabe mit dem Drucker (hier Gerät 4) sind zwei Dinge zu beachten:
- Vor dem Listen sollte der Text mit UCASE auf Groß-/Grafikzeichen gestellt werden.
- Der übliche Code
OPEN4,4:CMD4:LIST:CLOSE4
führt unter Laser BASIC − nicht jedoch unter BASIC Lightning − zu einem SYNTAX ERROR. Es geht aber:
OPEN4,4:CMD4:LIST
CLOSE4
- PRINT erweitert mit "PRINT AT":
PRINT@x,y"Text" : 'schreibt Text in Spalte x, Zeile y
- Hochkomma als alternatives REM
10 ' Kommentar
Software-Sprites[Bearbeiten | Quelltext bearbeiten]
Die weitaus größte Zahl der Befehle gehört zum Bereich Grafik.
Die beim C64 bekannten 24x21 Pixel großen Sprites werden unter Laser BASIC "Hardware-Sprites" genannt. Daneben verwaltet Laser BASIC bis zu 254 "Software-Sprites" (Nummer 1 bis 254), die aus Kacheln in beliebiger Form zusammengesetzt sind - das Maximum für Höhe und Breite ist jeweils 255 Kacheln. In der Standardkonfiguration reserviert Laser BASIC für sie einen Speicherplatz von 7 KByte. Sprite Nummer 0 ist immer dem Grafikschirm zugeordnet, Sprite Nr. 255 dem Textschirm. Mit dem Programm "SPTGEN" werden Software-Sprites entworfen, mit den vielen Grafik-Befehlen können sie im Programm auf nahezu jede denkbare Art manipuliert werden.
Grafiktest[Bearbeiten | Quelltext bearbeiten]
Mit dem Testprogramm aus dem Artikel HSG wird die Geschwindigkeit der Grafikroutinen (Kreise und Linien malen) verglichen. Das Programm sieht in Laser BASIC so aus:
10 INIT:PRINT CHR$(147)"LASER-BASIC-DEMO":PRINT 15 GOSUB 210 20 FGND WHITE:BGND BLACK:ATTON:SCLR 0,ATTR:HIRES:HBORDER .BLUE:I=10 30 FORX=5TO165STEPI:POLY 0,159,99,X,165=X,0,0:NEXTX 40 GOSUB 230:T1$=TM$:GOSUB210 50 SCLR 0,ATR:FGND RED:HBORDER GRAY3 60 FORX=0TO149 STEP10+I 70 FORY=189 TO 0 STEP-10-I 80 DRAW 0,X,Y,310-X,190-Y 90 NEXTY,X 100 GOSUB230:T2$=TM$:INIT 120 PRINT "KREISE ";T1$;" SEC" 130 PRINT "LINIEN ";T2$;" SEC" 140 PRINT "TASTE"":WAIT 198,1:END 200 REM:INIT TOD CLOCK 210 FORI=2TO3:POKE56331-I,0:NEXT:RETURN 220 REM:READ TOD CLOCK 230 TM$="":FORI=2TO3:T(I)=PEEK(56331-I) 240 TM$=TM$+CHR$(48+(T(I)AND240)/16)+CHR$(48+(T(I)AND15))+"," 250 NEXTI:TM$=LEFT$(TM$,5):RETURN
Angaben in Sekunden.
Erweiterung | Simons' Basic | Supergrafik | HSG | Laser Basic | ||
Disk | Modul | BASIC | Kompilat | |||
Kreise | 35,01 | 34,06 | 4,02 | 1,03 | 15,00 | 14,06 |
Linien | 18,06 | 15,05 | 9,06 | 4,03 | 10,09 | 8,08 |
Die Grafikroutinen von Laser BASIC werden offenbar durch das Kompilieren nicht mehr beschleunigt. Im Vergleich ist Laser BASIC deutlich schneller als Simons' Basic, kommt aber beim Zeichnen der Kreise nicht an Supergrafik oder gar HSG heran.
Speicherbereiche[Bearbeiten | Quelltext bearbeiten]
Geänderte Vektoren[Bearbeiten | Quelltext bearbeiten]
Adresse | Bedeutung | Start |
---|---|---|
$0300-$0301 | BASIC-Warmstart | $31CF |
$0302-$0303 | Eingabe einer Zeile | $397B |
$0304-$0305 | Umwandlung in Interpretercode | $3B14 |
$0308-$0309 | BASIC-Befehlsadresse holen | $3285 |
$030A-$030B | Ausdruck auswerten | $4399 |
$0314-$0315 | IRQ-Vektor | $0895 |
$0316-$0317 | BRK-Vektor | $3370 |
$0318-$0319 | NMI-Vektor | $3352 |
$031A-$031B | OPEN-Vektor | $0811 |
$031C-$031D | CLOSE-Vektor | $081C |
$0324-$0325 | INPUT-Vektor | $07F5 |
$0326-$0327 | OUTPUT-Vektor | $07FE |
$0328-$0329 | STOP-Vektor | $312B |
$032A-$032B | GET-Vektor | $0830 |
$0330-$0331 | LOAD-Vektor | $0839 |
$0332-$0333 | SAVE-Vektor | $0844 |
Speicherverteilung[Bearbeiten | Quelltext bearbeiten]
$03FE-$05FF | Diverse Speicherstellen für Grafik-Befehle |
$0600-$57FF | * Laser BASIC Interpreter |
$5800-$9FFF | * BASIC-Programm und Variablen (Modus 1-4: $5B01, $5801, $5101, $4E01) |
$A000-$BBFF | * Software-Sprites |
$BC00-$BFFF | Diverse Speicherstellen für Grafik-Befehle |
$C000-$C7FF | Zeichensatz und/oder Hardware-Sprites |
$C800-$CBFF | Textschirm |
$CC00-$CFFF | Farbinformation (1. Attribute) für Hires-Grafik |
$D000-$D7FF | I/O |
$D800-$DBFF | Farb-RAM (2. Attribute) für Text- bzw. Hires-Schirm |
$DC00-$DFFF | I/O |
$E000-$FFFF | Hires Bitmap |
$E000-$FFFF | Kernal |
(*) Diese können variieren, abhängig davon, ob Multi-Tasking oder Turbo-Tape gewählt wurde und ob RESERVE benutzt worden ist.
Laser BASIC Handbuch[Bearbeiten | Quelltext bearbeiten]
Das über 200 Seiten starke englischsprachige Handbuch dokumentiert ausführlich die Befehle, Funktionen und Schlüsselwörter von Laser BASIC. Leider ist es auf farbigem Papier gedruckt, was früher einmal ein Schutz gegen unerlaubtes Kopieren darstellte.
Das Inhaltsverzeichnis des Handbuchs:
CONTENTS
1. INTRODUCTION Loading Laser BASIC: tape users disk users
2. STRUCTURED PROGRAMMING
2.1 IF-THEN-ELSE 2.2 CIF-CELSE-CEND 2.3 Labels 2.4 REPEAT-UNTIL 2.5 WHILE-WEND 2.6 EXIT 2.7 CASE-OF-CASEND 2.8 Procedures 2.9 VAR Parameters 2.10 Arrays as Parameters 2.11 Multiple-Line Functions
3. TOOLKIT COMMANDS AND MISCELLANEOUS KEYWORDS
3.1 Hexadecimal Numbers 3.2 Double-Byte PEEK and POKE 3.3 Turning off the Stop Key 3.4 Loading and Saving Programs with Disk 3.5 Popping a Return Address 3.6 PI 3.7 Printing a Disk Directory 3.8 Recovering a NEWed Program 3.9 Automatic Line Numbering 3.10 Renumbering a Program
4. GRAPHICS COMMANDS
4.1 Graphics Modes 4.2 Sprites 4.3 Sprite Utilities 4.4 Sprite Variables 4.5 SAVING and LOADING Sprites 4.6 Setting up the Display 4.7 HIRES Graphics Commands 4.8 Sprite 'Block Move' Commands 4.9 Sprite Transformations and Other Miscellaneous Commands 4.10 Scrolling Commands 4.11 Reading the Keyboard, Joystick and Llghtpen 4.12 Character Set Manipulation 4.13 Hardware Sprites 4.14 Miscellaneous Commands 4.15 Character Sprites and Smooth Scrolling
5. SOUND COMMANDS
5.1 Initialising the SID 5.2 Setting the Master Volume 5.3 Setting the Frequency 5.4 Setting the Envelope 5.5 Setting the Waveform 5.6 Making a Sound 5.7 Playing Music under Interrupt 5.8 Filtering 5.9 Ring Modulation 5.10 Synchronisation 5.11 Dynamic Effects
6. MULTI TASKING
6.1 Allocating Memory 6.2 Starting a Concurrent Task 6.3 Stopping a Concurrent Task 6.4 Error Messages with Multi-Tasking 6.5 Communication between Tasks 6.6 Using Multi-Tasking with Graphics
7. THE SPRITE GENERATOR PROGRAM
7.1 Glossary 7.2 MODE:1 7.3 MODE:2 7.4 MODE:3 7.5 MODE:4 7.6 MODE:5 7.7 A Sample Session with the Sprite Generator 7.8 Function Key Summary
APPENDIX A: LASER BASIC KEYWORD SUMMARY
APPENDIX B: ERROR MESSAGES
APPENDIX C: DIFFERENCES BETWEEN BASIC LIGHTNING AND LASER BASIC
APPENDIX D: GLOSSARY OF TERMS
APPENDIX E: SCREEN DISPLAY CODES
APPENDIX F: ASCII AND CHR$ CODES
APPENDIX G: MEMORY MAP
APPENDIX H: SPRITE LIBRARY - "SPRITESA" "SPRITESB" "SPRITESC"
APPENDIX I: MUSIC NOTE VALUES
Schlüsselwörter[Bearbeiten | Quelltext bearbeiten]
Da bei den Schlüsselwörtern des BASIC V2 (Token 128 bis 255) unter Laser BASIC die Abkürzungen geändert wurden, sind sie hier auch mit aufgeführt.
Nr. | Token | Schlüsselwort | Abk. |
BASIC V2 | |||
128 | $80 | END | E. |
129 | $81 | FOR | F. |
130 | $82 | NEXT | N. |
131 | $83 | DATA | D. |
132 | $84 | INPUT# | I. |
133 | $85 | INPUT | - |
134 | $86 | DIM | DI. |
135 | $87 | READ | R. |
136 | $88 | LET | L. |
137 | $89 | GOTO | G. |
138 | $8A | RUN | RU. |
139 | $8B | IF | - |
140 | $8C | RESTORE | RES. |
141 | $8D | GOSUB | GOS. |
142 | $8E | RETURN | RE. |
143 | $8F | REM | - |
144 | $90 | STOP | ST. |
145 | $91 | ON | O. |
146 | $92 | WAIT | W. |
147 | $93 | LOAD | LO. |
148 | $94 | SAVE | SA. |
149 | $95 | VERIFY | V. |
150 | $96 | DEF | DE. |
151 | $97 | POKE | P. |
152 | $98 | PRINT# | PR. |
153 | $99 | ? | |
154 | $9A | CONT | C. |
155 | $9B | LIST | LI. |
156 | $9C | CLR | CL. |
157 | $9D | CMD | CM. |
158 | $9E | SYS | SY. |
159 | $9F | OPEN | OP. |
160 | $A0 | CLOSE | CLO. |
161 | $A1 | GET | GE. |
162 | $A2 | NEW | NE. |
163 | $A3 | TAB( | T. |
164 | $A4 | TO | - |
165 | $A5 | FN | - |
166 | $A6 | SPC( | SP. |
167 | $A7 | THEN | TH. |
163 | $A8 | NOT | NO. |
169 | $A9 | STEP | S. |
170 | $AA | + | - |
171 | $AB | - | - |
172 | $AC | * | - |
173 | SAD | / | - |
174 | $AE | ^ | - |
175 | $AF | AND | A. |
176 | $B0 | OR | - |
177 | $B1 | > | - |
178 | $B2 | = | - |
179 | $B3 | < | - |
180 | $B4 | SGN | SG. |
181 | $B5 | INT' | - |
182 | $B6 | ABS | AB. |
183 | $B7 | USR | US. |
184 | $B8 | FRE | FR. |
185 | $B9 | POS | - |
186 | $BA | SQR | SQ. |
187 | $BB | RND | RN. |
188 | $BC | LOG | - |
189 | $BD | EXP | EX. |
190 | $BE | COS | - |
191 | $BF | SIN | SI. |
192 | $C0 | TAN | - |
193 | $C1 | ATN | AT. |
194 | $C2 | PEEK | PE. |
195 | $C3 | LEN | - |
196 | $C4 | STR$ | STR. |
197 | $C5 | VAL | VA. |
198 | $C6 | ASC | AS. |
199 | $C7 | CHR$ | CH. |
200 | $C8 | LEFT$ | LEF. |
201 | $C9 | RIGHT$ | RI. |
202 | $CA | MID$ | M. |
203 | $CB | GO | - |
Laser BASIC | |||
204 | $CC | ELSE | EL. |
205 | $CD | HEX$ | H. |
206 | $CE | DEEK | DEE. |
207 | $CF | TRUE | TR. |
208 | $D0 | IMPORT | TM. |
209 | $D1 | CFN | CF. |
210 | $D2 | SIZE | SIZ. |
211 | $D3 | FALSE | FA. |
212 | $D4 | SFRE | SF. |
213 | $D5 | LPX | LP. |
214 | $D6 | LPY | - |
215 | $D7 | COMMON% | COM. |
216 | $D8 | CROW | CR. |
217 | $D9 | CCOL | CC. |
218 | $DA | ATR | - |
219 | $DB | INC | - |
220 | $DC | NUM | NU. |
221 | $DD | ROW2 | RO. |
222 | $DE | COL2 | COL. |
223 | $DF | SPN2 | SPN. |
224 | $E0 | HGT | HG. |
225 | $E1 | WID | WI. |
226 | $E2 | ROW | - |
227 | $E3 | COL | - |
228 | $E4 | SPN | - |
229 | $E5 | TASK | TAS. |
230 | $E6 | HALT | HA. |
231 | $E7 | REPEAT | REP. |
232 | $E8 | UNTIL | UN. |
233 | $E9 | WHILE | WH. |
234 | $EA | WEND | WE. |
235 | $EB | CIF | CI. |
236 | $EC | CELSE | CE. |
237 | $ED | CEND | CEN. |
238 | $EE | LABEL | LA. |
239 | $EF | DOKE | DO. |
240 | $F0 | EXIT | EX. |
241 | $F1 | ALLOCATE | AL. |
242 | $F2 | DISABLE | DIS. |
243 | $F3 | PULL | PU. |
244 | $F4 | DLOAD | DL. |
245 | $F5 | DSAVE | DS. |
246 | $F6 | VAR | - |
247 | $F7 | LOCAL | LOC. |
248 | $F8 | PROCEND | PRO. |
249 | $F9 | PRCC | - |
250 | $FA | CASEND | CA. |
251 | $FB | OF | - |
252 | $FC | CASE | - |
253 | $FD | RPT | RP. |
254 | $FE | SETATR | SE. |
255 | $FF | PI | - |
Nr. | Token | Schlüsselwort | Abk. |
1,0 | $01 $00 | unbenutzt | |
1,1 | $01 $01 | SCLR | SC. |
1,2 | $01 $02 | SPRITE | SPR. |
1,3 | $01 $03 | WIPE | WIP. |
1,4 | $01 $04 | RESET | RESE. |
1,5 | $01 $05 | H3COL | H3C. |
1,6 | $01 $06 | LORES | LOR. |
1,7 | $01 $07 | HIRES | HI. |
1,8 | $01 $08 | PLOT | PL. |
1,9 | $01 $09 | BOX | BO. |
1,1 | $01 $0A | POLY | POL. |
1,11 | $01 $0B | DRAW | DR. |
1,12 | $01 $0C | MODE | MO. |
1,13 | $01 $0D | S2COL | S2. |
1,14 | $01 $0E | S4COL | S4. |
1,15 | $01 $0F | H40COL | H4. |
1,16 | $01 $10 | SCRX | SCR. |
1,17 | $01 $11 | WRR1 | WR. |
1,18 | $01 $12 | WRL1 | WRL. |
1,19 | $01 $13 | SCR1 | - |
1,20 | $01 $14 | SCL1 | - |
1,21 | $01 $15 | WRR2 | - |
1,22 | $01 $16 | WRL2 | - |
1,23 | $01 $17 | SCR2 | - |
1,24 | $01 $18 | SCL2 | - |
1,25 | $01 $19 | WRR8 | - |
1,26 | $01 $1A | WRL8 | - |
1,27 | $01 $1B | SCR8 | - |
1,28 | $01 $1C | SCL8 | - |
1,29 | $01 $1D | ATTR | ATT. |
1,30 | $01 $1E | ATTL | - |
1,31 | $01 $1F | ATTUP | ATTU. |
1,32 | $01 $20 | ATTDN | ATTD. |
1,33 | $01 $21 | CHAR | CHA. |
1,34 | $01 $22 | WINDOW | WIN. |
1,35 | $01 $23 | MULTI | MU. |
1,36 | $01 $24 | MONO | MON. |
1,37 | $01 $25 | TBORDER | TB. |
1,38 | $01 $26 | HBORDER | HB. |
1,39 | $01 $27 | TPAPER | TP. |
1,40 | $01 $28 | HPAPER | HP. |
1,41 | $01 $29 | WRAP | WRA. |
1,42 | $01 $2A | SCROLL | SCRO. |
1,43 | $01 $2B | INK | - |
1,44 | $01 $2C | SETA | - |
1,45 | $01 $2D | ATTGET | ATTG. |
1,46 | $01 $2E | ATT20N | ATT2. |
1,47 | $01 $2F | ATTON | ATTO. |
1,48 | $01 $30 | ATTOFF | ATTOF. |
1,49 | $01 $31 | MIR | - |
1,50 | $01 $32 | MAR | MA. |
1,51 | $01 $33 | WCLR | WC. |
1,52 | $01 $34 | INV | - |
1,53 | $01 $35 | SPIN | SPI. |
1,54 | $01 $36 | MOVBLK | MOV. |
1,55 | $01 $37 | MOVXOR | MOVX. |
1,56 | $01 $38 | MOVAND | MOVA. |
1,57 | $01 $39 | MOVOR | MOVO. |
1,58 | $01 $3A | MOVATT | MOVAT |
1,59 | $01 $3B | EXX | - |
1,60 | $01 $3C | EXY | - |
1,61 | $01 $3D | GETBLK | GET. |
1,62 | $01 $3E | POTBLK | PUT. |
1,63 | $01 $3F | CPYBLK | CP. |
1,64 | $01 $40 | GETXOR | GETX. |
1,65 | $01 $41 | PUTXOR | PUTX. |
1,66 | $01 $42 | CFYXOR | CPYX. |
1,67 | $01 $43 | GETOR | GETO. |
1,68 | $01 $44 | PUTOR | PUTO. |
1,69 | $01 $45 | CPYOR | CPYO. |
1,70 | $01 $46 | GETAND | GETA. |
1,71 | $01 $47 | PUTAND | PUTA. |
1,72 | $01 $48 | CPYAND | CPYA. |
1,73 | $01 $49 | DBLANK | DB. |
1,74 | $01 $4A | DSHOW | DSH. |
1,75 | $01 $4B | PUTCHR | PUTC. |
1,76 | $01 $4C | LCASE | LC. |
1,77 | $01 $4D | UCASE | UC. |
1,78 | $01 $4E | CONV | - |
1,79 | $01 $4F | HON | HO. |
1,80 | $01 $50 | HOFF | HOF. |
1,81 | $01 $51 | HSET | HS. |
1,82 | $01 $52 | FLIPA | EL. |
1,83 | $01 $53 | H4COL | H4. |
1,84 | $01 $54 | H2COL | H2. |
1,85 | $01 $55 | H1COL | H1. |
1,86 | $01 $56 | H3COL | H3C. |
1,87 | $01 $57 | HEXX | - |
1,88 | $01 $58 | HSHX | HSH. |
1,89 | $01 $59 | HEXY | - |
1,90 | $01 $5A | HSHY | - |
1,91 | $01 $5B | HX | - |
1,92 | $01 $5C | HY | - |
1,93 | $01 $5D | HCOL | HC. |
1,94 | $01 $5E | OVER | OV. |
1,95 | $01 $5F | UNDER | UND. |
1,96 | $01 $60 | SWAPATT | SW. |
1,97 | $01 $61 | DTCTON | DT. |
1,98 | $01 $62 | DTCTOFF | DTCTOF. |
1,99 | $01 $63 | BLK%BLK | BLK. |
1,100 | $01 $64 | OR%BLK | OR. |
1,101 | $01 $65 | AND%BLK | AND. |
1,102 | $01 $66 | XOR%BLK | XO. |
1,103 | $01 $67 | BLK%OR | BLK%0. |
1,104 | $01 $68 | OR%OR | OR%0. |
1,105 | $01 $69 | AND%OR | AND%0. |
1,106 | $01 $6A | XOR%OR | XOR%0. |
1,107 | $01 $6B | BLK%AND | BLK%A. |
1,108 | $01 $6C | OR%AND | OR%A. |
1,109 | $01 $6D | AND%AND | AND%A. |
1,110 | $01 $6E | XOR%AND | XOR%A. |
1,111 | $01 $6F | BLK%XOR | BLK%X. |
1,112 | $01 $70 | OR%XOR | OR%X. |
1,113 | $01 $71 | AND%XOR | AND%X. |
1,114 | $01 $72 | XOR%XOR | XOR%X. |
1,115 | $01 $73 | TEXT | TE. |
1,116 | $01 $74 | FLIP | - |
1,117 | $01 $75 | HIT | - |
1,118 | $01 $76 | SCAN | SCA. |
1,119 | $01 $77 | POINT | POI. |
1,120 | $01 $78 | DFA | DF. |
1,121 | $01 $79 | AFA2 | AF. |
1,122 | $01 $7A | AFA | - |
1,123 | $01 $7B | KB | - |
1,124 | $01 $7C | FIRE1 | FI . |
1,125 | $01 $7D | FIRE2 | - |
1,126 | $01 $7E | JS1 | - |
1,127 | $01 $7F | JS2 | J. |
Nr. | Token | Schlüsselwort | Abk. |
2,0 | $02 $00 | unbenutzt | |
2,1 | $02 $01 | BLACK | BLA. |
2,2 | $02 $02 | WHITE | WHIT. |
2,3 | $02 $03 | RED | - |
2,4 | $02 $04 | CYAN | CY. |
2,5 | $02 $05 | PURPLE | PUR. |
2,6 | $02 $06 | GREEN | GR. |
2,7 | $02 $07 | BLUE | BLU. |
2,8 | $02 $08 | YELLOW | Y. |
2,9 | $02 $09 | ORANGE | ORA. |
2,10 | $02 $0A | BROWN | BR. |
2,11 | $02 $0B | .RED | .R. |
2,12 | $02 $0C | GRAY1 | GRA. |
2,13 | $02 $0D | GRAY2 | - |
2,14 | $02 $0E | .GREEN | .G. |
2,15 | $02 $0F | .BLUE | .B. |
2,16 | $02 $10 | GRAY3 | - |
2,17 | $02 $11 | OSC | OS. |
2,18 | $02 $12 | ENV | - |
2,19 | $02 $13 | FRQ | - |
2,20 | $02 $14 | NOISE | NOI. |
2,21 | $02 $15 | PULSE | PULS. |
2,22 | $02 $16 | SAW | - |
2,23 | $02 $17 | TRI | - |
2,24 | $02 $18 | RING | RIN. |
2,25 | $02 $19 | SYNC | SYN. |
2,26 | $02 $1A | MUSIC | MUS. |
2,27 | $02 $1B | ADSR | AD. |
2,28 | $02 $1C | FILTER | FIL. |
2,29 | $02 $1D | MUTE | MUT. |
2,30 | $02 $1E | VOLUME | VO. |
2,31 | $02 $1F | CUTOFF | CU. |
2,32 | $02 $20 | RESONANCE | RESO. |
2,33 | $02 $21 | PASS | PAS. |
2,34 | $02 $22 | SCRY | SCR. |
2,35 | $02 $23 | RECALL | REC. |
2,36 | $02 $24 | STORE | STOR. |
2,37 | $02 $25 | SIDCLR | SID. |
2,38 | $02 $26 | MERGE | ME. |
2,39 | $02 $27 | RESEQ | - |
2,40 | $02 $28 | MEM | - |
2,41 | $02 $29 | OLD | - |
2,42 | $02 $2A | DIR | - |
2,43 | $02 $2B | DSTORE | DST. |
2,44 | $02 $2C | DRECALL | DRE. |
2,45 | $02 $2D | DMERGE | DM. |
neu in LASER BASIC: | |||
2,50 | $02 $32 | AUTO | AU. |
2,51 | $02 $33 | RENUM | REN. |
2,53 | $02 $35 | CSPRITE | CS. |
2,54 | $02 $36 | CPUT | CPU. |
2,55 | $02 $37 | CGET | CG. |
2,56 | $02 $38 | CSWAP | CSW. |
2,57 | $02 $39 | FILL | - |
2,58 | $02 $3A | RASTER | RA. |
2,59 | $02 $3B | EBACK | EB. |
2,60 | $02 $3C | BG0 | BG. |
2,61 | $02 $3D | BG1 | - |
2,62 | $02 $3E | BG2 | - |
2,63 | $02 $3F | BG3 | - |
2,64 | $02 $40 | SWITCH | SWI. |
2,65 | $02 $41 | NORM | NOR. |
2,66 | $02 $42 | KEYOFF | KEYOF. |
2,67 | $02 $43 | KEYON | KE. |
2,68 | $02 $44 | MCOL1 | MC. |
2,69 | $02 $45 | MCOL2 | - |
2,70 | $02 $46 | MCOL3 | - |
2,71 | $02 $47 | FGND | FG. |
2,72 | $02 $48 | BGND | BGN. |
2,73 | $02 $49 | EI | - |
2,74 | $02 $4A | DI | - |
2,75 | $02 $4B | UNSYNC | UNS. |
2,76 | $02 $4C | RSYNC | RS. |
2,77 | $02 $4D | INIT | INI. |
Unterschiede zu BASIC Lightning[Bearbeiten | Quelltext bearbeiten]
Laser BASIC ist ein Update des älteren BASIC Lightning. Die meisten der Programme, die mit BASIC Lightning geschrieben worden sind, laufen auch unter Laser BASIC.
Einige Befehle sind in Laser BASIC neu hinzugekommen - siehe oben am Ende der Tabelle der Schlüsselwörter. Mehrere Befehle schreiben sich anders, haben aber die gleichen Token.
Nr. Token LASER BASIC BASIC LIGHTNING Schlüsselwort Abk. Schlüsselwort Abk. 212 $D4 SFRE SF. Reserved 1,16 $01 $10 SCRX SCR. SCRLX SCR. 1,59 $01 $3B EXX - XPANDX X. 1,60 $01 $3C EXY - XPANDY - 1,78 $01 $4E CONV - SPRCONV SPRC. 1,79 $01 $4F HON HO. .ON .O. 1,80 $01 $50 HOFF HOF. .OFF .OF. 1,81 $01 $51 HSET HS. .SET .S. 1,82 $01 $52 FLIPA EL. 1,83 $01 $53 H4COL H4. .4COL .4. 1,84 $01 $54 H2COL H2. . 2COL .2. 1,85 $01 $55 H1COL H1. .COL0 .C. 1,86 $01 $56 H3COL H3C. .COL1 - 1,87 $01 $57 HEXX - .XPANDX .X. 1,88 $01 $58 HSHX HSH. .SHRINKX .SH. 1,89 $01 $59 HEXY - .XPANDY - 1,90 $01 $5A HSHY - .SHRINKY - 1,91 $01 $5B HX - .XPOS .XPO. 1,92 $01 $5C HY - .YPOS .Y. 1,93 $01 $5D HCOL HC. .COL - 1,94 $01 $5E OVER OV. .OVER .OV. 1,95 $01 $5F UNDER UND. .UNDER .U. 1,115 $01 $73 TEXT TE. STRPLOT STRP. 1,117 $01 $75 HIT - .HIT .H. 2,34 $02 $22 SCRY SCR. SCRLY -
- Der Speicherplatz für Sprites ist von 8191 auf 7167 Bytes verringert.
- Multitasking erlaubt nur noch 3 statt 5 Tasks.
- CUTOFF erlaubt Frequenzen von 0 bis 65535 statt 0 bis 2047.
- SIDCLR verändert nicht mehr die Lautstärke.
- Turbo-Tape ist dazugekommen.
Ähnliche Programme[Bearbeiten | Quelltext bearbeiten]
- Vor BASIC Lightning gab es das Spiele-Entwicklungssystem als Forth-Version White Lightning.
- Der dritte Teil der Laser-Familie ist das Maschinensprache-Entwicklungsprogramm Laser Genius.
Weblinks[Bearbeiten | Quelltext bearbeiten]
C64[Bearbeiten | Quelltext bearbeiten]
- Laser Basic v1.3 bei commodore.software
- CSDb- Release Nr. 142056 Laser Basic Extended Interpreter V1.3
- Laser BASIC Manual in DLH's Commodore Archive
BASIC Lightning und White Lightning
- lyonlabs.org Programming Languages unter Commodore 64 Programming Languages, Forth
- CSDb- Release Nr. 97020 BASIC Lightning V1.2 (1984)]
- CSDb- Release Nr. 46015 White Lightning V1.0 (1984)]
Amstrad CPC 464/664/6128[Bearbeiten | Quelltext bearbeiten]
- Laser Basic im CPCWiki
- Laser Basic bei CPC Power
- Review von Chris Wood in cpcrulez.fr
- Oasis Software, Artikel mit Interviews von Chris Wood in cpcrulez.fr
ZX Spectrum 48K[Bearbeiten | Quelltext bearbeiten]
- Laser Basic Downloads bei Sinclair Infoseek