Skip to content

ROS is a small, DOS-like, AVR-targetting operating system, written specially for my own computing machine NPAD 5

License

Notifications You must be signed in to change notification settings

Nikita-bunikido/ROS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS

languages count license stars count forks count yt subs count C_lang

Readme Card

ROS demo

Introduction

ROS (Rom Operating System) is a small, DOS-like, AVR-targetting operating system, written specially for my own computing machine NPAD 5.

It operates in text mode, without any UI, but applications can still draw TUI using pseudo graphics.

The main idea of the project is to minimize usage of external libraries to reach the highest level of perfomance and efficiency. That's why all modules are beging made completely from scratch, including:

  • Hardware drivers
  • Custom 6x8 px font
  • Custom filesystem

System works with filesystem located directly in EEPROM chips.

Hardware

  • Screen : ST7735 based 128x160 px TFT display
  • Keyboard : Custom keyboard which uses 74hc165 shift registers
  • CPU : ATmega328P
  • ...

Build

  • Step 1 - clone the repository

First of all you need to clone repository. The following command to do it:

git clone https://github.com/Nikita-bunikido/ROS.git
  • Step2 - compile & link modules

Using Makefile:

cd ROS
make

TODO

  • CHIP-8 emulator
  • Programs executing from FLASH memory
  • Working with RAM
  • Command shell
    • System commands
    • Unknown command detection
    • Executing batch files
    • Executing CHIP-8 programs
    • File format detection for opening in correct program
      • .rex ( ROS executable ) -> program loader
      • .raw ( Raw binary ) -> hex editor
      • .txt ( Text document ) -> text editor
      • .rtm ( ROS text markup document ) -> ros text markup
      • .rch8 ( ROS-CHIP8 source file ) -> text editor
  • Working with ROM
  • Custom filesystem
  • Documented API
  • Builtin applications:
    • Physical memory editor
    • Hex editor
    • Text editor
    • CHIP8 assembler
    • Basic interpreter
  • Desktop emulator

CHANGELOG

  • Font 6x8px (ASCII & pseudo graphics)
  • SPI driver
  • ST7735 driver
  • Keyboard driver
  • Output stack
  • Basic I/O functions
  • Full QWERTY support
  • Replaced "reserved" attribute with "underline"
  • Text cursor
  • Input buffer
  • System modes
    • Input mode
    • Busy mode
    • Idle mode
  • ROS logo in boot process
  • Log system
  • Red screen of death
  • Graphic timer
  • Blinking cursor
  • Cursor visibility control
  • Flashing threads
  • Screen clear question
  • Running strings
  • ROS-CHIP8 X86 Assembler lexer
  • ROS-CHIP8 X86 Assembler parser
  • ROS-CHIP8 X86 Assembler core
  • ROS-CHIP8 X86 Assembler data segments
  • ROS-CHIP8 X86 Assembler define, include support
  • ROS-CHIP8 X86 Assembler

About

ROS is a small, DOS-like, AVR-targetting operating system, written specially for my own computing machine NPAD 5

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published