Cleanups and copyright text
This commit is contained in:
@@ -1,15 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||||
|
* running old operating systems and software designed for IBM
|
||||||
|
* PC systems and compatibles from 1981 through fairly recent
|
||||||
|
* system designs based on the PCI bus.
|
||||||
|
*
|
||||||
|
* This file is part of the 86Box distribution.
|
||||||
|
*
|
||||||
|
* 3M MicroTouch SMT3 emulation.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Authors: Cacodemon345
|
||||||
|
*
|
||||||
|
* Copyright 2024 Cacodemon345
|
||||||
|
*/
|
||||||
|
|
||||||
/* TODO:
|
/* TODO:
|
||||||
MN, SS, SF commands (sensitivity-related).
|
GP/SP commands (formats are not documented at all, like anywhere).
|
||||||
GP/SP commands (formats are not documented at all).
|
|
||||||
GF, FQF, FQP (what are those for?)
|
|
||||||
*/
|
*/
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <86box/86box.h>
|
#include <86box/86box.h>
|
||||||
#include <86box/device.h>
|
#include <86box/device.h>
|
||||||
@@ -30,15 +43,11 @@ enum mtouch_modes
|
|||||||
typedef struct mouse_microtouch_t {
|
typedef struct mouse_microtouch_t {
|
||||||
double abs_x;
|
double abs_x;
|
||||||
double abs_y;
|
double abs_y;
|
||||||
int oldb;
|
|
||||||
int b;
|
int b;
|
||||||
char cmd[512];
|
char cmd[512];
|
||||||
int bits;
|
|
||||||
int baud_rate_sel;
|
|
||||||
int cmd_pos;
|
int cmd_pos;
|
||||||
int mode;
|
int mode;
|
||||||
uint8_t cal_cntr;
|
uint8_t cal_cntr;
|
||||||
double rate;
|
|
||||||
bool soh;
|
bool soh;
|
||||||
bool in_reset;
|
bool in_reset;
|
||||||
serial_t *serial;
|
serial_t *serial;
|
||||||
@@ -108,6 +117,7 @@ void microtouch_process_commands(mouse_microtouch_t* mtouch)
|
|||||||
if (mtouch->cmd[0] == 'R') {
|
if (mtouch->cmd[0] == 'R') {
|
||||||
mtouch->in_reset = true;
|
mtouch->in_reset = true;
|
||||||
mtouch->mode = MODE_TABLET;
|
mtouch->mode = MODE_TABLET;
|
||||||
|
mtouch->cal_cntr = 0;
|
||||||
timer_on_auto(&mtouch->reset_timer, 500. * 1000.);
|
timer_on_auto(&mtouch->reset_timer, 500. * 1000.);
|
||||||
}
|
}
|
||||||
if (mtouch->cmd[0] == 'A' && (mtouch->cmd[1] == 'D' || mtouch->cmd[1] == 'E')) {
|
if (mtouch->cmd[0] == 'A' && (mtouch->cmd[1] == 'D' || mtouch->cmd[1] == 'E')) {
|
||||||
@@ -164,9 +174,6 @@ no_write_to_machine:
|
|||||||
void mtouch_write(serial_t* serial, void* priv, uint8_t data)
|
void mtouch_write(serial_t* serial, void* priv, uint8_t data)
|
||||||
{
|
{
|
||||||
mouse_microtouch_t *dev = (mouse_microtouch_t*)priv;
|
mouse_microtouch_t *dev = (mouse_microtouch_t*)priv;
|
||||||
if (!dev->soh && data == 0x11) {
|
|
||||||
pclog("<XON>\n");
|
|
||||||
}
|
|
||||||
if (data == '\x1'){
|
if (data == '\x1'){
|
||||||
dev->soh = 1;
|
dev->soh = 1;
|
||||||
} else if (dev->soh) {
|
} else if (dev->soh) {
|
||||||
|
Reference in New Issue
Block a user