[img] Adding shifted keys to the ZX Spectrum
MDFS::Info.Comp.Spectrum.Keyboard.Shift/htm Search
The standard 8x5 keyboard matrix can be extended with dedicated keys to perform shift keypresses, for example CAPS and DELETE. To do this the key has to cause two keys in the matrix to be connected, for instance SHIFT and 0 to generate DELETE.

Keys that share a common column (data line) or a common row (address line) can be combined with a simple passive diode circuit:

This lets you implement:
  SHIFT    1   0   SPACE
   +-->   EDT DEL  BREAK

  SYMBOL  L  O  9  2  W  S  Z
   +-->   =  ;  )  @ <> NOT :
This lets you implement:
  SYMBOL  B  N  M
   +-->   *  ,  .
For the other shifted keys you need to cause two keypresses that do not share any common lines. To do this you need to link two of the matrix points.
This allows you to implement:
SHIFT+2 - CAPS     SYMBOL+J - -
SHIFT+5 - LEFT     SYMBOL+H - ^
SHIFT+6 - DOWN     SYMBOL+0 - _
SHIFT+7 - UP       SYMBOL+V - /
SHIFT+8 - RIGHT    SYMBOL+D - STEP
SHIFT+9 - GRAPHICS SYMBOL+Y - AND
                   SYMBOL+U - OR
Combining multiple keys sharing a shift keys can be done as follows:

Best viewed with Any Browser Valid HTML 4.0! Authored by J.G.Harston - Last update: 22-Nov-2017