IBM System/23 Datamaster: Difference between revisions

Content deleted Content added
Added PID-1200 casuistic
Changed status of machine in collection
 
(26 intermediate revisions by the same user not shown)
Line 1:
The IBM System/23 Datamaster is the first IBM computer to be based upon an Intel CPU and the only known IBM computer to feature an 8-bit microprocessor. Along with the [[Displaywriter]], is one of the few EBCDIC microcomputers ever made. Development of the hardware began in 1978 and was ready to roll out by latemid 19791980, but due to the late decision to make its BASIC compatible with the one from the System/34 the software delayed its release to July 1981, just one month before the [[IBM 5150 Personal Computer]]. As a result, it was a commercial failure and sold very poorly. While IBM engineers decided to use industry standard components instead of their own SLT family, all references were ofuscated by remarking them with its IBM internal catalog number; this fact difficults enormously their repair and most units are in a state of decay.
 
{| style="float:right;margin:10px;border:1px solid black"
Line 23:
| RAM || 32KB/64KB/96KB/128KB
|-
| ROM || 112KB/128KB-272KB
|}
 
Line 38:
=== Creation of the IBM PC ===
It is often said that the IBM had a rushed development of the PC with a single year in development. Whereas the statement is partially true, it is also forgotten how close both systems are and how the same engineers that worked in the Datamaster later worked in the PC, bringing the required expertise. Also, the chosen CPU was the [[Intel 8088]] due of its similarity hardware-wise with the [[Intel 8085]] and this way most of the peripherals were maintained in the transition from the Datamaster. The character set and its format were also brought from the System/23 to the [[5150]]. Also, the expansion bus is nearly untouched in that evolution. Finally, from pictures of early prototypes it can be seen that the power connectors were the same as the one in the Datamaster. As a conclusion, it might be stated that the early life of the IBM PC started as modifications on the Datamaster.
 
== Models and submodels ==
The IBM System/23 was offered in two models, the all-in-one 5322 and the tower-based 5324. Internally both computers share the same motherboard and therefore operation and peripherals are compatible. The Datamaster computers has a series of submodels according to the presence of the word-processing card, the amount of memory and the number and type of floppy drives.
 
{| class="wikitable"
|+ Submodels of the System/23 Datamaster
|-
! Submodel !! Word-processing Card !! Memory amount !! Floppy Drive Amount !! Floppy Drive Type
|-
| 110 || No || 32KB || 0 || N/A
|-
| 111 || No || 32KB || 1 || 31SD
|-
| 112 || No || 32KB || 2 || 31SD
|-
| 113 || No || 32KB || 1 || 51TD
|-
| 114 || No || 32KB || 2 || 51TD
|-
| 120 || No || 64KB || 0 || N/A
|-
| 121 || No || 64KB || 1 || 31SD
|-
| 122 || No || 64KB || 2 || 31SD
|-
| 123 || No || 64KB || 1 || 51TD
|-
| 124 || No || 64KB || 2 || 51TD
|-
| 130 || No || 96KB || 0 || N/A
|-
| 131 || No || 96KB || 1 || 31SD
|-
| 132 || No || 96KB || 2 || 31SD
|-
| 133 || No || 96KB || 1 || 51TD
|-
| 134 || No || 96KB || 2 || 51TD
|-
| 140 || No || 128KB || 0 || N/A
|-
| 141 || No || 128KB || 1 || 31SD
|-
| 142 || No || 128KB || 2 || 31SD
|-
| 143 || No || 128KB || 1 || 51TD
|-
| 144 || No || 128KB || 2 || 51TD
|-
| 420 || Yes || 64KB || 0 || N/A
|-
| 421 || Yes || 64KB || 1 || 31SD
|-
| 422 || Yes || 64KB || 2 || 31SD
|-
| 423 || Yes || 64KB || 1 || 51TD
|-
| 424 || Yes || 64KB || 2 || 51TD
|-
| 430 || Yes || 96KB || 0 || N/A
|-
| 431 || Yes || 96KB || 1 || 31SD
|-
| 432 || Yes || 96KB || 2 || 31SD
|-
| 433 || Yes || 96KB || 1 || 51TD
|-
| 434 || Yes || 96KB || 2 || 51TD
|-
| 440 || Yes || 128KB || 0 || N/A
|-
| 441 || Yes || 128KB || 1 || 31SD
|-
| 442 || Yes || 128KB || 2 || 31SD
|-
| 443 || Yes || 128KB || 1 || 51TD
|-
| 444 || Yes || 128KB || 2 || 51TD
|}
 
