Hi etn,

Sorry for my delayed answers to your questions, as always i was kind of busy. If you have more questions i suggest either posting them here under OS construction forum or going to the SolarOS message board here:


I somehow consider your Questions too big to beanswered on private messages.

That is the trick with messageboards : other people can also read your questions and my answers and learn from them

So i would like to get your questions and place them on solar os board and answer them there :) I hope you do not mind? This way we can continue talks about SolarOS and other operating questions there...

On the other hand we could keep the discussions here even if it is SolOS related, and this way ppl will not have to navigate 10 messageboards every day :P ... But since i do not know yet what you preffer i will answer them here first because discussions started here

Now that was a long introduction :)

etn wrote on September 6th, 2003 06:53 PM:
Would you mind to suggest you some little changes to your Sol Os?
Youanswer qword ??
testingNO qword 0x00000000
NO qword 0x00000000
YES qword 0x00000001
CALL QuestionProcedure
Mov eax,qword ptr your_answer
Cmp testingNO,eax
Jz Readme:
CALL EndingProcedure(Exit)

I guess above was a kind of a joke :)


I suggest you to throw away the procedure you have to pressing alt+3 to switch the mouse_IO_ruotine to PS/2 port. This is not breakthrough idea but more useful. The solution is switching a few time per second all routines you made and the first movement of the mouse arrow set a constant right port for this log_session. I don??t suppose that users will want to change type of mouse port (between com and PS/2) when the system is working properly.

But i have a a laptop -- HP Omnibook 800 -- that does just that== uses both PS/2 mouse and Serial COM1 mouse in the same time (PS/2 is its internal mouse while COM1 is my preffered external mouse)

But indeed i agree, that thing is obsolette and should be removed in next versions.
It originated from 2 problems:
1) Hawk did not have a mouse at all on its test system and PS/2 driver probing used to hang its system
2) Sometimes in rare cases my PS/2 driver did not initializes corectly and requires a seccond or third press of Alt+3 to init corectly ...

When those 2 issues will be solved i will remove the Alt+3 thingy :D

The first will be resolved with a Control Panner of some sort for hardware devices present and more inteligent probing routines.. aka that will not hang on no devices

The seccond problem is just debugging and more testing

Second observation I made is main menu. When user makes a window over the main menu, he can not move it no more because the main menu??s area has higher priority than every windows so clicking at the area will invoke not the window but one of main menu??s actions.
You know solution so I have no to write about it;)

Yeah? well i will surely want to hear it . i was trying to avoid using an "Start Menu"...
I was thinking to hide the buttons, etc doh many solutions indeed.

I have not decided yet what form of Main menu is the most easy and ergonomic
Maybe you have some ideeas

Third ?K will be nice to have possibility to set resolution and refreshing screen as the user want and his monitor can ??, but that point is not so important like the Two above.

I fully agree

Other things:
Your activity motivate me to do some vesa2-compatibile self-booting vector animation in protected mode just for fun??.
Best regards masta!

Cool but who the **** is masta :-? (surely not me)

Ups?KI forgot something
Have a Q:
Is yours keyboard-routine dependent on bios ?

Nope my keyboard routine is direct acces driver (IRQ1 with its own queue) independent of BIOS

Best regards to you also
Posted on 2003-09-06 12:39:34 by BogdanOntanu

Hello Bogdan!

I visited Your website :
I would like to know a few aspect of your OS.
It may fill the hole of my knowledge (or ignorance) how Os'es truly work.

The system i pretty smart an likes me.
Especially the guidelines are admirable.
How can I do any programm for the SolarOs(I'v seen API-nice...?
How rawrite works? I mean what the programm do with raw bin code? How bios strats the code after boot operation?

I doubt system likes anybody, it is not that advanced yet ... but you can dream ;)

1) How do i do any program for SolarOS
-- ---------------------------------------------------
There are some examples included with source code.
Basically and for now you have to compile your application with the whole OS -- aka "embedded" style --
I advise you to keep your app in a separated ASM file and and include it as all other sample i have done . of course you should provide a way to start your app also like a system menu or an Alt+key combination.

For testing i gues you could replace or parasite one of the samples provided

When i will finish the HDD drivers you might load it from there as an external program... but unfortunately not now.

2)How rawrite works?
Basically it will get a BINARY file and place it on a floppy disk in RAW format.
That is: sector after sector, side after side and track after track, ignoring any FAT12 or other fancy filesystems.
AFAIK it uses BIOS int13h to do that. So os8.bin will end up lineary placed from start of floppy disk.

