How did the monopoly begin, or a little fuss with the IBM PC 5150



    For English press One

    Every lover of old iron has a fetish. Often in eastern (and part of western too) Europe, this is the ZX Spectrum, a wonderful computer, which, however, did not leave a significant legacy. Another thing is the IBM PC 5150. This computer is also loved by many junk workers, and many revered it for its influence on the industry. For how he ousted all competitors from the market. But the story of this wonderful computer is known to every schoolchild, but it turns out that not many people know what was inside him.

    (there are a lot of pictures under the cut and even the video is!)

    So, it is shocking to many that there was no 640KiB of RAM in the IBM PC 5150. 640KiB at that time was truly a huge amount of RAM, and up to 64 KiB maximum could be placed on the motherboard of the first revision of the computer. Yes, only 64 KiB, like the home Commodore 64, for example, or a little more than the most popular version of the aforementioned Spectrum. Of course, there were memory expansion cards, but they appeared later, and the second revision of the motherboard already contained 64 KiB of RAM in the basic version (a very buggy version, which, I believe, was not on sale, but more on that later), and the maximum could place as many as 256 KiB! But, buying the first basic version, you received only 16 KiB. Imagine an IBM PC with 16 KiB of RAM ... DOS cannot be run on it.

    ... Yes, he was not needed, for this version: it did not even have a drive. And the manufacturer did not offer a hard drive for the IBM PC 5150 even as an option. How could such a computer be used? The fact is that in the IBM PC ROM, the BASIC interpreter was "sewn up", which was loaded in the absence of another boot option. That is, everything worked exactly the same as on 8-bit computers of that time: you received a computer that, after switching on, loaded the BASIC language interpreter from ROM and had from 16 to 64 KiB RAM. How to load programs without DOS into it? Using a tape recorder. Yes, the IBM PC 5150 had a port for connecting a tape recorder, and a BASIC in ROM was able to record and load programs to / from tapes. Everything is like on your Spectrum! And the computer itself, in general, was 8-bit. No, the processor was completely 16-bit, even with a 20-bit address bus, and it was completely brought out (by the way, that is why the 1st megabyte of memory was so important for the ISA bus all the time of its existence, only 20 bits of the address were allocated to it, and it did not “see” anything outside the 1st megabyte). However, the processor data bus was cut to 8 bits, precisely in order to use the 8-bit peripheral. And, although 20 bits of the address allowed addressing as much as 1 MiB of RAM, all information exchange in the IBM PC 5150 was carried out on a bus with a width of 8 bits. Just like on the Spectrum. It’s even simpler, because many computers of those times already used custom chips, such as ULA in the ZX-Spectrum or BBC micro, and Commodore acquired MOS Technology for its needs, which produced some chips exclusively for Commodore, so the clones of these computers were weighty not so easy.

    The display was still more fun. At the start, the IBM PC 5150 was offered only with a monochrome MDA video adapter, unable to display graphics. Only monochrome text, only hardcore. But the text was displayed pretty high quality. Such an adapter required a special monitor and was perfect for business users (with a drive and memory expansion to load DOS). But a little later, a CGA color adapter appeared in the options, which had a composite output for connecting to a TV, in addition to a digital RGBi output for a monitor. Such a card displayed text much worse, as it had a much lower resolution, and was poorly suited for business, even with an appropriate monitor. But for home use it was much better: the monitor was not needed, it was possible to connect to any TV,magically turned into a larger number if the developer knew how to use composite output correctly. And many were able. In general, CGA was not such a dull card at all, as many people remember playing on a VGA monitor in CGA emulation mode. The TV was better.

    I already had such an IBM PC 5150 for quite some time, but my hands didn’t reach it for one simple reason: it was somehow problematic. When I received it, it will not turn on. I quickly found a shorted capacitor and bit it out (it was on the -12V line and I didn’t need it anyway), but there was definitely something seriously wrong with the memory of this computer.

    Here we should make a small digression. The fact is that there was no BIOS Setup on the IBM 5150. When loading, the BIOS read the position of 2 sets of microswitches on the board, SW1 and SW2, and from them determined the hardware configuration: the presence and number of drives, the type of video adapter, the presence of a mathematical coprocessor, and the memory configuration. The memory configuration was set as follows: 2 switches in the 1st block told the BIOS which of the 4 memory banks directly on the board were full, and the first 5 switches of block 2 told the BIOS the total amount of memory in the system, i.e. the amount of memory on the motherboard and expansion cards.


    Light blue blocks SW1 and SW2 are visible on the board

    Each bank consisted of 9 chips (8 bits + parity bit), and stored 16 KiB on the first revision of the board and 64 KiB on the subsequent ones. This is where the first problem begins. Due to a bug in the BIOS, if the board is configured to use not all memory banks, that is, from 1 to 3, then the BIOS considers that all banks are 16 KiB, even in later revisions, where the bank size is 64 KiB. Thus, if you have 3 banks of 64 KiB on your board, the computer will “see” only 48 KiB of memory, instead of 192. There is another bug in the BIOS that showed non-existent memory errors on late revision boards if not all banks were installed. It is these two bugs that make me think that computers that support 256 KiB on board were always sold fully equipped with on-board memory,

    So, I had an IBM PC 5150 with a late revision board and an additional 256 KiB memory card. However, when it was turned on, it generated a memory error 0800 201 and stopped POST with the inscription PARITY CHECK 1.


    A quick googling showed that such errors are often caused by improperly installed switches on the board. I started the experiments. To begin with, I removed the additional memory card and rearranged the switches accordingly. It did not help. “Yeah,” I thought: “The thing is on board memory.” And I decided to remove all the memory that can be removed. Only the 0th bank remains, it is soldered on the board and cannot be replaced. And the error is gone! The computer booted into BASIC and reported a little less than 12 KiB of memory.


    My first thought was: “Wait, but I have 64 KiB !!! Is BASIC eating so much? Can not be!". Of course, the attentive reader guessed that this (e) effect is a consequence of bug No. 1 in the BIOS. But at that moment I did not know this yet.

    In general, after a long fuss, I stumbled upon a completely wonderful site , which since then has been the IBM PC bible for me, and then helped out more than once. It was there that I found out that my board sees only 16KiB if only 1 memory bank is installed, and that error 0800 201 means that the microcircuit responsible for the parity bit in bank 0 is faulty, and the error disappeared when withdrawing the remaining banks precisely because the BIOS saw only the first 16 KiB in this case, and the error was higher. Unfortunately, bank 0 is soldered to the board. To my regret, after I pulled out this chip and installed a block in its place, the board stopped turning on completely. At first glance, I didn’t see any damage from the soldering, but since I soldered the microcircuit with a hairdryer, trying to heat the entire board, and not just the soldering place, I suspected that some other memory microcircuit could go bad, and now the place where the first 16 KiB was located, because, in case of errors in the first 16 KiB, the computer does not show any signs of life . And the ROM could go bad. Or something else. In general, it was necessary to understand, but there was no time. And I put off this computer until better times.

    Quite a long time ago, I came across the expanses of The Ben Heck Show on the book ZX Spectrum ULA: How to design a microcomputer . Since I have long wanted to collect a Spectrum clone for myself, and here they promised 100% compatibility with the original ULA on widely available loose powder, it became very interesting to me. In the end, I bought a book, and, after reading it, I decided to buy a board, divorced by the author. I know that this is not sports, but I wanted to have a working Spectrum first, so that later I could customize it, and buying a ready-made modern factory board speeds up the process very much, and it costs a lot. However, I liked the board assembly process so much that I started looking for something else to assemble.

    And I found her .



    Yes, this is, as far as possible, an exact copy of the original 5150 board, but only this is a new, modern board. Very very high quality. Of the differences from the original, I saw only another case of the delay generator (as I understand it, it was used for DRAM regeneration signals):


    on the left in the large case is the original delay generator, on the right in DIP-8 is modern

    and wiring of ceramic capacitors: in the original board, as on the clone, all platforms for capacitors are 3-pin. The fact is that the polar electrolytes on the original board (as well as on the clone) are three-pin. The average plus, and both at the edges - the same conclusion of the minus. That is, although the capacitor is polar, it can be installed on the board on either side. Thus, for electrolytes on the original board (and on the clone), the average contact is always plus, and both at the edges are minus. For ceramics, this is not so. Since ceramics are not polar, they do not need such protection from a fool-collector, and capacitors have the usual two contacts. There are still 3 holes on the board, but now the average is minus, like one of its neighbors, and the other is plus. On the clone, the configuration of the holes for ceramics is the same as for electrolytes: plus in the middle. Therefore, the contacts of the ceramic capacitors on the clone are too close to each other, which slightly interferes with the assembly. This is where the differences I see end. The most interesting thing is that the kit includes all the chips necessary for assembly, including the chip with the firmware of the IBM PC-compatible BIOS. Some of them are now quite difficult to find, and you still need to be able to flash a clean BIOS chip, because the JEDEC pinout was not used on the IBM 5150. Can do because the IBM 5150 did not use a JEDEC pinout. Can do because the IBM 5150 did not use a JEDEC pinout. Can doadapter , but it's not aesthetically pleasing. Not all microcircuits in the kit are new, some have barely noticeable soldering traces, but all the cases are in excellent condition and in general everything looks like a very high-quality product. Cons - the price. For the price of a set, you can buy 2-3 original used boards on ibee. But this did not stop me: I had the original used board, it did not help me much. Yes, and the joy of assembling the Spectrum has not passed yet, and there I did everything I bought separately from the board (well, I already had 80 percent, since it was different 74HC, and I have enough Z80 processor clones in the storage). In general, after a couple of killed evenings, the board was indistinguishable from the original (yes, although the BIOS had an open-source clone with the board, but I installed the original IBM chips:



    Soldering such a high-quality board is a pleasure, although I want to restore the original one over time, but this one will do for the first time (everyone knows that there is nothing more permanent than temporary solutions, right?). So, after assembling the board and installing it in the case, we will need:

    1. floppy disk controller:



    The original IBM 5150 can read and write only to double-density disks. 360KB of data fits on one 5.25-inch diskette, 720KB on the 3.5-inch one. My computer has one 5.25-inch drive. To write floppy disks, I connected it to a more modern computer (486) and recorded a system diskette with PC-DOS 3.30, several archivers (calculated to add later HDD, or its flash emulation), a driver for a network card and several games.

    2. some more memory:


    Rate the size of this ultra-high integrated circuit board compared to the keyboard.

    This board is inserted into the ISA bus slot, which at that time was not a brake obsolete bus, but rather an extension of the local bus of the 8088 processor, since this processor, although it was 16-bit, had a truncated 8-bit data bus, moreover multiplexed with the address bus. The address and data came to the ISA bus separately, after the demultiplexer. And the bus worked at a processor frequency of 4.17 MHz.
    In addition, this board has a real-time clock (yes, there wasn’t any on the motherboard), however, they need a driver that would extract time from the board and install it in DOS at boot time, and there’s one serial and one parallel port. I have installed the memory here to failure - 384 KiB, in order to have the maximum possible 640 KiB. This, of course, is overkill for the 5150, but the supply pocket does not pull.

    3. Video adapter:

    First, I tested a computer with a known-working VGA adapter, designed for a 16-bit bus, but working on an 8-bit bus. But what is the VGA for the IBM 5150? VGA is about 386, well, maybe the late 286. It also needs CGA or Hercules (I don’t consider MDA, because I want graphics). For example, this:



    All screenshots and videos are still with a VGA adapter. But with CGA:



    So, everything is connected, everything works, the system diskette is created, there is a monitor with a composite input, can I start the tests? Not really. Need another keyboard. The IBM PC 5150 and PC / XT 5160 used the same DIN5 connector as the IBM PC AT 5170, whose keyboards are fully compatible with the PS / 2 standard (provided the connector is replaced), which is widely available today, but other signals are used in the 5150 and 5160. That is, if you connect the AT or PS / 2 keyboard to the 5150, it will not work. You can buy keyboards for 5150 and 5160 on Ibei, but they ask for them like about the whole 5150 without a keyboard. And no matter how much I like Model F, I'm not ready to pay that much for the keyboard.

    Fortunately, there is a way out :


    A small PIC, 3 resistors, a diode, and a capacitor, for courage - all you need to turn your PS / 2 into XT. Oh, and the programmer, yes. Interestingly, the 8-bit CPU in this microcontroller can operate at a frequency of 20 MHz. Then the “adapter” will be more powerful than the most central processor 8088 installed in 5150.

    The first IBM PC-compatible computer that appeared in my life was some kind of clone based on 286 processor at my mother’s work. There I stuck in Golden Ax, Death Track and Prince. However, experience in the clone 8088 also had: much later appeared in other Search, for which we also spent a lot of time playing various games (we studied programming, if you could call our crafts on BASIC, we are on the Spectrum), and I still remember in my memory how we played about the same set of games on his Search, that is, in fact, on a PC clone, and, quite inhibitory. And it was played fun!

    However, as in the case of the Duma at 386, my memory failed me. Or, rather, before the requirements for the speed of games I had much lower. The original IBM PC was a very leisurely computer. This is how long it takes to load the game Lemmings (the composite signal to VGA converter could not extract color from the CGA signal, so the picture is black and white):


    In general, that’s exactly how computer use went: booted from a system diskette, inserted a working one (nevertheless, a second drive was often bought for work so as not to “distort” the diskettes all the time), and loaded the program. Hard drives appeared later, and it was not so easy to understaff the IBM 5150: the power supply was not designed for this.

    I really want to play around with the 5150 network. Naturally, this will not work in this configuration; a 360 KB floppy disk cannot fit the network driver and the TCP / IP stack. Therefore, you have to break the tradition. We continue to complete the computer:

    4. Actually, the network board: The

    image

    board for the 16-bit bus, however, it works perfectly on the 8-bit bus. It has a connector for 10Mbps twisted pair and runs the risk of being the fastest device in the system.

    5. The fifth and final expansion slot will be occupied by the hard disk controller (Yes, there are only 5 slots in 5150. There were already 8 in 5160 (IBM PC / XT), although there was a nuance .):



    This is an open source XT-IDE , since MFM drives in working order today is already a huge rarity. Unfortunately, this controller worked very poorly on the native AMD 8088 processor, and I did not understand this right away, but only after I restored the original motherboard (see P.S.). During operation, the computer is constantly blocked, giving a memory parity error. Replacing the processor with the NEC V20 completely solved the problem,



    but I only managed to understand this after a few weeks of experiments. I screwed the Winchester format 2.5 inches, so as not to collective farm any adapters:



    In general, it’s nice that the engineers who designed the 5150 case provided the option to install 2.5-inch drives!

    But in general, the chest with fairy tales looks very old-school!



    so, booting from the hard drive:


    To start the network, I decided to write a small bat file that loads the packet driver of the network board and dhcp.exe from the mTCP package. I did not cram all this stuff into autoexec.bat, since it takes up a lot of memory, and is not always necessary. And if necessary, run the batch file for a short time:


    you need to check if the Internet works:



    well, my ftp, for which everything was up to:



    let's see what’s there:



    Well, and lastly, another example of how slow the IBM PC 5150 was:


    Note that there are definitely more than 4 colors.

    PS In the end, I restored the original board. Naturally, being sure of the sol skill mad skillz, I could not seriously assume that I damaged the board by evaporating the parity bit chip. I suspected that some other chip had gone bad. Having drunk out the entire zero bank, I carefully checked each chip: they were all in order. Several times rang all the tracks, they also turned out to be in order. It was only by chance that I discovered that I had damaged the metallization of the vias responsible for recording the signal of the parity bit of bank 0. It so happened that, while ringing the contacts, I checked the connection of the recording signal with the neighboring microcircuit belonging to the 1st bank. And there was contact with her. Therefore, I did not notice the damage. And there was no contact with the rest of Bank 0, since a track on the upper layer led to it. In general, I had to solder the wiring,

    Also popular now: