M20 Olivetti M20

Repairing an Olivetti M20

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

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.
Here is a list of the possible error codes that can be shown at the startup.
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 READYNo disk in drives
INVALID BOOT FILEThe disk is not bootable
DISK ERROR XXError during disk access. The XX is an hexadecimal 8 bit code. Each bit means:
  • bit 0: illegal parameters
  • bit 1: not track zero after restore
  • bit 2: seek error
  • bit 3: data transfer error
  • bit 4: record not found error
  • bit 5: write fault
  • bit 6: write protect
  • bit 7: drive not ready
More error bits can be set in the same time. E.g. "Disk error 18" means that the bits 3 and 4 are set.

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.

M20 lineart decoration


Search in the M20 site
Search in the Internet