xOS v0.08 -- testing kindly requested!

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

xOS v0.08 -- testing kindly requested!

Post by BrightLight »

Hi, OSDev community!

I've just released xOS v0.08 alpha release, in which I've fixed all known bugs from v0.07, including the window drag issue, and the button spam issue, and the calculator divide by zero error, in which it just closed. I've also written a 2048 game clone.
Image

I'd really appreciate it if any of you are kind enough to test it and give me positive or negative feedback, as both help me move forward. :)

Hard disk image. (ZIP, 484 KB)
Source code at time of release.

As always, the hard disk image can be used with VirtualBox or QEMU. It works with both IDE and SATA.

Thanks in advance! :)
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
Muazzam
Member
Member
Posts: 543
Joined: Mon Jun 16, 2014 5:59 am
Location: Shahpur, Layyah, Pakistan

Re: xOS v0.08 -- testing kindly requested!

Post by Muazzam »

Works well. You forgot to add game over in 2048 (when tiles can't move).

Time is inaccurate but it has probably something to do with time zone.
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: xOS v0.08 -- testing kindly requested!

Post by Octacone »

Hey, I just tried it out.

Firstly I have to say that it is really fast, I wasn't experiencing any lag, shuttering, ghosting, etc... But I ran into a couple of issues while I was playing with it. I guess it is not quite 1080p ready. Even managed to get a page fault :P. Also I couldn't do anything with the tiles. All in all it is one really well optimized peace of assembly OS. As others mentioned, your timekeeping seems to be off by a lot. Keep up the great work!
Image
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS v0.08 -- testing kindly requested!

Post by BrightLight »

Muazzam wrote:Time is inaccurate but it has probably something to do with time zone.
The time is read from the CMOS chip, and so is most likely in UTC. I'll have to add time zone support, but customization is not really a priority now.
Octacone wrote:But I ran into a couple of issues while I was playing with it. I guess it is not quite 1080p ready. Even managed to get a page fault :P.
There's no reason for it not to work in a high resolution; it works in both 1024x768 and 1366x768 as it uses EDID to detect the resolution which the monitor is optimized for. How did you get a page fault? Can you reproduce the error or attach the log file from the serial port? I am assuming you rebuilt the kernel as you changed the font and the default resolution. Is there anything else you tweaked with? BTW, how did you get this image too? How did you corrupt the wallpaper image?

Thanks a lot for testing, both of you!
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: xOS v0.08 -- testing kindly requested!

Post by BenLunt »

HI,

Glad to see that you have been working (successfully) on your USB/UHCI code. Congrats.

Anyway, I was looking over your boot code, especially the MBR and have a few comments, if you don't mind.

Code: Select all

   test byte[part1.boot], 0x80
	jnz .boot1

	test byte[part2.boot], 0x80
	jnz .boot2

	test byte[part3.boot], 0x80
	jnz .boot3

	test byte[part4.boot], 0x80
	jnz .boot4

	mov si, _no_active_partition
	call print

	jmp $

.boot1:
	mov si, part1
	jmp load_boot_sector

.boot2:
	mov si, part2
	jmp load_boot_sector
can easily, and more to the point, give you more room in the MBR, to this:

Code: Select all

   mov si, part1
   mov cx,4
some_loop:
   test byte[si], 0x80
   jnz  load_boot_sector
   add si,16
   loop some_loop

   mov si, _no_active_partition
   call print

   jmp $
You have quite a few (unnecessary) jmp's in there. Set the 'SI' value, then check the boot indicator.
Anyway, that isn't really important, other than to give you more space in the 512 - 4*16 - 2 bytes that you have.

The reason?

Code: Select all

    mov ah, 0x42
   mov dl, [bootdisk]
   mov si, dap
   int 0x13
You don't check for the capability of this service before you use this service.

Now, this can be debatable. How much backward compatibility do you support? Most any BIOS, including emulated ones, will support this service. But are you sure about it?

Anyway, I had a few minutes and was curious about your code and started at the beginning. I always appreciate comments about my stuff, so I thought I would repay the favor.

Ben
http://www.fysnet.net/osdesign_book_series.htm
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS v0.08 -- testing kindly requested!

Post by BrightLight »

BenLunt wrote:Glad to see that you have been working (successfully) on your USB/UHCI code. Congrats.
Thanks! It's not as bad as I thought, really. It's just that at the beginning, I was intimidated by how people talk about USB's complexity and the size of the USB specs. :mrgreen:
BenLunt wrote:You have quite a few (unnecessary) jmp's in there. Set the 'SI' value, then check the boot indicator.
Anyway, that isn't really important, other than to give you more space in the 512 - 4*16 - 2 bytes that you have.

The reason?

Code: Select all

    mov ah, 0x42
   mov dl, [bootdisk]
   mov si, dap
   int 0x13
You don't check for the capability of this service before you use this service.

Now, this can be debatable. How much backward compatibility do you support? Most any BIOS, including emulated ones, will support this service. But are you sure about it?
I don't think I need to check for the capability of this service. Anyway, if I check for the capability of the service and it is not supported, I will just abort with an error message and not turn back to CHS functions. So, it's pretty much as trying to run the service on a BIOS in which it doesn't exist, which will also return an error. The EDD 1.1 spec seems to exist since 1995, so it's probably safe to say it was implemented everywhere by 2000.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
Post Reply