You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
3 months ago | |
---|---|---|
cm | 10 years ago | |
res | 7 years ago | |
samples | 3 months ago | |
tools | 10 years ago | |
vfs | 11 years ago | |
.gitignore | 10 years ago | |
LICENSE.md | 5 years ago | |
README.md | 5 years ago | |
basic.js | 5 months ago | |
bell.js | 6 years ago | |
bs.html | 10 years ago | |
display.css | 7 years ago | |
dos.js | 5 months ago | |
favicon.ico | 8 years ago | |
hires.js | 5 months ago | |
index.html | 3 months ago | |
index.js | 3 years ago | |
lores.js | 3 years ago | |
printer.js | 10 years ago | |
reference.html | 1 year ago | |
script.js | 3 years ago | |
script.md | 5 years ago | |
styles.css | 5 years ago | |
tty.js | 2 years ago |
README.md
jsbasic - Applesoft BASIC in JavaScript
This is hosted for playing with at https://inexorabletash.github.io/jsbasic/
Notes & Known Issues
- The BASIC program is compiled to JavaScript before execution. Syntax errors are therefore detected at compile-time rather than at run-time as on a traditional interpreter. For example, the following program would run without errors on an Apple since the erroneous second statement is never reached.
10 END : CHR$(PRINT)
- Handling of BASIC code that does not match the canonical
LIST
output format may not behave as on an Apple:- Keyword parsing differs from Applesoft command line. For example
FOR I = S TO P
doesn't collapse intoFOR I = STOP
.
- Keyword parsing differs from Applesoft command line. For example
- Limitations:
- Floating point overflow is only detected on variable assignment.
- Only a subset of DOS 3.3 and ProDOS useful for basic file I/O are implemented.
- Only a small number of common
PEEK
,POKE
andCALL
locations are supported. - Commands that refer to assembly routines (
&
,USR()
etc.), shape tables, and tape I/O are not implemented.
- Commands that operate on the program itself (
LIST
,RUN
,DEL
, etc.) are not implemented. - A handful of extensions are made beyond Applesoft BASIC:
- To improve readability, lines may start with
:
and continue the previously numbered line. DEF FN
can define string functions==
can be used as=
CHR$()
values > 255 do interesting thingsHSCRN(x, y)
allows probing the hi-res screen- hexadecimal literals e.g.
$C010
can be used as numbers
- To improve readability, lines may start with