DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦0620b3ce6⟧ RcTekst

    Length: 43776 (0xab00)
    Types: RcTekst
    Names: »99110094.WP«

Derivation

└─⟦7fab0c8ae⟧ Bits:30005866/disk3.imd Dokumenter i RcTekst format (RCSL 99-1-*)
    └─⟦this⟧ »99110094.WP« 

RcTekst


╱04002d4e0a0006000000000201413100000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆a1┆↲
↲
╞	Edition:╞	May 1985↲
╞	Author:   Peter Lundbo / Dinh Nuong Quang↲
╞	RCSL No.:╞	991 10094↲
↲
↲
↲
↲
↲
↲
↲
↲
                         INTERNAL DOCUMENT↲
↲
↲
↲
↲
↲
↲
↲
Title:↲
↲
                  ┆06┆┆84┆RC 3902 (CPU 691) hardware selftest↲
                          user's manual↲

════════════════════════════════════════════════════════════════════════
↓

════════════════════════════════════════════════════════════════════════
↓
KEYWORDS:↲
╞	╞	┆84┆RC 39, XENIX, Hardware Selftest, CPU 691, MEM 602, ↓
┆19┆┆8e┆┄┄MEM 603, Multibus Configuration.↲
↲
↲
↲
↲
↲
↲
↲
ABSTRACT:↲
╞	╞	┆84┆This manual covers the hardware selftest included ↓
┆19┆┆8e┆┄┄in the RC3902 product. The EPROMS is installed on a ↓
┆19┆┆8e┆┄┄CPU 691 board, and is responsible for the ↓
┆19┆┆8e┆┄┄verification of the attached MEM 602/603 boards as ↓
┆19┆┆8e┆┄┄well. The CPU 691 is the "test-master" board, which ↓
┆19┆┆8e┆┄┄is able to communicate with all other intelligent ↓
┆19┆┆8e┆┄┄controllers in the RC 39 product in order to ↓
┆19┆┆8e┆┄┄concentrate the outcome of all the concurrently ↓
┆19┆┆8e┆┄┄running selftests on one console. The "test-master" ↓
┆19┆┆8e┆┄┄is also responsible for directing all other ↓
┆19┆┆8e┆┄┄intelligent controllers to their bootload phase.↲
↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓

╱04002d4e0a0006000000000201413100000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱

╱04002d4e0a0006000000000201413100000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱
↓
                         i↲
┆a1┆TABLE OF CONTENT╞	╞	╞	     PAGE  ↲
↲
1.  INTRODUCTION .............................      1↲
↲
2.  THE BAUD RATE DETERMINATION MODE .........      2↲
↲
3.  THE INITIAL MEMORY TEST ..................      3↲
    3.1 Initial RAM Test .....................      3↲
        3.1.1 Memory Test Flow ...............      4↲
        3.1.2 Loop On Error ..................      4↲
↲
4.  INTERRUPT HANDLING AND PVAM SWITCH .......      5↲
    4.1 Valid Interrupts .....................      5↲
╞	4.2 Instruction Violations and Instructions↲
        Exceptions ...........................      6↲
↲
5.  TEST 0 = RAM test ........................      8↲
↲
6.  TEST 1 = Chip Select Test ................     10↲
↲
7.  TEST 2 = 8254 Programmable Interval Timer↲
             test ............................     11↲
↲
8.  TEST 3 = Disk Channel Test ...............     12↲
↲
9.  TEST 4 = Numeric Processor Extension Test      14↲
↲
10. TEST 5 = Multibus Configuration ..........     15↲
↲
11. TEST 6 = Parallel Port Test ..............     17↲
↲
12. TEST 7 = Extended RAM Test ...............     18↲
    12.1 Test Variables ......................     18↲
         12.1.1 Operating Mode ...............     19↲
         12.1.2 Address Range ................     19↲
         12.1.3 Change Pattern ...............     20↲
         12.1.4 Execute Subtest Alone ........     20↲
         12.1.5 Bus LOCK .....................     20↲
    12.2 Subtest 0 = Pattern test - WORD mode,↲
         EVEN alignment ......................     20↲
    12.3 Subtest 1 = Pattern test - WORD mode,↲
         ODD alignment .......................     21↲
    12.4 Subtest 2 = Pattern test - BYTE mode,↲
         ALL bytes ...........................     22↲
    12.5 Subtest 3 = Pattern test - BYTE mode,↲
         EVEN bytes only .....................     22↲
    12.6 Subtest 4 = Pattern test - BYTE mode,↲
         ODD bytes only ......................     23↲

════════════════════════════════════════════════════════════════════════
↓
                        ii  ╞	╞	↲
┆a1┆TABLE OF CONTENTS (continued)                    PAGE↲
    12.7 Subtest 5 = ECC Error Correction Test     24↲
    12.8 Subtest 6 = ECC Error Detection Test      25↲
↲
13. TEST 8 = Floppy Test .....................     27↲
↲
14. TEST 9 = Printer Test ....................     30↲
↲
15. LED OUTPUT ...............................     31↲
↲
↲
┆a1┆APPENDICES↲
↲
A. REFERENCES ................................     33╞	↲
↲
B. COMPLETE ERROR LIST .......................     34↲

════════════════════════════════════════════════════════════════════════
↓

