SENIOR PROJECT PLANNING - EEN 418, EEN 419
"ROMEO Operating system"
This page contains all my ideas for my senior project
This project is dedicated to Dr. Romeo Iglesias, who passed
away on August 21st of 2001; reason why the name of my project is
ROMEO.
UP TO 08/21/2003
*DURING THE SUMMER:
- DECIDED TO IMPLEMENT THE BOOT LOADER USING GRUB AS USING ASSEMBLY
LANGUAGE WOULD TAKE A CONSIDERABLE AMOUNT OF TIME THAT COULD BE
SPENT EFFICIENTLY ON OTHER ASPECTS OF THE O/S.
- CURRENTLY DEVELOPING A BASIC KERNEL CAPABLE OF BEING LOADED ON
AN INTEL PENTIUM (tm) 133 Mhz PROCESSOR-BASED PC.
UP TO 10/16/2003
- Used an available bootloader.
- Work on a very basic kernel that displays a string.
- In order to output to screen, inline asm codes were used to write a yte to the port that
belongs to the terminal.
- Developed clear_screen, setxy (to update the cursor's position) and prompt_set. With the latter,
a new problem arised. The cursor should have means of knowing where it is so as not to overwrite
data that has been previuosly output.
- Developed putchar and replaced the print function with one that calls putchar for all the characters
in the string. Before, output was done by writing directly to video memmory until all characters where
output. With putchar, there is a mean to acknowledge when a '\n', '\b', '\t', '\r' are received. This
allows to set the current position of the cursor accordingly and to take actions such as showing the
prompt when a '\n' is recieved.
- Created putchar_sys, used by the kernel whenever neccesary. The only difference is that this modifies
version of putchar does net show the prompt when a '\n' is received. Furthermore, this led to the creation
of prints (system print) that uses putchar_sys whenever the system outputs data to the screen.
- Created a library that maps the keys of the keyboard from unicode to ASCII. At this moment, only lower case
is supported. Also, getch was created which gets the scancode of the key typed and returns the correspoinding
ASCII value.
- Developed scan, which uses a buffer to receive data typed by the user. Scan returns a pointer to the string
typed.
- Working on basic commands to make OS interactive.
UP TO 10/31/2003
- Implemented scroll function,
- Reprogrammed the PIC chips.
- Loaded the IDT (Interrupt Descriptor Table).
- Programmed the keyboard handler. Now, getch() does not poll for
keyboard input since it is called by hardware interrupt IRQ1.
- Currently working on file system.
- Finished file system.
- Finished floppy disk driver.
- Finished commands to open, read and delete files.
- Developed tools to show specific blocks in ASCII and HEX (Helpful to debug and demonstration).
- Developed tools to interact with the user, show time, show date,
show block #, change color of the text and others.
To read about the senior project planning (EEN 418), which describes
the main ideas of this project, please refer to the links below.
Take a look at the senior project planning presentation for more information about the expected results on this project:
EEN 418 - Senior Project Planning Page.
Any suggestions or comments, please email me at
e.rivas@umiami.edu
Home.