|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 16000 (0x3e80) Types: RcTekst Names: »99110047.WP«
└─⟦7fab0c8ae⟧ Bits:30005866/disk3.imd Dokumenter i RcTekst format (RCSL 99-1-*) └─⟦this⟧ »99110047.WP«
╱04002d4e0a00060000000003013c3100000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱ ┆06┆i↲ ↲ ┆a1┆┆b0┆TABLE OF CONTENTS┆05┆PAGE↲ ↲ 1. INTRODUCTION ....................................... 1↲ ↲ 2. THE TESTROUTER ..................................... 2↲ 2.1 Switch Parameters .............................. 2↲ 2.2 Keyboard Management ............................ 4↲ 2.3 Output ......................................... 5↲ ↲ 3. THE MEMORY TEST .................................... 6↲ 3.1 Checksum Test .................................. 6↲ 3.2 Ram Test ....................................... 6↲ ↲ 4. MEMORY REFRESH TEST ................................ 9↲ 4.1 Battery Test ................................... 9↲ ↲ 5. KEYBOARD TEST ...................................... 10↲ ↲ 6. SIO TEST ........................................... 11↲ 6.1 Modem Signal Response .......................... 11↲ 6.2 SIO Channel Test ............................... 12↲ ↲ 7. RCCIRCUIT I TEST ................................... 14↲ ↲ 8. CTC TEST ........................................... 15↲ ↲ 9. PARALLEL PORT TEST ................................. 16↲ ↲ 10. DMA TEST ........................................... 17↲ ↲ 11. CRT TEST ........................................... 18↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆06┆ii↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆14┆┆b3┆┆06┆┆0b┆↲ ┆a1┆1. INTRODUCTION↲ ↲ ┆84┆This manual describes the diagnostic testprograms for the RC45 ↓ terminalsystems.↲ ↲ ┆84┆The testprograms are testing the basic functions of the different ↓ parts of the hardware in the terminal.↲ ↲ ┆84┆┆84┆The sequence of the different testprograms in the test systems is ↓ organized with rising complexity. As far as possible, no part of ↓ the hardware is used before it is tested.↲ ↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆2.╞ THE TEST ROUTER↲ ↲ ┆84┆The test router is the kernal in the testsystem, which main ↓ purpose is to compute the address of the next test in the ↓ sequence. The address of the next test is derived from a variable ↓ holding the present test number and normally incremented by one. ↓ Every time a test has finished and is not in looping mode, the ↓ test router is entered.↲ ↲ ↲ ┆a1┆2.1╞ Switch Parameters↲ ↲ ┆84┆The variable holding the test number also contains four switch ↓ bits, by which the testrouter decides how to administer the ↓ tests.↲ ↲ ╞ MSB LSB↲ ╞ -------------------------------------------------↲ ╞ ! ! ! ! ! ! ! ! !↲ ╞ ! ! ! ! ! ! ! ! !↲ ╞ ! ! ! ! ! ! ! ! !↲ ╞ -------------------------------------------------↲ ! ! ! ! ! ! ! !↲ ! ! ! ! !-----!-----!-----!--test no.↲ ! ! ! !--------------------------use V.24↲ ! ! !--------------------------------ext. test↲ ! !--------------------------------------loop↲ !--------------------------------------------halt↲ ↲ halt:╞ 0: halt if error (default)↲ ╞ ╞ 1: proceed even if error↲ ↲ loop:╞ 0: sequential, big loop af all tests (default)↲ ╞ ╞ 1: looping in a selected test↲ ↲ ext. test:╞ 0: power-up test↲ ╞ ╞ 1: extended test↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ V.24:╞ 0: test plug in the V.24 connection↲ ╞ ╞ 1: ┆84┆no test plug in the V.24 connection. The channel ↓ ┆19┆┆91┆┄┄is used as V.24 output (1200 baud, 7 bit, 1 ↓ ┆19┆┆91┆┄┄stopbit)↲ ↲ ┆84┆The HALT and LOOP bits are initiated to zero.↲ ↲ ┆84┆The test mode bit is set to one, if the test plug (KBL 721) is ↓ installed in the parallel printer connection (J3) or if the ↓ 'TEST' key is pressed immediately after power-up test, when the ↓ RC logo appears in the lower left corner.↲ ↲ ┆a1┆┆b0┆WARNING! Be aware of connecting the plugs in the right ↓ ┆19┆┄┆81┆┆86┆connections or the terminal may be damaged.↲ ┆a1┆↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ┆06┆Figure 1: Testmode plug (KBL 721).↲ ↲ ┆84┆The V.24 bit is set/reset every time the RAM test has finished. ↓ If the SIO-test plug (CBL 998 see fig. 3) is installed in the ↓ V.24 output connection (SIO channel A), the bit is reset, ↓ otherwise it is set to indicate, that the testoutput is directed ↓ to the V.24 channel (1200 baud, 7 bit, 1 stopbit and even parity) ↓ too.↲ ↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆2.2╞ Keyboard Management↲ ↲ Valid keys are as follows:↲ ↲ ╞ ╞ H: set halt bit to 0↲ ╞ ╞ R: set halt bit to 1↲ ╞ ╞ G: set loop bit to 0↲ ╞ ╞ L: set loop bit to 1↲ ↲ ┆84┆Numbers between 0-8 will insert a new test number into the ↓ test number variable. ↲ ↲ All other keys will give no response.↲ ↲ ┆84┆If one for example wants to loop in test 6 and not go into a HALT ↓ state if error, then strike the keys R, L, 6 (not necessarily ↓ this sequence).↲ ↲ ┆a1┆┆84┆Note┆e1┆ it is the last valid key, which is pressed, that determines ↓ the test parameter or test number (e.g. if "L" and "G" is pressed ↓ in this sequence, the loop bit is reset.)↲ ↲ ┆84┆Relationship between the test numbers and actual test is as ↓ follows.↲ ↲ ╞ ┆a1┆test No╞ Test name↲ ↲ ╞ 0╞ RAM test↲ ╞ 1 ╞ REFRESH test↲ ╞ 2╞ KEYBOARD test↲ ╞ 3╞ SIO test↲ ╞ 4╞ RCCIRCUIT I test↲ ╞ 5╞ CTC test↲ ╞ 6╞ PARALLEL PORT test↲ ╞ 7╞ DMA test↲ ╞ 8╞ CRT test↲ ↲ ┆84┆↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆2.3╞ Output↲ ↲ ┆84┆The test router will respond with some output. After the RAM test ↓ has finished, a test menu (se fig. 2) is shown for a few seconds. ↓ This test menu shows the tests with the relational numbers and ↓ the possible test modes (looping, halt on error etc). By pressing ↓ the 'M' key will force the menu to retain on the screen. To ↓ continue press "RETURN". It also responds with a status line, in ↓ which the state of the test is shown. This could be either going, ↓ stopped, looping or halted. Furthermore the state of the 'HALT-↓ bit' (R-SWITCH/H-SWITCH) and a passcounter is shown. ↲ ↲ RC45 testsystem version x.x↲ ↲ ┆19┆┄┄┆84┆┆e1┆ MENU╞ ╞ Select↲ ╞ RAM_test:╞ ╞ 0↲ ╞ Refresh_test:╞ 1↲ ╞ Keyboard_test:╞ 2↲ ╞ SIO_test:╞ ╞ 3↲ ╞ RcCircuit1_test:╞ 4↲ ╞ CTC_test:╞ ╞ 5↲ ╞ Parallel_port_test:╞ 6↲ ╞ DMA_test:╞ ╞ 7↲ ╞ CRT_test:╞ ╞ 8↲ ↲ ╞ Looping in a selected test L↲ ╞ Go through tests╞ G↲ ╞ Run even if error╞ R↲ ╞ Halt if error╞ H↲ ↲ Select any combination from menu and type 'RETURN':↲ ↲ ┆06┆Figure 2: Test menu.↲ ↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆┆a1┆3.╞ THE MEMORY TEST↲ ↲ ┆84┆The memory test performs a test of the dynamic, if installed, and ↓ the static RAM memory. All memory cells but the upper 512 are ↓ tested by the memory test. Incorporated in the memory test is a ↓ checksum of the bootprom. This checksum is performed as the very ↓ first test.↲ ↲ ↲ ┆a1┆3.1╞ Checksum test↲ ↲ ┆84┆The checksum is made on the 16K image of the bootprom. The ↓ checksum must end up with the sum 0.↲ ↲ ┆a1┆Text from this part of the memory test:↲ ↲ ╞ ╞ <RC45 rom error>↲ ↲ ↲ ┆a1┆3.2╞ Ram test↲ ↲ ┆84┆First the memory addresses from 48 - 64 K (except for the upper ↓ 512 bytes) is tested. If this addressroom is failurefree, the ↓ testsystem is moved to this memory area, and it is tested if the ↓ RAM from 0 - 48 K is installed. In this case this memory area is ↓ tested, and thereafter the testsystem is moved back.↲ ↲ ┆84┆The test pattern for the dynamic RAM memory consisting of chips ↓ of 4 bit x 16 k is three times 00 followed by three times FF ↓ (Hex). When all memory cells have been tested, they are again ↓ tested with the inverted pattern. This means that all bits are ↓ tested for "zero" and "one" insertion. ↲ ↲ ┆84┆┆a1┆If an error occurs, a message will be written:↲ ↲ ╞ ╞ <RC45 memory error ha la ex re>↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆84┆where "ha" is high address, "la" is below address, "ex" is ↓ expected value and "re" is received value. All numbers are in ↓ hexadecimal notations. (To find any defective chip, consult fig. ↓ 3).↲ ↲ If the memory is found failurefree no message is written.↲ ↲ ┆84┆┆a1┆If an error occurs in the memory test (rom error or ram error) ↓ ┆19┆┄┄┆84┆the test will stop hard i.e. it is not possible to continue the ↓ ┆19┆┄┄┆84┆testsequence.↲ ════════════════════════════════════════════════════════════════════════ ↓ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ┆88┆┆81┆↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ┆06┆Figure 3: Memory lay-out↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆4┆a1┆.╞ MEMORY REFRESH TEST↲ ↲ The dynamic RAM refresh test is a test, which verifies the ↓ function of the CPU refresh counting. As an additional feature ↓ the test checks the battery circuit.↲ ↲ ┆84┆The test writes a pattern in memory consisting of an XOR of high ↓ and low address part. The pattern is written from the memory ↓ address 8000H until the hexadecimal address D500H (where the ↓ display image starts). If no dynamic RAM is installed, the test ↓ starts at memory address C000H.↲ ↲ ┆84┆When the pattern has been written, the test waits for 5 seconds ↓ in a waiting loop before it performs a check of the data.↲ ↲ ┆84┆The main purpose of this test is to discover modification of the ↓ data occurring in the delay time, due to malfunction of the ↓ refresh counting in the CPU. Note that the memory higher than ↓ C000H (48K) is static RAM and has no refresh counting.↲ ↲ ┆84┆┆a1┆Possible messages are:↲ ↲ ╞ <OK>↲ ↲ ╞ <data modified in byte xx xx exp: xx rec: xx>↲ ↲ ↲ ┆a1┆4.1╞ Battery test↲ ↲ ┆84┆When the refresh counting is tested, the test checks 4 bytes in ↓ the NVM-area. If theese 4 bytes does not match a testpattern (00 ↓ FF 00 FF), the bytes will be initiated to this testpattern, and ↓ the text "battery test initiated" will be written. To check the ↓ battery circuit turn off and on the power and restart the ↓ testsytem. When performing the refresh test, the text "battery ↓ test initiated" must not appear. ┆a1┆Note that the test must be ↓ ┆19┆┄┄┆84┆started with the testcable KBL 721 in the printerconnector, if ↓ ┆19┆┄┄┆84┆this part of the test shall act correct.↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆5.╞ KEYBOARD TEST┆e1┆↲ ↲ ┆84┆The keyboard contains a checksum test of the keyboard-PROM, a RAM ↓ test of keyboard-CPU and a scan test of the keyboard- matrix. ↓ Theese three tests can be activated by writing some specifically ↓ codes (keyboard-PROM test: 186, keyboard-RAM test: 184 and ↓ keyboard scan test: 188) to the keyboard. The keyboard will ↓ respond with OK (the same code) or not OK (the code + 1).↲ ↲ ┆a1┆Possible messages are:↲ ↲ ╞ <OK>↲ ↲ ╞ <romerror>↲ ↲ ╞ <ramerror>↲ ↲ ╞ <scanerror>↲ ↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆6.╞ SIO TEST↲ ↲ ┆84┆If the SIO-test plug (CBL 998) is inserted in the V.24 ↓ connection, the SIO test is performed.↲ ↲ ┆84┆The SIO test is testing the modem signals and data transports on ↓ SIO channel A.↲ ↲ ┆84┆Channel B see RCCIRCUIT I test.↓ ↲ ↲ ┆a1┆6.1╞ Modem Signal Response↲ ↲ ┆84┆The responses of DTR and RTS are tested on the DCD and CTS pins. ↓ Test plug as shown in fig. 4 must be installed on the V.24 ↓ connection of the terminal.↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ┆06┆Figure 4: CBL 998↲ ↲ ┆84┆If an error occurs on the modem signals CTS or DCD the received ↓ hex. value should be interpreted as shown in fig. 5↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆84┆┆a1┆Error messages from this part of the test:↲ ↲ ╞ CTS or DCD error, exp: <xx> rec: <xx>↲ ↲ Received value differs from expected; cf. fig. 5.↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ↲ ┆06┆Figure 5: Modem signal response.↲ ↲ ↲ ┆a1┆6.2╞ SIO Channel Test↲ ↲ ┆84┆When the modem signal responses have been checked, the SIO ↓ channel A is initiated.↲ ↲ ┆84┆The SIO channel is initiated to 19200 bps. Baud rate generator is ↓ the CTC.↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆84┆A timer interrupt generated approx. 1760 times/s transmits the ↓ data from the transmit buffer. ↲ ↲ ┆84┆The channel transmit a databuffer of 1 k bytes consisting of a ↓ counting pattern (00 FF FE FD etc.). The test loop will check the ↓ received buffer, as soon as the pattern have been transfered. It ↓ also monitors the channel for timeout.↲ ↲ ┆a1┆Error messages from the SIO channel test:↲ ↲ ╞ ┆84┆<illegal interrupt, port: <xx>>↲ ↲ ┆84┆An interrupt has occured from a device that was not intended to ↓ interrupt, or the SIO has given a status interrupt (any change on ↓ the modem signals during data transfer will respond with this ↓ message).↲ ↲ ╞ <parity error>↲ ↲ A special receive interrupt with parity bit has occured.↲ ↲ ╞ <data error, byte no: <xx xx> exp: <xx> rec: <xx>>↲ ↲ The received buffer does not contain the expected pattern.↲ ↲ ╞ <receiver overrun>↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆7.╞ RCCIRCUIT I TEST↲ ↲ ┆84┆Before the test starts, it is tested, if Circuit 1 is installed.↲ ↲ ┆84┆The SIO channel B is initiated to full duplex and the DMA is ↓ initiated to receive 1K bytes from the SIO.↲ ↲ ┆84┆A timer interrupt generated approx. 1760 times/s transmits the ↓ data from the transmit buffer. ↲ ↲ ┆84┆The channel transmit a databuffer of 1 k bytes consisting of a ↓ counting pattern (00 FF FE FD etc.). The test loop will check the ↓ received buffer as soon as the pattern have been transfered. It ↓ also monitors the channel for timeout.↲ ↲ ┆84┆┆a1┆Possible messages are:↲ ↲ ╞ <OK>↲ ↲ ╞ <TIMEOUT>↲ ↲ The data has not been transmitted completely.↲ ↲ ╞ <data error, byte no: <xx xx> exp: <xx> rec: <xx>>↲ ↲ The received buffer does not contain the expected pattern.↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆8.╞ CTC TEST↲ ↲ ┆84┆This program tests the counter/timer circuit, which is used for ↓ baud rate generator and as interrupt circuit for the CRT and the ↓ keyboard.↲ ↲ ┆84┆┆84┆It is tested, that the circuit will generate interrupts, and that ↓ the vector (interrupt address) is correct.↲ ↲ ┆84┆The four channels 0, 1, 2, and 3 are tested. If two CTC's are ↓ installed also the channels 4, 5, 6 and 7 are tested. The ↓ channels are tested in the timer mode, and the timing starts ↓ automatically. The channel under test should be giving interrupt ↓ after approx. 423 mikro s. ↲ ↲ ┆84┆The test is based on a timeout loop, so it is checked if the ↓ interrupt was received within a specified time (3oo ms.). It is ↓ also checked that only the specified channel interrupts.↲ ↲ ┆84┆┆a1┆Possible messages are:↲ ↲ ╞ <OK>↲ ↲ ╞ ┆84┆<illegal interrupt, port: xx>↲ ┆84┆meaning that another channel than the specified has interrupted.↲ ↲ ╞ ┆84┆<no interrupt, ch:>↲ ┆84┆meaning that the test has timed out before interrupt was ↓ received.↲ ↲ ↓ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆9.╞ PARALLEL PORT TEST┆e1┆↲ ↲ ┆84┆This test is a quick test of the three output signals (strobe, ↓ init and select) from the cpu to the port 19H routed back to port ↓ 19H. All eight combinations are tested.↲ ↲ ┆a1┆Possible message are:↲ ↲ ╞ <OK>↲ ↲ ╞ <data error exp xx rec xx>↲ ↲ ↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆10.╞ DMA Test↲ ↲ ┆84┆At first it is tested if DMA is installed, before the test ↓ starts.↲ ↲ ┆84┆The DMA test is tested by a memory to memory transport. ↲ ↲ ┆84┆The transmitted pattern is a buffer of 1 k containing a counting ↓ pattern. The pattern is as follows: 00 FF FE FD etc. repeated 4 ↓ times.↲ ↲ ┆84┆When the transport is finished, the receiving buffer is checked ↓ against the transmitted buffer byte by byte.↲ ↲ ┆84┆If the transport is correct it is tested if the DMA can respond ↓ with an interrupt after end of block is reached.↲ ↲ ┆84┆┆a1┆Possible messages are:↲ ↲ ╞ ┆84┆<OK>↲ ↲ ╞ <not installed>↲ ↲ ╞ when testing transfer:↲ ↲ ╞ ╞ <End of Block timeout 200 ms>↲ ╞ ╞ <data error, byte no: xx xx exp: xx rec: xx>↲ ↲ ╞ when testing interrupt:↲ ↲ ╞ ╞ <timeout>↲ ↲ ╞ ╞ <┆84┆data error, byte no: xx xx exp: xx rec: xx in ↓ ┆19┆┆8f┆┄┄interrupt>↲ ↲ ┆84┆All numbers are in hexadecimal notation. "End of Block timeout ↓ 200 ms" shows that the end of block bit in the DMA status ↓ register has not been set within 200 ms, and the transport is ↓ therefore not succesful.↲ ↲ ↓ ════════════════════════════════════════════════════════════════════════ ↓ ┆a1┆11.╞ CRT TEST↲ ↲ This is a visual test.↲ ↲ ┆84┆It is possibly to stop the test by pressing the "H" key. To ↓ continue press the "RETURN" KEY.↲ ↲ The following should appear on the screen.↲ ↲ The character-PROM is written.↲ ↲ ┆84┆Field attributes test. The field attributes are tested on the ↓ character-PROM. The 25 lines appear as follows:↲ ↲ ╞ ┆84┆a: 5 lines with highlight↲ b: 4 lines with reverse video+highlight↲ c: 4 lines with reverse video↲ d: 4 lines with invisible↲ e: 4 lines with underline↲ f: 4 lines with blink↲ ↲ ┆84┆The screen is filled with "H". To adjust the screen "H" ↓ is often used.↲ ↲ ┆84┆The contrast and brigthness are tested. First the contrast and ↓ then the brigtness are tested. For both, first maximum, then ↓ minimum and finally normally should appear.↲ ↲ ┆84┆If not a paperwhite monitor then the test ends up with the 132 ↓ character set written.↲ ┆8c┆┆82┆┆e8┆↓ ┆a1┆↲ ════════════════════════════════════════════════════════════════════════ ↓ ┆1a┆┆1a┆ ┆1a┆┆1a┆ is a test, which verifies the ↓ funct