════════════════════════════════════════════════════════════════════════
↓
┆14┆┆b3┆╞	╞	╞	╞	┆0b┆┆a1┆↲
┆a1┆┆a1┆┆b0┆1. INTRODUCTION↲
↲
The CPU 691 is an Intel Manufactured iAPX 286 processor board, ↓
used as the main CPU in early RC 39 products. The CPU 691 is ↓
going to be replaced by an RC Manufactured board called CPU 610.↲
↲
This manual assumes the reader is familiar with the RC 39 ↓
selftest concept as described in the manual called "The RC 39 ↓
Selftest Concept". The CPU 691 selftest includes 10 different ↓
tests which may be run in several modes. Six of these tests are ↓
┆b0┆default┆f0┆ tests which allways execute after a power on. One test  ↓
┆19┆┄┆81┆┄is an ┆b0┆extended┆b0┆┆f0┆ test which may be appended to the default set when ↓
┆19┆┄┆83┆┄requested explicit by an operator. The last three tests are ↓
┆19┆┄┆83┆┄┆b0┆seperate┆b0┆l┆f0┆┆b0┆y┆f0┆ run tests, which may each be requested to execute as ↓
┆19┆┄┆86┆┄stand alone programs.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆a1┆┆a1┆┆b0┆2. THE BAUD RATE ┆a1┆DETERMINATION MODE↲
↲
If a terminal is connected to the V.24 line 1 interface (CTS ↓
activ) then the selftest enters the automatic Baud Rate ↓
Determination mode. The USART is initialized to 9600 Baud and ↓
stars (*****) are written to line 1. These stars may be seen as ↓
stars, other mixed characters or not seen at all depending on the ↓
Baud Rate of the attached console. The selftest waits for the ↓
operator to enter one or two upper case U. One upper case U is ↓
enough if the Baud Rate is 9600, 4800 or 2400 Baud. Baud Rates of ↓
1200, 600 or 300 requires two upper case U.↓

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆3. THE INITIAL MEMORY TEST↲
↲
After a power on the selftest at first initializes the peripheral ↓
devices, and then enters the initial memory test. This very first ↓
part of the selftest executes in 8086 mode with interrupts ↓
disabeled.↲
↲
The initial memory test of the CPU 691 SBC selftest consists of ↓
two parts, a PROM checksum test and a RAM memory test. The ↓
contents of both the odd and the even PROM's are summarized ↓
ewise and the result must be a zero. For that reason the ↓
PROM's contain a compensation byte which is used to bring the sum ↓
to zero. The checksum test may produce the following errortext.↲
┆a1┆↲
┆b0┆┆f0┆1. ┆b0┆checksum test: sum error  exp.:<0000>  rec.:<xyzw>↲
↲
Checksum error usually means that the content of the PROM has ↓
been damaged and that the PROM must be changed.↲
↲
↲
┆a1┆┆b0┆3.1 Initial RAM Test.↲
↲
The initial RAM test verifies the first 64 kbytes of RAM ↓
addresses 000000-00FFFF hexadecimal. This part of RAM is used to ↓
hold the protection tables plus selftest and monitor variables ↓
when the processor enters the protected mode of operation.↲
↲
The memory test is a register based test and uses no memory space ↓
at all, neither for variables nor stack.↲
↲
┆a1┆┆e1┆The test pattern is the convenient modulus 3 pattern consisting ↓
of three times 0000 followed by three times FFFF ( hexadecimal ).↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆3.1.1 Memory Test Flow.↲
↲
The test starts in the highest RAM address of the lowes 64 K byte ↓
memory block (FFFF hex.) and inserts the pattern towards lower ↓
addresses.↲
↲
When all initial memory words have been written and verified, ↓
they are tested again with the inversed pattern, this means, that ↓
all bits are tested for "zero" and "one" insertion. If an error ↓
occur the following message is written to the console.↲
↲
↲
┆a1┆┆b0┆┆f0┆┆b0┆2. ┆b0┆Initial RAM Test: RAM error  segm.:<ssss>  addr.:<aaaa>↲
┆19┆┄┆82┆┆82┆┆b0┆                                 exp.:<eeee>┆b0┆ rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> is the segment address (allways 0000)↲
<aaaa> is the segment offset↲
<eeee> is the expected pattern, should allways be 0000 or FFFF.↲
<rrrr> is the received pattern.↲
↲
↲
┆a1┆┆b0┆3.1.2 Loop On Error.↲
↲
When a fault occur during the initial RAM test an error message ↓
is written to the console, and the RAM test starts from the ↓
beginning again. This will be the case until no error is ↓
discovered. If there is a RAM error and if an L is typed from the ↓
keyboard, then the RAM test will not start from the beginning ↓
again, but proceed trough the RAM test and write all RAM errors ↓
to the console, and finally enter the "test-administrator" to ↓
execute other tests if possible.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆┆b0┆4. INTERRUPT HANDLING AND PVAM SWITCH↲
↲
When the CPU 691 SBC selftest has terminated the initial memory ↓
test the protection tables are copied from EPROM to RAM. Then the ↓
iAPX 286 CPU and the board as well is switched into the Protected ↓
Virtual Address Mode, and a message is written to the console ↓
like this:↲
↲
┆b0┆******* PVAM ENTERED *******↲
↲
If an 80827 Numeric Coprocessor is present, then it is also ↓
switched into the protected mode and another message written to ↓
the console:↲
↲
┆b0┆80287 NPX Found↲
↲
↲
┆a1┆┆b0┆4.1 Valid interrupts.↲
↲
A few interrupts are allways considered valid during the ↓
selftest:↲
↲
┆a1┆Request line  Interrupt name  Vector type             Event type  ↲
↲
internal      Step interrupt      1╞	┆84┆instruction executed ↓
┆19┆┆ac┆┄┄with trap flag set↲
↲
internal╞	Break interrupt╞	3╞	┆84┆software interrupt ↓
┆19┆┆ac┆┄┄(debugger entry)↲
↲
CNTR0╞	Timer 0╞	╞	40╞	Timer 0 interrupt↲
↲
SER INTR╞	USART receive int.╞	34╞	Keyboard interrupt↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆4.2 Protection Violations and Instruction Exceptions.↲
↲
The protection violations and instruction exceptions will cause ↓
the selftest to write a message to the console and then execute  ↓
a HALT instruction. The only way to get out of these exception is ↓
to hardware reset the CPU.↲
↲
┆a1┆Vector type   Error Text                                      ↲
↲
0             Interrupt 0 at 'CS:IP' Divide By Zero↲
╞	╞	HALTED - Hardware RESET required↲
↲
2╞	╞	Interrupt 2 at 'CS:IP' NMI↲
╞	╞	HALTED - Hardware RESET required↲
↲
4╞	╞	Interrupt 4 at 'CS:IP' Overflow↲
╞	╞	HALTED - Hardware RESET required↲
↲
5╞	╞	Interrupt 5 at 'CS:IP' Bounds Check↲
╞	╞	HALTED - Hardware RESET required↲
↲
6╞	╞	Interrupt 6 at 'CS:IP' Undefined Operation↲
╞	╞	HALTED - Hardware RESET required↲
↲
7╞	╞	Interrupt 7 at 'CS:IP' Device Not Available↲
╞	╞	HALTED - Hardware RESET required↲
↲
8╞	╞	Interrupt 8 at 'CS:IP' Double Fault↲
╞	╞	HALTED - Hardware RESET required↲
↲
9╞	╞	Interrupt 9 at 'CS:IP' Math Address Error↲
╞	╞	HALTED - Hardware RESET required↲
↲
10╞	╞	Interrupt 10 at 'CS:IP' Invalid Task State Segment↲
              - ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲

