Skip to content

1. Overview

6502Nerd edited this page Mar 20, 2023 · 2 revisions

Welcome to the dflat wiki!

Background

This project evolved out of a separate hobby where I have been building a homebrew computer using breadboards from the ground up, housed in a retro BBC case. This project is both a hardware and software undertaking and more details are here : BreadBoard Computer (BBC)

As part of the software side, I developed a BASIC-like high level interpreted language for my homebrew, with some modern features but still fairly light for good performance on low-end machines. But as the language is targeted for my homebrew computer, no one else would be able to play around with this but me!

So I embarked on a project to port dflat to an existing platform, and I chose the Oric-1 as it was my first computer in 1983 :-)

Features

My homebrew computer runs a 65C02 at 5.36Mhz and has 128K RAM with 64K ROM. The Oric runs at 1Mhz and is a 6502 (not 'C') and has 16KB ROM - so some compromises had to be made in terms of all the features I would like to have kept. However, I have managed to keep all the core features I wanted with some Oric specific features to make use of this platform. Here is a rundown of the highlights by category;

Language

  • Procedural: dflat is a procedural language, so all program flow is invoked by named procedures
  • Line numbers: dflat uses line numbers only for statement ordering in memory
  • No GOTO: No commands refer to line numbers so there is no GOTO or GOSUB (yay!)
  • Tokenised: dflat tokenises input to speed up runtime, making it possible to create better games than using Oric-1 BASIC
  • Integer: dflat is integer only, which helps a lot with speed but not useful for scientific applications!
  • String: Character string manipulation is supported
  • Arrays: Up to 2 dimensions of arrays are supported
  • Number base: decimal, hex and binary bases can be used freely using C-like syntax
  • Assembler: dflat includes an inline assembler - a bit like BBC BASIC!

dflat for Oric

dflat is a core language with additional support for the Oric platform, to help create nice games and apps for this wonderful machine :-)

  • High-resolution: HIRES is supported with ability to draw lines and circles much faster than Oric BASIC
  • Text sprites: A simple software sprite engine is included to use in TEXT modes to help with creating more dynamic games than with Oric BASIC
  • Sound: The Oric sound chip (AY-3-8912) is supported
  • Tape: Programs can be saved and loaded using tape
  • SD Card: With the simple hook up of an Arduino and associated software (in my other repo), supports SD card save and load
  • Emulation: For folks without a real Oric-1 to hand, dflat runs on Oricutron :-)