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

⟦b2c0658ad⟧ RcTekst

    Length: 55680 (0xd980)
    Types: RcTekst
    Names: »99110176.WP«

Derivation

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

RcTekst


╱04002d4e0a0006000000000201413100000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱
┆06┆i↲
↲
↲
┆a1┆TABLE OF CONTENTS╞	╞	╞	     ┆05┆PAGE  ↲
↲
↲
1.  INTRODUCTION .........................................      1↲
↲
↲
2.  THE BAUD RATE DETERMINATION MODE .....................╞	2↲
↲
↲
3.  THE INITIAL MEMORY TEST ..............................      3↲
    3.2 Initial RAM Test .................................      3↲
        3.2.1 Memory Test Flow ...........................      3↲
        3.2.2 Loop On Error ..............................      4↲
↲
↲
4.  INTERRUPT HANDLING AND PVAM SWITCH ...................      5↲
    4.1 Valid Interrupts .................................╞	5↲
╞	4.2 Protection Violations and Instruction Exeptions ..╞	5↲
↲
    ↲
5.  TEST 0 = RAM test ....................................      7↲
↲
↲
6.  TEST 1 = Chip Select Test ............................      9↲
↲
↲
7.  TEST 2 = 8254 Programmable Interval Timer Test .......     10↲
↲
↲
8.  TEST 3 = Personality PROM Test .......................     11↲
↲
↲
9.  TEST 4 = RS 422 Test .................................     12↲
↲
↲
10. TEST 5 = Real Time Clock (RTC) Test ..................     13↲
↲
↲
11. TEST 6 = Timeout Interrupt Test ......................     14↲
↲
↲
12. TEST 7 = I/O Interrupt Test ...........................    15↲
↲
↲
13. TEST 8 = Numeric Processor Extension Test..............    16↲
↲
↲
14. TEST 9 = Disc Channel Test ............................    17↲
↲
↲
15. TEST 10 = Winchester Disc Test ........................    18↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆TABLE OF CONTENTS (continued)                               PAGE↲
↲
16. TEST 11 = Multibus Configuration ......................    20↲
↲
↲
17. TEST 12 = Parallel Port Test ..........................    22↲
↲
↲
18. TEST 13 = Multibus Out Interrupt Test .................    23↲
↲
↲
19. TEST 14 = Real Time Clock (RTC) Programming Test ......    24↲
↲
↲
20. TEST 15 = Extended RAM Test ...........................    25↲
    20.1 Test Variables ...................................    25↲
         20.1.1 Operating Mode ............................    26↲
         20.1.2 Address Range .............................    26↲
         20.1.3 Change Pattern ............................    26↲
         20.1.4 Execute Subtest Alone .....................    26↲
         20.1.5 Bus LOCK ..................................    26↲
         20.1.6 BUS Select ................................    26↲
    20.2 Subtest 0 = Pattern test - WORD mode, EVEN Alignm.    27↲
    20.3 Subtest 1 = Pattern test - WORD mode, ODD Alignm.     27↲
    20.4 Subtest 2 = Pattern test - BYTE mode, ALL bytes ..    27↲
    20.5 Subtest 3 = Pattern test - BYTE mode, EVEN bytes only 28↲
    20.6 Subtest 4 = Pattern test - BYTE mode, ODD bytes only  28↲
    20.7 Subtest 5 = ECC Error Correction Test ............    29↲
    20.8 Subtest 6 = ECC Error Detection Test .............    30↲
