Giter Site home page Giter Site logo

brainboxdotcc / retro-rocket Goto Github PK

View Code? Open in Web Editor NEW
35.0 3.0 3.0 6.58 MB

Retro Rocket BASIC Powered Operating System

License: Apache License 2.0

Assembly 0.75% C 95.60% CMake 0.74% BASIC 2.91%
acorn-electron basic bbc-micro limine-bootloader operating os osdev system system-programming basic-programming

retro-rocket's Introduction

🚀 Retro Rocket BASIC-Powered Operating System

image

Imagine an alterate present time, where the BBC Micro had continued to thrive and develop to the present day. In this alternate present this operating system exists alongside Windows and Linux but stands apart.

This is an alternative operating system inspired by Acorn MOS 3.20, but modernised for current hardware as a thought experiment and a bit of a toy to have fun with.

Its userland is completely written in a dialect of BASIC based heavily on BBC BASIC, with full access to hardware (just like the old days), multi-tasking, modern filesystem support, internet utilities and more as well as planned backwards compatibility with Acorn features such as ADFS via disk images.

🌟 Features

  • 💻Command line shell powered by BASIC
  • 🧰A bunch of useful command line tools, including:
    • 📜A fully featured WYSIWYG editor
    • 💬A simple IRC client
  • ✏️Graphics drawing commands
  • 💽Virtual File System with support for:
    • FAT32 (read/write)
    • ISO9660 (read only)
  • ✅Multitasking of BASIC programs
  • 📶Network stack with TCP, IP, UDP, and ICMP

💻 System Requirements

  • An x86_64 system with CD or DVD drive to boot an ISO image (more options coming soon)
  • Or run under emulation via QEMU
  • Optionally: RTL8139 network card (as supported by QEMU)
  • SATA or IDE compatible optical drive (as supported by QEMU)

🔨 Technical Details

This operating system boots via the limine bootloader and runs only on 64 bit systems. Where possible it will take advantage of SMP systems (multi-core) - this part of the OS is in the process of being rewritten.

When booted, the OS will first run /programs/init which is a simple BASIC script which will CHAIN the shell, rocketsh. rocketsh supports direct BASIC commands (e.g. PRINT, variable assignment, function and procedure calls, EVAL, etc). Any unknown instructions will be interpreted as a command, and rocketsh will search for a matching program name in /programs which will be CHAINed.

Note that in this operating system the CHAIN instruction does not replace the current program with a new one (on the BBC Micro it did this, much like POSIX exec()) instead, it places the current program into a waiting state, starts the new program, and at the point the new program ends, continues the old program from where it left off. Using this you can spawn complex trees of related program functionality. The ability to CHAIN programs to the background and immediately return is coming soon™.

retro-rocket's People

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

Watchers

 avatar  avatar  avatar

retro-rocket's Issues

BASIC Hell quine

when quote is not closed, interpreter for some reason prints source code of current running program
image
(second image with hell, from D++ Discord server) image

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.