All Projects → dmsc → fastbasic

dmsc / fastbasic

Licence: GPL-2.0 license
FastBasic - Fast BASIC interpreter for the Atari 8-bit computers

Programming Languages

c
50402 projects - #5 most used programming language
assembly
5116 projects
C++
36643 projects - #6 most used programming language
FreeBasic
24 projects
perl
6916 projects
Makefile
30231 projects

Projects that are alternatives of or similar to fastbasic

6502.Net
A .Net-based Cross-Assembler for Several 8-Bit Microprocessors
Stars: ✭ 44 (-59.26%)
Mutual labels:  atari, 6502
Mad-Pascal
Mad Pascal Compiler for 6502 (Atari XE/XL, C64, C4Plus)
Stars: ✭ 46 (-57.41%)
Mutual labels:  6502, atarixl
Lbforth
Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.
Stars: ✭ 293 (+171.3%)
Mutual labels:  interpreter, 6502
retrore
A curated list of original and reverse-engineered vintage 6502 game sourcecode.
Stars: ✭ 22 (-79.63%)
Mutual labels:  atari, 6502
VolksForth
volksFORTH is a 16bit Forth System maintained by the German Forth Gesellschaft e.V.
Stars: ✭ 41 (-62.04%)
Mutual labels:  atari, atarixl
basicv2
A Commodore (CBM) BASIC V2 interpreter/compiler written in Java
Stars: ✭ 73 (-32.41%)
Mutual labels:  interpreter, 6502
awesome-list
Awesome Lists of retrocomputing resources (6502, Apple 2, Atari, ...)
Stars: ✭ 38 (-64.81%)
Mutual labels:  atari, 6502
picol
(Fossil repository mirror) A tiny interpreter
Stars: ✭ 19 (-82.41%)
Mutual labels:  interpreter
apultra
Free open-source compressor for apLib with 5-7% better ratios
Stars: ✭ 84 (-22.22%)
Mutual labels:  6502
Virtual-Jaguar-Rx
Virtual Jaguar, an Atari Jaguar emulator, with integrated debugger
Stars: ✭ 35 (-67.59%)
Mutual labels:  atari
basic
📺 A from-scratch BASIC interpreter with a focus on being easy to extend and port.
Stars: ✭ 66 (-38.89%)
Mutual labels:  interpreter
ME
A DSL for macro expansion ,in order to help framework develop
Stars: ✭ 24 (-77.78%)
Mutual labels:  interpreter
bfpile
Optimizing Brainfuck compiler, transpiler and interpreter
Stars: ✭ 19 (-82.41%)
Mutual labels:  interpreter
Freeze-OS
An Operating System that runs on top of an interpreter.
Stars: ✭ 24 (-77.78%)
Mutual labels:  interpreter
lunatic
lunatic: a toy lua interpreter
Stars: ✭ 16 (-85.19%)
Mutual labels:  interpreter
Juka
🥣 Juka Programming Language - Fast Portable Programming Language. Run code anywhere without complicated installations and admin rights. Simple, yet powerful new programming language [Easy to code and run on any system] IOT devices supported!
Stars: ✭ 68 (-37.04%)
Mutual labels:  interpreter
roda
Röda: A stream-oriented scripting language
Stars: ✭ 43 (-60.19%)
Mutual labels:  interpreter
monkey-interpreter
Monkey programming language interpreter designed in "Writing An Interpreter In Go".
Stars: ✭ 26 (-75.93%)
Mutual labels:  interpreter
Script
Script is an object-oriented interpreted programming language. Being migrated to CppUtils
Stars: ✭ 18 (-83.33%)
Mutual labels:  interpreter
Laythe
A gradually typed language originally based on the crafting interpreters series
Stars: ✭ 58 (-46.3%)
Mutual labels:  interpreter

FastBasic - Fast BASIC interpreter for the Atari 8-bit computers

This is a fast interpreter for the BASIC language on the Atari 8-bit computers and the Atari 5200 console.

The current features are:

  • Support for Atari floating point and 16bit integer variables;
  • Support for string arrays, substrings and concatenation;
  • Small size (currently the full floating point IDE is 9.3k, the integer IDE is 8k, and the runtime is less than 3k);
  • Fast execution (currently, 2 times faster than compiled TurboBasicXL in the "sieve.bas" benchmark, 6 times faster than OSS Integer Basic);
  • Modern syntax (no line numbers, many control structures);
  • Procedures with parameters and short calling syntax;
  • Feels "alike" TurboBasicXL, with many of the extended statements;
  • Integrated editor and compiler running in the Atari 8-bit;
  • A cross-compiler is available that directly compiles sources to Atari executables on any modern PC;
  • Statements for Player/Missile graphics and Display List Interrupts.

For support, use the GitHub bug-tracker or see the AtariAge thread at: https://atariage.com/forums/topic/318133-fastbasic-45-2021-release/

Manual

There is a full manual with all the supported syntax in the file manual.md.

To use the cross-compiler, download from the releases and see compiler/USAGE.md for instructions.

For the Atari 5200 support, read the Atari 5200 manual appendix.

Sample files

There are samples for the integer only compiler and for the floating point compiler, in addition to more test programs in the tests folder.

License

FastBasic is free software under the terms of the GNU General Public License, either version 2 or later, see the file LICENSE for the full text.

The runtime is also under the following linking exception:

In addition to the permissions in the GNU General Public License, the authors give you unlimited permission to link the compiled version of this file into combinations with other programs, and to distribute those combinations without any restriction coming from the use of this file. (The General Public License restrictions do apply in other respects; for example, they cover modification of the file, and distribution when not linked into a combine executable.)

This means that you can distribute the compiled result of any program written by you under any license of your choosing, either proprietary or copyleft.

Compiling the sources

To compile the sources, you need:

  • Host build tools (make & gcc) to build the syntax generator
  • mkatr, from https://github.com/dmsc/mkatr to build the Atari disk image (ATR) file.

Then, type make to build all sources to a "fastbasic.xex" file and a "fastbasic.atr" disk image.

There is also a test-suite that tests various source files compiled with the Atari compiler and the cross compilers, you can run the test-suite by typing make test

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].