MMSZoli2 Creative Commons License 2020.04.11 0 0 9596

-Az 1351 joystick üzemmódja olyan, mintha egy joysticket mozgatnál, vagy még annál is rosszabb.

 Vagyis nem valódi opció, bár valóban működik Plus/4-en, de akkor már ott a joystick :-)

 

RS232 egér elve:

-Max232 TTL illesztő áramkör a User portra (készen vásárolható pár száz forintért)

 

-Az általam feltötlött doksi alapján Dupont kábelekkel összeközni a user porttal a Tx, Rx, GND és 5V
Rx --> M (not used by mouse)

Tx --> C
GND -->1, 12, A or N
VCC --> 2

 

-ACIA interruptos kód a 3 bájt beolvasásásra, amit az RS232 egér küld.

Folyamatosan olvasva a CPU teljesen leakad, lassú hozzá. 

 

-Az RS232 egér által küldött 3 byte, láthatóan kicsit összevissza vannak a pozicíók:

(1200 baud, 7 bit, 1 stop bit, no parity)

                D6 D5 D4 D3 D2 D1 D0

1st byte     1   LB  RB Y7 Y6 X7 X6

2nd byte    0   X5 X4 X3 X2  X1 X0

3rd byte     0   Y5 Y4 Y3 Y2  Y1 Y0

 

 

-Így néz ki C-ben a dekódolása az RS232 egér által küldött 3 byte "s" adatnak:

 

void DecodeMouse(unsigned char *s,int *button,int *x,int *y)

{ *button = 'n'; /* No button - should only happen on an error */

    if ((s[0] & 0x20) != 0)

      *button = 'l';

    else if ((s[0] & 0x10) != 0)

      *button = 'r';

      *x = (s[0] & 0x03) * 64 + (s[1] & 0x3F);

    if (*x > 127)

      *x = *x - 256; 

      *y = (s[0] & 0x0C) * 16 + (s[2] & 0x3F);

    if (*y > 127)

      *y = *y - 256;

  }