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.
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!
xOS v0.08 -- testing kindly requested!
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
xOS v0.08 -- testing kindly requested!
You know your OS is advanced when you stop using the Intel programming guide as a reference.
Re: xOS v0.08 -- testing kindly requested!
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.
Time is inaccurate but it has probably something to do with time zone.
Re: xOS v0.08 -- testing kindly requested!
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 . 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!
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 . 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!
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: xOS v0.08 -- testing kindly requested!
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.Muazzam wrote:Time is inaccurate but it has probably something to do with time zone.
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?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 .
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.
Re: xOS v0.08 -- testing kindly requested!
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.
can easily, and more to the point, give you more room in the MBR, to this:
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?
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
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
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 $
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
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
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: xOS v0.08 -- testing kindly requested!
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.BenLunt wrote:Glad to see that you have been working (successfully) on your USB/UHCI code. Congrats.
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.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?You don't check for the capability of this service before you use this service.Code: Select all
mov ah, 0x42 mov dl, [bootdisk] mov si, dap int 0x13
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?
You know your OS is advanced when you stop using the Intel programming guide as a reference.