GithubHelp home page GithubHelp logo

richardcavell / basicloader Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 354 KB

A program written in C (C89 dialect) that generates type-in BASIC programs. Targets multiple 8-bit machines. (in development, don't use it yet)

License: Other

C 99.57% Makefile 0.43%
trs-80 commodore-64 color-basic 6502-assembly 6809-assembly 6309-assembly basic-programming-language extended-color-basic source-generation retro-formats

basicloader's Introduction

README.txt
BASICloader version : Still in development.
(c) 2017-2019 Richard John Foster Cavell
https://github.com/richardcavell/BASICloader

1. What BASICloader does
2. BASICloader's features
3. BASICloader's input options
4. BASICloader's output options

=== 1.  What BASICloader does ===

BASICloader is a magazine type-in generator. It is free, open-source software
that is intended as a retro computing project.

There were many 8-bit computer systems in the 1980s. They typically had a
built-in BASIC interpreter, as well as having the ability to execute machine
language programs.

Magazines that were devoted to these 8-bit systems often had program source
code listings. The idea is that you would type in the program and run it.
Many of these programs looked like this:

    10 FOR I = 8192 TO 9432
    20 READ A
    30 POKE I,A
    40 NEXT I
    50 DATA 56, 23, 78, 102, 9, 207, 193, 8
    60 DATA 88, 0, 0, 0, 1, 107, 92, 93, 107
       ... etc ...

This is a BASIC program, which contains DATA statements. The DATA statements
are code for a machine-language program. The main part of this BASIC program
is a loop that pokes these values into memory.

BASICloader creates BASIC programs of this type.

When given a machine language program (or any other data), BASICloader will
automatically construct a BASIC program. The program that BASICloader creates,
if it is typed in and run, will set up that machine language program (or data)
in memory. The BASIC program can be published in printed form, and typed in
by an enthusiastic computer user.

You still have to create the machine-language program, of course. BASICloader
can take a raw binary as input. It can also recognize and use the native file
format of each of the machines that it supports. BASICloader is quite
versatile in the sort of output that it can generate.

=== 2. BASICloader's features ====

Here are some of BASICloader's features:

    * Written entirely in standard C, so that it can be compiled and run
      on a wide range of operating systems and machines

    * Made up of exactly one (long) source file, so that building and
      linking couldn't be simpler

    * Specially written to detect problems with old compilers and
      implementations

    * Detects every error and problem (in the input file, or while
      generating the output, or in the selection of command line switches)
      that can reasonably be detected

    * Versatile input options, with the ability to understand the file
      format that is native to each machine

    * Very customizable output, with many command-line switches

    * Permissive licensing, so that you can use BASICloader and its output
      widely in your own work

      ... and more!

=== 3. BASICloader's input options ===

BASICloader can take the following types of files as input:

    * Raw binary
    * Disk Extended Color BASIC (also known as RS-DOS)  (/BIN format)
    * DragonDOS                                         (.BIN format)
    * Commodore 64                                      (.PRG format)

=== 4. BASICloader's output options ===

You can customize the output of BASICloader to:

    * Target one of several different machines (and BASIC dialects):

        * TRS-80 Color Computer 1, 2 and 3
        * Dragon 32 and 64
        * Commodore 64

    * Emit special instructions for Extended Color BASIC
      (For the TRS-80 Color Computer)

    * Output in uppercase, lowercase or mixed case

    * Add the build date in a REM statement

    * Add custom REM statements

    * Start running the machine language program automatically

    * Place the binary blob at a custom location

    * Start executing from somewhere other than the first memory location

    * Produce and use checksums to ensure the program is typed correctly

    * Produce output that is compact (saves memory) or not (easier to
      read and type)

      ... and more!

For more information, take a look at FAQ.txt in the Documents folder.

You can find this project on the web at:

            https://github.com/richardcavell/BASICloader

This project is actively maintained, and was last reviewed in April 2019.

Richard Cavell

basicloader's People

Contributors

richardcavell avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.