Raymond Chen recently posted about 386 B1 problems. In the end Microsoft decided not to support it. I imagine most early 386 chips just ran 16-bit MS-DOS code.
The whole discussion of the IBM PS/2 line brought back some memories. My first real job out of school was at an IBM shop, with loads of older PS/2s, weirdly fitted out with MCA AppleTalk cards.
Compaq shipped a computer with a 386 before IBM did. That was quite a coup at the time and helped establish Compaq as a top-tier computer maker instead of just another PC-clone vendor.
Compaq was also, in a way, partially responsible for Intel taking marketing and branding more seriously. When computer buyers were polled with the question, "Who invented the 386?" the most common answer was "Compaq." Intel responded, in 1991, with their "Intel Inside" campaign to get their logo and brand on the outside of the computers where it could be seen.
Cyrix, an Intel competitor at the time, boldly parodied the "Intel Inside" campaign with their own "Cyrix Instead" campaign.
>Cyrix, an Intel competitor at the time, boldly parodied the "Intel Inside" campaign with their own "Cyrix Instead" campaign.
That sounds like an awful campaign - every bit of copy with "Cyrix instead" bringing to mind their competitor and subtly suggesting that Cyrix are the lesser company .. bleurgh.
My first 'PC' was a 386DX 33MHz with 1MB of RAM. That was probably after the early problematic chips. It was a good machine for what it was. A year later I 'upgraded' to 4MB of RAM and a 486SX 25MHz.
I should have clarified; the first computer I used was a Tandy 1000 (8088 / 4.7MHz). This is the first one where I got to go to the computer store with my parents and "help them" decide :)
(Incidentally, I started crying when the computer salesman dude said we would have to wait until Monday to get the computer. It was Saturday.)
This reminds me of the good ol' days of the "Turbo" button on computers. Seriously, why would anyone purposefully half the clock speed of their processor?
When you write a program that does its timing using idle loops... old games, for instance, got really silly when they suddenly ran at 25 MHz instead of 8.
Many old programs were written without proper timers -- for example, in many old games if the processor ran twice as fast, everything happened twice as fast.
Also, completely unrelated, but the processor in the computer you are using right now is very probably presently running at less than half of it's maximum speed.
Yup, I remember my copy of f-15 Strike Eagle for the tandy 1000. When we got a new 486 with the turbo button, I wondered what would happen with my game...
Suddenly my plane was going fast enough to fly over Syria 2 times a second.
Also, completely unrelated, but the processor in the computer you are using right now is very probably presently running at less than half of it's maximum speed.
But of course, for very good reason: it allows the computer to remain on for 10 hours instead of 10 minutes. Power saving is a big deal these days, but back in the 386 days, nobody cared (and 4.77MHz processors were not exactly power-hungry either).
When the X4 chips are manufactured they are tested, and if a core fails any tests it is just locked and sold as an X3/2. This increases manufacturing yields by making use of some of the failures. Of course as there is also higher demand for the lower-middle spec CPUs, sometimes perfectly working chips are restricted to meet the supply requirements for each market space.
And of course, often the different clock speeds are really just the same chips with locked multipliers.
This is the correct reason for the turbo buttons. Most of the program delays (especially in games) was done inside really basic things like
// Delay
for(int i = 0; i <= 10000; i++)
{
// Do nothing
}
This was a bad way of putting delays in the game / program.
I remember when I was young, getting about 10 386 computers and mounting them on the wall of my bedroom (being young and obcessed with star trek, I wanted to turn my room into a borg cube) .. I wrote programs that used the parallel port to flash big arrays LED's on and off. Being young, I didn't know how to do timing properly on these machines so I used FOR loops like the one above for delays ... the Turbo button allowed me to half the speed of the faster machines while running the same code on all of them.
p.s. The unfortunate side effect of putting 'tight' loops of code in your program as delays meant that the processors got very hot very quickly (this was back when processors didn't necessarily have fans on them). I ended up being ordered to de-construct my borg bedroom when the wallpaper set fire after a chip got hot!
Friend of a Friend ... his dad worked in a high tech lab and their machines got upgraded ... I literally rescued them before they went into the skip (they were rich, selling them was more trouble than it was worth)
I had great fun with those machines ... including daisy chaining them all up COM1 -> COM2 -> COM1 -> COM2 and writing a chess program in C to have the machines play games against each other ... took me YEARS to do, but great fun and learnt heaps.
There are things like search.yc, the thing with hacker news is I'm sure if interest is maintained and quality doesn't go down over the long term many people will roll their own archive formats for it. If people saved most of the random junk on geocities I'd think that many people would be interested in preserving what's here.
Perhaps millions of great ideas and billions of pieces of knowledge have been lost to the almost entirely ethereal IRC as well. The somewhat permanent nature of Usenet and, to a lesser degree, mailing lists, subliminally changes the nature of the conversation.
I feel like we lose some of the ultimate benefits of "real" protocols by using the web as a means for two-way communications, but we also gain a platform for experimentation and rapid prototyping that leads to things like Hacker News.
Will they need to? We have search engines and other QA sites like Stack Overflow. The information is more likely to be found if it's valuable, and more likely to be spread beyond only HN than Usenet posts.
there is a historical archival quality about Usenet that is quite compelling.
And sometimes it strikes in odd ways.
About 3-4 years ago I saw someone posting on an electronics forum and for the name was vaguely familiar. I asked him if he had ever posted to comp.robotics.misc or sci.electronics around 1997 or so and mentioned a hilarious post about his cat's reaction to an automated cat door he had built. I had saved the post and it ended up being copied from computer to computer as I upgraded (and then was lost to a reinstall with no backup just a few weeks ago!) so I still had a copy.
Sent him the post and he agreed that he had written it, but barely remembered doing so.
That, more than anything serves to remind me that the net is forever. I wonder how many things I've said in various usenet groups over the last 20 years have been saved to people's personal archives.
In fairness, the 386 was the first large-volume processor with real memory management, threading, virtual machine, etc support, to wit the first real processor as we know it now. The 286 was stunted, requiring a covert reboot to switch processes. 486 and beyond were incremental improvements in speed and convenience, not fundamental capability.
The 386 was not the first processor with a modern MMU; you have to go back to the '70s for that. The 80286 could thread. The 386 didn't have virtual machine support (you may again be referring to the MMU). And the first generation Core processor is a drastically different machine in almost every respect from the 386.
To be more precise, the 80286 introduced the protected mode with support for using segmentation for memory management. The 386 added paging and extended the architecture to 32-bit, and added Virtual 8086 mode.
I wouldn't be surprised. Chip problems are very common - some examples:
- The pentium f00f division bug
- AMD Phenom TLB bug
- The intel 6xx chipset SATA degrade bug
- Radioactive cache chips in the Ultrasparc 2 (see here: http://nighthacks.com/roller/jag/entry/at_the_mercy_of_suppliers )
- Bug in the Ultrasparc 1 that allows malicious user processes to stall the processor in 64-bit mode.
There are errata, and then there are errata. No doubt there are some really nasty workarounds in the BIOS, but over the past 10 years Intel has been very good at preventing customer-visible defects at the OS kernel level and above.
I remember all the way back to the 8080, the 8085 and the Z80--- all quite fondly in fact. Wrote a great deal of assembler code even with the problem of Z80 differences </nostalgia>
42 comments
[ 3.1 ms ] story [ 92.2 ms ] threadRaymond's article:
http://blogs.msdn.com/b/oldnewthing/archive/2011/01/12/10114...
Compaq shipped a computer with a 386 before IBM did. That was quite a coup at the time and helped establish Compaq as a top-tier computer maker instead of just another PC-clone vendor.
Compaq was also, in a way, partially responsible for Intel taking marketing and branding more seriously. When computer buyers were polled with the question, "Who invented the 386?" the most common answer was "Compaq." Intel responded, in 1991, with their "Intel Inside" campaign to get their logo and brand on the outside of the computers where it could be seen.
Cyrix, an Intel competitor at the time, boldly parodied the "Intel Inside" campaign with their own "Cyrix Instead" campaign.
That sounds like an awful campaign - every bit of copy with "Cyrix instead" bringing to mind their competitor and subtly suggesting that Cyrix are the lesser company .. bleurgh.
Which is their CPUID vendor ID.
(Incidentally, I started crying when the computer salesman dude said we would have to wait until Monday to get the computer. It was Saturday.)
Also, completely unrelated, but the processor in the computer you are using right now is very probably presently running at less than half of it's maximum speed.
Suddenly my plane was going fast enough to fly over Syria 2 times a second.
But of course, for very good reason: it allows the computer to remain on for 10 hours instead of 10 minutes. Power saving is a big deal these days, but back in the 386 days, nobody cared (and 4.77MHz processors were not exactly power-hungry either).
It's fairly common practise to make 1 high spec version of a chip and then lock parts of it to make the budget versions.
For example, the AMD Phenom "Toliman" (X3) and "Kuma" (X2) CPUs are just "Agena" (X4) chips with 1 or 2 cores disabled. (http://en.wikipedia.org/wiki/List_of_AMD_Phenom_microprocess...)
When the X4 chips are manufactured they are tested, and if a core fails any tests it is just locked and sold as an X3/2. This increases manufacturing yields by making use of some of the failures. Of course as there is also higher demand for the lower-middle spec CPUs, sometimes perfectly working chips are restricted to meet the supply requirements for each market space.
And of course, often the different clock speeds are really just the same chips with locked multipliers.
I believe Sony followed a similar procedure for the PS3 cell CPUs - http://en.wikipedia.org/wiki/Cell_%28microprocessor%29#Comme...
// Delay for(int i = 0; i <= 10000; i++) { // Do nothing }
This was a bad way of putting delays in the game / program.
I remember when I was young, getting about 10 386 computers and mounting them on the wall of my bedroom (being young and obcessed with star trek, I wanted to turn my room into a borg cube) .. I wrote programs that used the parallel port to flash big arrays LED's on and off. Being young, I didn't know how to do timing properly on these machines so I used FOR loops like the one above for delays ... the Turbo button allowed me to half the speed of the faster machines while running the same code on all of them.
p.s. The unfortunate side effect of putting 'tight' loops of code in your program as delays meant that the processors got very hot very quickly (this was back when processors didn't necessarily have fans on them). I ended up being ordered to de-construct my borg bedroom when the wallpaper set fire after a chip got hot!
Huh? you had 10 computers? why? how?
I had great fun with those machines ... including daisy chaining them all up COM1 -> COM2 -> COM1 -> COM2 and writing a chess program in C to have the machines play games against each other ... took me YEARS to do, but great fun and learnt heaps.
Completely unplayable on anything faster than a 386/66MHz unless you have superhuman reactions.
For all its strengths and flaws, there is a historical archival quality about Usenet that is quite compelling.
I feel like we lose some of the ultimate benefits of "real" protocols by using the web as a means for two-way communications, but we also gain a platform for experimentation and rapid prototyping that leads to things like Hacker News.
And sometimes it strikes in odd ways.
About 3-4 years ago I saw someone posting on an electronics forum and for the name was vaguely familiar. I asked him if he had ever posted to comp.robotics.misc or sci.electronics around 1997 or so and mentioned a hilarious post about his cat's reaction to an automated cat door he had built. I had saved the post and it ended up being copied from computer to computer as I upgraded (and then was lost to a reinstall with no backup just a few weeks ago!) so I still had a copy. Sent him the post and he agreed that he had written it, but barely remembered doing so.
That, more than anything serves to remind me that the net is forever. I wonder how many things I've said in various usenet groups over the last 20 years have been saved to people's personal archives.
Link to full thread: http://groups.google.com/group/alt.folklore.computers/browse...;
ctdonath might be referring to Virtual 8086 mode that let multiple real mode programs run in isolated virtual machines.