IBM System/23 Datamaster
System/23 Datamaster | |
Manufacturer | IBM |
Model | 5322 |
RAM | 32KB/64KB/96KB/128KB |
ROM | 128KB |
Hardware Description
Microprocessor
The CPU selected to serve as the core of the system was the Intel 8085. However, as the component references were ofuscated identifying the CPU was not a straightforward task. It was hinted that the component with reference 4178015 could be the part. To confirm the true identity of the integrated circuit, an exchange with a legit 8085 was done: the remarked part went into a P2 CPU board and the P2 CPU went in place of the unknown component. The test went successfully and the cross reference was proved as fact.
As a side note, when studying part of the code, it was discovered that the ROS makes intensive use of the undocumented opcodes of the 8085. This was in part to hinder efforts to reverse-engineer the computer and its firmware and bring compatibility with the System/34 BASIC by emulating some of its registers.
ROM Operating System
ROS Code | ROM Reference |
---|---|
02 | 4481186 |
09 | 8493747 |
0A | 8519402 |
0B | 8519404 |
0C | 8519403 |
0D | 8519405 |
10 | 8519411 |
11 | 8519407 |
12 | 8519408 |
13 | 8519414 |
14 | 8519406 |
15 | 8519416 |
16 | 8519409 |
17 | 8519410 |
18 | 8519417 |
19 | 8519411 |
The ROM Operating System or symply ROS is the firmware of the System/23. It consists in a set of sixteen ROMs of 8KB each, for a total of 128KB. Each ROS ROM has a unique diagnostics identification code, which is determined by the outputs of two 74LS138 3:8 decoders. ROMs 02h and 09h are fixed in the memory map, where the rest are paged in the memory range 4000h-7FFFh. ROMs 0Eh and 0Fh are not present but the logic to select them is implemented even if there is no place to place them in the board; still, with an appropriate ROM adapter their space could be enabled to inject code into the system.
ROMs paged 0-7 are present in the board while ROMs paged 8-15 are expected to be provided by expansion cards on their corresponding slots. Therefore, the maximum theoretical ROM capacity for the Datamaster consists of 272KB if the 0Eh-0Fh gap and pages 8-15 are used.
Regarding the diagnostics, every single ROS image contains its own reference inside the code. It is still not known at the moment of this writing but it is supposed to be part of the verification algorithm used by procedure PID 1200. Other important aspects to have in mind during the checks are that if the ROM identifier is inverted the memory is faulty. In case it is underlined, usually means that it is not present or detected. Usual causes for this fault are either power supply issues or memory select signals.
RAM Memory
RAM in the Datamaster is completely contained in one to two boards complementary to the motherboard and are attached through a card-edge connector of 36 pins each. This facilitates the removal and placement of memory cards into the system and grants the possibility of fast repair and extension of the computer. There are two memory slots, and at the same time official memory boards were produced in two sizes: 32KB and 64KB respectively. This led to five possible official configurations.
Still, it is known that the official maximum of 128KB is just the maximum for the earlier models of 5322, as later revisions could address up to 256KB by configuring some jumpers in the motherboard. This is possible as the bank control register is implemented with a 74LS670, which is 4 bits wide, giving 16 pages of 16KB each. Additionally, there is a non-banked page which is used among other things as the display memory. For this reason the actual theorical maximum memory for a System/23 is 272KB. Still, it has been hinted that some clones of the system exist and that those expand the width of the page register to eight bits, giving the theorical maximum to 4112KB to them.
The memory boards contain one or two TMS4132 arrays of 9 memories each. Having nine units per bank allows them to have a data byte width of data plus a ninth bit for parity. Both because of the rareness of the format of the TMS4132 and the replacement of the official reference led for years to believe that IBM soldered the memories in piggyback to cope with failure rates when in reality it was a feat of Texas instruments to sell them directly soldered after manufacture of both dies. This kind of memory contains a 16KB bank per package and both packages have a slight difference of the pinout to not have conflict with /CAS and /RAS.
Feature board | Option board | Total |
---|---|---|
32KB | None | 32KB |
32KB | 32KB | 64KB |
64KB | None | 64KB |
64KB | 32KB | 96KB |
64KB | 64KB | 128KB |
Memory is subject to many diagnostics tests, some of which are considered critical and could prevent the system from successfully IPL, giving the impression of a completely dead computer whereas only the memory could be failing. It has also been tested that the computer won't boot if no memory board is present at the "feature" socket.
Diagnostics port
The System/23 has a dedicated diagnostics port. It is controlled by a single 8255 by using its port B, whereas ports A and C have no relation in function; for this reason it is deduced that port B is working in mode 0, without handshaking of any sort. This fact is confirmed by the eight data lines which conform the data port being directly connected only to port B and the remaining four signals are for supplying power to the probes.
After finding the pinout of the diagnostics port a simple probe containing a led per data line was built, and it showed a count when booting. Removing the RAM board(s) caused the count to stop at "00000100" (4 in decimal), which corresponds to a memory check test procedure of PID 1200. With those facts it was deduced that the port was outputting a two-digit hex code which was written just before the start of a test routine and would stop when the error was considered critical.
For most cases it is not necessary having the probe, as the same values that are outputted through the service port are also written in the video memory, displaying the passed tests and the errors encountered. However, as the same tests that check the video display controller are the same routines that initialize it, all the tests made before the initialization cannot be seen in the screen until passed. In case some of them failed the screen would not be initialized and therefore the results wouln't be seen. For this reason the probe is still needed.
Power Supply Unit
The power supply of the computer is a heavy block which consists in a linear supply that outputs +5V, +12V, +24V, -5V and -12V. Its connector is a 12-pin molex structured in three columns and four rows. Other than the voltages, it also provides with a "power good" signal as posterior IBM computers would, such as the IBM PC. The first IBM PC prototype used the same connector and possibly the same pinout. Adapting an ATX supply to feed the main board is possible and relatively easy to do (actually, it is recommendable when testing the system in a bench).
Units in collection
Inventory ID | Model | Submodel | Comments |
---|---|---|---|
22 | 5322 | 124 | Fitted with 64KB RAM + 2 x 8" floppy drives |