The absence of a submodel comprising a word-processing card and an amount of RAM of 32KB is due that IBM set the specifications for the word processing units with a minimum of 64KB.
The submodel must be determined not by the number written at the rear plate but by observing the features of the machine, as some plates don't have the submodel written or have dummy values.
By late 1982, most submodels with 32KB and 31SD floppy drives had been withdrawn from the market.<ref>https://archive.org/details/bitsavers_ibmserviceceForConsultants198210_13344165/page/n69/mode/2up</ref>
 
== Hardware Description ==
Line 89 ⟶ 172:
|}
[[File:ROS Memories.jpg|thumb|left|alt=Some of the sixteen ROS memories|Some of the sixteen ROS memories]]
The ROM Operating System or simply ROS is the firmware of the System/23. It consists in a set of fourteen to sixteen ROMs of 8KB each, for a total of 112KB/128KB, although the service manual states 112KB which means they did not countupdate the non-pagedcapacity after adding ROMs 10h ROMand memory11h<ref>SY34-0171-0 IBM 5322 Computer Service Manual, page 74</ref>. 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.
Line 121 ⟶ 204:
|}
 
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 "featurebase" socket.
 
A common cause of failure for this board and subsequently the whole computer is by having faulty capacitors in shortcircuit in the RAM power supply lines<ref name=":0" />. By simply removing them the issue is solved. In case of 4132 failure, each 4132 upper and lower packages must be separated in order to run the tests.
 
=== Video Subsystem ===
[[File:Datamaster_Video_Connector.png|260px|thumb|left|alt=Datamaster video connector|Datamaster video connector]]
The video subsystem is almost copied verbatim from the Intel 8275 Datasheet. It consists in a 8275 variant plus a 8257 DMA device. The 4178629 made by Intel is the CRTC chip and it behaves exactly the same way as stock 8275s. Compatibility with stock 8275 has been tested with good results, as well as the Soviet KR580VG75, which is also compatible. The Intel 8276 is not compatible without a ROM hack that modifies test 05h in order to deactivate the light pen test.
 
The video connector present in the motherboard presents at least two supply voltages (+5V and +12V). The other video signals are strictly TTL compatible. Synchronism signals are separate, vertical sync is negative and horizontal sync is positive. The display has three degrees of monochrome tones: full off, normal and highlighted (full on). This is achieved with an intensity signal being carried separately from the video signal.
 
The Datamaster has two pixel clocks: 18.432 MHz for the American units and 18.2 MHz for the European machines. Its timings makes them incompatible with the later and more common MDA. While European units have both oscillators and the selection jumper, the Americans only have an oscillator and lack the jumper, although its space on board is present.
 
There have been unofficial attempts to obtain the picture without having to recur to the original monitors. For instance, a composite video addon was first created, followed by a much simpler and overall better RGB-Scart adapter. Finally, the computer has been given support by the RGBtoHDMI project, therefore enabling Datamasters with broken or no monitor at all to be able to output image.
 
=== Diagnostics port ===
Line 137 ⟶ 230:
 
=== Expansion ports ===
The Datamaster has threefour expansion ports located at the rear of the system. It is important to notice that when the PC was developed most of the pins were left in place and, contrary to the popular belief, one is not the mirrored image of the other.<ref>https://forum.vcfed.org/index.php?threads/system-23-datamaster-i-o-slots.1248011/</ref>
[[File:IBM System 23 expansion port comparison with ISA-8.png|frame|center|alt=IBM Datamaster and PC I/O bus comparison|IBM Datamaster and PC I/O bus comparison]]
 
Line 153 ⟶ 246:
Pagination is achieved thanks to four registers mapped 20h-23h at the I/O space. From those, one determines the ROS page being read, another is used by the DMA mechanism and the other two are used by the CPU access to RAM (for reading and writing, respectively). The widths of each register is four bits, therefore allowing the maximum of sixteen pages. From those, the first eight are expected to be in the board while the remaining are expected to be provided by each expansion card added.
 
Video memory seems to beis placed at address 8000h (to be confirmed)8200h.
 
