Re: What does your OS look like? (Screen Shots..)
Posted: Sat Mar 04, 2017 5:07 am
When somebody asks you what are you doing, you be like:
The Place to Start for Operating System Developers
http://f.osdev.org/
You could add the current Git commit hash as a define while buildingSik wrote:(the + after the version is to indicate it's a post-release version rather than the one actually marked as 0.10)
You're a bit mixed up. For all processors when you're done with a push sp points to the pushed value. The difference is when sp is decremented:Agola wrote:Finally finished the V8086 Monitor.
And I have a question:
I have a book called "8086 Assembly", and I made the V8086 Monitor with help of this book.
The book says push and pop operations are different than 80286+ CPUs. Because SP shows the empty word in the stack in 80286+ CPUs, but SP shows the last word in the stack in 8086 CPUs.
So order of operations in push and pop in 8086 CPUs:
PUSH src:
SP <--- SP - 2
SS:[SP] <--- src
POP src:
src <--- SS:[SP]
SP <--- SP + 2
So order of operations in push and pop in 80286+ CPUs:
PUSH src:
SS:[SP] <--- src
SP <--- SP - 2
POP src:
SP <--- SP + 2
src <--- SS:[SP]
As the V8086 Mode's name has 8086 in it, I thought 8086 rules are valid, not 80286+ rules. And I coded pushf and popd by applying 8086 rules. It works, but is that really correct? Which one should I use, the 8086 push and pop or 80286+ push and pop?
azblue wrote:You're a bit mixed up. For all processors when you're done with a push sp points to the pushed value. The difference is when sp is decremented:Agola wrote:Finally finished the V8086 Monitor.
And I have a question:
I have a book called "8086 Assembly", and I made the V8086 Monitor with help of this book.
The book says push and pop operations are different than 80286+ CPUs. Because SP shows the empty word in the stack in 80286+ CPUs, but SP shows the last word in the stack in 8086 CPUs.
So order of operations in push and pop in 8086 CPUs:
PUSH src:
SP <--- SP - 2
SS:[SP] <--- src
POP src:
src <--- SS:[SP]
SP <--- SP + 2
So order of operations in push and pop in 80286+ CPUs:
PUSH src:
SS:[SP] <--- src
SP <--- SP - 2
POP src:
SP <--- SP + 2
src <--- SS:[SP]
As the V8086 Mode's name has 8086 in it, I thought 8086 rules are valid, not 80286+ rules. And I coded pushf and popd by applying 8086 rules. It works, but is that really correct? Which one should I use, the 8086 push and pop or 80286+ push and pop?
8086:
sp = sp-2
[sp] = src
186+
[sp -2] = src
sp = sp -2
The big difference arises when pushing sp.
Anyway, i think v86 merely emulates real mode, not an actual 8086
That looks really promising those MOTDs gave me a hearty chuckle! Are you loading the cat command dynamically during execution? if so, you've opened a whole world of possibilities for your OS - cant wait to reach that point in development tooosdeverr wrote:Now I have first program for U365 that does something good. It's cat. I implemented read/open/write syscalls and now it works. Gonna make Surface syscalls now.
Wow, thanks a lot, prasoc! Yes, I load cat dynamically from my initrd. Actually it wasn't a trivial task to achieve: we worked a lot with it. That work finally paid off. I'm gonna create my own libc nowprasoc wrote:That looks really promising those MOTDs gave me a hearty chuckle! Are you loading the cat command dynamically during execution? if so, you've opened a whole world of possibilities for your OS - cant wait to reach that point in development tooosdeverr wrote:Now I have first program for U365 that does something good. It's cat. I implemented read/open/write syscalls and now it works. Gonna make Surface syscalls now.
Wait, you did all of that with your link/no standard library? I am simply amazed.osdeverr wrote:Wow, thanks a lot, prasoc! Yes, I load cat dynamically from my initrd. Actually it wasn't a trivial task to achieve: we worked a lot with it. That work finally paid off. I'm gonna create my own libc nowprasoc wrote:That looks really promising those MOTDs gave me a hearty chuckle! Are you loading the cat command dynamically during execution? if so, you've opened a whole world of possibilities for your OS - cant wait to reach that point in development tooosdeverr wrote:Now I have first program for U365 that does something good. It's cat. I implemented read/open/write syscalls and now it works. Gonna make Surface syscalls now.