════════════════════════════════════════════════════════════════════════
↓
11╞	╞	Interrupt 11 at 'CS:IP' Not Present - ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
12╞	╞	Interrupt 12 at 'CS:IP' Stack Protection↲
╞	╞	 - ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
13╞	╞	Interrupt 13 at 'CS:IP' General Protection↲
╞	╞	- ECODE = XXXX↲
╞	╞	HALTED - Hardware RESET required↲
↲
14╞	╞	Interrupt 14 at 'CS:IP'↲
╞	╞	HALTED - Hardware RESET required↲
↲
15╞	╞	Interrupt 15 at 'CS:IP'↲
╞	╞	HALTED - Hardware RESET required↲
↲
16╞	╞	Interrupt 16 at 'CS:IP' Math Error↲
╞	╞	HALTED - Hardware RESET required↲
↲
The term 'CS:IP' refers to the logical location in the program, ↓
where the exception came. The errorcode pushed onto the stack by ↓
some exceptions (ECODE) may be hard to decode, and no attempt to ↓
document them in this manual will be done. Consult INTEL manuals ↓
for further description of the exceptions and their errorcodes.↲
↲
All other interrupts that either refer to a NULL descriptor in ↓
the Interrupt Descriptor Table (IDT) or to a descriptor outside ↓
the IDT limit will cause one of the protection violations above. ↓
If a test uses interrupt vectors not mentioned above, then the ↓
test is responsible for loading the appropiate descriptor into ↓
the IDT prior to the test and to nullify the descriptor at the ↓
end of the test.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆5. ┆b0┆TEST 0 =┆f0┆ RAM test.↲
↲
After the switching of the iAPX 286 processor to the protected ↓
mode of operation this RAM test is responsible for verifying the ↓
rest of the CPU 691 memory. The memory size is variable between ↓
512 K bytes and 8 M bytes and a maximum of 4 memory boards may be ↓
connected to a CPU 691 (iLBX BUS width is 5 slots). The memory ↓
must be contiguous from address 0 (the XENIX operating system ↓
assumes this).↲
↲
This RAM test, of course, dont verify the lowest part of memory ↓
addresses 0-FFFF hexadecimal, which is covered by the initial ↓
memory test and used to hold selftest variables.↲
↲
This test divides the available memory space into 64 K byte ↓
blocks, the first starting at address 10000 hexadecimal and the ↓
last ending at address 7FFFFF hexadecimal. For every possible 64 ↓
K byte block the RAM test does:↲
↲
1. ┆84┆Writes a pattern to the first byte of that block. Reads the ↓
┆19┆┆83┆┄┄byte back, and if the same pattern is read back memory is ↓
┆19┆┆83┆┄┄considered present and the verification of that block ↓
┆19┆┆83┆┄┄continues, otherwise the next 64 K byte block is tried.↲
↲
2. ┆84┆The 64 K byte block considered present in step 1 is filled ↓
┆19┆┆83┆┄┄with ones. The content is read back, and if not all ones an ↓
┆19┆┆83┆┄┄error message is generated and the test terminated.↲
↲
3. ┆84┆The 64 K byte block of memory is filled with zeroes. The ↓
┆19┆┆83┆┄┄content is read back, and if not all zeroes an error message ↓
┆19┆┆83┆┄┄is generated and the test terminated.↲
↲
4. ┆84┆Step 1 is entered again until the last possible 64 K byte ↓
┆19┆┆83┆┄┄block has been checked.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆f0┆The RAM test may produce the following error message:↲
↲
1. ┆b0┆RAM test: RAM error  segm.:<ssss>  addr.:<aaaa>  exp.:<eeee>↲
╞	 ╞	╞	╞	                 ┆b0┆ rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> ┆84┆is the segment LDT selector (use RC 39 Monitor to ↓
┆19┆┆87┆┄┄determine the physical address - XLDT <ssss>)↲
<aaaa> is the segment offset↲
<eeee> is the expected pattern, should allways be 0000 or FFFF.↲
<rrrr> is the received pattern.↲
↲
The memory size is handed over to the Multibus configuration ↓
program and displayed in the Multibus Configuration Schedule.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆81┆┆a1┆┆b0┆6. ┆b0┆TEST 1 = ┆f0┆Chip Select Test.↲
↲
To ease complex debugging, a simple chip select loop, combined ↓
with a RAM write/read, is supplied. ↲
↲
This test generates chip selects to all peripheral devices by ↓
executing input instructions to all relevant I/O-devices. These ↓
are :↲
↲
Port ┆84┆0C0, 0C2, 0C4, 0C6, 0C8, 0CA, 0CC, 0CE, 0D0, 0D2, 0D4, 0D6, ↓
┆19┆┆85┆┄┄0D8, 0DA, 0DC, 0DE.↲
↲
When all the chip selects are made, a pattern AA55 hex. is ↓
written to a RAM cell and immediately read back.↲
↲
This test is unable to generate any error messages. It is meant ↓
only as a special fast scope loop test.↲

