GithubHelp home page GithubHelp logo

paulwratt / bas-2.5-pw Goto Github PK

View Code? Open in Web Editor NEW
7.0 3.0 1.0 1002 KB

2018 extended version of BAS 2.4 ANSI BASIC interpreter by Michael Haardt - http://moira.de (cpmtools fame)

License: MIT License

Makefile 0.81% C 60.52% Roff 23.35% Shell 7.49% C++ 1.07% Lex 6.76%
256-colors extended ansi basic ansi-basic basic-programming-language msx-basic bbc-basic

bas-2.5-pw's Introduction

bas-2.5-pw

2018 extended version of BAS 2.4 ANSI BASIC interpreter by Michael Haardt - moira.de (cpmtools fame)

This file is supplimentary to the BAS project, last edited: Jan 6 2018

Here pw means version 2.5 (and later) with extensions (bas-2.*pw == bas-2.5-pw). BAS v2.5 contains only generic additions, changes, bugfixes an extensions. Language extensions like those found in MSX-BASIC, Amstrad Locomotive BASIC, BBC BASIC or Sinclair BASIC on the Spectrum, are developed here.

binaries

All binary objects present in the repo are compiled on a RPi2 with gcc-6.1.0, on a customised (mostly console only) SD card image of PipaOS 5.0 with minimal X-Windows (for Chromium Browser on VT8).

additions

See README. Some additions have been deemed generic for modern day useful purposes, even thought they are not part of the ANSI BASIC standard, and may have been added to some variants of BASIC. They have therfore already been added to BAS-2.5. They are:

  • MERGE - merge program source code (LOAD without internal NEW)
  • CHAIN - continue execution, with existing variables, another program (RUN without internal NEW)

bugs

All those found in BAS-2.5. At the moment, CHAIN keeps the internal stack, which may (?) include defined functions, and does include gosub branches and for/next loops, so make sure you CHAIN execution is clean, otherwise you may get unexpected results.

future

It may chance its name, but wont change its origins, BAS-2.5-pw aims to create the least resistance possible when importing ANSI BASIC supersets, like MSX-BASIC, Amstrad Locomotive BASIC, BBC BASIC or Sinclair BASIC from the Spectrum.

At some point graphics commands need be added (based on the framebuffer device code I have already developed), and then sound (I have an inline AY chip core). However, at the moment most extensions are first proto-typed (as being usable) via command line scripts, some of which are then converted to programs written in C/C++, all of which can be used via the SHELL statement.

Eventually, it is to be used as a shell replacement after init has completed, capable of running on (or near) bare bones systems, like the Raspberry Pi. However, many considerations need to be taken into account before that happens.

It may or may not become the basis for the project https://github.com/paulwratt/ShellBASIC-shbasic

OK, that's enough for now.

bas-2.5-pw's People

Contributors

paulwratt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bas-2.5-pw's Issues

ENVIRON/ENVIRON$

Well, one of these three should work, surely?

> shell("pp=test")
> print environ$("pp")

> shell("export pp=test")
> print environ$("pp")

> environ("pp=test")
> print environ$("pp")

> 

This is on a Debian-derived system

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.