There's a great show on Netflix that's a fictional retelling of the engineers reverse engineering the BIOS for their first IBM clones. Highly stylized, but (I've only seen the first season) a fun watch.
There was an instruction set parody circulated around the mainframe world in the 1980s (at least) entitled "Name That Instruction Set!" which claimed to be new opcodes for the alleged upcoming Osborne II. It included, among others:
HCF - Halt and Catch Fire
IIB - Ignore Interrupt and Branch
PIL - Perform Infinite Loop
etc.
I can't find an exact copy, but this appears to be somewhat of a superset:
I used to work with a system that had replaceable disk packs -- think 18" diameter removable hard drives transported in a plastic dome. They had read heads that were driven by a linear motor, which was an absolutely huge electromagnet. Extended use would sometimes "walk" the equipment out of position (much like an out-of-balance washing machine), so it was common to put rubber doorstops under it to prevent this.
One of the drive tests performed during maintenance was a random seek. Normally, the head position was controlled by a servo with a feedback loop, but this one time the servo failed and the magnet drove the head assembly out the back of the equipment and into the wall .. right at crotch height. There was a supplemental maintenance instruction issued shortly afterward to limit the use of that procedure, and to not stand behind the equipment when it was being run.
I don't know, failure modes these days could include exciting bugs like "drive to the nearest large concentration of pedestrians and ram it at top speed." You just need to find the right field.
Haha, I've always had to look up rlwinm and its ilk no matter how many times I've looked it up previously in the ISA.
Its crazy how terse PPC's instructions are, the PPC ISA book felt like reading PHD paper where as ARM's ISA manuals felt like a gentle novel.
Here's a wonderful excerpt from the latest 2.07 ISA:
"The following notation is used in the definitions below.
When MMCR0_PMCC = 11, “PMCs” refers to PMCs 1 - 4
and “PMCj” or PMCjCE refers to “PMCj or PMCjCE,
respectively, where j = 2 - 4; otherwise, “PMCs” refers
to PMCs 1 - 6 and “PMCj” or PMCjCE refers to “PMCj
or PMCjCE, respectively, where j = 2 - 6."
Get all of that? Good, now go write code to make use of it.
I remember around the time of Power 4 IBM gave us a presentation which basically stated that with regards to the speculative execution of instructions it was fast enough to just try all paths as it fast enough to not show an impact.
"I would suggest re-naming "rmbdd()". I _assume_ that "dd" stands for "data dependent", but quite frankly, "rmbdd" looks like the standard IBM "we lost every vowel ever invented" kind of assembly lanaguage to me.
I'm sure that having programmed PPC assembly language, you find it very natural (IBM motto: "We found five vowels hiding in a corner, and we used them _all_ for the 'eieio' instruction so that we wouldn't have to use them anywhere else")."
Early microprocessors like the 6800 and the 6502 had a ton of 'undocumented' instructions. They weren't deliberately designed but they often performed useful behaviour by accident. So later engineers documented and used these undefined instructions, to the delight of emulator designers every where.
But some of these instructions did not perform useful behaviour, many of them freezing the machine. Some were even worse, freezing the machine into a state where it was very rapidly toggling the bus. If you had the wrong thing attached to the bus, it could very literally be Halt and Catch Fire. Instruction $DD on the 6800 was labelled HCF in some instruction set listings for that reason.
That's exactly what this article is about - the full title is: "THE INCREDIBLE TRUE STORY BEHIND AMC’S HALT AND CATCH FIRE – HOW COMPAQ CLONED IBM AND CREATED AN EMPIRE".
The show is fantastic. Season 2 was good as well, but I still liked S01 a little better.
I watched the first few episodes, but I couldn't really get into it. The biggest thing was that I couldn't believe that our hacker hero (I don't recall her name) could be that person. It may be sexist, but the statistics were that such a person was almost certainly male. But even beyond that, the personality just didn't click for me.
Further to what eddieroger said, I found S2 slow to start... Joe is a bit "lost" for several episodes, but it gets better. S3 starts in August according to IMDB.
When you see this, and then open source you realize how giving people access to your platform, to being able for them to be part and to drive the product is what it makes it the winner combo.
Although I'm not sure that's the case anymore; android, apple and qualcomm they all seem to roll on the wheels of "never a copy of it".
It's tricky: an open ecosystem often wins, but there are certain abuses that cannot be eradicated in an open system, and if your system becomes open you will not be able to make a profit from it.
I respectfully disagree. Red Hat has been able to make a profit from Linux's dominance of the server ecosystem. I'm not sure what abuses you mean, but the existence of CentOS (a nearly direct clone) has not wiped out Red Hat. The malware situation for closed vs open ecosystems would be a separate discussion.
While Red Hat does make a profit, it's not on the actual software. Because it's Open Source, Linux is now a commodity. You need to make money either on support (which requires way more manpower), books, or things like certifications.
It really makes it that much more difficult for a small company/startup to compete. You can easily scale software sales with only a few people. Support, on the other hand, quickly because unmanageable and requires a lot more time and money.
People who use CentOS are more likely to pay for Red Hat out of familiarity with the OS. It's better for Red Hat if people choose CentOS over Debian or something.
The IBM luggables were huge and unreliable. They had 2 full height 5 1/4 inch floppy drives, no hard drive, a 4.5MHz 8086, and something like an 8 inch amber screen that you could barely read. Basically, IBM put a bunch of parts they didn't know what to do with into a product and tried to sell it. The only way they could really sell them was to captive audiences like students, like at some engineering schools.
I'd love to see the parallel universe where Commodore never collapsed and the Amiga kept growing in popularity and power, and Steve Jobs never left Apple and got to push NeXTSTEP in a big way before Windows 95 came on the scene, and where Sir Clive stayed at Sinclair Computers making ever more successful portables...
2016 in that universe is probably a very different world, with lots of different types of devices with different strengths, and a much stronger focus on cross-platform protocols.
Agreed, the computing landscape would be so much more colourful if the Amiga won the day.
The BBC did a fun retelling of the rivalry between Sinclair and Acorn a few years ago. Worth a watch if you haven't already seen it. https://en.wikipedia.org/wiki/Micro_Men
Eh? The 500 was their most successful model, and the 1200 was the second most successful IIRC. The 600 was a mistake, it was meant to be cheaper than the 500 but ended up more expensive to produce.
If anything, the 2000 should've used a new chipset instead of being the same as the 1000, and there should've been a much bigger jump in performance on the 3000 and 4000. By offering different chipsets on the high end models and the low end models, they could have captured both the high end and low end markets. As it was, the high end models were useful for the Video Toaster and not a lot else.
What in the end sold the PC was that you could buy a barebones model and over time add all manner of functionality via its internal expansion slots (imo, soundblaster got big on selling combo kits of soundcard and CDROM drive).
In comparison the A500 had one expansion slot on the side.
The move to PC had very little to do with expandability and a lot more to do with available software and performance. For many Amiga fans it was Doom that drew them to the PC. Most PC users weren't in the habit of building their own rigs.
Well among gamers it was definitely embarrassing to be a PC user. Doom made it cool.
Arcades had Street Fighter and all the action. Consoles had the most faithful arcade ports as well as all the JRPGs. Amiga/ST had the better sound, less configuration hassles, and for a while, better graphics.
PCs had...flight simulators and spreadsheets and yuck, MS DOS.
While at the same time mom and dad could use it for work, because of that IBM thing.
As a personal anecdote, i got into the PC world by buying a second hand 486 (DX luckily, i had not the first clue at the time). No sound card, F if i recall what the HDD was (but just having one was a step up from floppy shuffling), and maybe 4MB of ram.
By the time i was done with using it, i had added a sound card, replaced the graphics card, added a CDROM, doubled the ram (if not more), and gotten a whooping 1GB HDD in there.
For the life of the A500 it stayed the same. I did borrow an extra floppy for a while, and that allowed me to speed up the games loading for a while, but it was pretty much a sealed unit for me over those years.
I mean NeXTSTEP could have been developed at Apple, and launched as a Macintosh operating system. I'm not well versed in the exact history, but a UNIX-based, object-oriented, multitasking OS released under Apple's marketing may have gotten a lot more exposure + press, and being released several years before Windows 95 it would have stolen some of Microsoft's thunder.
My first computer was a Compaq Deskpro Portable. It had a 5 1/4" floppy drive, a 40 MB hard drive and ran DOS 3.1 IIRC. I even wrote a custom autoexec.bat file so it booted into a fancy menu of common applications (like Volkswriter and BASICA). I still have the computer but am afraid to boot it up now, since the last time I turned it on it actually booted but smoke came out of the vent.
I disagree ... older PCs are much less tolerant to changes to the input voltage. A "simulated brown-out" might kill it completely. Electrolytic capacitors are probably to blame for the smoke - they definitely fail with age. The good news is that you can probably replace them since everything was through-hole back then (as opposed to surface mount).
The amazing thing was how Compaq beat IBM to market with a PC using the 386. Not surprising since they could move faster because they were a scrappy startup unlike IBM. Compaq also didn't come up with their own bus standards like MCA.
Thinking about it, it seems to be around 1991 before they were forced to do things like cutting R&D. This would have been probably be a good time for Intel to buy it.
47 comments
[ 2.7 ms ] story [ 44.6 ms ] thread"Halt and Catch Fire" - http://www.imdb.com/title/tt2543312/
HCF - Halt and Catch Fire
IIB - Ignore Interrupt and Branch
PIL - Perform Infinite Loop
etc.
I can't find an exact copy, but this appears to be somewhat of a superset:
http://www.physics.ohio-state.edu/~bcd/humor/instruction.set...
Another:
http://www.softpanorama.org/Lang/Asmorama/humor.shtml
I like:
CML Compute Meaning of Life
What's the bet its opcode is 0x2A ? :P
This would be pretty handy at times.
One of the drive tests performed during maintenance was a random seek. Normally, the head position was controlled by a servo with a feedback loop, but this one time the servo failed and the magnet drove the head assembly out the back of the equipment and into the wall .. right at crotch height. There was a supplemental maintenance instruction issued shortly afterward to limit the use of that procedure, and to not stand behind the equipment when it was being run.
Its crazy how terse PPC's instructions are, the PPC ISA book felt like reading PHD paper where as ARM's ISA manuals felt like a gentle novel.
Here's a wonderful excerpt from the latest 2.07 ISA:
"The following notation is used in the definitions below. When MMCR0_PMCC = 11, “PMCs” refers to PMCs 1 - 4 and “PMCj” or PMCjCE refers to “PMCj or PMCjCE, respectively, where j = 2 - 4; otherwise, “PMCs” refers to PMCs 1 - 6 and “PMCj” or PMCjCE refers to “PMCj or PMCjCE, respectively, where j = 2 - 6."
Get all of that? Good, now go write code to make use of it.
[1] https://en.wikipedia.org/wiki/Enforce_In-order_Execution_of_...
I'm sure that having programmed PPC assembly language, you find it very natural (IBM motto: "We found five vowels hiding in a corner, and we used them _all_ for the 'eieio' instruction so that we wouldn't have to use them anywhere else")."
-- Linus Torvalds, LKML (http://ozlabs.org/~rusty/linux.conf.au-2004-emails.txt)
But some of these instructions did not perform useful behaviour, many of them freezing the machine. Some were even worse, freezing the machine into a state where it was very rapidly toggling the bus. If you had the wrong thing attached to the bus, it could very literally be Halt and Catch Fire. Instruction $DD on the 6800 was labelled HCF in some instruction set listings for that reason.
The show is fantastic. Season 2 was good as well, but I still liked S01 a little better.
It really makes it that much more difficult for a small company/startup to compete. You can easily scale software sales with only a few people. Support, on the other hand, quickly because unmanageable and requires a lot more time and money.
The IBM luggables were huge and unreliable. They had 2 full height 5 1/4 inch floppy drives, no hard drive, a 4.5MHz 8086, and something like an 8 inch amber screen that you could barely read. Basically, IBM put a bunch of parts they didn't know what to do with into a product and tried to sell it. The only way they could really sell them was to captive audiences like students, like at some engineering schools.
2016 in that universe is probably a very different world, with lots of different types of devices with different strengths, and a much stronger focus on cross-platform protocols.
The BBC did a fun retelling of the rivalry between Sinclair and Acorn a few years ago. Worth a watch if you haven't already seen it. https://en.wikipedia.org/wiki/Micro_Men
If anything, the 2000 should've used a new chipset instead of being the same as the 1000, and there should've been a much bigger jump in performance on the 3000 and 4000. By offering different chipsets on the high end models and the low end models, they could have captured both the high end and low end markets. As it was, the high end models were useful for the Video Toaster and not a lot else.
In comparison the A500 had one expansion slot on the side.
Arcades had Street Fighter and all the action. Consoles had the most faithful arcade ports as well as all the JRPGs. Amiga/ST had the better sound, less configuration hassles, and for a while, better graphics.
PCs had...flight simulators and spreadsheets and yuck, MS DOS.
As a personal anecdote, i got into the PC world by buying a second hand 486 (DX luckily, i had not the first clue at the time). No sound card, F if i recall what the HDD was (but just having one was a step up from floppy shuffling), and maybe 4MB of ram.
By the time i was done with using it, i had added a sound card, replaced the graphics card, added a CDROM, doubled the ram (if not more), and gotten a whooping 1GB HDD in there.
For the life of the A500 it stayed the same. I did borrow an extra floppy for a while, and that allowed me to speed up the games loading for a while, but it was pretty much a sealed unit for me over those years.
That seems like a contradiction, unless nextstep was a internal project at Apple he took with him when he left.