The OS/2 Museum sometimes seems to have a knack for acquiring hardware so obscure that it cannot be even identified. One of the more recent arrivals was a seemingly typical Baby AT 286 board with an 8 MHz CPU. The board was in remarkably good condition for its age, having been produced in 1986; the date code on the PCB could be read as 15-98 or as 86-51, but there’s no question which of the two interpretations is correct. A significant contributing factor to the good shape of the board was no doubt the fact that it uses a CR2032 lithium coin battery and not one of those horrible leaky NiMh rechargeables.
The board claims to have been made in Japan by a company named Fujitech, or maybe Maxware. Interestingly, a very similar Fujitech XT board was seen with a sticker on it referencing Octek, a Taiwanese company. This would not be the first board supposedly Made in Japan that was really manufactured in Taiwan or China, but at least this “AT-BABY” uses almost exclusively Japanese components, whether it was actually assembled in Japan or not.
The BIOS can often aid in identifying an unknown board, but not in this case: Someone helpfully replaced the original BIOS with two EPROMs holding a 1990 AMI BIOS. That, on the one hand, is quite useful (the 1990 BIOS can handle user-defined hard disk types), but it also makes the board a little less original and a little more mysterious.
The chipset is the original Chips & Technologies CS8220 (that’s the one which coined the word “chipset”, or CHIPSet in C&T’s original usage), with all of the five individual chips made in Japan. The board does not use the C&T 82C206 integrated peripheral chip (the board design is likely just a bit too old for that), rather it uses discrete components exactly like a classic IBM PC/AT, but of Japanese origin: Two NEC D8237AC-5 DMA controllers, two NEC D8259AC-2 interrupt controllers, a NEC D71054C timer, a Hitachi HD146818P RTC, and even the memory chips are made by NEC. A sticker on the board says “MAXWARE Made in Japan” to reinforce the Japanese connection. The only major non-Japanese chips are an Intel 8742 keyboard controller and the Siemens SAB 80286-R CPU.
Apropos memory: Someone had harvested four 256 Kbit DIP memory chips from the board; there are two banks of eighteen chips each, and since the second bank was incomplete, only 512KB was usable (the board has labels the memory sockets as BANK0/1/2/3, but banks 0+1 and 2+3 are really only a single bank each as far as the chipset is concerned, since the onboard memory must be 16-bit; I will further refer only to banks 0 and 1, meaning the two 16-bit banks). Once I replaced the missing chips, the BIOS reported 640KB RAM… but what happened to the remaining 384KB?
This is where the unknown origin of the board was a problem. I could not find any information about the jumpers on the board. After some experimentation, I established that jumper block J29 controls the memory size, and I was able to select four different settings: 256KB (likely intended for use with two banks of 64 Kbit chips), 512KB (one bank of 256 Kbit chips), 640KB (one bank of 256 Kbit chips, one bank of 64 Kbit chips), and 1024KB (two banks of 256 Kbit chips).
There was just one remaining problem: With the 1024KB setting the board insisted on 512KB base + 512KB extended memory, not the arguably much more useful 640KB base + 384KB extended. So, how does one jumper the board to have 640KB base memory and not lose the remaining 384KB?
After consulting the CS8220 datasheet, I concluded that one doesn’t. The 82C202 chip has two input pins, SEL0 and SEL1, which allow for four combinations of memory layout, and those four combinations are exactly what I had already discovered through experimentation. To access the full 1MB RAM, the only option is to split it into 512KB base and 512KB extended.
That seems strange from a more modern perspective, but the CS8220 chipset was released in 1985 and was intended to be highly compatible with the IBM PC/AT. And the PC/AT simply did not support more than 512KB base memory on the system board—although a 16-bit 128KB expansion card could be used to increase the PC/AT base memory to 640KB. And that kind of board would very likely work the same in the Fujitech board.
The Chips & Technologies CS8220 is actually notable enough to have made IEEE Spectrum’s 2009 list of 25 Microchips That Shook the World, for enabling the widespread production of cheap AT clones. And it certainly did, as I established when going through the endless list of 286 boards listed on TH99.
The Fujitech board has a depressingly large amount of other jumpers (no DIP switches), and I was not able to determine their function except the above mentioned J29. Maybe someone actually knows what they are, or maybe I’ll someday try to figure what they do. So far after a few quick experiments, I only found out that one switch selects the ROM chip type (27256 vs. 27128). The remaining jumpers, when changed, simply prevent the board from working.
There’s also one extremely annoying oddity about the board: The power connector. The pinout is clearly standard AT, but the actual pins are not. They are round and the normal plastic shroud on the connector can’t be plugged into the board. Fortunately I was able to sufficiently mutilate a cheap ATX to AT adapter such that it can now be properly plugged into the board.
All in all, the Fujitech 286, whatever its actual provenance, is a classic AT design, probably difficult for software to distinguish from a true blue 8 MHz IBM PC/AT.
When researching how 286+ machines handled the physical memory mapping when more than 640k of actual RAM installed, I found out that most boards including IBM’s own PS/2s do the 512k+512k split or the 640k+384k split. The later Model 80s and most clone chipsets reserve the top 64k at all times for ROM BIOS shadowing (you can’t use it as extended memory even if shadowing is off in many cases).
What I want to know is what happens to the memory mapping when the machines enter protected mode…. particularly with Windows 9x since it has to juggle between real and protected mode all the time. It’s likely a mess like most things PC related.
Oh, and that power connector was also used on some Leading Edge machines all the way into their 486-era machines. Quite annoying when you had to service them. If I recall the power supplies were all made by Hi-Pro. Regarding the memory split, were there any 286/386 clones that offered the 640k+384k option prior to the PS/2’s 1987 release? It might explain why this board is limited to 512k+512k. Clone makers likely were waiting for an IBM created specification for extended memory mapping.
I had a AST Premium/286 back in 1987 and it was 640KB/384KB. I personally never encountered a 512KB/512KB split system. Can’t imagine they last long as that limited conventional memory.
386+ PCs pretty much all reserved 256KB for ROM shadowing (which could potentially be used as upper memory as well) and in 486+ the remaining 128KB was used for SMM.
Windows 9x does not switch between real and protected mode. It stays in protected mode and runs 16-bit code in a V86 task. That simplifies things because paging is effective the whole time.
I don’t know about clones but the first IBM PC with 640KB RAM on board was probably the XT Model 286 in 1986. It had 640K, with a jumper to disable the top 128K so that only 512K remained. But at the time the first CHIPSet came out (1985), 512K base memory was certainly the standard.
You’re very likely right that clone makers didn’t just want to start shoving RAM between 512K and 640K in case IBM did something different with that region, like expanded memory or some new hardware or whatever.
The power connector is just bizarre. I’ve seen lots of funky connectors on Compaqs and Dells etc., but this one seems to be different just for the sake for being different, since the actual pinout is identical.
I had never seen the 512/512 split before either. But the Fujitech board must be a 1985 or at most early 1986 design, older than the XT Model 286 which had 640KB base memory.
As far as I know the original 1985 CS8220 CHIPSet was the only one with the 512/512 split, the newer CS8221 (NEAT) was from 1987 and follows the XT Model 286 architecture, with 640K base memory plus an option to disable the last 128K of that.
“86-51” – 51 week of 1986 year?
I may be misremembering, but weren’t there peripherals (such as EEMS cards or XT/370 hardware) that required the motherboard to have no more than 512k? In which case it would be worth having that configuration as an option. It may explain why Amstrad’s 2086 and 3086 kept the 512k / 640k jumper, even though none were ever shipped with 512k.
I always hesitate to comment here because my memory is poor. I worked for a clone maker for about 7 years starting in 1987. The owner tended to get the motherboard of the week from Taiwan, so I dealt with a lot of variations, chipsets and issues.
One thing that probably doesn’t apply specifically to this chipset, but I’ll mention it anyway was that I’m pretty sure we had some 286 boards that supported, with 4 rows of 256Kbit chips, 640K base RAM and then a combination of EMS memory or shadow ROM. They came with DOS drivers to enable it.
But then as I said it’s all a bit of a haze so I’m probably remembering it wrong and they were 386DX boards.
Yes. And that matches the other chips on the board, pretty much all manufactured in mid to late 1986.
I am pretty sure you’re right and EEMS could use that memory range, quite possibly some other hardware as well. I figure the jumpers wouldn’t be there if no one needed them (I am less sure about BIOS configuration options which sometimes have very mysterious purpose).
No, I don’t think you’re remembering wrong. The C&T NEAT chipset (CS8221, for 286s) supported up to 8MB DRAM and some of that could be EMS, and it did support shadow ROMs as well. The older CS8220 on this board is not nearly as capable.
>I am pretty sure you’re right and EEMS could use that memory range,
If I remember correctly, some early multitaskers even recommended to disable as much motherboard’s memory as possible, so extension cards could backfill address space with ems capable memory.
DesqView wanted to backfill to 256kB which meant most 286 systems would have some motherboard memory that never saw use. Windows 286 was a bit weird in that the backfill point had to be set high enough to include all shared DLLs below that point while still low enough to fit Excel, Pagemaker, or OldApp in the large page frame. EMS was fun.
The IBM extended memory cards (128k/640k) and (512k to 2MB) only permitted the start of its extended memory block at multiples of 512k (i.e. 1MB, 1.5 MB etc.). Some third party extended memory cards followed that pattern. Installing the IBM card into a system with 1MB on the motherboard would require setting the motherboard RAM as 512/512. That would result in a system with 640 k (motherboard and 128k from expansion) and 1 MB of extended (512k from motherboard and then 512k from expansion). The preferred 640/384 split would lead to the motherboard extended memory being ignored.
The inability to split a memory bank between addresses was probably driven by cost. Adding the circuitry to do that would cost a few dollars and works the same but cheaper always wins out. Especially if it would be a few years before anyone could afford the memory to discover the limitations.
Couldn’t the NEAT chipset map memory to A0000h-AFFFFh for 704KB conventional memory as long as you didn’t have an EGA or VGA card ? I recall doing that on an old 286 PC which I think used a NEAT chipset but it was a long time ago.
P.S. Since EEMS was mentioned might anyone have the original EEMS specification ?
Indeed the NEAT chipset could do that. It could enable RAM in the A000-BFFF region in 16KB blocks.
I have never seen the EEMS spec but there’s a bit about EEMS here, for example. I have also read more than once that EMS 4.0 is basically EEMS with minor changes. Some detail also here.
I vaguely remember an extension card with two drivers, for eems and ems 4.0. But judging from intlist, the differences are really not that big, a few subfunctions have different numbers and one or two have slightly different functionality.
Dave Williams old reference guide Chapter 10 includes a list of the EEMS functions and shows which were used in EMS 4. http://nersp.nerdc.ufl.edu/~esi4161/files/dosman/chap10 The interesting function that was not carried over to EMS 4 was the ability to deal with accelerators and cache though getting that part of the specification required another special order from AST.
While Dave Williams does identify the three AST white papers that would need to be gotten to get the complete EEMS specification, those are not part of the large AST document cache on the web.
The EEMS functions are documented in the Interrupt List. I want the actual EEMS specification to put on my website for preservation. I have the EMS 3.2 and EMS 4.0 specs but not the EMS 3.0 or EEMS specs.
Interestingly, it seems that the first CS8220 chipset did not have separate CPU and AT/ISA bus clocks.
That is right. The bus speed was tied to the CPU speed and there was no provision for even a divider. The CS8220 chipset seems to have been essentially designed for 8 and 10 MHz 286s, and that was about it (the 8 MHz chipset variant could also be run at 6 MHz).
The board has three oscillators. The usual 14.31818 MHz one for the timer, 16 MHz for the CPU and chipset, and 12 MHz for the 8742 keyboard controller.
At the time, IBM offered a 128K card, and a 512k card. The 128k card could only be started at the 512k address, and the 512k card could only add extended memory, and could only start at the 1Mb address. So if you split the 512k/512k, then you could add 1 128kb card, and have 640 conventional, and 512 extended, using one slot. Then you get into slot management: Which brings up the memory card I had, Everex, had 512, could be 512k conventional ( only 128K would count), 512k extended, or could split the 512k into 128k conventional, 384 expanded. Later on, they offered a 16 bit card with simms, and its own memory controller, that could do the 640 split.
Is very very similar to the “ASEM AST 286 B” – i fixed the board same days ago.
https://www.dataino.it/pages/MOTHERBOARD-ASEM-AST-286-B.html
https://www.dataino.it/images/286.jpg
Nice work! You’re a lot better at repairing this stuff than I am.
And yes, that sure looks like 99% the same board, it’s not identical but clearly very, very similar. I was lucky to have the CMOS battery there.
I think a very similar board, if not identical, was used in BIM PC/AT clones sold in Poland in 1987. Here’s a review of the computer published in September 1987 in Mikroklan (in Polish, though):
https://www.swiat-owocow.pl/?issue=uklan.9.87&article=bim
The user-unfriendly memory split option has been mentioned in the article. Also, the author mentioned that many other PC/AT compatible motherboards had been implementing the 640+384 memory split option for some time as it was much more useful for TSRs or memory hungry DOS applications.
As I remember it, yes, IBMs cards never offered a split, and the 512k card only started on 512k boundaries, enter aftermarket: AST and Intel boards offered the split 128k/384k, and about two years afterwards, all the 286s had the option in BIOS. Back to IBM, none of their BIOSs on 2 6Mhz or the 3 8Mhz offered the option, but the 8Mhz machines came with 512k on the motherboard. ( as did the XT 286 ). I distinctly remember the 286/20Mhz using 4 256k sipps, had the memory spit option.
I remember that type of power connector from a PC/XT mother board. Afaik that connector were a standardized generic type and I assume that the manufacturers opted for it as it probably was cheaper. Afaik the one used on PC/XT/AT and compatibles were only used there.
IIRC you could just force a regular PC/AT power supply onto that type of connector but you might had to use loads of force.
Re the memory split: At the time the future of operating systems wasn’t exactly clear, so it wasn’t obvious that a 640k/384k split would be superior to a 512k/512k split. Given that a 640k/384k split would create a head ache for any additional RAM add-on card, 512k/512k might had been the safer choice.
Also, at what point in time did PC compatibles in general start to have a full 640k of conventional RAM?