ZX SPECTRUM - PORTS TABLE

CORRECT                   ADRESSATION
VALUE        PORT          A15 ... A0     READ          WRITE 
------------------------------------------------------------------------------
255    xxxxxxxx11111111 xxxxxxxxxxxxxxxx  48VRAM           -
31     xxxxxxxx00011111 xxxxxxxxxx0xxxxx  KempstIF         -
31     xxxxxxxx00011111 xxxxxxxx0xxxxxx1  Kempst-M         -
254    xxxxxxxx11111110 xxxxxxxx1xxxxxx0  48ULA-M       48ULA-M
254    xxxxxxxx11111110 xxxxxxxxxxxxxxx0  48ULA         48ULA
       xxxxxxxx0BA11111 xxxxxxxx0xxxxxxx  Gama8255      Gama8255
32765  0111111111111101 0xxxxxxxxxxxxx0x  128k/+2PAG*   128k/+2PAG
32765  0111111111111101 01xxxxxxxxxxxx0x  +2a/+3PAG     +2a/+3PAG
65533  1111111111111101 11xxxxxxxxxxxx0x  AYdataR       AYadr
49149  1011111111111101 10xxxxxxxxxxxx0x     -          AYdataW
       xxxxxxxx0BA11111 xxxxxxxx0xx111xx  MB018255-1    MB018255-1
       xxxxxxxx0BA11011 xxxxxxxx0xx110xx  MB018255-2    MB018255-2
23     xxxxxxxx00010111 xxxxxxxx0xx101xx  MB01memsel*   MB01memsel
19     xxxxxxxx00010011 xxxxxxxx0xx100xx  stav.disk     mot+sel+rez
       xxxxxxxx0BA01111 xxxxxxxx0xx011xx  MB01WD2797    MB01WD2797
227    xxxxxxxx11100011 xxxxxxxx11100011     -          divIDEcntrl
       xxxxxxxx101CBA11 xxxxxxxx101xxx11  IDEregs       IDEregs
       xxxxxxxx110CBA11 xxxxxxxx110xxx11  IDEregs-MB    IDEregs-MB
       xxxxxxxx10000BA1 xxxxxxxx10000xx1  D40/80FD      D40/80FD
       xxxxxxxx10001BA1 xxxxxxxx10001xx1  D40/80po      D40/80po
       xxxxxxxx1001C001 xxxxxxxx1001xxx1  D40/80en/di   D40/80en/di
       xxxxxxxx0AB11111 xxxxxxxx0xxxxxxx  D40/80-8255   D40/80-8255
239    xxxxxxxx11101111 xxxxxxxx1110xxxx     -          ISO ROM 128
63     xxxxxxxx00111111 xxxxxxxxx0xxxxxx  LIGHT PEN(DK)    -

250    xxxxxxxx11111010 xxxxxxxxxxxxx0x0     -          Proface/Keyface
31     xxxxxxxx00011111 xxxxxxxx00011111  A-MOUSE          -
64223  1111101011011111 xxxxx0x011011111  K-MOUSEturboB    -
64479  1111101111011111 xxxxx0x111011111  K-MOUSEturboX    -
65503  1111111111011111 xxxxx1x111011111  K-MOUSEturboY    -

243    xxxxxxxx11110011 xxxxxxxx11110011  FP Status     FP Control
247    xxxxxxxx11110111 xxxxxxxx11110111  FP Data       FP Data


Free ports:111xxx11, value xxx can be 1-7. (port #FF is attribute port) 

------------------------------------------------------------------------------
Russian K-MOUSE (colision with KEMPSTON(31),D40 and IDEregs-MB)
64223  1111101011011111 xxxxx0x01x0xxxx1  K-MOUSE_B -
64479  1111101111011111 xxxxx0x11x0xxxx1  K-MOUSE_X -
65503  1111111111011111 xxxxx1x11x0xxxx1  K-MOUSE_Y -
K-MOUSE TURBO use full adressation (colision only with IDEregs-MB ports)

Original Kempston mouse adressation:
64223  1111101011011111 xxxxxx10xx0xxxxx  K-MOUSE_B -
64479  1111101111011111 xxxxx011xx0xxxxx  K-MOUSE_X -
65503  1111111111011111 xxxxx111xx0xxxxx  K-MOUSE_Y -

K-MOUSE TURBO ports:
All ports use full adressation
-port 64223 = buttons
-port 64479 = X (0-255)
-port 65503 = Y (0-255)

Port 31 A-MOUSE(support on K-MOUSE TURBO interface):
-use full adressation

Keyboard Proface ports:
-Keyb.Proface can be programmed by writing to port 250 ( FA )
-read data from Keyb.Proface on bit D7 on port 254 ( FE )