Giter VIP home page Giter VIP logo

sebasic4's Introduction

build API docs Translation status GitHub issues by-label GitHub commit activity GitHub code size in bytes

SE BASIC

SE BASIC is a free open-source BASIC interpreter for the Z80 architecture. Although it aims for a high degree of compatibility with Microsoft BASIC, there are some differences. SE BASIC is designed to run on the Chloe 280SE but it is also compatible with Timex Sinclair models with 128K of RAM, esxDOS, Timex video modes and ULAplus. SE BASIC runs plain text .BAS files. It implements floating-point arithmetic in the extended Microsoft Binary Format (MBF) and can therefore read and write binary data files created by 6502 versions of Microsoft BASIC.

SE Basic 4.2.0

SE BASIC

A classic BASIC interpreter for the Z80 architecture

Copyright ยฉ 1999-2024 Source Solutions, Inc.

Build tools

Building this software locally requires:

Emulator

On macOS and Windows, the preferred emulator for development is ZEsarUX. On Linux it is Fuse.

For Fuse builds, uncomment out the slam directives in basic.asm and boot.asm.

IDE

This repository includes scripts for Visual Studio Code.

sebasic4's People

Contributors

aowendev avatar baskman74 avatar cheveron avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sebasic4's Issues

SE Basic IV 4.1 Buffy โ€” planned feature list

All features subject to change without notice.

  • Fully comment source.
  • Relabel source according to Logan/O'Hara.
  • Refactor and code cleanup.
  • Re-order keyboard tables.
  • Re-order parameter definitions in the syntax table.
  • Move the syntax offset and syntax table to the end of the ROM near the font.
  • META mode -- the next character entered has its high bit set.
  • CONTROL mode -- the next character entered is offset by 79.
  • Simplify cursors (only one cursor).
  • Optionally switch off syntax checking.
  • Remove inline color control entry (bad in hi-res mode).
  • Reset cursor mode after a key is entered (for META and CONTROL).
  • Lower case not tokenized when in META mode (in this mode ENTER is not modified).
  • Change positions of UDG and PUT for better microdrive support.
  • Change parameters of UDG to 0 (off) or 1 (on).
  • Enable cursor up and down during INPUT.
  • CALL now sets required HL' value on return.
  • ROM0 now clears all EX, DOCK and HOME RAM.
  • Extend NEW: NEW 1 is hard reset. Defaults to NEW 0 (soft reset).
  • Extend LIST: LIST [f],[l] lists a range of lines.
  • SAVE now saves immediately without displaying a message.
  • TRACE command (0 = off, 1 = on) replaces VERIFY
  • Copyright message moved to ROM0
  • New tokenizer.
  • New ROM switching handler (for MODE and tape commands).
  • Offset co-ords for full screen GFX in MODE 0.
  • Extend POKE to take a series of parameters.
  • SCREEN$ (x,y) support in hi-res mode by keeping a copy of ASCII written to screen after the first bitmap in page 7.
  • SCREEN$ load/save support in hi-res mode.
  • Saving SCREEN$ files in low-res mode include the palette if ULAplus is active.
  • RESET command issued after loading a SCREEN$ file in low-res mode.

Note: No direct support for hi-res graphics planned in this release.

DEF FN regression

Changes to DEF FN from v3.1.2 breaks some existing functions in v4.0.0.

Add SCREEN$(x,y) support in hi-res mode.

The simplest way to do this will be to keep an ASCII copy of the characters written to screen between bitmap 0 and 1 in bank 7. This will take up 1,920 characters. In this way only 128 bytes of the hi-res screen file would go unused.

Add support for hi-res graphics commands.

Support PLOT, CIRCLE, DRAW and ARC (DRAW) in hi-res mode. This can be done by re-using code from BASIC 64 which has been placed in the public domain by Timex. May be necessary to update scrolling routine to do the whole screen.

Replace BRIGHT/FLASH with CLUT command.

Maybe leave BRIGHT alone for legacy code but extend FLASH to accept values of 0-3 as the lesser used of the two commands.

Alternatively, change BRIGHT to CLUT to accept more parameters and leave FLASH alone (or replace with a new command).

Speedup opportunity for the 8-bit font

Instead of storing the rows of a character next to one another, it is worth storing them 256 bytes apart. Essentially, you draw the font from the top left corner left to right on an Altwasser screen and save the top third. It's the same 2 kilobytes as the current format but does not require shifting the character code; it simply becomes the LSB of the address. The speedup is quite substantial. Enterprise stores its 8-bit font this way.

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.