=== I/O Ports ===
The Datamaster has a rich set of Intel peripherals which consist of a 8251 USART, 8253 PIT, three 8255 PPI, 8257 DMA, 8259 PIC and 8275 CRTC. All of them, including other devices are accessed using the following ports<ref name=":0" />:
{| class="wikitable"
|+ I/O Ports decoded in the motherboard
 
! Ports !! Device !! Function
|-
| 00h-0Fh || 8257 || DMA
|-
| 20h-23h || 74LS670 || DMA Page registersRegister
|-
| 21h || 74LS670 || RAM Write Register
|-
| 22h || 74LS670 || RAM Read Register
|-
| 23h || 74LS670 || CPU ROS Page Register
|-
| 24h-27h || 8253 || PIT
Line 171 ⟶ 270:
| 2Ch || 8255#1 || Language/Region switches
|-
| 2Dh || 8255#1 || CE/ROM Update switches, RAM configuration
|-
| 2Eh || 8255#1 || Unknown; related to memory test 04
Line 177 ⟶ 276:
| 2Fh || 8255#1 || 8255#1 control port
|-
| 40h || 8255#2 || UnknownKeyboard scan codes
|-
| 41h || 8255#2 || Service port
|-
| 42h || 8255#2 || UnknownKeyboard control signals
|-
| 43h || 8255#2 || 8255#2 control port
Line 189 ⟶ 288:
| 48h-4Bh || 8251 || USART
|-
| 4Ch || 8255#3 || Data bus test register / Character ROM pagination
|-
| 4Dh-4Eh || 8255#3 || Keyboard port/C option switches
|-
| 4Fh || 8255#3 || 8255#3 control port
|}
 
{| class="wikitable"
|+ I/O Ports decoded in the floppy controller card
! Ports !! Device !! Function
|-
| F4h-F7h || NEC 765 || Floppy drive controller
|-
| F8h-FBh || 8255 PPI || Unknown purpose
|}
 
Line 201 ⟶ 309:
! Interrupt !! Function
|-
| TRAP || Unknown8085 SOD (enable), memory parity error
|-
| RST7.5 || PIT timer 2
|-
| RST6.5 || UnknownExpansion slot B4
|-
| RST5.5 || 8275 IRQ (if J1 is bridged)
|-
| IRQ || 8259 PIC
|-
| IRQ0 || Keyboard
|-
| IRQ1 || USART
|-
| IRQ2 || USART
|}
 
Line 225 ⟶ 339:
 
=== Diagnostics ===
The System/23 Datamaster implements a set of self-test routines identified as "PID-1200". With them it tests the CPU, the memory and the different peripherals of the computer. Usually the results of the tests are written to the screen at start-up but if an error occurs before the initialization of the screen a probe is needed. Faulty CPU, ROM or 8255 (units 2 and 3) will prevent any diagnostics to be displayed, even with a probe. The tests are identified by an hexadecimal value and can be presented unstyled, underlined or inverted. In the case of being underlined it means that the feature tested wasn't found by the system, whereas if it is inverted it has been detected but was tested and found faulty. If the text is left unstyled, it means the test passed. The test routines and their tested areas are the following<ref>6841631 System/23 Diagnostic User Guide, page 87</ref>:
 
{| class="wikitable"
! Test !! Description !! Notes
|-
| 00/FF (uninitialized) || Data bus test (undocumented) || writes and reads to port 0x4C (8255 managing keyboard#3, port A).
|-
| 01 || CPU || 8085 self-test.
|-
| 02 || First unpaged ROS ROM || This is the ROM at 0000h.
|-
| 03 || Reserved || Unused. Tests pass directly from 02 to 04.
Line 242 ⟶ 356:
| 05 || CRTC, DMA || Interrupt test; initialization of 8275, 8257; light pen test.
|-
| 06-07 || CRTC || InitializationSync and test;video anydata error in this step or earlier requires a probetests.
|-
| 0807 || PageCRT registersTube || ForTube CPU access, ROM onlyinitialization
|-
| 08 || Page registers || ROS paging register
| 09 || Unpaged ROS ROM || The second part of the unpaged segment
|-
| 10-1909 || PagedUnpaged ROS ROMsROM in|| theROM motherboard ||at 0x2000
|-
| 1A10-2919 || Paged ROS ExtensionsROMs ||in Testthe formotherboard || ROMs inat 0x4000 expansionand slots0x6000
|-
| 1A-29 || ROS Extensions || ROMs at 0x4000 and 0x6000
|-
| 2A-30 || RAM || Test for the paged RAM memory
Line 298 ⟶ 414:
! Inventory ID !! Model !! Submodel !! Comments
|-
| 22 || 5322 || 124 || FittedSpanish, fitted with 64KB96KB RAM + 2 x 8" floppy drives
|-
|
|5322
|124
|American, boards only, fitted with 32KB RAM, no keyboard
|-
|
|5324
|124
|French, in restoration, with American keyboard, no monitor
|}
 
== See also ==
[[IBM System/23 Datamaster Resources]]
 
[[Q&A with Dr. Dave Bradley]]
== References ==
<references />