════════════════════════════════════════════════════════════════════════
↓
┆a2┆┆e2┆┆a1┆┆b0┆7. ┆b0┆TEST 2┆f0┆ = 8254 Programmable Interval Timer Test.↲
↲
This test verifies the ability of the 8254 PIT timer 0, used as a ↓
real time clock in XENIX, to generate interrupts. Timer 0 is ↓
initialized as a real time clock which generates interrupt every ↓
20 millisecond. If no timer interrupt is generated then an error ↓
message is generated like this.↲
↲
┆a1┆┆a1┆┆a1┆┆e1┆┆b0┆┆f0┆1. ┆b0┆PIT Test : missing timer 0 interrupt↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆8. ┆b0┆TEST 3┆f0┆ = Disk Channel Test.↲
↲
This test is used to exercise and verify the data channel between ↓
CPU 691 and the disk controller.↲
↲
The first part of this test executes a "disc diagnostic command" ↓
to the disc controller. This command orders the disc controller ↓
to verify its sector buffer by the use of several critical data ↓
patterns. If the disc controller responds with an error to this ↓
command an error message is generated.↲
↲
1. ┆b0┆Disc Channel test: disc diagnostic error↲
↲
If the disc does'nt respond to the disc diagnostic command within ↓
800 milliseconds an error message is generated.↲
↲
2. ┆b0┆Disc Channel test: transfer timeout or interrupt missing↲
↲
The second part of this test executes a "write sector buffer ↓
command " followed by a "read sector buffer command". The data ↓
read back are compared to the written pattern and if not equal an ↓
error message is generated.↲
↲
┆b0┆┆b0┆┆f0┆3. ┆b0┆Disc Channel test: disc channel error segm.:<ssss> addr.:<aaaa>↲
                                        ┆b0┆exp.:<eeee>   rec.:<rrrr>↲
↲
The secondary error text is interpreted like this :↲
↲
<ssss> ┆84┆is the segment LDT selector (use RC 39 Monitor to ↓
┆19┆┆87┆┄┄determine the physical address - XLDT <ssss>)↲
<aaaa> is the segment offset↲
<eeee> is the expected pattern, should allways be 0000 or FFFF.↲
<rrrr> is the received pattern.↲
↲
Otherwise. If an error of the disc is discovered an error message ↓
like this is written to the console.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆82┆4. ┆b0┆Disc Channel test: disc command error↲
↲
This error might be caused by malfunction of the disc, by a fault ↓
of the interface circuits , or by something else. ↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆9. ┆b0┆TEST 4 =┆f0┆ Numeric Processor Extension Test.↲
↲
The Numeric Processor Extension test program applies to the ↓
verification of the 80287 coprocessor and its interface circuits. ↓
If no 80287 coprocessor is present (bit 2 Machine Status Word ↓
"0") then a message is written to the console like this.↓
↲
1. ┆b0┆80287 NPX Test: NPX not present: OK↲
↲
Otherwise if the NPX is present the test proceeds and verifies ↓
the NPX's function. If an error is discovered an error message ↓
like this is written to the console.↲
↲
2. ┆b0┆80287 NPX Test: 80287 NPX not OK↲
↲
This error might be caused by malfunction of the 80278 chip, by ↓
a fault of the interface circuits , or by something else. ↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆10. ┆b0┆TEST 5 =┆f0┆ Multibus Configuration.↲
↲
When the CPU 691 has finished its own selftest it will make a ↓
Multibus configuration. Every RC-manufactured SBC card is located ↓
with its Dual-Ported RAM ending on a 64 KB boundary address. When ↓
a RC 39 SBC starts the execution of its selftest program it ↓
immediately initializes the last word in its Dual-Ported RAM with ↓
a special pattern corresponding to "not-ready". When the test is ↓
terminated with or without an error the pattern is changed to ↓
"ready". Ready indicates to the "test-master" that the SBC is ↓
ready to communicate. Both the "not-ready" pattern and the ↓
"ready" pattern must of course be different from the pattern ↓
which is read by the "test-master" when reading from a Multibus ↓
address with non-existing RAM (bus acknowledge timeout assumed).↲
↲
The hardware configuration process is possible due to the fact ↓
that all the "test-slaves" communicates with the "test-master" ↓
trough DP-RAM located to end on 64 K boundaries. This minimizes ↓
the configuration attempts to a maximum of 32 entries ↓
(controllers are placed between Multibus addresses 800000-A00000 ↓
hexedecimal). During the configuration process the "test-master" ↓
starts reading from the top of the controller address space ↓
(address 9FFFFF hexadecimal). If a pattern equal to "not-ready" ↓
or "ready" is found the selftest assumes that an intelligent SBC ↓
card is present, and reads som further parameters such as card-↓
type, RAM-size and selftest execution time in seconds. If the ↓
card is marked "not-ready" the "test-master" may use the selftest ↓
execution time to decide how long to wait for that card to become ↓
"ready". Also a handshake protocol is executed to reassure that ↓
the "ready" pattern was not read by random. From the knowledge to ↓
the RAM-size the "test-master" calculates the address where to ↓
continue the Multibus configuration. If no "ready" or "not-ready" ↓
pattern is received then the "test-master" configuration writes ↓
to and reads back from the RAM cell to find out if some RAM ↓
really exists on that Multibus address. The configuration program ↓

════════════════════════════════════════════════════════════════════════
↓
ends with writing a configuration schedule to the console. The ↓
schedule might look like this:↲
┆b0┆↲

╱04002d4e0c000600000000020147310000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0a0006000000000201413100000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱
↓
┆b0┆Multibus Configuration:↲
┆b0┆======================================================================↲
┆b0┆┆b0┆MB entry - MB address - Card State - Card ID - MB RAM size - error no.↲
┆b0┆======================================================================↲
┆b0┆00000╞	    000000       master╞	      CPU 691   02048         00000↲
┆b0┆┆b0┆00001╞	    9E0000╞	 ready╞	      ITC 602   00064╞	      00000↲
┆b0┆00002      8E0000╞	 ready╞	      COM 601   00064         00000↲
┆b0┆00003      800000       ready        ETC 611   00512         00000↲