3)How BIOS starts the code after boot operation
It loads first sector from fdd at 0000:7C00 and jumps to it. That is my boot.asm code, it will load all rest of os8.bin after itself in RAM and than it will jump to system16 start point.
System16 presents a menu, setups some hardware (VESA, gets RAM size) setups GDT and then jumps to protected mode in System32.asm

System32.asm will setup IDT and enable IRQ0,IRQ1 and eventually IRQ6 for FDD and IRQ12 for PS/2 mouse or IRQ3/4 for COM1/COM2 mouse. (COM mouse drivers are not yet finished, neitehr IRQ14/15 HDD drivers)

If all is ok system32 will create the desktop and the main menu windows and it will enter the main OS loop that will dispatch messages from mouse/keyboard queues to Desktop and from here hierarhically too all windows.

Well ask more if interested about more detailed internal operations

GUI32 operations are a little bit more complex.
Posted on 2003-09-06 12:57:49 by BogdanOntanu
Bogdan's words:
Cool but who the **** is masta :-? (surely not me)

if you know such program as revelation.exe (link is prohibited because it brakes policy- no link to hacker's site)
I want to inform you : I used it for showing this word you had write in possword mode: ****

this word starts on an F and end on a K...
I suggest you to improve the coding algorithm.
It is awkward to write anything that way because not all fellows in this forum are of age.

Now Bogdan's turn:
Yeah? well i will surely want to hear it . i was trying to avoid using an "Start Menu"...
I was thinking to hide the buttons, etc doh many solutions indeed.

I have not decided yet what form of Main menu is the most easy and ergonomic
Maybe you have some ideeas

Good question ...
If I will build such a little beauty like the SOL OS, a start menu will not take place in a warking space:) .
I think is a good idea to solve the problem by two ways and both of them in the same code.

First of all some facts abaut OSes which everybody know , everybody know...

Windows' start menu -not good because:
star bar blocks out a pice of working area in the desktop.
If it has enable set auto-hide mode (I hate this mode) and if you are useing GDI mode app, the start-bar pops in unexpected moment when the snake should to eat an apple or the sapper has to defuse a mine back home safe and sound instead of game over. This kind of accident is cause when the arrow is bottom of the desktop.
I use another shell than explorer so it is not my problem.

Linux' KDE- not good but not o bad like in above
KDE is more comfortable and flexible than WinGUI but less efficiet and much slower.

One way (ticket):
background is the "0" DeviceContext or any kind of handle and other windows have own unique DC or Id-hanlde.
Right_mouse_button can activate the main-menu only when the arrow is over area which has the "0" DC.

I think your mind gives you disagreement for my idea (I agree with your mind), because
what will hapens when any app i fullscreen?
hmm...there is no a piece of desktop area to find out DC "0" to press mouse right button...
I say: minimize it ,I mean the all fullscreen opened apps.
But if I have so many fullscreen apps opened....I must minimize all of them... so many time it takes..so many click I have to click...my GOD...it is terrible solution...I have no patience enough to use such a system.
the Second way (return ticket:to agree with me;)) is to use previous trick supported by the hot-keys like ctrl-alt-del
The both method are combination windows task_manager's routine (hot_keys) and desktop_properties (right_mouse_button).

advantage: the main menu does not take place at the working space and does not disturb you when you are bringing neaer hidden strart menu area.

I want to sleep now,bye
It is 4:03 AM on my watch/Warsaw Poland

add to above:
left corner of a bar belongs to any window (you will open in your system), should to have small symbol which means minimize to icon.
That is absolutely important because in my solution there is no place to group minimized aplications.
The minimized icons should be different than shortcut icons or files icons to have we awareness what is going on and what aplications are opened.The difference may be other colour or size of icons belongs to opened apps compare to another types of icons.

that's all folks ;)
Posted on 2003-09-06 20:54:07 by etn
time to change ,edit or overwrite my previous post has expired so I do what I do...

Another Question:

Can I load Sol OS by LILO or any other loader?

I suppose NO, because there are two binary files ->asm16 and asm32.

I hope I am wrong and this will be possible...
Posted on 2003-09-08 08:30:34 by etn
Well there is only one file for the whole OS == os8.bin file for now.

If LILO can load this file at 0000:7C00 in memory and jump execute it from there then you should be able to use it , also maybe XOSL or GRUB can do it... anyway i intend to make SolOS bootable form HDD soon
Posted on 2003-09-08 09:45:05 by BogdanOntanu