aboutsummaryrefslogtreecommitdiff
path: root/dostsr.h
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2022-04-09 14:55:06 +0200
committerJavier <dev.git@javispedro.com>2022-04-09 14:55:06 +0200
commit970f90228a6978712c28529437721caffec76202 (patch)
treee01f7997c7abceef1c8296ce77cc748947c12166 /dostsr.h
parent249c3ee375b3ded4f8abea747bf151ce20f40962 (diff)
downloadvbados-970f90228a6978712c28529437721caffec76202.tar.gz
vbados-970f90228a6978712c28529437721caffec76202.zip
rename source files for consistency
Diffstat (limited to 'dostsr.h')
-rw-r--r--dostsr.h217
1 files changed, 0 insertions, 217 deletions
diff --git a/dostsr.h b/dostsr.h
deleted file mode 100644
index a025c92..0000000
--- a/dostsr.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * VBMouse - DOS mouse driver resident part
- * Copyright (C) 2022 Javier S. Pedro
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef DOSTSR_H
-#define DOSTSR_H
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#include "int2fwin.h"
-#include "int10vga.h"
-
-// User customizable defines
-
-/** Enable the VirtualBox integration */
-#define USE_VIRTUALBOX 1
-/** Enable the VMware integration */
-#define USE_VMWARE 1
-/** Enable the Windows 386/protected mode integration */
-#define USE_WIN386 1
-/** Enable the wheel. */
-#define USE_WHEEL 1
-/** Trace events verbosily */
-#define TRACE_EVENTS 0
-
-// End of user customizable defines
-
-#define USE_INTEGRATION (USE_VIRTUALBOX || USE_VMWARE)
-
-#define NUM_BUTTONS 3
-
-#define GRAPHIC_CURSOR_WIDTH 16
-#define GRAPHIC_CURSOR_HEIGHT 16
-#define GRAPHIC_CURSOR_SCANLINE_LEN 2
-#define GRAPHIC_CURSOR_MASK_LEN (GRAPHIC_CURSOR_HEIGHT * GRAPHIC_CURSOR_SCANLINE_LEN)
-#define GRAPHIC_CURSOR_DATA_LEN (2 * GRAPHIC_CURSOR_MASK_LEN)
-
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 4
-#define REPORTED_VERSION_MAJOR 6
-#define REPORTED_VERSION_MINOR 0x30
-
-#if USE_VIRTUALBOX
-#include "vbox.h"
-#endif
-
-struct point {
- int16_t x, y;
-};
-
-typedef struct tsrdata {
- // TSR installation data
- /** Previous int33 ISR, storing it for uninstall. */
- void (__interrupt __far *prev_int33_handler)();
-#if USE_WIN386
- void (__interrupt __far *prev_int2f_handler)();
-#endif
-#if USE_WHEEL
- /** Whether to enable & use wheel mouse. */
- bool usewheel;
- /** Key (scancode) to generate on wheel scroll up/down, or 0 for none. */
- uint16_t wheel_up_key, wheel_down_key;
-#endif
-
- // Video settings
- /** Information of the current video mode. */
- struct modeinfo video_mode;
- /** Max (virtual) coordinates of full screen in the current mode.
- * Used for rendering graphic cursor, mapping absolute coordinates,
- * and initializing the default min/max window. */
- struct point screen_max;
- /** In some modes, the virtual coordinates are larger than the
- * physical screen coordinates.
- * real coordinates = virtual coordinates * screen_scale. */
- struct point screen_scale;
- /** In text modes, we want to snap the cursor position to the cell grid.
- * This stores the desired grid granularity. */
- struct point screen_granularity;
-
- // Detected mouse hardware
-#if USE_WHEEL
- /** Whether the current mouse has a wheel (and support is enabled). */
- bool haswheel;
-#endif
-
- // Current mouse settings
- /** Mouse sensitivity/speed. */
- struct point mickeysPerLine; // mickeys per 8 pixels
- /** Mouse acceleration "double-speed threshold". */
- uint16_t doubleSpeedThreshold; // mickeys
- /** Current window min coordinates. */
- struct point min;
- /** Current window max coordinates. */
- struct point max;
- /** Current cursor visible counter. If >= 0, cursor should be shown. */
- int16_t visible_count;
- /** For text cursor, whether this is a software or hardware cursor. */
- uint8_t cursor_text_type;
- /** Masks for the text cursor. */
- uint16_t cursor_text_and_mask, cursor_text_xor_mask;
- /** Hotspot for the graphic cursor. */
- struct point cursor_hotspot;
- /** Masks for the graphic cursor. */
- uint16_t cursor_graphic[GRAPHIC_CURSOR_DATA_LEN/sizeof(uint16_t)];
-#if USE_WHEEL
- /** Whether someone asked for the int33 wheel API, in which case we
- * should send them wheel movement rather than fake keypresses. */
- bool usewheelapi;
-#endif
-
- // Current mouse status
- /** Current cursor position (in pixels). */
- struct point pos;
- /** Current remainder of movement that does not yet translate to an entire pixel
- * (8ths of pixel). */
- struct point pos_frac;
- /** Current delta movement (in mickeys) since the last report. */
- struct point delta;
- /** Current remainder of delta movement that does not yet translate to an entire mickey
- * Usually only when mickeysPerLine is not a multiple of 8. */
- struct point delta_frac;
- /** Last absolute position (to compute a delta for relative motion emulation). Using -1 for "none". */
- struct point abs_pos;
- /** Total mickeys moved in the last second. */
- uint16_t total_motion;
- /** Ticks when the above value was last reset. */
- uint16_t last_ticks;
- /** Current status of buttons (as bitfield). */
- uint16_t buttons;
- struct {
- struct buttoncounter {
- struct point last;
- uint16_t count;
- } pressed, released;
- } button[NUM_BUTTONS];
- /** Total delta movement of the wheel since the last wheel report. */
- int16_t wheel_delta;
- /** Last position where the wheel was moved. */
- struct point wheel_last;
-
- // Cursor information
- /** Whether the cursor is currently displayed or not. */
- bool cursor_visible;
- /** The current position at which the cursor is displayed. */
- struct point cursor_pos;
- /** For text mode cursor, the character data that was displayed below the cursor. */
- uint16_t cursor_prev_char;
- /** For graphical mode cursor, contents of the screen that were displayed below
- * the cursor before the cursor was drawn. */
- uint8_t cursor_prev_graphic[GRAPHIC_CURSOR_WIDTH * GRAPHIC_CURSOR_HEIGHT];
-
- // Current handlers
- /** Address of the event handler. */
- void (__far *event_handler)();
- /** Events for which we should call the event handler. */
- uint16_t event_mask;
-
-#if USE_WIN386
- /** Information that we pass to Windows 386 on startup. */
- win386_startup_info w386_startup;
- win386_instance_item w386_instance[2];
- /** Whether Windows 386 is rendering the cursor for us,
- * and therefore we should hide our own. */
- bool w386cursor : 1;
-#endif
-
-#if USE_VIRTUALBOX
- /** VirtualBox is available. */
- bool vbavail : 1;
- /** Want to use the VirtualBox "host" cursor. */
- bool vbwantcursor : 1;
- /** Have VirtualBox absolute coordinates. */
- bool vbhaveabs : 1;
- struct vboxcomm vb;
-#endif
-
-#if USE_VMWARE
- /** VMware is available. */
- bool vmwavail : 1;
-#endif
-} TSRDATA;
-
-typedef TSRDATA * PTSRDATA;
-typedef TSRDATA __far * LPTSRDATA;
-
-extern void __declspec(naked) __far int33_isr(void);
-
-extern void __declspec(naked) __far int2f_isr(void);
-
-extern LPTSRDATA __far get_tsr_data(bool installed);
-
-/** This symbol is always at the end of the TSR segment */
-extern int resident_end;
-
-/** This is not just data, but the entire segment. */
-static inline unsigned get_resident_size(void)
-{
- return FP_OFF(&resident_end);
-}
-
-#endif