Wednesday, 19 July 2017

The History of the Personal Computer - Part One: Before The IBM PC

Pretty much every home has a PC these days. Technically you have one in your hand in the form of a smartphone, depending on what your definition of 'personal computer' is. The lines used to be a lot clearer: presently you have a choice of a Mac or a PC. Macs are also PCs but no one calls them that. Macs weren't even called 'Macs' originally, they were 'Apples'. And why can't you still buy a PC from IBM these days, when they invented the PC to begin with? Or can you and did they? When you start to ask questions like this, it becomes clear that very few people know the full history of how PCs came to be a household item, after quotes like "I think there is a world market for maybe five computers" from Thomas Watson, president of IBM in 1943. To be fair, computers were as big as houses back then but, even in 1977, after the personal computer had come into being, the founder of one of the biggest computer manufacturers in history said "There is no reason anyone would want a computer in their home." How wrong he was...

Charles Babbage's Difference Engine
[source: computerhistory.org]
The history of computing arguably begins with the abacus, as computers were originally intended for one thing only: not to make our lives easier, but to solve problems. We humans have always been aware of our limitations: that there are certain tasks that we are largely incapable of completing accurately, reliably and in a timely manner (aside from the occasional exception). When Charles Babbage invented his Difference Engine in the 1820s, it was to solve a specific problem. Mathematics was used widely in science, engineering and navigation and the slide rule was the 'calculator' of the time. The device has limitations, however, so tables of numbers such a logarithms and trigonometric functions were pre-calculated (by people called 'computers') and printed so that answers could be looked up quickly when they were needed. Problems emerged with these 'log tables' because of errors - multiple publishers offered different solutions to the same equation and this is a significant issue when you're trying to navigate a ship. The Difference Engine was specifically designed to solve this problem, by calculating these logs accurately and even printing them onto conveniently-sized sheets. Unfortunately Babbage's invention was well ahead of its time and wasn't recognised for its potential so he was unable to secure the funding required.

Intel's 4004 [source: cpu-zone.com]
I'm going to skip most of the 20th century, because this is the history of personal computing. Although significant developments did indeed take place in the field of computing, particularly in the miniaturisation of components, prior to the 1960s, The PC largely came about thanks to the invention of the microprocessor. The first computers were mechanical devices. Following the introduction of electricity, experimentation led to many interesting discoveries, but very few applications. As early as the late 1800s, ways to manipulate the flow of electrons were being discovered, leading to the invention of the vacuum tube in 1907 and thus the next generation of computers. The reason I'm mentioning this is that it's the precursor to perhaps the most significant discovery of all - the semiconductor. A semiconductor is a material that can both conduct and insulate, depending on certain conditions. Being able to manipulate electrons on a microscopic scale led to the invention of the integrated circuit and thus the microprocessor. It is the birth of this device that shifted computer usage from terminals and mainframes into the hands of individuals.

Frederico Faggin [source: bbci]
Pretty much one man, Frederico Faggin, and one company, Intel, are responsible for the first commercially-available, one-chip CPU, the 4004. Although they were supposed to just be making a bespoke chip for a Japanese calculator company, they ended up with something more general-purpose that could be programmed. They proved this by using one of their own chips to aid the process of making further CPUs in the Intellec 4 computer. The chip was also used in the first microprocessor-controlled pinball machine. Although small computers did exist prior to the invention of the microprocessor, such as the Kenbak-1, they were slow, cumbersome, used many chips and weren't particularly versatile.

The premise of a personal computer is one that can be used by an individual, is easy to use, and is cheap enough for a person to buy. Before this time, computers were generally huge, expensive, and owned by companies or institutions. If someone wanted to use a computer privately, they had to buy time credits to use one. Bill Gates famously began his computing career by hacking such a computer so he could use it for free. This is another premise of the PC: if it doesn't do what you want it to do, find a way to make it so!

The MCM/70 [source: wikimedia]
One of the first computers that was described as 'personal' was the MCM/70, which was demonstrated to the press in September 1973 (although not commercially available until a year later). It was based on Intel's successor to the 4004, the 8008, and was designed to solve the inefficiency of multiple users sharing processing time on a mainframe. As far as I can tell the MCM/70 only had one use - to write programs in APL, a scientific language used for complex calculations and mathematical analysis. As such, most users were still big companies and the military i.e. the same types of users that were on mainframes previously. The only thing that really qualifies the MCM/70 as 'personal' is in the literal sense, as it didn't make computing available to the masses.