╱04002d4e0a000600000000030141310000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0c000600000000020147310000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
↲
The configuration data is stored in a specific data structure ↓
where it may be accessed by the system software.↲
↲
The bootload is not inhibited if a "test-slave" has found an ↓
error during its default selftest, but a message is written to ↓
the console. The reason for this is that an incremental part of ↓
the system may still be running, and this might be sufficient for ↓
many users.↲
↲
The default selftest terminates with directing all the "test-↓
slaves" found during the multibus configuration to their bootload ↓
phase and it may look like this.↲
↲
┆b0┆<00001> sent to bootload↲
┆b0┆<00002> sent to bootload↲
┆b0┆<00003> sent to bootload↲
↲
If some slave dosen't respond correctly to the boot command a ↓
message is written to the console like this.↲
↲
┆b0┆<00002> slave answer timeout↲
↲
Consult the manual called "The RC39 selftest concept" for further ↓
┆19┆┄┆81┆┄information about the Multibus configuration and details about ↓
┆19┆┄┆81┆┄how to run further diagnostics on the "test-slaves".↲

════════════════════════════════════════════════════════════════════════
↓

╱04002d4e0a000600000000030141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0a000600000000030141310000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
┆a1┆┆b0┆11.┆b0┆ TEST 6 =┆f0┆ Parallel Port Test.↲
↲
The 8255A PPI test writes a pattern 10100000 binary to the output ↓
port A (I/O addr. C8H). Then it reads the pattern back and ↓
verifies it. If no error is detected the pattern is shifted one ↓
bit to the right, and the write/read verify procedure is repeated ↓
until the pattern becomes zero. The test may generate this error ↓
message:↲
↲
┆b0┆┆e1┆┆a1┆┆e1┆┆f0┆1. ┆b0┆PPI test: port error  exp.:00ee, rec.:00rr↲
↲
Expected and received pattern tells you what bits went wrong with ↓
the test.↲
↲
This error might be caused by malfunction of the 8255A chip, by ↓
an initialization fault (I/O space error), or by something else. ↓

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆12. ┆b0┆TEST 7┆f0┆ = Extended RAM Test.↲
↲
This ┆b0┆seperately┆f0┆ run test is supplied to verify the functionality ↓
┆19┆┄┆81┆┄of the INTEL iSBC 012X or the RC MEM 602/603 memory boards. The ↓
┆19┆┄┆81┆┄test is divided into 6 different subtests, which must either ↓
┆19┆┄┆81┆┄execute alone or in a big sequential loop. The first time the ↓
┆19┆┄┆81┆┄test is run several variables must be supplied to the test.↲
↲
↲
┆a1┆┆b0┆12.1 Test Variables.↲
↲
The first time the test is selected a menu is written to the ↓
console like this.↲
↲

╱04002d4e0c00060000000003014d314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0a000600000000030141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
┆b0┆MEM 60X Test: ************** Extended RAM test - Operating Instructions↓

