aboutsummaryrefslogtreecommitdiff
path: root/int33.h
diff options
context:
space:
mode:
Diffstat (limited to 'int33.h')
-rw-r--r--int33.h28
1 files changed, 25 insertions, 3 deletions
diff --git a/int33.h b/int33.h
index 13d5eea..bb975a3 100644
--- a/int33.h
+++ b/int33.h
@@ -134,12 +134,18 @@ enum INT33_API {
* @return ax min_x, bx min_y, cx max_x, d max_y. */
INT33_GET_WINDOW = 0x31,
+ /** Get pointer to driver's copyright string in es:di. */
+ INT33_GET_COPYRIGHT_STRING = 0x4D,
+
+ /** Get pointer to driver's version string in es:di. */
+ INT33_GET_VERSION_STRING = 0x6D,
+
// Wheel API Extensions:
INT33_GET_CAPABILITIES = 0x11,
// Our internal API functions:
- /** Obtains a pointer to the driver's data. */
- INT33_GET_TSR_DATA = 0x7f
+ /** Obtains a pointer to the driver's data in es:di. */
+ INT33_GET_TSR_DATA = 0x73,
};
enum INT33_CAPABILITY_BITS {
@@ -183,7 +189,7 @@ enum INT33_EVENT_MASK {
INT33_EVENT_MASK_ALL = 0xFFFF
};
-#pragma aux INT33_CB far loadds parm [ax] [bx] [cx] [dx] [si] [di]
+#pragma aux INT33_CB far loadds parm [ax] [bx] [cx] [dx] [si] [di] modify []
static uint16_t int33_reset(void);
#pragma aux int33_reset = \
@@ -226,4 +232,20 @@ static uint16_t int33_get_driver_version(void);
__value [bx] \
__modify [ax bx cx dx]
+static bool int33_get_max_coordinates(int16_t *x, int16_t *y);
+#pragma aux int33_get_max_coordinates = \
+ "mov ax, 0x26" \
+ "mov bx, -1" \
+ "int 0x33" \
+ "xor ax, ax" \
+ "test bx, bx" \
+ "jnz error" \
+ "mov [si], cx" \
+ "mov [di], dx" \
+ "mov al, 1" \
+ "error:" \
+ __parm [si] [di] \
+ __value [al] \
+ __modify [ax bx cx dx]
+
#endif /* INT33_H */