Saturday, September 8, 2012

We have text!

Some text displaying the system info.
     Started off the day by getting some graphics going.  I had to edit a frame buffer, which basically represents every single pixel's color.  1024 (width) * 768 (height) = 786,432 pixels!  And each pixel has a 16-bit color code, so this frame buffer takes up just under 1.6 MB in memory.

     After I got the hang of drawing graphics, the next step was drawing text.  This site gives a download to a couple of bitmap fonts.  Each letter consists of a 16x8 bitmap representing a character.  Through some trickery and basic string manipulation, we were able to draw text!  Next up, a basic command line!

As always, you can find the kernel to the left, at "How to put JoeyOS on your Raspberry Pi!"
In addition, the photo gallery will hold all screenshots and development photos.

Thursday, September 6, 2012

Graphics!

Gradient on an LCD monitor... yeah Assembly!
Finally got something on the screen!  After an hour or so of following the guide and messing with the frameBuffer, I got this groovy-looking gradient on the screen.  Here's bit of ARM assembly code used to write the gradient:


colour .req r0
y .req r1
mov y,#768
drawRow$:
x .req r2
mov x,#1024
drawPixel$:
strh colour,[fbAddr]
add fbAddr,#2
sub x,#1
teq x,#0
bne drawPixel$

sub y,#1
add colour,#1
teq y,#0
bne drawRow$

b render$

.unreq fbAddr
.unreq fbInfoAddr



It's pretty useless right now, but soon I can use these same techniques to write letters on the screen, leading to my Command Line Interface.  Check back soon for more updates!




Wednesday, September 5, 2012

First post

Welcome to the journey of a lifetime!  Watch as a young teen struggles to make OS from scratch.  The tutorials I'm basing my OS off of can be found hereMany thanks to Alex Chadwick for creating these tutorials and helping me get off of the ground.  Currently, JoeyOS supports blinking the "OK" LED on the RPi.  But this is no ordinary blinking; it reads from the system clock to precisely blink the LED at a rate of 1Hz.  Soon, there will be graphics!

Check back soon for updates!