IBM System/23 Datamaster: Difference between revisions

Content deleted Content added
Added explanation about probe not displaying results, added explanation that stock 8275s fail test 05h.
(9 intermediate revisions by the same user not shown)
Line 89:
|}
[[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 124:
 
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 ===
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 slightly different from stock 8275s when activating the interrupts. This small difference makes the test 05 fail with standard 8275s without a patch on ROS 02h. Otherwise, the Datamaster's CRTC has the same pinout and accepts the same commands and parameters than the regular components.
 
=== Diagnostics port ===
Line 156 ⟶ 159:
 
=== 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"
 
Line 163 ⟶ 166:
| 00h-0Fh || 8257 || DMA
|-
| 20h-22h || 74LS670 || DMA Page registersRegister
|-
| 21h || 74LS670 || RAM Write Register
|-
| 22h || 74LS670 || RAM Read Register
|-
| 23h || 74LS670 || CPU ROS Page Register
Line 173 ⟶ 180:
| 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 179 ⟶ 186:
| 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 191 ⟶ 198:
| 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
Line 203 ⟶ 210:
! Interrupt !! Function
|-
| TRAP || Unknown8085 SOD (enable), memory parity error
|-
| RST7.5 || PIT timer 2
Line 212 ⟶ 219:
|-
| IRQ || 8259 PIC
|-
| IRQ0 || Keyboard
|-
| IRQ1 || USART
|-
| IRQ2 || USART
|}
 
Line 227 ⟶ 240:
 
=== 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.
Line 242 ⟶ 255:
| 04 || RAM || Test for the first unpaged 16KB. Lecture of register 0x2e.
|-
| 05 || CRTC, DMA || Interrupt test; initialization of 8275, 8257; light pen test. It fails with standard 8275s.
|-
| 06 || CRTC || Sync and video data tests.