Page 2 of 2

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Fri Aug 07, 2009 8:26 am
by Brendan
Hi,
manonthemoon wrote:That's good to hear. The 586 will guarantee that you have the ability to use 4MB pages and an on-chip APIC.
No. 4 MiB pages were added in Pentium Pro CPUs and weren't supported by any Pentium CPU. Pentium CPUs do have a local APIC, but almost all BIOSs disable it so that it's impossible for an OS to enabled it or use it.


Cheers,

Brendan

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Fri Aug 07, 2009 8:50 am
by manonthemoon
Brendan wrote: No. 4 MiB pages were added in Pentium Pro CPUs and weren't supported by any Pentium CPU.
Volume 1 of the Intel Software Developer's Manual:
2.1.5 The Intel® Pentium® Processor (1993):

... ... ...

In addition, the processor added:
• Extensions to make the virtual-8086 mode more efficient and allow for 4-MByte as well as 4-KByte pages

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Fri Aug 07, 2009 9:41 am
by Brendan
Hi,
manonthemoon wrote:
Brendan wrote: No. 4 MiB pages were added in Pentium Pro CPUs and weren't supported by any Pentium CPU.
Volume 1 of the Intel Software Developer's Manual:
2.1.5 The Intel® Pentium® Processor (1993):

... ... ...

In addition, the processor added:
• Extensions to make the virtual-8086 mode more efficient and allow for 4-MByte as well as 4-KByte pages
Doh :oops:

You're entirely right - I was using Intel's original programmer's guide which didn't say anything about 4 MiB pages. I had to try CPUID on a Pentium I have here to figure out which Intel manual is wrong.

After I found out that 4 MiB actually is supported on the original Pentium CPUs I remembered what happened - 4 MiB pages were an undocumented feature (there was a hidden appendix to the programmer's manual for the Pentium that nobody was allowed to have which did mention support for 4 MiB pages, and it wasn't mentioned anywhere else until later manuals came out).


Cheers,

Brendan

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Fri Aug 07, 2009 9:46 am
by manonthemoon
On a somewhat-related note, thanks a lot for updating and correcting the wiki page about the IA32 family.

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Fri Aug 07, 2009 9:55 am
by Brendan
Hi,
manonthemoon wrote:On a somewhat-related note, thanks a lot for updating and correcting the wiki page about the IA32 family.
Thanks, but it was only small changes. I'll have another look tomorrow though (currently at the end of a longish day)...


Cheers,

Brendan

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Fri Aug 07, 2009 10:09 am
by gravaera
Wow...you guys are so way ahead of me. Imagine...guys creating specifications. But don't worry: I'll bridge that gap soon enough :P

Anyway: I highly doubt I'll be actually able to reach anyone with a 486, but I'll still make that the base. I'm just to paranoid to make that daring leap to i586+. #-o

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Sat Aug 08, 2009 7:32 am
by AndrewAPrice
The oldest computer in my house is a Celeron 1.3Ghz laptop, and though I want to keep as compatible as possible I do draw the line at modern systems. That is if it runs reasonable on an i686, I won't go out my way to support anything less.
gravaera wrote:Wow...you guys are so way ahead of me. Imagine...guys creating specifications. But don't worry: I'll bridge that gap soon enough :P
You should never complex write code (simple tech demos excluded, but most certainly an OS) without a specification. A specification gives you an ending to reach for, expectations, milestones, and you build your implementation around that. You have an idea of what features you want in v1.0 (or even projecting further ahead) and you can allow for that in your design. There's nothing worse than not implementing something you always wanted to because it means a lot of code restructuring/rewriting. It's better to have your code ready for that, even if it's calling blank placeholder functions for now (that's only bad when you're releasing version 1.0).

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Mon Aug 10, 2009 3:33 am
by jal
MessiahAndrw wrote:The oldest computer in my house is a Celeron 1.3Ghz laptop
You mean you only have new stuff :). My oldest is my original (clone) XT, but I don't think I'll target that for a while :). I have spare parts of a 286, possibily 386 and 486 lying around, and my trusty (well, very untrusty actually) old P1 MMX 233 MHz is still up and running (well, never really running recentyly actually, although I used it semi-recently to backup all my old 360K 5 1/4" floppies...).

EDIT: Sorry for the off-topicness.


JAL

Re: Just-B'cos: Where would you draw the line for compatibility?

Posted: Mon Aug 10, 2009 5:19 am
by Solar
manonthemoon wrote:Volume 1 of the Intel Software Developer's Manual:
2.1.5 The Intel® Pentium® Processor (1993):

... ... ...

In addition, the processor added:
• Extensions to make the virtual-8086 mode more efficient and allow for 4-MByte as well as 4-KByte pages
Yep... that was it (what made me opt for i586 as the baseline). Actually you still see that decision manifested in the Cross-Compiler tutorial... 8)