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.
- Screen : ST7735 based 128x160 px TFT display
- Keyboard : Custom keyboard which uses 74hc165 shift registers
- CPU : ATmega328P
- ...
First of all you need to clone repository. The following command to do it:
git clone https://github.com/Nikita-bunikido/ROS.git
Using Makefile:
cd ROS
make
- 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
- 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