Aim

You are required to develop a shell and a clock for OSx311. Your work should meet the specifications below:

Clock

After booting up, your OS should display clock on the screen. Below are the requirements for the clock:

Command Shell

Your operating system should provide users a shell that can run commands. Shell should meet the specifications below:

Colors

Welcome message: red over black
Clock face: black over white
Command prompt: green over black
Anything else: white over black

This is more or less how your OS should look like:

Welcome to OSx311                                                       19:23:07
                                                                                
OSx311> testing                                                                 
'testing' is an invalid command.                                                
Type 'help' for a list of available commands.                                   
                                                                                
OSx311> help                                                                    
Available commands: help, settime                                               
                                                                                
OSx311> settime                                                                 
Usage: settime hh mm ss                                                         
                                                                                
OSx311> settime 19 22                                                           
Usage: settime hh mm ss                                                         
                                                                                
OSx311> settime 19 22 04                                                        
Time has been set to 19:22:04                                                   
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

Other Information

For color codes, RTC registers etc. you can refer to these sites:

Hint:

Incorporate kb.c into the existing OSx311 kernel and read the keyboard presses through keyboard interrupt.