Subversion Repositories pentevo

Rev

Rev 716 | Blame | Last modification | View Log | Download | RSS feed

  1. #pragma once
  2.  
  3. struct ATM_KBD
  4. {
  5.    union {
  6.       unsigned char zxkeys[8];
  7.       unsigned zxdata[2];
  8.    };
  9.    unsigned char mode, R7, lastscan, cmd;
  10.    unsigned char kR1, kR2, kR3, kR4, kR5;
  11.  
  12.    void processzx(unsigned scancode, unsigned char pressed);
  13.    unsigned char read(unsigned char scan, unsigned char zxdata);
  14.    void setkey(unsigned scancode, unsigned char pressed);
  15.    void reset();
  16.    void clear();
  17. };
  18.  
  19. struct K_INPUT
  20. {
  21. #pragma pack(push, 1)
  22.    union
  23.    {
  24.       volatile unsigned char kbd[16];
  25.       volatile unsigned kbd_x4[4];
  26.    };
  27.  
  28.    union
  29.    { // without keymatrix effect
  30.       volatile unsigned char rkbd[16];
  31.       volatile unsigned rkbd_x4[4];
  32.    };
  33. #pragma pack(pop)
  34.  
  35.    unsigned lastkey, nomouse;
  36.  
  37.    enum { KM_DEFAULT, KM_KEYSTICK, KM_PASTE_HOLD, KM_PASTE_RELEASE } keymode;
  38.  
  39.    int msx, msy, msx_prev, msy_prev, ay_x0, ay_y0;
  40.    unsigned ay_reset_t;
  41.    unsigned char mbuttons, ayR14;
  42.  
  43.    volatile unsigned char kjoy;
  44.    unsigned char mousejoy;
  45.    unsigned char kbdled, mouse_joy_led;
  46.    unsigned char firedelay, firestate; // autofire vars
  47.  
  48.    ATM_KBD atm51;
  49.  
  50.    unsigned stick_delay;
  51.    int prev_wheel;
  52.  
  53.    unsigned char *textbuffer;
  54.    unsigned textoffset, textsize;
  55.    unsigned char tdelay, tdata, wheel; //0.36.6 from 0.35b2
  56.  
  57.    unsigned char kempston_mx();
  58.    unsigned char kempston_my();
  59.  
  60.    unsigned char aymouse_rd();
  61.    void aymouse_wr(unsigned char val);
  62.  
  63.    void clear_zx();
  64.    inline void press_zx(unsigned char key);
  65.    bool process_pc_layout();
  66.    void make_matrix();
  67.    char readdevices();
  68.    unsigned char read(unsigned char scan);
  69.    u8 read_quorum(u8 scan);
  70.    void paste();
  71.  
  72.    K_INPUT()
  73.    {
  74.       textbuffer = 0;
  75.       // random data on coords -> some programs detects mouse by this
  76.       ay_x0 = msx = 31,
  77.       ay_y0 = msy = 85;
  78.  
  79.       nomouse = 0;
  80.    }
  81. };
  82.