what is your interface?
- Troy Martin
- Member
- Posts: 1686
- Joined: Fri Apr 18, 2008 4:40 pm
- Location: Langley, Vancouver, BC, Canada
- Contact:
Re: what is your interface?
Love4: Duly noted, will be changed for next version. Thanks, quite helpful I was going by some DS/ES setups to be == 07C0h but I guess that's a no-no!
Re: what is your interface?
actually, its not correct...
any bootsector that wont run if run at 07C0:0000 is flawed -- because many BIOSs actually do load it there -- some load it to 0000:7C00, others load it to 07C0:0000, and still others may load it to 50:07700...
basically, the only thing you can be assured is that whatever address it is, it will resolve to physical address 7C00
all properly written bootsectors will do one of 2 things:
1) will force CS to a specific, known value, with a FAR jump
or (my personal preference)
2) use only short branching (as long as you dont use any near instructions, there is no problem) and use a FAR to jump to the 2nd/1.5 stage
therefore, for chainloading other bootsectors, jumping to either 0000:7C00 or 07C0:0000 should work equally well (any bootsector that would have a problem with this is not properly written, and will fail on a large number of computers anyway)
any bootsector that wont run if run at 07C0:0000 is flawed -- because many BIOSs actually do load it there -- some load it to 0000:7C00, others load it to 07C0:0000, and still others may load it to 50:07700...
basically, the only thing you can be assured is that whatever address it is, it will resolve to physical address 7C00
all properly written bootsectors will do one of 2 things:
1) will force CS to a specific, known value, with a FAR jump
or (my personal preference)
2) use only short branching (as long as you dont use any near instructions, there is no problem) and use a FAR to jump to the 2nd/1.5 stage
therefore, for chainloading other bootsectors, jumping to either 0000:7C00 or 07C0:0000 should work equally well (any bootsector that would have a problem with this is not properly written, and will fail on a large number of computers anyway)
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: what is your interface?
Nope, sorry. Not according to the BBS (BIOS Boot Specification)... I'm not saying that there aren't BIOSes that use other addresses to load the boot sectors in, but the flaw is in the BIOS, not the boot sector itself. Your solutions are for bogus BIOSes which do not follow the accepted standard.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: what is your interface?
I have a feeling you are refering to Phoenix's BBS... and that should explain the flaw in your statement.
It's A: Phoenix's and thus not universal.
and B: it was made in like '92.
A simple "JMP 0x0000:SYNC; SYNC: " should be all that's necessary.
back on topic:
My OS has a menu-based UI and you can find screenshots in the "Post a screenshot..." topic.
It's A: Phoenix's and thus not universal.
and B: it was made in like '92.
A simple "JMP 0x0000:SYNC; SYNC: " should be all that's necessary.
back on topic:
My OS has a menu-based UI and you can find screenshots in the "Post a screenshot..." topic.
Website: https://joscor.com
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: what is your interface?
Compaq, Phoenix and Intel. I can't see why they'd all work together just in order to define Phoenix's interface. It's just like saying the VGA is not standard because it was IBM's way of doing things. Well, clearly; but it has become de facto.01000101 wrote:It's A: Phoenix's and thus not universal.
1996. There are even older standards that are still in use.and B: it was made in like '92.
A simple "JMP 0x0000:SYNC; SYNC: " should be all that's necessary.
Agreed (well, ALMOST all that's necessary).
Can't wait for you to have a working website I'm curious how the only commercial OS around here is doing. My alpha-stage interface can also be seen in that section. Pending: icon support, lol (but I think otherwise, I'm pleased with how things are going).back on topic:
My OS has a menu-based UI and you can find screenshots in the "Post a screenshot..." topic.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: what is your interface?
[/quote]Love4Boobies wrote:Compaq, Phoenix and Intel. I can't see why they'd all work together just in order to define Phoenix's interface. It's just like saying the VGA is not standard because it was IBM's way of doing things. Well, clearly; but it has become de facto.01000101 wrote:It's A: Phoenix's and thus not universal.
ah, I skimped on some of the research, not sure how I missed Compaq and Intel.
lol I'm not the only one developing a commercial OS here. I'll leave it at that though, I'm not sure if I'd be making a first announcement for someone.Love4Boobies wrote: Can't wait for you to have a working website I'm curious how the only commercial OS around here is doing.
TroyMartin is working on a website for me. Hope it turns out good. =)
Website: https://joscor.com
Re: what is your interface?
Hi,
Cheers,
Brendan
Yes. Also, some BIOSs (in some old Compaq machines IIRC) think the boot loader isn't bootable if the first instruction isn't a JMP.JAAman wrote:any bootsector that wont run if run at 07C0:0000 is flawed -- because many BIOSs actually do load it there -- some load it to 0000:7C00, others load it to 07C0:0000, and still others may load it to 50:07700...
Hmm, worst case would be something like 0xF7C1:0xFFF0....JAAman wrote:basically, the only thing you can be assured is that whatever address it is, it will resolve to physical address 7C00
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: what is your interface?
All these things make chainloading a lot harder (and loading a 2nd stage altogether, since you don't want to read over the current executing code). Perhaps the only way of doing it right is using the BIOS stack to push the current address (using a CALL) and reading CS and EIP manually (using SP); only then set up a stack and chain copy the boot code.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]