╱04002d4e0a000600000000030141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0c00060000000003014d314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
┆b0┆Press <ctl><X>= start MEM 60X test↲
┆b0┆Press <ctl><A>= Enter Debugger Loader↲
┆b0┆Press <escape>= Return to Test Administrator↲
↲
┆b0┆SUBTEST↲
┆b0┆   0.  Pattern test - WORD mode, EVEN alignment↲
┆b0┆   1.  Pattern test - WORD mode, ODD alignment↲
┆b0┆   2.  Pattern test - BYTE mode, ALL bytes↲
┆b0┆   3.  Pattern test - BYTE mode, EVEN bytes only↲
┆b0┆   4.  Pattern test - BYTE mode, ODD bytes only↲
┆b0┆   5.  ECC error correction test↲
┆b0┆   6.  ECC error detection test↲
↲
When a <ctl><X> is entered the questions below will be asked line ↓
by line by the test program. Questions in paranthesis is only ↓
asked if the former question was answered with yes (Y).↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆Enter normal MEM 60X operating mode (ECR port) ? 0FH/↲
┆b0┆Enter test START 64 KB Block number ? <1-FF>, 1H/↲
┆b0┆Enter test START Offset address ? <0-FFFF>, 0H/↲
┆b0┆Enter test END 64 KB Block number ? <1-FF>, 1H/↲
┆b0┆Enter test END Offset address ? <0-FFFF>, 0H/↲
┆b0┆Enter MEM 60X PORT address ? <0-FFFF>, 1C0/↲
┆b0┆Change pattern ? <Y/N>, N/↲
┆b0┆(Enter Your Pattern !!  /)↲
┆b0┆Run Subtest ? <Y/N>, N/↲
┆b0┆(Enter Subtest Number ? <0-7>, 0/)↲
┆b0┆Bus LOCK active ? <Y/N>, N/↲
↲
Valid answers is shown in brackets (<>), except for the operating ↓
mode. If a carriage return is entered the value left to the slash ↓
is taken by default.↲
↲
↲
┆a1┆┆b0┆12.1.1 Operating Mode.↲
↲
It is not recommended to change the operating mode, except for ↓
disabeling the error correction logic (mode 0BH) during the ↓
execution of subtest 0-4. Subtest 5 is unable to execute ↓
succesfully with error correction disabeled.↲
↲
↲
┆a1┆┆b0┆12.1.2 Address Range.↲
↲
This test divides the 16 M Byte physical memory space into 256 ↓
blocks of 64 K byte each. It is impossible to execute this test ↓
in the lowest 64 K byte block. That block is used for selftest ↓
stack and variables. The physical start or end address for the ↓
test is given as a block number 1-255 plus an offset 0-65536 ↓
which must be entered in hexadecimal. Normally the address range ↓
is selected not to go across Multibus memory board boundaries, ↓
but if subtest 0-4 is executed alone it is possible to execute ↓
the test across contiguous memory board boundaries.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆12.1.3 Change Pattern.↲
↲
The pattern used by the selftest is by default 6 words long (3 ↓
times 0000 and 3 times FFFF hexadecimal). If the change pattern ↓
question is answered with a yes, then it will be possible to ↓
change the pattern itself and the length of the pattern also. The ↓
minimum length of the pattern is one word and the maximum length ↓
is six words. The "Enter your pattern" question may be terminated ↓
by the <escape> button after 1,2,3,4 or 5 words, the number of ↓
words giving the length of the pattern.↲
↲
↲
┆a1┆┆b0┆12.1.4 Execute Subtest Alone.↲
↲
If the Run Subtest question is answered with a yes, an additional ↓
question about the subtest number is asked.↲
↲
↲
┆a1┆┆b0┆12.1.5 Bus LOCK.↲
↲
If the Bus Lock question is answered with a yes, then subtest 0-4 ↓
executes all memory read or write commands with the Bus Lock ↓
Prefix. It is impossible to lock the bus for more than the ↓
duration of one instruction.┆a1┆↲
↲
↲
┆a1┆┆b0┆12.2 Subtest 0 = Pattern test - WORD mode, EVEN alignment.↲
↲
Subtest 0 writes the pattern word by word from the pattern buffer ↓
to memory from the start address to the end address. EVEN ↓
alignment is forced on the start address (start address ↓
decremented if ODD). The pattern is read back and compared to the ↓
original one, and if equal the test is repeated with the inversed ↓
pattern, otherwise an error message is generated.↲
↲
↲
┆8c┆┆83┆┆b0┆↓
1. ┆b0┆MEM 60X Test: Subtest: 0 - RAM error segm.:<ssss> addr.:<aaaa>↲
┆19┆┄┆81┆┆82┆                                        exp.:<eeee>   rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern.↲
<rrrr> is the received pattern.↲
↲
↲
┆a1┆┆b0┆12.3 Subtest 1 = Pattern test - WORD mode, ODD alignment.↲
↲
Subtest 1 writes the pattern word by word from the pattern buffer ↓
to memory from the start address to the end address. ODD ↓
alignment is forced on the start address (start address ↓
incremented if EVEN). The pattern is read back and compared to ↓
the original one, and if equal the test is repeated with the ↓
inversed pattern, otherwise an error message is generated.↲
↲
1. ┆b0┆MEM 60X Test: Subtest: 1 - RAM error segm.:<ssss> addr.:<aaaa>↲
┆19┆┄┆81┆┆82┆                                        exp.:<eeee>   rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern.↲
<rrrr> is the received pattern.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆12.4 Subtest 2 = Pattern test - BYTE mode, ALL bytes.↲
↲
Subtest 2 writes the pattern byte by byte from the pattern buffer ↓
to memory from the start address to the end address. The pattern ↓
is read back and compared to the original one, and if equal the ↓
test is repeated with the inversed pattern, otherwise an error ↓
message is generated.↲
↲
1. ┆b0┆MEM 60X Test: Subtest: 2 RAM error segm.:<ssss> addr.:<aaaa>↲
┆b0┆                                      exp.:<eeee>   rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern.↲
<rrrr> is the received pattern.↲
↲
↲
┆a1┆┆b0┆12.5 Subtest 3 = Pattern test - BYTE mode, EVEN bytes only.↲
↲
Subtest 3 writes the pattern byte by byte from the pattern buffer ↓
to the EVEN memory cells from the start address to the end ↓
address. EVEN alignment is forced on the start address (start ↓
address decremented if ODD). Before the EVEN byte is written the ↓
inversed pattern is written to the ODD byte (EVEN address + 1). ↓
The pattern is read back and compared to the original one, and if ↓
equal the test is repeated with the inversed pattern, otherwise ↓
an error message is generated. It is also checked if the writing ↓
of the EVEN memory cell disturbed the content of the ODD memory ↓
cell and if true an error message is generated.↲
↲

════════════════════════════════════════════════════════════════════════
↓
1. ┆b0┆MEM 60X Test: Subtest: 3 - RAM error segm.:<ssss> addr.:<aaaa>↲
┆b0┆                                        exp.:<eeee>   rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern.↲
<rrrr> is the received pattern.↲
↲
↲
┆a1┆┆b0┆12.6 Subtest 4 = Pattern test - BYTE mode, ODD bytes only.↲
↲
Subtest 4 writes the pattern byte by byte from the pattern buffer ↓
to the ODD memory cells from the start address to the end ↓
address. ODD alignment is forced on the start address (start ↓
address incremented if ODD). Before the ODD byte is written the ↓
inversed pattern is written to the EVEN byte (ODD address - 1). ↓
The pattern is read back and compared to the original one, and if ↓
equal the test is repeated with the inversed pattern, otherwise ↓
an error message is generated. It is also checked if the writing ↓
of the ODD memory cell disturbed the content of the EVEN memory ↓
cell and if true an error message is generated.↲
↲
1. ┆b0┆MEM 60X Test: Subtest: 4 - RAM error segm.:<ssss> addr.:<aaaa>↲
┆b0┆                                        exp.:<eeee>   rec.:<rrrr>↲
↲
The secondary text is interpreted like this :↲
↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern.↲
<rrrr> is the received pattern.↲
↲
↲
┆8c┆┆83┆┆a4┆↓
┆a1┆┆a1┆┆b0┆12.7 Subtest 5 = ECC Error Correction Test.↲
↲
Subtest 5 verifies the ability of the ECC hardware circiutry to ↓
correct single bit errors.↲
↲
First the test resets all memory cells from the start address to ↓
the end address, and if unable to reset memory generates an error ↓
message like this.↲
↲
1. ┆b0┆MEM 60X Test: Subtest: 5 - Could not reset RAM↲
↲
If RAM is reset succesfully the then test proceeds and makes the ↓
start address EVEN aligned (decrement start address if ODD). Then ↓
a pattern equal to 0000000000000001 binary is written to the ↓
first memory cell in diagnostic mode (writing of checkbits ↓
inhibited), the checkbits is read and saved for an eventually ↓
error message. The operating mode is restored and the data is ↓
read back. The syndrome bits are read and if they does'nt ↓
indicate an error correct correction (the bit set in the pattern ↓
should get corrected to a 0) then an error message is written to ↓
the console.↲
↲
2. ┆b0┆MEM 60X Test: Subtest: 5 - error correction error↲
   ┆b0┆synbit <yyyy> chkbit <cccc> segm.:<ssss> addr.:<aaaa>↲
