Repairing an Olivetti M20
This section may provide an help for common problems in old machines like the M20.We do no take any responsibility for damages or injuries occurred when repairing the computer. Dangerous voltages can be present in several circuits, when the computer is connected to the main power. Remember also that capacitors can stock dangerous energy for a while after the computer has been switched off. If you feel uncomfortable using a soldering iron, you should probably skip this section of the site.
We can not give a complete description of every possible problem occurring in an M20. The good news is that in such an old machine, almost everything can be repaired. It is just a matter of time, patience and skill. Anyway, if you solve a problem not described here, we will be happy to include a description of your solution.General information
- The Olivetti L1 M20 schematics
- Taking apart the Olivetti M20 (by Davide Bucci)
- The power supply unit
- The disk drive units
- The keyboard
Diagnostic errors
The Olivetti M20 performs a self test at the startup. In case of problems, it prints error messages on the screen and/or on the printer. Those error messages can be useful to identify and solve the problem. The following sequence is executed by the M20 each time it boots up.- The video chip is activated and configured. The only Z8001 instructions used are Load, Output and relative jump (JR)
- 4 bytes of the bitmap RAM are written with a triangle-shape pattern
- Register and instruction tests of the Z8001 are performed. If there is an error, the test hangs with an infinite loop.
- 4 bytes of the bitmap RAM are written with a diamond-shape pattern
- The RAM test is performed and if an error occurs, the system hangs with an infinite loop.
- 4 bytes of the bitmap RAM are written with a four vertical lines pattern
- The CPU call and trap test is performed. If it fails, the system hangs with an infinite loop.
- The screen and printer driver are initialized. Those drivers need to be initialized to output error messages.
- LSI chips are tested (8251 USART, 8253 timer, 8255 parallel I/O, 6845 CRT controller, 1797 floppy controller). Every error is displayed on the screen and sent to the parallel printer.
- The system asks to the keyboard if a key is depressed. This information will be used later.
- A test command is sent to the keyboard. A diagnostic program present on the keyboard ROM (M8048) tests the keyboard firmware, reads the configuration jumpers and returns the configuration and the test results to the M20 CPU. If an error occurs, it is printed on screen and sent to the parallel printer.
- The zero track of the drive zero of the floppy disk unit is read. If the drive zero is not ready, the zero track is read from disk drive 1. If an error occurs, it is printed on the screen and sent on the parallel printer. If the D key is depressed, the system enters a test loop and this phase is repeated indefinitely.
- If the L key is depressed (or the loopback jumper is set on the motherboard), the system enter in the test loop, sending information about errors and the status on the parallel printer.
- The control is given to the operating system. Every key depressed, other than L or D is given as a parameter to the operating system.
Message given: | Error condition: |
---|---|
Triangle | CPU problems |
Diamond | RAM test failed |
4 vertical lines | Test CPU instructions call and trap failed |
EC0 | 8255 error parallel interface | EC1 | 6845 error screen controller |
EC2 | 1797 error disc drive controller |
EC3 | 8253 error timer circuit |
EC4 | 8251 error keyboard interface circuit |
EC5 | 8251 error RS-232 interface |
EC6 | 8259 error interrupt controller |
EK0 | Keyboard not responding |
EK1 | Keyboard responding, but autotest failed |
ED0 | Error floppy 0 |
ED1 | Error floppy 1 |
ED10 | Error hard disk |
E10 | Non vectored interrupt error |
E11 | Vectored interrupt error |
DISK DRIVE NOT READY | No disk in drives |
INVALID BOOT FILE | The disk is not bootable |
DISK ERROR XX | Error during disk access. The XX is an hexadecimal 8 bit code. Each bit means:
|
Page log
- July 24, 2022 - Added the reference to the schematics page.
- December 24, 2022 - Added the page log, correction of typos.
- December, 6, 2007 - Added some resources.
- December 30, 2005 - Page creation.
Olivetti is a registered trademark of Telecom Italia. This site is not related to Olivetti nor to Telecom Italia. The material presented is meant for personal use only and is shared in a "fair use" spirit. If you own the copyright of some of the stuff presented here and you think it should be removed, please contact the webmaster.