↲
↲
21. TEST 16 = Floppy Test .................................    31↲
↲
↲
22. TEST 17 = Printer Test ................................    33↲
↲
↲
23. TEST 18 = Real Time Clock Adjustment Test .............    34↲
↲
↲
24. LED OUTPUT ............................................    35↲
↲
↲
APPENDICES:↲
↲
A. REFERENCES .............................................    37↲
↲
↲
B. COMPLETE ERROR LIST ....................................    38↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆14┆┆b3┆╞	╞	╞	╞	┆0b┆┆a1┆↲
┆a1┆┆a1┆┆b0┆1. INTRODUCTION.↲
↲
↲
The CPU 610 is an RC iAPX 286 processor based board, used as the ↓
main CPU in RC 39 products. The CPU 610 replaces an INTEL ↓
Manufactured board called CPU 691.↲
↲
↲
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 610 selftest includes 19 different ↓
tests which may be run in several modes. Twelwe of these tests ↓
are ┆b0┆default┆f0┆ tests which allways execute after a power on. One ↓
┆19┆┄┆81┆┄test is an ┆b0┆extended┆b0┆┆f0┆ test which may be appended to the default set ↓
┆19┆┄┆83┆┄when requested explicit by an operator. The last six 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 (DSR ↓
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 610 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.2 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.2.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┆2. ┆b0┆Initial RAM Test: RAM error  segm.:<ssss>  addr.:<aaaa>↲
┆19┆┄┆82┆┆82┆                                 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.2.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┆4. INTERRUPT HANDLING AND PVAM SWITCH.↲
↲
↲
When the CPU 610 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↲
↲
┆8c┆┆83┆┆d0┆↓
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.┆b0┆↲
↲
↲
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 610 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 610 (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.↲
┆8c┆┆83┆┆c8┆↓
<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┆ ┆f0┆= Personality PROM Test.↲
↲
↲
The personality PROM test calculates the checksum of the 256 * 4 ↓
bit bipolar PROM. All nibbles are added with carry, and the test ↓
displays the checksum hexadecimally like this.↲
↲
↲
┆b0┆Personality PROM test: Checksum = XYVZ↲
↲
↲
This test is unable to generate error messages.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆9. ┆b0┆TEST 4┆f0┆ = RS 422 Test.↲
↲
↲
This test program verifies the RS 422 multidrop interface and its ↓
status signals. On board loopback circuitry makes it possible to ↓
run this test without external hardware connected.↲
↲
↲
First the test verifies the function of the CTS status signal, ↓
which is toggled by DTR in loop back mode, and if an error occur ↓
a message is displayed.↲
↲
↲
1. ┆b0┆RS 422 test: RS422 Clear to Send error↲
↲
↲
If the status signal test succeeds then a serial data transport ↓
of a 2 K byte long source buffer to an equally long destination ↓
buffer is made. When the data transport has completed the two ↓
buffers are compared, and if not equal an error message is ↓
written to the console.↲
↲
↲
2. ┆b0┆RS 422 test: data error↲
↲
↲
If the data transport does'nt complete within 5 seconds a timeout ↓
message is generated.↲
↲
↲
3. ┆b0┆RS 422 test: transfer timeout↲
↲
↲
If a parity interrupt is generated another error message is ↓
generated. The USART is not initialized to operate with parity so ↓
this interrupt is truly unexpected.↲
↲
↲
4. ┆b0┆RS 422 test: parity interrupt error↲
↲
↲
The test executes at 9600 baud.↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆10. ┆b0┆TEST 5┆f0┆ = Real Time Clock (RTC) Test.↲
↲
↲
The Real Time Clock test is used to display the state of the on ↓
board RTC chip. The normal output from the test looks like this.↲
↲
↲
┆b0┆RTC test: I Think it is: my:dm:hd:md:sh↲
↲
↲
my is month of year, dm is day of month, hd is hour of day, md is ↓
minute of hour and sh is second of minute.↲
↲
↲
If the RTC test reads an invalid BCD code from the clock chip an ↓
error message is generated.↲
↲
↲
1. ┆b0┆RTC test: read error↲
↲
↲
If it is impossible to read the RTC clock chip without status ↓
error after 50 attempts another error message is generated.↲
↲
↲
2. ┆b0┆RTC test: status error↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆11. ┆b0┆TEST 6┆f0┆ = Timeout Interrupt Test.↲
↲
↲
This test is supplied to verify the functionality of the timeout ↓
interrupt logic. This test generates a timeout by an out ↓
instruction to port 0FFFF hexadecimal. If no interrupt occur an ↓
error message is generated.╞	↓
↲
↲
1. ┆f0┆┆b0┆Timeout interrupt test: missing interrupt  rec.:<0032>↲
↲
↲
The received value display the type of the interrupt missing. If ↓
the interrupt is generated but unable to reset another message is ↓
written.↲
↲
↲
2. ┆b0┆Timeout interrupt test: cannot reset interrupt rec.:<0032>↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆12. ┆b0┆TEST 7┆f0┆ = I/O Interrupt Test.↲
↲
↲
This test verifies the 8 extra Multibus interrupt mapped in to ↓
I/O space. The interrupts is generated one by one starting with ↓
MB interrupt 15 (type 38) and ending with interrupt 8 (type 33). ↓
If no interrupt occur an error message is generated.╞	↲
↲
1. ┆f0┆┆b0┆IO interrupt test: missing interrupt  rec.:<00rr>↲
↲
↲
The received value display the type of the interrupt missing. If ↓
the interrupt is generated but unable to reset another message is ↓
written.↲
↲
↲
2. ┆b0┆IO interrupt test: cannot reset interrupt rec.:<00rr>↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆13. ┆b0┆TEST 8┆f0┆ =┆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. ↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆┆a1┆14. ┆b0┆TEST 9┆f0┆ = Disk Channel Test.↲
↲
↲
This test is used to exercise and verify the data channel between ↓
CPU 610 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┆┆a1┆┆b0┆15. ┆b0┆TEST 10┆f0┆ = Winchester Disc Test.↲
↲
↲
This test verifies the ┆b0┆┆f0┆functionality of the winchester disk ↓
┆19┆┄┆81┆┄drive and the disk controller board, not the winchester media ↓
┆19┆┄┆81┆┄itself. The format of the winchester disk track 1 must be ↓
┆19┆┄┆81┆┄formatted properly prior to the test, it is fixed and is.↲
↲
↲
╞	╞	╞	┆84┆1024 bytes/sector.↲
╞	╞	╞	9 sectors/track.↲
╞	╞	╞	2 heads/cylinder.↲
╞	╞	╞	1 cylinder/disk.↲
↲
↲
This test verifies only on track of the winchester disc the ↓
"test-track" given by the disc description on track 1. ↓
The first part of this test executes a "read command", this ↓
command reads  disc characteristic parametres which specifies a ↓
default or current parameter value for disc and is placed on the ↓
sector 0 of track 1. This value remains unchanged and is used to ↓
initialize winchester disk controller.↲
↲
↲
If the disc controller responds with an error to this command an ↓
error message is generated.↲
↲
↲
1. ┆b0┆Winchester disk test: Winchester 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┆. Winchester disk test: transfer timeout or interrupt missing↲
↲
↲
If the test discovers that the winchester disk isn't formatted  a ↓
message is written to the console like this.↲
↲
↲
┆b0┆┆b0┆Winchester disk test: Winchester disk not formatted : OK↲
↲
↲
If the first step went succesfull the test going to the second ↓
part. The second part of this test executes a "write test sector ↓
command " followed by a "read test sector command". A pattern is ↓
written to the test sector, and the disc controller may respond ↓
with an error which makes the test program write an error ↓
message.↲
↲
↲
┆8c┆┆83┆┆d0┆↓
3. ┆b0┆Winchester disk test: Winchester can not write    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 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 test track , otherwise an error ↓
message is generated.↲
↲
↲
4. ┆b0┆Winchester disk test: bad test sector sector.:<dddd>, ↓
┆19┆┄┆81┆┆82┆             segm.:<ssss>,┆b0┆ addr.:<aaaa>, exp.:<eeee>, rec.:<rrrr>↲
↲
↲
The secondary error text is interpreted like this :↲
↲
↲
<dddd> gives the address of the bad test 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┆Winchester disk test: disk 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┆16. ┆b0┆TEST 11 =┆f0┆ Multibus Configuration.↲
↲
↲
When the CPU 610 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┆↲

╱04002d4e0c000600000000020147314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱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 610   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↲

╱04002d4e0a000600000000020141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0c000600000000020147314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
↲
↲
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 ↓
┆8c┆┆83┆┆c8┆↓
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".↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆17.┆b0┆ TEST 12 =┆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┆18. ┆b0┆TEST 13┆f0┆ = Multibus Out Interrupt Test.↲
↲
↲
This ┆b0┆seperately ┆f0┆run test verifies the functionality of the 3 ↓
┆19┆┄┆81┆┄outgoing Multibus interrupts. In order to make this test work 3 ↓
┆19┆┄┆81┆┄straps must be installed in the interrupt strap feld W5, W5(33-↓
┆19┆┄┆81┆┄12), W5(32-13) and W5(43-2). The interrupt is generated one by ↓
┆19┆┄┆81┆┄one, first MBINT2 (type 44), second MBINT1 (type 54) and third ↓
┆19┆┄┆81┆┄MBINT0 (type 48). If an interrupt is generated but not serviced ↓
┆19┆┄┆81┆┄an error message is generated.↲
↲
↲
1. ┆b0┆MB out interrupt test: missing interrupt  rec.:<00rr>↲
↲
↲
The received value is the type of the expected inetrrupt.↲
↲
↲
If an interrupt is generated but unable to reset another message ↓
is generated.↲
↲
↲
2. ┆b0┆MB out interrupt test: cannot reset interrupt  rec.:<00rr>↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆19. ┆b0┆TEST 14┆f0┆ = Real Time Clock (RTC) Programming Test.↲
↲
↲
This ┆b0┆seperately┆f0┆ run test is supplied as a programming tool for ↓
┆19┆┄┆81┆┄the Real Time Clock chip. A series of question is asked line by ↓
┆19┆┄┆81┆┄line as this.↲
↲
↲
┆b0┆RTC programming:↲
┆b0┆Enter Month of Year ? , <1-12> 1/↲
┆b0┆Enter day of Month ? , <1-31> 1/↲
┆b0┆Enter Hour ? , <0-23> 0/↲
┆b0┆Enter Minute ? <0-59> 0/↲
┆b0┆Enter Seconds ? , <0-59> 0/↲
↲
↲
The questions must be answered with a value in the range given in ↓
brackets (<>), Or a carriage return only. In the latter case the ↓
default value left to the slash is taken.↲
↲
↲
This test is unable to generate error messages.↲

════════════════════════════════════════════════════════════════════════
↓
┆84┆┆a1┆┆b0┆20. ┆b0┆TEST 1┆f0┆┆b0┆5┆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┆20.1 Test Variables.↲
↲
↲
The first time the test is selected a menu is written to the ↓
console like this.↲
↲
↲

╱04002d4e0c00060000000002014d314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

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

╱04002d4e0a000600000000020141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱

╱04002d4e0c00060000000002014d314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
┆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/↲
┆b0┆iLBX BUS selected ? <Y/N>, Y/↲
↲
↲
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┆20.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┆20.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┆20.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┆20.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┆20.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┆20.1.6 BUS Select.↲
↲
↲
If the last question about iLBX bus selected is answered with a ↓
no (N), then CPU 610 uses the Multibus during this test.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆20.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.↲
↲
↲
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┆20.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┆20.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>↲
↲
↲
┆8c┆┆83┆┆f0┆↓
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┆20.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┆20.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.↲
↲
↲
┆a1┆┆a1┆┆b0┆20.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┆20.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┆21. ┆b0┆TEST 16┆f0┆ ┆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.↲
↲
↲
┆8c┆┆83┆┆c8┆↓
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┆22.┆b0┆ TEST 17┆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╱

╱04002d4e0a000600000000020141314000000000000000000000000000000000000000000000000008101820283038404b555f69737dffff04╱
↓
!"#$%&'()*+,-./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.↲

╱04002d4e0a000600000000020141314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱

╱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┆22. ┆b0┆TEST 18┆f0┆ = Real Time Clock Adjustment Test.↲
↲
↲
This ┆b0┆seperately ┆f0┆test must execute during Real Time Clock ↓
┆19┆┄┆81┆┄adjustment. The RTC is programmed to generate interrupt every ↓
┆19┆┄┆81┆┄second, and this program must execute in order to resets the ↓
┆19┆┄┆81┆┄interrupt every second. The test is terminated by the <escape> ↓
┆19┆┄┆81┆┄button.↓

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆23. 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↲
↲
↲
RC 39 Selftest Concept, User's manual ╞	          RCSL. 991 10092↲
↲
RC 3931 ETC611 hardware selftest, User's manual  RCSL. 991 10096↲
↲
F641 COM 601 hardware selftest, User's manual    RCSL. 991 10097↲
↲
ITC 602 hardware selftest, User's manual╞	  RCSL. 991 10095↲
┆a1┆↲
RC39 monitor 8086 version, Reference manual╞	  RCSL. 991 10134↲
↲
RC39 monitor 80286 version, Reference manual     RCSL. 991 10093↲
↲
RC 3902 (CPU 691) hardware selftest, User's man. RCSL. 991 10094↲
↲
MEM 602, MEM 603 General Information╞	╞	  RCSL. 991 10083↲
↲
MEM 602, MEM 603 Technical Description╞	╞	  RCSL. 991 10084↲

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

╱04002d4e0c000600000000020150314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱

╱04002d4e0a000600000000020141314000000000000000000000000000000000000000000000000008101820283038404a4b555f69737dff04╱
↓
┆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╞	╞	╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    11   ! RS 422 test: RS422 Clear to Send error╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    12   ! RS 422 test: data error╞	╞	╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    13   ! RS 422 test: transfer timeout     ╞	╞	╞	╞	     !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    14   ! RS 422 test: parity interrupt error╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
┆8c┆┆83┆┆b8┆↓
!-----------------------------------------------------------------------------!↲
!    15   ! Printer Test: missing interrupt╞	╞	╞	╞	╞	╞	╞	  !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    16   ! Printer Test: printer not selected╞	╞	╞	╞	╞	╞	╞	  !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------;↲
!    17   ! 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     ╞	╞	╞	╞	╞	 !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    25   ! IO interrupt test: missing interrupt╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    26   ! IO interrupt test: cannot reset interrupt╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    27   ! Timeout interrupt test: missing interrupt╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    28   ! Timeout interrupt test: cannot reset interrupt╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    30   ! RTC test: I Think it is: status error╞	╞	   ╞	     !↲
!-----------------------------------------------------------------------------!↲

════════════════════════════════════════════════════════════════════════
↓
↲
↲
!-----------------------------------------------------------------------------!↲
!    31   ! RTC test: i Think it is: read 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╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    45   ! MB out interrupt test: missing interrupt╞	╞	    ╞	     !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    46   ! MB out interrupt test: cannot reset interrupt ╞	╞	╞	╞	   !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    50   ! 80287 NPX test: 80287 not OK       ╞	╞	               !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    60   ! Winchester disk test: transfer timeout or interrupt missing       !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    61   ! Winchester disk test: disk command error  ╞	                       !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    62   ! Winchester disk test: Winchester disk can not read                !↲
!-----------------------------------------------------------------------------!↲
↲
↲
┆8c┆┆83┆┆c8┆↓
!-----------------------------------------------------------------------------!↲
!    63   ! Winchester disk test: Winchester disk can not write ╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    64   ! Winchester disk test: bad test sector╞	╞	╞	╞	    !↲
!-----------------------------------------------------------------------------!↲
↲
↲
!-----------------------------------------------------------------------------!↲
!    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┆-----------------------------------------------------------------------------------------!↲
!    15   ! Printer Test

Full view