┆19┆┄┆81┆┆82┆   exp.:<eeee> rec.:<rrrr>↲
┆a1┆↲
The secondary text is interpreted like this :↲
↲
<yyyy> ┆84┆is the syndrome bits that shoud indicate a one bit error        ↓
┆19┆┆87┆┄┄correction.↲
<cccc> ┆84┆is the checkbits that was not written because diagnostic ↓
┆19┆┆87┆┄┄mode was selected.↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern, always 0000.↲
<rrrr> is the received pattern.↲
↲

════════════════════════════════════════════════════════════════════════
↓
If no error occur then the pattern is shifted one position left ↓
until a carry and the test is repeated for every memory cell from ↓
the start address to the end address.↲
┆a1┆┆82┆↲
↲
┆a1┆┆b0┆12.8 Subtest 6 = ECC Error Detection Test.↲
↲
Subtest 6 verifies the ability of the ECC hardware circiutry to ↓
detect double bit errors.↲
↲
First the test resets all memory cells from the start address to ↓
the end address, and if unable to reset memory generates an error ↓
message like this.↲
↲
1. ┆b0┆MEM 60X Test: Subtest: 6 - Could not reset RAM↲
↲
If RAM is reset succesfully then the test proceeds and makes the ↓
start address EVEN aligned (decrement start address if ODD). Then ↓
a pattern equal to 0000000000000101 binary is written to the ↓
memory in diagnostic mode (writing of checkbits inhibited), the ↓
checkbits is read and saved for an eventually error message. The ↓
operating mode is restored and the data is read back. The ↓
syndrome bits are read and if they does'nt indicate a double ↓
error detection then an error message is written to the console.↲
↲
2. ┆b0┆MEM 60X Test: Subtest: 6 - error detection error↲
┆b0┆   synbit <yyyy> chkbit <cccc> segm.:<ssss> addr.:<aaaa> ↲
┆19┆┄┆81┆┆82┆   exp.:<eeee> rec.:<rrrr>↲
┆a1┆↲
The secondary text is interpreted like this :↲
↲
<yyyy> ┆84┆is the syndrome bits that shoud indicate a double bit ↓
┆19┆┆87┆┄┄error detection↲

════════════════════════════════════════════════════════════════════════
↓
<cccc> ┆84┆is the checkbits that was not written because diagnostic ↓
┆19┆┆87┆┄┄mode was selected.↲
<ssss> ┆84┆is the 64 K byte block number (1-FF).↲
<aaaa> is the offset within the block (0-FFFF).↲
<eeee> is the expected pattern, always 0000.↲
<rrrr> is the received pattern.↲
↲
If no error occur then the pattern is shifted one position left ↓
until a carry and the test is repeated for every memory cell from ↓
the start address to the end address.↲
┆a1┆┆82┆↓

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆13. ┆b0┆TEST 8┆f0┆ = Floppy Test.↲
↲
This is a ┆b0┆seperately ┆f0┆run test supplied to verify the ↓
┆19┆┄┆81┆┄functionality of the floppy disk drive, not the floppy media ↓
┆19┆┄┆81┆┄itself.↲
↲
This test will, if not terminated before the end, verify every ↓
single sector on the floppy disc. The format of the floppy disc, ↓
which must be formatted properly prio to the test, is fixed and ↓
is.↲
↲
╞	╞	╞	┆84┆1024 bytes/sector.↲
╞	╞	╞	8 sectors/track.↲
╞	╞	╞	2 heads/cylinder.↲
╞	╞	╞	77 cylinders/disk.↲
↲
This test verifies the floppy drive sector for sector, beginning ↓
with sector 0 (head 0 track 0 sector 0). Before the sector is ↓
written the content of the sector is read to a save buffer, which ↓
is restored if no disk error occur. This makes the floppy test, ↓
if the floppy drives is ok, non media destructive. If the test ↓
cannot read a sector an error message is generated.↲
↲
1. ┆b0┆Floppy test: Floppy can not read ╞	╞	rec.:<rrrr>↲
↲
<rrrr> is the error code from the disc controller. The OMTI Reference ↓
Manual (SDC 691) Appendix B gives the information about this ↓
error code.↲
↲
If the disk controller does'nt respond to a disk's command within ↓
1 second an error message is generated.↲
↲
2. ┆b0┆Floppy test: transfer timeout↲
↲

