Page 2 of 2

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Wed Feb 15, 2012 8:44 pm
by Ashbad
finally have update news! Memory now gets set correctly, with distinct RAM for the Kernel and for processes, along with setting up all my current drivers correctly, and added a few other gadgets as well. I'm finally done right now with the boot sequence until I need to add more drivers and call their setup code, so I'm off with adding some syscalls (currently only able to be used by the kernel -- processes will have to branch to RST 08h to call syscalls, using a vector table ID). I also added a simple set of PUTC routines and a respective text buffer in the kernel RAM for, the drawing routine shown in action once the system has booted:

Image

(I'm aware the uppercase text is offbalance, I will fix tomorrow, it's a 1-px error in my source pic, I just need to add an empty row)

Yep, I'm using the ASCII set from IBM page 437 I at one point took some time ripping/converting from the picture on the wikipedia article:

Image

It has cool characters like smilies and borders and other cool jazz, for those who don't know what it is. There will be a PUTS routine that uses all of these characters and simply puts them to the buffer, and a PUTSF routine that using the control codes like '\n' to denote a newline instead of whatever code page 437 character replaces it.

Things are running along faster now that my silly RAM setup mistake was fixed earlier (I set it all up correctly -- but I couldn't clear ram with a ldir loop, the verdict was simply because my IM1 interrupt destroyed current registers (fixed, now the shadow registers are being used almost solely for the interrupt) and broke the ldir in the middle of it's execution). Hoping to have a decent set of syscalls done by the weekend!

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Wed Feb 15, 2012 9:07 pm
by VolTeK
Glad to see progress, Good luck with your project :)

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 5:01 am
by brain
Are you planning on starting an official development blog at all? Would be an interesting read...

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 5:46 am
by turdus
Ashbad wrote:Yep, I'm using the ASCII set from IBM page 437 I at one point took some time ripping/converting from the picture on the wikipedia article
Why don't you simply get it from VGA RAM? It's already there, VGA card uses it to display characters in text mode. I wrote a wiki article about, see VGA Fonts.

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 6:36 am
by bubach
turdus wrote:Why don't you simply get it from VGA RAM? It's already there, VGA card uses it to display characters in text mode. I wrote a wiki article about, see VGA Fonts.
First post:
Ashbad wrote:my first OS, for the 84+/84+SE on the standard zilog z80 processor.

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 12:48 pm
by turdus
bubach wrote:
Ashbad wrote:my first OS, for the 84+/84+SE on the standard zilog z80 processor.
Right, I've just read the 2nd page last time, I forgot about it. Sorry for that.

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 3:33 pm
by Ashbad
brain wrote:Are you planning on starting an official development blog at all? Would be an interesting read...
Not yet, but at some point possibly :) Probably once I get a few more key components done.

As for VGA fonts, bubach is exactly right, I am on an 84+/SE. The only software/data preloaded onto the calculator after loading a new OS (not counting my own code/data I pack in), is the official bootloader code, which does not provide much except for TI's stupid security measures like certificate checking (though as a safety net it allows a user with any OS to rollback to another OS if the current one mucks up the system, via USB). So, almost everything I have to do from scratch.

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 4:46 pm
by Combuster
Considering you're on a scientific calculator, using the 8x16 VGA font is probably a good way of rapidly using up screen estate. There are 8x8 fonts out there, and as far as English is concerned, 6x8 (5 by 7 for actual character data) might even be enough coverage and saves you over a factor 2 in storage space. Bundling less characters also helps.

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Thu Feb 16, 2012 6:11 pm
by Ashbad
Combuster wrote:Considering you're on a scientific calculator, using the 8x16 VGA font is probably a good way of rapidly using up screen estate. There are 8x8 fonts out there, and as far as English is concerned, 6x8 (5 by 7 for actual character data) might even be enough coverage and saves you over a factor 2 in storage space. Bundling less characters also helps.

Yep; I also have a much smaller font (4*6 px), but I want to keep the larger font as well.

EDIT: also, the font I'm using now is 8x12 for the larger sizes, but I recently switched to a much smaller size, 8x8, for large and am keeping 4x6 for small.

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Fri Feb 17, 2012 5:45 pm
by Ashbad
Small update, but... boot sequence works! :)

Image

(the cursor at the beginning is the Emulator (WabbitEmu) running TIOS; I dragged my OS .8xu to it during TIOS execution, which explains the cursor and slight pause between TIOS execution, and NucleoOS execution (the actual device was running the OS loading code from TI's boot sector page, wiping what was there before and putting my Kernel in))

Now, onto making the dynamic memory heap, and smaller font routines!

Re: Sup, new to OS development; Here's my project, NucleoOS

Posted: Sun Feb 19, 2012 6:49 pm
by Ashbad
Woo, many hours of hard work on this since last update! Finally got small text working, settable console line wrapping, status bar mode settable (basically, lowers the amount of usable console space by one, removing the last row and allowing space for some sort of place where battery status, busy signal, etc. can be shown), easy toggling between large and small text console, and more!

Image