aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/jbw.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge/jbw.h')
-rw-r--r--engines/cge/jbw.h156
1 files changed, 156 insertions, 0 deletions
diff --git a/engines/cge/jbw.h b/engines/cge/jbw.h
new file mode 100644
index 0000000000..12c6609f4e
--- /dev/null
+++ b/engines/cge/jbw.h
@@ -0,0 +1,156 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * 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.
+ *
+ */
+
+/*
+ * This code is based on original Soltys source code
+ * Copyright (c) 1994-1995 Janus B. Wisniewski and L.K. Avalon
+ */
+
+#ifndef __JBW__
+#define __JBW__
+
+#include "common/scummsys.h"
+
+namespace CGE {
+
+// Defines found in cge.mak
+#define VOL
+#define INI_FILE VFILE // Or is it CFILE?
+#define PIC_FILE VFILE
+#define BMP_MODE 0
+//
+
+#define BEL 7
+#define BS 8
+#define HT 9
+#define LF 10
+#define FF 12
+#define CR 13
+#define MAXFILE 128
+
+#define IsWhite(c) ((c) == ' ' || (c) == '\t' || (c) == '\n')
+#define IsUpper(c) ((c) >= 'A' && (c) <= 'Z')
+#define IsLower(c) ((c) >= 'a' && (c) <= 'z')
+#define IsDigit(c) ((c) >= '0' && (c) <= '9')
+#define IsAlpha(c) (IsLower(c) || IsUpper(c) || (c) == '_')
+#define IsAlNum(c) (IsAlpha(c) || IsDigit(c))
+#define IsHxDig(c) (IsDigit(c) || ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f'))
+
+#define farnew(t, n) ((t *) malloc(sizeof(t) * (n)))
+#define ArrayCount(a) (sizeof(a) / sizeof((a)[0]))
+#define MAX_TIMER 0x1800B0L
+
+typedef void (MouseFunType)(void);
+
+#define Lo(d) (((int *) &d)[0])
+#define Hi(d) (((int *) &d)[1])
+#define LoWord(d) ((uint16) Lo(d))
+#define HiWord(d) ((uint16) Hi(d))
+#define K(n) (1024 * (n))
+#define MASK(n) ((1 << n) - 1)
+
+typedef enum {
+ NoKey = 0, CtrlA, CtrlB, CtrlC, CtrlD, CtrlE, CtrlF, CtrlG, CtrlH,
+ CtrlI, CtrlJ, CtrlK, CtrlL, CtrlM, CtrlN, CtrlO, CtrlP,
+ CtrlQ, CtrlR, CtrlS, CtrlT, CtrlU, CtrlV, CtrlW, CtrlX,
+ CtrlY, CtrlZ,
+ BSp = 8,
+ Tab = 9,
+ Enter = 13,
+ Eof = 26,
+ Esc = 27,
+ AltQ = 256 + 16, AltW, AltE, AltR, AltT, AltY, AltU, AltI, AltO, AltP,
+ AltA = 256 + 30, AltS, AltD, AltF, AltG, AltH, AltJ, AltK, AltL,
+ AltZ = 256 + 44, AltX, AltC, AltV, AltB, AltN, AltM,
+ F11 = 256 + 87, F12,
+ F1 = 256 + 59, F2, F3, F4, F5, F6, F7, F8, F9, F10,
+ ShiftTab = 256 + 15,
+ ShiftF1 = 256 + 84, ShiftF2, ShiftF3, ShiftF4, ShiftF5,
+ ShiftF6, ShiftF7, ShiftF8, ShiftF9, ShiftF10,
+ CtrlF1 = 256 + 94, CtrlF2, CtrlF3, CtrlF4, CtrlF5,
+ CtrlF6, CtrlF7, CtrlF8, CtrlF9, CtrlF10,
+ AltF1 = 256 + 104, AltF2, AltF3, AltF4, AltF5,
+ AltF6, AltF7, AltF8, AltF9, AltF10,
+ Home = 256 + 71,
+ Up,
+ PgUp,
+ Left = 256 + 75,
+ Ctr,
+ Right,
+ End = 256 + 79,
+ Down,
+ PgDn,
+ Ins,
+ Del,
+ CtrlLeft = 256 + 115,
+ CtrlRight,
+ CtrlEnd,
+ CtrlPgDn,
+ CtrlHome,
+ CtrlPgUp = 256 + 132,
+
+ MouseLeft = 512 + 1,
+ MouseRight,
+ TwiceLeft = 512 + 256 + 1,
+ TwiceRight
+} Keys;
+
+struct KeyStatStruct {
+ int RShift : 1;
+ int LShift : 1;
+ int Ctrl : 1;
+ int Alt : 1;
+
+ int ScrollLock : 1;
+ int NumLock : 1;
+ int CapsLock : 1;
+ int Ins : 1;
+
+ int LeftCtrl : 1;
+ int LeftAlt : 1;
+ int Unused : 6;
+};
+
+#define HGC_Cursor 0x0B0C
+#define CGA_Cursor 0x0607
+#define OFF_Cursor 0x2000
+
+#define TimerCount (*((volatile long *) ((void _seg *) 0x40 + (void *) 0x6C)))
+#define KeyStat (*((volatile struct KeyStatStruct *) ((void _seg *) 0x40 + (void *) 0x17)))
+#define BreakFlag (*((volatile uint8 *) ((void _seg *) 0x40 + (void *) 0x71)))
+#define PostFlag (*((volatile uint16 *) ((void _seg *) 0x40 + (void *) 0x72)))
+#define POST ((void (*)(void)) ((void _seg *) 0xF000 + (void *) 0xFFF0))
+
+
+#ifdef __cplusplus
+#define EC extern "C"
+#else
+#define EC
+#endif
+
+
+extern uint16 _stklen;
+extern uint16 _heaplen;
+
+} // End of namespace CGE
+
+#endif