| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- ;
- ; Command & Conquer Red Alert(tm)
- ; Copyright 2025 Electronic Arts Inc.
- ;
- ; 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 3 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, see <http://www.gnu.org/licenses/>.
- ;
- ;***************************************************************************
- ;** C O N F I D E N T I A L --- W E S T W O O D A S S O C I A T E S **
- ;***************************************************************************
- ;* *
- ;* Project Name : Westwood 32 bit Library *
- ;* *
- ;* File Name : KEYSTRUC.INC *
- ;* *
- ;* Programmer : Phil W. Gorrow *
- ;* *
- ;* Start Date : July 13, 1994 *
- ;* *
- ;* Last Update : July 13, 1994 [PWG] *
- ;* *
- ;*-------------------------------------------------------------------------*
- ;* Functions: *
- ;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
- STRUC KeyboardType
- SoundOn DW ? ; toggled by alt S
- MusicOn DW ? ; toggled by alt M
- KeyFlags DD ? ; all but repeat for now
- Break DW ?
- KeyMouseMove DB 6 DUP(?)
- ScreenEdge DW 18 DUP (?)
- Bits DB 8 DUP (?)
- CondPassKey DW 17 DUP (?)
- CondPassCond DW 17 DUP (?)
- EscRoutine DD ?
- ExtCodes DB 16 DUP (?)
- ExtNums DB 16 DUP (?)
- ExtRemap DB 16 DUP (?)
- ExtRemapEnd DB ?
- ExtKeyboard DB ?
- KeyBuffer DW 128 DUP(?) ; set to empty
- KeyBufferHead DD ? ; set to first entry
- KeyBufferTail DD ? ; set to head for empty buffer
- KeyLock DW ? ; num and caps lock bits
- KeyNums DB 89 DUP (?)
- KeysCapsLock DB 16 DUP (?)
- KeysNumLock DB 16 DUP (?)
- KeysUpDown DB 16 DUP (?)
- KeyStream DB 16 DUP (?)
- PassCount DW ?
- KeyStreamIndex DW ?
- LastKeyE0 DB ?
- LastKeyE1 DB ?
- PassAlways DB 10 DUP (?)
- PassAlwaysEnd DB ? ; invalid code to END PassAlways
- CtrlFlags DB ?
- Buffer DW ?
- Time DW ?
- XYAdjust DB 26 DUP (?)
- EdgeConv DW 16 DUP (?)
- MouseUpdate DW ?
- MouseX DD ?
- LocalMouseX DW ?
- MouseY DD ?
- LocalMouseY DW ?
- IsExtKey DB ?
- ExtIndex DW ?
- KeyOldRMI DD ? ; The origianl RM interrupt seg:off.
- KeyOldPMIOffset DD ? ; The origianl PM interrupt offset
- KeyOldPMISelector DD ? ; The original PM interrupt segment.
- KeyCodeOffset DW ? ; Offset of the code in the RM stuff.
- CallKeyRMIntOffset DW ? ; Offset of function to call DOS timer interrupt.
- CallKeyRMIntAddr DD ? ; PM address of CallRealIntOffset for speed.
- PMIssuedKeyInt DD ? ; did Protected mode pass this through?
- BrkOldRMI DD ? ; The origianl RM interrupt seg:off.
- BrkOldPMIOffset DD ? ; The origianl PM interrupt offset
- BrkOldPMISelector DD ? ; The original PM interrupt segment.
- BrkCodeOffset DW ? ; Offset of the code in the RM stuff.
- CallBrkRMIntOffset DW ? ; Offset of function to call DOS timer interrupt.
- CallBrkRMIntAddr DD ? ; PM address of CallRealIntOffset for speed.
- PMIssuedBrkInt DD ? ; did Protected mode pass this through?
- KeyIntDisabled DD ?
- DbgOldPMIOffset DD ? ; The origianl PM interrupt offset
- DbgOldPMISelector DD ? ; The original PM interrupt segment.
- ;---------------------------------------------------------------------------
- ; Begin definition of Mouse Specific Variables for real mode
- ;---------------------------------------------------------------------------
- Button DB ? ; current value of the mouse button
- MDisabled DB ? ; Is the mouse driver disabled
- MInput DB ? ; Defaults to mouse input allowed.
- Adjust DW ? ; flag to adjust coordinates if necessary
- MouseStepX DW ? ; step values if the mouse moves at
- MouseStepY DW ? ; more than one pixel at a time
- MouseOffsetX DW ? ; Fractional step values used if a mouse
- MouseOffsetY DW ? ; moves at less than one pixel at a time
- MState DD ? ; Tracks if mouse is hidden (TRUE) or not (FALSE)
- MouseXOld DW ? ; Holds last MouseX and MouseY to determine if
- MouseYOld DW ? ; mouse needs to be redrawn
- MCState DW ? ; Tracks if mouse conditional hidden (TRUE) or not
- MouseCXLeft DD ? ; Conditional hide mouse left x position
- MouseCYUpper DD ? ; Conditional hide mouse top y position
- MouseCXRight DD ? ; Conditional hide mouse right x position
- MouseCYLower DD ? ; Conditional hide mouse lower y position
- MouseCursor DD ? ; Pointer to the mouse cursor to draw
- MouseCursorSize DW ? ; Size of mouse cursor draw area
- MouseBuffer DD ? ; Pointer to buffer mouse is saved in
- MouseXHot DD ? ; Offset to mouse's x hot spot
- MouseYHot DD ? ; Offset to mouse's y hot spot
- MouseBuffX DD ? ; X position background was saved at
- MouseBuffY DD ? ; Y position background was saved at
- MouseBuffW DD ? ; Width of the region saved for mouse
- MouseBuffH DD ? ; Height of the region saved for mouse
- MouseWidth DD ? ; Mouse cursor theoretical width
- MouseHeight DD ? ; Mouse cursor theoretical height
- MouseCodeOffset DW ? ; Offset to the real mode code offset
- MouseRight DD ? ; Right hand side of the screen
- MouseBottom DD ? ; Bottom of the screen
- ShadowPtr dw ?
- DrawMousePtr dw ?
- VGAMouseDraw dw ?
- VGAMouseShadow dw ?
- VESAMouseDraw dw ?
- VESAMouseShadow dw ?
- VesaPtr dd ?
- VesaBankTable DD 8 dup (?)
- Adjust_XPos dd ?
- Adjust_YPos dd ?
- ENDS
- ; InitFlags that are set to have a fully functional interrupt.
- IF_ALLOC_RM equ 1 ; Allocation of RM was successful.
- IF_SET_VECTORS equ 2 ; Vectors have been set.
- IF_LOCKED_PM_CODE equ 4 ; Locked PM code for DPMI.
- IF_LOCKED_PM_DATA equ 8 ; Locked PM code for DPMI.
- IF_RATE_CHANGE equ 10 ; Timer rate was changed.
- IF_FUNCTIONAL equ 20 ; Timer is in and functional.
- IF_LOCKED_RM_CODE equ 40
|