Dave Cope's Homepage
   Main | Personal | Photo Gallery | Projects | Linux | Employment Info. | Links | Misc. | About e-mail  

Retr-OS


The retros splash screen.

Retr-OS is the name of a realtime operating system that Cherith Tse and I wrote for Realtime Systems (CS452). Virtually all of the operating system was written in straight C code. However, some routines (such as the context switching code) were written in x86 assembly.

Retr-OS uses a micro kernel design. All of the device's are handled using processes; there are no special kernel level drivers. Processes send messages to one another via synchronous message passing. Processes are scheduled using a round-robbin scheduler for each priority level.

Features

  • Realtime microkernel operating system
  • All kernel operations are O(1)
  • Graphics
    • A Graphics Server process handles access to video memory and provides drawing primitives.
    • Draws Gui elements
    • Stores bitmaps resources and decompresses bitmaps that are RLE compressed.
    • C64 style bitmap fonts and colour scheme for a "Retro" look :-)
    • Simulator - A Unix based simulator provides a test bed for user processes that use the graphics servers graphics library.
  • Drivers
    • Keyboard
    • Serial
    • Realtime Clock

Application

Retr-OS was only a small portion of the Realtime Systems course. We also had to develop a realtime program to control model trains. The train track had a controller that had a serial connection to the PC running Retr-OS. The controller is able to issue commands to the trains and to relay information from sensors that are placed on the tracks. Below is a screen shot of the track display from our OS. The display showed the location of the trains, and the status of each switch and sensor.

A screenshot of Retr-OS track display.



This site was designed and coded by Dave Cope - © 1998-2003