Давайте освежим эту тему. Сейчас я определяю наличие Кемпстон-мышки таким кодом:
Код:
unsigned char KMouse_Detect (void) __naked {
__asm
         LD   DE, #0x301
         LD   L, E
         LD   BC, #0xFADF
MT_D0:   IN   A, (C)
         CPL
         AND  #7
         JR   Z, MT_D1
         DEC  L
         RET              ; FALSE
MT_D1:   DEC  DE
         LD   A, E
         OR   D
         JR   NZ, MT_D0
         RET              ; TRUE
__endasm;
} //KMouse_Detect
А наличие Кемпстон-джойстика таким кодом:
Код:
unsigned char DetectKempstonJoystick (void) {
__asm
; AUTOconfig
      LD     L,#0       ; FALSE
      LD     B,#250
A_config01$:
      IN     A,(#0x1F)
      AND    #0x1F
      RET    NZ
      DJNZ   A_config01$
      INC    L          ; TRUE
__endasm;
}
Прокомментируйте. Совсем плохо или приемлемо?