Posted: Mon Jul 23, 2007 11:57 am
lol, all the claims that i saw in the patent required it be Microsoft Windows NT Operating System for it to be that patent, if i read that correctly.
The Place to Start for Operating System Developers
http://f.osdev.org/
Unfortunately patents are rarely restricted to their original "invention". From the second to last paragraph in the patent:CompDever wrote:lol, all the claims that i saw in the patent required it be Microsoft Windows NT Operating System for it to be that patent, if i read that correctly.
As far as I can tell the patent has a total of 15 seperate claims where you could infringe one or more claims.MODIFICATIONS AND VARIATIONS
As will be recognized by those skilled in the art, the innovative concepts described in the present application can be modified and varied over a tremendous range of applications, and accordingly the scope of patented subject matter is not limited by any of the specific exemplary teachings given.
<edit>pcmattman wrote: You drop back to real mode or create a virtual mode task so that you can use int 10h.
That's pretty much the only way to get into a mode without writing a video card driver - which is what Kevin McGuire has posted (his is a very portable one, though).
The only way I know to do this is to create a sixteen bit code and stack segment and perform a jump or interrupt return into it. The problem is you are still using descriptors, right? Is that not what he notes as a requirement for the BIOS?The preferred method passes the interrupt request to a 32 Bit protected mode driver. The driver will construct the 16 Bit call, change the stack to a 16 Bit stack, and make the 16 Bit protected mode BIOS call. This process is much faster than the previous method. Because there is no mode switch (Thunk) from protected to real and from real back to protected mode, the process of making the ROM call is not noticeable. Also, this process only requires that the BIOS write 16-bit mode code that is capable of running in real or protected mode. This is accomplished by not hard-coding F000h as a data segment/selector. There is no need to re-code BIOS to support 32 Bit calls, which saves space and time.
I've been thinking a little about this...Kevin McGuire wrote:Then again a even _better_ method would be to use the VESA extensions to change the video mode then dump all the VGA registers and correct my mode lines above _and_ add new ones. That should give you the ability to use VGA and possibly SVGA modes with out using VESA. That sounds good, right?
That why i put you will be OK, going to and from realmode for BIOS int's .Kevin McGuire wrote: He specifically says it is a alternative to switching into real mode and back to protected mode. Apparently, he wants to just execute sixteen bit code while still working in protected mode.
The common SVGA and VGA graphics card I would imagine should be simpler so maybe it would not be the same situation. It still requires a lot of work.A Couple Of Internet Mails wrote: On Sunday 04 February 2007 23:10, Leonard McGuire wrote:
> > Michael Wrote:
>>> > >>If you'd like to compare millions of IO accesses, nobody stops you
> > from comparing them. There is no reverse engineering needed to compare
> > IO accesses.
> >
> > Only so many should be sent to the BCM device, during initialization.
> > I would not think it would be in the millions for the initialization.
> > There is also got to be a way to determine what type of command/write
> > was performed such as a lot of initialization writes/reads should be
> > done to a certain control port for the driver, while many others for
> > normal activity would be done to the DMA and other ports for the bcm
> > device. I guess I am just wondering about the millions part, lol.
> > Even certain writes would have a command prepended right? Mabye we are
> > just sending a different flag somewhere, that might be detected by
> > comparason..
There are lots of "maybe"s in your statement.
How about reading the code? It will answer all your questions.
And yes, I didn't count the MMIO accesses, but it is a _lot_.
If you want to compare them, go for it. Nobody else will, as it's
too much work. This effort is better put into actually reading,
understanding and fixing the code.
-- Greetings Michael.
It's not necessarily a new idea...Kevin McGuire wrote:I suggested that one time for the BCM43xx wireless driver.
I'm thinking it wouldn't be that hard.Kevin McGuire wrote:The common SVGA and VGA graphics card I would imagine should be simpler so maybe it would not be the same situation. It still requires a lot of work.
In this case you could just disassemble the 16-bit code, process it, and assemble it as 32-bit code. The problem here is detecting what is useful code and what isn't. For example, you wouldn't know if bytes are useful 16-bit code, 16-bit code that's only used for legacy purposes (e.g. text output functions), font data, or some other type of data. To avoid this you'd need to follow code paths like the CPU would - start at an entry point and emulate calls, branches, jumps, etc. It'd be very hard to get good results (almost like writing a full emulator).Kevin McGuire wrote:-- Also it might be interesting just to decode the ROM instructions from sixteen bit to thirty-two bit instructions, almost like some people have done with writing a emulator for sixteen bit code I think?
I was thinking of using V86 with IOPL = 3, so that any I/O port accesses cause a general protection fault. The general protection fault handler can emulate the I/O port instructions easily enough - there isn't many of them, most use implied registers, and it'd be simple to log details (which I/O port, the access size and the data read/written) at the same time.Dex wrote:@Brendan, I have only ?, how will you log I/O port accesses ? .