════════════════════════════════════════════════════════════════════════
↓
If the first step went succesfull, then a pattern is written to ↓
the sector, and the disc controller may respond with an error ↓
which makes the test program write an error message.↲
↲
3. ┆b0┆Floppy test: Floppy can not write ╞	╞	rec.:<rrrr>↲
↲
If no error has happend until now the sector is read back and ↓
compared to the original one, and if equal the test is repeated ↓
on the next sector until end of disk, otherwise an error message ↓
is generated.↲
↲
4. ┆b0┆Floppy test: bad sector  sector:<dddd>, segm.:<ssss>,↲
╞	╞	  ┆b0┆addr.:<aaaa>, exp.:<eeee>, rec.:<rrrr>↲
↲
The secondary error text is interpreted like this :↲
↲
<dddd> gives the address of the bad sector.↲
<ssss> ┆84┆is the segment LDT selector (use RC 39 Monitor to ↓
┆19┆┆87┆┄┄determine the physical address - XLDT <ssss>).↲
<aaaa> is the segment offset.↲
<eeee> is the expected pattern.↲
<rrrr> is the received pattern.↲
↲
Otherwise. If an error of the disk controller or of the disk ↓
drive is discovered an error message like this is written to the ↓
console.↲
↲
┆82┆5. ┆b0┆Floppy test: floppy command error↲
↲
This error might be caused by malfunction of the disc, by a fault ↓
of the interface circuits , or by something else. ↲
↲
If no error happens, then the floppy test writes a '.' (period) ↓
to the console output for every cylinder verified like this.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆Floppy test: ...........  and so on↲
↲
The Floppy test is terminated by the escape button.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆14.┆b0┆ TEST 9┆f0┆ = Printer Test.↲
↲
A ┆b0┆seperately ┆f0┆run test is supplied to verify the functionality of ↓
┆19┆┄┆81┆┄the Centronix Printer Interface. The test writes a pattern to the ↓
┆19┆┄┆81┆┄printer like this:↲
↲

╱04002d4e0c00060000000002014b314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱

╱04002d4e0a000600000000030141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456↲
789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./012↲
3456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-.↲
/0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*↲
+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&↲
'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"↲
#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789↲
!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456↲
789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./012↲
3456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-.↲
/0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*↲
+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&↲
'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"↲
#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789!"#$%&'()*+,-./0123456789↲
↲
and so on.↲

╱04002d4e0a000600000000030141314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱

╱04002d4e0c00060000000002014b314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱
↓
↲
The printer test is terminated by the escape button.↲
↲
If the printer is'nt selected an error message is generated.↲
↲
1. ┆b0┆Printer Test: printer not selected↲
↲
If the does'nt respond to a character (STROBE signal) with an ↓
acknowledge interrupt then an error message is generated.↲
↲
2. ┆b0┆Printer Test: missing interrupt↲
↲
If the printer is busy for more than 1 minute an error message is ↓
generated.↲
↲
3. ┆b0┆Printer Test: printer busy↲
↓
↓

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆15. LED OUTPUT.↲
↲
During the execution of selftest the LED named "TEST" connected ↓
to bit 1 on the 8255 PPI port C (I/O address CC hex.) is lit. If ↓
an error occur, except checksum error and initial RAM error, then ↓
the LED is made flashing. This LED is placed on the front of the ↓
RC 39 cabinet.↲

════════════════════════════════════════════════════════════════════════
↓
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆A. REFERENCES↲
↲
(1)  RCSL. 991 10092↲
     RC 39 Selftest Concept, ↲
     User's manual ╞	          ↲
↲
(2)  RCSL. 991 10096↲
     RC 3931 ETC611 hardware selftest, ↲
     User's manual  ↲
↲
(3)  RCSL. 991 10097↲
     F641 COM 601 hardware selftest, ↲
     User's manual    ↲
↲
(4)  RCSL. 991 10095↲
┆a1┆┆e1┆     ITC 602 hardware selftest, ↲
     User's manual╞	  ↲
↲
(5)  RCSL. 991 10134↲
     RC39 monitor 8086 version, ↲
     Reference manual╞	  ↲
↲
(6)  RCSL. 991 10093↲
     RC39 monitor 80286 version, ↲
     Reference manual     ↲
↲
(7)  RCSL. 991 10083↲
     MEM 602, MEM 603 ↲
     General Information╞	╞	  ↲
↲
(8)  RCSL. 991 10084↲
     MEM 602, MEM 603 ↲
     Technical Description╞	╞	  ↲

════════════════════════════════════════════════════════════════════════
↓

╱04002d4e0c000600000000020150314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱

╱04002d4e0a000600000000030141314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱
↓
┆a1┆┆b0┆B. ┆a1┆COMPLETE ERROR LIST↲
↲
!-----------------------------------------------------------------------------!↲
! Err. No !╞	╞	╞	╞	   Error Text            ╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
!    0    ! OK╞	╞	╞	╞	╞	╞	╞	╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    1    ! Checksum Test: sum error    ╞	╞	╞	╞	╞	╞	╞	╞	╞	!↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    2╞	   ! Initial Memory Test: RAM error╞	╞	╞	╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    2╞	   ! RAM Test: RAM error╞	╞	╞	╞	╞	╞	╞	╞	  !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    5    ! PPI test: port error    ╞	╞	╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    6    ! PIT test: missing timer 0 interrupt╞	╞	╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    10   ! Printer Test: missing interrupt╞	╞	╞	╞	╞	╞	╞	  !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    11   ! Printer Test: printer not selected╞	╞	╞	╞	╞	╞	╞	  !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------;↲
!    12   ! Printer Test: printer busy╞	╞	╞	╞	╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    20   ! MEM 60X Test: Subtest: n - RAM error╞	╞	╞	╞	╞	╞	  !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    21   ! MEM 60X Test: Subtest: n - Could not reset RAM                    !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    22   ! MEM 60X Test: Subtest: 5 - data correction error             ╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    23   ! MEM 60X Test: Subtest: 6 - error detection error     ╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲

════════════════════════════════════════════════════════════════════════
↓
↲
!-----------------------------------------------------------------------------!↲
!    40   ! Disc Channel test: transfer timeout or interrupt missing╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    41   ! Disc Channel test: disc diagnostic error╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    42   ! Disc Channel test: disc command error╞	                       !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    43   ! Disc Channel test: disc channel error╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    50   ! 80287 NPX test: 80287 not OK       ╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    80   ! Floppy test: transfer timeout╞	╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    81   ! Floppy test: floppy command error  ╞	                       !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    82   ! Floppy test: floppy can not read                                  !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    83   ! Floppy test: floppy can not write   ╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
!-----------------------------------------------------------------------------!↲
!    84   ! Floppy test: bad sector╞	╞	╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲

════════════════════════════════════════════════════════════════════════
↓
↲
↓
↓
┆1a┆┆1a┆!↲
↲
!-----------------------------------------------------------------------------

Full view