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

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

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

Post 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
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.
manonthemoon
Member
Member
Posts: 65
Joined: Sat Jul 04, 2009 9:39 pm

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

Post 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
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

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

Post 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
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.
manonthemoon
Member
Member
Posts: 65
Joined: Sat Jul 04, 2009 9:39 pm

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

Post by manonthemoon »

On a somewhat-related note, thanks a lot for updating and correcting the wiki page about the IA32 family.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

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

Post 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
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.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

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

Post 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
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

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

Post 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).
My OS is Perception.
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

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

Post 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
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

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

Post 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)
Every good solution is obvious once you've found it.
Post Reply