The MITS Altair 8800
[source: altairclone.com]
That honour goes to the Altair 8800, a computer you could build from a kit. It was based on Intel's latest CPU, the 8080, as the MITS engineers felt the 8008 was not powerful enough. Although low were expectated, the Altair was snapped up by hundreds of thousands of hobbyists. One key aspect of the Altair was its bus (the way data travels between the CPU, the RAM and other components). Completely by accident, the computer had to be designed in such a way that all these components were on removable boards. This led to the use of something called a 'backplane'; a dedicated circuit board with connector sockets on it so that cards could be plugged in, expanding the functionality of the computer. The S-100 bus was born and became the de-facto standard on subsequent PCs for a number of years. It allowed many computers to use the same hardware add-ons, and was technically the first 'compatible' standard.

Using the Altair was an experience that most people will never have to endure. Commands were fed into the computer by configuring the switches on the front panel so they corresponded with whichever opcode (from a list of instructions the CPU can carry out) the user wanted. Some data would then usually be entered and so on. You would eventually receive visual output in the form of an array of LEDs on the front panel and you would have to attach a terminal if you wanted to view output on a screen. Altair BASIC, the computer's programming language, was written by a couple of guys called Bill Gates and Paul Allen from a company called Micro-Soft.

Anyway, the Altair sold many more than was expected, and basically kicked off the microcomputer revolution from which all others followed. Being able to write and read machine language in binary, however, restricted these 'first generation' PCs from achieving wide popularity, limiting their audience largely to hobbyists and scientists. In the following months, rapid advances in technology, along with low component prices, made it possible for the next generation to introduce a keyboard and a monitor for input and output of human language. BASIC found itself as the standard for programming, and computers could now plug into a regular TV.

An original Apple I [source: wb.com]
The first meeting of the Homebrew Computer Club took place in March 1975 in Silicon Valley and was initially formed to help Altair owners build their kit. It also attracted a number of enthusiasts with a background in electronic engineering and programming. One of those enthusiasts was Steve Wozniak. He, like Gates, also got into trouble at school for hacking the institution's computer system but eventually graduated from University and got a job at Hewlett Packard designing calculators. After seeing the Altair, Woz designed the first Apple computer in 1976, financing and constructing the first 50 boards with the help of his friend, Steve Jobs. Only 200 were made in total before the Apple II was introduced a year later.

1977 was the year the personal computer really came into being and, depending on who you ask, one of the following three computers has a claim as the first genuine PC:

The Apple ][

[source: computerhistory.org]

The first Apple was not a 'proper' computer. It didn't have a case, a keyboard or a power supply. The second Apple did. Most importantly, where hobbyists had been the previous market of small computer makers, the Apple II was aimed at businesses and home users. It could be connected to a standard TV, included a pair of paddles for gaming and could display colour, which was unheard of among consumer-grade computers. The inclusion of Apple's version of BASIC in the computer allowed users to write their own programs without having to buy any additional software, and a cassette deck could be used to store data. The Apple ][ was also the first computer that had a 'killer app' i.e. a piece of software that was so useful you bought the computer just to have it. That software was Visicalc, the first digital spreadsheet. It caused an explosion of sales: between September 1977 and September 1980, this one computer took Apple's sales figures from $775,000 to $118 million, and the rest is history.

The Commodore PET

[source: deusm.com]
Folklore has it that Steve Jobs attempted to sell the Apple ][ concept to Commodore, a major manufacturer of calculators at the time. They considered Jobs' offer to be too expensive and Commodore's notorious owner Jack Tramiel demanded that his engineers come up with their own computer in 6 months. The PET 2001 was the first all-in-one home computer, with a built-in monitor and tape drive. Where the Apple ][ sold well to home users, the PET took a stranglehold on the North American education market, thanks to its rugged build quality.

The Tandy TRS-80

[source: wikimedia.org]
The final member of the 'Trinity of 1977' was the TRS-80. You've probably heard of Radio Shack, perhaps by watching Short Circuit or something like that, who had a chain of over 3,000 electronics stores in North America owned by Tandy. Again, the Altair provided the inspiration behind this computer, which started development in 1976 and was originally meant to be a kit. Based on the fact that 'too many people can't solder', Tandy's engineers decided instead to create a pre-assembled computer. Their timing was perfect. It seemed everyone wanted a computer in 1977, and Radio Shack stores took a quarter of a million of advanced orders. Thanks to having its own factories, distribution networks and retail stores, Tandy were able to get their new computer out of the doors by Christmas and apparently outselling the Apple ][ by a factor of 3,

Sources
http://www.pcworld.com/article/155984/worst_tech_predictions.html
https://en.wikipedia.org/wiki/Common_logarithm
https://en.wikipedia.org/wiki/Difference_engine
https://en.wikipedia.org/wiki/Semiconductor
https://en.wikipedia.org/wiki/Vacuum_tube
https://en.wikipedia.org/wiki/Microprocessor
https://en.wikipedia.org/wiki/Intel_4004
https://en.wikipedia.org/wiki/Minicomputer
https://en.wikipedia.org/wiki/Microcomputer
https://en.wikipedia.org/wiki/Kenbak-1
https://en.wikipedia.org/wiki/Homebrew_Computer_Club
https://en.wikipedia.org/wiki/Steve_Wozniak
https://en.wikipedia.org/wiki/MOS_Technology_6502
https://en.wikipedia.org/wiki/TRS-80
https://www.intel.com/content/www/us/en/history/museum-story-of-intel-4004.html
https://msu.edu/course/lbs/126/lectures/history.html

Thursday, 29 June 2017

System Profile: Acer AcerMate 386SX/20N [Part One]


A few years ago I acquired a 386 system for 99p from eBay. It was an Acer AcerMate 386SX/20N. I don't know why I got so excited about it - I think it was because it very closely matched the spec of my first PC, which was an Ambra 386SX/25 with 2MB RAM and a 40MB hard drive. I played A LOT of games on that system so this one would make an excellent replacement. This system was a very similar spec and even came with Windows 3.11 installed, along with DOS 5.0.

The seller's pics intrigued me because there was an expansion card in one of the 2 ISA slots, but I couldn't quite tell what it was. It looked like a sound card of some vintage, as it had a DB-9 port and what looked like two 3.5mm jacks. I was wrong. It was an 8-bit network card with an AUI port and two holes in the shield. Nevermind. (I have since replaced this with a 3Com Ethernet card.) Nonetheless, this turned out to be quite an intriguing system.



Its design is completely modular and you can remove all serviceable parts without the need of a single tool. There are two catches under the front panel that allow it to be rotated up and removed.


Once this is gone, the top case needs to be unlocked via the two blue sliding catches on either side. I would worry about these in the long-term, as they are a bit stiff and could be broken if the plastic becomes brittle. With a bit of a shove, the top case slides backwards and lifts off.


This allows easy access to the RAM slots. The expansion slots are located on a riser in-keeping with the small form factor.



Note the metal bar passing alongside the speaker, by the floppy disk - this is the mechanical power switch for the system.


The drive cage and proprietary power supply can also be easily removed from here, revealing the motherboard, which appears to be LPX, but is referred to as 'proprietary' in The PC Engineer's Reference Book [source: hp64000.net].


Note the use of what appears to be an MCA slot for the ISA riser. There were a lot of these floating about when non-IBM MCA systems didn't materialise in any great number. They were also used for VESA Local Bus. Also note the empty sockets next to the BIOS ROM chips. More on those later. Also, it needs a good clean.

All the elements of the system are integrated into the board:
  • Intel 386SX 20MHz CPU with socket for co-pro
  • Dallas RTC (which I replaced)
  • 1MB RAM on-board (I think) plus 4 slots for 30 pin SIMMS
  • Acumos AVGA1A video chipset with 256KB memory
  • Floppy drive controller (3.5" floppy drive included, 2nd drive optional)
  • Fixed disk controller (3.5" Connor drive included, optional upgrade)
  • 2x ISA slots
  • PS/2 mouse and keyboard
  • DB-9 serial
  • DB-25 serial
  • DB-25 parallel
  • DB-15 VGA
  • Fan header (for the single fan blowing over the RAM)
Even power for the drives is distributed, via a Molex connector, from the motherboard itself rather than the PSU, something I've never seen elsewhere. The PSU is a 43W Delta unit with passthrough for monitor (which I opted not to take from the seller - I think it was faulty and I don't need anymore CRTs).

Lots of people complain about the Dallas real time clock, but they're not that much of a pain. Of course, compared to a coin cell, they're less convenient and more expensive, but they're a hell of a lot better than a barrel battery as there's zero risk of the board being corroded to death.

There are some extra features on the motherboard that are hard-wired:

J15 - CPU Speed Selector
I'm guessing that there was a 16MHz variant of this system and that this jumper was set at the factory depending on which model was installed. Saying that, surely the crystal would dictate the speed, so that would suggest they used the same crystal and that the jumper enabled a divider. I guess I could try the other setting and see what happens. It also makes me wonder whether I could replace the 40MHz crystal for a 50MHz one to overclock to 25MHz.


These ones are interesting. Aside from the typo (it should say 'precharge') J13 is for another factory-set option. I know that CAS and RAS are to do with how frequently the RAM is refreshed, and a bit of digging pointed me in the direction of this patent, detailing the 'invention' of half-wait states. The explanation for this is that integer wait states were previously adequate for CPU speeds but, with the advent of faster 286 models and the 386, performance gains could be had by using N+1 wait states, where N is a whole value between 0 and 4. Given that this board is set to the quicker '1/2T' setting, I would guess this was set according to the CPU speed being 16 or 20.

Having written the above, I rediscovered this post by a Chilean member of the Vogons forum. He found a Unisys PC with the exact same Acer board within it, complete with typo and everything. His system, however, came with the 16MHz CPU and, sure enough, it's set to 1T:

[source: 133MHz via Vogons forum]
Interestingly these systems appear to use the old style of using two chips for the BIOS ROM, one for odd bits and one for even. There are also sockets for 'Shell ROM' and 'DOS Rom'. I can't find any info whatsoever on what a shell ROM would do but, given that it's just the *nix term for 'command interpreter, I'm guessing this system could support an embedded version of either Linux or DOS. Without documentation it's hard to tell.

And that brings me onto my next point. The strangest thing about this system is the apparent complete lack of documentation available. In fact this is page is probably the most comprehensive source of info on AcerMate systems. Considering it's from a major manufacturer, who are still going today, you would think that a manual would have survived somewhere in some form. My search will continue but, for now, the only documented record of a manual is in the State Library of Queensland in Brisbane. The lack of an electronic copy suggests a lack of surviving units and, therefore, a lack of end-user enthusiasm for these machines. This general lack of information, the modular design, form factor, and budget pricing suggest that this system was picked up by businesses who wanted to equip a workforce cheaply. Given that governments, businesses and corporations tend to write off and recycle most of their old kit, that would explain the lack of these systems in the wild. The only references I've found to this class of system so far in the press are the following:

[source: Computerworld, 11th May 1992]
[source: InfoWorld 27th July 1992]

So it appears that the network card it came with was a stock option on the N model and I have subsequently upgraded the hard drive to a larger model, but the BIOS restricts the size to 500MB.

At least I managed to find some technical documentation detailing the jumpers on the board:
[source: The PC Engineer's Reference Book Volume 2: Motherboards]

This means I have the option to upgrade the Acumos chipset (later acquired by Cirrus Logic) by disabling the internal graphics but no other options to speak of. And I don't know whether I would call any ISA alternative an 'upgrade'.


The BIOS itself is nice and simple. It's by Acer themselves, rather than AMI or Phoenix, and provides not only the usual configuration options but also a low level format option for the hard drive, should one be installed. Interestingly, PCem has the 25MHz model of the AcerMate on the list of machines it can emulate, although it looks like the graphics chipset differs [source: bitbucket.com].

Later models based on the 486 and beyond had a slightly more standard case, which could accommodate a CD drive plus another 5.25" device (or a 3.5" device in a bracket). Note the unusual placement of the hard drive in the final pic.

Acer AcerMate 600 [source: izhevsk.ru]

Internal view of RAM, CPU and ISA slots [source: izhevsk.ru]

Top-down view illustrating placement of components, including what appears to be a Sound Blaster 1.5 [source: izhevsk.ru]
Despite the lack of official information, it seems there are a lot of AcerMates floating about the Internets, particularly in Russian museums. I found another article here, written by a Russian enthusiast, which sheds a little light on why these systems seem to be so prevalent in Russia. While retelling the ramblings of the friend he acquired his AcerMate 450s from, he says 'then followed the story that this Acer was at a time in any financial institution (maybe even the ministry?), the bank and the FSB, and even in all these places at once'. Google translate not doing the Russian language any justice whatsoever, but giving my theory of who bought these systems some credence.

In terms of the games I would play on this system, this would be based on what I played on my first computer in 1993 and in 1994 prior to upgrading. Most are early VGA games, plus some EGA examples, that ran quite comfortably. Given that the 486 had been around for about 4 years by this point, and the Pentium was not far off, games were already starting to push the limits of the hardware and some were appearing on CD-ROM. As a result, I played quite a few games that didn't perform brilliantly on my lowly 25MHz 386, so they would perform even less well on this Acer system. Plus I only had a 40MB hard drive so was limited in what I could install. Anyway, here's a list of games with links to the excellent mobygames.com and the year they were released, with some images:

Beneath A Steel Sky Car & Driver Alien Carnage
CD-Man Duke Nukem F29 Retaliator
Grand Prix Circuit Jazz Jackrabbit Lemmings
Major Stryker Paranoid Sensible Soccer
Speedball II T2: The Arcade Game Wolfenstein 3D


Alien Breed (1993)
Alien Carnage aka Halloween Harry (1993)
Alone in the Dark (1992)
Beneath a Steel Sky (1994)
Bio Menace (1993)
Cannon Fodder (1993)
Car and Driver (1992)
CD-Man (1992)
Commander Keen Series (1992)
Desert Strike (1994)
Doom (yes, really, but in a postage stamp) (1993)
Duke Nukem Series (1991)
F117A Stealth Fighter 2.0 (1992)
F29 Retaliator (1990)
Formula One Grand Prix (1992)
Freddy Pharkas: Frontier Pharmacist (1993)
Grand Prix Circuit (1988)
Hocus Pocus (1994)
Indianapolis 500: The Simulation (1989)
Jazz Jackrabbit (1994)
Jetfighter II: Advanced Tactical Fighter (1990)
Knights of the Sky (1990)
Krusty's Super Fun House (1992)
Lemmings (1991)
Lotus: The Ultimate Challenge (1993)
Major Stryker (1993)
MegaRace (1993)
Mortal Kombat (1993)
Paranoid (1993)
Pinball Fantasies (1994)
Project-X (1994)
Seal Team (1993)
Sensible Soccer (1993)
Spear of Destiny (1992)
Spectre (1992)
Speedball II: Brutal Deluxe (1991)
Syndicate (1993)
T2: The Arcade Game (1993)
The Duel: Test Drive II (1989)
Theme Park (1994)
Wacky Wheels (1994)
Wolfenstein 3D (1992)
X-Wing (1993)
Zone 66 (1993)
Zool (1993)

Monday, 12 June 2017

CGA, EGA, Serial & Modem Cables: The Difference & How To Tell

A bunch of serial cables? Maybe not... [source: author]
So I recently had a situation where I needed a cable but I couldn't work out which was the right one. I knew at least one of them was a null modem cable and my hope was that one of them was a CGA cable. Maybe one of them was a serial cable. How do I tell? None of them worked with my monitor. Part of the problem was that I needed a cable that was male at one end and female at the other and I could only achieve this by linking two together. Now I initially had a vague idea that the different types of cable are wired differently, while some have less wires in them than others. CGA is 'straight through' i.e. pin 1 at one end corresponds to pin 1 at the other end. This is not the case with a null modem cable and I have no idea about a serial cable. Being aware of this is all well and good but it doesn't tell me which cable is which if I can't see the wires inside the cable and where they connect. So here's how to tell.

Method one: visual inspection. DE-9 cables are usually either male-male or female-female at either end. If they're male-female then it's likely (but not definitely) an extension. All serial ports on devices are male, so it can be safely assumed that a female-female cable is some kind of serial or modem cable (there's more than one). It thus follows that, because CGA/EGA ports on PCs are female, it could be assumed that the corresponding cables are male-male. This is where it gets tricky though, so visual inspection is of limited use.

Method two: dismantlement. Yeah I probably made that word up but you know what I mean. One of the cables had removable covers at each end, so I took 'em off and had a butchers:

A dismantled serial cable [source: author]
You can see quite clearly that the pin assignments at each end differ. Also note how the shielding of the cable is soldered to the shell at each end. Just by visually inspecting the cable, I was able to map out the pin assignments on a handy bit of paper. The pin numbers are indicated on the plastic next to each pin in the socket:

Wiring diagram of null modem cable [source: author]
As I said, clearly not straight through, so not a CGA cable. It's also not the cable in the photo above, just an example of the process. So what kind of cable is it? Well apparently the one I've mapped out here is a null modem with full handshaking [source: lammertbies.nl]. I'm sure this will be useful someday but, right now, it's bloody useless.

Method two: measurement. The next two cables could not be dismantled without destroying them, as they were factory-moulded. Time to get the multimeter out.

Finding out which pin connects to which [source: author]
By setting the multimeter to measure resistance, we can work out which pin is connected to which pin. Because the probes aren't slim enough, I broke a paper clip in half and shoved them into pin one on both ends. I could then connect the probes to the metal and measure resistance between each end. 1 means infinite resistance in other words no electricity is flowing. In this case, that means no connection. On the left I kept the positive probe on pin 1 and moved the negative probe to pin 2. I did this with every pin combination. Why didn't I stop when I find a connection? Because some leads are connected to more than 1 pin, that's why. When you find a connection, the resistance will reduce from infinity to negligible (or zero, depending on the sensitivity of your equipment). You'll get a rough idea of how many wires there are. Some serial cables only have 3 so watch out:

We have a match, but the pins are different numbers [source: author]
As you can see here, we have a connection between pin 6 and pin 4. If I were to swap them over we would also find a connection between pin 4 and pin 6. After testing every pin, I used a neat, free, open source program called TinyCad [source: sourceforge.net] to draw the diagrams below:
Wiring diagram of null modem cable with partial handshaking [source: author]
As you can see, this differs slightly from the first cable (and is the first cable I photographed). Apparently this is a null modem with partial handshaking. Again, bloody useless. The third cable, however, was quite a different result. For a start, both ends are male, which is a clue all by itself. It didn't take me long to establish that this cable is indeed straight through and exactly what I'm looking for!

Now the only issue I have is that one end of my cable is the wrong gender. I'm not buying some adaptor from a shop because I'm brassic. Instead, I'll take the dismantleable cable I've got and resolder it so it's also straight through. The only issue with that is that there are only 7 wires and I've got 9 pins to worry about. So now I need the CGA pinout to find out what's what:

Pinout for CGA and EGA graphics standards [credit: what-when-how.com]
As you can see, I've included the EGA pinout as well for comparison. The original MDA (monochrome graphics adaptor) only used 5 of the 9 pins available, with pins 2-5 having no connection. CGA stopped using pin 7 for video and instead assigned RGB signal to 3, 4 and 5 respectively. This leaves 2 and 7 unconnected and that happens to be 7 pins in total. Bingo!

There is one drawback. Although EGA uses DE-9 too (yes, DE-9), it needs those two extra pins (and hijacks the 6th pin, formerly used for intensity in MDA) in order to provide support for 2 bits per colour (hence two pins per colour). There are certain circumstances where the two can be interchanged but that would depend on compatibility between the monitor and the graphics card. If I wanted to maintain compatibility with MDA I would also need pin 7 but this will be exclusively CGA so I don't care.

Right, where's my soldering iron...

Rewired null modem cable for 'straight through' operation [source: author]
So here is the result of my meddling (no such thing as 'meddlings' apparently, but I think it sounds better). Pins 7 and 8 were already linked by a blob of solder, which is no skin off my nose considering 7 is unused. I snapped the covers back on the cable, plugged it in and...

Nothing.

Took me a good 15 minutes to remember that there's a switch on the front panel of the 1084 where you can choose which input to display (like every other bloody monitor - what an idiot!). Anyway it's not like a rewired the cable for nothing - it still wouldn't have worked even with the monitor on the right input selection. So now it works like a charm. I think I'll do another article soon on the differences between CGA composite and RGB.