Code Monkey home page Code Monkey logo

dflat's Introduction

Note: Wiki

A friend recommended that I should point out there is a fairly extensive wiki on dflat.

So after reading this, please have a look through the wiki to really get a feel for this language targeted at constrained 8-bit machinees.

https://github.com/6502Nerd/dflat/wiki

About dflat

dflat is a BASIC-like language for 8-bit micros and retro computers running on 6502 and 65c02. Key features & highlights;

  • Procedure orientated structure (all runnable code within def..enddef blocks)
  • Local variables - supports recursion
  • Structured programming including if..elif..endif, while..wend, repeat..until
  • Line numbers only used for sequencing lines, but cannot be referenced - no goto or gosub!
  • Support for sound and graphics
  • Inline assembler that can access dflat variables and vice-versa
  • Fits in to 16KB ROM (including all low-level BIOS)
  • Core language can be ported easily - just needs character put and get routines for input/output

Here is hello world in dflat:

  • 10 def_hello()
  • 20 println "Hello world!"
  • 30 enddef
  • _hello() [immediately invokes the procedure called _hello]

The base version here is targeted for the Oric-1 and Atmos computers from the early 80s and due to being integer only and tokenisation, is much faster than Oric BASIC.

Right now I am in refinement and documentation mode. Please see the wiki pages for details of the language.

The source and binaries are in the Oric-DFLAT folder - the readme provides a quickstart guide to try dflat rather wihtout building it from scratch.

I also have a hackaday page for this, although this repo will always have the latest code; https://hackaday.io/project/175585-oric-1-dflat-system

Also on hackaday, I have my homebrew computer made on breadboard and housed in a BBC Micro case. I made dflat for this computer first, then ported to the Oric for hopefully a slightly wider user base! https://hackaday.io/project/5789-65c02-homebrew-computer-on-breadboard

dflat's People

Contributors

6502nerd avatar iss000 avatar seclorum avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

Forkers

seclorum iss000

dflat's Issues

Small fixes proposal

Just some small details which need fix after last commit:

  • the binary ROM images are not updated (i.e. they are compiled before the last changes);
  • add printer_out.txt to .gitignore - you don't want to share its content ;).

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.