What does your OS look like? (Screen Shots..)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: What does your OS look like? (Screen Shots..)

Post by Octacone »

When somebody asks you what are you doing, you be like:
Attachments
Paging_Fun.png
Paging_Fun.png (11.25 KiB) Viewed 4450 times
Last edited by Octacone on Sun Mar 05, 2017 4:42 am, edited 1 time in total.
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by osdever »

Woo-hoo! U365 1.2, FS works. Yay!
Attachments
Screenshot_20170304_180550.png
Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
User avatar
Sik
Member
Member
Posts: 251
Joined: Wed Aug 17, 2016 4:55 am

Re: What does your OS look like? (Screen Shots..)

Post by Sik »

Got the keyboard working (・o・)

Image

(the + after the version is to indicate it's a post-release version rather than the one actually marked as 0.10)
User avatar
matt11235
Member
Member
Posts: 286
Joined: Tue Aug 02, 2016 1:52 pm
Location: East Riding of Yorkshire, UK

Re: What does your OS look like? (Screen Shots..)

Post by matt11235 »

Sik wrote:(the + after the version is to indicate it's a post-release version rather than the one actually marked as 0.10)
You could add the current Git commit hash as a define while building
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Compiler Development Forum
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by osdever »

ELF binaries work almost fine. Awesome, isn't it?
Attachments
Screenshot_20170305_120533.png
Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
User avatar
Agola
Member
Member
Posts: 155
Joined: Sun Nov 20, 2016 7:26 am
Location: Somewhere

Re: What does your OS look like? (Screen Shots..)

Post by Agola »

My v8086 monitor is almost done.

I'm debugging it with 3 second delays when it called.

Image
Keyboard not found!

Press F1 to run setup.
Press F2 to continue.
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by osdever »

First (useless) ELF program for U365.
Attachments
Screenshot_20170307_210427.png
Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
User avatar
Agola
Member
Member
Posts: 155
Joined: Sun Nov 20, 2016 7:26 am
Location: Somewhere

Re: What does your OS look like? (Screen Shots..)

Post by Agola »

Finally finished the V8086 Monitor.
Runned int 0x10 with ax = 0x4F02, bx = 0x117:

Image

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?
Keyboard not found!

Press F1 to run setup.
Press F2 to continue.
azblue
Member
Member
Posts: 147
Joined: Sat Feb 27, 2010 8:55 pm

Re: What does your OS look like? (Screen Shots..)

Post by azblue »

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?
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:
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
alexfru
Member
Member
Posts: 1109
Joined: Tue Mar 04, 2014 5:27 am

Re: What does your OS look like? (Screen Shots..)

Post by alexfru »

Don't emulate 8086 bugs.
User avatar
Agola
Member
Member
Posts: 155
Joined: Sun Nov 20, 2016 7:26 am
Location: Somewhere

Re: What does your OS look like? (Screen Shots..)

Post by Agola »

azblue wrote:
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?
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:
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

Actually I'm not a native speaker and sometimes I can't explain what do I mean correctly. While I reading my post I noticed the explanation problem, thanks.

When I do the 80286+ way it doesnt work, I got confused again. As BIOS in QEMU designed to run in a 80386+ processor, so the 80286+ way should work instead of the 8086 way. But 8086 way is working, 80286 way not. Strange.

Edit: My bad, I forgot my memory read / write functions' directions are to up. As stack growns down, I always did the same what a 386 does actually.
As I can't fully explain what do I mean, I prepared that image:

Image

Thanks, everything is good now.
Keyboard not found!

Press F1 to run setup.
Press F2 to continue.
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by osdever »

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.
Attachments
Screenshot_20170309_142923.png
Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
prasoc
Member
Member
Posts: 30
Joined: Fri Feb 10, 2017 8:25 am

Re: What does your OS look like? (Screen Shots..)

Post by prasoc »

osdeverr 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.
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 too =D>

--

Got ATA and FAT16 disk loading working (around 90%), need to get file allocation table navigation functional in order to link paths together for the "ls" command. but its going very well at the moment!

I've moved to exclusively C++ code for the kernel, the class system is a dream for my implementation of Surfaces! Each surface is inserted into a vector which I can iterate over, re-order, etc. so handy. My libc++ has a few essential STL classes: strings, vectors and bitsets currently. Aiming to get further classes implemented soon
Attachments
img-1.png
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by osdever »

prasoc wrote:
osdeverr 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.
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 too =D>
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 now :P
Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
User avatar
MajickTek
Member
Member
Posts: 101
Joined: Sat Dec 17, 2016 6:58 am
Libera.chat IRC: MajickTek
Location: The Internet
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by MajickTek »

osdeverr wrote:
prasoc wrote:
osdeverr 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.
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 too =D>
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 now :P
Wait, you did all of that with your link/no standard library? I am simply amazed.
Everyone should know how to program a computer, because it teaches you how to think! -Steve Jobs

Code: Select all

while ( ! ( succeed = try() ) ); 
Post Reply