-
Notifications
You must be signed in to change notification settings - Fork 2
1. Overview
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 :-)
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;
- 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 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 :-)