[Scummvm-cvs-logs] scummvm master -> 624042eedd0f2e86308173c995e9760b4cd8de3f
sev-
sev at scummvm.org
Wed Jun 15 18:07:55 CEST 2011
This automated email contains information about 180 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
52a89174ab DREAMWEB: added autogenerated source
51f44779ca DREAMWEB: regenerate sources
181428e65e DREAMWEB: started integration of stubs
1f063c947b DREAMWEB: added stubs
9cf2a7ba0e DREAMWEB: added tasm-recover tool
10c84a81fe DREAMWEB: removed ugly macroses
e3178397ce COMMON: added assign(T*, T*)
d725199ac0 DREAMWEB: 'scummvm'ing types. :)
1f991fa1e4 DREAMWEB: fixed almost all runtime warnings
cc784e9a0c DREAMWEB: removed context template, cleaned up initialization
0b0b22ccc2 DREAMWEB: removed data declaration
4e6483e700 DREAMWEB: removed python generated bytecode
781d06709f DREAMWEB: updated git ignore
1ee6b0af69 DREAMWEB: get rid of data, added simple segment management
61fe610c73 DREAMWEB: fixed default segment addr
a0e56d9cad DREAMWEB: minor cleanup
e4c9ae7a54 COMMON: fixed resize
5b9a40584e DREAMWEB: added stubs for sound startup/exit
59b0c4b4b5 DREAMWEB: added all offsets
b76035db66 DREAMWEB: put data offsets, not labels into public
d9e4fb5d0e DREAMWEB: regenerated code
9d53cefa53 DREAMWEB: added allocateSegment, added some stubs
e94a8299aa DREAMWEB: fixed invalid operator=
40c02f2f7f DREAMWEB: replaced seecommandtail with stub
d4d5c0527e DREAMWEB: implemented some of the stubs
f0b54cec13 DREAMWEB: fixed typo
9e10e8e893 DREAMWEB: minor cleanup
a5e76d6911 DREAMWEB: cleaned up register part mess
222d9b2376 DREAMWEB: fixed stosw instruction
f7de3e8c38 DREAMWEB: simplified register part definition
78cc82a18c DREAMWEB: fixed typo
27210a70b4 DREAMWEB: removed useless const methods, fixed mask
326d5025cc DREAMWEB: removed const method
694c00bd10 DREAMWEB: cleanups
bba7724aec DREAMWEB: added fake data register pointing to variables
1494cdb295 DREAMWEB: added openfile stub
9a1575b9d5 DREAMWEB: implemented openfile
858a898aa7 DREAMWEB: added readfile
ab41fb783d DREAMWEB: fixed equ expanding
6a33ce30f2 DREAMWEB: added close file
08e2316d87 DREAMWEB: more stubs
7e56cc2d91 DREAMWEB: added video segment
59f8d31132 DREAMWEB: fixed offsets shifting for db/dw
5d6be069e9 DREAMWEB: restored open file check in read
6a2ac8728c DREAMWEB: fixed invalid file read length
221a3575a3 DREAMWEB: added mousecall stub
2fa141335d DREAMWEB: fixed release warnings
3595e9b675 DREAMWEB: added shr/shl instructions
35d5ffa85d DREAMWEB: zero cx after showgroup
a07ec818c7 DREAMWEB: added processEvents, added mouse support
af4f0e6b1e DREAMWEB: added graphics mode initialization
28cc856572 DREAMWEB: Unstub gettime().
a1b1d78e69 DREAMWEB: Unstub mode640x480()
a6fb92d230 DREAMWEB: added o flag handling for shr/shl instructions
797127cb65 DREAMWEB: cleared overflow flag on logic instructions
e0eac547cb DREAMWEB: fixed g/l/ge/le flags
978d17454b DREAMWEB: fixed OF flag handling
3bd7cb1902 DREAMWEB: fixed loadfromfile
fe40748d1a DREAMWEB: implemented loadseg
83d7320712 DREAMWEB: fixed bogus logs
a5bd71858b DREAMWEB: Adjusted mode640x480 slightly
bea919c9b4 DREAMWEB: fixed hardcoded offsets
fce91bd196 DREAMWEB: fixed of flag handling
66ee7b20f5 DREAMWEB: removed noisy palette log
4cea3245fe DREAMWEB: First attempt at unstubbing showpcx()
d2688a520b DREAMWEB: removed static from functions for now (allowing external usage)
e654b50632 DREAMWEB: removed generated code
90440a2b68 DREAMWEB: added assertion in pop()
2f9e63579d DREAMWEB: fixed missing explicit segment specification. added verbose data dump to the generator
834816db60 DREAMWEB: fixed loadseg
9717b220f1 DREAMWEB: added names instead of offsets for variables
07ad2efd80 DREAMWEB: fixed invalid register parts update
33bb7c3f72 DREAMWEB: fixed memory deallocation
23736a0240 DREAMWEB: output equ values in log
25a937e156 DREAMWEB: added fadedos
9193f33aad DREAMWEB: replaced movsw with 2*movsb
f7a3a552f3 DREAMWEB: fixed CF for neg instruction
4518719345 DREAMWEB: added 'equ' const to public header
2cb4eac5e0 DREAMWEB: removed hardcoded constant
9b76173573 DREAMWEB: regenerating source
97310ab904 DREAMWEB: asserted invalid calls
8cc8e73d1f DREAMWEB: blacklisted vga blitting functions
4c54bf9799 DREAMWEB: implemented multiXXX vga functions
8a72645c16 DREAMWEB: added setPalette instead of showgroup + framenm
b04f590898 DREAMWEB: added forgotten updateScreen()
e535e6e295 DREAMWEB: added keyboard handling
5c629e3849 DREAMWEB: fixed invalid memcpys
9109f36c04 DREAMWEB: fixed typo in multidump
47ed2ce385 DREAMWEB: Fix typo
038f19dfe9 DREAMWEB: The PCX decode works now.
3f592047bb DREAMWEB: fixed rep prefix
9034191796 DREAMWEB: removed dummy video segment, blacklisted video-related functions.
c8be54bbd8 DREAMWEB: Cleaned up the PCX decoder slightly
d70bc05b8e DREAMWEB: added assertion
fd1360096b DREAMWEB: replace pitch with kScreenwidth
938c14ddac DREAMWEB: increased vga frequency to 70Hz, fixed data segments
d0404f4b61 DREAMWEB: moved palette fixes into set/getPalette
b01af82d09 DREAMWEB: Make it easier to quit (albeit not yet very gracefully)
9b7b93e8ea DREAMWEB: fixed fades and palette setting
3ecd3f9ca1 DREAMWEB: commented out noisy debug
985d2facf2 DREAMWEB: Notice when the user presses ESC.
92e2dc8899 DREAMWEB: cut rendering box to the screen size
3e605f3cc4 DREAMWEB: regenerated sources
53e49d1a50 DREAMWEB: removed unused file
f7b56a0d94 DREAMWEB: fixed OF register handling once again
4ccd7fd791 DREAMWEB: fixed l/le/g/ge condition checks
2bcc06f9ea DREAMWEB: cleanup frameoutnm
99a4bb86dd DREAMWEB: fixed invalid generated jump instructions
8ea7a7a3d1 DREAMWEB: fixed seg XXX construction in generator
7eb8e0bbe7 DREAMWEB: unstubbed dontloadseg
a3e9cef4d0 DREAMWEB: fixed a typo
fdcb21ffee DREAMWEB: Unstub dosreturn().
8ddbbc0c50 DREAMWEB: moved out file write/read from sources
c5ab591b79 DREAMWEB: unstabbed save
f592fe1881 DREAMWEB: unstubbed scanfornames
b673130bf4 DREAMWEB: implemented somewhat hackish read from currently open file
5fda321a80 DREAMWEB: added the same magic for opening files
bd28564594 DREAMWEB: removed ugly static engine
04ee3aefae DREAMWEB: implemented doshake
4ba74f73e1 DREAMWEB: moved quit() into engine's method
1ac23aa858 DREAMWEB: added middle mouse key handling
3f53cb9244 DREAMWEB: removed warning about 16 colors palette, initialize mouseState
562f1ed8b8 DREAMWEB: Rewrite the PCX decoder i C++
f8422b56a9 DREAMWEB: renamed update to update_zs
bf80a8a3ac DREAMWEB: added inc/dec instructions.
c330f5d0b8 DREAMWEB: modify register after raster operations
70bbb1a2ae DREAMWEB: switched off foreign/spanish flags for recompilation
0f8eacf0bd DREAMWEB: Fix the maingamepal offset. (It changed recently.)
d65083ecae DREAMWEB: fixed neg instruction
de65cf35c1 DREAMWEB: Simplify the tracking of the mouse position and buttons
39d8f43bf3 DREAMWEB: hopefully fixed OF value
6deff84749 DREAMWEB: fixed crash on room changing
edf7d9b42b DREAMWEB: unstubbed printundermon
6fb25cdde4 DREAMWEB: added stack depth check to code generator
4547e7314c DREAMWEB: Make it possible to type the letter D
c808844ad6 DREAMWEB: regenerated the source
92a11ea59d DREAMWEB: Make new function for getting name of file to open.
308fcf0953 DREAMWEB: added setSpeed, CTRL-F shortcut and removed erik's comment because it's good idea :)
77624071bc DREAMWEB: removed detection params
55c366b988 DREAMWEB: fixed monitor scrolling
d69e437d42 DREAMWEB: do not return invalid register from the deallocate memory
93cf9993ea DREAMWEB: report click only once, this fixes phantom clicks after loading or between screens.
167d401ad7 DREAMWEB: fix registers on exit from stubs
cf6b88b174 DREAMWEB: report uppercased letters to the code
f46a889e6d DREAMWEB: fixed invalid buffer len
49e7c7a735 DREAMWEB: fixed occasional stripping of the strings in data segment
ff128eae14 DREAMWEB: fixed crash after exit of the monitor
e7b6859274 DREAMWEB: fixed memory corruption in multiput/multiget
09346f01d7 DREAMWEB: added sound handling stub
5a8b1dbfff DREAMWEB: catch the sample changing, more stubs
74dfc34937 DREAMWEB: added sounds loading
1955df129f DREAMWEB: added sound support
7e7152df28 DREAMWEB: removed looping on channel1
daab18a7be DREAMWEB: stop previous sound if it's still active
8ede458e77 DREAMWEB: fixed invalid channel, removed junk
0946aa81bd DREAMWEB: added operator= for segmentref
5cccea42e5 DREAMWEB: regenerated the source
8c9d00966f DREAMWEB: removed hacks, regenerated source
78b1a60611 DREAMWEB: patch sprite table after deallocating segment with sprites.
bf28698bca DREAMWEB: fixed shakeTable to do not pass negative values into backend, added CTRL-c statue puzzle solver shortcut
932abf8c3b DREAMWEB: regenerated sources with CD option on
074436985f DREAMWEB: renamed playSpeech to loadSpeech
25824b20ed DREAMWEB: added sound status check
84745add6e DREAMWEB: added volume support (stubs for now)
dca78aa964 DREAMWEB: fixed cd-version without savefiles
9008f2c442 DREAMWEB: added volume setting (maybe wrong)
8a87835638 DREAMWEB: added comment about volumes
5826ae88ae DREAMWEB: cut upper volume limit
cf942d9308 DREAMWEB: cleanup keys handling, added turbo shortcut
7d93f81aba DREAMWEB: added detection of the cd version
f4936e6b42 DREAMWEB: implemented stc/clc, fixed preliminary exit from the dialogue
cd4b0a8b6a DREAMWEB: cleaned up keys handling
cde28452f7 DREAMWEB: The readabyte() function is no longer needed.
dfaa1e32b7 DREAMWEB: Filter out "illegal" characters
9c7c46bfde DREAMWEB: fixed final scene, better sound channel handling
1cafd2de98 DREAMWEB: Reinstate some "hardware key" handling that got lost
c760405a4e DREAMWEB: ported engine to the new metaengine api
ae8edebd65 DREAMWEB: fixed title skipping
9599894a4b DREAMWEB: Added original sources. Released with permission from Neil Dodwell.
624042eedd Merge pull request #45 from fuzzie/dreamweb
Commit: 52a89174abc27a8f6256d401e5dde6ea904a4afd
https://github.com/scummvm/scummvm/commit/52a89174abc27a8f6256d401e5dde6ea904a4afd
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:05-07:00
Commit Message:
DREAMWEB: added autogenerated source
Changed paths:
A engines/dreamweb/console.cpp
A engines/dreamweb/console.h
A engines/dreamweb/detection.cpp
A engines/dreamweb/detection_tables.h
A engines/dreamweb/dreamgen.cpp
A engines/dreamweb/dreamgen.h
A engines/dreamweb/dreamweb.cpp
A engines/dreamweb/dreamweb.h
A engines/dreamweb/module.mk
A engines/dreamweb/runtime.h
base/plugins.cpp
configure
engines/engines.mk
diff --git a/base/plugins.cpp b/base/plugins.cpp
index 4a3b201..8ce7b53 100644
--- a/base/plugins.cpp
+++ b/base/plugins.cpp
@@ -106,6 +106,9 @@ public:
#if PLUGIN_ENABLED_STATIC(DRASCULA)
LINK_PLUGIN(DRASCULA)
#endif
+ #if PLUGIN_ENABLED_STATIC(DREAMWEB)
+ LINK_PLUGIN(DREAMWEB)
+ #endif
#if PLUGIN_ENABLED_STATIC(GOB)
LINK_PLUGIN(GOB)
#endif
diff --git a/configure b/configure
index b012ccc..e7a4335 100755
--- a/configure
+++ b/configure
@@ -83,6 +83,7 @@ add_engine cine "Cinematique evo 1" yes
add_engine cruise "Cinematique evo 2" yes
add_engine draci "Dragon History" yes
add_engine drascula "Drascula: The Vampire Strikes Back" yes
+add_engine dreamweb "Dreamweb" no
add_engine gob "Gobli*ns" yes
add_engine groovie "Groovie" yes "groovie2"
add_engine groovie2 "Groovie 2 games" no
diff --git a/engines/dreamweb/console.cpp b/engines/dreamweb/console.cpp
new file mode 100644
index 0000000..e004746
--- /dev/null
+++ b/engines/dreamweb/console.cpp
@@ -0,0 +1,36 @@
+/* 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.
+ *
+ * $URL: https://svn.scummvm.org:4444/svn/dreamweb/console.cpp $
+ * $Id: console.cpp 70 2011-01-26 05:36:55Z digitall $
+ *
+ */
+
+#include "dreamweb/console.h"
+
+namespace DreamWeb {
+
+DreamWebConsole::DreamWebConsole(DreamWebEngine *vm) : GUI::Debugger(), _vm(vm) {
+}
+
+DreamWebConsole::~DreamWebConsole() {
+}
+
+} // End of namespace DreamWeb
diff --git a/engines/dreamweb/console.h b/engines/dreamweb/console.h
new file mode 100644
index 0000000..58c8467
--- /dev/null
+++ b/engines/dreamweb/console.h
@@ -0,0 +1,46 @@
+/* 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.
+ *
+ * $URL: https://svn.scummvm.org:4444/svn/dreamweb/console.h $
+ * $Id: console.h 70 2011-01-26 05:36:55Z digitall $
+ *
+ */
+
+#ifndef DREAMWEB_CONSOLE_H
+#define DREAMWEB_CONSOLE_H
+
+#include "gui/debugger.h"
+
+namespace DreamWeb {
+
+class DreamWebEngine;
+
+class DreamWebConsole : public GUI::Debugger {
+public:
+ DreamWebConsole(DreamWebEngine *vm);
+ virtual ~DreamWebConsole(void);
+
+private:
+ DreamWebEngine *_vm;
+};
+
+} // End of namespace DreamWeb
+
+#endif
diff --git a/engines/dreamweb/detection.cpp b/engines/dreamweb/detection.cpp
new file mode 100644
index 0000000..f0d0f9e
--- /dev/null
+++ b/engines/dreamweb/detection.cpp
@@ -0,0 +1,148 @@
+/* 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.
+ *
+ * $URL: https://svn.scummvm.org:4444/svn/dreamweb/detection.cpp $
+ * $Id: detection.cpp 3 2010-09-16 19:32:18Z megath $
+ *
+ */
+
+#include "base/plugins.h"
+
+#include "engines/advancedDetector.h"
+#include "common/system.h"
+
+#include "dreamweb/dreamweb.h"
+
+namespace DreamWeb {
+
+struct DreamWebGameDescription {
+ ADGameDescription desc;
+};
+
+} // End of namespace DreamWeb
+
+static const PlainGameDescriptor dreamWebGames[] = {
+ { "dreamweb", "DreamWeb" },
+ { 0, 0 }
+};
+
+static const ADObsoleteGameID obsoleteGameIDsTable[] = {
+ { 0, 0, Common::kPlatformUnknown }
+};
+
+#include "dreamweb/detection_tables.h"
+
+static const ADParams detectionParams = {
+ // Pointer to ADGameDescription or its superset structure
+ (const byte *)DreamWeb::gameDescriptions,
+ // Size of that superset structure
+ sizeof(DreamWeb::DreamWebGameDescription),
+ // Number of bytes to compute MD5 sum for
+ 5000,
+ // List of all engine targets
+ dreamWebGames,
+ // Structure for autoupgrading obsolete targets
+ obsoleteGameIDsTable,
+ // Name of single gameid (optional)
+ "dreamweb",
+ // List of files for file-based fallback detection (optional)
+ 0,
+ // Flags
+ 0,
+ // Additional GUI options (for every game}
+ Common::GUIO_NOMIDI,
+ // Maximum directory depth
+ 1,
+ // List of directory globs
+ 0
+};
+
+class DreamWebMetaEngine : public AdvancedMetaEngine {
+public:
+ DreamWebMetaEngine() : AdvancedMetaEngine(detectionParams) {}
+
+ virtual const char *getName() const {
+ return "DreamWeb engine";
+ }
+
+ virtual const char *getOriginalCopyright() const {
+ return "DreamWeb (C) Creative Reality";
+ }
+
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
+ virtual bool hasFeature(MetaEngineFeature f) const;
+ virtual SaveStateList listSaves(const char *target) const;
+ virtual int getMaximumSaveSlot() const;
+ virtual void removeSaveState(const char *target, int slot) const;
+};
+
+bool DreamWebMetaEngine::hasFeature(MetaEngineFeature f) const {
+ return false;
+}
+
+bool DreamWeb::DreamWebEngine::hasFeature(EngineFeature f) const {
+ return false;
+}
+
+bool DreamWebMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
+ const DreamWeb::DreamWebGameDescription *gd = (const DreamWeb::DreamWebGameDescription *)desc;
+ if (gd) {
+ *engine = new DreamWeb::DreamWebEngine(syst, gd);
+ }
+ return gd != 0;
+}
+
+SaveStateList DreamWebMetaEngine::listSaves(const char *target) const {
+ //Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
+ SaveStateList saveList;
+
+ return saveList;
+}
+
+int DreamWebMetaEngine::getMaximumSaveSlot() const { return 99; }
+
+void DreamWebMetaEngine::removeSaveState(const char *target, int slot) const {
+}
+
+#if PLUGIN_ENABLED_DYNAMIC(DREAMWEB)
+ REGISTER_PLUGIN_DYNAMIC(DREAMWEB, PLUGIN_TYPE_ENGINE, DreamWebMetaEngine);
+#else
+ REGISTER_PLUGIN_STATIC(DREAMWEB, PLUGIN_TYPE_ENGINE, DreamWebMetaEngine);
+#endif
+
+namespace DreamWeb {
+
+Common::Error DreamWebEngine::loadGameState(int slot) {
+ return Common::kNoError;
+}
+
+Common::Error DreamWebEngine::saveGameState(int slot, const char *desc) {
+ return Common::kNoError;
+}
+
+bool DreamWebEngine::canLoadGameStateCurrently() {
+ return false;
+}
+
+bool DreamWebEngine::canSaveGameStateCurrently() {
+ return false;
+}
+
+} // End of namespace DreamWeb
diff --git a/engines/dreamweb/detection_tables.h b/engines/dreamweb/detection_tables.h
new file mode 100644
index 0000000..394236a
--- /dev/null
+++ b/engines/dreamweb/detection_tables.h
@@ -0,0 +1,51 @@
+/* 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.
+ *
+ * $URL: https://svn.scummvm.org:4444/svn/dreamweb/detection_tables.h $
+ * $Id: detection_tables.h 66 2010-11-07 08:31:21Z eriktorbjorn $
+ *
+ */
+
+#ifndef DREAMWEB_DETECTION_TABLES_H
+#define DREAMWEB_DETECTION_TABLES_H
+
+namespace DreamWeb {
+
+using Common::GUIO_NONE;
+
+static const DreamWebGameDescription gameDescriptions[] = {
+ {
+ {
+ "dreamweb",
+ "",
+ AD_ENTRY1s("dreamweb.r00", "3b5c87717fc40cc5a5ae19c155662ee3", 152918),
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ GUIO_NONE
+ },
+ },
+
+ { AD_TABLE_END_MARKER }
+};
+
+} // End of namespace DreamWeb
+
+#endif
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
new file mode 100644
index 0000000..ec243cc
--- /dev/null
+++ b/engines/dreamweb/dreamgen.cpp
@@ -0,0 +1,22062 @@
+#include "dreamgen.h"
+
+namespace dreamgen {
+
+static inline void allocatebuffers(Context &context);
+static inline void clearbuffers(Context &context);
+static inline void clearpalette(Context &context);
+static inline void readsetdata(Context &context);
+static inline void loadpalfromiff(Context &context);
+static inline void titles(Context &context);
+static inline void credits(Context &context);
+static inline void cls(Context &context);
+static inline void decide(Context &context);
+static inline void clearchanges(Context &context);
+static inline void loadroom(Context &context);
+static inline void clearsprites(Context &context);
+static inline void initman(Context &context);
+static inline void entrytexts(Context &context);
+static inline void entryanims(Context &context);
+static inline void initialinv(Context &context);
+static inline void startup1(Context &context);
+static inline void clearbeforeload(Context &context);
+static inline void startup(Context &context);
+static inline void worktoscreenm(Context &context);
+static inline void screenupdate(Context &context);
+static inline void showgun(Context &context);
+static inline void fadescreendown(Context &context);
+static inline void hangon(Context &context);
+static inline void fadescreendowns(Context &context);
+static inline void endgame(Context &context);
+static inline void loadtemptext(Context &context);
+static inline void monkspeaking(Context &context);
+static inline void gettingshot(Context &context);
+static inline void getridoftemptext(Context &context);
+static inline void loadintroroom(Context &context);
+static inline void fadescreenups(Context &context);
+static inline void runendseq(Context &context);
+static inline void atmospheres(Context &context);
+static inline void spriteupdate(Context &context);
+static inline void deleverything(Context &context);
+static inline void printsprites(Context &context);
+static inline void reelsonscreen(Context &context);
+static inline void afterintroroom(Context &context);
+static inline void usetimedtext(Context &context);
+static inline void dumpmap(Context &context);
+static inline void dumptimedtext(Context &context);
+static inline void multidump(Context &context);
+static inline void getundertimed(Context &context);
+static inline void printdirect(Context &context);
+static inline void putundertimed(Context &context);
+static inline void multiput(Context &context);
+static inline void getnumber(Context &context);
+static inline void modifychar(Context &context);
+static inline void printchar(Context &context);
+static inline void showframe(Context &context);
+static inline void kernchars(Context &context);
+static inline void frameoutfx(Context &context);
+static inline void frameoutnm(Context &context);
+static inline void frameoutbh(Context &context);
+static inline void frameoutv(Context &context);
+static inline void getnextword(Context &context);
+static inline void multiget(Context &context);
+static inline void clearwork(Context &context);
+static inline void findroominloc(Context &context);
+static inline void drawfloor(Context &context);
+static inline void worktoscreen(Context &context);
+static inline void width160(Context &context);
+static inline void eraseoldobs(Context &context);
+static inline void drawflags(Context &context);
+static inline void calcmapad(Context &context);
+static inline void doblocks(Context &context);
+static inline void showallobs(Context &context);
+static inline void showallfree(Context &context);
+static inline void showallex(Context &context);
+static inline void paneltomap(Context &context);
+static inline void initrain(Context &context);
+static inline void splitintolines(Context &context);
+static inline void getblockofpixel(Context &context);
+static inline void checkone(Context &context);
+static inline void getmapad(Context &context);
+static inline void calcfrframe(Context &context);
+static inline void finalframe(Context &context);
+static inline void getxad(Context &context);
+static inline void getyad(Context &context);
+static inline void makebackob(Context &context);
+static inline void makesprite(Context &context);
+static inline void getdimension(Context &context);
+static inline void addalong(Context &context);
+static inline void addlength(Context &context);
+static inline void reconstruct(Context &context);
+static inline void updatepeople(Context &context);
+static inline void watchreel(Context &context);
+static inline void showrain(Context &context);
+static inline void randomnum1(Context &context);
+static inline void playchannel1(Context &context);
+static inline void plotreel(Context &context);
+static inline void checkforshake(Context &context);
+static inline void autosetwalk(Context &context);
+static inline void getroomspaths(Context &context);
+static inline void checkdest(Context &context);
+static inline void bresenhams(Context &context);
+static inline void workoutframes(Context &context);
+static inline void getreelstart(Context &context);
+static inline void dealwithspecial(Context &context);
+static inline void showreelframe(Context &context);
+static inline void soundonreels(Context &context);
+static inline void playchannel0(Context &context);
+static inline void findsource(Context &context);
+static inline void placesetobject(Context &context);
+static inline void removesetobject(Context &context);
+static inline void placefreeobject(Context &context);
+static inline void removefreeobject(Context &context);
+static inline void switchryanoff(Context &context);
+static inline void switchryanon(Context &context);
+static inline void movemap(Context &context);
+static inline void getfreead(Context &context);
+static inline void findormake(Context &context);
+static inline void getsetad(Context &context);
+static inline void undertextline(Context &context);
+static inline void printasprite(Context &context);
+static inline void maptopanel(Context &context);
+static inline void cancelch0(Context &context);
+static inline void clearstartpal(Context &context);
+static inline void paltoendpal(Context &context);
+static inline void loadroomssample(Context &context);
+static inline void loadintotemp(Context &context);
+static inline void showmonk(Context &context);
+static inline void getridoftemp(Context &context);
+static inline void standardload(Context &context);
+static inline void readheader(Context &context);
+static inline void twodigitnum(Context &context);
+static inline void cancelch1(Context &context);
+static inline void paltostartpal(Context &context);
+static inline void clearendpal(Context &context);
+static inline void greyscalesum(Context &context);
+static inline void endpaltostart(Context &context);
+static inline void createpanel2(Context &context);
+static inline void fadescreenup(Context &context);
+static inline void rollendcredits2(Context &context);
+static inline void rollem(Context &context);
+static inline void hangone(Context &context);
+static inline void createpanel(Context &context);
+static inline void newplace(Context &context);
+static inline void mainscreen(Context &context);
+static inline void animpointer(Context &context);
+static inline void showpointer(Context &context);
+static inline void readmouse1(Context &context);
+static inline void dumppointer(Context &context);
+static inline void dumptextline(Context &context);
+static inline void delpointer(Context &context);
+static inline void autolook(Context &context);
+static inline void watchcount(Context &context);
+static inline void zoom(Context &context);
+static inline void readmouse2(Context &context);
+static inline void dumpzoom(Context &context);
+static inline void afternewroom(Context &context);
+static inline void readmouse3(Context &context);
+static inline void readmouse4(Context &context);
+static inline void dumpwatch(Context &context);
+static inline void findpathofpoint(Context &context);
+static inline void findxyfrompath(Context &context);
+static inline void showicon(Context &context);
+static inline void getunderzoom(Context &context);
+static inline void walkintoroom(Context &context);
+static inline void reminders(Context &context);
+static inline void isryanholding(Context &context);
+static inline void findexobject(Context &context);
+static inline void compare(Context &context);
+static inline void setuptimeduse(Context &context);
+static inline void getanyaddir(Context &context);
+static inline void getexad(Context &context);
+static inline void showpanel(Context &context);
+static inline void showman(Context &context);
+static inline void roomname(Context &context);
+static inline void panelicons1(Context &context);
+static inline void zoomicon(Context &context);
+static inline void middlepanel(Context &context);
+static inline void showwatch(Context &context);
+static inline void showtime(Context &context);
+static inline void printmessage(Context &context);
+static inline void usecharset1(Context &context);
+static inline void putunderzoom(Context &context);
+static inline void crosshair(Context &context);
+static inline void dolook(Context &context);
+static inline void findnextcolon(Context &context);
+static inline void printslow(Context &context);
+static inline void hangonp(Context &context);
+static inline void redrawmainscrn(Context &context);
+static inline void readmouse(Context &context);
+static inline void printboth(Context &context);
+static inline void waitframes(Context &context);
+static inline void dumpblink(Context &context);
+static inline void showblink(Context &context);
+static inline void getflagunderp(Context &context);
+static inline void checkcoords(Context &context);
+static inline void walkandexamine(Context &context);
+static inline void finishedwalking(Context &context);
+static inline void examineob(Context &context);
+static inline void setwalk(Context &context);
+static inline void examineobtext(Context &context);
+static inline void blocknametext(Context &context);
+static inline void personnametext(Context &context);
+static inline void walktotext(Context &context);
+static inline void commandwithob(Context &context);
+static inline void deltextline(Context &context);
+static inline void copyname(Context &context);
+static inline void findobname(Context &context);
+static inline void facerightway(Context &context);
+static inline void showexit(Context &context);
+static inline void obicons(Context &context);
+static inline void obpicture(Context &context);
+static inline void describeob(Context &context);
+static inline void makemainscreen(Context &context);
+static inline void getobtextstart(Context &context);
+static inline void obsthatdothings(Context &context);
+static inline void additionaltext(Context &context);
+static inline void findpuztext(Context &context);
+static inline void getlocation(Context &context);
+static inline void setlocation(Context &context);
+static inline void lookatcard(Context &context);
+static inline void getridofreels(Context &context);
+static inline void loadkeypad(Context &context);
+static inline void hangonw(Context &context);
+static inline void restorereels(Context &context);
+static inline void putbackobstuff(Context &context);
+static inline void getroomdata(Context &context);
+static inline void allocateload(Context &context);
+static inline void searchforsame(Context &context);
+static inline void getanyad(Context &context);
+static inline void selectlocation(Context &context);
+static inline void readcitypic(Context &context);
+static inline void showcity(Context &context);
+static inline void readdesticon(Context &context);
+static inline void loadtraveltext(Context &context);
+static inline void showarrows(Context &context);
+static inline void locationpic(Context &context);
+static inline void getridoftemp2(Context &context);
+static inline void getridoftemp3(Context &context);
+static inline void getdestinfo(Context &context);
+static inline void loadintotemp2(Context &context);
+static inline void loadintotemp3(Context &context);
+static inline void clearreels(Context &context);
+static inline void clearrest(Context &context);
+static inline void pickupob(Context &context);
+static inline void transfertoex(Context &context);
+static inline void emergencypurge(Context &context);
+static inline void getexpos(Context &context);
+static inline void transfermap(Context &context);
+static inline void transferinv(Context &context);
+static inline void transfertext(Context &context);
+static inline void pickupconts(Context &context);
+static inline void transfercontoex(Context &context);
+static inline void purgeanitem(Context &context);
+static inline void deleteexobject(Context &context);
+static inline void deleteexframe(Context &context);
+static inline void deleteextext(Context &context);
+static inline void resetlocation(Context &context);
+static inline void checkifpathison(Context &context);
+static inline void turnpathon(Context &context);
+static inline void turnanypathon(Context &context);
+static inline void purgealocation(Context &context);
+static inline void startloading(Context &context);
+static inline void fillspace(Context &context);
+static inline void sortoutmap(Context &context);
+static inline void deletetaken(Context &context);
+static inline void setallchanges(Context &context);
+static inline void autoappear(Context &context);
+static inline void dochange(Context &context);
+static inline void loadsavebox(Context &context);
+static inline void showdecisions(Context &context);
+static inline void showopbox(Context &context);
+static inline void realcredits(Context &context);
+static inline void allpalette(Context &context);
+static inline void dumpcurrent(Context &context);
+static inline void biblequote(Context &context);
+static inline void intro(Context &context);
+static inline void runintroseq(Context &context);
+static inline void trysoundalloc(Context &context);
+static inline void allocatework(Context &context);
+static inline void checkforemm(Context &context);
+static inline void printcurs(Context &context);
+static inline void delcurs(Context &context);
+static inline void commandonly(Context &context);
+static inline void talk(Context &context);
+static inline void obname(Context &context);
+static inline void pixelcheckset(Context &context);
+static inline void isitdescribed(Context &context);
+static inline void getreelframeax(Context &context);
+static inline void blank(Context &context);
+static inline void findfirstpath(Context &context);
+static inline void checkifex(Context &context);
+static inline void checkiffree(Context &context);
+static inline void checkifperson(Context &context);
+static inline void checkifset(Context &context);
+static inline void identifyob(Context &context);
+static inline void convnum(Context &context);
+static inline void onedigit(Context &context);
+static inline void parseblaster(Context &context);
+static inline void volumeadjust(Context &context);
+static inline void loopchannel0(Context &context);
+static inline void createname(Context &context);
+static inline void doload(Context &context);
+static inline void showloadops(Context &context);
+static inline void showslots(Context &context);
+static inline void shownames(Context &context);
+static inline void namestoold(Context &context);
+static inline void storeit(Context &context);
+static inline void makeheader(Context &context);
+static inline void oldtonames(Context &context);
+static inline void showsaveops(Context &context);
+static inline void readkey(Context &context);
+static inline void getnamepos(Context &context);
+static inline void selectslot(Context &context);
+static inline void restoreall(Context &context);
+static inline void checkinput(Context &context);
+static inline void showdiscops(Context &context);
+static inline void getback1(Context &context);
+static inline void getridofall(Context &context);
+static inline void showmainops(Context &context);
+static inline void dosaveload(Context &context);
+static inline void findtext1(Context &context);
+static inline void usetempcharset(Context &context);
+static inline void showdiary(Context &context);
+static inline void showdiarypage(Context &context);
+static inline void loadtempcharset(Context &context);
+static inline void showdiarykeys(Context &context);
+static inline void dumpdiarykeys(Context &context);
+static inline void getridoftempcharset(Context &context);
+static inline void nextsymbol(Context &context);
+static inline void showsymbol(Context &context);
+static inline void updatesymboltop(Context &context);
+static inline void updatesymbolbot(Context &context);
+static inline void dumpsymbol(Context &context);
+static inline void turnanypathoff(Context &context);
+static inline void folderexit(Context &context);
+static inline void showleftpage(Context &context);
+static inline void showrightpage(Context &context);
+static inline void showfolder(Context &context);
+static inline void folderhints(Context &context);
+static inline void loadfolder(Context &context);
+static inline void loadmenu(Context &context);
+static inline void getundermenu(Context &context);
+static inline void putundermenu(Context &context);
+static inline void showmenu(Context &context);
+static inline void dumpmenu(Context &context);
+static inline void singlekey(Context &context);
+static inline void buttonpress(Context &context);
+static inline void showouterpad(Context &context);
+static inline void showkeypad(Context &context);
+static inline void dumpkeypad(Context &context);
+static inline void addtopresslist(Context &context);
+static inline void isitright(Context &context);
+static inline void checkinside(Context &context);
+static inline void showfirstuse(Context &context);
+static inline void withwhat(Context &context);
+static inline void showpuztext(Context &context);
+static inline void issetobonmap(Context &context);
+static inline void showseconduse(Context &context);
+static inline void removeobfrominv(Context &context);
+static inline void turnpathoff(Context &context);
+static inline void findinvpos(Context &context);
+static inline void useroutine(Context &context);
+static inline void printmessage2(Context &context);
+static inline void fillryan(Context &context);
+static inline void findsetobject(Context &context);
+static inline void usetext(Context &context);
+static inline void moneypoke(Context &context);
+static inline void nextcolon(Context &context);
+static inline void entercode(Context &context);
+static inline void makeworn(Context &context);
+static inline void nothelderror(Context &context);
+static inline void triggermessage(Context &context);
+static inline void monprint(Context &context);
+static inline void showcurrentfile(Context &context);
+static inline void printlogo(Context &context);
+static inline void printundermon(Context &context);
+static inline void randomaccess(Context &context);
+static inline void locklighton(Context &context);
+static inline void locklightoff(Context &context);
+static inline void makecaps(Context &context);
+static inline void monmessage(Context &context);
+static inline void scrollmonitor(Context &context);
+static inline void searchforstring(Context &context);
+static inline void getkeyandlogo(Context &context);
+static inline void monitorlogo(Context &context);
+static inline void parser(Context &context);
+static inline void neterror(Context &context);
+static inline void processtrigger(Context &context);
+static inline void input(Context &context);
+static inline void dirfile(Context &context);
+static inline void searchforfiles(Context &context);
+static inline void dircom(Context &context);
+static inline void signon(Context &context);
+static inline void read(Context &context);
+static inline void showkeys(Context &context);
+static inline void delchar(Context &context);
+static inline void accesslighton(Context &context);
+static inline void accesslightoff(Context &context);
+static inline void powerlighton(Context &context);
+static inline void powerlightoff(Context &context);
+static inline void lookininterface(Context &context);
+static inline void loadpersonal(Context &context);
+static inline void loadnews(Context &context);
+static inline void loadcart(Context &context);
+static inline void printoutermon(Context &context);
+static inline void initialmoncols(Context &context);
+static inline void turnonpower(Context &context);
+static inline void fadeupyellows(Context &context);
+static inline void fadeupmonfirst(Context &context);
+static inline void hangoncurs(Context &context);
+static inline void execcommand(Context &context);
+static inline void getundercentre(Context &context);
+static inline void putundercentre(Context &context);
+static inline void convicons(Context &context);
+static inline void starttalk(Context &context);
+static inline void hangonpq(Context &context);
+static inline void redes(Context &context);
+static inline void dosometalk(Context &context);
+static inline void getpersontext(Context &context);
+static inline void getpersframe(Context &context);
+static inline void findopenpos(Context &context);
+static inline void reexfromopen(Context &context);
+static inline void geteitherad(Context &context);
+static inline void fillopen(Context &context);
+static inline void useopened(Context &context);
+static inline void getopenedsize(Context &context);
+static inline void errormessage3(Context &context);
+static inline void errormessage2(Context &context);
+static inline void examicon(Context &context);
+static inline void outofopen(Context &context);
+static inline void swapwithopen(Context &context);
+static inline void isitworn(Context &context);
+static inline void wornerror(Context &context);
+static inline void errormessage1(Context &context);
+static inline void checkobjectsize(Context &context);
+static inline void openinv(Context &context);
+static inline void openob(Context &context);
+static inline void droperror(Context &context);
+static inline void cantdrop(Context &context);
+static inline void reexfrominv(Context &context);
+static inline void intoinv(Context &context);
+static inline void outofinv(Context &context);
+static inline void swapwithinv(Context &context);
+static inline void findallopen(Context &context);
+static inline void obtoinv(Context &context);
+static inline void findallryan(Context &context);
+static inline void showryanpage(Context &context);
+static inline void lockmon(Context &context);
+static inline void fadecalculation(Context &context);
+static inline void dodoor(Context &context);
+static inline void liftnoise(Context &context);
+static inline void widedoor(Context &context);
+static inline void random(Context &context);
+static inline void lockeddoorway(Context &context);
+static inline void liftsprite(Context &context);
+static inline void doorway(Context &context);
+static inline void constant(Context &context);
+static inline void steady(Context &context);
+static inline void adjustleft(Context &context);
+static inline void adjustright(Context &context);
+static inline void adjustdown(Context &context);
+static inline void adjustup(Context &context);
+static inline void aboutturn(Context &context);
+static inline void checkforexit(Context &context);
+static inline void walking(Context &context);
+static inline void showgamereel(Context &context);
+static inline void checkspeed(Context &context);
+static inline void addtopeoplelist(Context &context);
+static inline void setuptimedtemp(Context &context);
+static inline void madmantext(Context &context);
+static inline void madmode(Context &context);
+static inline void priesttext(Context &context);
+static inline void fadescreenuphalf(Context &context);
+static inline void textforend(Context &context);
+static inline void fadescreendownhalf(Context &context);
+static inline void rollendcredits(Context &context);
+static inline void textformonk(Context &context);
+static inline void monks2text(Context &context);
+static inline void intro2text(Context &context);
+static inline void intro3text(Context &context);
+static inline void intro1text(Context &context);
+
+static inline void alleybarksound(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._sub(context.ax, 1);
+ context._cmp(context.ax, 0);
+ if (!context.flags.z()) goto nobark;
+ context.push(context.bx);
+ context.push(context.es);
+ context.al = 14;
+ playchannel1(context);
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.ax = 1000;
+nobark:
+ context.data.word(context.bx+3) = context.ax;
+ return;
+}
+
+static inline void intromusic(Context & context) {
+ return;
+}
+
+static inline void foghornsound(Context & context) {
+ randomnumber(context);
+ context._cmp(context.al, 198);
+ if (!context.flags.z()) goto nofog;
+ context.al = 13;
+ playchannel1(context);
+nofog:
+ return;
+}
+
+static inline void receptionist(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto gotrecep;
+ context._cmp(context.data.byte(52), 1);
+ if (!context.flags.z()) goto notsetcard;
+ context._add(context.data.byte(52), 1);
+ context.data.byte(context.bx+7) = 1;
+ context.data.word(context.bx+3) = 64;
+notsetcard:
+ context._cmp(context.data.word(context.bx+3), 58);
+ if (!context.flags.z()) goto notdes1;
+ randomnumber(context);
+ context._cmp(context.al, 30);
+ if (context.flags.c()) goto notdes2;
+ context.data.word(context.bx+3) = 55;
+ goto gotrecep;
+notdes1:
+ context._cmp(context.data.word(context.bx+3), 60);
+ if (!context.flags.z()) goto notdes2;
+ randomnumber(context);
+ context._cmp(context.al, 240);
+ if (context.flags.c()) goto gotrecep;
+ context.data.word(context.bx+3) = 53;
+ goto gotrecep;
+notdes2:
+ context._cmp(context.data.word(context.bx+3), 88);
+ if (!context.flags.z()) goto notendcard;
+ context.data.word(context.bx+3) = 53;
+ goto gotrecep;
+notendcard:
+ context._add(context.data.word(context.bx+3), 1);
+gotrecep:
+ showgamereel(context);
+ addtopeoplelist(context);
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 128);
+ if (context.flags.z()) goto nottalkedrecep;
+ context.data.byte(51) = 1;
+nottalkedrecep:
+ return;
+}
+
+static inline void smokebloke(Context & context) {
+ context._cmp(context.data.byte(41), 0);
+ if (!context.flags.z()) goto notspokento;
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 128);
+ if (context.flags.z()) goto notspokento;
+ context.push(context.es);
+ context.push(context.bx);
+ context.al = 5;
+ setlocation(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+notspokento:
+ checkspeed(context);
+ if (!context.flags.z()) goto gotsmokeb;
+ context._cmp(context.data.word(context.bx+3), 100);
+ if (!context.flags.z()) goto notsmokeb1;
+ randomnumber(context);
+ context._cmp(context.al, 30);
+ if (context.flags.c()) goto notsmokeb2;
+ context.data.word(context.bx+3) = 96;
+ goto gotsmokeb;
+notsmokeb1:
+ context._cmp(context.data.word(context.bx+3), 117);
+ if (!context.flags.z()) goto notsmokeb2;
+ context.data.word(context.bx+3) = 96;
+ goto gotsmokeb;
+notsmokeb2:
+ context._add(context.data.word(context.bx+3), 1);
+gotsmokeb:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void attendant(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 128);
+ if (context.flags.z()) goto nottalked;
+ context.data.byte(48) = 1;
+nottalked:
+ return;
+}
+
+static inline void manasleep(Context & context) {
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 127);
+ context.data.byte(context.bx+7) = context.al;
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void eden(Context & context) {
+ context._cmp(context.data.byte(42), 0);
+ if (!context.flags.z()) goto notinbed;
+ showgamereel(context);
+ addtopeoplelist(context);
+notinbed:
+ return;
+}
+
+static inline void edeninbath(Context & context) {
+ context._cmp(context.data.byte(42), 0);
+ if (context.flags.z()) goto notinbed;
+ context._cmp(context.data.byte(43), 0);
+ if (!context.flags.z()) goto notinbath;
+ showgamereel(context);
+ addtopeoplelist(context);
+notinbath:
+ return;
+/*continuing to unbounded code: notinbed from eden:5-6*/
+notinbed:
+ return;
+ return;
+}
+
+static inline void malefan(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void femalefan(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void louis(Context & context) {
+ context._cmp(context.data.byte(41), 0);
+ if (!context.flags.z()) goto notlouis1;
+ showgamereel(context);
+ addtopeoplelist(context);
+notlouis1:
+ return;
+}
+
+static inline void louischair(Context & context) {
+ context._cmp(context.data.byte(41), 0);
+ if (context.flags.z()) goto notlouis2;
+ checkspeed(context);
+ if (!context.flags.z()) goto notlouisanim;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 191);
+ if (context.flags.z()) goto restartlouis;
+ context._cmp(context.ax, 185);
+ if (context.flags.z()) goto randomlouis;
+ context.data.word(context.bx+3) = context.ax;
+ goto notlouisanim;
+randomlouis:
+ context.data.word(context.bx+3) = context.ax;
+ randomnumber(context);
+ context._cmp(context.al, 245);
+ if (!context.flags.c()) goto notlouisanim;
+restartlouis:
+ context.ax = 182;
+ context.data.word(context.bx+3) = context.ax;
+notlouisanim:
+ showgamereel(context);
+ addtopeoplelist(context);
+notlouis2:
+ return;
+}
+
+static inline void manasleep2(Context & context) {
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 127);
+ context.data.byte(context.bx+7) = context.al;
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void mansatstill(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void tattooman(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void drinker(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto gotdrinker;
+ context._add(context.data.word(context.bx+3), 1);
+ context._cmp(context.data.word(context.bx+3), 115);
+ if (!context.flags.z()) goto notdrinker1;
+ context.data.word(context.bx+3) = 105;
+ goto gotdrinker;
+notdrinker1:
+ context._cmp(context.data.word(context.bx+3), 106);
+ if (!context.flags.z()) goto gotdrinker;
+ randomnumber(context);
+ context._cmp(context.al, 3);
+ if (context.flags.c()) goto gotdrinker;
+ context.data.word(context.bx+3) = 105;
+gotdrinker:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void bartender(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto gotsmoket;
+ context._cmp(context.data.word(context.bx+3), 86);
+ if (!context.flags.z()) goto notsmoket1;
+ randomnumber(context);
+ context._cmp(context.al, 18);
+ if (context.flags.c()) goto notsmoket2;
+ context.data.word(context.bx+3) = 81;
+ goto gotsmoket;
+notsmoket1:
+ context._cmp(context.data.word(context.bx+3), 103);
+ if (!context.flags.z()) goto notsmoket2;
+ context.data.word(context.bx+3) = 81;
+ goto gotsmoket;
+notsmoket2:
+ context._add(context.data.word(context.bx+3), 1);
+gotsmoket:
+ showgamereel(context);
+ context._cmp(context.data.byte(46), 1);
+ if (!context.flags.z()) goto notgotgun;
+ context.data.byte(context.bx+7) = 9;
+notgotgun:
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void othersmoker(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void barwoman(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void interviewer(Context & context) {
+ context._cmp(context.data.word(23), 68);
+ if (!context.flags.z()) goto notgeneralstart;
+ context._add(context.data.word(context.bx+3), 1);
+notgeneralstart:
+ context._cmp(context.data.word(context.bx+3), 250);
+ if (context.flags.z()) goto talking;
+ checkspeed(context);
+ if (!context.flags.z()) goto talking;
+ context._cmp(context.data.word(context.bx+3), 259);
+ if (context.flags.z()) goto talking;
+ context._add(context.data.word(context.bx+3), 1);
+talking:
+ showgamereel(context);
+ return;
+}
+
+static inline void soldier1(Context & context) {
+ context._cmp(context.data.word(context.bx+3), 0);
+ if (context.flags.z()) goto soldierwait;
+ context.data.word(21) = 10;
+ context._cmp(context.data.word(context.bx+3), 30);
+ if (!context.flags.z()) goto notaftersshot;
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
+ if (!context.flags.z()) goto gotsoldframe;
+ context.data.byte(56) = 2;
+ goto gotsoldframe;
+notaftersshot:
+ checkspeed(context);
+ if (!context.flags.z()) goto gotsoldframe;
+ context._add(context.data.word(context.bx+3), 1);
+ goto gotsoldframe;
+soldierwait:
+ context._cmp(context.data.byte(65), 1);
+ if (!context.flags.z()) goto gotsoldframe;
+ context.data.word(21) = 10;
+ context._cmp(context.data.byte(475), 2);
+ if (!context.flags.z()) goto gotsoldframe;
+ context._cmp(context.data.byte(133), 4);
+ if (!context.flags.z()) goto gotsoldframe;
+ context._add(context.data.word(context.bx+3), 1);
+ context.data.byte(65) = -1;
+ context.data.byte(64) = 0;
+gotsoldframe:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void rockstar(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 303);
+ if (context.flags.z()) goto rockcombatend;
+ context._cmp(context.ax, 118);
+ if (context.flags.z()) goto rockcombatend;
+ checkspeed(context);
+ if (!context.flags.z()) goto rockspeed;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 118);
+ if (!context.flags.z()) goto notbeforedead;
+ context.data.byte(56) = 2;
+ goto gotrockframe;
+notbeforedead:
+ context._cmp(context.ax, 79);
+ if (!context.flags.z()) goto gotrockframe;
+ context._sub(context.ax, 1);
+ context._cmp(context.data.byte(65), 1);
+ if (!context.flags.z()) goto notgunonrock;
+ context.data.byte(65) = -1;
+ context.ax = 123;
+ goto gotrockframe;
+notgunonrock:
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
+ if (!context.flags.z()) goto gotrockframe;
+ context.data.byte(64) = 0;
+ context.ax = 79;
+gotrockframe:
+ context.data.word(context.bx+3) = context.ax;
+rockspeed:
+ showgamereel(context);
+ context._cmp(context.data.word(context.bx+3), 78);
+ if (!context.flags.z()) goto notalkrock;
+ addtopeoplelist(context);
+ context.data.byte(234) = 2;
+ context.data.word(21) = 0;
+ return;
+notalkrock:
+ context.data.word(21) = 2;
+ context.data.byte(234) = 0;
+ context.al = context.data.byte(149);
+ context.data.byte(context.bx+2) = context.al;
+ return;
+rockcombatend:
+ context.data.byte(188) = 45;
+ showgamereel(context);
+ return;
+}
+
+static inline void helicopter(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 203);
+ if (context.flags.z()) goto heliwon;
+ checkspeed(context);
+ if (!context.flags.z()) goto helispeed;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 53);
+ if (!context.flags.z()) goto notbeforehdead;
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 8);
+ if (context.flags.c()) goto waitabit;
+ context.data.byte(56) = 2;
+waitabit:
+ context.ax = 49;
+ goto gotheliframe;
+notbeforehdead:
+ context._cmp(context.ax, 9);
+ if (!context.flags.z()) goto gotheliframe;
+ context._sub(context.ax, 1);
+ context._cmp(context.data.byte(65), 1);
+ if (!context.flags.z()) goto notgunonheli;
+ context.data.byte(65) = -1;
+ context.ax = 55;
+ goto gotheliframe;
+notgunonheli:
+ context.ax = 5;
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 20);
+ if (!context.flags.z()) goto gotheliframe;
+ context.data.byte(64) = 0;
+ context.ax = 9;
+gotheliframe:
+ context.data.word(context.bx+3) = context.ax;
+helispeed:
+ showgamereel(context);
+ context.al = context.data.byte(148);
+ context.data.byte(context.bx+1) = context.al;
+helicombatend:
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 9);
+ if (!context.flags.c()) goto notwaitingheli;
+ context._cmp(context.data.byte(64), 7);
+ if (context.flags.c()) goto notwaitingheli;
+ context.data.byte(234) = 2;
+ context.data.word(21) = 0;
+ return;
+notwaitingheli:
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
+ return;
+heliwon:
+ context.data.byte(234) = 0;
+ return;
+}
+
+static inline void mugger(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 138);
+ if (context.flags.z()) goto endmugger1;
+ context._cmp(context.ax, 176);
+ if (context.flags.z()) goto endmugger2;
+ context._cmp(context.ax, 2);
+ if (!context.flags.z()) goto havesetwatch;
+ context.data.word(21) = 175*2;
+havesetwatch:
+ checkspeed(context);
+ if (!context.flags.z()) goto notmugger;
+ context._add(context.data.word(context.bx+3), 1);
+notmugger:
+ showgamereel(context);
+ context.al = context.data.byte(148);
+ context.data.byte(context.bx+1) = context.al;
+ return;
+endmugger1:
+ context.push(context.es);
+ context.push(context.bx);
+ createpanel2(context);
+ showicon(context);
+ context.al = 41;
+ findpuztext(context);
+ context.di = 33+20;
+ context.bx = 104;
+ context.dl = 241;
+ context.ah = 0;
+ printdirect(context);
+ worktoscreen(context);
+ context.cx = 300;
+ hangon(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.push(context.es);
+ context.push(context.bx);
+ context.data.word(context.bx+3) = 140;
+ context.data.byte(475) = 2;
+ context.data.byte(477) = 2;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ context.al = 'W';
+ context.ah = 'E';
+ context.cl = 'T';
+ context.ch = 'A';
+ findexobject(context);
+ context.data.byte(99) = context.al;
+ context.data.byte(102) = 4;
+ removeobfrominv(context);
+ context.al = 'W';
+ context.ah = 'E';
+ context.cl = 'T';
+ context.ch = 'B';
+ findexobject(context);
+ context.data.byte(99) = context.al;
+ context.data.byte(102) = 4;
+ removeobfrominv(context);
+ makemainscreen(context);
+ context.al = 48;
+ context.bl = 68-32;
+ context.bh = 54+64;
+ context.cx = 70;
+ context.dx = 10;
+ setuptimeduse(context);
+ context.data.byte(45) = 1;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+endmugger2:
+ return;
+}
+
+static inline void aide(Context & context) {
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void businessman(Context & context) {
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 2);
+ if (!context.flags.z()) goto notfirstbiz;
+ context.push(context.ax);
+ context.push(context.bx);
+ context.push(context.es);
+ context.al = 49;
+ context.cx = 30;
+ context.dx = 1;
+ context.bl = 68;
+ context.bh = 174;
+ setuptimeduse(context);
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.ax = context.pop();
+notfirstbiz:
+ context._cmp(context.ax, 95);
+ if (context.flags.z()) goto buscombatwonend;
+ context._cmp(context.ax, 49);
+ if (context.flags.z()) goto buscombatend;
+ checkspeed(context);
+ if (!context.flags.z()) goto busspeed;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 48);
+ if (!context.flags.z()) goto notbeforedeadb;
+ context.data.byte(56) = 2;
+ goto gotbusframe;
+notbeforedeadb:
+ context._cmp(context.ax, 15);
+ if (!context.flags.z()) goto buscombatwon;
+ context._sub(context.ax, 1);
+ context._cmp(context.data.byte(65), 3);
+ if (!context.flags.z()) goto notshieldonbus;
+ context.data.byte(65) = -1;
+ context.data.byte(64) = 0;
+ context.ax = 51;
+ goto gotbusframe;
+notshieldonbus:
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 20);
+ if (!context.flags.z()) goto gotbusframe;
+ context.data.byte(64) = 0;
+ context.ax = 15;
+ goto gotbusframe;
+buscombatwon:
+ context._cmp(context.ax, 91);
+ if (!context.flags.z()) goto gotbusframe;
+ context.push(context.bx);
+ context.push(context.es);
+ context.al = 0;
+ turnpathon(context);
+ context.al = 1;
+ turnpathon(context);
+ context.al = 2;
+ turnpathon(context);
+ context.al = 3;
+ turnpathoff(context);
+ context.data.byte(475) = 5;
+ context.data.byte(477) = 5;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.ax = 92;
+ goto gotbusframe;
+gotbusframe:
+ context.data.word(context.bx+3) = context.ax;
+busspeed:
+ showgamereel(context);
+ context.al = context.data.byte(149);
+ context.data.byte(context.bx+2) = context.al;
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 14);
+ if (!context.flags.z()) goto buscombatend;
+ context.data.word(21) = 0;
+ context.data.byte(234) = 2;
+ return;
+buscombatend:
+ return;
+buscombatwonend:
+ context.data.byte(234) = 0;
+ context.data.word(21) = 0;
+ return;
+}
+
+static inline void poolguard(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 214);
+ if (context.flags.z()) goto combatover2;
+ context._cmp(context.ax, 258);
+ if (context.flags.z()) goto combatover2;
+ context._cmp(context.ax, 185);
+ if (context.flags.z()) goto combatover1;
+ context._cmp(context.ax, 0);
+ if (!context.flags.z()) goto notfirstpool;
+ context.al = 0;
+ turnpathon(context);
+notfirstpool:
+ checkspeed(context);
+ if (!context.flags.z()) goto guardspeed;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 122);
+ if (!context.flags.z()) goto notendguard1;
+ context._sub(context.ax, 1);
+ context._cmp(context.data.byte(65), 2);
+ if (!context.flags.z()) goto notaxeonpool;
+ context.data.byte(65) = -1;
+ context.ax = 122;
+ goto gotguardframe;
+notaxeonpool:
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
+ if (!context.flags.z()) goto gotguardframe;
+ context.data.byte(64) = 0;
+ context.ax = 195;
+ goto gotguardframe;
+notendguard1:
+ context._cmp(context.ax, 147);
+ if (!context.flags.z()) goto gotguardframe;
+ context._sub(context.ax, 1);
+ context._cmp(context.data.byte(65), 1);
+ if (!context.flags.z()) goto notgunonpool;
+ context.data.byte(65) = -1;
+ context.ax = 147;
+ goto gotguardframe;
+notgunonpool:
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
+ if (!context.flags.z()) goto gotguardframe;
+ context.data.byte(64) = 0;
+ context.ax = 220;
+gotguardframe:
+ context.data.word(context.bx+3) = context.ax;
+guardspeed:
+ showgamereel(context);
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 121);
+ if (context.flags.z()) goto iswaitingpool;
+ context._cmp(context.ax, 146);
+ if (context.flags.z()) goto iswaitingpool;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
+ return;
+iswaitingpool:
+ context.data.byte(234) = 2;
+ context.data.word(21) = 0;
+ return;
+combatover1:
+ context.data.word(21) = 0;
+ context.data.byte(234) = 0;
+ context.al = 0;
+ turnpathon(context);
+ context.al = 1;
+ turnpathoff(context);
+ return;
+combatover2:
+ showgamereel(context);
+ context.data.word(21) = 2;
+ context.data.byte(234) = 0;
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 100);
+ if (context.flags.c()) goto doneover2;
+ context.data.word(21) = 0;
+ context.data.byte(56) = 2;
+doneover2:
+ return;
+}
+
+static inline void security(Context & context) {
+ context._cmp(context.data.word(context.bx+3), 32);
+ if (context.flags.z()) goto securwait;
+ context._cmp(context.data.word(context.bx+3), 69);
+ if (!context.flags.z()) goto notaftersec;
+ return;
+notaftersec:
+ context.data.word(21) = 10;
+ checkspeed(context);
+ if (!context.flags.z()) goto gotsecurframe;
+ context._add(context.data.word(context.bx+3), 1);
+ goto gotsecurframe;
+securwait:
+ context._cmp(context.data.byte(65), 1);
+ if (!context.flags.z()) goto gotsecurframe;
+ context.data.word(21) = 10;
+ context._cmp(context.data.byte(475), 9);
+ if (!context.flags.z()) goto gotsecurframe;
+ context._cmp(context.data.byte(133), 0);
+ if (!context.flags.z()) goto gotsecurframe;
+ context.data.byte(65) = -1;
+ context._add(context.data.word(context.bx+3), 1);
+gotsecurframe:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void heavy(Context & context) {
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 127);
+ context.data.byte(context.bx+7) = context.al;
+ context._cmp(context.data.word(context.bx+3), 43);
+ if (context.flags.z()) goto heavywait;
+ context.data.word(21) = 10;
+ context._cmp(context.data.word(context.bx+3), 70);
+ if (!context.flags.z()) goto notafterhshot;
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 80);
+ if (!context.flags.z()) goto gotheavyframe;
+ context.data.byte(56) = 2;
+ goto gotheavyframe;
+notafterhshot:
+ checkspeed(context);
+ if (!context.flags.z()) goto gotheavyframe;
+ context._add(context.data.word(context.bx+3), 1);
+ goto gotheavyframe;
+heavywait:
+ context._cmp(context.data.byte(65), 1);
+ if (!context.flags.z()) goto gotheavyframe;
+ context._cmp(context.data.byte(475), 5);
+ if (!context.flags.z()) goto gotheavyframe;
+ context._cmp(context.data.byte(133), 4);
+ if (!context.flags.z()) goto gotheavyframe;
+ context.data.byte(65) = -1;
+ context._add(context.data.word(context.bx+3), 1);
+ context.data.byte(64) = 0;
+gotheavyframe:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void bossman(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto notboss;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 4);
+ if (context.flags.z()) goto firstdes;
+ context._cmp(context.ax, 20);
+ if (context.flags.z()) goto secdes;
+ context._cmp(context.ax, 41);
+ if (!context.flags.z()) goto gotallboss;
+ context.ax = 0;
+ context._add(context.data.byte(46), 1);
+ context.data.byte(context.bx+7) = 10;
+ goto gotallboss;
+firstdes:
+ context._cmp(context.data.byte(46), 1);
+ if (context.flags.z()) goto gotallboss;
+ context.push(context.ax);
+ randomnumber(context);
+ context.cl = context.al;
+ context.ax = context.pop();
+ context._cmp(context.cl, 10);
+ if (context.flags.c()) goto gotallboss;
+ context.ax = 0;
+ goto gotallboss;
+secdes:
+ context._cmp(context.data.byte(46), 1);
+ if (context.flags.z()) goto gotallboss;
+ context.ax = 0;
+gotallboss:
+ context.data.word(context.bx+3) = context.ax;
+notboss:
+ showgamereel(context);
+ addtopeoplelist(context);
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 128);
+ if (context.flags.z()) goto nottalkedboss;
+ context.data.byte(50) = 1;
+nottalkedboss:
+ return;
+}
+
+static inline void gamer(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto gamerfin;
+gameragain:
+ randomnum1(context);
+ context._and(context.al, 7);
+ context._cmp(context.al, 5);
+ if (!context.flags.c()) goto gameragain;
+ context._add(context.al, 20);
+ context._cmp(context.al, context.data.byte(context.bx+3));
+ if (context.flags.z()) goto gameragain;
+ context.ah = 0;
+ context.data.word(context.bx+3) = context.ax;
+gamerfin:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void sparkydrip(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto cantdrip;
+ context.al = 14;
+ context.ah = 0;
+ playchannel0(context);
+cantdrip:
+ return;
+}
+
+static inline void carparkdrip(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto cantdrip2;
+ context.al = 14;
+ playchannel1(context);
+cantdrip2:
+ return;
+}
+
+static inline void keeper(Context & context) {
+ context._cmp(context.data.byte(54), 0);
+ if (!context.flags.z()) goto notwaiting;
+ context._cmp(context.data.word(23), 190);
+ if (context.flags.c()) goto waiting;
+ context._add(context.data.byte(54), 1);
+ context.ah = context.data.byte(context.bx+7);
+ context._and(context.ah, 127);
+ context._cmp(context.ah, context.data.byte(66));
+ if (context.flags.z()) goto notdiff;
+ context.al = context.data.byte(66);
+ context.data.byte(context.bx+7) = context.al;
+notdiff:
+ return;
+notwaiting:
+ addtopeoplelist(context);
+ showgamereel(context);
+waiting:
+ return;
+}
+
+static inline void candles1(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto candle1;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 44);
+ if (!context.flags.z()) goto notendcandle1;
+ context.ax = 39;
+notendcandle1:
+ context.data.word(context.bx+3) = context.ax;
+candle1:
+ showgamereel(context);
+ return;
+}
+
+static inline void smallcandle(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto smallcandlef;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 37);
+ if (!context.flags.z()) goto notendsmallcandle;
+ context.ax = 25;
+notendsmallcandle:
+ context.data.word(context.bx+3) = context.ax;
+smallcandlef:
+ showgamereel(context);
+ return;
+}
+
+static inline void intromagic1(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto introm1fin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 145);
+ if (!context.flags.z()) goto gotintrom1;
+ context.ax = 121;
+gotintrom1:
+ context.data.word(context.bx+3) = context.ax;
+ context._cmp(context.ax, 121);
+ if (!context.flags.z()) goto introm1fin;
+ context._add(context.data.byte(139), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ intro1text(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(139), 8);
+ if (!context.flags.z()) goto introm1fin;
+ context._add(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
+introm1fin:
+ showgamereel(context);
+ return;
+}
+
+static inline void candles(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto candlesfin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 167);
+ if (!context.flags.z()) goto gotcandles;
+ context.ax = 162;
+gotcandles:
+ context.data.word(context.bx+3) = context.ax;
+candlesfin:
+ showgamereel(context);
+ return;
+}
+
+static inline void candles2(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto candles2fin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 238);
+ if (!context.flags.z()) goto gotcandles2;
+ context.ax = 233;
+gotcandles2:
+ context.data.word(context.bx+3) = context.ax;
+candles2fin:
+ showgamereel(context);
+ return;
+}
+
+static inline void gates(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto gatesfin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 116);
+ if (!context.flags.z()) goto notbang;
+ context.push(context.ax);
+ context.push(context.bx);
+ context.push(context.es);
+ context.al = 17;
+ playchannel1(context);
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.ax = context.pop();
+notbang:
+ context._cmp(context.ax, 110);
+ if (context.flags.c()) goto slowgates;
+ context.data.byte(context.bx+5) = 2;
+slowgates:
+ context._cmp(context.ax, 120);
+ if (!context.flags.z()) goto gotgates;
+ context.data.byte(103) = 1;
+ context.ax = 119;
+gotgates:
+ context.data.word(context.bx+3) = context.ax;
+ context.push(context.es);
+ context.push(context.bx);
+ intro3text(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+gatesfin:
+ showgamereel(context);
+ return;
+}
+
+static inline void intromagic2(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto introm2fin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 216);
+ if (!context.flags.z()) goto gotintrom2;
+ context.ax = 192;
+gotintrom2:
+ context.data.word(context.bx+3) = context.ax;
+introm2fin:
+ showgamereel(context);
+ return;
+}
+
+static inline void intromagic3(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto introm3fin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 218);
+ if (!context.flags.z()) goto gotintrom3;
+ context.data.byte(103) = 1;
+gotintrom3:
+ context.data.word(context.bx+3) = context.ax;
+introm3fin:
+ showgamereel(context);
+ context.al = context.data.byte(148);
+ context.data.byte(context.bx+1) = context.al;
+ return;
+}
+
+static inline void intromonks1(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto intromonk1fin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 80);
+ if (!context.flags.z()) goto notendmonk1;
+ context._add(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
+ showgamereel(context);
+ return;
+notendmonk1:
+ context._cmp(context.ax, 30);
+ if (!context.flags.z()) goto gotintromonk1;
+ context._sub(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
+ context.ax = 51;
+gotintromonk1:
+ context.data.word(context.bx+3) = context.ax;
+ context._cmp(context.ax, 5);
+ if (context.flags.z()) goto waitstep;
+ context._cmp(context.ax, 15);
+ if (context.flags.z()) goto waitstep;
+ context._cmp(context.ax, 25);
+ if (context.flags.z()) goto waitstep;
+ context._cmp(context.ax, 61);
+ if (context.flags.z()) goto waitstep;
+ context._cmp(context.ax, 71);
+ if (context.flags.z()) goto waitstep;
+ goto intromonk1fin;
+waitstep:
+ context.push(context.es);
+ context.push(context.bx);
+ intro2text(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.data.byte(context.bx+6) = -20;
+intromonk1fin:
+ showgamereel(context);
+ context.al = context.data.byte(149);
+ context.data.byte(context.bx+2) = context.al;
+ return;
+}
+
+static inline void intromonks2(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto intromonk2fin;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 87);
+ if (!context.flags.z()) goto nottalk1;
+ context._add(context.data.byte(139), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ monks2text(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(139), 19);
+ if (!context.flags.z()) goto notlasttalk1;
+ context.ax = 87;
+ goto gotintromonk2;
+notlasttalk1:
+ context.ax = 74;
+ goto gotintromonk2;
+nottalk1:
+ context._cmp(context.ax, 110);
+ if (!context.flags.z()) goto notraisearm;
+ context._add(context.data.byte(139), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ monks2text(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(139), 35);
+ if (!context.flags.z()) goto notlastraise;
+ context.ax = 111;
+ goto gotintromonk2;
+notlastraise:
+ context.ax = 98;
+ goto gotintromonk2;
+notraisearm:
+ context._cmp(context.ax, 176);
+ if (!context.flags.z()) goto notendmonk2;
+ context.data.byte(103) = 1;
+ goto gotintromonk2;
+notendmonk2:
+ context._cmp(context.ax, 125);
+ if (!context.flags.z()) goto gotintromonk2;
+ context.ax = 140;
+gotintromonk2:
+ context.data.word(context.bx+3) = context.ax;
+intromonk2fin:
+ showgamereel(context);
+ return;
+}
+
+static inline void handclap(Context & context) {
+ return;
+}
+
+static inline void monks2text(Context & context) {
+ context._cmp(context.data.byte(139), 1);
+ if (!context.flags.z()) goto notmonk2text1;
+ context.al = 8;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text1:
+ context._cmp(context.data.byte(139), 4);
+ if (!context.flags.z()) goto notmonk2text2;
+ context.al = 9;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text2:
+ context._cmp(context.data.byte(139), 7);
+ if (!context.flags.z()) goto notmonk2text3;
+ context.al = 10;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text3:
+ context._cmp(context.data.byte(139), 10);
+ if (!context.flags.z()) goto notmonk2text4;
+ context.al = 11;
+ context.bl = 0;
+ context.bh = 105;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text4:
+ context._cmp(context.data.byte(139), 13);
+ if (!context.flags.z()) goto notmonk2text5;
+ context.al = 12;
+ context.bl = 0;
+ context.bh = 120;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text5:
+ context._cmp(context.data.byte(139), 16);
+ if (!context.flags.z()) goto notmonk2text6;
+ context.al = 13;
+ context.bl = 0;
+ context.bh = 135;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text6:
+ context._cmp(context.data.byte(139), 19);
+ if (!context.flags.z()) goto notmonk2text7;
+ context.al = 14;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ context.dx = 1;
+ context.ah = 82;
+ { setuptimedtemp(context); return; };
+notmonk2text7:
+ context._cmp(context.data.byte(139), 22);
+ if (!context.flags.z()) goto notmonk2text8;
+ context.al = 15;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text8:
+ context._cmp(context.data.byte(139), 25);
+ if (!context.flags.z()) goto notmonk2text9;
+ context.al = 16;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text9:
+ context._cmp(context.data.byte(139), 28);
+ if (!context.flags.z()) goto notmonk2text10;
+ context.al = 17;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text10:
+ context._cmp(context.data.byte(139), 31);
+ if (!context.flags.z()) goto notmonk2text11;
+ context.al = 18;
+ context.bl = 36;
+ context.bh = 160;
+ context.cx = 100;
+ goto gotmonks2text;
+notmonk2text11:
+ return;
+gotmonks2text:
+ context.dx = 1;
+ context.cx = 120;
+ context.ah = 82;
+ setuptimedtemp(context);
+ return;
+}
+
+static inline void intro1text(Context & context) {
+ context._cmp(context.data.byte(139), 2);
+ if (!context.flags.z()) goto notintro1text1;
+ context.al = 40;
+ context.bl = 34;
+ context.bh = 130;
+ context.cx = 90;
+ goto gotintro1text;
+notintro1text1:
+ context._cmp(context.data.byte(139), 4);
+ if (!context.flags.z()) goto notintro1text2;
+ context.al = 41;
+ context.bl = 34;
+ context.bh = 130;
+ context.cx = 90;
+ goto gotintro1text;
+notintro1text2:
+ context._cmp(context.data.byte(139), 6);
+ if (!context.flags.z()) goto notintro1text3;
+ context.al = 42;
+ context.bl = 34;
+ context.bh = 130;
+ context.cx = 90;
+ goto gotintro1text;
+notintro1text3:
+ return;
+gotintro1text:
+ context.dx = 1;
+ context.ah = 82;
+oktalk2:
+ setuptimedtemp(context);
+ return;
+}
+
+static inline void intro2text(Context & context) {
+ context._cmp(context.ax, 5);
+ if (!context.flags.z()) goto notintro2text1;
+ context.al = 43;
+ context.bl = 34;
+ context.bh = 40;
+ context.cx = 90;
+ goto gotintro2text;
+notintro2text1:
+ context._cmp(context.ax, 15);
+ if (!context.flags.z()) goto notintro2text2;
+ context.al = 44;
+ context.bl = 34;
+ context.bh = 40;
+ context.cx = 90;
+ goto gotintro2text;
+notintro2text2:
+ return;
+gotintro2text:
+ context.dx = 1;
+ context.ah = 82;
+ setuptimedtemp(context);
+ return;
+}
+
+static inline void intro3text(Context & context) {
+ context._cmp(context.ax, 107);
+ if (!context.flags.z()) goto notintro3text1;
+ context.al = 45;
+ context.bl = 36;
+ context.bh = 56;
+ context.cx = 100;
+ goto gotintro3text;
+notintro3text1:
+ context._cmp(context.ax, 109);
+ if (!context.flags.z()) goto notintro3text2;
+ context.al = 46;
+ context.bl = 36;
+ context.bh = 56;
+ context.cx = 100;
+ goto gotintro3text;
+notintro3text2:
+ return;
+gotintro3text:
+ context.dx = 1;
+ context.ah = 82;
+ setuptimedtemp(context);
+ return;
+}
+
+static inline void monkandryan(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto notmonkryan;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 83);
+ if (!context.flags.z()) goto gotmonkryan;
+ context._add(context.data.byte(139), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ textformonk(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ax = 77;
+ context._cmp(context.data.byte(139), 57);
+ if (!context.flags.z()) goto gotmonkryan;
+ context.data.byte(103) = 1;
+ return;
+gotmonkryan:
+ context.data.word(context.bx+3) = context.ax;
+notmonkryan:
+ showgamereel(context);
+ return;
+}
+
+static inline void endgameseq(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto notendseq;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 51);
+ if (!context.flags.z()) goto gotendseq;
+ context._cmp(context.data.byte(139), 140);
+ if (context.flags.z()) goto gotendseq;
+ context._add(context.data.byte(139), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ textforend(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ax = 50;
+gotendseq:
+ context.data.word(context.bx+3) = context.ax;
+ context._cmp(context.ax, 134);
+ if (!context.flags.z()) goto notfadedown;
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.ax);
+ fadescreendownhalf(context);
+ context.ax = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+ goto notendseq;
+notfadedown:
+ context._cmp(context.ax, 324);
+ if (!context.flags.z()) goto notfadeend;
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.ax);
+ fadescreendowns(context);
+ context.data.byte(387) = 7;
+ context.data.byte(388) = 1;
+ context.ax = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+notfadeend:
+ context._cmp(context.ax, 340);
+ if (!context.flags.z()) goto notendseq;
+ context.data.byte(103) = 1;
+notendseq:
+ showgamereel(context);
+ context.al = context.data.byte(149);
+ context.data.byte(context.bx+2) = context.al;
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 145);
+ if (!context.flags.z()) goto notendcreds;
+ context.data.word(context.bx+3) = 146;
+ rollendcredits(context);
+notendcreds:
+ return;
+}
+
+static inline void rollendcredits(Context & context) {
+ context.al = 16;
+ context.ah = 255;
+ playchannel0(context);
+ context.data.byte(386) = 7;
+ context.data.byte(387) = 0;
+ context.data.byte(388) = -1;
+ context.cl = 160;
+ context.ch = 160;
+ context.di = 75;
+ context.bx = 20;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ multiget(context);
+ context.es = context.data.word(466);
+ context.si = 3*2;
+ context.ax = context.data.word(context.si);
+ context.si = context.ax;
+ context._add(context.si, 66*2);
+ context.cx = 254;
+endcredits1:
+ context.push(context.cx);
+ context.bx = 10;
+ context.cx = context.data.word(77);
+endcredits2:
+ context.push(context.cx);
+ context.push(context.si);
+ context.push(context.di);
+ context.push(context.es);
+ context.push(context.bx);
+ vsync(context);
+ context.cl = 160;
+ context.ch = 160;
+ context.di = 75;
+ context.bx = 20;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ multiput(context);
+ vsync(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.di = context.pop();
+ context.si = context.pop();
+ context.push(context.si);
+ context.push(context.di);
+ context.push(context.es);
+ context.push(context.bx);
+ context.cx = 18;
+onelot:
+ context.push(context.cx);
+ context.di = 75;
+ context.dx = 161;
+ context.ax = 0;
+ printdirect(context);
+ context._add(context.bx, context.data.word(77));
+ context.cx = context.pop();
+ if (--context.cx) goto onelot;
+ vsync(context);
+ context.cl = 160;
+ context.ch = 160;
+ context.di = 75;
+ context.bx = 20;
+ multidump(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.di = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
+ context._sub(context.bx, 1);
+ if (--context.cx) goto endcredits2;
+ context.cx = context.pop();
+looknext:
+ context.al = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto gotnext;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto gotnext;
+ goto looknext;
+gotnext:
+ if (--context.cx) goto endcredits1;
+ context.cx = 100;
+ hangon(context);
+ paneltomap(context);
+ fadescreenuphalf(context);
+ return;
+}
+
+static inline void priest(Context & context) {
+ context._cmp(context.data.word(context.bx+3), 8);
+ if (context.flags.z()) goto priestspoken;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
+ checkspeed(context);
+ if (!context.flags.z()) goto priestwait;
+ context._add(context.data.word(context.bx+3), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ priesttext(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+priestwait:
+ return;
+priestspoken:
+ return;
+}
+
+static inline void madmanstelly(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 307);
+ if (!context.flags.z()) goto notendtelly;
+ context.ax = 300;
+notendtelly:
+ context.data.word(context.bx+3) = context.ax;
+ showgamereel(context);
+ return;
+}
+
+static inline void madman(Context & context) {
+ context.data.word(21) = 2;
+ checkspeed(context);
+ if (!context.flags.z()) goto nomadspeed;
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 364);
+ if (!context.flags.c()) goto ryansded;
+ context._cmp(context.ax, 10);
+ if (!context.flags.z()) goto notfirstmad;
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.ax);
+ context.dx = 2260;
+ loadtemptext(context);
+ context.ax = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.data.byte(64) = -1;
+ context.data.byte(69) = 0;
+notfirstmad:
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 294);
+ if (context.flags.z()) goto madmanspoken;
+ context._cmp(context.ax, 66);
+ if (!context.flags.z()) goto nomadspeak;
+ context._add(context.data.byte(64), 1);
+ context.push(context.es);
+ context.push(context.bx);
+ madmantext(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ax = 53;
+ context._cmp(context.data.byte(64), 62);
+ if (context.flags.c()) goto nomadspeak;
+ context._cmp(context.data.byte(64), 68);
+ if (context.flags.z()) goto killryan;
+ context._cmp(context.data.byte(65), 8);
+ if (!context.flags.z()) goto nomadspeak;
+ context.data.byte(64) = 70;
+ context.data.byte(65) = -1;
+ context.data.byte(53) = 1;
+ context.ax = 67;
+ goto nomadspeak;
+killryan:
+ context.ax = 310;
+nomadspeak:
+ context.data.word(context.bx+3) = context.ax;
+nomadspeed:
+ showgamereel(context);
+ context.al = context.data.byte(148);
+ context.data.byte(context.bx+1) = context.al;
+ madmode(context);
+ return;
+madmanspoken:
+ context._cmp(context.data.byte(391), 1);
+ if (context.flags.z()) goto alreadywon;
+ context.data.byte(391) = 1;
+ context.push(context.es);
+ context.push(context.bx);
+ getridoftemptext(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+alreadywon:
+ return;
+ryansded:
+ context.data.byte(56) = 2;
+ showgamereel(context);
+ return;
+}
+
+static inline void madmantext(Context & context) {
+ context._cmp(context.data.byte(64), 61);
+ if (!context.flags.c()) goto nomadtext;
+ context.al = context.data.byte(64);
+ context._and(context.al, 3);
+ if (!context.flags.z()) goto nomadtext;
+ context.al = context.data.byte(64);
+ context._shr(context.al, 1);
+ context._shr(context.al, 1);
+ context._add(context.al, 47);
+ context.bl = 72;
+ context.bh = 80;
+ context.cx = 90;
+ context.dx = 1;
+ context.ah = 82;
+ setuptimedtemp(context);
+nomadtext:
+ return;
+}
+
+static inline void madmode(Context & context) {
+ context.data.word(21) = 2;
+ context.data.byte(234) = 0;
+ context._cmp(context.data.byte(64), 63);
+ if (context.flags.c()) goto iswatchmad;
+ context._cmp(context.data.byte(64), 68);
+ if (!context.flags.c()) goto iswatchmad;
+ context.data.byte(234) = 2;
+iswatchmad:
+ return;
+}
+
+static inline void priesttext(Context & context) {
+ context._cmp(context.data.word(context.bx+3), 2);
+ if (context.flags.c()) goto nopriesttext;
+ context._cmp(context.data.word(context.bx+3), 7);
+ if (!context.flags.c()) goto nopriesttext;
+ context.al = context.data.byte(context.bx+3);
+ context._and(context.al, 1);
+ if (!context.flags.z()) goto nopriesttext;
+ context.al = context.data.byte(context.bx+3);
+ context._shr(context.al, 1);
+ context._add(context.al, 50);
+ context.bl = 72;
+ context.bh = 80;
+ context.cx = 54;
+ context.dx = 1;
+ setuptimeduse(context);
+nopriesttext:
+ return;
+}
+
+static inline void textforend(Context & context) {
+ context._cmp(context.data.byte(139), 20);
+ if (!context.flags.z()) goto notendtext1;
+ context.al = 0;
+ context.bl = 34;
+ context.bh = 20;
+ context.cx = 60;
+ goto gotendtext;
+notendtext1:
+ context._cmp(context.data.byte(139), 65);
+ if (!context.flags.z()) goto notendtext2;
+ context.al = 1;
+ context.bl = 34;
+ context.bh = 20;
+ context.cx = 60;
+ goto gotendtext;
+notendtext2:
+ context._cmp(context.data.byte(139), 110);
+ if (!context.flags.z()) goto notendtext3;
+ context.al = 2;
+ context.bl = 34;
+ context.bh = 20;
+ context.cx = 60;
+ goto gotendtext;
+notendtext3:
+ return;
+gotendtext:
+ context.dx = 1;
+ context.ah = 83;
+ setuptimedtemp(context);
+ return;
+}
+
+static inline void textformonk(Context & context) {
+ context._cmp(context.data.byte(139), 1);
+ if (!context.flags.z()) goto notmonktext1;
+ context.al = 19;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext1:
+ context._cmp(context.data.byte(139), 5);
+ if (!context.flags.z()) goto notmonktext2;
+ context.al = 20;
+ context.bl = 68;
+ context.bh = 38;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext2:
+ context._cmp(context.data.byte(139), 9);
+ if (!context.flags.z()) goto notmonktext3;
+ context.al = 21;
+ context.bl = 48;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext3:
+ context._cmp(context.data.byte(139), 13);
+ if (!context.flags.z()) goto notmonktext4;
+ context.al = 22;
+ context.bl = 68;
+ context.bh = 38;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext4:
+ context._cmp(context.data.byte(139), 17);
+ if (!context.flags.z()) goto notmonktext5;
+ context.al = 23;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext5:
+ context._cmp(context.data.byte(139), 21);
+ if (!context.flags.z()) goto notmonktext6;
+ context.al = 24;
+ context.bl = 68;
+ context.bh = 38;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext6:
+ context._cmp(context.data.byte(139), 25);
+ if (!context.flags.z()) goto notmonktext7;
+ context.al = 25;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext7:
+ context._cmp(context.data.byte(139), 29);
+ if (!context.flags.z()) goto notmonktext8;
+ context.al = 26;
+ context.bl = 68;
+ context.bh = 38;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext8:
+ context._cmp(context.data.byte(139), 33);
+ if (!context.flags.z()) goto notmonktext9;
+ context.al = 27;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext9:
+ context._cmp(context.data.byte(139), 37);
+ if (!context.flags.z()) goto notmonktext10;
+ context.al = 28;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext10:
+ context._cmp(context.data.byte(139), 41);
+ if (!context.flags.z()) goto notmonktext11;
+ context.al = 29;
+ context.bl = 68;
+ context.bh = 38;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext11:
+ context._cmp(context.data.byte(139), 45);
+ if (!context.flags.z()) goto notmonktext12;
+ context.al = 30;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 120;
+ goto gotmonktext;
+notmonktext12:
+ context._cmp(context.data.byte(139), 49);
+ if (!context.flags.z()) goto notmonktext13;
+ context.al = 31;
+ context.bl = 68;
+ context.bh = 154;
+ context.cx = 220;
+ goto gotmonktext;
+notmonktext13:
+ context._cmp(context.data.byte(139), 53);
+ if (!context.flags.z()) goto notendtitles;
+ fadescreendowns(context);
+notendtitles:
+ return;
+gotmonktext:
+ context.dx = 1;
+ context.ah = 82;
+oktalk:
+ setuptimedtemp(context);
+ return;
+}
+
+static inline void drunk(Context & context) {
+ context._cmp(context.data.byte(42), 0);
+ if (!context.flags.z()) goto trampgone;
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 127);
+ context.data.byte(context.bx+7) = context.al;
+ showgamereel(context);
+ addtopeoplelist(context);
+trampgone:
+ return;
+}
+
+static inline void advisor(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto noadvisor;
+ goto noadvisor;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 123);
+ if (!context.flags.z()) goto notendadvis;
+ context.ax = 106;
+ goto gotadvframe;
+notendadvis:
+ context._cmp(context.ax, 108);
+ if (!context.flags.z()) goto gotadvframe;
+ context.push(context.ax);
+ randomnumber(context);
+ context.cl = context.al;
+ context.ax = context.pop();
+ context._cmp(context.cl, 3);
+ if (context.flags.c()) goto gotadvframe;
+ context.ax = 106;
+gotadvframe:
+ context.data.word(context.bx+3) = context.ax;
+noadvisor:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void copper(Context & context) {
+ checkspeed(context);
+ if (!context.flags.z()) goto nocopper;
+ context.ax = context.data.word(context.bx+3);
+ context._add(context.ax, 1);
+ context._cmp(context.ax, 94);
+ if (!context.flags.z()) goto notendcopper;
+ context.ax = 64;
+ goto gotcopframe;
+notendcopper:
+ context._cmp(context.ax, 81);
+ if (context.flags.z()) goto mightwait;
+ context._cmp(context.ax, 66);
+ if (!context.flags.z()) goto gotcopframe;
+mightwait:
+ context.push(context.ax);
+ randomnumber(context);
+ context.cl = context.al;
+ context.ax = context.pop();
+ context._cmp(context.cl, 7);
+ if (context.flags.c()) goto gotcopframe;
+ context._sub(context.ax, 1);
+gotcopframe:
+ context.data.word(context.bx+3) = context.ax;
+nocopper:
+ showgamereel(context);
+ addtopeoplelist(context);
+ return;
+}
+
+static inline void sparky(Context & context) {
+ context._cmp(context.data.word(16), 0);
+ if (context.flags.z()) goto animsparky;
+ context.data.byte(context.bx+7) = 3;
+ goto animsparky;
+animsparky:
+ checkspeed(context);
+ if (!context.flags.z()) goto finishsparky;
+ context._cmp(context.data.word(context.bx+3), 34);
+ if (!context.flags.z()) goto notsparky1;
+ randomnumber(context);
+ context._cmp(context.al, 30);
+ if (context.flags.c()) goto dosparky;
+ context.data.word(context.bx+3) = 27;
+ goto finishsparky;
+notsparky1:
+ context._cmp(context.data.word(context.bx+3), 48);
+ if (!context.flags.z()) goto dosparky;
+ context.data.word(context.bx+3) = 27;
+ goto finishsparky;
+dosparky:
+ context._add(context.data.word(context.bx+3), 1);
+finishsparky:
+ showgamereel(context);
+ addtopeoplelist(context);
+ context.al = context.data.byte(context.bx+7);
+ context._and(context.al, 128);
+ if (context.flags.z()) goto nottalkedsparky;
+ context.data.byte(49) = 1;
+nottalkedsparky:
+ return;
+}
+
+static inline void train(Context & context) {
+ return;
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 21);
+ if (!context.flags.c()) goto notrainyet;
+ context._add(context.ax, 1);
+ goto gottrainframe;
+notrainyet:
+ randomnumber(context);
+ context._cmp(context.al, 253);
+ if (context.flags.c()) goto notrainatall;
+ context._cmp(context.data.byte(475), 5);
+ if (!context.flags.z()) goto notrainatall;
+ context._cmp(context.data.byte(477), 5);
+ if (!context.flags.z()) goto notrainatall;
+ context.ax = 5;
+gottrainframe:
+ context.data.word(context.bx+3) = context.ax;
+ showgamereel(context);
+notrainatall:
+ return;
+}
+
+static inline void addtopeoplelist(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.bx);
+ context.cl = context.data.byte(context.bx+7);
+ context.ax = context.data.word(context.bx+3);
+ context.bx = context.data.word(18);
+ context.es = context.data.word(412);
+ context.data.word(context.bx) = context.ax;
+ context.ax = context.pop();
+ context.data.word(context.bx+2) = context.ax;
+ context.data.byte(context.bx+4) = context.cl;
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._add(context.data.word(18), 5);
+ return;
+}
+
+static inline void showgamereel(Context & context) {
+ context.ax = context.data.word(context.bx+3);
+ context._cmp(context.ax, 512);
+ if (!context.flags.c()) goto noshow;
+ context.data.word(239) = context.ax;
+ context.push(context.es);
+ context.push(context.bx);
+ plotreel(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ax = context.data.word(239);
+ context.data.word(context.bx+3) = context.ax;
+noshow:
+ return;
+}
+
+static inline void checkspeed(Context & context) {
+ context._cmp(context.data.byte(65), -1);
+ if (!context.flags.z()) goto forcenext;
+ context._add(context.data.byte(context.bx+6), 1);
+ context.al = context.data.byte(context.bx+6);
+ context._cmp(context.al, context.data.byte(context.bx+5));
+ if (!context.flags.z()) goto notspeed;
+ context.al = 0;
+ context.data.byte(context.bx+6) = context.al;
+ context._cmp(context.al, context.al);
+notspeed:
+ return;
+forcenext:
+ context._cmp(context.al, context.al);
+ return;
+}
+
+static inline void delsprite(Context & context) {
+ context.di = context.bx;
+ context.cx = 32;
+ context.al = 255;
+ while(--context.cx) context._stosb();
+ return;
+}
+
+static inline void mainman(Context & context) {
+ context._cmp(context.data.byte(187), 1);
+ if (!context.flags.z()) goto notinnewroom;
+ context.data.byte(187) = 0;
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
+ context.data.word(context.bx+10) = context.ax;
+ context.data.byte(context.bx+29) = 0;
+ goto executewalk;
+notinnewroom:
+ context._sub(context.data.byte(context.bx+22), 1);
+ context._cmp(context.data.byte(context.bx+22), -1);
+ if (context.flags.z()) goto executewalk;
+ return;
+executewalk:
+ context.data.byte(context.bx+22) = 0;
+ context.al = context.data.byte(135);
+ context._cmp(context.al, context.data.byte(133));
+ if (context.flags.z()) goto facingok;
+ aboutturn(context);
+ goto notwalk;
+facingok:
+ context._cmp(context.data.byte(136), 0);
+ if (context.flags.z()) goto alreadyturned;
+ context._cmp(context.data.byte(492), 254);
+ if (!context.flags.z()) goto alreadyturned;
+ context.data.byte(473) = 1;
+ context.al = context.data.byte(133);
+ context._cmp(context.al, context.data.byte(134));
+ if (!context.flags.z()) goto alreadyturned;
+ checkforexit(context);
+alreadyturned:
+ context.data.byte(136) = 0;
+ context._cmp(context.data.byte(492), 254);
+ if (!context.flags.z()) goto walkman;
+ context.data.byte(context.bx+29) = 0;
+ goto notwalk;
+walkman:
+ context.al = context.data.byte(context.bx+29);
+ context._add(context.al, 1);
+ context._cmp(context.al, 11);
+ if (!context.flags.z()) goto notanimend1;
+ context.al = 1;
+notanimend1:
+ context.data.byte(context.bx+29) = context.al;
+ walking(context);
+ context._cmp(context.data.byte(492), 254);
+ if (context.flags.z()) goto afterwalk;
+ context.al = context.data.byte(133);
+ context._and(context.al, 1);
+ if (context.flags.z()) goto isdouble;
+ context.al = context.data.byte(context.bx+29);
+ context._cmp(context.al, 2);
+ if (context.flags.z()) goto afterwalk;
+ context._cmp(context.al, 7);
+ if (context.flags.z()) goto afterwalk;
+isdouble:
+ walking(context);
+afterwalk:
+ context._cmp(context.data.byte(492), 254);
+ if (!context.flags.z()) goto notwalk;
+ context.al = context.data.byte(135);
+ context._cmp(context.al, context.data.byte(133));
+ if (!context.flags.z()) goto notwalk;
+ context.data.byte(473) = 1;
+ context.al = context.data.byte(133);
+ context._cmp(context.al, context.data.byte(134));
+ if (!context.flags.z()) goto notwalk;
+ checkforexit(context);
+notwalk:
+ context.al = context.data.byte(133);
+ context.ah = 0;
+ context.di = 1105;
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(context.di);
+ context._add(context.al, context.data.byte(context.bx+29));
+ context.data.byte(context.bx+15) = context.al;
+ context.ax = context.data.word(context.bx+10);
+ context.data.byte(151) = context.al;
+ context.data.byte(152) = context.ah;
+ return;
+}
+
+static inline void aboutturn(Context & context) {
+ context._cmp(context.data.byte(136), 1);
+ if (context.flags.z()) goto incdir;
+ context._cmp(context.data.byte(136), -1);
+ if (context.flags.z()) goto decdir;
+ context.al = context.data.byte(133);
+ context._sub(context.al, context.data.byte(135));
+ if (!context.flags.c()) goto higher;
+ context._neg(context.al);
+ context._cmp(context.al, 4);
+ if (!context.flags.c()) goto decdir;
+ goto incdir;
+higher:
+ context._cmp(context.al, 4);
+ if (!context.flags.c()) goto incdir;
+ goto decdir;
+incdir:
+ context.data.byte(136) = 1;
+ context.al = context.data.byte(133);
+ context._add(context.al, 1);
+ context._and(context.al, 7);
+ context.data.byte(133) = context.al;
+ context.data.byte(context.bx+29) = 0;
+ return;
+decdir:
+ context.data.byte(136) = -1;
+ context.al = context.data.byte(133);
+ context._sub(context.al, 1);
+ context._and(context.al, 7);
+ context.data.byte(133) = context.al;
+ context.data.byte(context.bx+29) = 0;
+ return;
+}
+
+static inline void walking(Context & context) {
+ context._cmp(context.data.byte(493), 0);
+ if (context.flags.z()) goto normalwalk;
+ context.al = context.data.byte(492);
+ context._sub(context.al, 1);
+ context.data.byte(492) = context.al;
+ context._cmp(context.al, 200);
+ if (!context.flags.c()) goto endofline;
+ goto continuewalk;
+normalwalk:
+ context.al = context.data.byte(492);
+ context._add(context.al, 1);
+ context.data.byte(492) = context.al;
+ context._cmp(context.al, context.data.byte(494));
+ if (!context.flags.c()) goto endofline;
+continuewalk:
+ context.ah = 0;
+ context._add(context.ax, context.ax);
+ context.push(context.es);
+ context.push(context.bx);
+ context.dx = context.ds;
+ context.es = context.dx;
+ context.bx = 8344;
+ context._add(context.bx, context.ax);
+ context.ax = context.data.word(context.bx);
+ context.bx = context.pop();
+ context.es = context.pop();
+stillline:
+ context.data.word(context.bx+10) = context.ax;
+ return;
+endofline:
+ context.data.byte(492) = 254;
+ context.al = context.data.byte(478);
+ context.data.byte(475) = context.al;
+ context._cmp(context.al, context.data.byte(477));
+ if (context.flags.z()) goto finishedwalk;
+ context.al = context.data.byte(477);
+ context.data.byte(478) = context.al;
+ context.push(context.es);
+ context.push(context.bx);
+ autosetwalk(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+finishedwalk:
+ facerightway(context);
+ return;
+}
+
+static inline void checkforexit(Context & context) {
+ context.cl = context.data.byte(151);
+ context._add(context.cl, 12);
+ context.ch = context.data.byte(152);
+ context._add(context.ch, 12);
+ checkone(context);
+ context.data.byte(153) = context.cl;
+ context.data.byte(154) = context.ch;
+ context.data.byte(155) = context.dl;
+ context.data.byte(156) = context.dh;
+ context.al = context.data.byte(153);
+ context._test(context.al, 64);
+ if (context.flags.z()) goto notnewdirect;
+ context.al = context.data.byte(154);
+ context.data.byte(189) = context.al;
+ return;
+notnewdirect:
+ context._test(context.al, 32);
+ if (context.flags.z()) goto notleave;
+ context.push(context.es);
+ context.push(context.bx);
+ context._cmp(context.data.byte(184), 2);
+ if (!context.flags.z()) goto notlouis;
+ context.bl = 0;
+ context.push(context.bx);
+ context.al = 'W';
+ context.ah = 'E';
+ context.cl = 'T';
+ context.ch = 'A';
+ isryanholding(context);
+ context.bx = context.pop();
+ if (context.flags.z()) goto noshoe1;
+ context._add(context.bl, 1);
+noshoe1:
+ context.push(context.bx);
+ context.al = 'W';
+ context.ah = 'E';
+ context.cl = 'T';
+ context.ch = 'B';
+ isryanholding(context);
+ context.bx = context.pop();
+ if (context.flags.z()) goto noshoe2;
+ context._add(context.bl, 1);
+noshoe2:
+ context._cmp(context.bl, 2);
+ if (context.flags.z()) goto notlouis;
+ context.al = 42;
+ context._cmp(context.bl, 0);
+ if (context.flags.z()) goto notravmessage;
+ context._add(context.al, 1);
+notravmessage:
+ context.cx = 80;
+ context.dx = 10;
+ context.bl = 68;
+ context.bh = 64;
+ setuptimeduse(context);
+ context.al = context.data.byte(133);
+ context._add(context.al, 4);
+ context._and(context.al, 7);
+ context.data.byte(135) = context.al;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+notlouis:
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.data.byte(60) = 1;
+ return;
+notleave:
+ context._test(context.al, 4);
+ if (context.flags.z()) goto notaleft;
+ adjustleft(context);
+ return;
+notaleft:
+ context._test(context.al, 2);
+ if (context.flags.z()) goto notaright;
+ adjustright(context);
+ return;
+notaright:
+ context._test(context.al, 8);
+ if (context.flags.z()) goto notadown;
+ adjustdown(context);
+ return;
+notadown:
+ context._test(context.al, 16);
+ if (context.flags.z()) goto notanup;
+ adjustup(context);
+ return;
+notanup:
+ return;
+}
+
+static inline void adjustdown(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context._add(context.data.byte(149), 10);
+ context.al = context.data.byte(154);
+ context.cl = 16;
+ context._mul(context.cl);
+ context.data.byte(context.bx+11) = context.al;
+ context.data.byte(186) = 1;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static inline void adjustup(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context._sub(context.data.byte(149), 10);
+ context.al = context.data.byte(154);
+ context.cl = 16;
+ context._mul(context.cl);
+ context.data.byte(context.bx+11) = context.al;
+ context.data.byte(186) = 1;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static inline void adjustleft(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context.data.byte(153) = 0;
+ context._sub(context.data.byte(148), 11);
+ context.al = context.data.byte(154);
+ context.cl = 16;
+ context._mul(context.cl);
+ context.data.byte(context.bx+10) = context.al;
+ context.data.byte(186) = 1;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static inline void adjustright(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context._add(context.data.byte(148), 11);
+ context.al = context.data.byte(154);
+ context.cl = 16;
+ context._mul(context.cl);
+ context._sub(context.al, 2);
+ context.data.byte(context.bx+10) = context.al;
+ context.data.byte(186) = 1;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static inline void backobject(Context & context) {
+ context.ds = context.data.word(428);
+ context.di = context.data.word(context.bx+20);
+ context.al = context.data.byte(context.bx+18);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto _tmp48z;
+ context._sub(context.al, 1);
+ context.data.byte(context.bx+18) = context.al;
+ goto finishback;
+_tmp48z:
+ context.al = context.data.byte(context.di+7);
+ context.data.byte(context.bx+18) = context.al;
+ context.al = context.data.byte(context.di+8);
+ context._cmp(context.al, 6);
+ if (!context.flags.z()) goto notwidedoor;
+ widedoor(context);
+ goto finishback;
+notwidedoor:
+ context._cmp(context.al, 5);
+ if (!context.flags.z()) goto notrandom;
+ random(context);
+ goto finishback;
+notrandom:
+ context._cmp(context.al, 4);
+ if (!context.flags.z()) goto notlockdoor;
+ lockeddoorway(context);
+ goto finishback;
+notlockdoor:
+ context._cmp(context.al, 3);
+ if (!context.flags.z()) goto notlift;
+ liftsprite(context);
+ goto finishback;
+notlift:
+ context._cmp(context.al, 2);
+ if (!context.flags.z()) goto notdoor;
+ doorway(context);
+ goto finishback;
+notdoor:
+ context._cmp(context.al, 1);
+ if (!context.flags.z()) goto steadyob;
+ constant(context);
+ goto finishback;
+steadyob:
+ steady(context);
+finishback:
+ return;
+}
+
+static inline void liftsprite(Context & context) {
+ context.al = context.data.byte(35);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto liftclosed;
+ context._cmp(context.al, 1);
+ if (context.flags.z()) goto liftopen;
+ context._cmp(context.al, 3);
+ if (context.flags.z()) goto openlift;
+ context.al = context.data.byte(context.bx+19);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishclose;
+ context._sub(context.al, 1);
+ context._cmp(context.al, 11);
+ if (!context.flags.z()) goto pokelift;
+ context.push(context.ax);
+ context.al = 3;
+ liftnoise(context);
+ context.ax = context.pop();
+ goto pokelift;
+finishclose:
+ context.data.byte(35) = 0;
+ return;
+openlift:
+ context.al = context.data.byte(context.bx+19);
+ context._cmp(context.al, 12);
+ if (context.flags.z()) goto endoflist;
+ context._add(context.al, 1);
+ context._cmp(context.al, 1);
+ if (!context.flags.z()) goto pokelift;
+ context.push(context.ax);
+ context.al = 2;
+ liftnoise(context);
+ context.ax = context.pop();
+pokelift:
+ context.data.byte(context.bx+19) = context.al;
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ return;
+endoflist:
+ context.data.byte(35) = 1;
+ return;
+liftopen:
+ context.al = context.data.byte(36);
+ context.push(context.es);
+ context.push(context.bx);
+ turnpathon(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(40), 0);
+ if (context.flags.z()) goto nocountclose;
+ context._sub(context.data.byte(40), 1);
+ context._cmp(context.data.byte(40), 0);
+ if (!context.flags.z()) goto nocountclose;
+ context.data.byte(35) = 2;
+nocountclose:
+ context.al = 12;
+ goto pokelift;
+liftclosed:
+ context.al = context.data.byte(36);
+ context.push(context.es);
+ context.push(context.bx);
+ turnpathoff(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(39), 0);
+ if (context.flags.z()) goto nocountopen;
+ context._sub(context.data.byte(39), 1);
+ context._cmp(context.data.byte(39), 0);
+ if (!context.flags.z()) goto nocountopen;
+ context.data.byte(35) = 3;
+nocountopen:
+ context.al = 0;
+ goto pokelift;
+}
+
+static inline void liftnoise(Context & context) {
+ context._cmp(context.data.byte(184), 5);
+ if (context.flags.z()) goto hissnoise;
+ context._cmp(context.data.byte(184), 21);
+ if (context.flags.z()) goto hissnoise;
+ playchannel1(context);
+ return;
+hissnoise:
+ context.al = 13;
+ playchannel1(context);
+ return;
+}
+
+static inline void random(Context & context) {
+ randomnum1(context);
+ context.push(context.di);
+ context._and(context.ax, 7);
+ context._add(context.di, 18);
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(context.di);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ return;
+}
+
+static inline void steady(Context & context) {
+ context.al = context.data.byte(context.di+18);
+ context.data.byte(context.di+17) = context.al;
+ context.data.byte(context.bx+15) = context.al;
+ return;
+}
+
+static inline void constant(Context & context) {
+ context._add(context.data.byte(context.bx+19), 1);
+ context.cl = context.data.byte(context.bx+19);
+ context.ch = 0;
+ context._add(context.di, context.cx);
+ context._cmp(context.data.byte(context.di+18), 255);
+ if (!context.flags.z()) goto gotconst;
+ context._sub(context.di, context.cx);
+ context.cx = 0;
+ context.data.byte(context.bx+19) = context.cl;
+gotconst:
+ context.al = context.data.byte(context.di+18);
+ context._sub(context.di, context.cx);
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ return;
+}
+
+static inline void doorway(Context & context) {
+ context.data.byte(193) = -24;
+ context.data.byte(194) = 10;
+ context.data.byte(195) = -30;
+ context.data.byte(196) = 10;
+ dodoor(context);
+ return;
+}
+
+static inline void widedoor(Context & context) {
+ context.data.byte(193) = -24;
+ context.data.byte(194) = 24;
+ context.data.byte(195) = -30;
+ context.data.byte(196) = 24;
+ dodoor(context);
+ return;
+}
+
+static inline void dodoor(Context & context) {
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
+ context.cl = context.data.byte(context.bx+10);
+ context.ch = context.data.byte(context.bx+11);
+ context._cmp(context.al, context.cl);
+ if (!context.flags.c()) goto rtofdoor;
+ context._sub(context.al, context.cl);
+ context._cmp(context.al, context.data.byte(193));
+ if (!context.flags.c()) goto upordown;
+ goto shutdoor;
+rtofdoor:
+ context._sub(context.al, context.cl);
+ context._cmp(context.al, context.data.byte(194));
+ if (!context.flags.c()) goto shutdoor;
+upordown:
+ context._cmp(context.ah, context.ch);
+ if (!context.flags.c()) goto botofdoor;
+ context._sub(context.ah, context.ch);
+ context._cmp(context.ah, context.data.byte(195));
+ if (context.flags.c()) goto shutdoor;
+ goto opendoor;
+botofdoor:
+ context._sub(context.ah, context.ch);
+ context._cmp(context.ah, context.data.byte(196));
+ if (!context.flags.c()) goto shutdoor;
+opendoor:
+ context.cl = context.data.byte(context.bx+19);
+ context._cmp(context.data.byte(61), 1);
+ if (!context.flags.z()) goto notthrough;
+ context._cmp(context.cl, 0);
+ if (!context.flags.z()) goto notthrough;
+ context.cl = 6;
+notthrough:
+ context._add(context.cl, 1);
+ context._cmp(context.cl, 1);
+ if (!context.flags.z()) goto notdoorsound2;
+ context.al = 0;
+ context._cmp(context.data.byte(184), 5);
+ if (!context.flags.z()) goto nothoteldoor2;
+ context.al = 13;
+nothoteldoor2:
+ playchannel1(context);
+notdoorsound2:
+ context.ch = 0;
+ context.push(context.di);
+ context._add(context.di, context.cx);
+ context.al = context.data.byte(context.di+18);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto atlast1;
+ context._sub(context.di, 1);
+ context._sub(context.cl, 1);
+atlast1:
+ context.data.byte(context.bx+19) = context.cl;
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ context.data.byte(61) = 1;
+ return;
+shutdoor:
+ context.cl = context.data.byte(context.bx+19);
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto notdoorsound1;
+ context.al = 1;
+ context._cmp(context.data.byte(184), 5);
+ if (!context.flags.z()) goto nothoteldoor1;
+ context.al = 13;
+nothoteldoor1:
+ playchannel1(context);
+notdoorsound1:
+ context._cmp(context.cl, 0);
+ if (context.flags.z()) goto atlast2;
+ context._sub(context.cl, 1);
+ context.data.byte(context.bx+19) = context.cl;
+atlast2:
+ context.ch = 0;
+ context.push(context.di);
+ context._add(context.di, context.cx);
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto notnearly;
+ context.data.byte(61) = 0;
+notnearly:
+ return;
+}
+
+static inline void lockeddoorway(Context & context) {
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
+ context.cl = context.data.byte(context.bx+10);
+ context.ch = context.data.byte(context.bx+11);
+ context._cmp(context.al, context.cl);
+ if (!context.flags.c()) goto rtofdoor2;
+ context._sub(context.al, context.cl);
+ context._cmp(context.al, -24);
+ if (!context.flags.c()) goto upordown2;
+ goto shutdoor2;
+rtofdoor2:
+ context._sub(context.al, context.cl);
+ context._cmp(context.al, 10);
+ if (!context.flags.c()) goto shutdoor2;
+upordown2:
+ context._cmp(context.ah, context.ch);
+ if (!context.flags.c()) goto botofdoor2;
+ context._sub(context.ah, context.ch);
+ context._cmp(context.ah, -30);
+ if (context.flags.c()) goto shutdoor2;
+ goto opendoor2;
+botofdoor2:
+ context._sub(context.ah, context.ch);
+ context._cmp(context.ah, 12);
+ if (!context.flags.c()) goto shutdoor2;
+opendoor2:
+ context._cmp(context.data.byte(61), 1);
+ if (context.flags.z()) goto mustbeopen;
+ context._cmp(context.data.byte(37), 1);
+ if (context.flags.z()) goto shutdoor;
+mustbeopen:
+ context.cl = context.data.byte(context.bx+19);
+ context._cmp(context.cl, 1);
+ if (!context.flags.z()) goto notdoorsound4;
+ context.al = 0;
+ playchannel1(context);
+notdoorsound4:
+ context._cmp(context.cl, 6);
+ if (!context.flags.z()) goto noturnonyet;
+ context.al = context.data.byte(38);
+ context.push(context.es);
+ context.push(context.bx);
+ turnpathon(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+noturnonyet:
+ context.cl = context.data.byte(context.bx+19);
+ context._cmp(context.data.byte(61), 1);
+ if (!context.flags.z()) goto notthrough2;
+ context._cmp(context.cl, 0);
+ if (!context.flags.z()) goto notthrough2;
+ context.cl = 6;
+notthrough2:
+ context._add(context.cl, 1);
+ context.ch = 0;
+ context.push(context.di);
+ context._add(context.di, context.cx);
+ context.al = context.data.byte(context.di+18);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto atlast3;
+ context._sub(context.di, 1);
+ context._sub(context.cl, 1);
+atlast3:
+ context.data.byte(context.bx+19) = context.cl;
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto justshutting;
+ context.data.byte(61) = 1;
+justshutting:
+ return;
+shutdoor2:
+ context.cl = context.data.byte(context.bx+19);
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto notdoorsound3;
+ context.al = 1;
+ playchannel1(context);
+notdoorsound3:
+ context._cmp(context.cl, 0);
+ if (context.flags.z()) goto atlast4;
+ context._sub(context.cl, 1);
+ context.data.byte(context.bx+19) = context.cl;
+atlast4:
+ context.ch = 0;
+ context.data.byte(61) = 0;
+ context.push(context.di);
+ context._add(context.di, context.cx);
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ context._cmp(context.cl, 0);
+ if (!context.flags.z()) goto notlocky;
+ context.al = context.data.byte(38);
+ context.push(context.es);
+ context.push(context.bx);
+ turnpathoff(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.data.byte(37) = 1;
+notlocky:
+ return;
+/*continuing to unbounded code: shutdoor from dodoor:60-87*/
+shutdoor:
+ context.cl = context.data.byte(context.bx+19);
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto notdoorsound1;
+ context.al = 1;
+ context._cmp(context.data.byte(184), 5);
+ if (!context.flags.z()) goto nothoteldoor1;
+ context.al = 13;
+nothoteldoor1:
+ playchannel1(context);
+notdoorsound1:
+ context._cmp(context.cl, 0);
+ if (context.flags.z()) goto atlast2;
+ context._sub(context.cl, 1);
+ context.data.byte(context.bx+19) = context.cl;
+atlast2:
+ context.ch = 0;
+ context.push(context.di);
+ context._add(context.di, context.cx);
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto notnearly;
+ context.data.byte(61) = 0;
+notnearly:
+ return;
+ return;
+}
+
+static inline void getreelframeax(Context & context) {
+ context.push(context.ds);
+ context.data.word(160) = context.ax;
+ findsource(context);
+ context.es = context.ds;
+ context.ds = context.pop();
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
+ context._add(context.ax, context.ax);
+ context.cx = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.cx);
+ context.bx = context.ax;
+ return;
+}
+
+static inline void dumpeverything(Context & context) {
+ context.es = context.data.word(412);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
+dumpevery1:
+ context.ax = context.data.word(context.bx);
+ context.cx = context.data.word(context.bx+2);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto finishevery1;
+ context._cmp(context.ax, context.data.word(context.bx+(40*5)));
+ if (!context.flags.z()) goto notskip1;
+ context._cmp(context.cx, context.data.word(context.bx+(40*5)+2));
+ if (context.flags.z()) goto skip1;
+notskip1:
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.ds);
+ context.bl = context.ah;
+ context.bh = 0;
+ context.ah = 0;
+ context.di = context.ax;
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
+ multidump(context);
+ context.ds = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+skip1:
+ context._add(context.bx, 5);
+ goto dumpevery1;
+finishevery1:
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(40*5);
+dumpevery2:
+ context.ax = context.data.word(context.bx);
+ context.cx = context.data.word(context.bx+2);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto finishevery2;
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.ds);
+ context.bl = context.ah;
+ context.bh = 0;
+ context.ah = 0;
+ context.di = context.ax;
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
+ multidump(context);
+ context.ds = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ context._add(context.bx, 5);
+ goto dumpevery2;
+finishevery2:
+ return;
+}
+
+static inline void readabyte(Context & context) {
+ context._cmp(context.si, 30000);
+ if (!context.flags.z()) goto notendblock;
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.si);
+ readoneblock(context);
+ context.si = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.si = 0;
+notendblock:
+ context._lodsb();
+ return;
+}
+
+static inline void printundermon(Context & context) {
+ context.si = (320*43)+76;
+ context.di = context.si;
+ context.es = context.data.word(400);
+ context._add(context.si, 8*320);
+ context.dx = 0x0a000;
+ context.ds = context.dx;
+ context.cx = 104;
+scrollmonloop1:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.si);
+ context.cx = 170;
+scrollmonloop2:
+ context._lodsb();
+ context._cmp(context.al, 231);
+ if (!context.flags.c()) goto dontplace;
+placeit:
+ context._stosb();
+ if (--context.cx) goto scrollmonloop2;
+ goto finmonscroll;
+dontplace:
+ context._add(context.di, 1);
+ if (--context.cx) goto scrollmonloop2;
+finmonscroll:
+ context.si = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.si, 320);
+ context._add(context.di, 320);
+ if (--context.cx) goto scrollmonloop1;
+ return;
+}
+
+static inline void pixelcheckset(Context & context) {
+ context.push(context.ax);
+ context._sub(context.al, context.data.byte(context.bx));
+ context._sub(context.ah, context.data.byte(context.bx+1));
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.cx);
+ context.push(context.ax);
+ context.al = context.data.byte(context.bx+4);
+ getsetad(context);
+ context.al = context.data.byte(context.bx+17);
+ context.es = context.data.word(444);
+ context.bx = 0;
+ context.ah = 0;
+ context.cx = 6;
+ context._mul(context.cx);
+ context._add(context.bx, context.ax);
+ context.ax = context.pop();
+ context.push(context.ax);
+ context.al = context.ah;
+ context.ah = 0;
+ context.cl = context.data.byte(context.bx);
+ context.ch = 0;
+ context._mul(context.cx);
+ context.cx = context.pop();
+ context.ch = 0;
+ context._add(context.ax, context.cx);
+ context._add(context.ax, context.data.word(context.bx+2));
+ context.bx = context.ax;
+ context._add(context.bx, 0+2080);
+ context.al = context.data.byte(context.bx);
+ context.dl = context.al;
+ context.cx = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ax = context.pop();
+ context._cmp(context.dl, 0);
+ return;
+}
+
+static inline void delthisone(Context & context) {
+ context.push(context.ax);
+ context.push(context.ax);
+ context.al = context.ah;
+ context.ah = 0;
+ context._add(context.ax, context.data.word(119));
+ context.bx = 320;
+ context._mul(context.bx);
+ context.bx = context.pop();
+ context.bh = 0;
+ context._add(context.bx, context.data.word(117));
+ context._add(context.ax, context.bx);
+ context.di = context.ax;
+ context.ax = context.pop();
+ context.push(context.ax);
+ context.al = context.ah;
+ context.ah = 0;
+ context.bx = 22*8;
+ context._mul(context.bx);
+ context.bx = context.pop();
+ context.bh = 0;
+ context._add(context.ax, context.bx);
+ context.si = context.ax;
+ context.es = context.data.word(400);
+ context.ds = context.data.word(402);
+ context.dl = context.cl;
+ context.dh = 0;
+ context.ax = 320;
+ context._sub(context.ax, context.dx);
+ context._neg(context.dx);
+ context._add(context.dx, 22*8);
+deloneloop:
+ context.push(context.cx);
+ context.ch = 0;
+ while(--context.cx) context._movsb();
+ context.cx = context.pop();
+ context._add(context.di, context.ax);
+ context._add(context.si, context.dx);
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto deloneloop;
+ return;
+}
+
+static inline void dofade(Context & context) {
+ context._cmp(context.data.byte(344), 0);
+ if (context.flags.z()) goto finishfade;
+ context.cl = context.data.byte(345);
+ context.ch = 0;
+ context.al = context.data.byte(343);
+ context.ah = 0;
+ context.ds = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context._add(context.si, context.ax);
+ context._add(context.si, context.ax);
+ context._add(context.si, context.ax);
+ showgroup(context);
+ context.al = context.data.byte(345);
+ context._add(context.al, context.data.byte(343));
+ context.data.byte(343) = context.al;
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto finishfade;
+ fadecalculation(context);
+finishfade:
+ return;
+}
+
+static inline void fadetowhite(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.cx = 768;
+ context.al = 63;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.al = 0;
+ context._stosb();
+ context._stosb();
+ context._stosb();
+ paltostartpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ return;
+}
+
+static inline void fadefromwhite(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 768;
+ context.al = 63;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.al = 0;
+ context._stosb();
+ context._stosb();
+ context._stosb();
+ paltoendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ return;
+}
+
+static inline void fadescreendownhalf(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.cx = 768;
+ context.es = context.data.word(412);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+halfend:
+ context.al = context.data.byte(context.bx);
+ context._shr(context.al, 1);
+ context.data.byte(context.bx) = context.al;
+ context._add(context.bx, 1);
+ if (--context.cx) goto halfend;
+ context.ds = context.data.word(412);
+ context.es = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
+ context.cx = 3*5;
+ while(--context.cx) context._movsb();
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(77*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
+ context.cx = 3*2;
+ while(--context.cx) context._movsb();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 31;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 32;
+ return;
+}
+
+static inline void fadescreenuphalf(Context & context) {
+ endpaltostart(context);
+ paltoendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 31;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 32;
+ return;
+}
+
+static inline void fadecalculation(Context & context) {
+ context._cmp(context.data.byte(346), 0);
+ if (context.flags.z()) goto nomorefading;
+ context.bl = context.data.byte(346);
+ context.es = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.cx = 768;
+fadecolloop:
+ context.al = context.data.byte(context.si);
+ context.ah = context.data.byte(context.di);
+ context._cmp(context.al, context.ah);
+ if (context.flags.z()) goto gotthere;
+ if (context.flags.c()) goto lesscolour;
+ context._sub(context.data.byte(context.si), 1);
+ goto gotthere;
+lesscolour:
+ context._cmp(context.bl, context.ah);
+ if (context.flags.z()) goto withit;
+ if (!context.flags.c()) goto gotthere;
+withit:
+ context._add(context.data.byte(context.si), 1);
+gotthere:
+ context._add(context.si, 1);
+ context._add(context.di, 1);
+ if (--context.cx) goto fadecolloop;
+ context._sub(context.data.byte(346), 1);
+ return;
+nomorefading:
+ context.data.byte(344) = 0;
+ return;
+}
+
+static inline void startpaltoend(Context & context) {
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 768/2;
+ while(--context.cx) context._movsw();
+ return;
+}
+
+static inline void fadedownmon(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 64;
+ hangon(context);
+ return;
+}
+
+static inline void fadeupmon(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 128;
+ hangon(context);
+ return;
+}
+
+static inline void fadeupmonfirst(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 64;
+ hangon(context);
+ context.al = 26;
+ playchannel1(context);
+ context.cx = 64;
+ hangon(context);
+ return;
+}
+
+static inline void fadeupyellows(Context & context) {
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 128;
+ hangon(context);
+ return;
+}
+
+static inline void initialmoncols(Context & context) {
+ paltostartpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
+ context.cx = 3*9;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context._stosb();
+ context._stosw();
+ context.ds = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
+ context.al = 230;
+ context.cx = 18;
+ showgroup(context);
+ return;
+}
+
+static inline void monprint(Context & context) {
+ context.data.byte(72) = 1;
+ context.si = context.bx;
+ context.dl = 166;
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
+printloop8:
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.dx);
+ getnumber(context);
+ context.ch = 0;
+printloop7:
+ context.al = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto finishmon2;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishmon;
+ context._cmp(context.al, 34);
+ if (context.flags.z()) goto finishmon;
+ context._cmp(context.al, '=');
+ if (context.flags.z()) goto finishmon;
+ context._cmp(context.al, '%');
+ if (!context.flags.z()) goto nottrigger;
+ context.ah = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._add(context.si, 1);
+ goto finishmon;
+nottrigger:
+ context.push(context.cx);
+ context.push(context.es);
+ modifychar(context);
+ printchar(context);
+ context.data.word(312) = context.di;
+ context.data.word(314) = context.bx;
+ context.data.word(138) = 1;
+ printcurs(context);
+ vsync(context);
+ context.push(context.si);
+ context.push(context.dx);
+ context.push(context.ds);
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.di);
+ lockmon(context);
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ds = context.pop();
+ context.dx = context.pop();
+ context.si = context.pop();
+ delcurs(context);
+ context.es = context.pop();
+ context.cx = context.pop();
+ if (--context.cx) goto printloop7;
+finishmon2:
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ scrollmonitor(context);
+ context.data.word(312) = context.di;
+ goto printloop8;
+finishmon:
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context._cmp(context.al, '%');
+ if (!context.flags.z()) goto nottrigger2;
+ context.data.byte(55) = context.ah;
+nottrigger2:
+ context.data.word(312) = context.di;
+ scrollmonitor(context);
+ context.bx = context.si;
+ context.data.byte(72) = 0;
+ return;
+}
+
+static inline void fillryan(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32;
+ findallryan(context);
+ context.si = 0+(228*13)+32;
+ context.al = context.data.byte(19);
+ context.ah = 0;
+ context.cx = 20;
+ context._mul(context.cx);
+ context._add(context.si, context.ax);
+ context.di = 80;
+ context.bx = 58;
+ context.cx = 2;
+ryanloop2:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.bx);
+ context.cx = 5;
+ryanloop1:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ax = context.data.word(context.si);
+ context._add(context.si, 2);
+ context.push(context.si);
+ context.push(context.es);
+ obtoinv(context);
+ context.es = context.pop();
+ context.si = context.pop();
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.di, 44);
+ if (--context.cx) goto ryanloop1;
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.bx, 44);
+ if (--context.cx) goto ryanloop2;
+ showryanpage(context);
+ return;
+}
+
+static inline void fillopen(Context & context) {
+ deltextline(context);
+ getopenedsize(context);
+ context._cmp(context.ah, 4);
+ if (context.flags.c()) goto lessthanapage;
+ context.ah = 4;
+lessthanapage:
+ context.al = 1;
+ context.push(context.ax);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13);
+ findallopen(context);
+ context.si = 0+(228*13);
+ context.di = 80;
+ context.bx = 58+96;
+ context.cx = context.pop();
+openloop1:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ax = context.data.word(context.si);
+ context._add(context.si, 2);
+ context.push(context.si);
+ context.push(context.es);
+ context._cmp(context.ch, context.cl);
+ if (context.flags.c()) goto nextopenslot;
+ obtoinv(context);
+nextopenslot:
+ context.es = context.pop();
+ context.si = context.pop();
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.di, 44);
+ context._add(context.cl, 1);
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto openloop1;
+ undertextline(context);
+ return;
+}
+
+static inline void findallryan(Context & context) {
+ context.push(context.di);
+ context.cx = 30;
+ context.ax = 0x0ffff;
+ while(--context.cx) context._stosw();
+ context.di = context.pop();
+ context.cl = 4;
+ context.ds = context.data.word(398);
+ context.bx = 0+2080+30000;
+ context.ch = 0;
+findryanloop:
+ context._cmp(context.data.byte(context.bx+2), context.cl);
+ if (!context.flags.z()) goto notinryaninv;
+ context._cmp(context.data.byte(context.bx+3), 255);
+ if (!context.flags.z()) goto notinryaninv;
+ context.al = context.data.byte(context.bx+4);
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context._add(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 4;
+ context._stosw();
+ context.di = context.pop();
+notinryaninv:
+ context._add(context.bx, 16);
+ context._add(context.ch, 1);
+ context._cmp(context.ch, 114);
+ if (!context.flags.z()) goto findryanloop;
+ return;
+}
+
+static inline void findallopen(Context & context) {
+ context.push(context.di);
+ context.cx = 16;
+ context.ax = 0x0ffff;
+ while(--context.cx) context._stosw();
+ context.di = context.pop();
+ context.cl = context.data.byte(110);
+ context.dl = context.data.byte(111);
+ context.ds = context.data.word(398);
+ context.bx = 0+2080+30000;
+ context.ch = 0;
+findopen1:
+ context._cmp(context.data.byte(context.bx+3), context.cl);
+ if (!context.flags.z()) goto findopen2;
+ context._cmp(context.data.byte(context.bx+2), context.dl);
+ if (!context.flags.z()) goto findopen2;
+ context._cmp(context.data.byte(111), 4);
+ if (context.flags.z()) goto noloccheck;
+ context.al = context.data.byte(context.bx+5);
+ context._cmp(context.al, context.data.byte(184));
+ if (!context.flags.z()) goto findopen2;
+noloccheck:
+ context.al = context.data.byte(context.bx+4);
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context._add(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 4;
+ context._stosw();
+ context.di = context.pop();
+findopen2:
+ context._add(context.bx, 16);
+ context._add(context.ch, 1);
+ context._cmp(context.ch, 114);
+ if (!context.flags.z()) goto findopen1;
+ context.cl = context.data.byte(110);
+ context.dl = context.data.byte(111);
+ context.push(context.dx);
+ context.ds = context.data.word(426);
+ context.dx = context.pop();
+ context.bx = 0;
+ context.ch = 0;
+findopen1a:
+ context._cmp(context.data.byte(context.bx+3), context.cl);
+ if (!context.flags.z()) goto findopen2a;
+ context._cmp(context.data.byte(context.bx+2), context.dl);
+ if (!context.flags.z()) goto findopen2a;
+ context.al = context.data.byte(context.bx+4);
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context._add(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 2;
+ context._stosw();
+ context.di = context.pop();
+findopen2a:
+ context._add(context.bx, 16);
+ context._add(context.ch, 1);
+ context._cmp(context.ch, 80);
+ if (!context.flags.z()) goto findopen1a;
+ return;
+}
+
+static inline void obtoinv(Context & context) {
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.si);
+ context.push(context.ax);
+ context.push(context.ax);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ds = context.data.word(408);
+ context._sub(context.di, 2);
+ context._sub(context.bx, 1);
+ context.al = 10;
+ context.ah = 0;
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.ax = context.pop();
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto finishfill;
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.ax);
+ context.ds = context.data.word(398);
+ context._cmp(context.ah, 4);
+ if (context.flags.z()) goto isanextra;
+ context.ds = context.data.word(446);
+isanextra:
+ context.cl = context.al;
+ context._add(context.al, context.al);
+ context._add(context.al, context.cl);
+ context._add(context.al, 1);
+ context.ah = 128;
+ context._add(context.bx, 19);
+ context._add(context.di, 18);
+ showframe(context);
+ context.ax = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.push(context.bx);
+ getanyaddir(context);
+ isitworn(context);
+ context.bx = context.pop();
+ if (!context.flags.z()) goto finishfill;
+ context.ds = context.data.word(408);
+ context._sub(context.di, 3);
+ context._sub(context.bx, 2);
+ context.al = 7;
+ context.ah = 0;
+ showframe(context);
+finishfill:
+ context.ax = context.pop();
+ context.si = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ return;
+}
+
+static inline void isitworn(Context & context) {
+ context.al = context.data.byte(context.bx+12);
+ context._cmp(context.al, 'W'-'A');
+ if (!context.flags.z()) goto notworn;
+ context.al = context.data.byte(context.bx+13);
+ context._cmp(context.al, 'E'-'A');
+notworn:
+ return;
+}
+
+static inline void makeworn(Context & context) {
+ context.data.byte(context.bx+12) = 'W'-'A';
+ context.data.byte(context.bx+13) = 'E'-'A';
+ return;
+}
+
+static inline void getbackfromob(Context & context) {
+ context._cmp(context.data.byte(106), 1);
+ if (!context.flags.z()) goto notheldob;
+ blank(context);
+ return;
+notheldob:
+ getback1(context);
+ return;
+}
+
+static inline void incryanpage(Context & context) {
+ context._cmp(context.data.byte(100), 222);
+ if (context.flags.z()) goto alreadyincryan;
+ context.data.byte(100) = 222;
+ context.al = 31;
+ commandonly(context);
+alreadyincryan:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto noincryan;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doincryan;
+noincryan:
+ return;
+doincryan:
+ context.ax = context.data.word(198);
+ context._sub(context.ax, 80+167);
+ context.data.byte(19) = -1;
+findnewpage:
+ context._add(context.data.byte(19), 1);
+ context._sub(context.ax, 18);
+ if (!context.flags.c()) goto findnewpage;
+ delpointer(context);
+ fillryan(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void openinv(Context & context) {
+ context.data.byte(104) = 1;
+ context.al = 61;
+ context.di = 80;
+ context.bx = 58-10;
+ context.dl = 240;
+ printmessage(context);
+ fillryan(context);
+ context.data.byte(100) = 255;
+ return;
+}
+
+static inline void showryanpage(Context & context) {
+ context.ds = context.data.word(408);
+ context.di = 80+167;
+ context.bx = 58-12;
+ context.al = 12;
+ context.ah = 0;
+ showframe(context);
+ context.al = 13;
+ context._add(context.al, context.data.byte(19));
+ context.push(context.ax);
+ context.al = context.data.byte(19);
+ context.ah = 0;
+ context.cx = 18;
+ context._mul(context.cx);
+ context.ds = context.data.word(408);
+ context.di = 80+167;
+ context._add(context.di, context.ax);
+ context.bx = 58-12;
+ context.ax = context.pop();
+ context.ah = 0;
+ showframe(context);
+ return;
+}
+
+static inline void openob(Context & context) {
+ context.al = context.data.byte(110);
+ context.ah = context.data.byte(111);
+ context.di = 5674;
+ copyname(context);
+ context.di = 80;
+ context.bx = 58+86;
+ context.al = 62;
+ context.dl = 240;
+ printmessage(context);
+ context.di = context.data.word(84);
+ context._add(context.di, 5);
+ context.bx = 58+86;
+ context.es = context.cs;
+ context.si = 5674;
+ context.dl = 220;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ fillopen(context);
+ getopenedsize(context);
+ context.al = context.ah;
+ context.ah = 0;
+ context.cx = 44;
+ context._mul(context.cx);
+ context._add(context.ax, 80);
+ context.bx = 2588;
+ context.data.word(context.bx) = context.ax;
+ return;
+}
+
+static inline void examicon(Context & context) {
+ context.ds = context.data.word(410);
+ context.di = 254;
+ context.bx = 5;
+ context.al = 3;
+ context.ah = 0;
+ showframe(context);
+ return;
+}
+
+static inline void inventory(Context & context) {
+ context._cmp(context.data.byte(56), 1);
+ if (context.flags.z()) goto iswatchinv;
+ context._cmp(context.data.word(21), 0);
+ if (context.flags.z()) goto notwatchinv;
+iswatchinv:
+ blank(context);
+ return;
+notwatchinv:
+ context._cmp(context.data.byte(100), 239);
+ if (context.flags.z()) goto alreadyopinv;
+ context.data.byte(100) = 239;
+ context.al = 32;
+ commandonly(context);
+alreadyopinv:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto cantopinv;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doopeninv;
+cantopinv:
+ return;
+doopeninv:
+ context.data.word(328) = 0;
+ context.data.byte(234) = 0;
+ context.data.byte(237) = 0;
+ animpointer(context);
+ createpanel(context);
+ showpanel(context);
+ examicon(context);
+ showman(context);
+ showexit(context);
+ undertextline(context);
+ context.data.byte(106) = 0;
+ context.data.byte(104) = 2;
+ openinv(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ context.data.byte(110) = 255;
+ goto waitexam;
+/*continuing to unbounded code: examineagain from examineob:3-62*/
+examineagain:
+ context.data.byte(237) = 0;
+ context.data.byte(108) = 0;
+ context.data.byte(110) = 255;
+ context.data.byte(111) = 255;
+ context.data.byte(104) = 0;
+ context.al = context.data.byte(100);
+ context.data.byte(102) = context.al;
+ context.data.byte(89) = 0;
+ context.data.byte(231) = 0;
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ obicons(context);
+ obpicture(context);
+ describeob(context);
+ undertextline(context);
+ context.data.byte(100) = 255;
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+waitexam:
+ readmouse(context);
+ showpointer(context);
+ vsync(context);
+ dumppointer(context);
+ dumptextline(context);
+ delpointer(context);
+ context.data.byte(103) = 0;
+ context.bx = 2494;
+ context._cmp(context.data.byte(104), 0);
+ if (context.flags.z()) goto notuseinv;
+ context.bx = 2556;
+ context._cmp(context.data.byte(104), 1);
+ if (context.flags.z()) goto notuseinv;
+ context.bx = 2618;
+notuseinv:
+ checkcoords(context);
+ context._cmp(context.data.byte(108), 0);
+ if (context.flags.z()) goto norex;
+ goto examineagain;
+norex:
+ context._cmp(context.data.byte(103), 0);
+ if (context.flags.z()) goto waitexam;
+ context.data.byte(106) = 0;
+ context._cmp(context.data.word(21), 0);
+ if (!context.flags.z()) goto iswatching;
+ context._cmp(context.data.byte(188), 255);
+ if (!context.flags.z()) goto justgetback;
+iswatching:
+ makemainscreen(context);
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
+ return;
+justgetback:
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
+ return;
+ return;
+}
+
+static inline void setpickup(Context & context) {
+ context._cmp(context.data.byte(102), 1);
+ if (context.flags.z()) goto cantpick;
+ context._cmp(context.data.byte(102), 3);
+ if (context.flags.z()) goto cantpick;
+ getanyad(context);
+ context.al = context.data.byte(context.bx+2);
+ context._cmp(context.al, 4);
+ if (!context.flags.z()) goto canpick;
+cantpick:
+ blank(context);
+ return;
+canpick:
+ context._cmp(context.data.byte(100), 209);
+ if (context.flags.z()) goto alreadysp;
+ context.data.byte(100) = 209;
+ context.bl = context.data.byte(99);
+ context.bh = context.data.byte(102);
+ context.al = 33;
+ commandwithob(context);
+alreadysp:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, 1);
+ if (!context.flags.z()) goto nosetpick;
+ context._cmp(context.ax, context.data.word(212));
+ if (!context.flags.z()) goto dosetpick;
+nosetpick:
+ return;
+dosetpick:
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ examicon(context);
+ context.data.byte(106) = 1;
+ context.data.byte(104) = 2;
+ context._cmp(context.data.byte(102), 4);
+ if (context.flags.z()) goto pickupexob;
+ context.al = context.data.byte(99);
+ context.data.byte(89) = context.al;
+ context.data.byte(110) = 255;
+ transfertoex(context);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = 4;
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+ openinv(context);
+ worktoscreenm(context);
+ return;
+pickupexob:
+ context.al = context.data.byte(99);
+ context.data.byte(89) = context.al;
+ context.data.byte(110) = 255;
+ openinv(context);
+ worktoscreenm(context);
+ return;
+}
+
+static inline void examinventory(Context & context) {
+ context._cmp(context.data.byte(100), 249);
+ if (context.flags.z()) goto alreadyexinv;
+ context.data.byte(100) = 249;
+ context.al = 32;
+ commandonly(context);
+alreadyexinv:
+ context.ax = context.data.word(202);
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doexinv;
+ return;
+doexinv:
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ examicon(context);
+ context.data.byte(106) = 0;
+ context.data.byte(104) = 2;
+ openinv(context);
+ worktoscreenm(context);
+ return;
+}
+
+static inline void reexfrominv(Context & context) {
+ findinvpos(context);
+ context.ax = context.data.word(context.bx);
+ context.data.byte(100) = context.ah;
+ context.data.byte(99) = context.al;
+ context.data.byte(108) = 1;
+ context.data.byte(234) = 0;
+ return;
+}
+
+static inline void reexfromopen(Context & context) {
+ return;
+ findopenpos(context);
+ context.ax = context.data.word(context.bx);
+ context.data.byte(100) = context.ah;
+ context.data.byte(99) = context.al;
+ context.data.byte(108) = 1;
+ context.data.byte(234) = 0;
+ return;
+}
+
+static inline void swapwithinv(Context & context) {
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto difsub7;
+ context._cmp(context.data.byte(100), 243);
+ if (context.flags.z()) goto alreadyswap1;
+ context.data.byte(100) = 243;
+difsub7:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 34;
+ commandwithob(context);
+alreadyswap1:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto cantswap1;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doswap1;
+cantswap1:
+ return;
+doswap1:
+ context.ah = context.data.byte(102);
+ context.al = context.data.byte(89);
+ context.push(context.ax);
+ findinvpos(context);
+ context.ax = context.data.word(context.bx);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+ context.bl = context.data.byte(89);
+ context.bh = context.data.byte(102);
+ context.ax = context.pop();
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ context.push(context.bx);
+ findinvpos(context);
+ delpointer(context);
+ context.al = context.data.byte(89);
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 4;
+ context.data.byte(context.bx+3) = 255;
+ context.al = context.data.byte(107);
+ context.data.byte(context.bx+4) = context.al;
+ context.ax = context.pop();
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ fillryan(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void swapwithopen(Context & context) {
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto difsub8;
+ context._cmp(context.data.byte(100), 242);
+ if (context.flags.z()) goto alreadyswap2;
+ context.data.byte(100) = 242;
+difsub8:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 34;
+ commandwithob(context);
+alreadyswap2:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto cantswap2;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doswap2;
+cantswap2:
+ return;
+doswap2:
+ geteitherad(context);
+ isitworn(context);
+ if (!context.flags.z()) goto notwornswap;
+ wornerror(context);
+ return;
+notwornswap:
+ delpointer(context);
+ context.al = context.data.byte(89);
+ context._cmp(context.al, context.data.byte(110));
+ if (!context.flags.z()) goto isntsame2;
+ context.al = context.data.byte(102);
+ context._cmp(context.al, context.data.byte(111));
+ if (!context.flags.z()) goto isntsame2;
+ errormessage1(context);
+ return;
+isntsame2:
+ checkobjectsize(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto sizeok2;
+ return;
+sizeok2:
+ context.ah = context.data.byte(102);
+ context.al = context.data.byte(89);
+ context.push(context.ax);
+ findopenpos(context);
+ context.ax = context.data.word(context.bx);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ context._cmp(context.ah, 4);
+ if (!context.flags.z()) goto makeswapex;
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+ goto actuallyswap;
+makeswapex:
+ transfertoex(context);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = 4;
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+actuallyswap:
+ context.bl = context.data.byte(89);
+ context.bh = context.data.byte(102);
+ context.ax = context.pop();
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ context.push(context.bx);
+ findopenpos(context);
+ geteitherad(context);
+ context.al = context.data.byte(111);
+ context.data.byte(context.bx+2) = context.al;
+ context.al = context.data.byte(110);
+ context.data.byte(context.bx+3) = context.al;
+ context.al = context.data.byte(107);
+ context.data.byte(context.bx+4) = context.al;
+ context.al = context.data.byte(184);
+ context.data.byte(context.bx+5) = context.al;
+ context.ax = context.pop();
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ fillopen(context);
+ fillryan(context);
+ undertextline(context);
+ readmouse(context);
+ useopened(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void intoinv(Context & context) {
+ context._cmp(context.data.byte(106), 0);
+ if (!context.flags.z()) goto notout;
+ outofinv(context);
+ return;
+notout:
+ findinvpos(context);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto canplace1;
+ swapwithinv(context);
+ return;
+canplace1:
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto difsub1;
+ context._cmp(context.data.byte(100), 220);
+ if (context.flags.z()) goto alreadyplce;
+ context.data.byte(100) = 220;
+difsub1:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 35;
+ commandwithob(context);
+alreadyplce:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notletgo2;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doplace;
+notletgo2:
+ return;
+doplace:
+ delpointer(context);
+ context.al = context.data.byte(89);
+ getexad(context);
+ context.data.byte(context.bx+2) = 4;
+ context.data.byte(context.bx+3) = 255;
+ context.al = context.data.byte(107);
+ context.data.byte(context.bx+4) = context.al;
+ context.data.byte(106) = 0;
+ fillryan(context);
+ readmouse(context);
+ showpointer(context);
+ outofinv(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void outofinv(Context & context) {
+ findinvpos(context);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto canpick2;
+ blank(context);
+ return;
+canpick2:
+ context.bx = context.data.word(202);
+ context._cmp(context.bx, 2);
+ if (!context.flags.z()) goto canpick2a;
+ reexfrominv(context);
+ return;
+canpick2a:
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto difsub3;
+ context._cmp(context.data.byte(100), 221);
+ if (context.flags.z()) goto alreadygrab;
+ context.data.byte(100) = 221;
+difsub3:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 36;
+ commandwithob(context);
+alreadygrab:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notletgo;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto dograb;
+notletgo:
+ return;
+dograb:
+ delpointer(context);
+ context.data.byte(106) = 1;
+ findinvpos(context);
+ context.ax = context.data.word(context.bx);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ getexad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+ fillryan(context);
+ readmouse(context);
+ showpointer(context);
+ intoinv(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void geteitherad(Context & context) {
+ context._cmp(context.data.byte(102), 4);
+ if (context.flags.z()) goto isinexlist;
+ context.al = context.data.byte(89);
+ getfreead(context);
+ return;
+isinexlist:
+ context.al = context.data.byte(89);
+ getexad(context);
+ return;
+}
+
+static inline void getopenedsize(Context & context) {
+ context._cmp(context.data.byte(111), 4);
+ if (context.flags.z()) goto isex2;
+ context._cmp(context.data.byte(111), 2);
+ if (context.flags.z()) goto isfree2;
+ context.al = context.data.byte(110);
+ getsetad(context);
+ context.ax = context.data.word(context.bx+3);
+ return;
+isfree2:
+ context.al = context.data.byte(110);
+ getfreead(context);
+ context.ax = context.data.word(context.bx+7);
+ return;
+isex2:
+ context.al = context.data.byte(110);
+ getexad(context);
+ context.ax = context.data.word(context.bx+7);
+ return;
+}
+
+static inline void findinvpos(Context & context) {
+ context.cx = context.data.word(198);
+ context._sub(context.cx, 80);
+ context.bx = -1;
+findinv1:
+ context._add(context.bx, 1);
+ context._sub(context.cx, 44);
+ if (!context.flags.c()) goto findinv1;
+ context.cx = context.data.word(200);
+ context._sub(context.cx, 58);
+ context._sub(context.bx, 5);
+findinv2:
+ context._add(context.bx, 5);
+ context._sub(context.cx, 44);
+ if (!context.flags.c()) goto findinv2;
+ context.al = context.data.byte(19);
+ context.ah = 0;
+ context.cx = 10;
+ context._mul(context.cx);
+ context._add(context.bx, context.ax);
+ context.al = context.bl;
+ context.data.byte(107) = context.al;
+ context._add(context.bx, context.bx);
+ context.es = context.data.word(412);
+ context._add(context.bx, 0+(228*13)+32);
+ return;
+}
+
+static inline void findopenpos(Context & context) {
+ context.cx = context.data.word(198);
+ context._sub(context.cx, 80);
+ context.bx = -1;
+findopenp1:
+ context._add(context.bx, 1);
+ context._sub(context.cx, 44);
+ if (!context.flags.c()) goto findopenp1;
+ context.al = context.bl;
+ context.data.byte(107) = context.al;
+ context._add(context.bx, context.bx);
+ context.es = context.data.word(412);
+ context._add(context.bx, 0+(228*13));
+ return;
+}
+
+static inline void dropobject(Context & context) {
+ context._cmp(context.data.byte(100), 223);
+ if (context.flags.z()) goto alreadydrop;
+ context.data.byte(100) = 223;
+ context._cmp(context.data.byte(106), 0);
+ if (context.flags.z()) { blank(context); return; };
+ context.bl = context.data.byte(89);
+ context.bh = context.data.byte(102);
+ context.al = 37;
+ commandwithob(context);
+alreadydrop:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nodrop;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto dodrop;
+nodrop:
+ return;
+dodrop:
+ geteitherad(context);
+ isitworn(context);
+ if (!context.flags.z()) goto nowornerror;
+ wornerror(context);
+ return;
+nowornerror:
+ context._cmp(context.data.byte(184), 47);
+ if (context.flags.z()) goto nodrop2;
+ context.cl = context.data.byte(151);
+ context._add(context.cl, 12);
+ context.ch = context.data.byte(152);
+ context._add(context.ch, 12);
+ checkone(context);
+ context._cmp(context.cl, 2);
+ if (context.flags.c()) goto nodroperror;
+nodrop2:
+ droperror(context);
+ return;
+nodroperror:
+ context._cmp(context.data.byte(128), 64);
+ if (!context.flags.z()) goto notinlift;
+ context._cmp(context.data.byte(129), 64);
+ if (!context.flags.z()) goto notinlift;
+ droperror(context);
+ return;
+notinlift:
+ context.al = context.data.byte(89);
+ context.ah = 4;
+ context.cl = 'G';
+ context.ch = 'U';
+ context.dl = 'N';
+ context.dh = 'A';
+ compare(context);
+ if (context.flags.z()) { cantdrop(context); return; };
+ context.al = context.data.byte(89);
+ context.ah = 4;
+ context.cl = 'S';
+ context.ch = 'H';
+ context.dl = 'L';
+ context.dh = 'D';
+ compare(context);
+ if (context.flags.z()) { cantdrop(context); return; };
+ context.data.byte(102) = 4;
+ context.al = context.data.byte(89);
+ getexad(context);
+ context.data.byte(context.bx+2) = 0;
+ context.al = context.data.byte(151);
+ context._add(context.al, 4);
+ context.cl = 4;
+ context._shr(context.al, context.cl);
+ context._add(context.al, context.data.byte(148));
+ context.ah = context.data.byte(152);
+ context._add(context.ah, 8);
+ context.cl = 4;
+ context._shr(context.ah, context.cl);
+ context._add(context.ah, context.data.byte(149));
+ context.data.byte(context.bx+3) = context.al;
+ context.data.byte(context.bx+5) = context.ah;
+ context.al = context.data.byte(151);
+ context._add(context.al, 4);
+ context._and(context.al, 15);
+ context.ah = context.data.byte(152);
+ context._add(context.ah, 8);
+ context._and(context.ah, 15);
+ context.data.byte(context.bx+4) = context.al;
+ context.data.byte(context.bx+6) = context.ah;
+ context.data.byte(106) = 0;
+ context.al = context.data.byte(184);
+ context.data.byte(context.bx) = context.al;
+ return;
+}
+
+static inline void droperror(Context & context) {
+ context.data.byte(100) = 255;
+ delpointer(context);
+ context.di = 76;
+ context.bx = 21;
+ context.al = 56;
+ context.dl = 240;
+ printmessage(context);
+ worktoscreenm(context);
+ context.cx = 50;
+ hangonp(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ context.data.byte(100) = 255;
+ worktoscreenm(context);
+ return;
+}
+
+static inline void cantdrop(Context & context) {
+ context.data.byte(100) = 255;
+ delpointer(context);
+ context.di = 76;
+ context.bx = 21;
+ context.al = 24;
+ context.dl = 240;
+ printmessage(context);
+ worktoscreenm(context);
+ context.cx = 50;
+ hangonp(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ context.data.byte(100) = 255;
+ worktoscreenm(context);
+ return;
+}
+
+static inline void wornerror(Context & context) {
+ context.data.byte(100) = 255;
+ delpointer(context);
+ context.di = 76;
+ context.bx = 21;
+ context.al = 57;
+ context.dl = 240;
+ printmessage(context);
+ worktoscreenm(context);
+ context.cx = 50;
+ hangonp(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ context.data.byte(100) = 255;
+ worktoscreenm(context);
+ return;
+}
+
+static inline void removeobfrominv(Context & context) {
+ context._cmp(context.data.byte(99), 100);
+ if (context.flags.z()) goto obnotexist;
+ getanyad(context);
+ context.di = context.bx;
+ context.cl = context.data.byte(99);
+ context.ch = 0;
+ deleteexobject(context);
+obnotexist:
+ return;
+}
+
+static inline void selectopenob(Context & context) {
+ context.al = context.data.byte(99);
+ getanyad(context);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto canopenit1;
+ blank(context);
+ return;
+canopenit1:
+ context._cmp(context.data.byte(100), 224);
+ if (context.flags.z()) goto alreadyopob;
+ context.data.byte(100) = 224;
+ context.bl = context.data.byte(99);
+ context.bh = context.data.byte(102);
+ context.al = 38;
+ commandwithob(context);
+alreadyopob:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto noopenob;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doopenob;
+noopenob:
+ return;
+doopenob:
+ context.al = context.data.byte(99);
+ context.data.byte(110) = context.al;
+ context.al = context.data.byte(102);
+ context.data.byte(111) = context.al;
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ showexit(context);
+ openinv(context);
+ openob(context);
+ undertextline(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void useopened(Context & context) {
+ context._cmp(context.data.byte(110), 255);
+ if (context.flags.z()) goto cannotuseopen;
+ context._cmp(context.data.byte(106), 0);
+ if (!context.flags.z()) goto notout2;
+ outofopen(context);
+ return;
+notout2:
+ findopenpos(context);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto canplace3;
+ swapwithopen(context);
+cannotuseopen:
+ return;
+canplace3:
+ context._cmp(context.data.byte(106), 1);
+ if (context.flags.z()) goto intoopen;
+ blank(context);
+ return;
+intoopen:
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto difsub2;
+ context._cmp(context.data.byte(100), 227);
+ if (context.flags.z()) goto alreadyplc2;
+ context.data.byte(100) = 227;
+difsub2:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 35;
+ commandwithob(context);
+alreadyplc2:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notletgo3;
+ context._cmp(context.ax, 1);
+ if (context.flags.z()) goto doplace2;
+notletgo3:
+ return;
+doplace2:
+ geteitherad(context);
+ isitworn(context);
+ if (!context.flags.z()) goto notworntoopen;
+ wornerror(context);
+ return;
+notworntoopen:
+ delpointer(context);
+ context.al = context.data.byte(89);
+ context._cmp(context.al, context.data.byte(110));
+ if (!context.flags.z()) goto isntsame;
+ context.al = context.data.byte(102);
+ context._cmp(context.al, context.data.byte(111));
+ if (!context.flags.z()) goto isntsame;
+ errormessage1(context);
+ return;
+isntsame:
+ checkobjectsize(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto sizeok1;
+ return;
+sizeok1:
+ context.data.byte(106) = 0;
+ context.al = context.data.byte(89);
+ geteitherad(context);
+ context.al = context.data.byte(111);
+ context.data.byte(context.bx+2) = context.al;
+ context.al = context.data.byte(110);
+ context.data.byte(context.bx+3) = context.al;
+ context.al = context.data.byte(107);
+ context.data.byte(context.bx+4) = context.al;
+ context.al = context.data.byte(184);
+ context.data.byte(context.bx+5) = context.al;
+ fillopen(context);
+ undertextline(context);
+ readmouse(context);
+ useopened(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void errormessage1(Context & context) {
+ delpointer(context);
+ context.di = 76;
+ context.bx = 21;
+ context.al = 58;
+ context.dl = 240;
+ printmessage(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ context.cx = 50;
+ hangonp(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ readmouse(context);
+ useopened(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void errormessage2(Context & context) {
+ context.data.byte(100) = 255;
+ delpointer(context);
+ context.di = 76;
+ context.bx = 21;
+ context.al = 59;
+ context.dl = 240;
+ printmessage(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ context.cx = 50;
+ hangonp(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ readmouse(context);
+ useopened(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void errormessage3(Context & context) {
+ delpointer(context);
+ context.di = 76;
+ context.bx = 21;
+ context.al = 60;
+ context.dl = 240;
+ printmessage(context);
+ worktoscreenm(context);
+ context.cx = 50;
+ hangonp(context);
+ showpanel(context);
+ showman(context);
+ examicon(context);
+ readmouse(context);
+ useopened(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void checkobjectsize(Context & context) {
+ getopenedsize(context);
+ context.push(context.ax);
+ context.al = context.data.byte(89);
+ geteitherad(context);
+ context.al = context.data.byte(context.bx+9);
+ context.cx = context.pop();
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto notunsized;
+ context.al = 6;
+notunsized:
+ context._cmp(context.al, 100);
+ if (!context.flags.c()) goto specialcase;
+ context._cmp(context.cl, 100);
+ if (context.flags.c()) goto isntspecial;
+ errormessage3(context);
+ goto sizewrong;
+isntspecial:
+ context._cmp(context.cl, context.al);
+ if (!context.flags.c()) goto sizeok;
+specialcase:
+ context._sub(context.al, 100);
+ context._cmp(context.cl, 100);
+ if (!context.flags.c()) goto bothspecial;
+ context._cmp(context.cl, context.al);
+ if (!context.flags.c()) goto sizeok;
+ errormessage2(context);
+ goto sizewrong;
+bothspecial:
+ context._sub(context.cl, 100);
+ context._cmp(context.al, context.cl);
+ if (context.flags.z()) goto sizeok;
+ errormessage3(context);
+sizewrong:
+ context.al = 1;
+ return;
+sizeok:
+ context.al = 0;
+ return;
+}
+
+static inline void outofopen(Context & context) {
+ context._cmp(context.data.byte(110), 255);
+ if (context.flags.z()) goto cantuseopen;
+ findopenpos(context);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto canpick4;
+cantuseopen:
+ blank(context);
+ return;
+canpick4:
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto difsub4;
+ context._cmp(context.data.byte(100), 228);
+ if (context.flags.z()) goto alreadygrb;
+ context.data.byte(100) = 228;
+difsub4:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 36;
+ commandwithob(context);
+alreadygrb:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notletgo4;
+ context._cmp(context.ax, 1);
+ if (context.flags.z()) goto dogrb;
+ context._cmp(context.ax, 2);
+ if (!context.flags.z()) goto notletgo4;
+ reexfromopen(context);
+notletgo4:
+ return;
+dogrb:
+ delpointer(context);
+ context.data.byte(106) = 1;
+ findopenpos(context);
+ context.ax = context.data.word(context.bx);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ context._cmp(context.ah, 4);
+ if (!context.flags.z()) goto makeintoex;
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+ goto actuallyout;
+makeintoex:
+ transfertoex(context);
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = 4;
+ geteitherad(context);
+ context.data.byte(context.bx+2) = 20;
+ context.data.byte(context.bx+3) = 255;
+actuallyout:
+ fillopen(context);
+ undertextline(context);
+ readmouse(context);
+ useopened(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void blockget(Context & context) {
+ context.ah = context.al;
+ context.al = 0;
+ context.ds = context.data.word(416);
+ context.si = 0+192;
+ context._add(context.si, context.ax);
+ return;
+}
+
+static inline void adjustlen(Context & context) {
+ context.ah = context.al;
+ context._add(context.al, context.ch);
+ context._cmp(context.al, 100);
+ if (context.flags.c()) goto over242;
+ context.al = 224;
+ context._sub(context.al, context.ch);
+ context.ch = context.al;
+over242:
+ return;
+}
+
+static inline void look(Context & context) {
+ context._cmp(context.data.word(21), 0);
+ if (!context.flags.z()) { blank(context); return; };
+ context._cmp(context.data.byte(234), 2);
+ if (context.flags.z()) { blank(context); return; };
+ context._cmp(context.data.byte(100), 241);
+ if (context.flags.z()) goto alreadylook;
+ context.data.byte(100) = 241;
+ context.al = 25;
+ commandonly(context);
+alreadylook:
+ context._cmp(context.data.word(202), 1);
+ if (!context.flags.z()) goto nolook;
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nolook;
+ dolook(context);
+nolook:
+ return;
+}
+
+static inline void getback1(Context & context) {
+ context._cmp(context.data.byte(106), 0);
+ if (context.flags.z()) goto notgotobject;
+ blank(context);
+ return;
+notgotobject:
+ context._cmp(context.data.byte(100), 202);
+ if (context.flags.z()) goto alreadyget;
+ context.data.byte(100) = 202;
+ context.al = 26;
+ commandonly(context);
+alreadyget:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nogetback;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto dogetback;
+nogetback:
+ return;
+dogetback:
+ context.data.byte(103) = 1;
+ context.data.byte(106) = 0;
+ return;
+}
+
+static inline void talk(Context & context) {
+ context.data.byte(246) = 0;
+ context.data.byte(237) = 0;
+ context.al = context.data.byte(99);
+ context.data.byte(247) = context.al;
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ undertextline(context);
+ convicons(context);
+ starttalk(context);
+ context.data.byte(100) = 255;
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+waittalk:
+ delpointer(context);
+ readmouse(context);
+ animpointer(context);
+ showpointer(context);
+ vsync(context);
+ dumppointer(context);
+ dumptextline(context);
+ context.data.byte(103) = 0;
+ context.bx = 2660;
+ checkcoords(context);
+ context._cmp(context.data.byte(103), 0);
+ if (context.flags.z()) goto waittalk;
+finishtalk:
+ context.bx = context.data.word(249);
+ context.es = context.cs;
+ context._cmp(context.data.byte(246), 4);
+ if (context.flags.c()) goto notnexttalk;
+ context.al = context.data.byte(context.bx+7);
+ context._or(context.al, 128);
+ context.data.byte(context.bx+7) = context.al;
+notnexttalk:
+ redrawmainscrn(context);
+ worktoscreenm(context);
+ context._cmp(context.data.byte(383), 1);
+ if (!context.flags.z()) goto nospeech;
+ cancelch1(context);
+ context.data.byte(388) = -1;
+ context.data.byte(387) = 0;
+nospeech:
+ return;
+}
+
+static inline void convicons(Context & context) {
+ context.al = context.data.byte(247);
+ context._and(context.al, 127);
+ getpersframe(context);
+ context.di = 234;
+ context.bx = 2;
+ context.data.word(160) = context.ax;
+ findsource(context);
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
+ context.ah = 0;
+ showframe(context);
+ return;
+}
+
+static inline void getpersframe(Context & context) {
+ context.ah = 0;
+ context._add(context.ax, context.ax);
+ context.bx = context.ax;
+ context.es = context.data.word(448);
+ context._add(context.bx, 0);
+ context.ax = context.data.word(context.bx);
+ return;
+}
+
+static inline void starttalk(Context & context) {
+ context.data.byte(245) = 0;
+ context.al = context.data.byte(247);
+ context._and(context.al, 127);
+ getpersontext(context);
+ context.data.word(71) = 91+91;
+ context.di = 66;
+ context.bx = 64;
+ context.dl = 241;
+ context.al = 0;
+ context.ah = 79;
+ printdirect(context);
+ context.data.word(71) = 0;
+ context.di = 66;
+ context.bx = 80;
+ context.dl = 241;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+nospeech1:
+ return;
+}
+
+static inline void getpersontext(Context & context) {
+ context.ah = 0;
+ context.cx = 64*2;
+ context._mul(context.cx);
+ context.si = context.ax;
+ context.es = context.data.word(448);
+ context._add(context.si, 0+24);
+ context.cx = 0+24+(1026*2);
+ context.ax = context.data.word(context.si);
+ context._add(context.ax, context.cx);
+ context.si = context.ax;
+ return;
+}
+
+static inline void moretalk(Context & context) {
+ context._cmp(context.data.byte(245), 0);
+ if (context.flags.z()) goto canmore;
+ redes(context);
+ return;
+canmore:
+ context._cmp(context.data.byte(100), 215);
+ if (context.flags.z()) goto alreadymore;
+ context.data.byte(100) = 215;
+ context.al = 49;
+ commandonly(context);
+alreadymore:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nomore;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto domoretalk;
+nomore:
+ return;
+domoretalk:
+ context.data.byte(245) = 2;
+ context.data.byte(246) = 4;
+ context._cmp(context.data.byte(247), 100);
+ if (context.flags.c()) goto notsecondpart;
+ context.data.byte(246) = 48;
+notsecondpart:
+ dosometalk(context);
+ return;
+}
+
+static inline void dosometalk(Context & context) {
+watchtalk:
+ context.al = context.data.byte(246);
+ context.al = context.data.byte(247);
+ context._and(context.al, 127);
+ context.ah = 0;
+ context.cx = 64;
+ context._mul(context.cx);
+ context.cx = context.ax;
+ context.al = context.data.byte(246);
+ context.ah = 0;
+ context._add(context.ax, context.cx);
+ context._add(context.ax, context.ax);
+ context.si = context.ax;
+ context.es = context.data.word(448);
+ context._add(context.si, 0+24);
+ context.cx = 0+24+(1026*2);
+ context.ax = context.data.word(context.si);
+ context._add(context.ax, context.cx);
+ context.si = context.ax;
+ context._cmp(context.data.byte(context.si), 0);
+ if (context.flags.z()) goto endwatchtalk;
+ context.push(context.es);
+ context.push(context.si);
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ convicons(context);
+ context.si = context.pop();
+ context.es = context.pop();
+ context.di = 164;
+ context.bx = 64;
+ context.dl = 144;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ context.data.byte(234) = 3;
+ worktoscreenm(context);
+ context.cx = 180;
+ hangonpq(context);
+ context._add(context.data.byte(246), 1);
+ context.al = context.data.byte(246);
+ context.al = context.data.byte(247);
+ context._and(context.al, 127);
+ context.ah = 0;
+ context.cx = 64;
+ context._mul(context.cx);
+ context.cx = context.ax;
+ context.al = context.data.byte(246);
+ context.ah = 0;
+ context._add(context.ax, context.cx);
+ context._add(context.ax, context.ax);
+ context.si = context.ax;
+ context.es = context.data.word(448);
+ context._add(context.si, 0+24);
+ context.cx = 0+24+(1026*2);
+ context.ax = context.data.word(context.si);
+ context._add(context.ax, context.cx);
+ context.si = context.ax;
+ context._cmp(context.data.byte(context.si), 0);
+ if (context.flags.z()) goto endwatchtalk;
+ context._cmp(context.data.byte(context.si), ':');
+ if (context.flags.z()) goto skiptalk;
+ context._cmp(context.data.byte(context.si), 32);
+ if (context.flags.z()) goto skiptalk;
+ context.push(context.es);
+ context.push(context.si);
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ convicons(context);
+ context.si = context.pop();
+ context.es = context.pop();
+ context.di = 48;
+ context.bx = 128;
+ context.dl = 144;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ context.data.byte(234) = 3;
+ worktoscreenm(context);
+ context.cx = 180;
+ hangonpq(context);
+skiptalk:
+ context._add(context.data.byte(246), 1);
+ goto watchtalk;
+endwatchtalk:
+ context.data.byte(234) = 0;
+ return;
+}
+
+static inline void hangonpq(Context & context) {
+ context.data.byte(103) = 0;
+ context.bx = 0;
+hangloopq:
+ context.push(context.cx);
+ context.push(context.bx);
+ delpointer(context);
+ readmouse(context);
+ animpointer(context);
+ showpointer(context);
+ vsync(context);
+ dumppointer(context);
+ dumptextline(context);
+ context.bx = 2692;
+ checkcoords(context);
+ context.bx = context.pop();
+ context.cx = context.pop();
+ context._cmp(context.data.byte(103), 1);
+ if (context.flags.z()) goto quitconv;
+ context._cmp(context.data.byte(383), 1);
+ if (!context.flags.z()) goto notspeaking;
+ context._cmp(context.data.byte(515), 255);
+ if (!context.flags.z()) goto notspeaking;
+ context._add(context.bx, 1);
+ context._cmp(context.bx, 40);
+ if (context.flags.z()) goto finishconv;
+notspeaking:
+ context._cmp(context.data.word(202), 0);
+ if (context.flags.z()) goto hangloopq;
+ context._cmp(context.data.word(212), 0);
+ if (!context.flags.z()) goto hangloopq;
+finishconv:
+ delpointer(context);
+ context.data.byte(234) = 0;
+ return;
+quitconv:
+ delpointer(context);
+ context.data.byte(234) = 0;
+ context.ax = context.pop();
+ cancelch1(context);
+ return;
+}
+
+static inline void redes(Context & context) {
+ context._cmp(context.data.byte(515), 255);
+ if (!context.flags.z()) goto cantredes;
+ context._cmp(context.data.byte(245), 2);
+ if (context.flags.z()) goto canredes;
+cantredes:
+ blank(context);
+ return;
+canredes:
+ context._cmp(context.data.byte(100), 217);
+ if (context.flags.z()) goto alreadyreds;
+ context.data.byte(100) = 217;
+ context.al = 50;
+ commandonly(context);
+alreadyreds:
+ context.ax = context.data.word(202);
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doredes;
+ return;
+doredes:
+ delpointer(context);
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ convicons(context);
+ starttalk(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ return;
+}
+
+static inline void lookatplace(Context & context) {
+ context._cmp(context.data.byte(100), 224);
+ if (context.flags.z()) goto alreadyinfo;
+ context.data.byte(100) = 224;
+ context.al = 27;
+ commandonly(context);
+alreadyinfo:
+ context.ax = context.data.word(202);
+ context._and(context.ax, 1);
+ if (context.flags.z()) goto noinfo;
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto noinfo;
+ context.bl = context.data.byte(183);
+ context._cmp(context.bl, 15);
+ if (!context.flags.c()) goto noinfo;
+ context.push(context.bx);
+ delpointer(context);
+ deltextline(context);
+ getundercentre(context);
+ context.ds = context.data.word(462);
+ context.al = 0;
+ context.ah = 0;
+ context.di = 60;
+ context.bx = 72;
+ showframe(context);
+ context.al = 4;
+ context.ah = 0;
+ context.di = 60;
+ context.bx = 72+55;
+ showframe(context);
+ context.al = 4;
+ context.ah = 0;
+ context.di = 60;
+ context.bx = 72+55+21;
+ showframe(context);
+ context.bx = context.pop();
+ context.bh = 0;
+ context._add(context.bx, context.bx);
+ context.es = context.data.word(456);
+ context.si = context.data.word(context.bx);
+ context._add(context.si, 66*2);
+ findnextcolon(context);
+ context.di = 63;
+ context.bx = 84+4;
+ context.dl = 191;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ worktoscreenm(context);
+ context.cx = 500;
+ hangonp(context);
+afterinfo:
+ context.data.byte(234) = 0;
+ context.data.byte(231) = 0;
+ putundercentre(context);
+ worktoscreenm(context);
+noinfo:
+ return;
+}
+
+static inline void getundercentre(Context & context) {
+ context.di = 58;
+ context.bx = 72;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ context.cl = 254;
+ context.ch = 110;
+ multiget(context);
+ return;
+}
+
+static inline void putundercentre(Context & context) {
+ context.di = 58;
+ context.bx = 72;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ context.cl = 254;
+ context.ch = 110;
+ multiput(context);
+ return;
+}
+
+static inline void nextdest(Context & context) {
+duok:
+ context._cmp(context.data.byte(100), 218);
+ if (context.flags.z()) goto alreadydu;
+ context.data.byte(100) = 218;
+ context.al = 28;
+ commandonly(context);
+alreadydu:
+ context.ax = context.data.word(202);
+ context._and(context.ax, 1);
+ if (context.flags.z()) goto nodu;
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nodu;
+searchdestup:
+ context._add(context.data.byte(183), 1);
+ context._cmp(context.data.byte(183), 15);
+ if (!context.flags.z()) goto notlastdest;
+ context.data.byte(183) = 0;
+notlastdest:
+ getdestinfo(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto searchdestup;
+ context.data.byte(109) = 1;
+ deltextline(context);
+ delpointer(context);
+ showpanel(context);
+ showman(context);
+ showarrows(context);
+ locationpic(context);
+ undertextline(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+nodu:
+ return;
+}
+
+static inline void lastdest(Context & context) {
+ddok:
+ context._cmp(context.data.byte(100), 219);
+ if (context.flags.z()) goto alreadydd;
+ context.data.byte(100) = 219;
+ context.al = 29;
+ commandonly(context);
+alreadydd:
+ context.ax = context.data.word(202);
+ context._and(context.ax, 1);
+ if (context.flags.z()) goto nodd;
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nodd;
+searchdestdown:
+ context._sub(context.data.byte(183), 1);
+ context._cmp(context.data.byte(183), -1);
+ if (!context.flags.z()) goto notfirstdest;
+ context.data.byte(183) = 15;
+notfirstdest:
+ getdestinfo(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto searchdestdown;
+ context.data.byte(109) = 1;
+ deltextline(context);
+ delpointer(context);
+ showpanel(context);
+ showman(context);
+ showarrows(context);
+ locationpic(context);
+ undertextline(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+nodd:
+ return;
+}
+
+static inline void destselect(Context & context) {
+ context._cmp(context.data.byte(100), 222);
+ if (context.flags.z()) goto alreadytrav;
+ context.data.byte(100) = 222;
+ context.al = 30;
+ commandonly(context);
+alreadytrav:
+ context.ax = context.data.word(202);
+ context._and(context.ax, 1);
+ if (context.flags.z()) goto notrav;
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notrav;
+ getdestinfo(context);
+ context.al = context.data.byte(183);
+ context.data.byte(188) = context.al;
+notrav:
+ return;
+}
+
+static inline void usemon(Context & context) {
+ context.data.byte(55) = 0;
+ context.es = context.cs;
+ context.di = 2895+1;
+ context.cx = 12;
+ context.al = 32;
+ while(--context.cx) context._stosb();
+ context.es = context.cs;
+ context.di = 2883+1;
+ context.cx = 12;
+ context.al = 32;
+ while(--context.cx) context._stosb();
+ context.es = context.cs;
+ context.di = 2807;
+ context.data.byte(context.di) = 1;
+ context._add(context.di, 26);
+ context.cx = 3;
+keyloop:
+ context.data.byte(context.di) = 0;
+ context._add(context.di, 26);
+ if (--context.cx) goto keyloop;
+ createpanel(context);
+ showpanel(context);
+ showicon(context);
+ drawfloor(context);
+ getridofall(context);
+ context.dx = 1987;
+ loadintotemp(context);
+ loadpersonal(context);
+ loadnews(context);
+ loadcart(context);
+ context.dx = 1883;
+ loadtempcharset(context);
+ printoutermon(context);
+ initialmoncols(context);
+ printlogo(context);
+ worktoscreen(context);
+ turnonpower(context);
+ fadeupyellows(context);
+ fadeupmonfirst(context);
+ context.data.word(318) = 76;
+ context.data.word(320) = 141;
+ context.al = 1;
+ monmessage(context);
+ context.cx = 120;
+ hangoncurs(context);
+ context.al = 2;
+ monmessage(context);
+ context.cx = 60;
+ randomaccess(context);
+ context.al = 3;
+ monmessage(context);
+ context.cx = 100;
+ hangoncurs(context);
+ printlogo(context);
+ scrollmonitor(context);
+ context.data.word(394) = 0;
+ context.data.word(396) = 0;
+moreinput:
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.push(context.di);
+ context.push(context.bx);
+ input(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.data.word(318) = context.di;
+ context.data.word(320) = context.bx;
+ execcommand(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto moreinput;
+endmon:
+ getridoftemp(context);
+ getridoftempcharset(context);
+ context.es = context.data.word(466);
+ deallocatemem(context);
+ context.es = context.data.word(468);
+ deallocatemem(context);
+ context.es = context.data.word(470);
+ deallocatemem(context);
+ context.data.byte(103) = 1;
+ context.al = 26;
+ playchannel1(context);
+ context.data.byte(131) = 0;
+ restoreall(context);
+ redrawmainscrn(context);
+ worktoscreenm(context);
+ return;
+}
+
+static inline void printoutermon(Context & context) {
+ context.di = 40;
+ context.bx = 32;
+ context.ds = context.data.word(458);
+ context.al = 1;
+ context.ah = 0;
+ showframe(context);
+ context.di = 264;
+ context.bx = 32;
+ context.ds = context.data.word(458);
+ context.al = 2;
+ context.ah = 0;
+ showframe(context);
+ context.di = 40;
+ context.bx = 12;
+ context.ds = context.data.word(458);
+ context.al = 3;
+ context.ah = 0;
+ showframe(context);
+ context.di = 40;
+ context.bx = 164;
+ context.ds = context.data.word(458);
+ context.al = 4;
+ context.ah = 0;
+ showframe(context);
+ return;
+}
+
+static inline void loadpersonal(Context & context) {
+ context.al = context.data.byte(9);
+ context.dx = 2065;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundpersonal;
+ context._cmp(context.al, 42);
+ if (context.flags.z()) goto foundpersonal;
+ context.dx = 2078;
+ context._cmp(context.al, 2);
+ if (context.flags.z()) goto foundpersonal;
+foundpersonal:
+ openfile(context);
+ readheader(context);
+ context.bx = context.data.word(context.di);
+ context.push(context.bx);
+ context.cl = 4;
+ context._shr(context.bx, context.cl);
+ allocatemem(context);
+ context.data.word(466) = context.ax;
+ context.ds = context.ax;
+ context.cx = context.pop();
+ context.dx = 0;
+ readfromfile(context);
+ closefile(context);
+ return;
+}
+
+static inline void loadnews(Context & context) {
+ context.al = context.data.byte(34);
+ context.dx = 2091;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundnews;
+ context.dx = 2104;
+ context._cmp(context.al, 1);
+ if (context.flags.z()) goto foundnews;
+ context.dx = 2117;
+ context._cmp(context.al, 2);
+ if (context.flags.z()) goto foundnews;
+ context.dx = 2130;
+foundnews:
+ openfile(context);
+ readheader(context);
+ context.bx = context.data.word(context.di);
+ context.push(context.bx);
+ context.cl = 4;
+ context._shr(context.bx, context.cl);
+ allocatemem(context);
+ context.data.word(468) = context.ax;
+ context.ds = context.ax;
+ context.cx = context.pop();
+ context.dx = 0;
+ readfromfile(context);
+ closefile(context);
+ return;
+}
+
+static inline void loadcart(Context & context) {
+ lookininterface(context);
+ context.dx = 2143;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto gotcart;
+ context.dx = 2156;
+ context._cmp(context.al, 1);
+ if (context.flags.z()) goto gotcart;
+ context.dx = 2169;
+ context._cmp(context.al, 2);
+ if (context.flags.z()) goto gotcart;
+ context.dx = 2182;
+ context._cmp(context.al, 3);
+ if (context.flags.z()) goto gotcart;
+ context.dx = 2195;
+gotcart:
+ openfile(context);
+ readheader(context);
+ context.bx = context.data.word(context.di);
+ context.push(context.bx);
+ context.cl = 4;
+ context._shr(context.bx, context.cl);
+ allocatemem(context);
+ context.data.word(470) = context.ax;
+ context.ds = context.ax;
+ context.cx = context.pop();
+ context.dx = 0;
+ readfromfile(context);
+ closefile(context);
+ return;
+}
+
+static inline void lookininterface(Context & context) {
+ context.al = 'I';
+ context.ah = 'N';
+ context.cl = 'T';
+ context.ch = 'F';
+ findsetobject(context);
+ context.ah = 1;
+ checkinside(context);
+ context._cmp(context.cl, 114);
+ if (context.flags.z()) goto emptyinterface;
+ context.al = context.data.byte(context.bx+15);
+ context._add(context.al, 1);
+ return;
+emptyinterface:
+ context.al = 0;
+ return;
+}
+
+static inline void turnonpower(Context & context) {
+ context.cx = 3;
+powerloop:
+ context.push(context.cx);
+ powerlighton(context);
+ context.cx = 30;
+ hangon(context);
+ powerlightoff(context);
+ context.cx = 30;
+ hangon(context);
+ context.cx = context.pop();
+ if (--context.cx) goto powerloop;
+ powerlighton(context);
+ return;
+}
+
+static inline void randomaccess(Context & context) {
+accessloop:
+ context.push(context.cx);
+ vsync(context);
+ vsync(context);
+ randomnum1(context);
+ context._and(context.al, 15);
+ context._cmp(context.al, 10);
+ if (context.flags.c()) goto off;
+ accesslighton(context);
+ goto chosenaccess;
+off:
+ accesslightoff(context);
+chosenaccess:
+ context.cx = context.pop();
+ if (--context.cx) goto accessloop;
+ accesslightoff(context);
+ return;
+}
+
+static inline void powerlighton(Context & context) {
+ context.di = 257+4;
+ context.bx = 182;
+ context.ds = context.data.word(458);
+ context.al = 6;
+ context.ah = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cl = 12;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void powerlightoff(Context & context) {
+ context.di = 257+4;
+ context.bx = 182;
+ context.ds = context.data.word(458);
+ context.al = 5;
+ context.ah = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cl = 12;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void accesslighton(Context & context) {
+ context.di = 74;
+ context.bx = 182;
+ context.ds = context.data.word(458);
+ context.al = 8;
+ context.ah = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cl = 12;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void accesslightoff(Context & context) {
+ context.di = 74;
+ context.bx = 182;
+ context.ds = context.data.word(458);
+ context.al = 7;
+ context.ah = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cl = 12;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void locklighton(Context & context) {
+ context.di = 56;
+ context.bx = 182;
+ context.ds = context.data.word(458);
+ context.al = 10;
+ context.ah = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cl = 12;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void locklightoff(Context & context) {
+ context.di = 56;
+ context.bx = 182;
+ context.ds = context.data.word(458);
+ context.al = 9;
+ context.ah = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cl = 12;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void input(Context & context) {
+ context.es = context.cs;
+ context.di = 7944;
+ context.cx = 64;
+ context.al = 0;
+ while(--context.cx) context._stosb();
+ context.data.word(316) = 0;
+ context.al = '>';
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
+ context.ah = 0;
+ printchar(context);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.cl = 6;
+ context.ch = 8;
+ multidump(context);
+ context._add(context.data.word(318), 6);
+ context.ax = context.data.word(318);
+ context.data.word(312) = context.ax;
+ context.ax = context.data.word(320);
+ context.data.word(314) = context.ax;
+waitkey:
+ printcurs(context);
+ vsync(context);
+ delcurs(context);
+ readkey(context);
+ context.al = context.data.byte(142);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto waitkey;
+ context._cmp(context.al, 13);
+ if (context.flags.z()) goto endofinput;
+ context._cmp(context.al, 8);
+ if (!context.flags.z()) goto notdel;
+ context._cmp(context.data.word(316), 0);
+ if (context.flags.z()) goto waitkey;
+ delchar(context);
+ goto waitkey;
+notdel:
+ context._cmp(context.data.word(316), 28);
+ if (context.flags.z()) goto waitkey;
+ context._cmp(context.data.byte(142), 32);
+ if (!context.flags.z()) goto notleadingspace;
+ context._cmp(context.data.word(316), 0);
+ if (context.flags.z()) goto waitkey;
+notleadingspace:
+ makecaps(context);
+ context.es = context.cs;
+ context.si = context.data.word(316);
+ context._add(context.si, context.si);
+ context._add(context.si, 7944);
+ context.data.byte(context.si) = context.al;
+ context._cmp(context.al, 'Z'+1);
+ if (!context.flags.c()) goto waitkey;
+ context.push(context.ax);
+ context.push(context.es);
+ context.push(context.si);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(402);
+ context.ax = context.data.word(316);
+ context._xchg(context.al, context.ah);
+ context.si = context.ax;
+ context.cl = 8;
+ context.ch = 8;
+ multiget(context);
+ context.si = context.pop();
+ context.es = context.pop();
+ context.ax = context.pop();
+ context.push(context.es);
+ context.push(context.si);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
+ context.ah = 0;
+ printchar(context);
+ context.si = context.pop();
+ context.es = context.pop();
+ context.data.byte(context.si+1) = context.cl;
+ context.ch = 0;
+ context._add(context.data.word(318), context.cx);
+ context._add(context.data.word(316), 1);
+ context._add(context.data.word(312), context.cx);
+ goto waitkey;
+endofinput:
+ return;
+}
+
+static inline void makecaps(Context & context) {
+ context._cmp(context.al, 'a');
+ if (context.flags.c()) goto notupperc;
+ context._sub(context.al, 32);
+notupperc:
+ return;
+}
+
+static inline void delchar(Context & context) {
+ context._sub(context.data.word(316), 1);
+ context.si = context.data.word(316);
+ context._add(context.si, context.si);
+ context.es = context.cs;
+ context._add(context.si, 7944);
+ context.data.byte(context.si) = 0;
+ context.al = context.data.byte(context.si+1);
+ context.ah = 0;
+ context._sub(context.data.word(318), context.ax);
+ context._sub(context.data.word(312), context.ax);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(402);
+ context.ax = context.data.word(316);
+ context._xchg(context.al, context.ah);
+ context.si = context.ax;
+ context.cl = 8;
+ context.ch = 8;
+ multiput(context);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.cl = context.al;
+ context.ch = 8;
+ multidump(context);
+ return;
+}
+
+static inline void execcommand(Context & context) {
+ context.es = context.cs;
+ context.bx = 2776;
+ context.ds = context.cs;
+ context.si = 7944;
+ context.al = context.data.byte(context.si);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto notblankinp;
+ scrollmonitor(context);
+ return;
+notblankinp:
+ context.cl = 0;
+comloop:
+ context.push(context.bx);
+ context.push(context.si);
+comloop2:
+ context.al = context.data.byte(context.si);
+ context._add(context.si, 2);
+ context.ah = context.data.byte(context.bx);
+ context._add(context.bx, 1);
+ context._cmp(context.ah, 32);
+ if (context.flags.z()) goto foundcom;
+ context._cmp(context.al, context.ah);
+ if (context.flags.z()) goto comloop2;
+ context.si = context.pop();
+ context.bx = context.pop();
+ context._add(context.bx, 10);
+ context._add(context.cl, 1);
+ context._cmp(context.cl, 6);
+ if (!context.flags.z()) goto comloop;
+ neterror(context);
+ context.al = 0;
+ return;
+foundcom:
+ context.si = context.pop();
+ context.bx = context.pop();
+ context._cmp(context.cl, 1);
+ if (context.flags.z()) goto testcom;
+ context._cmp(context.cl, 2);
+ if (context.flags.z()) goto directory;
+ context._cmp(context.cl, 3);
+ if (context.flags.z()) goto accesscom;
+ context._cmp(context.cl, 4);
+ if (context.flags.z()) goto signoncom;
+ context._cmp(context.cl, 5);
+ if (context.flags.z()) goto keyscom;
+ goto quitcom;
+directory:
+ dircom(context);
+ context.al = 0;
+ return;
+signoncom:
+ signon(context);
+ context.al = 0;
+ return;
+accesscom:
+ read(context);
+ context.al = 0;
+ return;
+keyscom:
+ showkeys(context);
+ context.al = 0;
+ return;
+testcom:
+ context.al = 6;
+ monmessage(context);
+ context.al = 0;
+ return;
+quitcom:
+ context.al = 1;
+ return;
+}
+
+static inline void neterror(Context & context) {
+ context.al = 5;
+ monmessage(context);
+ scrollmonitor(context);
+ return;
+}
+
+static inline void dircom(Context & context) {
+ context.cx = 30;
+ randomaccess(context);
+ parser(context);
+ context._cmp(context.data.byte(context.di+1), 0);
+ if (context.flags.z()) goto dirroot;
+ dirfile(context);
+ return;
+dirroot:
+ context.data.byte(269) = 0;
+ context.ds = context.cs;
+ context.si = 2885;
+ context._add(context.si, 1);
+ context.es = context.cs;
+ context.di = 2895;
+ context._add(context.di, 1);
+ context.cx = 12;
+ while(--context.cx) context._movsb();
+ monitorlogo(context);
+ scrollmonitor(context);
+ context.al = 9;
+ monmessage(context);
+ context.es = context.data.word(466);
+ searchforfiles(context);
+ context.es = context.data.word(468);
+ searchforfiles(context);
+ context.es = context.data.word(470);
+ searchforfiles(context);
+ scrollmonitor(context);
+ return;
+}
+
+static inline void searchforfiles(Context & context) {
+ context.bx = 66*2;
+directloop1:
+ context.al = context.data.byte(context.bx);
+ context._add(context.bx, 1);
+ context._cmp(context.al, '*');
+ if (context.flags.z()) goto endofdir;
+ context._cmp(context.al, 34);
+ if (!context.flags.z()) goto directloop1;
+ monprint(context);
+ goto directloop1;
+endofdir:
+ return;
+}
+
+static inline void signon(Context & context) {
+ parser(context);
+ context._add(context.di, 1);
+ context.ds = context.cs;
+ context.si = 2807;
+ context.cx = 4;
+signonloop:
+ context.push(context.cx);
+ context.push(context.si);
+ context.push(context.di);
+ context._add(context.si, 14);
+ context.cx = 11;
+signonloop2:
+ context._lodsb();
+ context._cmp(context.al, 32);
+ if (context.flags.z()) goto foundsign;
+ makecaps(context);
+ context.ah = context.data.byte(context.di);
+ context._add(context.di, 1);
+ context._cmp(context.al, context.ah);
+ if (!context.flags.z()) goto nomatch;
+ if (--context.cx) goto signonloop2;
+nomatch:
+ context.di = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
+ context._add(context.si, 26);
+ if (--context.cx) goto signonloop;
+ context.al = 13;
+ monmessage(context);
+ return;
+foundsign:
+ context.di = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
+ context.bx = context.si;
+ context.es = context.ds;
+ context._cmp(context.data.byte(context.bx), 0);
+ if (context.flags.z()) goto notyetassigned;
+ context.al = 17;
+ monmessage(context);
+ return;
+notyetassigned:
+ context.push(context.es);
+ context.push(context.bx);
+ scrollmonitor(context);
+ context.al = 15;
+ monmessage(context);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.push(context.di);
+ context.push(context.bx);
+ input(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.data.word(318) = context.di;
+ context.data.word(320) = context.bx;
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.push(context.es);
+ context.push(context.bx);
+ context._add(context.bx, 2);
+ context.ds = context.cs;
+ context.si = 7944;
+checkpass:
+ context._lodsw();
+ context.ah = context.data.byte(context.bx);
+ context._add(context.bx, 1);
+ context._cmp(context.ah, 32);
+ if (context.flags.z()) goto passpassed;
+ context._cmp(context.al, context.ah);
+ if (context.flags.z()) goto checkpass;
+passerror:
+ context.bx = context.pop();
+ context.es = context.pop();
+ scrollmonitor(context);
+ context.al = 16;
+ monmessage(context);
+ return;
+passpassed:
+ context.al = 14;
+ monmessage(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.push(context.es);
+ context.push(context.bx);
+ context._add(context.bx, 14);
+ monprint(context);
+ scrollmonitor(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.data.byte(context.bx) = 1;
+ return;
+}
+
+static inline void showkeys(Context & context) {
+ context.cx = 10;
+ randomaccess(context);
+ scrollmonitor(context);
+ context.al = 18;
+ monmessage(context);
+ context.es = context.cs;
+ context.bx = 2807;
+ context.cx = 4;
+keysloop:
+ context.push(context.cx);
+ context.push(context.bx);
+ context._cmp(context.data.byte(context.bx), 0);
+ if (context.flags.z()) goto notheld;
+ context._add(context.bx, 14);
+ monprint(context);
+notheld:
+ context.bx = context.pop();
+ context.cx = context.pop();
+ context._add(context.bx, 26);
+ if (--context.cx) goto keysloop;
+ scrollmonitor(context);
+ return;
+}
+
+static inline void read(Context & context) {
+ context.cx = 40;
+ randomaccess(context);
+ parser(context);
+ context._cmp(context.data.byte(context.di+1), 0);
+ if (!context.flags.z()) goto okcom;
+ neterror(context);
+ return;
+okcom:
+ context.es = context.cs;
+ context.di = 2895;
+ context.ax = context.data.word(466);
+ context.data.word(324) = context.ax;
+ context.ds = context.ax;
+ context.si = 66*2;
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundfile2;
+ context.ax = context.data.word(468);
+ context.data.word(324) = context.ax;
+ context.ds = context.ax;
+ context.si = 66*2;
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundfile2;
+ context.ax = context.data.word(470);
+ context.data.word(324) = context.ax;
+ context.ds = context.ax;
+ context.si = 66*2;
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundfile2;
+ context.al = 7;
+ monmessage(context);
+ return;
+foundfile2:
+ getkeyandlogo(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto keyok1;
+ return;
+keyok1:
+ context.es = context.cs;
+ context.di = 2883;
+ context.ds = context.data.word(324);
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto findtopictext;
+ context.al = context.data.byte(270);
+ context.data.byte(269) = context.al;
+ context.al = 11;
+ monmessage(context);
+ return;
+findtopictext:
+ context._add(context.bx, 1);
+ context.push(context.es);
+ context.push(context.bx);
+ monitorlogo(context);
+ scrollmonitor(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+moretopic:
+ monprint(context);
+ context.al = context.data.byte(context.bx);
+ context._cmp(context.al, 34);
+ if (context.flags.z()) goto endoftopic;
+ context._cmp(context.al, '=');
+ if (context.flags.z()) goto endoftopic;
+ context._cmp(context.al, '*');
+ if (context.flags.z()) goto endoftopic;
+ context.push(context.es);
+ context.push(context.bx);
+ processtrigger(context);
+ context.cx = 24;
+ randomaccess(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ goto moretopic;
+endoftopic:
+ scrollmonitor(context);
+ return;
+}
+
+static inline void dirfile(Context & context) {
+ context.al = 34;
+ context.data.byte(context.di) = context.al;
+ context.push(context.es);
+ context.push(context.di);
+ context.ds = context.data.word(466);
+ context.si = 66*2;
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundfile;
+ context.di = context.pop();
+ context.es = context.pop();
+ context.push(context.es);
+ context.push(context.di);
+ context.ds = context.data.word(468);
+ context.si = 66*2;
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundfile;
+ context.di = context.pop();
+ context.es = context.pop();
+ context.push(context.es);
+ context.push(context.di);
+ context.ds = context.data.word(470);
+ context.si = 66*2;
+ searchforstring(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundfile;
+ context.di = context.pop();
+ context.es = context.pop();
+ context.al = 7;
+ monmessage(context);
+ return;
+foundfile:
+ context.ax = context.pop();
+ context.ax = context.pop();
+ getkeyandlogo(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto keyok2;
+ return;
+keyok2:
+ context.push(context.es);
+ context.push(context.bx);
+ context.ds = context.cs;
+ context.si = 2883+1;
+ context.es = context.cs;
+ context.di = 2895+1;
+ context.cx = 12;
+ while(--context.cx) context._movsb();
+ monitorlogo(context);
+ scrollmonitor(context);
+ context.al = 10;
+ monmessage(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+directloop2:
+ context.al = context.data.byte(context.bx);
+ context._add(context.bx, 1);
+ context._cmp(context.al, 34);
+ if (context.flags.z()) goto endofdir2;
+ context._cmp(context.al, '*');
+ if (context.flags.z()) goto endofdir2;
+ context._cmp(context.al, '=');
+ if (!context.flags.z()) goto directloop2;
+ monprint(context);
+ goto directloop2;
+endofdir2:
+ scrollmonitor(context);
+ return;
+}
+
+static inline void getkeyandlogo(Context & context) {
+ context._add(context.bx, 1);
+ context.al = context.data.byte(context.bx);
+ context._sub(context.al, 48);
+ context.data.byte(271) = context.al;
+ context._add(context.bx, 2);
+ context.al = context.data.byte(context.bx);
+ context._sub(context.al, 48);
+ context.data.byte(276) = context.al;
+ context._add(context.bx, 1);
+ context.push(context.es);
+ context.push(context.bx);
+ context.al = context.data.byte(276);
+ context.ah = 0;
+ context.cx = 26;
+ context._mul(context.cx);
+ context.es = context.cs;
+ context.bx = 2807;
+ context._add(context.bx, context.ax);
+ context.al = context.data.byte(context.bx);
+ context._cmp(context.al, 1);
+ if (context.flags.z()) goto keyok;
+ context.push(context.bx);
+ context.push(context.es);
+ context.al = 12;
+ monmessage(context);
+ context.es = context.pop();
+ context.bx = context.pop();
+ context._add(context.bx, 14);
+ monprint(context);
+ scrollmonitor(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.al = 1;
+ return;
+keyok:
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.al = context.data.byte(271);
+ context.data.byte(269) = context.al;
+ context.al = 0;
+ return;
+}
+
+static inline void searchforstring(Context & context) {
+ context.dl = context.data.byte(context.di);
+ context.cx = context.di;
+restartlook:
+ context.di = context.cx;
+ context.bx = context.si;
+ context.dh = 0;
+keeplooking:
+ context._lodsb();
+ makecaps(context);
+ context._cmp(context.al, '*');
+ if (context.flags.z()) goto notfound;
+ context._cmp(context.dl, '=');
+ if (!context.flags.z()) goto nofindingtopic;
+ context._cmp(context.al, 34);
+ if (context.flags.z()) goto notfound;
+nofindingtopic:
+ context.ah = context.data.byte(context.di);
+ context._cmp(context.al, context.dl);
+ if (!context.flags.z()) goto notbracket;
+ context._add(context.dh, 1);
+ context._cmp(context.dh, 2);
+ if (context.flags.z()) goto complete;
+notbracket:
+ context._cmp(context.al, context.ah);
+ if (!context.flags.z()) goto restartlook;
+ context._add(context.di, 1);
+ goto keeplooking;
+complete:
+ context.es = context.ds;
+ context.al = 0;
+ context.bx = context.si;
+ return;
+notfound:
+ context.al = 1;
+ return;
+}
+
+static inline void parser(Context & context) {
+ context.es = context.cs;
+ context.di = 2883;
+ context.cx = 13;
+ context.al = 0;
+ while(--context.cx) context._stosb();
+ context.di = 2883;
+ context.al = '=';
+ context._stosb();
+ context.ds = context.cs;
+ context.si = 7944;
+notspace1:
+ context._lodsw();
+ context._cmp(context.al, 32);
+ if (context.flags.z()) goto stillspace1;
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto notspace1;
+ goto finishpars;
+stillspace1:
+ context._lodsw();
+ context._cmp(context.al, 32);
+ if (context.flags.z()) goto stillspace1;
+copyin1:
+ context._stosb();
+ context._lodsw();
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishpars;
+ context._cmp(context.al, 32);
+ if (!context.flags.z()) goto copyin1;
+finishpars:
+ context.di = 2883;
+ return;
+}
+
+static inline void scrollmonitor(Context & context) {
+ context.push(context.ax);
+ context.push(context.bx);
+ context.push(context.cx);
+ context.push(context.dx);
+ context.push(context.di);
+ context.push(context.si);
+ context.push(context.es);
+ context.push(context.ds);
+ printlogo(context);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ printundermon(context);
+ context.ax = context.data.word(320);
+ worktoscreen(context);
+ context.al = 25;
+ playchannel1(context);
+ context.ds = context.pop();
+ context.es = context.pop();
+ context.si = context.pop();
+ context.di = context.pop();
+ context.dx = context.pop();
+ context.cx = context.pop();
+ context.bx = context.pop();
+ context.ax = context.pop();
+ return;
+}
+
+static inline void lockmon(Context & context) {
+ context._cmp(context.data.byte(392), 57);
+ if (!context.flags.z()) goto notlock;
+ locklighton(context);
+lockloop:
+ context._cmp(context.data.byte(392), 57);
+ if (context.flags.z()) goto lockloop;
+ locklightoff(context);
+notlock:
+ return;
+}
+
+static inline void monitorlogo(Context & context) {
+ context.al = context.data.byte(269);
+ context._cmp(context.al, context.data.byte(270));
+ if (context.flags.z()) goto notnewlogo;
+ context.data.byte(270) = context.al;
+ printlogo(context);
+ printundermon(context);
+ worktoscreen(context);
+ printlogo(context);
+ printlogo(context);
+ context.al = 26;
+ playchannel1(context);
+ context.cx = 20;
+ randomaccess(context);
+ return;
+notnewlogo:
+ printlogo(context);
+ return;
+}
+
+static inline void printlogo(Context & context) {
+ context.di = 56;
+ context.bx = 32;
+ context.ds = context.data.word(458);
+ context.al = 0;
+ context.ah = 0;
+ showframe(context);
+ showcurrentfile(context);
+ return;
+}
+
+static inline void showcurrentfile(Context & context) {
+ context.di = 178;
+ context.bx = 37;
+ context.si = 2895+1;
+curfileloop:
+ context.al = context.data.byte(context.si);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishfile;
+ context._add(context.si, 1);
+ context.push(context.si);
+ modifychar(context);
+ context.ds = context.data.word(406);
+ context.ah = 0;
+ printchar(context);
+ context.si = context.pop();
+ goto curfileloop;
+finishfile:
+ return;
+}
+
+static inline void monmessage(Context & context) {
+ context.es = context.data.word(466);
+ context.bx = 66*2;
+ context.cl = context.al;
+ context.ch = 0;
+monmessageloop:
+ context.al = context.data.byte(context.bx);
+ context._add(context.bx, 1);
+ context._cmp(context.al, '+');
+ if (!context.flags.z()) goto monmessageloop;
+ if (--context.cx) goto monmessageloop;
+ monprint(context);
+ return;
+}
+
+static inline void processtrigger(Context & context) {
+ context._cmp(context.data.byte(55), '1');
+ if (!context.flags.z()) goto notfirsttrigger;
+ context.al = 8;
+ setlocation(context);
+ context.al = 45;
+ triggermessage(context);
+ return;
+notfirsttrigger:
+ context._cmp(context.data.byte(55), '2');
+ if (!context.flags.z()) goto notsecondtrigger;
+ context.al = 9;
+ setlocation(context);
+ context.al = 55;
+ triggermessage(context);
+ return;
+notsecondtrigger:
+ context._cmp(context.data.byte(55), '3');
+ if (!context.flags.z()) goto notthirdtrigger;
+ context.al = 2;
+ setlocation(context);
+ context.al = 59;
+ triggermessage(context);
+notthirdtrigger:
+ return;
+}
+
+static inline void triggermessage(Context & context) {
+ context.push(context.ax);
+ context.di = 174;
+ context.bx = 153;
+ context.cl = 200;
+ context.ch = 63;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ multiget(context);
+ context.ax = context.pop();
+ findpuztext(context);
+ context.di = 174;
+ context.bx = 156;
+ context.dl = 141;
+ context.ah = 16;
+ printdirect(context);
+ context.cx = 140;
+ hangon(context);
+ worktoscreen(context);
+ context.cx = 340;
+ hangon(context);
+ context.di = 174;
+ context.bx = 153;
+ context.cl = 200;
+ context.ch = 63;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ multiput(context);
+ worktoscreen(context);
+ context.data.byte(55) = 0;
+ return;
+}
+
+static inline void printcurs(Context & context) {
+ context.push(context.si);
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.dx);
+ context.push(context.bx);
+ context.push(context.es);
+ context.di = context.data.word(312);
+ context.bx = context.data.word(314);
+ context.cl = 6;
+ context.ch = 8;
+ context._sub(context.bx, 3);
+ context.ch = 11;
+ context.ds = context.data.word(412);
+ context.si = 0;
+ context.push(context.di);
+ context.push(context.bx);
+ multiget(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.push(context.bx);
+ context.push(context.di);
+ context._add(context.data.word(138), 1);
+ context.ax = context.data.word(138);
+ context._and(context.al, 16);
+ if (!context.flags.z()) goto flashcurs;
+ context.al = '/';
+ context._sub(context.al, 32);
+ context.ah = 0;
+ context.ds = context.data.word(406);
+ showframe(context);
+flashcurs:
+ context.di = context.pop();
+ context.bx = context.pop();
+ context._sub(context.di, 6);
+ context.cl = 12;
+ context.ch = 11;
+ multidump(context);
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.dx = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.si = context.pop();
+ return;
+}
+
+static inline void delcurs(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.dx);
+ context.push(context.si);
+ context.di = context.data.word(312);
+ context.bx = context.data.word(314);
+ context.cl = 6;
+ context.ch = 8;
+ context._sub(context.bx, 3);
+ context.ch = 11;
+ context.push(context.di);
+ context.push(context.bx);
+ context.push(context.cx);
+ context.ds = context.data.word(412);
+ context.si = 0;
+ multiput(context);
+ context.cx = context.pop();
+ context.bx = context.pop();
+ context.di = context.pop();
+ multidump(context);
+finishcurdel:
+ context.si = context.pop();
+ context.dx = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static inline void useobject(Context & context) {
+ context.data.byte(95) = 255;
+ context._cmp(context.data.byte(100), 229);
+ if (context.flags.z()) goto alreadyuse;
+ context.data.byte(100) = 229;
+ context.bl = context.data.byte(99);
+ context.bh = context.data.byte(102);
+ context.al = 51;
+ commandwithob(context);
+alreadyuse:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto nouse;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto douse;
+nouse:
+ return;
+douse:
+ useroutine(context);
+ return;
+}
+
+static inline void useroutine(Context & context) {
+ context._cmp(context.data.byte(184), 50);
+ if (context.flags.c()) goto nodream7;
+ context._cmp(context.data.byte(232), 0);
+ if (!context.flags.z()) goto powerok;
+ return;
+powerok:
+ context.data.byte(232) = 0;
+nodream7:
+ getanyad(context);
+ context.dx = context.ds;
+ context.ds = context.dx;
+ context.si = 2895;
+checkuselist:
+ context.push(context.si);
+ context._lodsb();
+ context._sub(context.al, 'A');
+ context._cmp(context.al, context.data.byte(context.bx+12));
+ if (!context.flags.z()) goto failed;
+ context._lodsb();
+ context._sub(context.al, 'A');
+ context._cmp(context.al, context.data.byte(context.bx+13));
+ if (!context.flags.z()) goto failed;
+ context._lodsb();
+ context._sub(context.al, 'A');
+ context._cmp(context.al, context.data.byte(context.bx+14));
+ if (!context.flags.z()) goto failed;
+ context._lodsb();
+ context._sub(context.al, 'A');
+ context._cmp(context.al, context.data.byte(context.bx+15));
+ if (!context.flags.z()) goto failed;
+ context._lodsw();
+ context.si = context.pop();
+ __dispatch_call(context, context.ax);
+ return;
+failed:
+ context.si = context.pop();
+ context._add(context.si, 6);
+ context._cmp(context.data.byte(context.si), 140);
+ if (!context.flags.z()) goto checkuselist;
+ delpointer(context);
+ getobtextstart(context);
+ findnextcolon(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto cantuse2;
+ findnextcolon(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto cantuse2;
+ context.al = context.data.byte(context.si);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto cantuse2;
+ usetext(context);
+ context.cx = 400;
+ hangonp(context);
+ putbackobstuff(context);
+ return;
+cantuse2:
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ obicons(context);
+ context.di = 33;
+ context.bx = 100;
+ context.al = 63;
+ context.dl = 241;
+ printmessage(context);
+ worktoscreenm(context);
+ context.cx = 50;
+ hangonp(context);
+ putbackobstuff(context);
+ context.data.byte(100) = 255;
+ return;
+}
+
+static inline void wheelsound(Context & context) {
+ context.al = 17;
+ playchannel1(context);
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void runtap(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto tapwith;
+ withwhat(context);
+ return;
+tapwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'P';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto fillcupfromtap;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'P';
+ context.dh = 'F';
+ compare(context);
+ if (context.flags.z()) goto cupfromtapfull;
+ context.cx = 300;
+ context.al = 56;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+fillcupfromtap:
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+15) = 'F'-'A';
+ context.al = 8;
+ playchannel1(context);
+ context.cx = 300;
+ context.al = 57;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+cupfromtapfull:
+ context.cx = 300;
+ context.al = 58;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void playguitar(Context & context) {
+ context.al = 14;
+ playchannel1(context);
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void hotelcontrol(Context & context) {
+ context._cmp(context.data.byte(184), 21);
+ if (!context.flags.z()) goto notrightcont;
+ context._cmp(context.data.byte(148), 33);
+ if (!context.flags.z()) goto notrightcont;
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+notrightcont:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void hotelbell(Context & context) {
+ context.al = 12;
+ playchannel1(context);
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void opentomb(Context & context) {
+ context._add(context.data.byte(2), 1);
+ showfirstuse(context);
+ context.data.word(21) = 35*2;
+ context.data.word(23) = 1;
+ context.data.word(25) = 33;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usetrainer(Context & context) {
+ getanyad(context);
+ context._cmp(context.data.byte(context.bx+2), 4);
+ if (!context.flags.z()) goto notheldtrainer;
+ context._add(context.data.byte(2), 1);
+ makeworn(context);
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+notheldtrainer:
+ nothelderror(context);
+ return;
+}
+
+static inline void nothelderror(Context & context) {
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ obicons(context);
+ context.di = 64;
+ context.bx = 100;
+ context.al = 63;
+ context.ah = 1;
+ context.dl = 201;
+ printmessage2(context);
+ worktoscreenm(context);
+ context.cx = 50;
+ hangonp(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usepipe(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto pipewith;
+ withwhat(context);
+ return;
+pipewith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'P';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto fillcup;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'P';
+ context.dh = 'F';
+ compare(context);
+ if (context.flags.z()) goto alreadyfull;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+fillcup:
+ context.cx = 300;
+ context.al = 36;
+ showpuztext(context);
+ putbackobstuff(context);
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+15) = 'F'-'A';
+ return;
+alreadyfull:
+ context.cx = 300;
+ context.al = 35;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usefullcart(Context & context) {
+ context._add(context.data.byte(2), 1);
+ context.al = 2;
+ context.ah = context.data.byte(185);
+ context._add(context.ah, 6);
+ turnanypathon(context);
+ context.data.byte(475) = 4;
+ context.data.byte(133) = 4;
+ context.data.byte(135) = 4;
+ context.data.byte(477) = 4;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ showfirstuse(context);
+ context.data.word(21) = 72*2;
+ context.data.word(23) = 58;
+ context.data.word(25) = 142;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useplinth(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto plinthwith;
+ withwhat(context);
+ return;
+plinthwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'D';
+ context.ch = 'K';
+ context.dl = 'E';
+ context.dh = 'Y';
+ compare(context);
+ if (context.flags.z()) goto isrightkey;
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+isrightkey:
+ context._add(context.data.byte(2), 1);
+ showseconduse(context);
+ context.data.word(21) = 220;
+ context.data.word(23) = 0;
+ context.data.word(25) = 104;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.al = context.data.byte(67);
+ context.data.byte(188) = context.al;
+ return;
+}
+
+static inline void chewy(Context & context) {
+ showfirstuse(context);
+ getanyad(context);
+ context.data.byte(context.bx+2) = 255;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useladder(Context & context) {
+ showfirstuse(context);
+ context._sub(context.data.byte(148), 11);
+ findroominloc(context);
+ context.data.byte(133) = 6;
+ context.data.byte(135) = 6;
+ context.data.byte(475) = 0;
+ context.data.byte(478) = 0;
+ context.data.byte(477) = 0;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useladderb(Context & context) {
+ showfirstuse(context);
+ context._add(context.data.byte(148), 11);
+ findroominloc(context);
+ context.data.byte(133) = 2;
+ context.data.byte(135) = 2;
+ context.data.byte(475) = 1;
+ context.data.byte(478) = 1;
+ context.data.byte(477) = 1;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void slabdoora(Context & context) {
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 13;
+ context._cmp(context.data.byte(66), 3);
+ if (!context.flags.z()) goto slabawrong;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 42;
+ context.data.byte(188) = 47;
+ return;
+slabawrong:
+ context.data.word(21) = 40;
+ context.data.word(25) = 34;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void slabdoorb(Context & context) {
+ context._cmp(context.data.byte(66), 1);
+ if (!context.flags.z()) goto slabbwrong;
+ context.al = 'S';
+ context.ah = 'H';
+ context.cl = 'L';
+ context.ch = 'D';
+ isryanholding(context);
+ if (!context.flags.z()) goto gotcrystal;
+ context.al = 44;
+ context.cx = 200;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+gotcrystal:
+ showfirstuse(context);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 44;
+ context.data.word(21) = 60;
+ context.data.word(25) = 71;
+ context.data.byte(188) = 47;
+ return;
+slabbwrong:
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 44;
+ context.data.word(21) = 40;
+ context.data.word(25) = 63;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void slabdoord(Context & context) {
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 75;
+ context._cmp(context.data.byte(66), 0);
+ if (!context.flags.z()) goto slabcwrong;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 102;
+ context.data.byte(188) = 47;
+ return;
+slabcwrong:
+ context.data.word(21) = 40;
+ context.data.word(25) = 94;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void slabdoorc(Context & context) {
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 108;
+ context._cmp(context.data.byte(66), 4);
+ if (!context.flags.z()) goto slabdwrong;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 135;
+ context.data.byte(188) = 47;
+ return;
+slabdwrong:
+ context.data.word(21) = 40;
+ context.data.word(25) = 127;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void slabdoore(Context & context) {
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 141;
+ context._cmp(context.data.byte(66), 5);
+ if (!context.flags.z()) goto slabewrong;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 168;
+ context.data.byte(188) = 47;
+ return;
+slabewrong:
+ context.data.word(21) = 40;
+ context.data.word(25) = 160;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void slabdoorf(Context & context) {
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 171;
+ context._cmp(context.data.byte(66), 2);
+ if (!context.flags.z()) goto slabfwrong;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 197;
+ context.data.byte(188) = 47;
+ return;
+slabfwrong:
+ context.data.word(21) = 40;
+ context.data.word(25) = 189;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void useslab(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto slabwith;
+ withwhat(context);
+ return;
+slabwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'J';
+ context.ch = 'E';
+ context.dl = 'W';
+ context.dh = 'L';
+ compare(context);
+ if (context.flags.z()) goto nextslab;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+nextslab:
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+2) = 0;
+ context.al = context.data.byte(99);
+ context.push(context.ax);
+ removesetobject(context);
+ context.ax = context.pop();
+ context._add(context.al, 1);
+ context.push(context.ax);
+ placesetobject(context);
+ context.ax = context.pop();
+ context._cmp(context.al, 54);
+ if (!context.flags.z()) goto notlastslab;
+ context.al = 0;
+ turnpathon(context);
+ context.data.word(21) = 22;
+ context.data.word(23) = 35;
+ context.data.word(25) = 48;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+notlastslab:
+ context._add(context.data.byte(2), 1);
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usecart(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto cartwith;
+ withwhat(context);
+ return;
+cartwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'R';
+ context.ch = 'O';
+ context.dl = 'C';
+ context.dh = 'K';
+ compare(context);
+ if (context.flags.z()) goto nextcart;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+nextcart:
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+2) = 0;
+ context.al = context.data.byte(99);
+ context.push(context.ax);
+ removesetobject(context);
+ context.ax = context.pop();
+ context._add(context.al, 1);
+ placesetobject(context);
+ context._add(context.data.byte(2), 1);
+ context.al = 17;
+ playchannel1(context);
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useclearbox(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto clearboxwith;
+ withwhat(context);
+ return;
+clearboxwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'R';
+ context.ch = 'A';
+ context.dl = 'I';
+ context.dh = 'L';
+ compare(context);
+ if (context.flags.z()) goto openbox;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+openbox:
+ context._add(context.data.byte(2), 1);
+ showfirstuse(context);
+ context.data.word(21) = 80;
+ context.data.word(23) = 67;
+ context.data.word(25) = 105;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usecoveredbox(Context & context) {
+ context._add(context.data.byte(2), 1);
+ showfirstuse(context);
+ context.data.word(21) = 50;
+ context.data.word(23) = 41;
+ context.data.word(25) = 66;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void userailing(Context & context) {
+ showfirstuse(context);
+ context.data.word(21) = 80;
+ context.data.word(23) = 0;
+ context.data.word(25) = 30;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.data.byte(56) = 4;
+ return;
+}
+
+static inline void useopenbox(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto openboxwith;
+ withwhat(context);
+ return;
+openboxwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'P';
+ context.dh = 'F';
+ compare(context);
+ if (context.flags.z()) goto destoryopenbox;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'P';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto openboxwrong;
+ showfirstuse(context);
+ return;
+destoryopenbox:
+ context._add(context.data.byte(2), 1);
+ context.cx = 300;
+ context.al = 37;
+ showpuztext(context);
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+15) = 'E'-'A';
+ context.data.word(21) = 140;
+ context.data.word(23) = 105;
+ context.data.word(25) = 181;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.al = 4;
+ turnpathon(context);
+ context.data.byte(103) = 1;
+ return;
+openboxwrong:
+ context.cx = 300;
+ context.al = 38;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void wearwatch(Context & context) {
+ context._cmp(context.data.byte(3), 1);
+ if (context.flags.z()) goto wearingwatch;
+ showfirstuse(context);
+ context.data.byte(3) = 1;
+ context.data.byte(103) = 1;
+ getanyad(context);
+ makeworn(context);
+ return;
+wearingwatch:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void wearshades(Context & context) {
+ context._cmp(context.data.byte(4), 1);
+ if (context.flags.z()) goto wearingshades;
+ context.data.byte(4) = 1;
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ getanyad(context);
+ makeworn(context);
+ return;
+wearingshades:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void sitdowninbar(Context & context) {
+ context._cmp(context.data.byte(32), -1);
+ if (!context.flags.z()) goto satdown;
+ showfirstuse(context);
+ context.data.word(21) = 50;
+ context.data.word(23) = 55;
+ context.data.word(25) = 71;
+ context.data.word(29) = 73;
+ context.data.word(31) = 83;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+satdown:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usechurchhole(Context & context) {
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ context.data.word(21) = 28;
+ context.data.word(23) = 13;
+ context.data.word(25) = 26;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ return;
+}
+
+static inline void usehole(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto holewith;
+ withwhat(context);
+ return;
+holewith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'H';
+ context.ch = 'N';
+ context.dl = 'D';
+ context.dh = 'A';
+ compare(context);
+ if (context.flags.z()) goto righthand;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+righthand:
+ showfirstuse(context);
+ context.al = 86;
+ removesetobject(context);
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+2) = 255;
+ context.data.byte(47) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usealtar(Context & context) {
+ context.al = 'C';
+ context.ah = 'N';
+ context.cl = 'D';
+ context.ch = 'A';
+ findexobject(context);
+ context._cmp(context.al, 114);
+ if (context.flags.z()) goto thingsonaltar;
+ context.al = 'C';
+ context.ah = 'N';
+ context.cl = 'D';
+ context.ch = 'B';
+ findexobject(context);
+ context._cmp(context.al, 114);
+ if (context.flags.z()) goto thingsonaltar;
+ context._cmp(context.data.byte(47), 1);
+ if (context.flags.z()) goto movealtar;
+ context.cx = 300;
+ context.al = 23;
+ showpuztext(context);
+ context.data.byte(103) = 1;
+ return;
+movealtar:
+ context._add(context.data.byte(2), 1);
+ showseconduse(context);
+ context.data.word(21) = 160;
+ context.data.word(23) = 81;
+ context.data.word(25) = 174;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.al = 47;
+ context.bl = 52;
+ context.bh = 76;
+ context.cx = 32;
+ context.dx = 98;
+ setuptimeduse(context);
+ context.data.byte(103) = 1;
+ return;
+thingsonaltar:
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void opentvdoor(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto tvdoorwith;
+ withwhat(context);
+ return;
+tvdoorwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'U';
+ context.ch = 'L';
+ context.dl = 'O';
+ context.dh = 'K';
+ compare(context);
+ if (context.flags.z()) goto keyontv;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+keyontv:
+ showfirstuse(context);
+ context.data.byte(37) = 0;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usedryer(Context & context) {
+ context.al = 12;
+ playchannel1(context);
+ showfirstuse(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void openlouis(Context & context) {
+ context.al = 5;
+ context.ah = 2;
+ context.cl = 3;
+ context.ch = 8;
+ entercode(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void nextcolon(Context & context) {
+lookcolon:
+ context.al = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._cmp(context.al, ':');
+ if (!context.flags.z()) goto lookcolon;
+ return;
+}
+
+static inline void openyourneighbour(Context & context) {
+ context.al = 255;
+ context.ah = 255;
+ context.cl = 255;
+ context.ch = 255;
+ entercode(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usewindow(Context & context) {
+ context._cmp(context.data.byte(475), 6);
+ if (!context.flags.z()) goto notonbalc;
+ context._add(context.data.byte(2), 1);
+ showfirstuse(context);
+ context.data.byte(188) = 29;
+ context.data.byte(103) = 1;
+ return;
+notonbalc:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usebalcony(Context & context) {
+ showfirstuse(context);
+ context.al = 6;
+ turnpathon(context);
+ context.al = 0;
+ turnpathoff(context);
+ context.al = 1;
+ turnpathoff(context);
+ context.al = 2;
+ turnpathoff(context);
+ context.al = 3;
+ turnpathoff(context);
+ context.al = 4;
+ turnpathoff(context);
+ context.al = 5;
+ turnpathoff(context);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(475) = 6;
+ context.data.byte(478) = 6;
+ context.data.byte(477) = 6;
+ findxyfrompath(context);
+ switchryanoff(context);
+ context.data.byte(187) = 1;
+ context.data.word(21) = 30*2;
+ context.data.word(23) = 183;
+ context.data.word(25) = 212;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void openryan(Context & context) {
+ context.al = 5;
+ context.ah = 1;
+ context.cl = 0;
+ context.ch = 6;
+ entercode(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void openpoolboss(Context & context) {
+ context.al = 5;
+ context.ah = 2;
+ context.cl = 2;
+ context.ch = 2;
+ entercode(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void openeden(Context & context) {
+ context.al = 2;
+ context.ah = 8;
+ context.cl = 6;
+ context.ch = 5;
+ entercode(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void opensarters(Context & context) {
+ context.al = 7;
+ context.ah = 8;
+ context.cl = 3;
+ context.ch = 3;
+ entercode(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void isitright(Context & context) {
+ context.bx = context.ds;
+ context.es = context.bx;
+ context.bx = 8350;
+ context._cmp(context.data.byte(context.bx+0), context.al);
+ if (!context.flags.z()) goto notright;
+ context._cmp(context.data.byte(context.bx+1), context.ah);
+ if (!context.flags.z()) goto notright;
+ context._cmp(context.data.byte(context.bx+2), context.cl);
+ if (!context.flags.z()) goto notright;
+ context._cmp(context.data.byte(context.bx+3), context.ch);
+notright:
+ return;
+}
+
+static inline void drawitall(Context & context) {
+ createpanel(context);
+ drawfloor(context);
+ printsprites(context);
+ showicon(context);
+ return;
+}
+
+static inline void openhoteldoor(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto hoteldoorwith;
+ withwhat(context);
+ return;
+hoteldoorwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'K';
+ context.ch = 'E';
+ context.dl = 'Y';
+ context.dh = 'A';
+ compare(context);
+ if (context.flags.z()) goto keyonhotel1;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+keyonhotel1:
+ context.al = 16;
+ playchannel1(context);
+ showfirstuse(context);
+ context.data.byte(37) = 0;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void openhoteldoor2(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto hoteldoorwith2;
+ withwhat(context);
+ return;
+hoteldoorwith2:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'K';
+ context.ch = 'E';
+ context.dl = 'Y';
+ context.dh = 'A';
+ compare(context);
+ if (context.flags.z()) goto keyonhotel2;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+keyonhotel2:
+ context.al = 16;
+ playchannel1(context);
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void grafittidoor(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto grafwith;
+ withwhat(context);
+ return;
+grafwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'A';
+ context.ch = 'P';
+ context.dl = 'E';
+ context.dh = 'N';
+ compare(context);
+ if (context.flags.z()) goto dograf;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+dograf:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void trapdoor(Context & context) {
+ context._add(context.data.byte(2), 1);
+ showfirstuse(context);
+ switchryanoff(context);
+ context.data.word(21) = 20*2;
+ context.data.word(23) = 181;
+ context.data.word(25) = 197;
+ context.data.byte(188) = 26;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void callhotellift(Context & context) {
+ context.al = 12;
+ playchannel1(context);
+ showfirstuse(context);
+ context.data.byte(39) = 8;
+ context.data.byte(103) = 1;
+ context.data.byte(478) = 5;
+ context.data.byte(477) = 5;
+ autosetwalk(context);
+ context.al = 4;
+ turnpathon(context);
+ return;
+}
+
+static inline void calledenslift(Context & context) {
+ showfirstuse(context);
+ context.data.byte(39) = 8;
+ context.data.byte(103) = 1;
+ context.al = 2;
+ turnpathon(context);
+ return;
+}
+
+static inline void calledensdlift(Context & context) {
+ context._cmp(context.data.byte(35), 1);
+ if (context.flags.z()) goto edensdhere;
+ showfirstuse(context);
+ context.data.byte(39) = 8;
+ context.data.byte(103) = 1;
+ context.al = 2;
+ turnpathon(context);
+ return;
+edensdhere:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usepoolreader(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto poolwith;
+ withwhat(context);
+ return;
+poolwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'M';
+ context.ch = 'E';
+ context.dl = 'M';
+ context.dh = 'B';
+ compare(context);
+ if (context.flags.z()) goto openpool;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+openpool:
+ context._cmp(context.data.byte(48), 1);
+ if (context.flags.z()) goto canopenpool;
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+canopenpool:
+ context.al = 17;
+ playchannel1(context);
+ showfirstuse(context);
+ context.data.byte(39) = 6;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void uselighter(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotlighterwith;
+ withwhat(context);
+ return;
+gotlighterwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'S';
+ context.ch = 'M';
+ context.dl = 'K';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto cigarette;
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+cigarette:
+ context.cx = 300;
+ context.al = 9;
+ showpuztext(context);
+ context.al = context.data.byte(95);
+ getexad(context);
+ context.data.byte(context.bx+2) = 255;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void showseconduse(Context & context) {
+ getobtextstart(context);
+ nextcolon(context);
+ nextcolon(context);
+ nextcolon(context);
+ usetext(context);
+ context.cx = 400;
+ hangonp(context);
+ return;
+}
+
+static inline void usecardreader1(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotreader1with;
+ withwhat(context);
+ return;
+gotreader1with:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'S';
+ context.dl = 'H';
+ context.dh = 'R';
+ compare(context);
+ if (context.flags.z()) goto correctcard;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+correctcard:
+ context._cmp(context.data.byte(49), 0);
+ if (context.flags.z()) goto notyet;
+ context._cmp(context.data.word(16), 0);
+ if (context.flags.z()) goto getscash;
+ context.cx = 300;
+ context.al = 17;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+getscash:
+ context.al = 16;
+ playchannel1(context);
+ context.cx = 300;
+ context.al = 18;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ context.data.word(16) = 12432;
+ context.data.byte(103) = 1;
+ return;
+notyet:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usecardreader2(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotreader2with;
+ withwhat(context);
+ return;
+gotreader2with:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'S';
+ context.dl = 'H';
+ context.dh = 'R';
+ compare(context);
+ if (context.flags.z()) goto correctcard2;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+correctcard2:
+ context._cmp(context.data.byte(50), 0);
+ if (context.flags.z()) goto notyetboss;
+ context._cmp(context.data.word(16), 0);
+ if (context.flags.z()) goto nocash;
+ context._cmp(context.data.byte(46), 2);
+ if (context.flags.z()) goto alreadygotnew;
+ context.al = 18;
+ playchannel1(context);
+ context.cx = 300;
+ context.al = 19;
+ showpuztext(context);
+ context.al = 94;
+ placesetobject(context);
+ context.data.byte(46) = 1;
+ context._sub(context.data.word(16), 2000);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
+ return;
+nocash:
+ context.cx = 300;
+ context.al = 20;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+alreadygotnew:
+ context.cx = 300;
+ context.al = 22;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+notyetboss:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usecardreader3(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotreader3with;
+ withwhat(context);
+ return;
+gotreader3with:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'S';
+ context.dl = 'H';
+ context.dh = 'R';
+ compare(context);
+ if (context.flags.z()) goto rightcard;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+rightcard:
+ context._cmp(context.data.byte(51), 0);
+ if (context.flags.z()) goto notyetrecep;
+ context._cmp(context.data.byte(52), 0);
+ if (!context.flags.z()) goto alreadyusedit;
+ context.al = 16;
+ playchannel1(context);
+ context.cx = 300;
+ context.al = 25;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ context._sub(context.data.word(16), 8300);
+ context.data.byte(52) = 1;
+ context.data.byte(103) = 1;
+ return;
+alreadyusedit:
+ context.cx = 300;
+ context.al = 26;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+notyetrecep:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usecashcard(Context & context) {
+ getridofreels(context);
+ loadkeypad(context);
+ createpanel(context);
+ showpanel(context);
+ showexit(context);
+ showman(context);
+ context.di = 114;
+ context.bx = 120-3;
+ context.ds = context.data.word(458);
+ context.al = 39;
+ context.ah = 0;
+ showframe(context);
+ context.ax = context.data.word(16);
+ moneypoke(context);
+ getobtextstart(context);
+ nextcolon(context);
+ nextcolon(context);
+ context.di = 36;
+ context.bx = 98;
+ context.dl = 241;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ context.di = 160;
+ context.bx = 155;
+ context.es = context.cs;
+ context.si = 3385;
+ context.data.word(71) = 91*2+75;
+ context.al = 0;
+ context.ah = 0;
+ context.dl = 240;
+ printdirect(context);
+ context.di = 187;
+ context.bx = 155;
+ context.es = context.cs;
+ context.si = 3390;
+ context.data.word(71) = 91*2+85;
+ context.al = 0;
+ context.ah = 0;
+ context.dl = 240;
+ printdirect(context);
+ context.data.word(71) = 0;
+ worktoscreenm(context);
+ context.cx = 400;
+ hangonp(context);
+ getridoftemp(context);
+ restorereels(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void moneypoke(Context & context) {
+ context.bx = 3385;
+ context.cl = 48-1;
+numberpoke0:
+ context._add(context.cl, 1);
+ context._sub(context.ax, 10000);
+ if (!context.flags.c()) goto numberpoke0;
+ context._add(context.ax, 10000);
+ context.data.byte(context.bx) = context.cl;
+ context._add(context.bx, 1);
+ context.cl = 48-1;
+numberpoke1:
+ context._add(context.cl, 1);
+ context._sub(context.ax, 1000);
+ if (!context.flags.c()) goto numberpoke1;
+ context._add(context.ax, 1000);
+ context.data.byte(context.bx) = context.cl;
+ context._add(context.bx, 1);
+ context.cl = 48-1;
+numberpoke2:
+ context._add(context.cl, 1);
+ context._sub(context.ax, 100);
+ if (!context.flags.c()) goto numberpoke2;
+ context._add(context.ax, 100);
+ context.data.byte(context.bx) = context.cl;
+ context._add(context.bx, 1);
+ context.cl = 48-1;
+numberpoke3:
+ context._add(context.cl, 1);
+ context._sub(context.ax, 10);
+ if (!context.flags.c()) goto numberpoke3;
+ context._add(context.ax, 10);
+ context.data.byte(context.bx) = context.cl;
+ context.bx = 3390;
+ context._add(context.al, 48);
+ context.data.byte(context.bx) = context.al;
+ return;
+}
+
+static inline void usecontrol(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotcontrolwith;
+ withwhat(context);
+ return;
+gotcontrolwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'K';
+ context.ch = 'E';
+ context.dl = 'Y';
+ context.dh = 'A';
+ compare(context);
+ if (context.flags.z()) goto rightkey;
+ context._cmp(context.data.byte(184), 21);
+ if (!context.flags.z()) goto balls;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'K';
+ context.ch = 'N';
+ context.dl = 'F';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto jimmycontrols;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'A';
+ context.ch = 'X';
+ context.dl = 'E';
+ context.dh = 'D';
+ compare(context);
+ if (context.flags.z()) goto axeoncontrols;
+balls:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+rightkey:
+ context.al = 16;
+ playchannel1(context);
+ context._cmp(context.data.byte(9), 21);
+ if (context.flags.z()) goto goingdown;
+ context.cx = 300;
+ context.al = 0;
+ showpuztext(context);
+ context.data.byte(188) = 21;
+ context.data.byte(40) = 8;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ return;
+goingdown:
+ context.cx = 300;
+ context.al = 3;
+ showpuztext(context);
+ context.data.byte(188) = 30;
+ context.data.byte(40) = 8;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ return;
+jimmycontrols:
+ context.al = 50;
+ placesetobject(context);
+ context.al = 51;
+ placesetobject(context);
+ context.al = 26;
+ placesetobject(context);
+ context.al = 30;
+ placesetobject(context);
+ context.al = 16;
+ removesetobject(context);
+ context.al = 17;
+ removesetobject(context);
+ context.al = 14;
+ playchannel1(context);
+ context.cx = 300;
+ context.al = 10;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
+ return;
+axeoncontrols:
+ context.cx = 300;
+ context.al = 16;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usehatch(Context & context) {
+ showfirstuse(context);
+ context.data.byte(188) = 40;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usewire(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotwirewith;
+ withwhat(context);
+ return;
+gotwirewith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'K';
+ context.ch = 'N';
+ context.dl = 'F';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto wireknife;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'A';
+ context.ch = 'X';
+ context.dl = 'E';
+ context.dh = 'D';
+ compare(context);
+ if (context.flags.z()) goto wireaxe;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+wireaxe:
+ context.cx = 300;
+ context.al = 16;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+wireknife:
+ context.al = 51;
+ removesetobject(context);
+ context.al = 52;
+ placesetobject(context);
+ context.cx = 300;
+ context.al = 11;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usehandle(Context & context) {
+ context.al = 'C';
+ context.ah = 'U';
+ context.cl = 'T';
+ context.ch = 'W';
+ findsetobject(context);
+ context.al = context.data.byte(context.bx+58);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto havecutwire;
+ context.cx = 300;
+ context.al = 12;
+ showpuztext(context);
+ context.data.byte(103) = 1;
+ return;
+havecutwire:
+ context.cx = 300;
+ context.al = 13;
+ showpuztext(context);
+ context.data.byte(188) = 22;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useelevator1(Context & context) {
+ showfirstuse(context);
+ selectlocation(context);
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void showfirstuse(Context & context) {
+ getobtextstart(context);
+ findnextcolon(context);
+ findnextcolon(context);
+ usetext(context);
+ context.cx = 400;
+ hangonp(context);
+ return;
+}
+
+static inline void useelevator3(Context & context) {
+ showfirstuse(context);
+ context.data.byte(40) = 20;
+ context.data.byte(188) = 34;
+ context.data.word(23) = 46;
+ context.data.word(25) = 63;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useelevator4(Context & context) {
+ showfirstuse(context);
+ context.data.word(23) = 0;
+ context.data.word(25) = 11;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(40) = 20;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ context.data.byte(188) = 24;
+ return;
+}
+
+static inline void useelevator2(Context & context) {
+ context._cmp(context.data.byte(9), 23);
+ if (context.flags.z()) goto inpoolhall;
+ showfirstuse(context);
+ context.data.byte(188) = 23;
+ context.data.byte(40) = 20;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ return;
+inpoolhall:
+ showfirstuse(context);
+ context.data.byte(188) = 31;
+ context.data.byte(40) = 20;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void useelevator5(Context & context) {
+ context.al = 4;
+ placesetobject(context);
+ context.al = 0;
+ removesetobject(context);
+ context.data.byte(188) = 20;
+ context.data.word(21) = 80;
+ context.data.byte(35) = 1;
+ context.data.byte(40) = 8;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usekey(Context & context) {
+ context._cmp(context.data.byte(9), 5);
+ if (context.flags.z()) goto usekey1;
+ context._cmp(context.data.byte(9), 30);
+ if (context.flags.z()) goto usekey1;
+ context._cmp(context.data.byte(9), 21);
+ if (context.flags.z()) goto usekey2;
+ context.cx = 200;
+ context.al = 1;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+usekey1:
+ context._cmp(context.data.byte(148), 22);
+ if (!context.flags.z()) goto wrongroom1;
+ context._cmp(context.data.byte(149), 10);
+ if (!context.flags.z()) goto wrongroom1;
+ context.cx = 300;
+ context.al = 0;
+ showpuztext(context);
+ context.data.byte(40) = 100;
+ context.data.byte(103) = 1;
+ return;
+usekey2:
+ context._cmp(context.data.byte(148), 11);
+ if (!context.flags.z()) goto wrongroom1;
+ context._cmp(context.data.byte(149), 10);
+ if (!context.flags.z()) goto wrongroom1;
+ context.cx = 300;
+ context.al = 3;
+ showpuztext(context);
+ context.data.byte(188) = 30;
+ context.al = 2;
+ fadescreendown(context);
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+wrongroom1:
+ context.cx = 200;
+ context.al = 2;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usestereo(Context & context) {
+ context._cmp(context.data.byte(9), 0);
+ if (context.flags.z()) goto stereook;
+ context.cx = 400;
+ context.al = 4;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+stereook:
+ context._cmp(context.data.byte(148), 11);
+ if (!context.flags.z()) goto stereonotok;
+ context._cmp(context.data.byte(149), 0);
+ if (context.flags.z()) goto stereook2;
+stereonotok:
+ context.cx = 400;
+ context.al = 5;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+stereook2:
+ context.al = 'C';
+ context.ah = 'D';
+ context.cl = 'P';
+ context.ch = 'L';
+ findsetobject(context);
+ context.ah = 1;
+ checkinside(context);
+ context._cmp(context.cl, 114);
+ if (!context.flags.z()) goto cdinside;
+ context.al = 6;
+ context.cx = 400;
+ showpuztext(context);
+ putbackobstuff(context);
+ getanyad(context);
+ context.al = 255;
+ context.data.byte(context.bx+10) = context.al;
+ return;
+cdinside:
+ getanyad(context);
+ context.al = context.data.byte(context.bx+10);
+ context._xor(context.al, 1);
+ context.data.byte(context.bx+10) = context.al;
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto stereoon;
+ context.al = 7;
+ context.cx = 400;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+stereoon:
+ context.al = 8;
+ context.cx = 400;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usecooker(Context & context) {
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
+ checkinside(context);
+ context._cmp(context.cl, 114);
+ if (!context.flags.z()) goto foodinside;
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+foodinside:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void useaxe(Context & context) {
+ context._cmp(context.data.byte(184), 22);
+ if (!context.flags.z()) goto notinpool;
+ context._cmp(context.data.byte(149), 10);
+ if (context.flags.z()) goto axeondoor;
+ showseconduse(context);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(65) = 2;
+ context.data.byte(103) = 1;
+ removeobfrominv(context);
+ return;
+notinpool:
+ showfirstuse(context);
+ return;
+/*continuing to unbounded code: axeondoor from useelvdoor:19-30*/
+axeondoor:
+ context.al = 15;
+ context.cx = 300;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 46*2;
+ context.data.word(23) = 31;
+ context.data.word(25) = 77;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+ return;
+}
+
+static inline void useelvdoor(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gotdoorwith;
+ withwhat(context);
+ return;
+gotdoorwith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'A';
+ context.ch = 'X';
+ context.dl = 'E';
+ context.dh = 'D';
+ compare(context);
+ if (context.flags.z()) goto axeondoor;
+ context.al = 14;
+ context.cx = 300;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+axeondoor:
+ context.al = 15;
+ context.cx = 300;
+ showpuztext(context);
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 46*2;
+ context.data.word(23) = 31;
+ context.data.word(25) = 77;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void withwhat(Context & context) {
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
+ context.es = context.cs;
+ context.di = 5674;
+ copyname(context);
+ context.di = 100;
+ context.bx = 21;
+ context.dl = 200;
+ context.al = 63;
+ context.ah = 2;
+ printmessage2(context);
+ context.di = context.data.word(84);
+ context._add(context.di, 5);
+ context.bx = 21;
+ context.es = context.cs;
+ context.si = 5674;
+ context.dl = 220;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ context.di = context.data.word(84);
+ context._add(context.di, 5);
+ context.bx = 21;
+ context.dl = 200;
+ context.al = 63;
+ context.ah = 3;
+ printmessage2(context);
+ fillryan(context);
+ context.data.byte(100) = 255;
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ context.data.byte(104) = 2;
+ return;
+}
+
+static inline void selectob(Context & context) {
+ findinvpos(context);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.al, 255);
+ if (!context.flags.z()) goto canselectob;
+ blank(context);
+ return;
+canselectob:
+ context.data.byte(95) = context.al;
+ context.data.byte(96) = context.ah;
+ context._cmp(context.ax, context.data.word(94));
+ if (!context.flags.z()) goto diffsub3;
+ context._cmp(context.data.byte(100), 221);
+ if (context.flags.z()) goto alreadyselob;
+ context.data.byte(100) = 221;
+diffsub3:
+ context.data.word(94) = context.ax;
+ context.bx = context.ax;
+ context.al = 0;
+ commandwithob(context);
+alreadyselob:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notselob;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doselob;
+notselob:
+ return;
+doselob:
+ delpointer(context);
+ context.data.byte(104) = 0;
+ useroutine(context);
+ return;
+}
+
+static inline void findsetobject(Context & context) {
+ context._sub(context.al, 'A');
+ context._sub(context.ah, 'A');
+ context._sub(context.cl, 'A');
+ context._sub(context.ch, 'A');
+ context.es = context.data.word(428);
+ context.bx = 0;
+ context.dl = 0;
+findsetloop:
+ context._cmp(context.al, context.data.byte(context.bx+12));
+ if (!context.flags.z()) goto nofind;
+ context._cmp(context.ah, context.data.byte(context.bx+13));
+ if (!context.flags.z()) goto nofind;
+ context._cmp(context.cl, context.data.byte(context.bx+14));
+ if (!context.flags.z()) goto nofind;
+ context._cmp(context.ch, context.data.byte(context.bx+15));
+ if (!context.flags.z()) goto nofind;
+ context.al = context.dl;
+ return;
+nofind:
+ context._add(context.bx, 64);
+ context._add(context.dl, 1);
+ context._cmp(context.dl, 128);
+ if (!context.flags.z()) goto findsetloop;
+ context.al = context.dl;
+ return;
+}
+
+static inline void checkinside(Context & context) {
+ context.es = context.data.word(398);
+ context.bx = 0+2080+30000;
+ context.cl = 0;
+insideloop:
+ context._cmp(context.al, context.data.byte(context.bx+3));
+ if (!context.flags.z()) goto notfoundinside;
+ context._cmp(context.ah, context.data.byte(context.bx+2));
+ if (!context.flags.z()) goto notfoundinside;
+ return;
+notfoundinside:
+ context._add(context.bx, 16);
+ context._add(context.cl, 1);
+ context._cmp(context.cl, 114);
+ if (!context.flags.z()) goto insideloop;
+ return;
+}
+
+static inline void usetext(Context & context) {
+ context.push(context.es);
+ context.push(context.si);
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ obicons(context);
+ context.si = context.pop();
+ context.es = context.pop();
+ context.di = 36;
+ context.bx = 104;
+ context.dl = 241;
+ context.al = 0;
+ context.ah = 0;
+ printdirect(context);
+ worktoscreenm(context);
+ return;
+}
+
+static inline void showpuztext(Context & context) {
+ context.push(context.cx);
+ findpuztext(context);
+ context.push(context.es);
+ context.push(context.si);
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ obicons(context);
+ context.si = context.pop();
+ context.es = context.pop();
+ context.di = 36;
+ context.bx = 104;
+ context.dl = 241;
+ context.ah = 0;
+ printdirect(context);
+ worktoscreenm(context);
+ context.cx = context.pop();
+ hangonp(context);
+ return;
+}
+
+static inline void issetobonmap(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ getsetad(context);
+ context.al = context.data.byte(context.bx+58);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.al, 0);
+ return;
+}
+
+static inline void setuptimedtemp(Context & context) {
+ context._cmp(context.data.word(328), 0);
+ if (!context.flags.z()) goto cantsetup2;
+ context.data.byte(335) = context.bh;
+ context.data.byte(336) = context.bl;
+ context.data.word(330) = context.cx;
+ context._add(context.dx, context.cx);
+ context.data.word(328) = context.dx;
+ context.bl = context.al;
+ context.bh = 0;
+ context._add(context.bx, context.bx);
+ context.es = context.data.word(466);
+ context.cx = 66*2;
+ context.ax = context.data.word(context.bx);
+ context._add(context.ax, context.cx);
+ context.bx = context.ax;
+ context.data.word(332) = context.es;
+ context.data.word(334) = context.bx;
+cantsetup2:
+ return;
+}
+
+static inline void edenscdplayer(Context & context) {
+ showfirstuse(context);
+ context.data.word(21) = 18*2;
+ context.data.word(23) = 25;
+ context.data.word(25) = 42;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void usewall(Context & context) {
+ showfirstuse(context);
+ context._cmp(context.data.byte(475), 3);
+ if (context.flags.z()) goto gobackover;
+ context.data.word(21) = 30*2;
+ context.data.word(23) = 2;
+ context.data.word(25) = 31;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.al = 3;
+ turnpathon(context);
+ context.al = 4;
+ turnpathon(context);
+ context.al = 0;
+ turnpathoff(context);
+ context.al = 1;
+ turnpathoff(context);
+ context.al = 2;
+ turnpathoff(context);
+ context.al = 5;
+ turnpathoff(context);
+ context.data.byte(475) = 3;
+ context.data.byte(477) = 3;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ switchryanoff(context);
+ return;
+gobackover:
+ context.data.word(21) = 30*2;
+ context.data.word(23) = 34;
+ context.data.word(25) = 60;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.al = 3;
+ turnpathoff(context);
+ context.al = 4;
+ turnpathoff(context);
+ context.al = 0;
+ turnpathon(context);
+ context.al = 1;
+ turnpathon(context);
+ context.al = 2;
+ turnpathon(context);
+ context.al = 5;
+ turnpathon(context);
+ context.data.byte(475) = 5;
+ context.data.byte(477) = 5;
+ findxyfrompath(context);
+ context.data.byte(187) = 1;
+ switchryanoff(context);
+ return;
+}
+
+static inline void usechurchgate(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto gatewith;
+ withwhat(context);
+ return;
+gatewith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'C';
+ context.ch = 'U';
+ context.dl = 'T';
+ context.dh = 'T';
+ compare(context);
+ if (context.flags.z()) goto cutgate;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+cutgate:
+ showfirstuse(context);
+ context.data.word(21) = 64*2;
+ context.data.word(23) = 4;
+ context.data.word(25) = 70;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.al = 3;
+ turnpathon(context);
+ context._cmp(context.data.byte(44), 0);
+ if (context.flags.z()) goto notopenchurch;
+ context.al = 2;
+ turnpathon(context);
+notopenchurch:
+ return;
+}
+
+static inline void usegun(Context & context) {
+ context._cmp(context.data.byte(102), 4);
+ if (context.flags.z()) goto istakengun;
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+istakengun:
+ context._cmp(context.data.byte(184), 22);
+ if (!context.flags.z()) goto notinpoolroom;
+ context.cx = 300;
+ context.al = 34;
+ showpuztext(context);
+ context.data.byte(65) = 1;
+ context.data.byte(64) = 39;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ return;
+notinpoolroom:
+ context._cmp(context.data.byte(184), 25);
+ if (!context.flags.z()) goto nothelicopter;
+ context.cx = 300;
+ context.al = 34;
+ showpuztext(context);
+ context.data.byte(65) = 1;
+ context.data.byte(64) = 19;
+ context.data.byte(103) = 1;
+ context.data.byte(66) = 2;
+ context.data.byte(67) = 38;
+ context.data.byte(43) = 1;
+ context._add(context.data.byte(2), 1);
+ return;
+nothelicopter:
+ context._cmp(context.data.byte(184), 27);
+ if (!context.flags.z()) goto notinrockroom;
+ context.cx = 300;
+ context.al = 46;
+ showpuztext(context);
+ context.data.byte(234) = 2;
+ context.data.byte(41) = 1;
+ context.data.byte(65) = 1;
+ context.data.byte(34) = 1;
+ context.data.byte(103) = 1;
+ context.data.byte(67) = 32;
+ context.data.byte(66) = 0;
+ context._add(context.data.byte(2), 1);
+ return;
+notinrockroom:
+ context._cmp(context.data.byte(184), 8);
+ if (!context.flags.z()) goto notbystudio;
+ context._cmp(context.data.byte(148), 22);
+ if (!context.flags.z()) goto notbystudio;
+ context._cmp(context.data.byte(149), 40);
+ if (!context.flags.z()) goto notbystudio;
+ context.al = 92;
+ issetobonmap(context);
+ if (context.flags.z()) goto notbystudio;
+ context._cmp(context.data.byte(475), 9);
+ if (context.flags.z()) goto notbystudio;
+ context.data.byte(478) = 9;
+ context.data.byte(477) = 9;
+ autosetwalk(context);
+ context.data.byte(65) = 1;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ return;
+notbystudio:
+ context._cmp(context.data.byte(184), 6);
+ if (!context.flags.z()) goto notsarters;
+ context._cmp(context.data.byte(148), 11);
+ if (!context.flags.z()) goto notsarters;
+ context._cmp(context.data.byte(149), 20);
+ if (!context.flags.z()) goto notsarters;
+ context.al = 5;
+ issetobonmap(context);
+ if (!context.flags.z()) goto notsarters;
+ context.data.byte(478) = 1;
+ context.data.byte(477) = 1;
+ autosetwalk(context);
+ context.al = 5;
+ removesetobject(context);
+ context.al = 6;
+ placesetobject(context);
+ context.al = 1;
+ context.ah = context.data.byte(185);
+ context._sub(context.ah, 1);
+ turnanypathon(context);
+ context.data.byte(35) = 1;
+ context.data.word(21) = 40*2;
+ context.data.word(23) = 4;
+ context.data.word(25) = 43;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ return;
+notsarters:
+ context._cmp(context.data.byte(184), 29);
+ if (!context.flags.z()) goto notaide;
+ context.data.byte(103) = 1;
+ context.al = 13;
+ resetlocation(context);
+ context.al = 12;
+ setlocation(context);
+ context.data.byte(183) = 12;
+ context.data.byte(478) = 2;
+ context.data.byte(477) = 2;
+ autosetwalk(context);
+ context.data.word(21) = 164*2;
+ context.data.word(23) = 3;
+ context.data.word(25) = 164;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(44) = 1;
+ context.data.byte(66) = 3;
+ context.data.byte(67) = 33;
+ context._add(context.data.byte(2), 1);
+ return;
+notaide:
+ context._cmp(context.data.byte(184), 23);
+ if (!context.flags.z()) goto notwithboss;
+ context._cmp(context.data.byte(148), 0);
+ if (!context.flags.z()) goto notwithboss;
+ context._cmp(context.data.byte(149), 50);
+ if (!context.flags.z()) goto notwithboss;
+ context._cmp(context.data.byte(475), 5);
+ if (context.flags.z()) goto pathokboss;
+ context.data.byte(478) = 5;
+ context.data.byte(477) = 5;
+ autosetwalk(context);
+pathokboss:
+ context.data.byte(65) = 1;
+ context.data.byte(103) = 1;
+ return;
+notwithboss:
+ context._cmp(context.data.byte(184), 8);
+ if (!context.flags.z()) goto nottvsoldier;
+ context._cmp(context.data.byte(148), 11);
+ if (!context.flags.z()) goto nottvsoldier;
+ context._cmp(context.data.byte(149), 10);
+ if (!context.flags.z()) goto nottvsoldier;
+ context._cmp(context.data.byte(475), 2);
+ if (context.flags.z()) goto pathoktv;
+ context.data.byte(478) = 2;
+ context.data.byte(477) = 2;
+ autosetwalk(context);
+pathoktv:
+ context.data.byte(65) = 1;
+ context.data.byte(103) = 1;
+ return;
+nottvsoldier:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void useshield(Context & context) {
+ context._cmp(context.data.byte(184), 20);
+ if (!context.flags.z()) goto notinsartroom;
+ context._cmp(context.data.byte(64), 0);
+ if (context.flags.z()) goto notinsartroom;
+ context.data.byte(65) = 3;
+ showseconduse(context);
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ removeobfrominv(context);
+ return;
+notinsartroom:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usebuttona(Context & context) {
+ context.al = 95;
+ issetobonmap(context);
+ if (context.flags.z()) goto donethisbit;
+ showfirstuse(context);
+ context.al = 0;
+ context.ah = context.data.byte(185);
+ context._sub(context.ah, 1);
+ turnanypathon(context);
+ context.al = 9;
+ removesetobject(context);
+ context.al = 95;
+ placesetobject(context);
+ context.data.word(21) = 15*2;
+ context.data.word(23) = 71;
+ context.data.word(25) = 85;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ return;
+donethisbit:
+ showseconduse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void useplate(Context & context) {
+ context._cmp(context.data.byte(95), 255);
+ if (!context.flags.z()) goto platewith;
+ withwhat(context);
+ return;
+platewith:
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'S';
+ context.ch = 'C';
+ context.dl = 'R';
+ context.dh = 'W';
+ compare(context);
+ if (context.flags.z()) goto unscrewplate;
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
+ context.cl = 'K';
+ context.ch = 'N';
+ context.dl = 'F';
+ context.dh = 'E';
+ compare(context);
+ if (context.flags.z()) goto triedknife;
+ context.cx = 300;
+ context.al = 14;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+unscrewplate:
+ context.al = 20;
+ playchannel1(context);
+ showfirstuse(context);
+ context.al = 28;
+ placesetobject(context);
+ context.al = 24;
+ placesetobject(context);
+ context.al = 25;
+ removesetobject(context);
+ context.al = 0;
+ placefreeobject(context);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
+ return;
+triedknife:
+ context.cx = 300;
+ context.al = 54;
+ showpuztext(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void usewinch(Context & context) {
+ context.al = 40;
+ context.ah = 1;
+ checkinside(context);
+ context._cmp(context.cl, 114);
+ if (context.flags.z()) goto nowinch;
+ context.al = context.cl;
+ context.ah = 4;
+ context.cl = 'F';
+ context.ch = 'U';
+ context.dl = 'S';
+ context.dh = 'E';
+ compare(context);
+ if (!context.flags.z()) goto nowinch;
+ context.data.word(21) = 217*2;
+ context.data.word(23) = 0;
+ context.data.word(25) = 217;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(183) = 1;
+ context.data.byte(188) = 45;
+ context.data.byte(66) = 1;
+ context.data.byte(67) = 44;
+ context.data.byte(42) = 1;
+ context.data.byte(34) = 2;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ return;
+nowinch:
+ showfirstuse(context);
+ putbackobstuff(context);
+ return;
+}
+
+static inline void entercode(Context & context) {
+ context.data.word(284) = context.ax;
+ context.data.word(286) = context.cx;
+ getridofreels(context);
+ loadkeypad(context);
+ createpanel(context);
+ showicon(context);
+ showouterpad(context);
+ showkeypad(context);
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+ context.data.word(280) = 0;
+ context.data.byte(103) = 0;
+keypadloop:
+ delpointer(context);
+ readmouse(context);
+ showkeypad(context);
+ showpointer(context);
+ context._cmp(context.data.byte(282), 0);
+ if (context.flags.z()) goto nopresses;
+ context._sub(context.data.byte(282), 1);
+ goto afterpress;
+nopresses:
+ context.data.byte(278) = 255;
+ context.data.byte(281) = 255;
+ vsync(context);
+afterpress:
+ dumppointer(context);
+ dumpkeypad(context);
+ dumptextline(context);
+ context.bx = 3393;
+ checkcoords(context);
+ context._cmp(context.data.byte(103), 1);
+ if (context.flags.z()) goto numberright;
+ context._cmp(context.data.byte(287), 1);
+ if (!context.flags.z()) goto notendkey;
+ context._cmp(context.data.byte(37), 0);
+ if (context.flags.z()) goto numberright;
+ goto keypadloop;
+notendkey:
+ context._cmp(context.data.byte(282), 40);
+ if (!context.flags.z()) goto keypadloop;
+ addtopresslist(context);
+ context._cmp(context.data.byte(278), 11);
+ if (!context.flags.z()) goto keypadloop;
+ context.ax = context.data.word(284);
+ context.cx = context.data.word(286);
+ isitright(context);
+ if (!context.flags.z()) goto incorrect;
+ context.data.byte(37) = 0;
+ context.al = 11;
+ playchannel1(context);
+ context.data.byte(287) = 120;
+ context.data.word(280) = 0;
+ goto keypadloop;
+incorrect:
+ context.al = 11;
+ playchannel1(context);
+ context.data.byte(287) = 120;
+ context.data.word(280) = 0;
+ goto keypadloop;
+numberright:
+ context.data.byte(131) = 0;
+ getridoftemp(context);
+ restorereels(context);
+ redrawmainscrn(context);
+ worktoscreenm(context);
+ return;
+}
+
+static inline void quitkey(Context & context) {
+ context._cmp(context.data.byte(100), 222);
+ if (context.flags.z()) goto alreadyqk;
+ context.data.byte(100) = 222;
+ context.al = 4;
+ commandonly(context);
+alreadyqk:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notqk;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto doqk;
+notqk:
+ return;
+doqk:
+ context.data.byte(103) = 1;
+ return;
+}
+
+static inline void addtopresslist(Context & context) {
+ context._cmp(context.data.word(280), 5);
+ if (context.flags.z()) goto nomorekeys;
+ context.al = context.data.byte(278);
+ context._cmp(context.al, 10);
+ if (!context.flags.z()) goto not10;
+ context.al = 0;
+not10:
+ context.bx = context.data.word(280);
+ context.dx = context.ds;
+ context.es = context.dx;
+ context._add(context.bx, 8350);
+ context.data.byte(context.bx) = context.al;
+ context._add(context.data.word(280), 1);
+nomorekeys:
+ return;
+}
+
+static inline void buttonone(Context & context) {
+ context.cl = 1;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttontwo(Context & context) {
+ context.cl = 2;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonthree(Context & context) {
+ context.cl = 3;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonfour(Context & context) {
+ context.cl = 4;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonfive(Context & context) {
+ context.cl = 5;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonsix(Context & context) {
+ context.cl = 6;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonseven(Context & context) {
+ context.cl = 7;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttoneight(Context & context) {
+ context.cl = 8;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonnine(Context & context) {
+ context.cl = 9;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonnought(Context & context) {
+ context.cl = 10;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonenter(Context & context) {
+ context.cl = 11;
+ buttonpress(context);
+ return;
+}
+
+static inline void buttonpress(Context & context) {
+ context.ch = context.cl;
+ context._add(context.ch, 100);
+ context._cmp(context.data.byte(100), context.ch);
+ if (context.flags.z()) goto alreadyb;
+ context.data.byte(100) = context.ch;
+ context.al = context.cl;
+ context._add(context.al, 4);
+ context.push(context.cx);
+ commandonly(context);
+ context.cx = context.pop();
+alreadyb:
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
+ if (context.flags.z()) goto notb;
+ context._and(context.ax, 1);
+ if (!context.flags.z()) goto dob;
+notb:
+ return;
+dob:
+ context.data.byte(278) = context.cl;
+ context._add(context.cl, 21);
+ context.data.byte(281) = context.cl;
+ context.data.byte(282) = 40;
+ context._cmp(context.cl, 32);
+ if (context.flags.z()) goto nonoise;
+ context.al = 10;
+ playchannel1(context);
+nonoise:
+ return;
+}
+
+static inline void showouterpad(Context & context) {
+ context.di = 36+112-3;
+ context.bx = 72-4;
+ context.ds = context.data.word(458);
+ context.al = 1;
+ context.ah = 0;
+ showframe(context);
+ context.di = 36+112+74;
+ context.bx = 72+76;
+ context.ds = context.data.word(458);
+ context.al = 37;
+ context.ah = 0;
+ showframe(context);
+ return;
+}
+
+static inline void showkeypad(Context & context) {
+ context.al = 22;
+ context.di = 36+112+9;
+ context.bx = 72+5;
+ singlekey(context);
+ context.al = 23;
+ context.di = 36+112+31;
+ context.bx = 72+5;
+ singlekey(context);
+ context.al = 24;
+ context.di = 36+112+53;
+ context.bx = 72+5;
+ singlekey(context);
+ context.al = 25;
+ context.di = 36+112+9;
+ context.bx = 72+23;
+ singlekey(context);
+ context.al = 26;
+ context.di = 36+112+31;
+ context.bx = 72+23;
+ singlekey(context);
+ context.al = 27;
+ context.di = 36+112+53;
+ context.bx = 72+23;
+ singlekey(context);
+ context.al = 28;
+ context.di = 36+112+9;
+ context.bx = 72+41;
+ singlekey(context);
+ context.al = 29;
+ context.di = 36+112+31;
+ context.bx = 72+41;
+ singlekey(context);
+ context.al = 30;
+ context.di = 36+112+53;
+ context.bx = 72+41;
+ singlekey(context);
+ context.al = 31;
+ context.di = 36+112+9;
+ context.bx = 72+59;
+ singlekey(context);
+ context.al = 32;
+ context.di = 36+112+31;
+ context.bx = 72+59;
+ singlekey(context);
+ context._cmp(context.data.byte(287), 0);
+ if (context.flags.z()) goto notenter;
+ context._sub(context.data.byte(287), 1);
+ context.al = 36;
+ context.bx = 72-1+63;
+ context._cmp(context.data.byte(37), 0);
+ if (!context.flags.z()) goto changelight;
+ context.al = 41;
+ context.bx = 72+4+63;
+changelight:
+ context._cmp(context.data.byte(287), 60);
+ if (context.flags.c()) goto gotlight;
+ context._cmp(context.data.byte(287), 100);
+ if (!context.flags.c()) goto gotlight;
+ context._sub(context.al, 1);
+gotlight:
+ context.ds = context.data.word(458);
+ context.ah = 0;
+ context.di = 36+112+60;
+ showframe(context);
+notenter:
+ return;
+}
+
+static inline void singlekey(Context & context) {
+ context._cmp(context.data.byte(281), context.al);
+ if (!context.flags.z()) goto gotkey;
+ context._add(context.al, 11);
+ context._cmp(context.data.byte(282), 8);
+ if (!context.flags.c()) goto gotkey;
+ context._sub(context.al, 11);
+gotkey:
+ context.ds = context.data.word(458);
+ context._sub(context.al, 20);
+ context.ah = 0;
+ showframe(context);
+ return;
+}
+
+static inline void dumpkeypad(Context & context) {
+ context.di = 36+112-3;
+ context.bx = 72-4;
+ context.cl = 120;
+ context.ch = 90;
+ multidump(context);
+ return;
+}
+
+static inline void usemenu(Context & context) {
+ getridofreels(context);
+ loadmenu(context);
+ createpanel(context);
+ showpanel(context);
+ showicon(context);
+ context.data.byte(62) = 0;
+ drawfloor(context);
+ printsprites(context);
+ context.al = 4;
+ context.ah = 0;
+ context.di = 80+40-48;
Commit: 51f44779ca432809a21ac867b87d20e85fcc807f
https://github.com/scummvm/scummvm/commit/51f44779ca432809a21ac867b87d20e85fcc807f
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:11-07:00
Commit Message:
DREAMWEB: regenerate sources
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index ec243cc..06aed60 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2,6 +2,8 @@
namespace dreamgen {
+static inline void seecommandtail(Context &context);
+static inline void checkbasemem(Context &context);
static inline void allocatebuffers(Context &context);
static inline void clearbuffers(Context &context);
static inline void clearpalette(Context &context);
@@ -278,6 +280,7 @@ static inline void runintroseq(Context &context);
static inline void trysoundalloc(Context &context);
static inline void allocatework(Context &context);
static inline void checkforemm(Context &context);
+static inline void parseblaster(Context &context);
static inline void printcurs(Context &context);
static inline void delcurs(Context &context);
static inline void commandonly(Context &context);
@@ -295,7 +298,6 @@ static inline void checkifset(Context &context);
static inline void identifyob(Context &context);
static inline void convnum(Context &context);
static inline void onedigit(Context &context);
-static inline void parseblaster(Context &context);
static inline void volumeadjust(Context &context);
static inline void loopchannel0(Context &context);
static inline void createname(Context &context);
@@ -11771,52 +11773,114 @@ doneit:
return;
}
-static inline void seecommandtail(Context & context) {
- context.data.word(372) = 0x220;
- context.data.byte(378) = 5;
- context.data.byte(379) = 1;
- context.data.byte(73) = 0;
- context.bx = 2;
- context.ax = context.data.word(context.bx);
- context.dx = context.es;
- context._sub(context.ax, context.dx);
- context.data.word(534) = context.ax;
- context.bx = 0x02c;
- context.ax = context.data.word(context.bx);
- context.push(context.es);
- context.push(context.bx);
- context.es = context.ax;
- context.bx = 0;
-findblaster:
- context.ax = context.data.word(context.bx);
- context._cmp(context.ax, 0);
- if (context.flags.z()) goto endofenvironment;
- context._cmp(context.al, 'B');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ah, 'L');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.data.byte(context.bx+2), 'A');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.data.byte(context.bx+3), 'S');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.data.byte(context.bx+4), 'T');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.data.byte(context.bx+5), 'E');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.data.byte(context.bx+6), 'R');
- if (!context.flags.z()) goto notblast;
- context._add(context.bx, 7);
- parseblaster(context);
- goto endofenvironment;
-notblast:
- context._add(context.bx, 1);
- goto findblaster;
-endofenvironment:
- context.bx = context.pop();
- context.es = context.pop();
- context.bx = 0x81;
- parseblaster(context);
- return;
+static inline void dreamweb(Context & context) {
+ seecommandtail(context);
+ checkbasemem(context);
+ soundstartup(context);
+ setkeyboardint(context);
+ setupemm(context);
+ allocatebuffers(context);
+ setmouse(context);
+ fadedos(context);
+ gettime(context);
+ clearbuffers(context);
+ clearpalette(context);
+ set16colpalette(context);
+ readsetdata(context);
+ context.data.byte(391) = 0;
+ context.dx = 1922;
+ loadsample(context);
+ setsoundoff(context);
+ scanfornames(context);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto dodecisions;
+ setmode(context);
+ loadpalfromiff(context);
+ titles(context);
+ credits(context);
+ goto playgame;
+dodecisions:
+ cls(context);
+ setmode(context);
+ decide(context);
+ context._cmp(context.data.byte(103), 4);
+ if (context.flags.z()) goto mainloop;
+ titles(context);
+ credits(context);
+playgame:
+ clearchanges(context);
+ setmode(context);
+ loadpalfromiff(context);
+ context.data.byte(9) = 255;
+ context.data.byte(67) = 1;
+ context.data.byte(188) = 35;
+ context.data.byte(386) = 7;
+ loadroom(context);
+ clearsprites(context);
+ initman(context);
+ entrytexts(context);
+ entryanims(context);
+ context.data.byte(183) = 3;
+ initialinv(context);
+ context.data.byte(153) = 32;
+ startup1(context);
+ context.data.byte(387) = 0;
+ context.data.byte(388) = -1;
+ context.data.byte(100) = 255;
+ goto mainloop;
+loadnew:
+ clearbeforeload(context);
+ loadroom(context);
+ clearsprites(context);
+ initman(context);
+ entrytexts(context);
+ entryanims(context);
+ context.data.byte(188) = 255;
+ startup(context);
+ context.data.byte(100) = 255;
+ worktoscreenm(context);
+ goto mainloop;
+alreadyloaded:
+ context.data.byte(188) = 255;
+ clearsprites(context);
+ initman(context);
+ startup(context);
+ context.data.byte(100) = 255;
+mainloop:
+ screenupdate(context);
+ context._cmp(context.data.byte(391), 0);
+ if (!context.flags.z()) goto endofgame;
+ context._cmp(context.data.byte(56), 1);
+ if (context.flags.z()) goto gameover;
+ context._cmp(context.data.byte(56), 2);
+ if (context.flags.z()) goto gameover;
+ context._cmp(context.data.word(21), 0);
+ if (context.flags.z()) goto notwatching;
+ context.al = context.data.byte(477);
+ context._cmp(context.al, context.data.byte(475));
+ if (!context.flags.z()) goto mainloop;
+ context._sub(context.data.word(21), 1);
+ if (!context.flags.z()) goto mainloop;
+notwatching:
+ context._cmp(context.data.byte(56), 4);
+ if (context.flags.z()) goto gameover;
+ context._cmp(context.data.byte(188), 255);
+ if (!context.flags.z()) goto loadnew;
+ goto mainloop;
+gameover:
+ clearbeforeload(context);
+ showgun(context);
+ fadescreendown(context);
+ context.cx = 100;
+ hangon(context);
+ goto dodecisions;
+endofgame:
+ clearbeforeload(context);
+ fadescreendowns(context);
+ context.cx = 200;
+ hangon(context);
+ endgame(context);
+ { quickquit2(context); return; };
}
static inline void parseblaster(Context & context) {
@@ -12713,6 +12777,64 @@ static inline void getridoftempsp(Context & context) {
return;
}
+static inline void seecommandtail(Context & context) {
+ context.data.word(372) = 0x220;
+ context.data.byte(378) = 5;
+ context.data.byte(379) = 1;
+ context.data.byte(73) = 0;
+ context.bx = 2;
+ context.ax = context.data.word(context.bx);
+ context.dx = context.es;
+ context._sub(context.ax, context.dx);
+ context.data.word(534) = context.ax;
+ context.bx = 0x02c;
+ context.ax = context.data.word(context.bx);
+ context.push(context.es);
+ context.push(context.bx);
+ context.es = context.ax;
+ context.bx = 0;
+findblaster:
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.ax, 0);
+ if (context.flags.z()) goto endofenvironment;
+ context._cmp(context.al, 'B');
+ if (!context.flags.z()) goto notblast;
+ context._cmp(context.ah, 'L');
+ if (!context.flags.z()) goto notblast;
+ context._cmp(context.data.byte(context.bx+2), 'A');
+ if (!context.flags.z()) goto notblast;
+ context._cmp(context.data.byte(context.bx+3), 'S');
+ if (!context.flags.z()) goto notblast;
+ context._cmp(context.data.byte(context.bx+4), 'T');
+ if (!context.flags.z()) goto notblast;
+ context._cmp(context.data.byte(context.bx+5), 'E');
+ if (!context.flags.z()) goto notblast;
+ context._cmp(context.data.byte(context.bx+6), 'R');
+ if (!context.flags.z()) goto notblast;
+ context._add(context.bx, 7);
+ parseblaster(context);
+ goto endofenvironment;
+notblast:
+ context._add(context.bx, 1);
+ goto findblaster;
+endofenvironment:
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.bx = 0x81;
+ parseblaster(context);
+ return;
+}
+
+static inline void checkbasemem(Context & context) {
+ context.bx = context.data.word(534);
+ context._cmp(context.bx, 0x9360);
+ if (!context.flags.c()) goto enoughmem;
+ context.data.byte(532) = 5;
+ { quickquit(context); return; };
+enoughmem:
+ return;
+}
+
static inline void checkforemm(Context & context) {
return;
}
@@ -20745,6 +20867,116 @@ static inline void endgame(Context & context) {
return;
}
+static inline void dreamweb(Context & context) {
+ seecommandtail(context);
+ checkbasemem(context);
+ soundstartup(context);
+ setkeyboardint(context);
+ setupemm(context);
+ allocatebuffers(context);
+ setmouse(context);
+ fadedos(context);
+ gettime(context);
+ clearbuffers(context);
+ clearpalette(context);
+ set16colpalette(context);
+ readsetdata(context);
+ context.data.byte(391) = 0;
+ context.dx = 1922;
+ loadsample(context);
+ setsoundoff(context);
+ scanfornames(context);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto dodecisions;
+ setmode(context);
+ loadpalfromiff(context);
+ titles(context);
+ credits(context);
+ goto playgame;
+dodecisions:
+ cls(context);
+ setmode(context);
+ decide(context);
+ context._cmp(context.data.byte(103), 4);
+ if (context.flags.z()) goto mainloop;
+ titles(context);
+ credits(context);
+playgame:
+ clearchanges(context);
+ setmode(context);
+ loadpalfromiff(context);
+ context.data.byte(9) = 255;
+ context.data.byte(67) = 1;
+ context.data.byte(188) = 35;
+ context.data.byte(386) = 7;
+ loadroom(context);
+ clearsprites(context);
+ initman(context);
+ entrytexts(context);
+ entryanims(context);
+ context.data.byte(183) = 3;
+ initialinv(context);
+ context.data.byte(153) = 32;
+ startup1(context);
+ context.data.byte(387) = 0;
+ context.data.byte(388) = -1;
+ context.data.byte(100) = 255;
+ goto mainloop;
+loadnew:
+ clearbeforeload(context);
+ loadroom(context);
+ clearsprites(context);
+ initman(context);
+ entrytexts(context);
+ entryanims(context);
+ context.data.byte(188) = 255;
+ startup(context);
+ context.data.byte(100) = 255;
+ worktoscreenm(context);
+ goto mainloop;
+alreadyloaded:
+ context.data.byte(188) = 255;
+ clearsprites(context);
+ initman(context);
+ startup(context);
+ context.data.byte(100) = 255;
+mainloop:
+ screenupdate(context);
+ context._cmp(context.data.byte(391), 0);
+ if (!context.flags.z()) goto endofgame;
+ context._cmp(context.data.byte(56), 1);
+ if (context.flags.z()) goto gameover;
+ context._cmp(context.data.byte(56), 2);
+ if (context.flags.z()) goto gameover;
+ context._cmp(context.data.word(21), 0);
+ if (context.flags.z()) goto notwatching;
+ context.al = context.data.byte(477);
+ context._cmp(context.al, context.data.byte(475));
+ if (!context.flags.z()) goto mainloop;
+ context._sub(context.data.word(21), 1);
+ if (!context.flags.z()) goto mainloop;
+notwatching:
+ context._cmp(context.data.byte(56), 4);
+ if (context.flags.z()) goto gameover;
+ context._cmp(context.data.byte(188), 255);
+ if (!context.flags.z()) goto loadnew;
+ goto mainloop;
+gameover:
+ clearbeforeload(context);
+ showgun(context);
+ fadescreendown(context);
+ context.cx = 100;
+ hangon(context);
+ goto dodecisions;
+endofgame:
+ clearbeforeload(context);
+ fadescreendowns(context);
+ context.cx = 200;
+ hangon(context);
+ endgame(context);
+ { quickquit2(context); return; };
+}
+
Data::Data() {
static const uint8 src[] = {
@@ -21900,6 +22132,7 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc93c: getridofpit(context); break;
case 0xc940: pitinterupt(context); break;
case 0xc944: dreamweb(context); break;
+ case 0xc944: dreamweb(context); break;
case 0xc948: entrytexts(context); break;
case 0xc94c: entryanims(context); break;
case 0xc950: initialinv(context); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 6f20136..7cad64e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -15,13 +15,8 @@ namespace dreamgen {
void __dispatch_call(Context &context, unsigned addr);
void randomnumber(Context &context);
- void dreamweb(Context &context);
- void resetkeyboard(Context &context);
- void removeemm(Context &context);
- void soundend(Context &context);
- void disablesoundint(Context &context);
- void out22c(Context &context);
- void getridofpit(Context &context);
+ void quickquit(Context &context);
+ void quickquit2(Context &context);
void deallocatemem(Context &context);
void vsync(Context &context);
void closefile(Context &context);
@@ -47,11 +42,13 @@ namespace dreamgen {
void setupemm(Context &context);
void setkeyboardint(Context &context);
void soundstartup(Context &context);
- void checkbasemem(Context &context);
void keyboardread(Context &context);
+ void resetkeyboard(Context &context);
void openforsave(Context &context);
void createfile(Context &context);
+ void removeemm(Context &context);
void pitinterupt(Context &context);
+ void getridofpit(Context &context);
void setuppit(Context &context);
void startdmablock(Context &context);
void dmaend(Context &context);
@@ -60,7 +57,10 @@ namespace dreamgen {
void bothchannels(Context &context);
void channel1only(Context &context);
void channel0only(Context &context);
+ void out22c(Context &context);
+ void soundend(Context &context);
void interupttest(Context &context);
+ void disablesoundint(Context &context);
void enablesoundint(Context &context);
void checksoundint(Context &context);
void loadspeech(Context &context);
Commit: 181428e65e0039179b08986c4026ab6ba54cd01c
https://github.com/scummvm/scummvm/commit/181428e65e0039179b08986c4026ab6ba54cd01c
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:30-07:00
Commit Message:
DREAMWEB: started integration of stubs
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 06aed60..5b075a1 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2,487 +2,487 @@
namespace dreamgen {
-static inline void seecommandtail(Context &context);
-static inline void checkbasemem(Context &context);
-static inline void allocatebuffers(Context &context);
-static inline void clearbuffers(Context &context);
-static inline void clearpalette(Context &context);
-static inline void readsetdata(Context &context);
-static inline void loadpalfromiff(Context &context);
-static inline void titles(Context &context);
-static inline void credits(Context &context);
-static inline void cls(Context &context);
-static inline void decide(Context &context);
-static inline void clearchanges(Context &context);
-static inline void loadroom(Context &context);
-static inline void clearsprites(Context &context);
-static inline void initman(Context &context);
-static inline void entrytexts(Context &context);
-static inline void entryanims(Context &context);
-static inline void initialinv(Context &context);
-static inline void startup1(Context &context);
-static inline void clearbeforeload(Context &context);
-static inline void startup(Context &context);
-static inline void worktoscreenm(Context &context);
-static inline void screenupdate(Context &context);
-static inline void showgun(Context &context);
-static inline void fadescreendown(Context &context);
-static inline void hangon(Context &context);
-static inline void fadescreendowns(Context &context);
-static inline void endgame(Context &context);
-static inline void loadtemptext(Context &context);
-static inline void monkspeaking(Context &context);
-static inline void gettingshot(Context &context);
-static inline void getridoftemptext(Context &context);
-static inline void loadintroroom(Context &context);
-static inline void fadescreenups(Context &context);
-static inline void runendseq(Context &context);
-static inline void atmospheres(Context &context);
-static inline void spriteupdate(Context &context);
-static inline void deleverything(Context &context);
-static inline void printsprites(Context &context);
-static inline void reelsonscreen(Context &context);
-static inline void afterintroroom(Context &context);
-static inline void usetimedtext(Context &context);
-static inline void dumpmap(Context &context);
-static inline void dumptimedtext(Context &context);
-static inline void multidump(Context &context);
-static inline void getundertimed(Context &context);
-static inline void printdirect(Context &context);
-static inline void putundertimed(Context &context);
-static inline void multiput(Context &context);
-static inline void getnumber(Context &context);
-static inline void modifychar(Context &context);
-static inline void printchar(Context &context);
-static inline void showframe(Context &context);
-static inline void kernchars(Context &context);
-static inline void frameoutfx(Context &context);
-static inline void frameoutnm(Context &context);
-static inline void frameoutbh(Context &context);
-static inline void frameoutv(Context &context);
-static inline void getnextword(Context &context);
-static inline void multiget(Context &context);
-static inline void clearwork(Context &context);
-static inline void findroominloc(Context &context);
-static inline void drawfloor(Context &context);
-static inline void worktoscreen(Context &context);
-static inline void width160(Context &context);
-static inline void eraseoldobs(Context &context);
-static inline void drawflags(Context &context);
-static inline void calcmapad(Context &context);
-static inline void doblocks(Context &context);
-static inline void showallobs(Context &context);
-static inline void showallfree(Context &context);
-static inline void showallex(Context &context);
-static inline void paneltomap(Context &context);
-static inline void initrain(Context &context);
-static inline void splitintolines(Context &context);
-static inline void getblockofpixel(Context &context);
-static inline void checkone(Context &context);
-static inline void getmapad(Context &context);
-static inline void calcfrframe(Context &context);
-static inline void finalframe(Context &context);
-static inline void getxad(Context &context);
-static inline void getyad(Context &context);
-static inline void makebackob(Context &context);
-static inline void makesprite(Context &context);
-static inline void getdimension(Context &context);
-static inline void addalong(Context &context);
-static inline void addlength(Context &context);
-static inline void reconstruct(Context &context);
-static inline void updatepeople(Context &context);
-static inline void watchreel(Context &context);
-static inline void showrain(Context &context);
-static inline void randomnum1(Context &context);
-static inline void playchannel1(Context &context);
-static inline void plotreel(Context &context);
-static inline void checkforshake(Context &context);
-static inline void autosetwalk(Context &context);
-static inline void getroomspaths(Context &context);
-static inline void checkdest(Context &context);
-static inline void bresenhams(Context &context);
-static inline void workoutframes(Context &context);
-static inline void getreelstart(Context &context);
-static inline void dealwithspecial(Context &context);
-static inline void showreelframe(Context &context);
-static inline void soundonreels(Context &context);
-static inline void playchannel0(Context &context);
-static inline void findsource(Context &context);
-static inline void placesetobject(Context &context);
-static inline void removesetobject(Context &context);
-static inline void placefreeobject(Context &context);
-static inline void removefreeobject(Context &context);
-static inline void switchryanoff(Context &context);
-static inline void switchryanon(Context &context);
-static inline void movemap(Context &context);
-static inline void getfreead(Context &context);
-static inline void findormake(Context &context);
-static inline void getsetad(Context &context);
-static inline void undertextline(Context &context);
-static inline void printasprite(Context &context);
-static inline void maptopanel(Context &context);
-static inline void cancelch0(Context &context);
-static inline void clearstartpal(Context &context);
-static inline void paltoendpal(Context &context);
-static inline void loadroomssample(Context &context);
-static inline void loadintotemp(Context &context);
-static inline void showmonk(Context &context);
-static inline void getridoftemp(Context &context);
-static inline void standardload(Context &context);
-static inline void readheader(Context &context);
-static inline void twodigitnum(Context &context);
-static inline void cancelch1(Context &context);
-static inline void paltostartpal(Context &context);
-static inline void clearendpal(Context &context);
-static inline void greyscalesum(Context &context);
-static inline void endpaltostart(Context &context);
-static inline void createpanel2(Context &context);
-static inline void fadescreenup(Context &context);
-static inline void rollendcredits2(Context &context);
-static inline void rollem(Context &context);
-static inline void hangone(Context &context);
-static inline void createpanel(Context &context);
-static inline void newplace(Context &context);
-static inline void mainscreen(Context &context);
-static inline void animpointer(Context &context);
-static inline void showpointer(Context &context);
-static inline void readmouse1(Context &context);
-static inline void dumppointer(Context &context);
-static inline void dumptextline(Context &context);
-static inline void delpointer(Context &context);
-static inline void autolook(Context &context);
-static inline void watchcount(Context &context);
-static inline void zoom(Context &context);
-static inline void readmouse2(Context &context);
-static inline void dumpzoom(Context &context);
-static inline void afternewroom(Context &context);
-static inline void readmouse3(Context &context);
-static inline void readmouse4(Context &context);
-static inline void dumpwatch(Context &context);
-static inline void findpathofpoint(Context &context);
-static inline void findxyfrompath(Context &context);
-static inline void showicon(Context &context);
-static inline void getunderzoom(Context &context);
-static inline void walkintoroom(Context &context);
-static inline void reminders(Context &context);
-static inline void isryanholding(Context &context);
-static inline void findexobject(Context &context);
-static inline void compare(Context &context);
-static inline void setuptimeduse(Context &context);
-static inline void getanyaddir(Context &context);
-static inline void getexad(Context &context);
-static inline void showpanel(Context &context);
-static inline void showman(Context &context);
-static inline void roomname(Context &context);
-static inline void panelicons1(Context &context);
-static inline void zoomicon(Context &context);
-static inline void middlepanel(Context &context);
-static inline void showwatch(Context &context);
-static inline void showtime(Context &context);
-static inline void printmessage(Context &context);
-static inline void usecharset1(Context &context);
-static inline void putunderzoom(Context &context);
-static inline void crosshair(Context &context);
-static inline void dolook(Context &context);
-static inline void findnextcolon(Context &context);
-static inline void printslow(Context &context);
-static inline void hangonp(Context &context);
-static inline void redrawmainscrn(Context &context);
-static inline void readmouse(Context &context);
-static inline void printboth(Context &context);
-static inline void waitframes(Context &context);
-static inline void dumpblink(Context &context);
-static inline void showblink(Context &context);
-static inline void getflagunderp(Context &context);
-static inline void checkcoords(Context &context);
-static inline void walkandexamine(Context &context);
-static inline void finishedwalking(Context &context);
-static inline void examineob(Context &context);
-static inline void setwalk(Context &context);
-static inline void examineobtext(Context &context);
-static inline void blocknametext(Context &context);
-static inline void personnametext(Context &context);
-static inline void walktotext(Context &context);
-static inline void commandwithob(Context &context);
-static inline void deltextline(Context &context);
-static inline void copyname(Context &context);
-static inline void findobname(Context &context);
-static inline void facerightway(Context &context);
-static inline void showexit(Context &context);
-static inline void obicons(Context &context);
-static inline void obpicture(Context &context);
-static inline void describeob(Context &context);
-static inline void makemainscreen(Context &context);
-static inline void getobtextstart(Context &context);
-static inline void obsthatdothings(Context &context);
-static inline void additionaltext(Context &context);
-static inline void findpuztext(Context &context);
-static inline void getlocation(Context &context);
-static inline void setlocation(Context &context);
-static inline void lookatcard(Context &context);
-static inline void getridofreels(Context &context);
-static inline void loadkeypad(Context &context);
-static inline void hangonw(Context &context);
-static inline void restorereels(Context &context);
-static inline void putbackobstuff(Context &context);
-static inline void getroomdata(Context &context);
-static inline void allocateload(Context &context);
-static inline void searchforsame(Context &context);
-static inline void getanyad(Context &context);
-static inline void selectlocation(Context &context);
-static inline void readcitypic(Context &context);
-static inline void showcity(Context &context);
-static inline void readdesticon(Context &context);
-static inline void loadtraveltext(Context &context);
-static inline void showarrows(Context &context);
-static inline void locationpic(Context &context);
-static inline void getridoftemp2(Context &context);
-static inline void getridoftemp3(Context &context);
-static inline void getdestinfo(Context &context);
-static inline void loadintotemp2(Context &context);
-static inline void loadintotemp3(Context &context);
-static inline void clearreels(Context &context);
-static inline void clearrest(Context &context);
-static inline void pickupob(Context &context);
-static inline void transfertoex(Context &context);
-static inline void emergencypurge(Context &context);
-static inline void getexpos(Context &context);
-static inline void transfermap(Context &context);
-static inline void transferinv(Context &context);
-static inline void transfertext(Context &context);
-static inline void pickupconts(Context &context);
-static inline void transfercontoex(Context &context);
-static inline void purgeanitem(Context &context);
-static inline void deleteexobject(Context &context);
-static inline void deleteexframe(Context &context);
-static inline void deleteextext(Context &context);
-static inline void resetlocation(Context &context);
-static inline void checkifpathison(Context &context);
-static inline void turnpathon(Context &context);
-static inline void turnanypathon(Context &context);
-static inline void purgealocation(Context &context);
-static inline void startloading(Context &context);
-static inline void fillspace(Context &context);
-static inline void sortoutmap(Context &context);
-static inline void deletetaken(Context &context);
-static inline void setallchanges(Context &context);
-static inline void autoappear(Context &context);
-static inline void dochange(Context &context);
-static inline void loadsavebox(Context &context);
-static inline void showdecisions(Context &context);
-static inline void showopbox(Context &context);
-static inline void realcredits(Context &context);
-static inline void allpalette(Context &context);
-static inline void dumpcurrent(Context &context);
-static inline void biblequote(Context &context);
-static inline void intro(Context &context);
-static inline void runintroseq(Context &context);
-static inline void trysoundalloc(Context &context);
-static inline void allocatework(Context &context);
-static inline void checkforemm(Context &context);
-static inline void parseblaster(Context &context);
-static inline void printcurs(Context &context);
-static inline void delcurs(Context &context);
-static inline void commandonly(Context &context);
-static inline void talk(Context &context);
-static inline void obname(Context &context);
-static inline void pixelcheckset(Context &context);
-static inline void isitdescribed(Context &context);
-static inline void getreelframeax(Context &context);
-static inline void blank(Context &context);
-static inline void findfirstpath(Context &context);
-static inline void checkifex(Context &context);
-static inline void checkiffree(Context &context);
-static inline void checkifperson(Context &context);
-static inline void checkifset(Context &context);
-static inline void identifyob(Context &context);
-static inline void convnum(Context &context);
-static inline void onedigit(Context &context);
-static inline void volumeadjust(Context &context);
-static inline void loopchannel0(Context &context);
-static inline void createname(Context &context);
-static inline void doload(Context &context);
-static inline void showloadops(Context &context);
-static inline void showslots(Context &context);
-static inline void shownames(Context &context);
-static inline void namestoold(Context &context);
-static inline void storeit(Context &context);
-static inline void makeheader(Context &context);
-static inline void oldtonames(Context &context);
-static inline void showsaveops(Context &context);
-static inline void readkey(Context &context);
-static inline void getnamepos(Context &context);
-static inline void selectslot(Context &context);
-static inline void restoreall(Context &context);
-static inline void checkinput(Context &context);
-static inline void showdiscops(Context &context);
-static inline void getback1(Context &context);
-static inline void getridofall(Context &context);
-static inline void showmainops(Context &context);
-static inline void dosaveload(Context &context);
-static inline void findtext1(Context &context);
-static inline void usetempcharset(Context &context);
-static inline void showdiary(Context &context);
-static inline void showdiarypage(Context &context);
-static inline void loadtempcharset(Context &context);
-static inline void showdiarykeys(Context &context);
-static inline void dumpdiarykeys(Context &context);
-static inline void getridoftempcharset(Context &context);
-static inline void nextsymbol(Context &context);
-static inline void showsymbol(Context &context);
-static inline void updatesymboltop(Context &context);
-static inline void updatesymbolbot(Context &context);
-static inline void dumpsymbol(Context &context);
-static inline void turnanypathoff(Context &context);
-static inline void folderexit(Context &context);
-static inline void showleftpage(Context &context);
-static inline void showrightpage(Context &context);
-static inline void showfolder(Context &context);
-static inline void folderhints(Context &context);
-static inline void loadfolder(Context &context);
-static inline void loadmenu(Context &context);
-static inline void getundermenu(Context &context);
-static inline void putundermenu(Context &context);
-static inline void showmenu(Context &context);
-static inline void dumpmenu(Context &context);
-static inline void singlekey(Context &context);
-static inline void buttonpress(Context &context);
-static inline void showouterpad(Context &context);
-static inline void showkeypad(Context &context);
-static inline void dumpkeypad(Context &context);
-static inline void addtopresslist(Context &context);
-static inline void isitright(Context &context);
-static inline void checkinside(Context &context);
-static inline void showfirstuse(Context &context);
-static inline void withwhat(Context &context);
-static inline void showpuztext(Context &context);
-static inline void issetobonmap(Context &context);
-static inline void showseconduse(Context &context);
-static inline void removeobfrominv(Context &context);
-static inline void turnpathoff(Context &context);
-static inline void findinvpos(Context &context);
-static inline void useroutine(Context &context);
-static inline void printmessage2(Context &context);
-static inline void fillryan(Context &context);
-static inline void findsetobject(Context &context);
-static inline void usetext(Context &context);
-static inline void moneypoke(Context &context);
-static inline void nextcolon(Context &context);
-static inline void entercode(Context &context);
-static inline void makeworn(Context &context);
-static inline void nothelderror(Context &context);
-static inline void triggermessage(Context &context);
-static inline void monprint(Context &context);
-static inline void showcurrentfile(Context &context);
-static inline void printlogo(Context &context);
-static inline void printundermon(Context &context);
-static inline void randomaccess(Context &context);
-static inline void locklighton(Context &context);
-static inline void locklightoff(Context &context);
-static inline void makecaps(Context &context);
-static inline void monmessage(Context &context);
-static inline void scrollmonitor(Context &context);
-static inline void searchforstring(Context &context);
-static inline void getkeyandlogo(Context &context);
-static inline void monitorlogo(Context &context);
-static inline void parser(Context &context);
-static inline void neterror(Context &context);
-static inline void processtrigger(Context &context);
-static inline void input(Context &context);
-static inline void dirfile(Context &context);
-static inline void searchforfiles(Context &context);
-static inline void dircom(Context &context);
-static inline void signon(Context &context);
-static inline void read(Context &context);
-static inline void showkeys(Context &context);
-static inline void delchar(Context &context);
-static inline void accesslighton(Context &context);
-static inline void accesslightoff(Context &context);
-static inline void powerlighton(Context &context);
-static inline void powerlightoff(Context &context);
-static inline void lookininterface(Context &context);
-static inline void loadpersonal(Context &context);
-static inline void loadnews(Context &context);
-static inline void loadcart(Context &context);
-static inline void printoutermon(Context &context);
-static inline void initialmoncols(Context &context);
-static inline void turnonpower(Context &context);
-static inline void fadeupyellows(Context &context);
-static inline void fadeupmonfirst(Context &context);
-static inline void hangoncurs(Context &context);
-static inline void execcommand(Context &context);
-static inline void getundercentre(Context &context);
-static inline void putundercentre(Context &context);
-static inline void convicons(Context &context);
-static inline void starttalk(Context &context);
-static inline void hangonpq(Context &context);
-static inline void redes(Context &context);
-static inline void dosometalk(Context &context);
-static inline void getpersontext(Context &context);
-static inline void getpersframe(Context &context);
-static inline void findopenpos(Context &context);
-static inline void reexfromopen(Context &context);
-static inline void geteitherad(Context &context);
-static inline void fillopen(Context &context);
-static inline void useopened(Context &context);
-static inline void getopenedsize(Context &context);
-static inline void errormessage3(Context &context);
-static inline void errormessage2(Context &context);
-static inline void examicon(Context &context);
-static inline void outofopen(Context &context);
-static inline void swapwithopen(Context &context);
-static inline void isitworn(Context &context);
-static inline void wornerror(Context &context);
-static inline void errormessage1(Context &context);
-static inline void checkobjectsize(Context &context);
-static inline void openinv(Context &context);
-static inline void openob(Context &context);
-static inline void droperror(Context &context);
-static inline void cantdrop(Context &context);
-static inline void reexfrominv(Context &context);
-static inline void intoinv(Context &context);
-static inline void outofinv(Context &context);
-static inline void swapwithinv(Context &context);
-static inline void findallopen(Context &context);
-static inline void obtoinv(Context &context);
-static inline void findallryan(Context &context);
-static inline void showryanpage(Context &context);
-static inline void lockmon(Context &context);
-static inline void fadecalculation(Context &context);
-static inline void dodoor(Context &context);
-static inline void liftnoise(Context &context);
-static inline void widedoor(Context &context);
-static inline void random(Context &context);
-static inline void lockeddoorway(Context &context);
-static inline void liftsprite(Context &context);
-static inline void doorway(Context &context);
-static inline void constant(Context &context);
-static inline void steady(Context &context);
-static inline void adjustleft(Context &context);
-static inline void adjustright(Context &context);
-static inline void adjustdown(Context &context);
-static inline void adjustup(Context &context);
-static inline void aboutturn(Context &context);
-static inline void checkforexit(Context &context);
-static inline void walking(Context &context);
-static inline void showgamereel(Context &context);
-static inline void checkspeed(Context &context);
-static inline void addtopeoplelist(Context &context);
-static inline void setuptimedtemp(Context &context);
-static inline void madmantext(Context &context);
-static inline void madmode(Context &context);
-static inline void priesttext(Context &context);
-static inline void fadescreenuphalf(Context &context);
-static inline void textforend(Context &context);
-static inline void fadescreendownhalf(Context &context);
-static inline void rollendcredits(Context &context);
-static inline void textformonk(Context &context);
-static inline void monks2text(Context &context);
-static inline void intro2text(Context &context);
-static inline void intro3text(Context &context);
-static inline void intro1text(Context &context);
-
-static inline void alleybarksound(Context & context) {
+static void seecommandtail(Context &context);
+static void checkbasemem(Context &context);
+static void allocatebuffers(Context &context);
+static void clearbuffers(Context &context);
+static void clearpalette(Context &context);
+static void readsetdata(Context &context);
+static void loadpalfromiff(Context &context);
+static void titles(Context &context);
+static void credits(Context &context);
+static void cls(Context &context);
+static void decide(Context &context);
+static void clearchanges(Context &context);
+static void loadroom(Context &context);
+static void clearsprites(Context &context);
+static void initman(Context &context);
+static void entrytexts(Context &context);
+static void entryanims(Context &context);
+static void initialinv(Context &context);
+static void startup1(Context &context);
+static void clearbeforeload(Context &context);
+static void startup(Context &context);
+static void worktoscreenm(Context &context);
+static void screenupdate(Context &context);
+static void showgun(Context &context);
+static void fadescreendown(Context &context);
+static void hangon(Context &context);
+static void fadescreendowns(Context &context);
+static void endgame(Context &context);
+static void standardload(Context &context);
+static void getroomspaths(Context &context);
+static void readheader(Context &context);
+static void allocateload(Context &context);
+static void fillspace(Context &context);
+static void sortoutmap(Context &context);
+static void findroominloc(Context &context);
+static void deletetaken(Context &context);
+static void setallchanges(Context &context);
+static void autoappear(Context &context);
+static void getroomdata(Context &context);
+static void autosetwalk(Context &context);
+static void findxyfrompath(Context &context);
+static void twodigitnum(Context &context);
+static void startloading(Context &context);
+static void loadroomssample(Context &context);
+static void switchryanon(Context &context);
+static void drawflags(Context &context);
+static void getdimension(Context &context);
+static void getflagunderp(Context &context);
+static void multidump(Context &context);
+static void multiput(Context &context);
+static void multiget(Context &context);
+static void dumpblink(Context &context);
+static void showblink(Context &context);
+static void showframe(Context &context);
+static void printcurs(Context &context);
+static void delcurs(Context &context);
+static void delpointer(Context &context);
+static void readmouse(Context &context);
+static void animpointer(Context &context);
+static void showpointer(Context &context);
+static void dumppointer(Context &context);
+static void commandonly(Context &context);
+static void worktoscreen(Context &context);
+static void showtime(Context &context);
+static void showwatch(Context &context);
+static void printmessage(Context &context);
+static void printdirect(Context &context);
+static void usecharset1(Context &context);
+static void showpanel(Context &context);
+static void showman(Context &context);
+static void roomname(Context &context);
+static void panelicons1(Context &context);
+static void zoomicon(Context &context);
+static void middlepanel(Context &context);
+static void findobname(Context &context);
+static void workoutframes(Context &context);
+static void checkdest(Context &context);
+static void bresenhams(Context &context);
+static void facerightway(Context &context);
+static void checkone(Context &context);
+static void commandwithob(Context &context);
+static void findnextcolon(Context &context);
+static void deltextline(Context &context);
+static void copyname(Context &context);
+static void finishedwalking(Context &context);
+static void examineob(Context &context);
+static void talk(Context &context);
+static void setwalk(Context &context);
+static void examineobtext(Context &context);
+static void blocknametext(Context &context);
+static void personnametext(Context &context);
+static void walktotext(Context &context);
+static void clearwork(Context &context);
+static void drawfloor(Context &context);
+static void reelsonscreen(Context &context);
+static void spriteupdate(Context &context);
+static void printsprites(Context &context);
+static void playchannel0(Context &context);
+static void cancelch0(Context &context);
+static void createpanel(Context &context);
+static void findpathofpoint(Context &context);
+static void showicon(Context &context);
+static void undertextline(Context &context);
+static void mainscreen(Context &context);
+static void getunderzoom(Context &context);
+static void zoom(Context &context);
+static void walkintoroom(Context &context);
+static void reminders(Context &context);
+static void atmospheres(Context &context);
+static void findormake(Context &context);
+static void obname(Context &context);
+static void pixelcheckset(Context &context);
+static void isitdescribed(Context &context);
+static void getreelstart(Context &context);
+static void getreelframeax(Context &context);
+static void blank(Context &context);
+static void findfirstpath(Context &context);
+static void checkifex(Context &context);
+static void checkiffree(Context &context);
+static void checkifperson(Context &context);
+static void checkifset(Context &context);
+static void identifyob(Context &context);
+static void checkcoords(Context &context);
+static void walkandexamine(Context &context);
+static void convnum(Context &context);
+static void onedigit(Context &context);
+static void plotreel(Context &context);
+static void checkforshake(Context &context);
+static void newplace(Context &context);
+static void readmouse1(Context &context);
+static void dumptextline(Context &context);
+static void autolook(Context &context);
+static void watchcount(Context &context);
+static void readmouse2(Context &context);
+static void dumpzoom(Context &context);
+static void deleverything(Context &context);
+static void afternewroom(Context &context);
+static void readmouse3(Context &context);
+static void dumpmap(Context &context);
+static void dumptimedtext(Context &context);
+static void readmouse4(Context &context);
+static void dumpwatch(Context &context);
+static void fadescreenup(Context &context);
+static void parseblaster(Context &context);
+static void clearreels(Context &context);
+static void clearrest(Context &context);
+static void trysoundalloc(Context &context);
+static void allocatework(Context &context);
+static void checkforemm(Context &context);
+static void getanyad(Context &context);
+static void transfertoex(Context &context);
+static void pickupob(Context &context);
+static void switchryanoff(Context &context);
+static void resetlocation(Context &context);
+static void removefreeobject(Context &context);
+static void checkifpathison(Context &context);
+static void turnpathon(Context &context);
+static void removesetobject(Context &context);
+static void placesetobject(Context &context);
+static void turnanypathon(Context &context);
+static void setuptimeduse(Context &context);
+static void volumeadjust(Context &context);
+static void loopchannel0(Context &context);
+static void cancelch1(Context &context);
+static void createname(Context &context);
+static void doload(Context &context);
+static void showdecisions(Context &context);
+static void showopbox(Context &context);
+static void showloadops(Context &context);
+static void showslots(Context &context);
+static void shownames(Context &context);
+static void namestoold(Context &context);
+static void getridoftemp(Context &context);
+static void initrain(Context &context);
+static void createpanel2(Context &context);
+static void loadsavebox(Context &context);
+static void storeit(Context &context);
+static void makeheader(Context &context);
+static void oldtonames(Context &context);
+static void showsaveops(Context &context);
+static void readkey(Context &context);
+static void getnamepos(Context &context);
+static void selectslot(Context &context);
+static void restoreall(Context &context);
+static void redrawmainscrn(Context &context);
+static void checkinput(Context &context);
+static void showdiscops(Context &context);
+static void loadintotemp(Context &context);
+static void getback1(Context &context);
+static void getridofall(Context &context);
+static void showmainops(Context &context);
+static void dosaveload(Context &context);
+static void findtext1(Context &context);
+static void usetempcharset(Context &context);
+static void playchannel1(Context &context);
+static void getlocation(Context &context);
+static void setlocation(Context &context);
+static void hangonp(Context &context);
+static void showdiary(Context &context);
+static void showdiarypage(Context &context);
+static void getridofreels(Context &context);
+static void loadtemptext(Context &context);
+static void loadtempcharset(Context &context);
+static void showdiarykeys(Context &context);
+static void dumpdiarykeys(Context &context);
+static void getridoftemptext(Context &context);
+static void getridoftempcharset(Context &context);
+static void restorereels(Context &context);
+static void nextsymbol(Context &context);
+static void showsymbol(Context &context);
+static void updatesymboltop(Context &context);
+static void updatesymbolbot(Context &context);
+static void dumpsymbol(Context &context);
+static void turnanypathoff(Context &context);
+static void folderexit(Context &context);
+static void showleftpage(Context &context);
+static void showrightpage(Context &context);
+static void loadintotemp2(Context &context);
+static void loadintotemp3(Context &context);
+static void showfolder(Context &context);
+static void folderhints(Context &context);
+static void loadfolder(Context &context);
+static void getridoftemp2(Context &context);
+static void getridoftemp3(Context &context);
+static void loadmenu(Context &context);
+static void getundermenu(Context &context);
+static void putundermenu(Context &context);
+static void showmenu(Context &context);
+static void dumpmenu(Context &context);
+static void singlekey(Context &context);
+static void buttonpress(Context &context);
+static void loadkeypad(Context &context);
+static void showouterpad(Context &context);
+static void showkeypad(Context &context);
+static void dumpkeypad(Context &context);
+static void addtopresslist(Context &context);
+static void isitright(Context &context);
+static void checkinside(Context &context);
+static void compare(Context &context);
+static void showfirstuse(Context &context);
+static void putbackobstuff(Context &context);
+static void withwhat(Context &context);
+static void showpuztext(Context &context);
+static void placefreeobject(Context &context);
+static void issetobonmap(Context &context);
+static void showseconduse(Context &context);
+static void removeobfrominv(Context &context);
+static void turnpathoff(Context &context);
+static void getundertimed(Context &context);
+static void putundertimed(Context &context);
+static void getsetad(Context &context);
+static void getfreead(Context &context);
+static void dochange(Context &context);
+static void findpuztext(Context &context);
+static void showexit(Context &context);
+static void obicons(Context &context);
+static void obpicture(Context &context);
+static void describeob(Context &context);
+static void getanyaddir(Context &context);
+static void findinvpos(Context &context);
+static void useroutine(Context &context);
+static void printmessage2(Context &context);
+static void fillryan(Context &context);
+static void findsetobject(Context &context);
+static void getobtextstart(Context &context);
+static void usetext(Context &context);
+static void selectlocation(Context &context);
+static void hangonw(Context &context);
+static void moneypoke(Context &context);
+static void nextcolon(Context &context);
+static void getexad(Context &context);
+static void entercode(Context &context);
+static void findexobject(Context &context);
+static void makeworn(Context &context);
+static void isryanholding(Context &context);
+static void nothelderror(Context &context);
+static void triggermessage(Context &context);
+static void monprint(Context &context);
+static void modifychar(Context &context);
+static void printchar(Context &context);
+static void showcurrentfile(Context &context);
+static void printlogo(Context &context);
+static void printundermon(Context &context);
+static void randomaccess(Context &context);
+static void locklighton(Context &context);
+static void locklightoff(Context &context);
+static void makecaps(Context &context);
+static void monmessage(Context &context);
+static void scrollmonitor(Context &context);
+static void searchforstring(Context &context);
+static void getkeyandlogo(Context &context);
+static void monitorlogo(Context &context);
+static void parser(Context &context);
+static void neterror(Context &context);
+static void processtrigger(Context &context);
+static void input(Context &context);
+static void dirfile(Context &context);
+static void searchforfiles(Context &context);
+static void dircom(Context &context);
+static void signon(Context &context);
+static void read(Context &context);
+static void showkeys(Context &context);
+static void delchar(Context &context);
+static void randomnum1(Context &context);
+static void accesslighton(Context &context);
+static void accesslightoff(Context &context);
+static void powerlighton(Context &context);
+static void powerlightoff(Context &context);
+static void lookininterface(Context &context);
+static void loadpersonal(Context &context);
+static void loadnews(Context &context);
+static void loadcart(Context &context);
+static void printoutermon(Context &context);
+static void initialmoncols(Context &context);
+static void turnonpower(Context &context);
+static void fadeupyellows(Context &context);
+static void fadeupmonfirst(Context &context);
+static void hangoncurs(Context &context);
+static void execcommand(Context &context);
+static void purgealocation(Context &context);
+static void getdestinfo(Context &context);
+static void showarrows(Context &context);
+static void locationpic(Context &context);
+static void getundercentre(Context &context);
+static void putundercentre(Context &context);
+static void readcitypic(Context &context);
+static void showcity(Context &context);
+static void readdesticon(Context &context);
+static void loadtraveltext(Context &context);
+static void convicons(Context &context);
+static void starttalk(Context &context);
+static void hangonpq(Context &context);
+static void redes(Context &context);
+static void dosometalk(Context &context);
+static void getpersontext(Context &context);
+static void getpersframe(Context &context);
+static void findsource(Context &context);
+static void printslow(Context &context);
+static void dolook(Context &context);
+static void getxad(Context &context);
+static void getyad(Context &context);
+static void getmapad(Context &context);
+static void calcfrframe(Context &context);
+static void finalframe(Context &context);
+static void makesprite(Context &context);
+static void makebackob(Context &context);
+static void addalong(Context &context);
+static void addlength(Context &context);
+static void eraseoldobs(Context &context);
+static void calcmapad(Context &context);
+static void doblocks(Context &context);
+static void showallobs(Context &context);
+static void showallfree(Context &context);
+static void showallex(Context &context);
+static void paneltomap(Context &context);
+static void deleteexframe(Context &context);
+static void deleteextext(Context &context);
+static void deleteexobject(Context &context);
+static void purgeanitem(Context &context);
+static void getexpos(Context &context);
+static void transfermap(Context &context);
+static void transferinv(Context &context);
+static void transfertext(Context &context);
+static void transfercontoex(Context &context);
+static void emergencypurge(Context &context);
+static void pickupconts(Context &context);
+static void findopenpos(Context &context);
+static void reexfromopen(Context &context);
+static void geteitherad(Context &context);
+static void fillopen(Context &context);
+static void useopened(Context &context);
+static void getopenedsize(Context &context);
+static void errormessage3(Context &context);
+static void errormessage2(Context &context);
+static void examicon(Context &context);
+static void outofopen(Context &context);
+static void swapwithopen(Context &context);
+static void isitworn(Context &context);
+static void wornerror(Context &context);
+static void errormessage1(Context &context);
+static void checkobjectsize(Context &context);
+static void openinv(Context &context);
+static void openob(Context &context);
+static void droperror(Context &context);
+static void cantdrop(Context &context);
+static void reexfrominv(Context &context);
+static void intoinv(Context &context);
+static void outofinv(Context &context);
+static void swapwithinv(Context &context);
+static void makemainscreen(Context &context);
+static void searchforsame(Context &context);
+static void lookatcard(Context &context);
+static void obsthatdothings(Context &context);
+static void additionaltext(Context &context);
+static void findallopen(Context &context);
+static void obtoinv(Context &context);
+static void findallryan(Context &context);
+static void showryanpage(Context &context);
+static void kernchars(Context &context);
+static void getnextword(Context &context);
+static void getnumber(Context &context);
+static void lockmon(Context &context);
+static void printboth(Context &context);
+static void waitframes(Context &context);
+static void hangone(Context &context);
+static void allpalette(Context &context);
+static void fadescreenups(Context &context);
+static void afterintroroom(Context &context);
+static void usetimedtext(Context &context);
+static void loadintroroom(Context &context);
+static void runintroseq(Context &context);
+static void realcredits(Context &context);
+static void runendseq(Context &context);
+static void showmonk(Context &context);
+static void monkspeaking(Context &context);
+static void gettingshot(Context &context);
+static void biblequote(Context &context);
+static void intro(Context &context);
+static void paltostartpal(Context &context);
+static void paltoendpal(Context &context);
+static void dumpcurrent(Context &context);
+static void rollem(Context &context);
+static void greyscalesum(Context &context);
+static void endpaltostart(Context &context);
+static void clearendpal(Context &context);
+static void rollendcredits2(Context &context);
+static void clearstartpal(Context &context);
+static void fadecalculation(Context &context);
+static void frameoutfx(Context &context);
+static void frameoutnm(Context &context);
+static void frameoutbh(Context &context);
+static void frameoutv(Context &context);
+static void putunderzoom(Context &context);
+static void crosshair(Context &context);
+static void width160(Context &context);
+static void maptopanel(Context &context);
+static void movemap(Context &context);
+static void dealwithspecial(Context &context);
+static void showreelframe(Context &context);
+static void soundonreels(Context &context);
+static void reconstruct(Context &context);
+static void updatepeople(Context &context);
+static void watchreel(Context &context);
+static void showrain(Context &context);
+static void dodoor(Context &context);
+static void liftnoise(Context &context);
+static void widedoor(Context &context);
+static void random(Context &context);
+static void lockeddoorway(Context &context);
+static void liftsprite(Context &context);
+static void doorway(Context &context);
+static void constant(Context &context);
+static void steady(Context &context);
+static void getblockofpixel(Context &context);
+static void splitintolines(Context &context);
+static void adjustleft(Context &context);
+static void adjustright(Context &context);
+static void adjustdown(Context &context);
+static void adjustup(Context &context);
+static void aboutturn(Context &context);
+static void checkforexit(Context &context);
+static void walking(Context &context);
+static void printasprite(Context &context);
+static void showgamereel(Context &context);
+static void checkspeed(Context &context);
+static void addtopeoplelist(Context &context);
+static void setuptimedtemp(Context &context);
+static void madmantext(Context &context);
+static void madmode(Context &context);
+static void priesttext(Context &context);
+static void fadescreenuphalf(Context &context);
+static void textforend(Context &context);
+static void fadescreendownhalf(Context &context);
+static void rollendcredits(Context &context);
+static void textformonk(Context &context);
+static void monks2text(Context &context);
+static void intro2text(Context &context);
+static void intro3text(Context &context);
+static void intro1text(Context &context);
+
+static void alleybarksound(Context & context) {
context.ax = context.data.word(context.bx+3);
context._sub(context.ax, 1);
context._cmp(context.ax, 0);
@@ -499,11 +499,11 @@ nobark:
return;
}
-static inline void intromusic(Context & context) {
+static void intromusic(Context & context) {
return;
}
-static inline void foghornsound(Context & context) {
+static void foghornsound(Context & context) {
randomnumber(context);
context._cmp(context.al, 198);
if (!context.flags.z()) goto nofog;
@@ -513,7 +513,7 @@ nofog:
return;
}
-static inline void receptionist(Context & context) {
+static void receptionist(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
context._cmp(context.data.byte(52), 1);
@@ -555,7 +555,7 @@ nottalkedrecep:
return;
}
-static inline void smokebloke(Context & context) {
+static void smokebloke(Context & context) {
context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto notspokento;
context.al = context.data.byte(context.bx+7);
@@ -590,7 +590,7 @@ gotsmokeb:
return;
}
-static inline void attendant(Context & context) {
+static void attendant(Context & context) {
showgamereel(context);
addtopeoplelist(context);
context.al = context.data.byte(context.bx+7);
@@ -601,7 +601,7 @@ nottalked:
return;
}
-static inline void manasleep(Context & context) {
+static void manasleep(Context & context) {
context.al = context.data.byte(context.bx+7);
context._and(context.al, 127);
context.data.byte(context.bx+7) = context.al;
@@ -610,7 +610,7 @@ static inline void manasleep(Context & context) {
return;
}
-static inline void eden(Context & context) {
+static void eden(Context & context) {
context._cmp(context.data.byte(42), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
@@ -619,7 +619,7 @@ notinbed:
return;
}
-static inline void edeninbath(Context & context) {
+static void edeninbath(Context & context) {
context._cmp(context.data.byte(42), 0);
if (context.flags.z()) goto notinbed;
context._cmp(context.data.byte(43), 0);
@@ -634,19 +634,19 @@ notinbed:
return;
}
-static inline void malefan(Context & context) {
+static void malefan(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void femalefan(Context & context) {
+static void femalefan(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void louis(Context & context) {
+static void louis(Context & context) {
context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
@@ -655,7 +655,7 @@ notlouis1:
return;
}
-static inline void louischair(Context & context) {
+static void louischair(Context & context) {
context._cmp(context.data.byte(41), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
@@ -683,7 +683,7 @@ notlouis2:
return;
}
-static inline void manasleep2(Context & context) {
+static void manasleep2(Context & context) {
context.al = context.data.byte(context.bx+7);
context._and(context.al, 127);
context.data.byte(context.bx+7) = context.al;
@@ -692,19 +692,19 @@ static inline void manasleep2(Context & context) {
return;
}
-static inline void mansatstill(Context & context) {
+static void mansatstill(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void tattooman(Context & context) {
+static void tattooman(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void drinker(Context & context) {
+static void drinker(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotdrinker;
context._add(context.data.word(context.bx+3), 1);
@@ -725,7 +725,7 @@ gotdrinker:
return;
}
-static inline void bartender(Context & context) {
+static void bartender(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotsmoket;
context._cmp(context.data.word(context.bx+3), 86);
@@ -752,19 +752,19 @@ notgotgun:
return;
}
-static inline void othersmoker(Context & context) {
+static void othersmoker(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void barwoman(Context & context) {
+static void barwoman(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void interviewer(Context & context) {
+static void interviewer(Context & context) {
context._cmp(context.data.word(23), 68);
if (!context.flags.z()) goto notgeneralstart;
context._add(context.data.word(context.bx+3), 1);
@@ -781,7 +781,7 @@ talking:
return;
}
-static inline void soldier1(Context & context) {
+static void soldier1(Context & context) {
context._cmp(context.data.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
context.data.word(21) = 10;
@@ -814,7 +814,7 @@ gotsoldframe:
return;
}
-static inline void rockstar(Context & context) {
+static void rockstar(Context & context) {
context.ax = context.data.word(context.bx+3);
context._cmp(context.ax, 303);
if (context.flags.z()) goto rockcombatend;
@@ -865,7 +865,7 @@ rockcombatend:
return;
}
-static inline void helicopter(Context & context) {
+static void helicopter(Context & context) {
context.ax = context.data.word(context.bx+3);
context._cmp(context.ax, 203);
if (context.flags.z()) goto heliwon;
@@ -922,7 +922,7 @@ heliwon:
return;
}
-static inline void mugger(Context & context) {
+static void mugger(Context & context) {
context.ax = context.data.word(context.bx+3);
context._cmp(context.ax, 138);
if (context.flags.z()) goto endmugger1;
@@ -995,13 +995,13 @@ endmugger2:
return;
}
-static inline void aide(Context & context) {
+static void aide(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static inline void businessman(Context & context) {
+static void businessman(Context & context) {
context.data.byte(234) = 0;
context.data.word(21) = 2;
context.ax = context.data.word(context.bx+3);
@@ -1090,7 +1090,7 @@ buscombatwonend:
return;
}
-static inline void poolguard(Context & context) {
+static void poolguard(Context & context) {
context.ax = context.data.word(context.bx+3);
context._cmp(context.ax, 214);
if (context.flags.z()) goto combatover2;
@@ -1174,7 +1174,7 @@ doneover2:
return;
}
-static inline void security(Context & context) {
+static void security(Context & context) {
context._cmp(context.data.word(context.bx+3), 32);
if (context.flags.z()) goto securwait;
context._cmp(context.data.word(context.bx+3), 69);
@@ -1202,7 +1202,7 @@ gotsecurframe:
return;
}
-static inline void heavy(Context & context) {
+static void heavy(Context & context) {
context.al = context.data.byte(context.bx+7);
context._and(context.al, 127);
context.data.byte(context.bx+7) = context.al;
@@ -1237,7 +1237,7 @@ gotheavyframe:
return;
}
-static inline void bossman(Context & context) {
+static void bossman(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notboss;
context.ax = context.data.word(context.bx+3);
@@ -1280,7 +1280,7 @@ nottalkedboss:
return;
}
-static inline void gamer(Context & context) {
+static void gamer(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gamerfin;
gameragain:
@@ -1299,7 +1299,7 @@ gamerfin:
return;
}
-static inline void sparkydrip(Context & context) {
+static void sparkydrip(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto cantdrip;
context.al = 14;
@@ -1309,7 +1309,7 @@ cantdrip:
return;
}
-static inline void carparkdrip(Context & context) {
+static void carparkdrip(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto cantdrip2;
context.al = 14;
@@ -1318,7 +1318,7 @@ cantdrip2:
return;
}
-static inline void keeper(Context & context) {
+static void keeper(Context & context) {
context._cmp(context.data.byte(54), 0);
if (!context.flags.z()) goto notwaiting;
context._cmp(context.data.word(23), 190);
@@ -1339,7 +1339,7 @@ waiting:
return;
}
-static inline void candles1(Context & context) {
+static void candles1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candle1;
context.ax = context.data.word(context.bx+3);
@@ -1354,7 +1354,7 @@ candle1:
return;
}
-static inline void smallcandle(Context & context) {
+static void smallcandle(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto smallcandlef;
context.ax = context.data.word(context.bx+3);
@@ -1369,7 +1369,7 @@ smallcandlef:
return;
}
-static inline void intromagic1(Context & context) {
+static void intromagic1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm1fin;
context.ax = context.data.word(context.bx+3);
@@ -1396,7 +1396,7 @@ introm1fin:
return;
}
-static inline void candles(Context & context) {
+static void candles(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candlesfin;
context.ax = context.data.word(context.bx+3);
@@ -1411,7 +1411,7 @@ candlesfin:
return;
}
-static inline void candles2(Context & context) {
+static void candles2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candles2fin;
context.ax = context.data.word(context.bx+3);
@@ -1426,7 +1426,7 @@ candles2fin:
return;
}
-static inline void gates(Context & context) {
+static void gates(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gatesfin;
context.ax = context.data.word(context.bx+3);
@@ -1462,7 +1462,7 @@ gatesfin:
return;
}
-static inline void intromagic2(Context & context) {
+static void intromagic2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm2fin;
context.ax = context.data.word(context.bx+3);
@@ -1477,7 +1477,7 @@ introm2fin:
return;
}
-static inline void intromagic3(Context & context) {
+static void intromagic3(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm3fin;
context.ax = context.data.word(context.bx+3);
@@ -1494,7 +1494,7 @@ introm3fin:
return;
}
-static inline void intromonks1(Context & context) {
+static void intromonks1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk1fin;
context.ax = context.data.word(context.bx+3);
@@ -1538,7 +1538,7 @@ intromonk1fin:
return;
}
-static inline void intromonks2(Context & context) {
+static void intromonks2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk2fin;
context.ax = context.data.word(context.bx+3);
@@ -1590,11 +1590,11 @@ intromonk2fin:
return;
}
-static inline void handclap(Context & context) {
+static void handclap(Context & context) {
return;
}
-static inline void monks2text(Context & context) {
+static void monks2text(Context & context) {
context._cmp(context.data.byte(139), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
@@ -1694,7 +1694,7 @@ gotmonks2text:
return;
}
-static inline void intro1text(Context & context) {
+static void intro1text(Context & context) {
context._cmp(context.data.byte(139), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
@@ -1728,7 +1728,7 @@ oktalk2:
return;
}
-static inline void intro2text(Context & context) {
+static void intro2text(Context & context) {
context._cmp(context.ax, 5);
if (!context.flags.z()) goto notintro2text1;
context.al = 43;
@@ -1753,7 +1753,7 @@ gotintro2text:
return;
}
-static inline void intro3text(Context & context) {
+static void intro3text(Context & context) {
context._cmp(context.ax, 107);
if (!context.flags.z()) goto notintro3text1;
context.al = 45;
@@ -1778,7 +1778,7 @@ gotintro3text:
return;
}
-static inline void monkandryan(Context & context) {
+static void monkandryan(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notmonkryan;
context.ax = context.data.word(context.bx+3);
@@ -1803,7 +1803,7 @@ notmonkryan:
return;
}
-static inline void endgameseq(Context & context) {
+static void endgameseq(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notendseq;
context.ax = context.data.word(context.bx+3);
@@ -1860,7 +1860,7 @@ notendcreds:
return;
}
-static inline void rollendcredits(Context & context) {
+static void rollendcredits(Context & context) {
context.al = 16;
context.ah = 255;
playchannel0(context);
@@ -1948,7 +1948,7 @@ gotnext:
return;
}
-static inline void priest(Context & context) {
+static void priest(Context & context) {
context._cmp(context.data.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
context.data.byte(234) = 0;
@@ -1967,7 +1967,7 @@ priestspoken:
return;
}
-static inline void madmanstelly(Context & context) {
+static void madmanstelly(Context & context) {
context.ax = context.data.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 307);
@@ -1979,7 +1979,7 @@ notendtelly:
return;
}
-static inline void madman(Context & context) {
+static void madman(Context & context) {
context.data.word(21) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
@@ -2049,7 +2049,7 @@ ryansded:
return;
}
-static inline void madmantext(Context & context) {
+static void madmantext(Context & context) {
context._cmp(context.data.byte(64), 61);
if (!context.flags.c()) goto nomadtext;
context.al = context.data.byte(64);
@@ -2069,7 +2069,7 @@ nomadtext:
return;
}
-static inline void madmode(Context & context) {
+static void madmode(Context & context) {
context.data.word(21) = 2;
context.data.byte(234) = 0;
context._cmp(context.data.byte(64), 63);
@@ -2081,7 +2081,7 @@ iswatchmad:
return;
}
-static inline void priesttext(Context & context) {
+static void priesttext(Context & context) {
context._cmp(context.data.word(context.bx+3), 2);
if (context.flags.c()) goto nopriesttext;
context._cmp(context.data.word(context.bx+3), 7);
@@ -2101,7 +2101,7 @@ nopriesttext:
return;
}
-static inline void textforend(Context & context) {
+static void textforend(Context & context) {
context._cmp(context.data.byte(139), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
@@ -2134,7 +2134,7 @@ gotendtext:
return;
}
-static inline void textformonk(Context & context) {
+static void textformonk(Context & context) {
context._cmp(context.data.byte(139), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
@@ -2252,7 +2252,7 @@ oktalk:
return;
}
-static inline void drunk(Context & context) {
+static void drunk(Context & context) {
context._cmp(context.data.byte(42), 0);
if (!context.flags.z()) goto trampgone;
context.al = context.data.byte(context.bx+7);
@@ -2264,7 +2264,7 @@ trampgone:
return;
}
-static inline void advisor(Context & context) {
+static void advisor(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto noadvisor;
goto noadvisor;
@@ -2292,7 +2292,7 @@ noadvisor:
return;
}
-static inline void copper(Context & context) {
+static void copper(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto nocopper;
context.ax = context.data.word(context.bx+3);
@@ -2322,7 +2322,7 @@ nocopper:
return;
}
-static inline void sparky(Context & context) {
+static void sparky(Context & context) {
context._cmp(context.data.word(16), 0);
if (context.flags.z()) goto animsparky;
context.data.byte(context.bx+7) = 3;
@@ -2355,7 +2355,7 @@ nottalkedsparky:
return;
}
-static inline void train(Context & context) {
+static void train(Context & context) {
return;
context.ax = context.data.word(context.bx+3);
context._cmp(context.ax, 21);
@@ -2378,7 +2378,7 @@ notrainatall:
return;
}
-static inline void addtopeoplelist(Context & context) {
+static void addtopeoplelist(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.bx);
@@ -2396,7 +2396,7 @@ static inline void addtopeoplelist(Context & context) {
return;
}
-static inline void showgamereel(Context & context) {
+static void showgamereel(Context & context) {
context.ax = context.data.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
@@ -2412,7 +2412,7 @@ noshow:
return;
}
-static inline void checkspeed(Context & context) {
+static void checkspeed(Context & context) {
context._cmp(context.data.byte(65), -1);
if (!context.flags.z()) goto forcenext;
context._add(context.data.byte(context.bx+6), 1);
@@ -2429,7 +2429,35 @@ forcenext:
return;
}
-static inline void delsprite(Context & context) {
+static void clearsprites(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.al = 255;
+ context.cx = 32*16;
+ while(--context.cx) context._stosb();
+ return;
+}
+
+static void makesprite(Context & context) {
+ context.es = context.data.word(412);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+_tmp17:
+ context._cmp(context.data.byte(context.bx+15), 255);
+ if (context.flags.z()) goto _tmp17a;
+ context._add(context.bx, 32);
+ goto _tmp17;
+_tmp17a:
+ context.data.word(context.bx) = context.cx;
+ context.data.word(context.bx+10) = context.si;
+ context.data.word(context.bx+6) = context.dx;
+ context.data.word(context.bx+8) = context.di;
+ context.data.word(context.bx+2) = 0x0ffff;
+ context.data.byte(context.bx+15) = 0;
+ context.data.byte(context.bx+18) = 0;
+ return;
+}
+
+static void delsprite(Context & context) {
context.di = context.bx;
context.cx = 32;
context.al = 255;
@@ -2437,7 +2465,175 @@ static inline void delsprite(Context & context) {
return;
}
-static inline void mainman(Context & context) {
+static void spriteupdate(Context & context) {
+ context.es = context.data.word(412);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.al = context.data.byte(63);
+ context.data.byte(context.bx+31) = context.al;
+ context.es = context.data.word(412);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.cx = 16;
+_tmp18:
+ context.push(context.cx);
+ context.push(context.bx);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto _tmp18a;
+ context.push(context.es);
+ context.push(context.ds);
+ context.cx = context.data.word(context.bx+2);
+ context.data.word(context.bx+24) = context.cx;
+ __dispatch_call(context, context.ax);
+ context.ds = context.pop();
+ context.es = context.pop();
+_tmp18a:
+ context.bx = context.pop();
+ context.cx = context.pop();
+ context._cmp(context.data.byte(186), 1);
+ if (context.flags.z()) goto _tmp18b;
+ context._add(context.bx, 32);
+ if (--context.cx) goto _tmp18;
+_tmp18b:
+ return;
+}
+
+static void printsprites(Context & context) {
+ context.es = context.data.word(412);
+ context.cx = 0;
+priorityloop:
+ context.push(context.cx);
+ context.data.byte(182) = context.cl;
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.cx = 16;
+prtspriteloop:
+ context.push(context.cx);
+ context.push(context.bx);
+ context.ax = context.data.word(context.bx);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto skipsprite;
+ context.al = context.data.byte(182);
+ context._cmp(context.al, context.data.byte(context.bx+23));
+ if (!context.flags.z()) goto skipsprite;
+ context._cmp(context.data.byte(context.bx+31), 1);
+ if (context.flags.z()) goto skipsprite;
+ printasprite(context);
+skipsprite:
+ context.bx = context.pop();
+ context.cx = context.pop();
+ context._add(context.bx, 32);
+ if (--context.cx) goto prtspriteloop;
+ context.cx = context.pop();
+ context._add(context.cx, 1);
+ context._cmp(context.cx, 7);
+ if (!context.flags.z()) goto priorityloop;
+ return;
+}
+
+static void printasprite(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ context.si = context.bx;
+ context.ds = context.data.word(context.si+6);
+ context.al = context.data.byte(context.si+11);
+ context.ah = 0;
+ context._cmp(context.al, 220);
+ if (context.flags.c()) goto notnegative1;
+ context.ah = 255;
+notnegative1:
+ context.bx = context.ax;
+ context._add(context.bx, context.data.word(119));
+ context.al = context.data.byte(context.si+10);
+ context.ah = 0;
+ context._cmp(context.al, 220);
+ if (context.flags.c()) goto notnegative2;
+ context.ah = 255;
+notnegative2:
+ context.di = context.ax;
+ context._add(context.di, context.data.word(117));
+ context.al = context.data.byte(context.si+15);
+ context.ah = 0;
+ context._cmp(context.data.byte(context.si+30), 0);
+ if (context.flags.z()) goto steadyframe;
+ context.ah = 8;
+steadyframe:
+ context._cmp(context.data.byte(182), 6);
+ if (!context.flags.z()) goto notquickp;
+notquickp:
+ showframe(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static void checkone(Context & context) {
+ context.push(context.cx);
+ context.al = context.ch;
+ context.ah = 0;
+ context.cl = 4;
+ context._shr(context.ax, context.cl);
+ context.dl = context.al;
+ context.cx = context.pop();
+ context.al = context.cl;
+ context.ah = 0;
+ context.cl = 4;
+ context._shr(context.ax, context.cl);
+ context.ah = context.dl;
+ context.push(context.ax);
+ context.ch = 0;
+ context.cl = context.al;
+ context.push(context.cx);
+ context.al = context.ah;
+ context.ah = 0;
+ context.cx = 11;
+ context._mul(context.cx);
+ context.cx = context.pop();
+ context._add(context.ax, context.cx);
+ context.cx = 3;
+ context._mul(context.cx);
+ context.si = context.ax;
+ context.ds = context.data.word(412);
+ context._add(context.si, 0+(228*13)+32+60+(32*32));
+ context._lodsw();
+ context.cx = context.ax;
+ context._lodsb();
+ context.dx = context.pop();
+ return;
+}
+
+static void findsource(Context & context) {
+ context.ax = context.data.word(160);
+ context._cmp(context.ax, 160);
+ if (!context.flags.c()) goto over1000;
+ context.ds = context.data.word(430);
+ context.data.word(244) = 0;
+ return;
+over1000:
+ context._cmp(context.ax, 320);
+ if (!context.flags.c()) goto over1001;
+ context.ds = context.data.word(432);
+ context.data.word(244) = 160;
+ return;
+over1001:
+ context.ds = context.data.word(434);
+ context.data.word(244) = 320;
+ return;
+}
+
+static void initman(Context & context) {
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
+ context.si = context.ax;
+ context.cx = 49464;
+ context.dx = context.data.word(414);
+ context.di = 0;
+ makesprite(context);
+ context.data.byte(context.bx+23) = 4;
+ context.data.byte(context.bx+22) = 0;
+ context.data.byte(context.bx+29) = 0;
+ return;
+}
+
+static void mainman(Context & context) {
context._cmp(context.data.byte(187), 1);
if (!context.flags.z()) goto notinnewroom;
context.data.byte(187) = 0;
@@ -2520,7 +2716,7 @@ notwalk:
return;
}
-static inline void aboutturn(Context & context) {
+static void aboutturn(Context & context) {
context._cmp(context.data.byte(136), 1);
if (context.flags.z()) goto incdir;
context._cmp(context.data.byte(136), -1);
@@ -2554,7 +2750,7 @@ decdir:
return;
}
-static inline void walking(Context & context) {
+static void walking(Context & context) {
context._cmp(context.data.byte(493), 0);
if (context.flags.z()) goto normalwalk;
context.al = context.data.byte(492);
@@ -2603,7 +2799,25 @@ finishedwalk:
return;
}
-static inline void checkforexit(Context & context) {
+static void facerightway(Context & context) {
+ context.push(context.es);
+ context.push(context.bx);
+ getroomspaths(context);
+ context.al = context.data.byte(475);
+ context.ah = 0;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.ax);
+ context._add(context.bx, context.ax);
+ context.al = context.data.byte(context.bx+7);
+ context.data.byte(135) = context.al;
+ context.data.byte(134) = context.al;
+ context.bx = context.pop();
+ context.es = context.pop();
+ return;
+}
+
+static void checkforexit(Context & context) {
context.cl = context.data.byte(151);
context._add(context.cl, 12);
context.ch = context.data.byte(152);
@@ -2695,7 +2909,7 @@ notanup:
return;
}
-static inline void adjustdown(Context & context) {
+static void adjustdown(Context & context) {
context.push(context.es);
context.push(context.bx);
context._add(context.data.byte(149), 10);
@@ -2709,7 +2923,7 @@ static inline void adjustdown(Context & context) {
return;
}
-static inline void adjustup(Context & context) {
+static void adjustup(Context & context) {
context.push(context.es);
context.push(context.bx);
context._sub(context.data.byte(149), 10);
@@ -2723,7 +2937,7 @@ static inline void adjustup(Context & context) {
return;
}
-static inline void adjustleft(Context & context) {
+static void adjustleft(Context & context) {
context.push(context.es);
context.push(context.bx);
context.data.byte(153) = 0;
@@ -2738,7 +2952,7 @@ static inline void adjustleft(Context & context) {
return;
}
-static inline void adjustright(Context & context) {
+static void adjustright(Context & context) {
context.push(context.es);
context.push(context.bx);
context._add(context.data.byte(148), 11);
@@ -2753,176 +2967,432 @@ static inline void adjustright(Context & context) {
return;
}
-static inline void backobject(Context & context) {
- context.ds = context.data.word(428);
- context.di = context.data.word(context.bx+20);
- context.al = context.data.byte(context.bx+18);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto _tmp48z;
- context._sub(context.al, 1);
- context.data.byte(context.bx+18) = context.al;
- goto finishback;
-_tmp48z:
- context.al = context.data.byte(context.di+7);
- context.data.byte(context.bx+18) = context.al;
- context.al = context.data.byte(context.di+8);
- context._cmp(context.al, 6);
- if (!context.flags.z()) goto notwidedoor;
- widedoor(context);
- goto finishback;
-notwidedoor:
- context._cmp(context.al, 5);
- if (!context.flags.z()) goto notrandom;
- random(context);
- goto finishback;
-notrandom:
+static void reminders(Context & context) {
+ context._cmp(context.data.byte(184), 24);
+ if (!context.flags.z()) goto notinedenslift;
+ context._cmp(context.data.byte(148), 44);
+ if (!context.flags.z()) goto notinedenslift;
+ context._cmp(context.data.byte(2), 0);
+ if (!context.flags.z()) goto notfirst;
+ context.al = 'D';
+ context.ah = 'K';
+ context.cl = 'E';
+ context.ch = 'Y';
+ isryanholding(context);
+ if (context.flags.z()) goto forgotone;
+ context.al = 'C';
+ context.ah = 'S';
+ context.cl = 'H';
+ context.ch = 'R';
+ findexobject(context);
+ context._cmp(context.al, 114);
+ if (context.flags.z()) goto forgotone;
+ context.ax = context.data.word(context.bx+2);
context._cmp(context.al, 4);
- if (!context.flags.z()) goto notlockdoor;
- lockeddoorway(context);
- goto finishback;
-notlockdoor:
- context._cmp(context.al, 3);
- if (!context.flags.z()) goto notlift;
- liftsprite(context);
- goto finishback;
-notlift:
- context._cmp(context.al, 2);
- if (!context.flags.z()) goto notdoor;
- doorway(context);
- goto finishback;
-notdoor:
- context._cmp(context.al, 1);
- if (!context.flags.z()) goto steadyob;
- constant(context);
- goto finishback;
-steadyob:
- steady(context);
-finishback:
- return;
-}
-
-static inline void liftsprite(Context & context) {
- context.al = context.data.byte(35);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto liftclosed;
- context._cmp(context.al, 1);
- if (context.flags.z()) goto liftopen;
- context._cmp(context.al, 3);
- if (context.flags.z()) goto openlift;
- context.al = context.data.byte(context.bx+19);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto finishclose;
- context._sub(context.al, 1);
- context._cmp(context.al, 11);
- if (!context.flags.z()) goto pokelift;
- context.push(context.ax);
- context.al = 3;
- liftnoise(context);
- context.ax = context.pop();
- goto pokelift;
-finishclose:
- context.data.byte(35) = 0;
+ if (!context.flags.z()) goto forgotone;
+ context._cmp(context.ah, 255);
+ if (context.flags.z()) goto havegotcard;
+ context.cl = 'P';
+ context.ch = 'U';
+ context.dl = 'R';
+ context.dh = 'S';
+ context._xchg(context.al, context.ah);
+ compare(context);
+ if (!context.flags.z()) goto forgotone;
+havegotcard:
+ context._add(context.data.byte(2), 1);
+notfirst:
return;
-openlift:
- context.al = context.data.byte(context.bx+19);
- context._cmp(context.al, 12);
- if (context.flags.z()) goto endoflist;
- context._add(context.al, 1);
- context._cmp(context.al, 1);
- if (!context.flags.z()) goto pokelift;
- context.push(context.ax);
- context.al = 2;
- liftnoise(context);
- context.ax = context.pop();
-pokelift:
- context.data.byte(context.bx+19) = context.al;
- context.ah = 0;
- context.push(context.di);
- context._add(context.di, context.ax);
- context.al = context.data.byte(context.di+18);
- context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+forgotone:
+ context.al = 50;
+ context.bl = 54;
+ context.bh = 70;
+ context.cx = 48;
+ context.dx = 8;
+ setuptimeduse(context);
return;
-endoflist:
- context.data.byte(35) = 1;
+notinedenslift:
return;
-liftopen:
- context.al = context.data.byte(36);
- context.push(context.es);
- context.push(context.bx);
- turnpathon(context);
- context.bx = context.pop();
- context.es = context.pop();
- context._cmp(context.data.byte(40), 0);
- if (context.flags.z()) goto nocountclose;
- context._sub(context.data.byte(40), 1);
- context._cmp(context.data.byte(40), 0);
- if (!context.flags.z()) goto nocountclose;
- context.data.byte(35) = 2;
-nocountclose:
- context.al = 12;
- goto pokelift;
-liftclosed:
- context.al = context.data.byte(36);
- context.push(context.es);
- context.push(context.bx);
- turnpathoff(context);
- context.bx = context.pop();
- context.es = context.pop();
- context._cmp(context.data.byte(39), 0);
- if (context.flags.z()) goto nocountopen;
- context._sub(context.data.byte(39), 1);
- context._cmp(context.data.byte(39), 0);
- if (!context.flags.z()) goto nocountopen;
- context.data.byte(35) = 3;
-nocountopen:
- context.al = 0;
- goto pokelift;
}
-static inline void liftnoise(Context & context) {
- context._cmp(context.data.byte(184), 5);
- if (context.flags.z()) goto hissnoise;
- context._cmp(context.data.byte(184), 21);
- if (context.flags.z()) goto hissnoise;
- playchannel1(context);
+static void initrain(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
+ context.bx = 1113;
+checkmorerain:
+ context.al = context.data.byte(context.bx);
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto finishinitrain;
+ context._cmp(context.al, context.data.byte(184));
+ if (!context.flags.z()) goto checkrain;
+ context.al = context.data.byte(context.bx+1);
+ context._cmp(context.al, context.data.byte(148));
+ if (!context.flags.z()) goto checkrain;
+ context.al = context.data.byte(context.bx+2);
+ context._cmp(context.al, context.data.byte(149));
+ if (!context.flags.z()) goto checkrain;
+ context.al = context.data.byte(context.bx+3);
+ context.data.byte(132) = context.al;
+ goto dorain;
+checkrain:
+ context._add(context.bx, 4);
+ goto checkmorerain;
+dorain:
+ context.cx = 4;
+initraintop:
+ randomnumber(context);
+ context._and(context.al, 31);
+ context._add(context.al, 3);
+ context._cmp(context.al, context.data.byte(132));
+ if (!context.flags.c()) goto initraintop;
+ context._add(context.cl, context.al);
+ context._cmp(context.cl, context.data.byte(128));
+ if (!context.flags.c()) goto initrainside;
+ context.push(context.cx);
+ splitintolines(context);
+ context.cx = context.pop();
+ goto initraintop;
+initrainside:
+ context.cl = context.data.byte(128);
+ context._sub(context.cl, 1);
+initrainside2:
+ randomnumber(context);
+ context._and(context.al, 31);
+ context._add(context.al, 3);
+ context._cmp(context.al, context.data.byte(132));
+ if (!context.flags.c()) goto initrainside2;
+ context._add(context.ch, context.al);
+ context._cmp(context.ch, context.data.byte(129));
+ if (!context.flags.c()) goto finishinitrain;
+ context.push(context.cx);
+ splitintolines(context);
+ context.cx = context.pop();
+ goto initrainside2;
+finishinitrain:
+ context.al = 255;
+ context._stosb();
return;
-hissnoise:
- context.al = 13;
- playchannel1(context);
+}
+
+static void splitintolines(Context & context) {
+lookforlinestart:
+ getblockofpixel(context);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto foundlinestart;
+ context._sub(context.cl, 1);
+ context._add(context.ch, 1);
+ context._cmp(context.cl, 0);
+ if (context.flags.z()) goto endofthisline;
+ context._cmp(context.ch, context.data.byte(129));
+ if (!context.flags.c()) goto endofthisline;
+ goto lookforlinestart;
+foundlinestart:
+ context.data.word(context.di) = context.cx;
+ context.bh = 1;
+lookforlineend:
+ getblockofpixel(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto foundlineend;
+ context._sub(context.cl, 1);
+ context._add(context.ch, 1);
+ context._cmp(context.cl, 0);
+ if (context.flags.z()) goto foundlineend;
+ context._cmp(context.ch, context.data.byte(129));
+ if (!context.flags.c()) goto foundlineend;
+ context._add(context.bh, 1);
+ goto lookforlineend;
+foundlineend:
+ context.push(context.cx);
+ context.data.byte(context.di+2) = context.bh;
+ randomnumber(context);
+ context.data.byte(context.di+3) = context.al;
+ randomnumber(context);
+ context.data.byte(context.di+4) = context.al;
+ randomnumber(context);
+ context._and(context.al, 3);
+ context._add(context.al, 4);
+ context.data.byte(context.di+5) = context.al;
+ context._add(context.di, 6);
+ context.cx = context.pop();
+ context._cmp(context.cl, 0);
+ if (context.flags.z()) goto endofthisline;
+ context._cmp(context.ch, context.data.byte(129));
+ if (!context.flags.c()) goto endofthisline;
+ goto lookforlinestart;
+endofthisline:
return;
}
-static inline void random(Context & context) {
- randomnum1(context);
+static void getblockofpixel(Context & context) {
+ context.push(context.cx);
+ context.push(context.es);
context.push(context.di);
- context._and(context.ax, 7);
- context._add(context.di, 18);
- context._add(context.di, context.ax);
- context.al = context.data.byte(context.di);
+ context.ax = context.data.word(125);
+ context._add(context.cl, context.al);
+ context.ax = context.data.word(127);
+ context._add(context.ch, context.al);
+ checkone(context);
+ context._and(context.cl, 1);
+ if (!context.flags.z()) goto failrain;
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
+ context.es = context.pop();
+ context.cx = context.pop();
return;
-}
-
-static inline void steady(Context & context) {
- context.al = context.data.byte(context.di+18);
- context.data.byte(context.di+17) = context.al;
- context.data.byte(context.bx+15) = context.al;
+failrain:
+ context.di = context.pop();
+ context.es = context.pop();
+ context.cx = context.pop();
+ context.al = 0;
return;
}
-static inline void constant(Context & context) {
- context._add(context.data.byte(context.bx+19), 1);
- context.cl = context.data.byte(context.bx+19);
- context.ch = 0;
- context._add(context.di, context.cx);
- context._cmp(context.data.byte(context.di+18), 255);
- if (!context.flags.z()) goto gotconst;
- context._sub(context.di, context.cx);
- context.cx = 0;
- context.data.byte(context.bx+19) = context.cl;
+static void showrain(Context & context) {
+ context.ds = context.data.word(414);
+ context.si = 6*58;
+ context.ax = context.data.word(context.si+2);
+ context.si = context.ax;
+ context._add(context.si, 2080);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
+ context.es = context.data.word(412);
+ context._cmp(context.data.byte(context.bx), 255);
+ if (context.flags.z()) goto nothunder;
+morerain:
+ context.es = context.data.word(412);
+ context._cmp(context.data.byte(context.bx), 255);
+ if (context.flags.z()) goto finishrain;
+ context.al = context.data.byte(context.bx+1);
+ context.ah = 0;
+ context._add(context.ax, context.data.word(119));
+ context._add(context.ax, context.data.word(127));
+ context.cx = 320;
+ context._mul(context.cx);
+ context.cl = context.data.byte(context.bx);
+ context.ch = 0;
+ context._add(context.ax, context.cx);
+ context._add(context.ax, context.data.word(117));
+ context._add(context.ax, context.data.word(125));
+ context.di = context.ax;
+ context.cl = context.data.byte(context.bx+2);
+ context.ch = 0;
+ context.ax = context.data.word(context.bx+3);
+ context.dl = context.data.byte(context.bx+5);
+ context.dh = 0;
+ context._sub(context.ax, context.dx);
+ context._and(context.ax, 511);
+ context.data.word(context.bx+3) = context.ax;
+ context._add(context.bx, 6);
+ context.push(context.si);
+ context._add(context.si, context.ax);
+ context.es = context.data.word(400);
+ context.ah = 0;
+ context.dx = 320-2;
+rainloop:
+ context._lodsb();
+ context._cmp(context.al, context.ah);
+ if (context.flags.z()) goto noplot;
+ context._stosb();
+ context._add(context.di, context.dx);
+ if (--context.cx) goto rainloop;
+ context.si = context.pop();
+ goto morerain;
+noplot:
+ context._add(context.di, 320-1);
+ if (--context.cx) goto rainloop;
+ context.si = context.pop();
+ goto morerain;
+finishrain:
+ context._cmp(context.data.word(521), 0);
+ if (!context.flags.z()) goto nothunder;
+ context._cmp(context.data.byte(184), 2);
+ if (!context.flags.z()) goto notlouisthund;
+ context._cmp(context.data.byte(45), 1);
+ if (!context.flags.z()) goto nothunder;
+notlouisthund:
+ context._cmp(context.data.byte(184), 55);
+ if (context.flags.z()) goto nothunder;
+ randomnum1(context);
+ context._cmp(context.al, 1);
+ if (!context.flags.c()) goto nothunder;
+ context.al = 7;
+ context._cmp(context.data.byte(507), 6);
+ if (context.flags.z()) goto isthunder1;
+ context.al = 4;
+isthunder1:
+ playchannel1(context);
+nothunder:
+ return;
+}
+
+static void backobject(Context & context) {
+ context.ds = context.data.word(428);
+ context.di = context.data.word(context.bx+20);
+ context.al = context.data.byte(context.bx+18);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto _tmp48z;
+ context._sub(context.al, 1);
+ context.data.byte(context.bx+18) = context.al;
+ goto finishback;
+_tmp48z:
+ context.al = context.data.byte(context.di+7);
+ context.data.byte(context.bx+18) = context.al;
+ context.al = context.data.byte(context.di+8);
+ context._cmp(context.al, 6);
+ if (!context.flags.z()) goto notwidedoor;
+ widedoor(context);
+ goto finishback;
+notwidedoor:
+ context._cmp(context.al, 5);
+ if (!context.flags.z()) goto notrandom;
+ random(context);
+ goto finishback;
+notrandom:
+ context._cmp(context.al, 4);
+ if (!context.flags.z()) goto notlockdoor;
+ lockeddoorway(context);
+ goto finishback;
+notlockdoor:
+ context._cmp(context.al, 3);
+ if (!context.flags.z()) goto notlift;
+ liftsprite(context);
+ goto finishback;
+notlift:
+ context._cmp(context.al, 2);
+ if (!context.flags.z()) goto notdoor;
+ doorway(context);
+ goto finishback;
+notdoor:
+ context._cmp(context.al, 1);
+ if (!context.flags.z()) goto steadyob;
+ constant(context);
+ goto finishback;
+steadyob:
+ steady(context);
+finishback:
+ return;
+}
+
+static void liftsprite(Context & context) {
+ context.al = context.data.byte(35);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto liftclosed;
+ context._cmp(context.al, 1);
+ if (context.flags.z()) goto liftopen;
+ context._cmp(context.al, 3);
+ if (context.flags.z()) goto openlift;
+ context.al = context.data.byte(context.bx+19);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishclose;
+ context._sub(context.al, 1);
+ context._cmp(context.al, 11);
+ if (!context.flags.z()) goto pokelift;
+ context.push(context.ax);
+ context.al = 3;
+ liftnoise(context);
+ context.ax = context.pop();
+ goto pokelift;
+finishclose:
+ context.data.byte(35) = 0;
+ return;
+openlift:
+ context.al = context.data.byte(context.bx+19);
+ context._cmp(context.al, 12);
+ if (context.flags.z()) goto endoflist;
+ context._add(context.al, 1);
+ context._cmp(context.al, 1);
+ if (!context.flags.z()) goto pokelift;
+ context.push(context.ax);
+ context.al = 2;
+ liftnoise(context);
+ context.ax = context.pop();
+pokelift:
+ context.data.byte(context.bx+19) = context.al;
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(context.di+18);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ context.data.byte(context.di+17) = context.al;
+ return;
+endoflist:
+ context.data.byte(35) = 1;
+ return;
+liftopen:
+ context.al = context.data.byte(36);
+ context.push(context.es);
+ context.push(context.bx);
+ turnpathon(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(40), 0);
+ if (context.flags.z()) goto nocountclose;
+ context._sub(context.data.byte(40), 1);
+ context._cmp(context.data.byte(40), 0);
+ if (!context.flags.z()) goto nocountclose;
+ context.data.byte(35) = 2;
+nocountclose:
+ context.al = 12;
+ goto pokelift;
+liftclosed:
+ context.al = context.data.byte(36);
+ context.push(context.es);
+ context.push(context.bx);
+ turnpathoff(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context._cmp(context.data.byte(39), 0);
+ if (context.flags.z()) goto nocountopen;
+ context._sub(context.data.byte(39), 1);
+ context._cmp(context.data.byte(39), 0);
+ if (!context.flags.z()) goto nocountopen;
+ context.data.byte(35) = 3;
+nocountopen:
+ context.al = 0;
+ goto pokelift;
+}
+
+static void liftnoise(Context & context) {
+ context._cmp(context.data.byte(184), 5);
+ if (context.flags.z()) goto hissnoise;
+ context._cmp(context.data.byte(184), 21);
+ if (context.flags.z()) goto hissnoise;
+ playchannel1(context);
+ return;
+hissnoise:
+ context.al = 13;
+ playchannel1(context);
+ return;
+}
+
+static void random(Context & context) {
+ randomnum1(context);
+ context.push(context.di);
+ context._and(context.ax, 7);
+ context._add(context.di, 18);
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(context.di);
+ context.di = context.pop();
+ context.data.byte(context.bx+15) = context.al;
+ return;
+}
+
+static void steady(Context & context) {
+ context.al = context.data.byte(context.di+18);
+ context.data.byte(context.di+17) = context.al;
+ context.data.byte(context.bx+15) = context.al;
+ return;
+}
+
+static void constant(Context & context) {
+ context._add(context.data.byte(context.bx+19), 1);
+ context.cl = context.data.byte(context.bx+19);
+ context.ch = 0;
+ context._add(context.di, context.cx);
+ context._cmp(context.data.byte(context.di+18), 255);
+ if (!context.flags.z()) goto gotconst;
+ context._sub(context.di, context.cx);
+ context.cx = 0;
+ context.data.byte(context.bx+19) = context.cl;
gotconst:
context.al = context.data.byte(context.di+18);
context._sub(context.di, context.cx);
@@ -2931,7 +3401,7 @@ gotconst:
return;
}
-static inline void doorway(Context & context) {
+static void doorway(Context & context) {
context.data.byte(193) = -24;
context.data.byte(194) = 10;
context.data.byte(195) = -30;
@@ -2940,7 +3410,7 @@ static inline void doorway(Context & context) {
return;
}
-static inline void widedoor(Context & context) {
+static void widedoor(Context & context) {
context.data.byte(193) = -24;
context.data.byte(194) = 24;
context.data.byte(195) = -30;
@@ -2949,7 +3419,7 @@ static inline void widedoor(Context & context) {
return;
}
-static inline void dodoor(Context & context) {
+static void dodoor(Context & context) {
context.al = context.data.byte(151);
context.ah = context.data.byte(152);
context.cl = context.data.byte(context.bx+10);
@@ -3039,7 +3509,7 @@ notnearly:
return;
}
-static inline void lockeddoorway(Context & context) {
+static void lockeddoorway(Context & context) {
context.al = context.data.byte(151);
context.ah = context.data.byte(152);
context.cl = context.data.byte(context.bx+10);
@@ -3176,17698 +3646,17122 @@ notnearly:
return;
}
-static inline void getreelframeax(Context & context) {
- context.push(context.ds);
- context.data.word(160) = context.ax;
- findsource(context);
- context.es = context.ds;
- context.ds = context.pop();
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
- context._add(context.ax, context.ax);
- context.cx = context.ax;
- context._add(context.ax, context.ax);
- context._add(context.ax, context.cx);
- context.bx = context.ax;
- return;
-}
-
-static inline void dumpeverything(Context & context) {
+static void updatepeople(Context & context) {
context.es = context.data.word(412);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
-dumpevery1:
- context.ax = context.data.word(context.bx);
- context.cx = context.data.word(context.bx+2);
- context._cmp(context.ax, 0x0ffff);
- if (context.flags.z()) goto finishevery1;
- context._cmp(context.ax, context.data.word(context.bx+(40*5)));
- if (!context.flags.z()) goto notskip1;
- context._cmp(context.cx, context.data.word(context.bx+(40*5)+2));
- if (context.flags.z()) goto skip1;
-notskip1:
- context.push(context.bx);
- context.push(context.es);
- context.push(context.ds);
- context.bl = context.ah;
- context.bh = 0;
- context.ah = 0;
- context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
- multidump(context);
- context.ds = context.pop();
- context.es = context.pop();
- context.bx = context.pop();
-skip1:
- context._add(context.bx, 5);
- goto dumpevery1;
-finishevery1:
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(40*5);
-dumpevery2:
- context.ax = context.data.word(context.bx);
- context.cx = context.data.word(context.bx+2);
- context._cmp(context.ax, 0x0ffff);
- if (context.flags.z()) goto finishevery2;
- context.push(context.bx);
- context.push(context.es);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
+ context.data.word(18) = context.di;
+ context.cx = 12*5;
+ context.al = 255;
+ while(--context.cx) context._stosb();
+ context._add(context.data.word(138), 1);
+ context.es = context.cs;
+ context.bx = 537;
+ context.di = 1003;
+updateloop:
+ context.al = context.data.byte(context.bx);
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto endupdate;
+ context._cmp(context.al, context.data.byte(184));
+ if (!context.flags.z()) goto notinthisroom;
+ context.cx = context.data.word(context.bx+1);
+ context._cmp(context.cl, context.data.byte(148));
+ if (!context.flags.z()) goto notinthisroom;
+ context._cmp(context.ch, context.data.byte(149));
+ if (!context.flags.z()) goto notinthisroom;
+ context.push(context.di);
+ context.ax = context.data.word(context.di);
+ __dispatch_call(context, context.ax);
+ context.di = context.pop();
+notinthisroom:
+ context._add(context.bx, 8);
+ context._add(context.di, 2);
+ goto updateloop;
+endupdate:
+ return;
+}
+
+static void getreelframeax(Context & context) {
context.push(context.ds);
- context.bl = context.ah;
- context.bh = 0;
- context.ah = 0;
- context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
- multidump(context);
+ context.data.word(160) = context.ax;
+ findsource(context);
+ context.es = context.ds;
context.ds = context.pop();
- context.es = context.pop();
- context.bx = context.pop();
- context._add(context.bx, 5);
- goto dumpevery2;
-finishevery2:
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
+ context._add(context.ax, context.ax);
+ context.cx = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.cx);
+ context.bx = context.ax;
return;
}
-static inline void readabyte(Context & context) {
- context._cmp(context.si, 30000);
- if (!context.flags.z()) goto notendblock;
- context.push(context.bx);
+static void reelsonscreen(Context & context) {
+ reconstruct(context);
+ updatepeople(context);
+ watchreel(context);
+ showrain(context);
+ usetimedtext(context);
+ return;
+}
+
+static void plotreel(Context & context) {
+ getreelstart(context);
+retryreel:
context.push(context.es);
- context.push(context.di);
- context.push(context.ds);
context.push(context.si);
- readoneblock(context);
+ context.ax = context.data.word(context.si+2);
+ context._cmp(context.al, 220);
+ if (context.flags.c()) goto normalreel;
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto normalreel;
+ dealwithspecial(context);
+ context._add(context.data.word(239), 1);
context.si = context.pop();
- context.ds = context.pop();
- context.di = context.pop();
context.es = context.pop();
- context.bx = context.pop();
- context.si = 0;
-notendblock:
- context._lodsb();
- return;
-}
-
-static inline void printundermon(Context & context) {
- context.si = (320*43)+76;
- context.di = context.si;
- context.es = context.data.word(400);
- context._add(context.si, 8*320);
- context.dx = 0x0a000;
- context.ds = context.dx;
- context.cx = 104;
-scrollmonloop1:
+ context._add(context.si, 40);
+ goto retryreel;
+normalreel:
+ context.cx = 8;
+plotloop:
context.push(context.cx);
- context.push(context.di);
+ context.push(context.es);
context.push(context.si);
- context.cx = 170;
-scrollmonloop2:
- context._lodsb();
- context._cmp(context.al, 231);
- if (!context.flags.c()) goto dontplace;
-placeit:
- context._stosb();
- if (--context.cx) goto scrollmonloop2;
- goto finmonscroll;
-dontplace:
- context._add(context.di, 1);
- if (--context.cx) goto scrollmonloop2;
-finmonscroll:
+ context.ax = context.data.word(context.si);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto notplot;
+ showreelframe(context);
+notplot:
context.si = context.pop();
- context.di = context.pop();
+ context.es = context.pop();
context.cx = context.pop();
- context._add(context.si, 320);
- context._add(context.di, 320);
- if (--context.cx) goto scrollmonloop1;
+ context._add(context.si, 5);
+ if (--context.cx) goto plotloop;
+ soundonreels(context);
+ context.bx = context.pop();
+ context.es = context.pop();
return;
}
-static inline void pixelcheckset(Context & context) {
- context.push(context.ax);
- context._sub(context.al, context.data.byte(context.bx));
- context._sub(context.ah, context.data.byte(context.bx+1));
- context.push(context.es);
- context.push(context.bx);
- context.push(context.cx);
- context.push(context.ax);
- context.al = context.data.byte(context.bx+4);
- getsetad(context);
- context.al = context.data.byte(context.bx+17);
- context.es = context.data.word(444);
- context.bx = 0;
- context.ah = 0;
- context.cx = 6;
- context._mul(context.cx);
- context._add(context.bx, context.ax);
- context.ax = context.pop();
- context.push(context.ax);
- context.al = context.ah;
+static void soundonreels(Context & context) {
+ context.bl = context.data.byte(184);
+ context._add(context.bl, context.bl);
+ context._xor(context.bh, context.bh);
+ context._add(context.bx, 1254);
+ context.si = context.data.word(context.bx);
+reelsoundloop:
+ context.al = context.data.byte(context.si);
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto endreelsound;
+ context.ax = context.data.word(context.si+1);
+ context._cmp(context.ax, context.data.word(239));
+ if (!context.flags.z()) goto skipreelsound;
+ context._cmp(context.ax, context.data.word(351));
+ if (context.flags.z()) goto skipreelsound;
+ context.data.word(351) = context.ax;
+ context.al = context.data.byte(context.si);
+ context._cmp(context.al, 64);
+ if (context.flags.c()) { playchannel1(context); return; };
+ context._cmp(context.al, 128);
+ if (context.flags.c()) goto channel0once;
+ context._and(context.al, 63);
+ context.ah = 255;
+ { playchannel0(context); return; };
+channel0once:
+ context._and(context.al, 63);
context.ah = 0;
- context.cl = context.data.byte(context.bx);
- context.ch = 0;
- context._mul(context.cx);
- context.cx = context.pop();
- context.ch = 0;
- context._add(context.ax, context.cx);
- context._add(context.ax, context.data.word(context.bx+2));
- context.bx = context.ax;
- context._add(context.bx, 0+2080);
- context.al = context.data.byte(context.bx);
- context.dl = context.al;
- context.cx = context.pop();
- context.bx = context.pop();
- context.es = context.pop();
- context.ax = context.pop();
- context._cmp(context.dl, 0);
+ { playchannel0(context); return; };
+skipreelsound:
+ context._add(context.si, 3);
+ goto reelsoundloop;
+endreelsound:
+ context.ax = context.data.word(351);
+ context._cmp(context.ax, context.data.word(239));
+ if (context.flags.z()) goto nochange2;
+ context.data.word(351) = -1;
+nochange2:
return;
}
-static inline void delthisone(Context & context) {
- context.push(context.ax);
- context.push(context.ax);
+static void reconstruct(Context & context) {
+ context._cmp(context.data.byte(130), 0);
+ if (context.flags.z()) goto noneedtorecon;
+ context.data.byte(62) = 1;
+ drawfloor(context);
+ spriteupdate(context);
+ printsprites(context);
+ context._cmp(context.data.byte(184), 20);
+ if (!context.flags.z()) goto notfudge;
+ undertextline(context);
+notfudge:
+ context.data.byte(130) = 0;
+noneedtorecon:
+ return;
+}
+
+static void dealwithspecial(Context & context) {
+ context._sub(context.al, 220);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto notplset;
context.al = context.ah;
- context.ah = 0;
- context._add(context.ax, context.data.word(119));
- context.bx = 320;
- context._mul(context.bx);
- context.bx = context.pop();
- context.bh = 0;
- context._add(context.bx, context.data.word(117));
- context._add(context.ax, context.bx);
- context.di = context.ax;
- context.ax = context.pop();
- context.push(context.ax);
+ placesetobject(context);
+ context.data.byte(130) = 1;
+ return;
+notplset:
+ context._cmp(context.al, 1);
+ if (!context.flags.z()) goto notremset;
context.al = context.ah;
- context.ah = 0;
- context.bx = 22*8;
- context._mul(context.bx);
- context.bx = context.pop();
- context.bh = 0;
- context._add(context.ax, context.bx);
- context.si = context.ax;
- context.es = context.data.word(400);
- context.ds = context.data.word(402);
- context.dl = context.cl;
- context.dh = 0;
- context.ax = 320;
- context._sub(context.ax, context.dx);
- context._neg(context.dx);
- context._add(context.dx, 22*8);
-deloneloop:
- context.push(context.cx);
- context.ch = 0;
- while(--context.cx) context._movsb();
- context.cx = context.pop();
- context._add(context.di, context.ax);
- context._add(context.si, context.dx);
- context._sub(context.ch, 1);
- if (!context.flags.z()) goto deloneloop;
+ removesetobject(context);
+ context.data.byte(130) = 1;
return;
-}
-
-static inline void dofade(Context & context) {
- context._cmp(context.data.byte(344), 0);
- if (context.flags.z()) goto finishfade;
- context.cl = context.data.byte(345);
- context.ch = 0;
- context.al = context.data.byte(343);
- context.ah = 0;
- context.ds = context.data.word(412);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context._add(context.si, context.ax);
- context._add(context.si, context.ax);
- context._add(context.si, context.ax);
- showgroup(context);
- context.al = context.data.byte(345);
- context._add(context.al, context.data.byte(343));
- context.data.byte(343) = context.al;
- context._cmp(context.al, 0);
- if (!context.flags.z()) goto finishfade;
- fadecalculation(context);
-finishfade:
+notremset:
+ context._cmp(context.al, 2);
+ if (!context.flags.z()) goto notplfree;
+ context.al = context.ah;
+ placefreeobject(context);
+ context.data.byte(130) = 1;
return;
-}
-
-static inline void fadetowhite(Context & context) {
- context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.cx = 768;
- context.al = 63;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.al = 0;
- context._stosb();
- context._stosb();
- context._stosb();
- paltostartpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+notplfree:
+ context._cmp(context.al, 3);
+ if (!context.flags.z()) goto notremfree;
+ context.al = context.ah;
+ removefreeobject(context);
+ context.data.byte(130) = 1;
+ return;
+notremfree:
+ context._cmp(context.al, 4);
+ if (!context.flags.z()) goto notryanoff;
+ switchryanoff(context);
+ return;
+notryanoff:
+ context._cmp(context.al, 5);
+ if (!context.flags.z()) goto notryanon;
+ context.data.byte(135) = context.ah;
+ context.data.byte(133) = context.ah;
+ switchryanon(context);
+ return;
+notryanon:
+ context._cmp(context.al, 6);
+ if (!context.flags.z()) goto notchangeloc;
+ context.data.byte(188) = context.ah;
+ return;
+notchangeloc:
+ movemap(context);
return;
}
-static inline void fadefromwhite(Context & context) {
- context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.cx = 768;
- context.al = 63;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.al = 0;
- context._stosb();
- context._stosb();
- context._stosb();
- paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+static void movemap(Context & context) {
+ context._cmp(context.ah, 32);
+ if (!context.flags.z()) goto notmapup2;
+ context._sub(context.data.byte(149), 20);
+ context.data.byte(186) = 1;
+ return;
+notmapup2:
+ context._cmp(context.ah, 16);
+ if (!context.flags.z()) goto notmapupspec;
+ context._sub(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
+ return;
+notmapupspec:
+ context._cmp(context.ah, 8);
+ if (!context.flags.z()) goto notmapdownspec;
+ context._add(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
+ return;
+notmapdownspec:
+ context._cmp(context.ah, 2);
+ if (!context.flags.z()) goto notmaprightspec;
+ context._add(context.data.byte(148), 11);
+ context.data.byte(186) = 1;
+ return;
+notmaprightspec:
+ context._sub(context.data.byte(148), 11);
+ context.data.byte(186) = 1;
return;
}
-static inline void fadescreendownhalf(Context & context) {
- paltostartpal(context);
- paltoendpal(context);
- context.cx = 768;
- context.es = context.data.word(412);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
-halfend:
- context.al = context.data.byte(context.bx);
- context._shr(context.al, 1);
- context.data.byte(context.bx) = context.al;
- context._add(context.bx, 1);
- if (--context.cx) goto halfend;
- context.ds = context.data.word(412);
- context.es = context.data.word(412);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
- context.cx = 3*5;
- while(--context.cx) context._movsb();
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(77*3);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
- context.cx = 3*2;
- while(--context.cx) context._movsb();
- context.data.byte(344) = 1;
- context.data.byte(346) = 31;
- context.data.byte(343) = 0;
- context.data.byte(345) = 32;
+static void getreelstart(Context & context) {
+ context.ax = context.data.word(239);
+ context.cx = 40;
+ context._mul(context.cx);
+ context.es = context.data.word(450);
+ context.si = context.ax;
+ context._add(context.si, 0+(36*144));
return;
}
-static inline void fadescreenuphalf(Context & context) {
- endpaltostart(context);
- paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 31;
- context.data.byte(343) = 0;
- context.data.byte(345) = 32;
+static void showreelframe(Context & context) {
+ context.al = context.data.byte(context.si+2);
+ context.ah = 0;
+ context.di = context.ax;
+ context._add(context.di, context.data.word(117));
+ context.al = context.data.byte(context.si+3);
+ context.bx = context.ax;
+ context._add(context.bx, context.data.word(119));
+ context.ax = context.data.word(context.si);
+ context.data.word(160) = context.ax;
+ findsource(context);
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
+ context.ah = 8;
+ showframe(context);
return;
}
-static inline void fadecalculation(Context & context) {
- context._cmp(context.data.byte(346), 0);
- if (context.flags.z()) goto nomorefading;
- context.bl = context.data.byte(346);
- context.es = context.data.word(412);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.cx = 768;
-fadecolloop:
- context.al = context.data.byte(context.si);
- context.ah = context.data.byte(context.di);
- context._cmp(context.al, context.ah);
- if (context.flags.z()) goto gotthere;
- if (context.flags.c()) goto lesscolour;
- context._sub(context.data.byte(context.si), 1);
- goto gotthere;
-lesscolour:
- context._cmp(context.bl, context.ah);
- if (context.flags.z()) goto withit;
- if (!context.flags.c()) goto gotthere;
-withit:
- context._add(context.data.byte(context.si), 1);
-gotthere:
- context._add(context.si, 1);
- context._add(context.di, 1);
- if (--context.cx) goto fadecolloop;
- context._sub(context.data.byte(346), 1);
+static void deleverything(Context & context) {
+ context.al = context.data.byte(129);
+ context.ah = 0;
+ context._add(context.ax, context.data.word(123));
+ context._cmp(context.ax, 182);
+ if (!context.flags.c()) goto bigroom;
+ maptopanel(context);
return;
-nomorefading:
- context.data.byte(344) = 0;
+bigroom:
+ context._sub(context.data.byte(129), 8);
+ maptopanel(context);
+ context._add(context.data.byte(129), 8);
return;
}
-static inline void startpaltoend(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.cx = 768/2;
- while(--context.cx) context._movsw();
- return;
-}
-
-static inline void fadedownmon(Context & context) {
- paltostartpal(context);
- paltoendpal(context);
+static void dumpeverything(Context & context) {
context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
- context.cx = 3*8;
- context.ax = 0;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
- context._stosb();
- context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
- context.cx = 64;
- hangon(context);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
+dumpevery1:
+ context.ax = context.data.word(context.bx);
+ context.cx = context.data.word(context.bx+2);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto finishevery1;
+ context._cmp(context.ax, context.data.word(context.bx+(40*5)));
+ if (!context.flags.z()) goto notskip1;
+ context._cmp(context.cx, context.data.word(context.bx+(40*5)+2));
+ if (context.flags.z()) goto skip1;
+notskip1:
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.ds);
+ context.bl = context.ah;
+ context.bh = 0;
+ context.ah = 0;
+ context.di = context.ax;
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
+ multidump(context);
+ context.ds = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+skip1:
+ context._add(context.bx, 5);
+ goto dumpevery1;
+finishevery1:
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(40*5);
+dumpevery2:
+ context.ax = context.data.word(context.bx);
+ context.cx = context.data.word(context.bx+2);
+ context._cmp(context.ax, 0x0ffff);
+ if (context.flags.z()) goto finishevery2;
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.ds);
+ context.bl = context.ah;
+ context.bh = 0;
+ context.ah = 0;
+ context.di = context.ax;
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
+ multidump(context);
+ context.ds = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ context._add(context.bx, 5);
+ goto dumpevery2;
+finishevery2:
return;
}
-static inline void fadeupmon(Context & context) {
- paltostartpal(context);
- paltoendpal(context);
- context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
- context.cx = 3*8;
- context.ax = 0;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
- context._stosb();
- context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
- context.cx = 128;
- hangon(context);
+static void allocatework(Context & context) {
+ context.bx = 0x1000;
+ allocatemem(context);
+ context.data.word(400) = context.ax;
return;
}
-static inline void fadeupmonfirst(Context & context) {
- paltostartpal(context);
- paltoendpal(context);
- context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
- context.cx = 3*8;
- context.ax = 0;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
- context._stosb();
- context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
- context.cx = 64;
- hangon(context);
- context.al = 26;
- playchannel1(context);
- context.cx = 64;
- hangon(context);
+static void readabyte(Context & context) {
+ context._cmp(context.si, 30000);
+ if (!context.flags.z()) goto notendblock;
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.si);
+ readoneblock(context);
+ context.si = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.si = 0;
+notendblock:
+ context._lodsb();
return;
}
-static inline void fadeupyellows(Context & context) {
- paltoendpal(context);
+static void loadpalfromiff(Context & context) {
+ context.dx = 2494;
+ openfile(context);
+ context.cx = 2000;
+ context.ds = context.data.word(402);
+ context.dx = 0;
+ readfromfile(context);
+ closefile(context);
context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
- context.cx = 3*8;
- context.ax = 0;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.ds = context.data.word(402);
+ context.si = 0x30;
+ context.cx = 768;
+palloop:
+ context._lodsb();
+ context._shr(context.al, 1);
+ context._shr(context.al, 1);
+ context._cmp(context.data.byte(73), 1);
+ if (!context.flags.z()) goto nought;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto nought;
+ context.ah = context.al;
+ context._shr(context.ah, 1);
+ context._add(context.al, context.ah);
+ context._shr(context.ah, 1);
+ context._add(context.al, context.ah);
+ context._cmp(context.al, 64);
+ if (context.flags.c()) goto nought;
+ context.al = 63;
+nought:
context._stosb();
- context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
- context.cx = 128;
- hangon(context);
+ if (--context.cx) goto palloop;
return;
}
-static inline void initialmoncols(Context & context) {
- paltostartpal(context);
- context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
- context.cx = 3*9;
+static void cls(Context & context) {
+ context.ax = 0x0a000;
+ context.es = context.ax;
+ context.di = 0;
+ context.cx = 0x7fff;
context.ax = 0;
- while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
- context._stosb();
- context._stosw();
- context.ds = context.data.word(412);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
- context.al = 230;
- context.cx = 18;
- showgroup(context);
+ while(--context.cx) context._stosw();
return;
}
-static inline void monprint(Context & context) {
- context.data.byte(72) = 1;
- context.si = context.bx;
- context.dl = 166;
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
-printloop8:
- context.push(context.bx);
- context.push(context.di);
- context.push(context.dx);
- getnumber(context);
- context.ch = 0;
-printloop7:
- context.al = context.data.byte(context.si);
- context._add(context.si, 1);
- context._cmp(context.al, ':');
- if (context.flags.z()) goto finishmon2;
- context._cmp(context.al, 0);
- if (context.flags.z()) goto finishmon;
- context._cmp(context.al, 34);
- if (context.flags.z()) goto finishmon;
- context._cmp(context.al, '=');
- if (context.flags.z()) goto finishmon;
- context._cmp(context.al, '%');
- if (!context.flags.z()) goto nottrigger;
- context.ah = context.data.byte(context.si);
- context._add(context.si, 1);
- context._add(context.si, 1);
- goto finishmon;
-nottrigger:
+static void printundermon(Context & context) {
+ context.si = (320*43)+76;
+ context.di = context.si;
+ context.es = context.data.word(400);
+ context._add(context.si, 8*320);
+ context.dx = 0x0a000;
+ context.ds = context.dx;
+ context.cx = 104;
+scrollmonloop1:
context.push(context.cx);
- context.push(context.es);
- modifychar(context);
- printchar(context);
- context.data.word(312) = context.di;
- context.data.word(314) = context.bx;
- context.data.word(138) = 1;
- printcurs(context);
- vsync(context);
- context.push(context.si);
- context.push(context.dx);
- context.push(context.ds);
- context.push(context.es);
- context.push(context.bx);
context.push(context.di);
- lockmon(context);
- context.di = context.pop();
- context.bx = context.pop();
- context.es = context.pop();
- context.ds = context.pop();
- context.dx = context.pop();
+ context.push(context.si);
+ context.cx = 170;
+scrollmonloop2:
+ context._lodsb();
+ context._cmp(context.al, 231);
+ if (!context.flags.c()) goto dontplace;
+placeit:
+ context._stosb();
+ if (--context.cx) goto scrollmonloop2;
+ goto finmonscroll;
+dontplace:
+ context._add(context.di, 1);
+ if (--context.cx) goto scrollmonloop2;
+finmonscroll:
context.si = context.pop();
- delcurs(context);
- context.es = context.pop();
- context.cx = context.pop();
- if (--context.cx) goto printloop7;
-finishmon2:
- context.dx = context.pop();
context.di = context.pop();
- context.bx = context.pop();
- scrollmonitor(context);
- context.data.word(312) = context.di;
- goto printloop8;
-finishmon:
- context.dx = context.pop();
- context.di = context.pop();
- context.bx = context.pop();
- context._cmp(context.al, '%');
- if (!context.flags.z()) goto nottrigger2;
- context.data.byte(55) = context.ah;
-nottrigger2:
- context.data.word(312) = context.di;
- scrollmonitor(context);
- context.bx = context.si;
- context.data.byte(72) = 0;
+ context.cx = context.pop();
+ context._add(context.si, 320);
+ context._add(context.di, 320);
+ if (--context.cx) goto scrollmonloop1;
return;
}
-static inline void fillryan(Context & context) {
- context.es = context.data.word(412);
- context.di = 0+(228*13)+32;
- findallryan(context);
- context.si = 0+(228*13)+32;
- context.al = context.data.byte(19);
- context.ah = 0;
- context.cx = 20;
- context._mul(context.cx);
- context._add(context.si, context.ax);
- context.di = 80;
- context.bx = 58;
- context.cx = 2;
-ryanloop2:
- context.push(context.cx);
- context.push(context.di);
- context.push(context.bx);
- context.cx = 5;
-ryanloop1:
- context.push(context.cx);
- context.push(context.di);
- context.push(context.bx);
- context.ax = context.data.word(context.si);
- context._add(context.si, 2);
- context.push(context.si);
- context.push(context.es);
- obtoinv(context);
- context.es = context.pop();
- context.si = context.pop();
- context.bx = context.pop();
- context.di = context.pop();
- context.cx = context.pop();
- context._add(context.di, 44);
- if (--context.cx) goto ryanloop1;
- context.bx = context.pop();
- context.di = context.pop();
- context.cx = context.pop();
- context._add(context.bx, 44);
- if (--context.cx) goto ryanloop2;
- showryanpage(context);
+static void worktoscreen(Context & context) {
+ vsync(context);
+ context.si = 0;
+ context.di = 0;
+ context.cx = 25;
+ context.ds = context.data.word(400);
+ context.dx = 0x0a000;
+ context.es = context.dx;
+dumpallloop:
+ width160(context);
+ width160(context);
+ width160(context);
+ width160(context);
+ width160(context);
+ width160(context);
+ width160(context);
+ width160(context);
+ if (--context.cx) goto dumpallloop;
return;
}
-static inline void fillopen(Context & context) {
- deltextline(context);
- getopenedsize(context);
- context._cmp(context.ah, 4);
- if (context.flags.c()) goto lessthanapage;
- context.ah = 4;
-lessthanapage:
- context.al = 1;
- context.push(context.ax);
- context.es = context.data.word(412);
- context.di = 0+(228*13);
- findallopen(context);
- context.si = 0+(228*13);
- context.di = 80;
- context.bx = 58+96;
- context.cx = context.pop();
-openloop1:
- context.push(context.cx);
- context.push(context.di);
- context.push(context.bx);
- context.ax = context.data.word(context.si);
- context._add(context.si, 2);
- context.push(context.si);
- context.push(context.es);
- context._cmp(context.ch, context.cl);
- if (context.flags.c()) goto nextopenslot;
- obtoinv(context);
-nextopenslot:
- context.es = context.pop();
- context.si = context.pop();
- context.bx = context.pop();
- context.di = context.pop();
- context.cx = context.pop();
- context._add(context.di, 44);
- context._add(context.cl, 1);
- context._cmp(context.cl, 5);
- if (!context.flags.z()) goto openloop1;
- undertextline(context);
+static void paneltomap(Context & context) {
+ context.di = context.data.word(125);
+ context._add(context.di, context.data.word(117));
+ context.bx = context.data.word(127);
+ context._add(context.bx, context.data.word(119));
+ context.ds = context.data.word(402);
+ context.si = 0;
+ context.cl = context.data.byte(128);
+ context.ch = context.data.byte(129);
+ multiget(context);
return;
}
-static inline void findallryan(Context & context) {
- context.push(context.di);
- context.cx = 30;
- context.ax = 0x0ffff;
- while(--context.cx) context._stosw();
- context.di = context.pop();
- context.cl = 4;
- context.ds = context.data.word(398);
- context.bx = 0+2080+30000;
- context.ch = 0;
-findryanloop:
- context._cmp(context.data.byte(context.bx+2), context.cl);
- if (!context.flags.z()) goto notinryaninv;
- context._cmp(context.data.byte(context.bx+3), 255);
- if (!context.flags.z()) goto notinryaninv;
- context.al = context.data.byte(context.bx+4);
- context.ah = 0;
- context.push(context.di);
- context._add(context.di, context.ax);
- context._add(context.di, context.ax);
- context.al = context.ch;
- context.ah = 4;
- context._stosw();
- context.di = context.pop();
-notinryaninv:
- context._add(context.bx, 16);
- context._add(context.ch, 1);
- context._cmp(context.ch, 114);
- if (!context.flags.z()) goto findryanloop;
+static void maptopanel(Context & context) {
+ context.di = context.data.word(125);
+ context._add(context.di, context.data.word(117));
+ context.bx = context.data.word(127);
+ context._add(context.bx, context.data.word(119));
+ context.ds = context.data.word(402);
+ context.si = 0;
+ context.cl = context.data.byte(128);
+ context.ch = context.data.byte(129);
+ multiput(context);
return;
}
-static inline void findallopen(Context & context) {
- context.push(context.di);
- context.cx = 16;
- context.ax = 0x0ffff;
- while(--context.cx) context._stosw();
- context.di = context.pop();
- context.cl = context.data.byte(110);
- context.dl = context.data.byte(111);
- context.ds = context.data.word(398);
- context.bx = 0+2080+30000;
- context.ch = 0;
-findopen1:
- context._cmp(context.data.byte(context.bx+3), context.cl);
- if (!context.flags.z()) goto findopen2;
- context._cmp(context.data.byte(context.bx+2), context.dl);
- if (!context.flags.z()) goto findopen2;
- context._cmp(context.data.byte(111), 4);
- if (context.flags.z()) goto noloccheck;
- context.al = context.data.byte(context.bx+5);
- context._cmp(context.al, context.data.byte(184));
- if (!context.flags.z()) goto findopen2;
-noloccheck:
- context.al = context.data.byte(context.bx+4);
- context.ah = 0;
- context.push(context.di);
- context._add(context.di, context.ax);
- context._add(context.di, context.ax);
- context.al = context.ch;
- context.ah = 4;
- context._stosw();
- context.di = context.pop();
-findopen2:
- context._add(context.bx, 16);
- context._add(context.ch, 1);
- context._cmp(context.ch, 114);
- if (!context.flags.z()) goto findopen1;
- context.cl = context.data.byte(110);
- context.dl = context.data.byte(111);
- context.push(context.dx);
- context.ds = context.data.word(426);
- context.dx = context.pop();
- context.bx = 0;
- context.ch = 0;
-findopen1a:
- context._cmp(context.data.byte(context.bx+3), context.cl);
- if (!context.flags.z()) goto findopen2a;
- context._cmp(context.data.byte(context.bx+2), context.dl);
- if (!context.flags.z()) goto findopen2a;
- context.al = context.data.byte(context.bx+4);
- context.ah = 0;
- context.push(context.di);
- context._add(context.di, context.ax);
- context._add(context.di, context.ax);
- context.al = context.ch;
- context.ah = 2;
- context._stosw();
- context.di = context.pop();
-findopen2a:
- context._add(context.bx, 16);
- context._add(context.ch, 1);
- context._cmp(context.ch, 80);
- if (!context.flags.z()) goto findopen1a;
+static void dumpmap(Context & context) {
+ context.di = context.data.word(125);
+ context._add(context.di, context.data.word(117));
+ context.bx = context.data.word(127);
+ context._add(context.bx, context.data.word(119));
+ context.cl = context.data.byte(128);
+ context.ch = context.data.byte(129);
+ multidump(context);
return;
}
-static inline void obtoinv(Context & context) {
- context.push(context.bx);
- context.push(context.es);
- context.push(context.si);
- context.push(context.ax);
+static void pixelcheckset(Context & context) {
context.push(context.ax);
- context.push(context.di);
+ context._sub(context.al, context.data.byte(context.bx));
+ context._sub(context.ah, context.data.byte(context.bx+1));
+ context.push(context.es);
context.push(context.bx);
- context.ds = context.data.word(408);
- context._sub(context.di, 2);
- context._sub(context.bx, 1);
- context.al = 10;
+ context.push(context.cx);
+ context.push(context.ax);
+ context.al = context.data.byte(context.bx+4);
+ getsetad(context);
+ context.al = context.data.byte(context.bx+17);
+ context.es = context.data.word(444);
+ context.bx = 0;
context.ah = 0;
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
+ context.cx = 6;
+ context._mul(context.cx);
+ context._add(context.bx, context.ax);
context.ax = context.pop();
- context._cmp(context.al, 255);
- if (context.flags.z()) goto finishfill;
- context.push(context.bx);
- context.push(context.di);
context.push(context.ax);
- context.ds = context.data.word(398);
- context._cmp(context.ah, 4);
- if (context.flags.z()) goto isanextra;
- context.ds = context.data.word(446);
-isanextra:
- context.cl = context.al;
- context._add(context.al, context.al);
- context._add(context.al, context.cl);
- context._add(context.al, 1);
- context.ah = 128;
- context._add(context.bx, 19);
- context._add(context.di, 18);
- showframe(context);
- context.ax = context.pop();
- context.di = context.pop();
- context.bx = context.pop();
- context.push(context.bx);
- getanyaddir(context);
- isitworn(context);
- context.bx = context.pop();
- if (!context.flags.z()) goto finishfill;
- context.ds = context.data.word(408);
- context._sub(context.di, 3);
- context._sub(context.bx, 2);
- context.al = 7;
+ context.al = context.ah;
context.ah = 0;
- showframe(context);
-finishfill:
- context.ax = context.pop();
- context.si = context.pop();
- context.es = context.pop();
+ context.cl = context.data.byte(context.bx);
+ context.ch = 0;
+ context._mul(context.cx);
+ context.cx = context.pop();
+ context.ch = 0;
+ context._add(context.ax, context.cx);
+ context._add(context.ax, context.data.word(context.bx+2));
+ context.bx = context.ax;
+ context._add(context.bx, 0+2080);
+ context.al = context.data.byte(context.bx);
+ context.dl = context.al;
+ context.cx = context.pop();
context.bx = context.pop();
+ context.es = context.pop();
+ context.ax = context.pop();
+ context._cmp(context.dl, 0);
return;
}
-static inline void isitworn(Context & context) {
- context.al = context.data.byte(context.bx+12);
- context._cmp(context.al, 'W'-'A');
- if (!context.flags.z()) goto notworn;
- context.al = context.data.byte(context.bx+13);
- context._cmp(context.al, 'E'-'A');
-notworn:
+static void createpanel(Context & context) {
+ context.di = 0;
+ context.bx = 8;
+ context.ds = context.data.word(410);
+ context.al = 0;
+ context.ah = 2;
+ showframe(context);
+ context.di = 160;
+ context.bx = 8;
+ context.ds = context.data.word(410);
+ context.al = 0;
+ context.ah = 2;
+ showframe(context);
+ context.di = 0;
+ context.bx = 104;
+ context.ds = context.data.word(410);
+ context.al = 0;
+ context.ah = 2;
+ showframe(context);
+ context.di = 160;
+ context.bx = 104;
+ context.ds = context.data.word(410);
+ context.al = 0;
+ context.ah = 2;
+ showframe(context);
return;
}
-static inline void makeworn(Context & context) {
- context.data.byte(context.bx+12) = 'W'-'A';
- context.data.byte(context.bx+13) = 'E'-'A';
+static void createpanel2(Context & context) {
+ createpanel(context);
+ context.di = 0;
+ context.bx = 0;
+ context.ds = context.data.word(410);
+ context.al = 5;
+ context.ah = 2;
+ showframe(context);
+ context.di = 160;
+ context.bx = 0;
+ context.ds = context.data.word(410);
+ context.al = 5;
+ context.ah = 2;
+ showframe(context);
return;
}
-static inline void getbackfromob(Context & context) {
- context._cmp(context.data.byte(106), 1);
- if (!context.flags.z()) goto notheldob;
- blank(context);
- return;
-notheldob:
- getback1(context);
+static void clearwork(Context & context) {
+ context.ax = 0x0;
+ context.es = context.data.word(400);
+ context.di = 0;
+ context.cx = (200*320)/64;
+clearloop:
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ if (--context.cx) goto clearloop;
return;
}
-static inline void incryanpage(Context & context) {
- context._cmp(context.data.byte(100), 222);
- if (context.flags.z()) goto alreadyincryan;
- context.data.byte(100) = 222;
- context.al = 31;
- commandonly(context);
-alreadyincryan:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto noincryan;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doincryan;
-noincryan:
+static void zoom(Context & context) {
+ context._cmp(context.data.word(21), 0);
+ if (!context.flags.z()) goto inwatching;
+ context._cmp(context.data.byte(8), 1);
+ if (context.flags.z()) goto zoomswitch;
+inwatching:
return;
-doincryan:
- context.ax = context.data.word(198);
- context._sub(context.ax, 80+167);
- context.data.byte(19) = -1;
-findnewpage:
- context._add(context.data.byte(19), 1);
- context._sub(context.ax, 18);
- if (!context.flags.c()) goto findnewpage;
- delpointer(context);
- fillryan(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
+zoomswitch:
+ context._cmp(context.data.byte(100), 199);
+ if (context.flags.c()) goto zoomit;
+cantzoom:
+ putunderzoom(context);
return;
-}
-
-static inline void openinv(Context & context) {
- context.data.byte(104) = 1;
- context.al = 61;
- context.di = 80;
- context.bx = 58-10;
- context.dl = 240;
- printmessage(context);
- fillryan(context);
- context.data.byte(100) = 255;
+zoomit:
+ context.ax = context.data.word(222);
+ context._sub(context.ax, 9);
+ context.cx = 320;
+ context._mul(context.cx);
+ context._add(context.ax, context.data.word(220));
+ context._sub(context.ax, 11);
+ context.si = context.ax;
+ context.ax = 132+4;
+ context.cx = 320;
+ context._mul(context.cx);
+ context._add(context.ax, 8+5);
+ context.di = context.ax;
+ context.es = context.data.word(400);
+ context.ds = context.data.word(400);
+ context.cx = 20;
+zoomloop:
+ context.push(context.cx);
+ context.cx = 23;
+zoomloop2:
+ context._lodsb();
+ context.ah = context.al;
+ context._stosw();
+ context.data.word(context.di+320-2) = context.ax;
+ if (--context.cx) goto zoomloop2;
+ context._add(context.si, 320-23);
+ context._add(context.di, 320-46+320);
+ context.cx = context.pop();
+ if (--context.cx) goto zoomloop;
+ crosshair(context);
+ context.data.byte(75) = 1;
return;
}
-static inline void showryanpage(Context & context) {
- context.ds = context.data.word(408);
- context.di = 80+167;
- context.bx = 58-12;
- context.al = 12;
- context.ah = 0;
- showframe(context);
- context.al = 13;
- context._add(context.al, context.data.byte(19));
+static void delthisone(Context & context) {
context.push(context.ax);
- context.al = context.data.byte(19);
+ context.push(context.ax);
+ context.al = context.ah;
context.ah = 0;
- context.cx = 18;
- context._mul(context.cx);
- context.ds = context.data.word(408);
- context.di = 80+167;
- context._add(context.di, context.ax);
- context.bx = 58-12;
+ context._add(context.ax, context.data.word(119));
+ context.bx = 320;
+ context._mul(context.bx);
+ context.bx = context.pop();
+ context.bh = 0;
+ context._add(context.bx, context.data.word(117));
+ context._add(context.ax, context.bx);
+ context.di = context.ax;
context.ax = context.pop();
+ context.push(context.ax);
+ context.al = context.ah;
context.ah = 0;
- showframe(context);
- return;
-}
-
-static inline void openob(Context & context) {
- context.al = context.data.byte(110);
- context.ah = context.data.byte(111);
- context.di = 5674;
- copyname(context);
- context.di = 80;
- context.bx = 58+86;
- context.al = 62;
- context.dl = 240;
- printmessage(context);
- context.di = context.data.word(84);
- context._add(context.di, 5);
- context.bx = 58+86;
- context.es = context.cs;
- context.si = 5674;
- context.dl = 220;
- context.al = 0;
- context.ah = 0;
- printdirect(context);
- fillopen(context);
- getopenedsize(context);
- context.al = context.ah;
- context.ah = 0;
- context.cx = 44;
- context._mul(context.cx);
- context._add(context.ax, 80);
- context.bx = 2588;
- context.data.word(context.bx) = context.ax;
+ context.bx = 22*8;
+ context._mul(context.bx);
+ context.bx = context.pop();
+ context.bh = 0;
+ context._add(context.ax, context.bx);
+ context.si = context.ax;
+ context.es = context.data.word(400);
+ context.ds = context.data.word(402);
+ context.dl = context.cl;
+ context.dh = 0;
+ context.ax = 320;
+ context._sub(context.ax, context.dx);
+ context._neg(context.dx);
+ context._add(context.dx, 22*8);
+deloneloop:
+ context.push(context.cx);
+ context.ch = 0;
+ while(--context.cx) context._movsb();
+ context.cx = context.pop();
+ context._add(context.di, context.ax);
+ context._add(context.si, context.dx);
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto deloneloop;
return;
}
-static inline void examicon(Context & context) {
- context.ds = context.data.word(410);
- context.di = 254;
- context.bx = 5;
- context.al = 3;
+static void multiget(Context & context) {
+ context.ax = context.bx;
+ context.bx = 320;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.es = context.data.word(400);
+ context.es = context.ds;
+ context.ds = context.es;
+ context._xchg(context.di, context.si);
+ context.al = context.cl;
context.ah = 0;
- showframe(context);
+ context.dx = 320;
+ context._sub(context.dx, context.ax);
+ context.al = context.cl;
+ context._and(context.al, 1);
+ if (!context.flags.z()) goto oddwidth2;
+ context.bl = context.cl;
+ context.bh = 0;
+ context.ax = 1819;
+ context._shr(context.bx, 1);
+ context._sub(context.ax, context.bx);
+ context.cl = context.ch;
+ context.ch = 0;
+multiloop3:
+ __dispatch_call(context, context.ax);
+ context._add(context.si, context.dx);
+ if (--context.cx) goto multiloop3;
+ return;
+oddwidth2:
+ context.bl = context.cl;
+ context.bh = 0;
+ context._shr(context.bx, 1);
+ context.ax = 1819;
+ context._sub(context.ax, context.bx);
+ context.cl = context.ch;
+ context.ch = 0;
+multiloop4:
+ __dispatch_call(context, context.ax);
+ context._movsb();
+ context._add(context.si, context.dx);
+ if (--context.cx) goto multiloop4;
return;
}
-static inline void inventory(Context & context) {
- context._cmp(context.data.byte(56), 1);
- if (context.flags.z()) goto iswatchinv;
- context._cmp(context.data.word(21), 0);
- if (context.flags.z()) goto notwatchinv;
-iswatchinv:
- blank(context);
- return;
-notwatchinv:
- context._cmp(context.data.byte(100), 239);
- if (context.flags.z()) goto alreadyopinv;
- context.data.byte(100) = 239;
- context.al = 32;
- commandonly(context);
-alreadyopinv:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto cantopinv;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doopeninv;
-cantopinv:
- return;
-doopeninv:
- context.data.word(328) = 0;
- context.data.byte(234) = 0;
- context.data.byte(237) = 0;
- animpointer(context);
- createpanel(context);
- showpanel(context);
- examicon(context);
- showman(context);
- showexit(context);
- undertextline(context);
- context.data.byte(106) = 0;
- context.data.byte(104) = 2;
- openinv(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- context.data.byte(110) = 255;
- goto waitexam;
-/*continuing to unbounded code: examineagain from examineob:3-62*/
-examineagain:
- context.data.byte(237) = 0;
- context.data.byte(108) = 0;
- context.data.byte(110) = 255;
- context.data.byte(111) = 255;
- context.data.byte(104) = 0;
- context.al = context.data.byte(100);
- context.data.byte(102) = context.al;
- context.data.byte(89) = 0;
- context.data.byte(231) = 0;
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- obicons(context);
- obpicture(context);
- describeob(context);
- undertextline(context);
- context.data.byte(100) = 255;
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
-waitexam:
- readmouse(context);
- showpointer(context);
- vsync(context);
- dumppointer(context);
- dumptextline(context);
- delpointer(context);
- context.data.byte(103) = 0;
- context.bx = 2494;
- context._cmp(context.data.byte(104), 0);
- if (context.flags.z()) goto notuseinv;
- context.bx = 2556;
- context._cmp(context.data.byte(104), 1);
- if (context.flags.z()) goto notuseinv;
- context.bx = 2618;
-notuseinv:
- checkcoords(context);
- context._cmp(context.data.byte(108), 0);
- if (context.flags.z()) goto norex;
- goto examineagain;
-norex:
- context._cmp(context.data.byte(103), 0);
- if (context.flags.z()) goto waitexam;
- context.data.byte(106) = 0;
- context._cmp(context.data.word(21), 0);
- if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(188), 255);
- if (!context.flags.z()) goto justgetback;
-iswatching:
- makemainscreen(context);
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
- return;
-justgetback:
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+static void multiput(Context & context) {
+ context.ax = context.bx;
+ context.bx = 320;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.es = context.data.word(400);
+ context.al = context.cl;
+ context.ah = 0;
+ context.dx = 320;
+ context._sub(context.dx, context.ax);
+ context.al = context.cl;
+ context._and(context.al, 1);
+ if (!context.flags.z()) goto oddwidth3;
+ context.bl = context.cl;
+ context.bh = 0;
+ context._shr(context.bx, 1);
+ context.ax = 1819;
+ context._sub(context.ax, context.bx);
+ context.cl = context.ch;
+ context.ch = 0;
+multiloop5:
+ __dispatch_call(context, context.ax);
+ context._add(context.di, context.dx);
+ if (--context.cx) goto multiloop5;
return;
+oddwidth3:
+ context.bl = context.cl;
+ context.bh = 0;
+ context._shr(context.bx, 1);
+ context.ax = 1819;
+ context._sub(context.ax, context.bx);
+ context.cl = context.ch;
+ context.ch = 0;
+multiloop6:
+ __dispatch_call(context, context.ax);
+ context._movsb();
+ context._add(context.di, context.dx);
+ if (--context.cx) goto multiloop6;
return;
}
-static inline void setpickup(Context & context) {
- context._cmp(context.data.byte(102), 1);
- if (context.flags.z()) goto cantpick;
- context._cmp(context.data.byte(102), 3);
- if (context.flags.z()) goto cantpick;
- getanyad(context);
- context.al = context.data.byte(context.bx+2);
- context._cmp(context.al, 4);
- if (!context.flags.z()) goto canpick;
-cantpick:
- blank(context);
+static void multidump(Context & context) {
+ context.dx = 0x0a000;
+ context.es = context.dx;
+ context.ds = context.data.word(400);
+ context.ax = context.bx;
+ context.bx = 320;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.dx = 320;
+ context.si = context.di;
+ context.al = context.cl;
+ context._and(context.al, 1);
+ if (!context.flags.z()) goto oddwidth;
+ context.bl = context.cl;
+ context.bh = 0;
+ context._shr(context.bx, 1);
+ context.ax = 1819;
+ context._sub(context.ax, context.bx);
+ context.bl = context.cl;
+ context.bh = 0;
+ context._neg(context.bx);
+ context._add(context.bx, context.dx);
+ context.cl = context.ch;
+ context.ch = 0;
+multiloop1:
+ __dispatch_call(context, context.ax);
+ context._add(context.di, context.bx);
+ context._add(context.si, context.bx);
+ if (--context.cx) goto multiloop1;
return;
-canpick:
- context._cmp(context.data.byte(100), 209);
- if (context.flags.z()) goto alreadysp;
- context.data.byte(100) = 209;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
- context.al = 33;
- commandwithob(context);
-alreadysp:
- context.ax = context.data.word(202);
- context._cmp(context.ax, 1);
- if (!context.flags.z()) goto nosetpick;
- context._cmp(context.ax, context.data.word(212));
- if (!context.flags.z()) goto dosetpick;
-nosetpick:
- return;
-dosetpick:
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- examicon(context);
- context.data.byte(106) = 1;
- context.data.byte(104) = 2;
- context._cmp(context.data.byte(102), 4);
- if (context.flags.z()) goto pickupexob;
- context.al = context.data.byte(99);
- context.data.byte(89) = context.al;
- context.data.byte(110) = 255;
- transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
- geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
- openinv(context);
- worktoscreenm(context);
- return;
-pickupexob:
- context.al = context.data.byte(99);
- context.data.byte(89) = context.al;
- context.data.byte(110) = 255;
- openinv(context);
- worktoscreenm(context);
- return;
-}
-
-static inline void examinventory(Context & context) {
- context._cmp(context.data.byte(100), 249);
- if (context.flags.z()) goto alreadyexinv;
- context.data.byte(100) = 249;
- context.al = 32;
- commandonly(context);
-alreadyexinv:
- context.ax = context.data.word(202);
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doexinv;
- return;
-doexinv:
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- examicon(context);
- context.data.byte(106) = 0;
- context.data.byte(104) = 2;
- openinv(context);
- worktoscreenm(context);
- return;
-}
-
-static inline void reexfrominv(Context & context) {
- findinvpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(100) = context.ah;
- context.data.byte(99) = context.al;
- context.data.byte(108) = 1;
- context.data.byte(234) = 0;
- return;
-}
-
-static inline void reexfromopen(Context & context) {
- return;
- findopenpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(100) = context.ah;
- context.data.byte(99) = context.al;
- context.data.byte(108) = 1;
- context.data.byte(234) = 0;
- return;
-}
-
-static inline void swapwithinv(Context & context) {
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
- if (!context.flags.z()) goto difsub7;
- context._cmp(context.data.byte(100), 243);
- if (context.flags.z()) goto alreadyswap1;
- context.data.byte(100) = 243;
-difsub7:
- context.data.word(94) = context.ax;
- context.bx = context.ax;
- context.al = 34;
- commandwithob(context);
-alreadyswap1:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto cantswap1;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doswap1;
-cantswap1:
- return;
-doswap1:
- context.ah = context.data.byte(102);
- context.al = context.data.byte(89);
- context.push(context.ax);
- findinvpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
- geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
- context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
- context.push(context.bx);
- findinvpos(context);
- delpointer(context);
- context.al = context.data.byte(89);
- geteitherad(context);
- context.data.byte(context.bx+2) = 4;
- context.data.byte(context.bx+3) = 255;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
- fillryan(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void swapwithopen(Context & context) {
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
- if (!context.flags.z()) goto difsub8;
- context._cmp(context.data.byte(100), 242);
- if (context.flags.z()) goto alreadyswap2;
- context.data.byte(100) = 242;
-difsub8:
- context.data.word(94) = context.ax;
- context.bx = context.ax;
- context.al = 34;
- commandwithob(context);
-alreadyswap2:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto cantswap2;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doswap2;
-cantswap2:
- return;
-doswap2:
- geteitherad(context);
- isitworn(context);
- if (!context.flags.z()) goto notwornswap;
- wornerror(context);
- return;
-notwornswap:
- delpointer(context);
- context.al = context.data.byte(89);
- context._cmp(context.al, context.data.byte(110));
- if (!context.flags.z()) goto isntsame2;
- context.al = context.data.byte(102);
- context._cmp(context.al, context.data.byte(111));
- if (!context.flags.z()) goto isntsame2;
- errormessage1(context);
- return;
-isntsame2:
- checkobjectsize(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto sizeok2;
- return;
-sizeok2:
- context.ah = context.data.byte(102);
- context.al = context.data.byte(89);
- context.push(context.ax);
- findopenpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
- context._cmp(context.ah, 4);
- if (!context.flags.z()) goto makeswapex;
- geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
- goto actuallyswap;
-makeswapex:
- transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
- geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
-actuallyswap:
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
- context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
- context.push(context.bx);
- findopenpos(context);
- geteitherad(context);
- context.al = context.data.byte(111);
- context.data.byte(context.bx+2) = context.al;
- context.al = context.data.byte(110);
- context.data.byte(context.bx+3) = context.al;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.al = context.data.byte(184);
- context.data.byte(context.bx+5) = context.al;
- context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
- fillopen(context);
- fillryan(context);
- undertextline(context);
- readmouse(context);
- useopened(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void intoinv(Context & context) {
- context._cmp(context.data.byte(106), 0);
- if (!context.flags.z()) goto notout;
- outofinv(context);
- return;
-notout:
- findinvpos(context);
- context.ax = context.data.word(context.bx);
- context._cmp(context.al, 255);
- if (context.flags.z()) goto canplace1;
- swapwithinv(context);
- return;
-canplace1:
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
- if (!context.flags.z()) goto difsub1;
- context._cmp(context.data.byte(100), 220);
- if (context.flags.z()) goto alreadyplce;
- context.data.byte(100) = 220;
-difsub1:
- context.data.word(94) = context.ax;
- context.bx = context.ax;
- context.al = 35;
- commandwithob(context);
-alreadyplce:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto notletgo2;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doplace;
-notletgo2:
- return;
-doplace:
- delpointer(context);
- context.al = context.data.byte(89);
- getexad(context);
- context.data.byte(context.bx+2) = 4;
- context.data.byte(context.bx+3) = 255;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.data.byte(106) = 0;
- fillryan(context);
- readmouse(context);
- showpointer(context);
- outofinv(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void outofinv(Context & context) {
- findinvpos(context);
- context.ax = context.data.word(context.bx);
- context._cmp(context.al, 255);
- if (!context.flags.z()) goto canpick2;
- blank(context);
- return;
-canpick2:
- context.bx = context.data.word(202);
- context._cmp(context.bx, 2);
- if (!context.flags.z()) goto canpick2a;
- reexfrominv(context);
- return;
-canpick2a:
- context._cmp(context.ax, context.data.word(94));
- if (!context.flags.z()) goto difsub3;
- context._cmp(context.data.byte(100), 221);
- if (context.flags.z()) goto alreadygrab;
- context.data.byte(100) = 221;
-difsub3:
- context.data.word(94) = context.ax;
- context.bx = context.ax;
- context.al = 36;
- commandwithob(context);
-alreadygrab:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto notletgo;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto dograb;
-notletgo:
- return;
-dograb:
- delpointer(context);
- context.data.byte(106) = 1;
- findinvpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
- getexad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
- fillryan(context);
- readmouse(context);
- showpointer(context);
- intoinv(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void geteitherad(Context & context) {
- context._cmp(context.data.byte(102), 4);
- if (context.flags.z()) goto isinexlist;
- context.al = context.data.byte(89);
- getfreead(context);
- return;
-isinexlist:
- context.al = context.data.byte(89);
- getexad(context);
- return;
-}
-
-static inline void getopenedsize(Context & context) {
- context._cmp(context.data.byte(111), 4);
- if (context.flags.z()) goto isex2;
- context._cmp(context.data.byte(111), 2);
- if (context.flags.z()) goto isfree2;
- context.al = context.data.byte(110);
- getsetad(context);
- context.ax = context.data.word(context.bx+3);
- return;
-isfree2:
- context.al = context.data.byte(110);
- getfreead(context);
- context.ax = context.data.word(context.bx+7);
- return;
-isex2:
- context.al = context.data.byte(110);
- getexad(context);
- context.ax = context.data.word(context.bx+7);
- return;
-}
-
-static inline void findinvpos(Context & context) {
- context.cx = context.data.word(198);
- context._sub(context.cx, 80);
- context.bx = -1;
-findinv1:
- context._add(context.bx, 1);
- context._sub(context.cx, 44);
- if (!context.flags.c()) goto findinv1;
- context.cx = context.data.word(200);
- context._sub(context.cx, 58);
- context._sub(context.bx, 5);
-findinv2:
- context._add(context.bx, 5);
- context._sub(context.cx, 44);
- if (!context.flags.c()) goto findinv2;
- context.al = context.data.byte(19);
- context.ah = 0;
- context.cx = 10;
- context._mul(context.cx);
- context._add(context.bx, context.ax);
- context.al = context.bl;
- context.data.byte(107) = context.al;
- context._add(context.bx, context.bx);
- context.es = context.data.word(412);
- context._add(context.bx, 0+(228*13)+32);
- return;
-}
-
-static inline void findopenpos(Context & context) {
- context.cx = context.data.word(198);
- context._sub(context.cx, 80);
- context.bx = -1;
-findopenp1:
- context._add(context.bx, 1);
- context._sub(context.cx, 44);
- if (!context.flags.c()) goto findopenp1;
- context.al = context.bl;
- context.data.byte(107) = context.al;
- context._add(context.bx, context.bx);
- context.es = context.data.word(412);
- context._add(context.bx, 0+(228*13));
- return;
-}
-
-static inline void dropobject(Context & context) {
- context._cmp(context.data.byte(100), 223);
- if (context.flags.z()) goto alreadydrop;
- context.data.byte(100) = 223;
- context._cmp(context.data.byte(106), 0);
- if (context.flags.z()) { blank(context); return; };
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
- context.al = 37;
- commandwithob(context);
-alreadydrop:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nodrop;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto dodrop;
-nodrop:
- return;
-dodrop:
- geteitherad(context);
- isitworn(context);
- if (!context.flags.z()) goto nowornerror;
- wornerror(context);
- return;
-nowornerror:
- context._cmp(context.data.byte(184), 47);
- if (context.flags.z()) goto nodrop2;
- context.cl = context.data.byte(151);
- context._add(context.cl, 12);
- context.ch = context.data.byte(152);
- context._add(context.ch, 12);
- checkone(context);
- context._cmp(context.cl, 2);
- if (context.flags.c()) goto nodroperror;
-nodrop2:
- droperror(context);
- return;
-nodroperror:
- context._cmp(context.data.byte(128), 64);
- if (!context.flags.z()) goto notinlift;
- context._cmp(context.data.byte(129), 64);
- if (!context.flags.z()) goto notinlift;
- droperror(context);
- return;
-notinlift:
- context.al = context.data.byte(89);
- context.ah = 4;
- context.cl = 'G';
- context.ch = 'U';
- context.dl = 'N';
- context.dh = 'A';
- compare(context);
- if (context.flags.z()) { cantdrop(context); return; };
- context.al = context.data.byte(89);
- context.ah = 4;
- context.cl = 'S';
- context.ch = 'H';
- context.dl = 'L';
- context.dh = 'D';
- compare(context);
- if (context.flags.z()) { cantdrop(context); return; };
- context.data.byte(102) = 4;
- context.al = context.data.byte(89);
- getexad(context);
- context.data.byte(context.bx+2) = 0;
- context.al = context.data.byte(151);
- context._add(context.al, 4);
- context.cl = 4;
- context._shr(context.al, context.cl);
- context._add(context.al, context.data.byte(148));
- context.ah = context.data.byte(152);
- context._add(context.ah, 8);
- context.cl = 4;
- context._shr(context.ah, context.cl);
- context._add(context.ah, context.data.byte(149));
- context.data.byte(context.bx+3) = context.al;
- context.data.byte(context.bx+5) = context.ah;
- context.al = context.data.byte(151);
- context._add(context.al, 4);
- context._and(context.al, 15);
- context.ah = context.data.byte(152);
- context._add(context.ah, 8);
- context._and(context.ah, 15);
- context.data.byte(context.bx+4) = context.al;
- context.data.byte(context.bx+6) = context.ah;
- context.data.byte(106) = 0;
- context.al = context.data.byte(184);
- context.data.byte(context.bx) = context.al;
- return;
-}
-
-static inline void droperror(Context & context) {
- context.data.byte(100) = 255;
- delpointer(context);
- context.di = 76;
- context.bx = 21;
- context.al = 56;
- context.dl = 240;
- printmessage(context);
- worktoscreenm(context);
- context.cx = 50;
- hangonp(context);
- showpanel(context);
- showman(context);
- examicon(context);
- context.data.byte(100) = 255;
- worktoscreenm(context);
- return;
-}
-
-static inline void cantdrop(Context & context) {
- context.data.byte(100) = 255;
- delpointer(context);
- context.di = 76;
- context.bx = 21;
- context.al = 24;
- context.dl = 240;
- printmessage(context);
- worktoscreenm(context);
- context.cx = 50;
- hangonp(context);
- showpanel(context);
- showman(context);
- examicon(context);
- context.data.byte(100) = 255;
- worktoscreenm(context);
- return;
-}
-
-static inline void wornerror(Context & context) {
- context.data.byte(100) = 255;
- delpointer(context);
- context.di = 76;
- context.bx = 21;
- context.al = 57;
- context.dl = 240;
- printmessage(context);
- worktoscreenm(context);
- context.cx = 50;
- hangonp(context);
- showpanel(context);
- showman(context);
- examicon(context);
- context.data.byte(100) = 255;
- worktoscreenm(context);
- return;
-}
-
-static inline void removeobfrominv(Context & context) {
- context._cmp(context.data.byte(99), 100);
- if (context.flags.z()) goto obnotexist;
- getanyad(context);
- context.di = context.bx;
- context.cl = context.data.byte(99);
- context.ch = 0;
- deleteexobject(context);
-obnotexist:
- return;
-}
-
-static inline void selectopenob(Context & context) {
- context.al = context.data.byte(99);
- getanyad(context);
- context._cmp(context.al, 255);
- if (!context.flags.z()) goto canopenit1;
- blank(context);
- return;
-canopenit1:
- context._cmp(context.data.byte(100), 224);
- if (context.flags.z()) goto alreadyopob;
- context.data.byte(100) = 224;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
- context.al = 38;
- commandwithob(context);
-alreadyopob:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto noopenob;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doopenob;
-noopenob:
- return;
-doopenob:
- context.al = context.data.byte(99);
- context.data.byte(110) = context.al;
- context.al = context.data.byte(102);
- context.data.byte(111) = context.al;
- createpanel(context);
- showpanel(context);
- showman(context);
- examicon(context);
- showexit(context);
- openinv(context);
- openob(context);
- undertextline(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void useopened(Context & context) {
- context._cmp(context.data.byte(110), 255);
- if (context.flags.z()) goto cannotuseopen;
- context._cmp(context.data.byte(106), 0);
- if (!context.flags.z()) goto notout2;
- outofopen(context);
- return;
-notout2:
- findopenpos(context);
- context.ax = context.data.word(context.bx);
- context._cmp(context.al, 255);
- if (context.flags.z()) goto canplace3;
- swapwithopen(context);
-cannotuseopen:
- return;
-canplace3:
- context._cmp(context.data.byte(106), 1);
- if (context.flags.z()) goto intoopen;
- blank(context);
- return;
-intoopen:
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
- if (!context.flags.z()) goto difsub2;
- context._cmp(context.data.byte(100), 227);
- if (context.flags.z()) goto alreadyplc2;
- context.data.byte(100) = 227;
-difsub2:
- context.data.word(94) = context.ax;
- context.bx = context.ax;
- context.al = 35;
- commandwithob(context);
-alreadyplc2:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto notletgo3;
- context._cmp(context.ax, 1);
- if (context.flags.z()) goto doplace2;
-notletgo3:
- return;
-doplace2:
- geteitherad(context);
- isitworn(context);
- if (!context.flags.z()) goto notworntoopen;
- wornerror(context);
- return;
-notworntoopen:
- delpointer(context);
- context.al = context.data.byte(89);
- context._cmp(context.al, context.data.byte(110));
- if (!context.flags.z()) goto isntsame;
- context.al = context.data.byte(102);
- context._cmp(context.al, context.data.byte(111));
- if (!context.flags.z()) goto isntsame;
- errormessage1(context);
- return;
-isntsame:
- checkobjectsize(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto sizeok1;
- return;
-sizeok1:
- context.data.byte(106) = 0;
- context.al = context.data.byte(89);
- geteitherad(context);
- context.al = context.data.byte(111);
- context.data.byte(context.bx+2) = context.al;
- context.al = context.data.byte(110);
- context.data.byte(context.bx+3) = context.al;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.al = context.data.byte(184);
- context.data.byte(context.bx+5) = context.al;
- fillopen(context);
- undertextline(context);
- readmouse(context);
- useopened(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void errormessage1(Context & context) {
- delpointer(context);
- context.di = 76;
- context.bx = 21;
- context.al = 58;
- context.dl = 240;
- printmessage(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- context.cx = 50;
- hangonp(context);
- showpanel(context);
- showman(context);
- examicon(context);
- readmouse(context);
- useopened(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void errormessage2(Context & context) {
- context.data.byte(100) = 255;
- delpointer(context);
- context.di = 76;
- context.bx = 21;
- context.al = 59;
- context.dl = 240;
- printmessage(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- context.cx = 50;
- hangonp(context);
- showpanel(context);
- showman(context);
- examicon(context);
- readmouse(context);
- useopened(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void errormessage3(Context & context) {
- delpointer(context);
- context.di = 76;
- context.bx = 21;
- context.al = 60;
- context.dl = 240;
- printmessage(context);
- worktoscreenm(context);
- context.cx = 50;
- hangonp(context);
- showpanel(context);
- showman(context);
- examicon(context);
- readmouse(context);
- useopened(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void checkobjectsize(Context & context) {
- getopenedsize(context);
- context.push(context.ax);
- context.al = context.data.byte(89);
- geteitherad(context);
- context.al = context.data.byte(context.bx+9);
- context.cx = context.pop();
- context._cmp(context.al, 255);
- if (!context.flags.z()) goto notunsized;
- context.al = 6;
-notunsized:
- context._cmp(context.al, 100);
- if (!context.flags.c()) goto specialcase;
- context._cmp(context.cl, 100);
- if (context.flags.c()) goto isntspecial;
- errormessage3(context);
- goto sizewrong;
-isntspecial:
- context._cmp(context.cl, context.al);
- if (!context.flags.c()) goto sizeok;
-specialcase:
- context._sub(context.al, 100);
- context._cmp(context.cl, 100);
- if (!context.flags.c()) goto bothspecial;
- context._cmp(context.cl, context.al);
- if (!context.flags.c()) goto sizeok;
- errormessage2(context);
- goto sizewrong;
-bothspecial:
- context._sub(context.cl, 100);
- context._cmp(context.al, context.cl);
- if (context.flags.z()) goto sizeok;
- errormessage3(context);
-sizewrong:
- context.al = 1;
- return;
-sizeok:
- context.al = 0;
- return;
-}
-
-static inline void outofopen(Context & context) {
- context._cmp(context.data.byte(110), 255);
- if (context.flags.z()) goto cantuseopen;
- findopenpos(context);
- context.ax = context.data.word(context.bx);
- context._cmp(context.al, 255);
- if (!context.flags.z()) goto canpick4;
-cantuseopen:
- blank(context);
- return;
-canpick4:
- context._cmp(context.ax, context.data.word(94));
- if (!context.flags.z()) goto difsub4;
- context._cmp(context.data.byte(100), 228);
- if (context.flags.z()) goto alreadygrb;
- context.data.byte(100) = 228;
-difsub4:
- context.data.word(94) = context.ax;
- context.bx = context.ax;
- context.al = 36;
- commandwithob(context);
-alreadygrb:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto notletgo4;
- context._cmp(context.ax, 1);
- if (context.flags.z()) goto dogrb;
- context._cmp(context.ax, 2);
- if (!context.flags.z()) goto notletgo4;
- reexfromopen(context);
-notletgo4:
- return;
-dogrb:
- delpointer(context);
- context.data.byte(106) = 1;
- findopenpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
- context._cmp(context.ah, 4);
- if (!context.flags.z()) goto makeintoex;
- geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
- goto actuallyout;
-makeintoex:
- transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
- geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
-actuallyout:
- fillopen(context);
- undertextline(context);
- readmouse(context);
- useopened(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void blockget(Context & context) {
- context.ah = context.al;
- context.al = 0;
- context.ds = context.data.word(416);
- context.si = 0+192;
- context._add(context.si, context.ax);
- return;
-}
-
-static inline void adjustlen(Context & context) {
- context.ah = context.al;
- context._add(context.al, context.ch);
- context._cmp(context.al, 100);
- if (context.flags.c()) goto over242;
- context.al = 224;
- context._sub(context.al, context.ch);
- context.ch = context.al;
-over242:
- return;
-}
-
-static inline void look(Context & context) {
- context._cmp(context.data.word(21), 0);
- if (!context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(234), 2);
- if (context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(100), 241);
- if (context.flags.z()) goto alreadylook;
- context.data.byte(100) = 241;
- context.al = 25;
- commandonly(context);
-alreadylook:
- context._cmp(context.data.word(202), 1);
- if (!context.flags.z()) goto nolook;
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nolook;
- dolook(context);
-nolook:
- return;
-}
-
-static inline void getback1(Context & context) {
- context._cmp(context.data.byte(106), 0);
- if (context.flags.z()) goto notgotobject;
- blank(context);
- return;
-notgotobject:
- context._cmp(context.data.byte(100), 202);
- if (context.flags.z()) goto alreadyget;
- context.data.byte(100) = 202;
- context.al = 26;
- commandonly(context);
-alreadyget:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nogetback;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto dogetback;
-nogetback:
- return;
-dogetback:
- context.data.byte(103) = 1;
- context.data.byte(106) = 0;
- return;
-}
-
-static inline void talk(Context & context) {
- context.data.byte(246) = 0;
- context.data.byte(237) = 0;
- context.al = context.data.byte(99);
- context.data.byte(247) = context.al;
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- undertextline(context);
- convicons(context);
- starttalk(context);
- context.data.byte(100) = 255;
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
-waittalk:
- delpointer(context);
- readmouse(context);
- animpointer(context);
- showpointer(context);
- vsync(context);
- dumppointer(context);
- dumptextline(context);
- context.data.byte(103) = 0;
- context.bx = 2660;
- checkcoords(context);
- context._cmp(context.data.byte(103), 0);
- if (context.flags.z()) goto waittalk;
-finishtalk:
- context.bx = context.data.word(249);
- context.es = context.cs;
- context._cmp(context.data.byte(246), 4);
- if (context.flags.c()) goto notnexttalk;
- context.al = context.data.byte(context.bx+7);
- context._or(context.al, 128);
- context.data.byte(context.bx+7) = context.al;
-notnexttalk:
- redrawmainscrn(context);
- worktoscreenm(context);
- context._cmp(context.data.byte(383), 1);
- if (!context.flags.z()) goto nospeech;
- cancelch1(context);
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
-nospeech:
- return;
-}
-
-static inline void convicons(Context & context) {
- context.al = context.data.byte(247);
- context._and(context.al, 127);
- getpersframe(context);
- context.di = 234;
- context.bx = 2;
- context.data.word(160) = context.ax;
- findsource(context);
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
- context.ah = 0;
- showframe(context);
- return;
-}
-
-static inline void getpersframe(Context & context) {
- context.ah = 0;
- context._add(context.ax, context.ax);
- context.bx = context.ax;
- context.es = context.data.word(448);
- context._add(context.bx, 0);
- context.ax = context.data.word(context.bx);
- return;
-}
-
-static inline void starttalk(Context & context) {
- context.data.byte(245) = 0;
- context.al = context.data.byte(247);
- context._and(context.al, 127);
- getpersontext(context);
- context.data.word(71) = 91+91;
- context.di = 66;
- context.bx = 64;
- context.dl = 241;
- context.al = 0;
- context.ah = 79;
- printdirect(context);
- context.data.word(71) = 0;
- context.di = 66;
- context.bx = 80;
- context.dl = 241;
- context.al = 0;
- context.ah = 0;
- printdirect(context);
-nospeech1:
- return;
-}
-
-static inline void getpersontext(Context & context) {
- context.ah = 0;
- context.cx = 64*2;
- context._mul(context.cx);
- context.si = context.ax;
- context.es = context.data.word(448);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
- context.ax = context.data.word(context.si);
- context._add(context.ax, context.cx);
- context.si = context.ax;
- return;
-}
-
-static inline void moretalk(Context & context) {
- context._cmp(context.data.byte(245), 0);
- if (context.flags.z()) goto canmore;
- redes(context);
- return;
-canmore:
- context._cmp(context.data.byte(100), 215);
- if (context.flags.z()) goto alreadymore;
- context.data.byte(100) = 215;
- context.al = 49;
- commandonly(context);
-alreadymore:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nomore;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto domoretalk;
-nomore:
- return;
-domoretalk:
- context.data.byte(245) = 2;
- context.data.byte(246) = 4;
- context._cmp(context.data.byte(247), 100);
- if (context.flags.c()) goto notsecondpart;
- context.data.byte(246) = 48;
-notsecondpart:
- dosometalk(context);
- return;
-}
-
-static inline void dosometalk(Context & context) {
-watchtalk:
- context.al = context.data.byte(246);
- context.al = context.data.byte(247);
- context._and(context.al, 127);
- context.ah = 0;
- context.cx = 64;
- context._mul(context.cx);
- context.cx = context.ax;
- context.al = context.data.byte(246);
- context.ah = 0;
- context._add(context.ax, context.cx);
- context._add(context.ax, context.ax);
- context.si = context.ax;
- context.es = context.data.word(448);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
- context.ax = context.data.word(context.si);
- context._add(context.ax, context.cx);
- context.si = context.ax;
- context._cmp(context.data.byte(context.si), 0);
- if (context.flags.z()) goto endwatchtalk;
- context.push(context.es);
- context.push(context.si);
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- convicons(context);
- context.si = context.pop();
- context.es = context.pop();
- context.di = 164;
- context.bx = 64;
- context.dl = 144;
- context.al = 0;
- context.ah = 0;
- printdirect(context);
- context.data.byte(234) = 3;
- worktoscreenm(context);
- context.cx = 180;
- hangonpq(context);
- context._add(context.data.byte(246), 1);
- context.al = context.data.byte(246);
- context.al = context.data.byte(247);
- context._and(context.al, 127);
- context.ah = 0;
- context.cx = 64;
- context._mul(context.cx);
- context.cx = context.ax;
- context.al = context.data.byte(246);
- context.ah = 0;
- context._add(context.ax, context.cx);
- context._add(context.ax, context.ax);
- context.si = context.ax;
- context.es = context.data.word(448);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
- context.ax = context.data.word(context.si);
- context._add(context.ax, context.cx);
- context.si = context.ax;
- context._cmp(context.data.byte(context.si), 0);
- if (context.flags.z()) goto endwatchtalk;
- context._cmp(context.data.byte(context.si), ':');
- if (context.flags.z()) goto skiptalk;
- context._cmp(context.data.byte(context.si), 32);
- if (context.flags.z()) goto skiptalk;
- context.push(context.es);
- context.push(context.si);
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- convicons(context);
- context.si = context.pop();
- context.es = context.pop();
- context.di = 48;
- context.bx = 128;
- context.dl = 144;
- context.al = 0;
- context.ah = 0;
- printdirect(context);
- context.data.byte(234) = 3;
- worktoscreenm(context);
- context.cx = 180;
- hangonpq(context);
-skiptalk:
- context._add(context.data.byte(246), 1);
- goto watchtalk;
-endwatchtalk:
- context.data.byte(234) = 0;
- return;
-}
-
-static inline void hangonpq(Context & context) {
- context.data.byte(103) = 0;
- context.bx = 0;
-hangloopq:
- context.push(context.cx);
- context.push(context.bx);
- delpointer(context);
- readmouse(context);
- animpointer(context);
- showpointer(context);
- vsync(context);
- dumppointer(context);
- dumptextline(context);
- context.bx = 2692;
- checkcoords(context);
- context.bx = context.pop();
- context.cx = context.pop();
- context._cmp(context.data.byte(103), 1);
- if (context.flags.z()) goto quitconv;
- context._cmp(context.data.byte(383), 1);
- if (!context.flags.z()) goto notspeaking;
- context._cmp(context.data.byte(515), 255);
- if (!context.flags.z()) goto notspeaking;
- context._add(context.bx, 1);
- context._cmp(context.bx, 40);
- if (context.flags.z()) goto finishconv;
-notspeaking:
- context._cmp(context.data.word(202), 0);
- if (context.flags.z()) goto hangloopq;
- context._cmp(context.data.word(212), 0);
- if (!context.flags.z()) goto hangloopq;
-finishconv:
- delpointer(context);
- context.data.byte(234) = 0;
- return;
-quitconv:
- delpointer(context);
- context.data.byte(234) = 0;
- context.ax = context.pop();
- cancelch1(context);
- return;
-}
-
-static inline void redes(Context & context) {
- context._cmp(context.data.byte(515), 255);
- if (!context.flags.z()) goto cantredes;
- context._cmp(context.data.byte(245), 2);
- if (context.flags.z()) goto canredes;
-cantredes:
- blank(context);
- return;
-canredes:
- context._cmp(context.data.byte(100), 217);
- if (context.flags.z()) goto alreadyreds;
- context.data.byte(100) = 217;
- context.al = 50;
- commandonly(context);
-alreadyreds:
- context.ax = context.data.word(202);
- context._and(context.ax, 1);
- if (!context.flags.z()) goto doredes;
- return;
-doredes:
- delpointer(context);
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- convicons(context);
- starttalk(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
- return;
-}
-
-static inline void lookatplace(Context & context) {
- context._cmp(context.data.byte(100), 224);
- if (context.flags.z()) goto alreadyinfo;
- context.data.byte(100) = 224;
- context.al = 27;
- commandonly(context);
-alreadyinfo:
- context.ax = context.data.word(202);
- context._and(context.ax, 1);
- if (context.flags.z()) goto noinfo;
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto noinfo;
- context.bl = context.data.byte(183);
- context._cmp(context.bl, 15);
- if (!context.flags.c()) goto noinfo;
- context.push(context.bx);
- delpointer(context);
- deltextline(context);
- getundercentre(context);
- context.ds = context.data.word(462);
- context.al = 0;
- context.ah = 0;
- context.di = 60;
- context.bx = 72;
- showframe(context);
- context.al = 4;
- context.ah = 0;
- context.di = 60;
- context.bx = 72+55;
- showframe(context);
- context.al = 4;
- context.ah = 0;
- context.di = 60;
- context.bx = 72+55+21;
- showframe(context);
- context.bx = context.pop();
- context.bh = 0;
- context._add(context.bx, context.bx);
- context.es = context.data.word(456);
- context.si = context.data.word(context.bx);
- context._add(context.si, 66*2);
- findnextcolon(context);
- context.di = 63;
- context.bx = 84+4;
- context.dl = 191;
- context.al = 0;
- context.ah = 0;
- printdirect(context);
- worktoscreenm(context);
- context.cx = 500;
- hangonp(context);
-afterinfo:
- context.data.byte(234) = 0;
- context.data.byte(231) = 0;
- putundercentre(context);
- worktoscreenm(context);
-noinfo:
- return;
-}
-
-static inline void getundercentre(Context & context) {
- context.di = 58;
- context.bx = 72;
- context.ds = context.data.word(402);
- context.si = 0;
- context.cl = 254;
- context.ch = 110;
- multiget(context);
- return;
-}
-
-static inline void putundercentre(Context & context) {
- context.di = 58;
- context.bx = 72;
- context.ds = context.data.word(402);
- context.si = 0;
- context.cl = 254;
- context.ch = 110;
- multiput(context);
- return;
-}
-
-static inline void nextdest(Context & context) {
-duok:
- context._cmp(context.data.byte(100), 218);
- if (context.flags.z()) goto alreadydu;
- context.data.byte(100) = 218;
- context.al = 28;
- commandonly(context);
-alreadydu:
- context.ax = context.data.word(202);
- context._and(context.ax, 1);
- if (context.flags.z()) goto nodu;
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nodu;
-searchdestup:
- context._add(context.data.byte(183), 1);
- context._cmp(context.data.byte(183), 15);
- if (!context.flags.z()) goto notlastdest;
- context.data.byte(183) = 0;
-notlastdest:
- getdestinfo(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto searchdestup;
- context.data.byte(109) = 1;
- deltextline(context);
- delpointer(context);
- showpanel(context);
- showman(context);
- showarrows(context);
- locationpic(context);
- undertextline(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
-nodu:
- return;
-}
-
-static inline void lastdest(Context & context) {
-ddok:
- context._cmp(context.data.byte(100), 219);
- if (context.flags.z()) goto alreadydd;
- context.data.byte(100) = 219;
- context.al = 29;
- commandonly(context);
-alreadydd:
- context.ax = context.data.word(202);
- context._and(context.ax, 1);
- if (context.flags.z()) goto nodd;
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nodd;
-searchdestdown:
- context._sub(context.data.byte(183), 1);
- context._cmp(context.data.byte(183), -1);
- if (!context.flags.z()) goto notfirstdest;
- context.data.byte(183) = 15;
-notfirstdest:
- getdestinfo(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto searchdestdown;
- context.data.byte(109) = 1;
- deltextline(context);
- delpointer(context);
- showpanel(context);
- showman(context);
- showarrows(context);
- locationpic(context);
- undertextline(context);
- readmouse(context);
- showpointer(context);
- worktoscreen(context);
- delpointer(context);
-nodd:
- return;
-}
-
-static inline void destselect(Context & context) {
- context._cmp(context.data.byte(100), 222);
- if (context.flags.z()) goto alreadytrav;
- context.data.byte(100) = 222;
- context.al = 30;
- commandonly(context);
-alreadytrav:
- context.ax = context.data.word(202);
- context._and(context.ax, 1);
- if (context.flags.z()) goto notrav;
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto notrav;
- getdestinfo(context);
- context.al = context.data.byte(183);
- context.data.byte(188) = context.al;
-notrav:
- return;
-}
-
-static inline void usemon(Context & context) {
- context.data.byte(55) = 0;
- context.es = context.cs;
- context.di = 2895+1;
- context.cx = 12;
- context.al = 32;
- while(--context.cx) context._stosb();
- context.es = context.cs;
- context.di = 2883+1;
- context.cx = 12;
- context.al = 32;
- while(--context.cx) context._stosb();
- context.es = context.cs;
- context.di = 2807;
- context.data.byte(context.di) = 1;
- context._add(context.di, 26);
- context.cx = 3;
-keyloop:
- context.data.byte(context.di) = 0;
- context._add(context.di, 26);
- if (--context.cx) goto keyloop;
- createpanel(context);
- showpanel(context);
- showicon(context);
- drawfloor(context);
- getridofall(context);
- context.dx = 1987;
- loadintotemp(context);
- loadpersonal(context);
- loadnews(context);
- loadcart(context);
- context.dx = 1883;
- loadtempcharset(context);
- printoutermon(context);
- initialmoncols(context);
- printlogo(context);
- worktoscreen(context);
- turnonpower(context);
- fadeupyellows(context);
- fadeupmonfirst(context);
- context.data.word(318) = 76;
- context.data.word(320) = 141;
- context.al = 1;
- monmessage(context);
- context.cx = 120;
- hangoncurs(context);
- context.al = 2;
- monmessage(context);
- context.cx = 60;
- randomaccess(context);
- context.al = 3;
- monmessage(context);
- context.cx = 100;
- hangoncurs(context);
- printlogo(context);
- scrollmonitor(context);
- context.data.word(394) = 0;
- context.data.word(396) = 0;
-moreinput:
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.push(context.di);
- context.push(context.bx);
- input(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.data.word(318) = context.di;
- context.data.word(320) = context.bx;
- execcommand(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto moreinput;
-endmon:
- getridoftemp(context);
- getridoftempcharset(context);
- context.es = context.data.word(466);
- deallocatemem(context);
- context.es = context.data.word(468);
- deallocatemem(context);
- context.es = context.data.word(470);
- deallocatemem(context);
- context.data.byte(103) = 1;
- context.al = 26;
- playchannel1(context);
- context.data.byte(131) = 0;
- restoreall(context);
- redrawmainscrn(context);
- worktoscreenm(context);
- return;
-}
-
-static inline void printoutermon(Context & context) {
- context.di = 40;
- context.bx = 32;
- context.ds = context.data.word(458);
- context.al = 1;
- context.ah = 0;
- showframe(context);
- context.di = 264;
- context.bx = 32;
- context.ds = context.data.word(458);
- context.al = 2;
- context.ah = 0;
- showframe(context);
- context.di = 40;
- context.bx = 12;
- context.ds = context.data.word(458);
- context.al = 3;
- context.ah = 0;
- showframe(context);
- context.di = 40;
- context.bx = 164;
- context.ds = context.data.word(458);
- context.al = 4;
- context.ah = 0;
- showframe(context);
- return;
-}
-
-static inline void loadpersonal(Context & context) {
- context.al = context.data.byte(9);
- context.dx = 2065;
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundpersonal;
- context._cmp(context.al, 42);
- if (context.flags.z()) goto foundpersonal;
- context.dx = 2078;
- context._cmp(context.al, 2);
- if (context.flags.z()) goto foundpersonal;
-foundpersonal:
- openfile(context);
- readheader(context);
- context.bx = context.data.word(context.di);
- context.push(context.bx);
- context.cl = 4;
- context._shr(context.bx, context.cl);
- allocatemem(context);
- context.data.word(466) = context.ax;
- context.ds = context.ax;
- context.cx = context.pop();
- context.dx = 0;
- readfromfile(context);
- closefile(context);
- return;
-}
-
-static inline void loadnews(Context & context) {
- context.al = context.data.byte(34);
- context.dx = 2091;
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundnews;
- context.dx = 2104;
- context._cmp(context.al, 1);
- if (context.flags.z()) goto foundnews;
- context.dx = 2117;
- context._cmp(context.al, 2);
- if (context.flags.z()) goto foundnews;
- context.dx = 2130;
-foundnews:
- openfile(context);
- readheader(context);
- context.bx = context.data.word(context.di);
- context.push(context.bx);
- context.cl = 4;
- context._shr(context.bx, context.cl);
- allocatemem(context);
- context.data.word(468) = context.ax;
- context.ds = context.ax;
- context.cx = context.pop();
- context.dx = 0;
- readfromfile(context);
- closefile(context);
- return;
-}
-
-static inline void loadcart(Context & context) {
- lookininterface(context);
- context.dx = 2143;
- context._cmp(context.al, 0);
- if (context.flags.z()) goto gotcart;
- context.dx = 2156;
- context._cmp(context.al, 1);
- if (context.flags.z()) goto gotcart;
- context.dx = 2169;
- context._cmp(context.al, 2);
- if (context.flags.z()) goto gotcart;
- context.dx = 2182;
- context._cmp(context.al, 3);
- if (context.flags.z()) goto gotcart;
- context.dx = 2195;
-gotcart:
- openfile(context);
- readheader(context);
- context.bx = context.data.word(context.di);
- context.push(context.bx);
- context.cl = 4;
- context._shr(context.bx, context.cl);
- allocatemem(context);
- context.data.word(470) = context.ax;
- context.ds = context.ax;
- context.cx = context.pop();
- context.dx = 0;
- readfromfile(context);
- closefile(context);
- return;
-}
-
-static inline void lookininterface(Context & context) {
- context.al = 'I';
- context.ah = 'N';
- context.cl = 'T';
- context.ch = 'F';
- findsetobject(context);
- context.ah = 1;
- checkinside(context);
- context._cmp(context.cl, 114);
- if (context.flags.z()) goto emptyinterface;
- context.al = context.data.byte(context.bx+15);
- context._add(context.al, 1);
- return;
-emptyinterface:
- context.al = 0;
- return;
-}
-
-static inline void turnonpower(Context & context) {
- context.cx = 3;
-powerloop:
- context.push(context.cx);
- powerlighton(context);
- context.cx = 30;
- hangon(context);
- powerlightoff(context);
- context.cx = 30;
- hangon(context);
- context.cx = context.pop();
- if (--context.cx) goto powerloop;
- powerlighton(context);
- return;
-}
-
-static inline void randomaccess(Context & context) {
-accessloop:
- context.push(context.cx);
- vsync(context);
- vsync(context);
- randomnum1(context);
- context._and(context.al, 15);
- context._cmp(context.al, 10);
- if (context.flags.c()) goto off;
- accesslighton(context);
- goto chosenaccess;
-off:
- accesslightoff(context);
-chosenaccess:
- context.cx = context.pop();
- if (--context.cx) goto accessloop;
- accesslightoff(context);
- return;
-}
-
-static inline void powerlighton(Context & context) {
- context.di = 257+4;
- context.bx = 182;
- context.ds = context.data.word(458);
- context.al = 6;
- context.ah = 0;
- context.push(context.di);
- context.push(context.bx);
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.cl = 12;
- context.ch = 8;
- multidump(context);
- return;
-}
-
-static inline void powerlightoff(Context & context) {
- context.di = 257+4;
- context.bx = 182;
- context.ds = context.data.word(458);
- context.al = 5;
- context.ah = 0;
- context.push(context.di);
- context.push(context.bx);
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.cl = 12;
- context.ch = 8;
- multidump(context);
- return;
-}
-
-static inline void accesslighton(Context & context) {
- context.di = 74;
- context.bx = 182;
- context.ds = context.data.word(458);
- context.al = 8;
- context.ah = 0;
- context.push(context.di);
- context.push(context.bx);
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.cl = 12;
- context.ch = 8;
- multidump(context);
+oddwidth:
+ context.bl = context.cl;
+ context.bh = 0;
+ context._shr(context.bx, 1);
+ context.ax = 1819;
+ context._sub(context.ax, context.bx);
+ context.bl = context.cl;
+ context.bh = 0;
+ context._neg(context.bx);
+ context._add(context.bx, 320);
+ context.cl = context.ch;
+ context.ch = 0;
+multiloop2:
+ __dispatch_call(context, context.ax);
+ context._movsb();
+ context._add(context.di, context.bx);
+ context._add(context.si, context.bx);
+ if (--context.cx) goto multiloop2;
return;
}
-static inline void accesslightoff(Context & context) {
- context.di = 74;
- context.bx = 182;
- context.ds = context.data.word(458);
- context.al = 7;
- context.ah = 0;
- context.push(context.di);
- context.push(context.bx);
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.cl = 12;
- context.ch = 8;
- multidump(context);
+static void width160(Context & context) {
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ width128:
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ width110:
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ width88:
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ width80:
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ width63:
+ context._movsw();
+ width62:
+ context._movsw();
+ width61:
+ context._movsw();
+ width60:
+ context._movsw();
+ width59:
+ context._movsw();
+ width58:
+ context._movsw();
+ width57:
+ context._movsw();
+ width56:
+ context._movsw();
+ width55:
+ context._movsw();
+ width54:
+ context._movsw();
+ width53:
+ context._movsw();
+ width52:
+ context._movsw();
+ width51:
+ context._movsw();
+ width50:
+ context._movsw();
+ width49:
+ context._movsw();
+ width48:
+ context._movsw();
+ width47:
+ context._movsw();
+ width46:
+ context._movsw();
+ width45:
+ context._movsw();
+ width44:
+ context._movsw();
+ width43:
+ context._movsw();
+ width42:
+ context._movsw();
+ width41:
+ context._movsw();
+ width40:
+ context._movsw();
+ width39:
+ context._movsw();
+ width38:
+ context._movsw();
+ width37:
+ context._movsw();
+ width36:
+ context._movsw();
+ width35:
+ context._movsw();
+ width34:
+ context._movsw();
+ width33:
+ context._movsw();
+ width32:
+ context._movsw();
+ width31:
+ context._movsw();
+ width30:
+ context._movsw();
+ width29:
+ context._movsw();
+ width28:
+ context._movsw();
+ width27:
+ context._movsw();
+ width26:
+ context._movsw();
+ width25:
+ context._movsw();
+ width24:
+ context._movsw();
+ width23:
+ context._movsw();
+ width22:
+ context._movsw();
+ width21:
+ context._movsw();
+ width20:
+ context._movsw();
+ width19:
+ context._movsw();
+ width18:
+ context._movsw();
+ width17:
+ context._movsw();
+ width16:
+ context._movsw();
+ width15:
+ context._movsw();
+ width14:
+ context._movsw();
+ width13:
+ context._movsw();
+ width12:
+ context._movsw();
+ width11:
+ context._movsw();
+ width10:
+ context._movsw();
+ width9:
+ context._movsw();
+ width8:
+ context._movsw();
+ width7:
+ context._movsw();
+ width6:
+ context._movsw();
+ width5:
+ context._movsw();
+ width4:
+ context._movsw();
+ width3:
+ context._movsw();
+ width2:
+ context._movsw();
+ width1:
+ context._movsw();
+ width0:
return;
}
-static inline void locklighton(Context & context) {
- context.di = 56;
- context.bx = 182;
- context.ds = context.data.word(458);
- context.al = 10;
+static void doblocks(Context & context) {
+ context.es = context.data.word(400);
+ context.ax = context.data.word(119);
+ context.cx = 320;
+ context._mul(context.cx);
+ context.di = context.data.word(117);
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(149);
context.ah = 0;
+ context.bx = 66;
+ context._mul(context.bx);
+ context.bl = context.data.byte(148);
+ context.bh = 0;
+ context._add(context.ax, context.bx);
+ context.si = 0;
+ context._add(context.si, context.ax);
+ context.cx = 10;
+loop120:
context.push(context.di);
- context.push(context.bx);
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.cl = 12;
- context.ch = 8;
- multidump(context);
- return;
-}
-
-static inline void locklightoff(Context & context) {
- context.di = 56;
- context.bx = 182;
- context.ds = context.data.word(458);
- context.al = 9;
- context.ah = 0;
+ context.push(context.cx);
+ context.cx = 11;
+loop124:
+ context.push(context.cx);
context.push(context.di);
- context.push(context.bx);
- showframe(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.cl = 12;
- context.ch = 8;
- multidump(context);
- return;
-}
-
-static inline void input(Context & context) {
- context.es = context.cs;
- context.di = 7944;
- context.cx = 64;
- context.al = 0;
- while(--context.cx) context._stosb();
- context.data.word(316) = 0;
- context.al = '>';
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
- context.ah = 0;
- printchar(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.cl = 6;
- context.ch = 8;
- multidump(context);
- context._add(context.data.word(318), 6);
- context.ax = context.data.word(318);
- context.data.word(312) = context.ax;
- context.ax = context.data.word(320);
- context.data.word(314) = context.ax;
-waitkey:
- printcurs(context);
- vsync(context);
- delcurs(context);
- readkey(context);
- context.al = context.data.byte(142);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto waitkey;
- context._cmp(context.al, 13);
- if (context.flags.z()) goto endofinput;
- context._cmp(context.al, 8);
- if (!context.flags.z()) goto notdel;
- context._cmp(context.data.word(316), 0);
- if (context.flags.z()) goto waitkey;
- delchar(context);
- goto waitkey;
-notdel:
- context._cmp(context.data.word(316), 28);
- if (context.flags.z()) goto waitkey;
- context._cmp(context.data.byte(142), 32);
- if (!context.flags.z()) goto notleadingspace;
- context._cmp(context.data.word(316), 0);
- if (context.flags.z()) goto waitkey;
-notleadingspace:
- makecaps(context);
- context.es = context.cs;
- context.si = context.data.word(316);
- context._add(context.si, context.si);
- context._add(context.si, 7944);
- context.data.byte(context.si) = context.al;
- context._cmp(context.al, 'Z'+1);
- if (!context.flags.c()) goto waitkey;
- context.push(context.ax);
- context.push(context.es);
- context.push(context.si);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(402);
- context.ax = context.data.word(316);
- context._xchg(context.al, context.ah);
- context.si = context.ax;
- context.cl = 8;
- context.ch = 8;
- multiget(context);
- context.si = context.pop();
- context.es = context.pop();
- context.ax = context.pop();
- context.push(context.es);
+ context.ds = context.data.word(418);
+ context._lodsb();
+ context.ds = context.data.word(416);
context.push(context.si);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
- context.ah = 0;
- printchar(context);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto zeroblock;
+ context.ah = context.al;
+ context.al = 0;
+ context.si = 0+192;
+ context._add(context.si, context.ax);
+ context.bh = 14;
+ context.bh = 4;
+firstbitofblock:
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._add(context.di, 320-16);
+ context._sub(context.bh, 1);
+ if (!context.flags.z()) goto firstbitofblock;
+ context.bh = 12;
+loop125:
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context._movsw();
+ context.ax = 0x0dfdf;
+ context._stosw();
+ context._stosw();
+ context._add(context.di, 320-20);
+ context._sub(context.bh, 1);
+ if (!context.flags.z()) goto loop125;
+ context._add(context.di, 4);
+ context.ax = 0x0dfdf;
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._add(context.di, 320-16);
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._add(context.di, 320-16);
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._add(context.di, 320-16);
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+ context._stosw();
+zeroblock:
context.si = context.pop();
- context.es = context.pop();
- context.data.byte(context.si+1) = context.cl;
- context.ch = 0;
- context._add(context.data.word(318), context.cx);
- context._add(context.data.word(316), 1);
- context._add(context.data.word(312), context.cx);
- goto waitkey;
-endofinput:
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.di, 16);
+ if (--context.cx) goto loop124;
+ context._add(context.si, 66-11);
+ context.cx = context.pop();
+ context.di = context.pop();
+ context._add(context.di, 320*16);
+ if (--context.cx) goto loop120;
return;
}
-static inline void makecaps(Context & context) {
- context._cmp(context.al, 'a');
- if (context.flags.c()) goto notupperc;
- context._sub(context.al, 32);
-notupperc:
+static void showframe(Context & context) {
+ context.push(context.dx);
+ context.push(context.ax);
+ context.cx = context.ax;
+ context._and(context.cx, 511);
+ context._add(context.cx, context.cx);
+ context.si = context.cx;
+ context._add(context.cx, context.cx);
+ context._add(context.si, context.cx);
+ context._cmp(context.data.word(context.si), 0);
+ if (!context.flags.z()) goto notblankshow;
+ context.cx = 0;
return;
-}
-
-static inline void delchar(Context & context) {
- context._sub(context.data.word(316), 1);
- context.si = context.data.word(316);
- context._add(context.si, context.si);
- context.es = context.cs;
- context._add(context.si, 7944);
- context.data.byte(context.si) = 0;
- context.al = context.data.byte(context.si+1);
+notblankshow:
+ context._test(context.ah, 128);
+ if (!context.flags.z()) goto skipoffsets;
+ context.al = context.data.byte(context.si+4);
context.ah = 0;
- context._sub(context.data.word(318), context.ax);
- context._sub(context.data.word(312), context.ax);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(402);
- context.ax = context.data.word(316);
- context._xchg(context.al, context.ah);
+ context._add(context.di, context.ax);
+ context.al = context.data.byte(context.si+5);
+ context.ah = 0;
+ context._add(context.bx, context.ax);
+skipoffsets:
+ context.cx = context.data.word(context.si+0);
+ context.ax = context.data.word(context.si+2);
+ context._add(context.ax, 2080);
context.si = context.ax;
- context.cl = 8;
- context.ch = 8;
- multiput(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.cl = context.al;
- context.ch = 8;
- multidump(context);
- return;
-}
-
-static inline void execcommand(Context & context) {
- context.es = context.cs;
- context.bx = 2776;
- context.ds = context.cs;
- context.si = 7944;
- context.al = context.data.byte(context.si);
- context._cmp(context.al, 0);
- if (!context.flags.z()) goto notblankinp;
- scrollmonitor(context);
+ context.ax = context.pop();
+ context.dx = context.pop();
+ context._cmp(context.ah, 0);
+ if (context.flags.z()) goto noeffects;
+ context._test(context.ah, 128);
+ if (context.flags.z()) goto notcentred;
+ context.push(context.ax);
+ context.al = context.cl;
+ context.ah = 0;
+ context._shr(context.ax, 1);
+ context._sub(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 0;
+ context._shr(context.ax, 1);
+ context._sub(context.bx, context.ax);
+ context.ax = context.pop();
+notcentred:
+ context._test(context.ah, 64);
+ if (context.flags.z()) goto notdiffdest;
+ context.push(context.cx);
+ frameoutfx(context);
+ context.cx = context.pop();
return;
-notblankinp:
- context.cl = 0;
-comloop:
+notdiffdest:
+ context._test(context.ah, 8);
+ if (context.flags.z()) goto notprintlist;
+ context.push(context.ax);
+ context.ax = context.di;
+ context._sub(context.ax, context.data.word(117));
context.push(context.bx);
- context.push(context.si);
-comloop2:
- context.al = context.data.byte(context.si);
- context._add(context.si, 2);
- context.ah = context.data.byte(context.bx);
- context._add(context.bx, 1);
- context._cmp(context.ah, 32);
- if (context.flags.z()) goto foundcom;
- context._cmp(context.al, context.ah);
- if (context.flags.z()) goto comloop2;
- context.si = context.pop();
- context.bx = context.pop();
- context._add(context.bx, 10);
- context._add(context.cl, 1);
- context._cmp(context.cl, 6);
- if (!context.flags.z()) goto comloop;
- neterror(context);
- context.al = 0;
- return;
-foundcom:
- context.si = context.pop();
+ context._sub(context.bx, context.data.word(119));
+ context.ah = context.bl;
context.bx = context.pop();
- context._cmp(context.cl, 1);
- if (context.flags.z()) goto testcom;
- context._cmp(context.cl, 2);
- if (context.flags.z()) goto directory;
- context._cmp(context.cl, 3);
- if (context.flags.z()) goto accesscom;
- context._cmp(context.cl, 4);
- if (context.flags.z()) goto signoncom;
- context._cmp(context.cl, 5);
- if (context.flags.z()) goto keyscom;
- goto quitcom;
-directory:
- dircom(context);
- context.al = 0;
- return;
-signoncom:
- signon(context);
- context.al = 0;
- return;
-accesscom:
- read(context);
- context.al = 0;
- return;
-keyscom:
- showkeys(context);
- context.al = 0;
- return;
-testcom:
- context.al = 6;
- monmessage(context);
- context.al = 0;
- return;
-quitcom:
- context.al = 1;
- return;
-}
-
-static inline void neterror(Context & context) {
- context.al = 5;
- monmessage(context);
- scrollmonitor(context);
- return;
-}
-
-static inline void dircom(Context & context) {
- context.cx = 30;
- randomaccess(context);
- parser(context);
- context._cmp(context.data.byte(context.di+1), 0);
- if (context.flags.z()) goto dirroot;
- dirfile(context);
- return;
-dirroot:
- context.data.byte(269) = 0;
- context.ds = context.cs;
- context.si = 2885;
- context._add(context.si, 1);
- context.es = context.cs;
- context.di = 2895;
- context._add(context.di, 1);
- context.cx = 12;
- while(--context.cx) context._movsb();
- monitorlogo(context);
- scrollmonitor(context);
- context.al = 9;
- monmessage(context);
- context.es = context.data.word(466);
- searchforfiles(context);
- context.es = context.data.word(468);
- searchforfiles(context);
- context.es = context.data.word(470);
- searchforfiles(context);
- scrollmonitor(context);
+ context.ax = context.pop();
+notprintlist:
+ context._test(context.ah, 4);
+ if (context.flags.z()) goto notflippedx;
+ context.dx = 320;
+ context.es = context.data.word(400);
+ context.push(context.cx);
+ frameoutfx(context);
+ context.cx = context.pop();
return;
-}
-
-static inline void searchforfiles(Context & context) {
- context.bx = 66*2;
-directloop1:
- context.al = context.data.byte(context.bx);
- context._add(context.bx, 1);
- context._cmp(context.al, '*');
- if (context.flags.z()) goto endofdir;
- context._cmp(context.al, 34);
- if (!context.flags.z()) goto directloop1;
- monprint(context);
- goto directloop1;
-endofdir:
+notflippedx:
+ context._test(context.ah, 2);
+ if (context.flags.z()) goto notnomask;
+ context.dx = 320;
+ context.es = context.data.word(400);
+ context.push(context.cx);
+ frameoutnm(context);
+ context.cx = context.pop();
+ return;
+notnomask:
+ context._test(context.ah, 32);
+ if (context.flags.z()) goto noeffects;
+ context.dx = 320;
+ context.es = context.data.word(400);
+ context.push(context.cx);
+ frameoutbh(context);
+ context.cx = context.pop();
+ return;
+noeffects:
+ context.dx = 320;
+ context.es = context.data.word(400);
+ context.push(context.cx);
+ frameoutv(context);
+ context.cx = context.pop();
return;
}
-static inline void signon(Context & context) {
- parser(context);
- context._add(context.di, 1);
- context.ds = context.cs;
- context.si = 2807;
- context.cx = 4;
-signonloop:
+static void frameoutv(Context & context) {
+ context.push(context.dx);
+ context.ax = context.bx;
+ context.bx = context.dx;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.dx = context.pop();
context.push(context.cx);
- context.push(context.si);
- context.push(context.di);
- context._add(context.si, 14);
- context.cx = 11;
-signonloop2:
+ context.ch = 0;
+ context._sub(context.dx, context.cx);
+ context.cx = context.pop();
+frameloop1:
+ context.push(context.cx);
+ context.ch = 0;
+frameloop2:
context._lodsb();
- context._cmp(context.al, 32);
- if (context.flags.z()) goto foundsign;
- makecaps(context);
- context.ah = context.data.byte(context.di);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto backtosolid;
+backtoother:
context._add(context.di, 1);
- context._cmp(context.al, context.ah);
- if (!context.flags.z()) goto nomatch;
- if (--context.cx) goto signonloop2;
-nomatch:
- context.di = context.pop();
- context.si = context.pop();
+ if (--context.cx) goto frameloop2;
context.cx = context.pop();
- context._add(context.si, 26);
- if (--context.cx) goto signonloop;
- context.al = 13;
- monmessage(context);
+ context._add(context.di, context.dx);
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto frameloop1;
return;
-foundsign:
- context.di = context.pop();
- context.si = context.pop();
+frameloop3:
+ context._lodsb();
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto backtoother;
+backtosolid:
+ context._stosb();
+ if (--context.cx) goto frameloop3;
context.cx = context.pop();
- context.bx = context.si;
- context.es = context.ds;
- context._cmp(context.data.byte(context.bx), 0);
- if (context.flags.z()) goto notyetassigned;
- context.al = 17;
- monmessage(context);
- return;
-notyetassigned:
- context.push(context.es);
- context.push(context.bx);
- scrollmonitor(context);
- context.al = 15;
- monmessage(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.push(context.di);
- context.push(context.bx);
- input(context);
- context.bx = context.pop();
- context.di = context.pop();
- context.data.word(318) = context.di;
- context.data.word(320) = context.bx;
- context.bx = context.pop();
- context.es = context.pop();
- context.push(context.es);
- context.push(context.bx);
- context._add(context.bx, 2);
- context.ds = context.cs;
- context.si = 7944;
-checkpass:
- context._lodsw();
- context.ah = context.data.byte(context.bx);
- context._add(context.bx, 1);
- context._cmp(context.ah, 32);
- if (context.flags.z()) goto passpassed;
- context._cmp(context.al, context.ah);
- if (context.flags.z()) goto checkpass;
-passerror:
- context.bx = context.pop();
- context.es = context.pop();
- scrollmonitor(context);
- context.al = 16;
- monmessage(context);
- return;
-passpassed:
- context.al = 14;
- monmessage(context);
- context.bx = context.pop();
- context.es = context.pop();
- context.push(context.es);
- context.push(context.bx);
- context._add(context.bx, 14);
- monprint(context);
- scrollmonitor(context);
- context.bx = context.pop();
- context.es = context.pop();
- context.data.byte(context.bx) = 1;
+ context._add(context.di, context.dx);
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto frameloop1;
return;
}
-static inline void showkeys(Context & context) {
- context.cx = 10;
- randomaccess(context);
- scrollmonitor(context);
- context.al = 18;
- monmessage(context);
- context.es = context.cs;
- context.bx = 2807;
- context.cx = 4;
-keysloop:
+static void frameoutnm(Context & context) {
+ context.push(context.dx);
+ context.ax = context.bx;
+ context.bx = context.dx;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.dx = context.pop();
context.push(context.cx);
- context.push(context.bx);
- context._cmp(context.data.byte(context.bx), 0);
- if (context.flags.z()) goto notheld;
- context._add(context.bx, 14);
- monprint(context);
-notheld:
- context.bx = context.pop();
+ context.ch = 0;
+ context._sub(context.dx, context.cx);
context.cx = context.pop();
- context._add(context.bx, 26);
- if (--context.cx) goto keysloop;
- scrollmonitor(context);
+ context.al = context.cl;
+ context._and(context.al, 1);
+ if (!context.flags.z()) goto oddwidthframe;
+ context.bl = context.cl;
+ context.bh = 0;
+ context.ax = 1819;
+ context._shr(context.bx, 1);
+ context._sub(context.ax, context.bx);
+ context.cl = context.ch;
+ context.ch = 0;
+nmloop1:
+ __dispatch_call(context, context.ax);
+ context._add(context.di, context.dx);
+ if (--context.cx) goto nmloop1;
+ return;
+oddwidthframe:
+ context.bl = context.cl;
+ context.bh = 0;
+ context._shr(context.bx, 1);
+ context.ax = 1819;
+ context._sub(context.ax, context.bx);
+ context.cl = context.ch;
+ context.ch = 0;
+nmloop2:
+ __dispatch_call(context, context.ax);
+ context._movsb();
+ context._add(context.di, context.dx);
+ if (--context.cx) goto nmloop2;
return;
}
-static inline void read(Context & context) {
- context.cx = 40;
- randomaccess(context);
- parser(context);
- context._cmp(context.data.byte(context.di+1), 0);
- if (!context.flags.z()) goto okcom;
- neterror(context);
- return;
-okcom:
- context.es = context.cs;
- context.di = 2895;
- context.ax = context.data.word(466);
- context.data.word(324) = context.ax;
- context.ds = context.ax;
- context.si = 66*2;
- searchforstring(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(468);
- context.data.word(324) = context.ax;
- context.ds = context.ax;
- context.si = 66*2;
- searchforstring(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(470);
- context.data.word(324) = context.ax;
- context.ds = context.ax;
- context.si = 66*2;
- searchforstring(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundfile2;
- context.al = 7;
- monmessage(context);
+static void frameoutbh(Context & context) {
+ context.push(context.dx);
+ context.ax = context.bx;
+ context.bx = context.dx;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.dx = context.pop();
+ context.push(context.cx);
+ context.ch = 0;
+ context._sub(context.dx, context.cx);
+ context.cx = context.pop();
+bhloop2:
+ context.push(context.cx);
+ context.ch = 0;
+ context.ah = 255;
+bhloop1:
+ context._cmp(context.data.byte(context.di), context.ah);
+ if (!context.flags.z()) goto nofill;
+ context._movsb();
+ if (--context.cx) goto bhloop1;
+ goto nextline;
+nofill:
+ context._add(context.di, 1);
+ context._add(context.si, 1);
+ if (--context.cx) goto bhloop1;
+nextline:
+ context._add(context.di, context.dx);
+ context.cx = context.pop();
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto bhloop2;
return;
-foundfile2:
- getkeyandlogo(context);
+}
+
+static void frameoutfx(Context & context) {
+ context.push(context.dx);
+ context.ax = context.bx;
+ context.bx = context.dx;
+ context._mul(context.bx);
+ context._add(context.di, context.ax);
+ context.dx = context.pop();
+ context.push(context.cx);
+ context.ch = 0;
+ context._add(context.dx, context.cx);
+ context.cx = context.pop();
+frameloopfx1:
+ context.push(context.cx);
+ context.ch = 0;
+frameloopfx2:
+ context._lodsb();
context._cmp(context.al, 0);
- if (context.flags.z()) goto keyok1;
+ if (!context.flags.z()) goto backtosolidfx;
+backtootherfx:
+ context._sub(context.di, 1);
+ if (--context.cx) goto frameloopfx2;
+ context.cx = context.pop();
+ context._add(context.di, context.dx);
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto frameloopfx1;
return;
-keyok1:
- context.es = context.cs;
- context.di = 2883;
- context.ds = context.data.word(324);
- searchforstring(context);
+frameloopfx3:
+ context._lodsb();
context._cmp(context.al, 0);
- if (context.flags.z()) goto findtopictext;
- context.al = context.data.byte(270);
- context.data.byte(269) = context.al;
- context.al = 11;
- monmessage(context);
+ if (context.flags.z()) goto backtootherfx;
+backtosolidfx:
+ context.data.byte(context.di) = context.al;
+ context._sub(context.di, 1);
+ if (--context.cx) goto frameloopfx3;
+ context.cx = context.pop();
+ context._add(context.di, context.dx);
+ context._sub(context.ch, 1);
+ if (!context.flags.z()) goto frameloopfx1;
return;
-findtopictext:
- context._add(context.bx, 1);
- context.push(context.es);
+}
+
+static void transferinv(Context & context) {
+ context.di = context.data.word(12);
+ context.push(context.di);
+ context.al = context.data.byte(10);
+ context.ah = 0;
+ context.bx = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.bx);
+ context._add(context.ax, 1);
+ context.cx = 6;
+ context._mul(context.cx);
+ context.es = context.data.word(398);
+ context.bx = 0;
+ context._add(context.bx, context.ax);
+ context._add(context.di, 0+2080);
context.push(context.bx);
- monitorlogo(context);
- scrollmonitor(context);
- context.bx = context.pop();
- context.es = context.pop();
-moretopic:
- monprint(context);
+ context.al = context.data.byte(90);
+ context.ah = 0;
+ context.bx = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.bx);
+ context._add(context.ax, 1);
+ context.cx = 6;
+ context._mul(context.cx);
+ context.ds = context.data.word(446);
+ context.bx = 0;
+ context._add(context.bx, context.ax);
+ context.si = 0+2080;
context.al = context.data.byte(context.bx);
- context._cmp(context.al, 34);
- if (context.flags.z()) goto endoftopic;
- context._cmp(context.al, '=');
- if (context.flags.z()) goto endoftopic;
- context._cmp(context.al, '*');
- if (context.flags.z()) goto endoftopic;
- context.push(context.es);
- context.push(context.bx);
- processtrigger(context);
- context.cx = 24;
- randomaccess(context);
+ context.ah = 0;
+ context.cl = context.data.byte(context.bx+1);
+ context.ch = 0;
+ context._add(context.si, context.data.word(context.bx+2));
+ context.dx = context.data.word(context.bx+4);
context.bx = context.pop();
- context.es = context.pop();
- goto moretopic;
-endoftopic:
- scrollmonitor(context);
+ context.data.byte(context.bx+0) = context.al;
+ context.data.byte(context.bx+1) = context.cl;
+ context.data.word(context.bx+4) = context.dx;
+ context._mul(context.cx);
+ context.cx = context.ax;
+ context.push(context.cx);
+ while(--context.cx) context._movsb();
+ context.cx = context.pop();
+ context.ax = context.pop();
+ context.data.word(context.bx+2) = context.ax;
+ context._add(context.data.word(12), context.cx);
return;
}
-static inline void dirfile(Context & context) {
- context.al = 34;
- context.data.byte(context.di) = context.al;
- context.push(context.es);
- context.push(context.di);
- context.ds = context.data.word(466);
- context.si = 66*2;
- searchforstring(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundfile;
- context.di = context.pop();
- context.es = context.pop();
- context.push(context.es);
- context.push(context.di);
- context.ds = context.data.word(468);
- context.si = 66*2;
- searchforstring(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundfile;
- context.di = context.pop();
- context.es = context.pop();
- context.push(context.es);
+static void transfermap(Context & context) {
+ context.di = context.data.word(12);
context.push(context.di);
- context.ds = context.data.word(470);
- context.si = 66*2;
- searchforstring(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto foundfile;
- context.di = context.pop();
- context.es = context.pop();
- context.al = 7;
- monmessage(context);
- return;
-foundfile:
- context.ax = context.pop();
- context.ax = context.pop();
- getkeyandlogo(context);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto keyok2;
- return;
-keyok2:
- context.push(context.es);
+ context.al = context.data.byte(10);
+ context.ah = 0;
+ context.bx = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.bx);
+ context.cx = 6;
+ context._mul(context.cx);
+ context.es = context.data.word(398);
+ context.bx = 0;
+ context._add(context.bx, context.ax);
+ context._add(context.di, 0+2080);
context.push(context.bx);
- context.ds = context.cs;
- context.si = 2883+1;
- context.es = context.cs;
- context.di = 2895+1;
- context.cx = 12;
- while(--context.cx) context._movsb();
- monitorlogo(context);
- scrollmonitor(context);
- context.al = 10;
- monmessage(context);
- context.bx = context.pop();
- context.es = context.pop();
-directloop2:
+ context.al = context.data.byte(90);
+ context.ah = 0;
+ context.bx = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.ax, context.bx);
+ context.cx = 6;
+ context._mul(context.cx);
+ context.ds = context.data.word(446);
+ context.bx = 0;
+ context._add(context.bx, context.ax);
+ context.si = 0+2080;
context.al = context.data.byte(context.bx);
- context._add(context.bx, 1);
- context._cmp(context.al, 34);
- if (context.flags.z()) goto endofdir2;
- context._cmp(context.al, '*');
- if (context.flags.z()) goto endofdir2;
- context._cmp(context.al, '=');
- if (!context.flags.z()) goto directloop2;
- monprint(context);
- goto directloop2;
-endofdir2:
- scrollmonitor(context);
+ context.ah = 0;
+ context.cl = context.data.byte(context.bx+1);
+ context.ch = 0;
+ context._add(context.si, context.data.word(context.bx+2));
+ context.dx = context.data.word(context.bx+4);
+ context.bx = context.pop();
+ context.data.byte(context.bx+0) = context.al;
+ context.data.byte(context.bx+1) = context.cl;
+ context.data.word(context.bx+4) = context.dx;
+ context._mul(context.cx);
+ context.cx = context.ax;
+ context.push(context.cx);
+ while(--context.cx) context._movsb();
+ context.cx = context.pop();
+ context.ax = context.pop();
+ context.data.word(context.bx+2) = context.ax;
+ context._add(context.data.word(12), context.cx);
+ return;
+}
+
+static void dofade(Context & context) {
+ context._cmp(context.data.byte(344), 0);
+ if (context.flags.z()) goto finishfade;
+ context.cl = context.data.byte(345);
+ context.ch = 0;
+ context.al = context.data.byte(343);
+ context.ah = 0;
+ context.ds = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context._add(context.si, context.ax);
+ context._add(context.si, context.ax);
+ context._add(context.si, context.ax);
+ showgroup(context);
+ context.al = context.data.byte(345);
+ context._add(context.al, context.data.byte(343));
+ context.data.byte(343) = context.al;
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto finishfade;
+ fadecalculation(context);
+finishfade:
return;
}
-static inline void getkeyandlogo(Context & context) {
- context._add(context.bx, 1);
- context.al = context.data.byte(context.bx);
- context._sub(context.al, 48);
- context.data.byte(271) = context.al;
- context._add(context.bx, 2);
- context.al = context.data.byte(context.bx);
- context._sub(context.al, 48);
- context.data.byte(276) = context.al;
- context._add(context.bx, 1);
- context.push(context.es);
- context.push(context.bx);
- context.al = context.data.byte(276);
- context.ah = 0;
- context.cx = 26;
- context._mul(context.cx);
- context.es = context.cs;
- context.bx = 2807;
- context._add(context.bx, context.ax);
- context.al = context.data.byte(context.bx);
- context._cmp(context.al, 1);
- if (context.flags.z()) goto keyok;
- context.push(context.bx);
- context.push(context.es);
- context.al = 12;
- monmessage(context);
- context.es = context.pop();
- context.bx = context.pop();
- context._add(context.bx, 14);
- monprint(context);
- scrollmonitor(context);
- context.bx = context.pop();
- context.es = context.pop();
- context.al = 1;
- return;
-keyok:
- context.bx = context.pop();
- context.es = context.pop();
- context.al = context.data.byte(271);
- context.data.byte(269) = context.al;
+static void clearendpal(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.cx = 768;
context.al = 0;
+ while(--context.cx) context._stosb();
return;
}
-static inline void searchforstring(Context & context) {
- context.dl = context.data.byte(context.di);
- context.cx = context.di;
-restartlook:
- context.di = context.cx;
- context.bx = context.si;
- context.dh = 0;
-keeplooking:
- context._lodsb();
- makecaps(context);
- context._cmp(context.al, '*');
- if (context.flags.z()) goto notfound;
- context._cmp(context.dl, '=');
- if (!context.flags.z()) goto nofindingtopic;
- context._cmp(context.al, 34);
- if (context.flags.z()) goto notfound;
-nofindingtopic:
- context.ah = context.data.byte(context.di);
- context._cmp(context.al, context.dl);
- if (!context.flags.z()) goto notbracket;
- context._add(context.dh, 1);
- context._cmp(context.dh, 2);
- if (context.flags.z()) goto complete;
-notbracket:
- context._cmp(context.al, context.ah);
- if (!context.flags.z()) goto restartlook;
- context._add(context.di, 1);
- goto keeplooking;
-complete:
- context.es = context.ds;
- context.al = 0;
- context.bx = context.si;
+static void clearpalette(Context & context) {
+ context.data.byte(344) = 0;
+ clearstartpal(context);
+ dumpcurrent(context);
return;
-notfound:
- context.al = 1;
+}
+
+static void fadescreenup(Context & context) {
+ clearstartpal(context);
+ paltoendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
return;
}
-static inline void parser(Context & context) {
- context.es = context.cs;
- context.di = 2883;
- context.cx = 13;
+static void fadetowhite(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.cx = 768;
+ context.al = 63;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.al = 0;
+ context._stosb();
+ context._stosb();
+ context._stosb();
+ paltostartpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ return;
+}
+
+static void fadefromwhite(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 768;
+ context.al = 63;
while(--context.cx) context._stosb();
- context.di = 2883;
- context.al = '=';
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.al = 0;
context._stosb();
- context.ds = context.cs;
- context.si = 7944;
-notspace1:
- context._lodsw();
- context._cmp(context.al, 32);
- if (context.flags.z()) goto stillspace1;
- context._cmp(context.al, 0);
- if (!context.flags.z()) goto notspace1;
- goto finishpars;
-stillspace1:
- context._lodsw();
- context._cmp(context.al, 32);
- if (context.flags.z()) goto stillspace1;
-copyin1:
context._stosb();
- context._lodsw();
- context._cmp(context.al, 0);
- if (context.flags.z()) goto finishpars;
- context._cmp(context.al, 32);
- if (!context.flags.z()) goto copyin1;
-finishpars:
- context.di = 2883;
+ context._stosb();
+ paltoendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
return;
}
-static inline void scrollmonitor(Context & context) {
- context.push(context.ax);
- context.push(context.bx);
- context.push(context.cx);
- context.push(context.dx);
- context.push(context.di);
- context.push(context.si);
- context.push(context.es);
- context.push(context.ds);
- printlogo(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- printundermon(context);
- context.ax = context.data.word(320);
- worktoscreen(context);
- context.al = 25;
- playchannel1(context);
- context.ds = context.pop();
- context.es = context.pop();
- context.si = context.pop();
- context.di = context.pop();
- context.dx = context.pop();
- context.cx = context.pop();
- context.bx = context.pop();
- context.ax = context.pop();
+static void fadescreenups(Context & context) {
+ clearstartpal(context);
+ paltoendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 64;
return;
}
-static inline void lockmon(Context & context) {
- context._cmp(context.data.byte(392), 57);
- if (!context.flags.z()) goto notlock;
- locklighton(context);
-lockloop:
- context._cmp(context.data.byte(392), 57);
- if (context.flags.z()) goto lockloop;
- locklightoff(context);
-notlock:
+static void fadescreendownhalf(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.cx = 768;
+ context.es = context.data.word(412);
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+halfend:
+ context.al = context.data.byte(context.bx);
+ context._shr(context.al, 1);
+ context.data.byte(context.bx) = context.al;
+ context._add(context.bx, 1);
+ if (--context.cx) goto halfend;
+ context.ds = context.data.word(412);
+ context.es = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
+ context.cx = 3*5;
+ while(--context.cx) context._movsb();
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(77*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
+ context.cx = 3*2;
+ while(--context.cx) context._movsb();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 31;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 32;
return;
}
-static inline void monitorlogo(Context & context) {
- context.al = context.data.byte(269);
- context._cmp(context.al, context.data.byte(270));
- if (context.flags.z()) goto notnewlogo;
- context.data.byte(270) = context.al;
- printlogo(context);
- printundermon(context);
- worktoscreen(context);
- printlogo(context);
- printlogo(context);
- context.al = 26;
- playchannel1(context);
- context.cx = 20;
- randomaccess(context);
+static void fadescreenuphalf(Context & context) {
+ endpaltostart(context);
+ paltoendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 31;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 32;
return;
-notnewlogo:
- printlogo(context);
+}
+
+static void fadescreendown(Context & context) {
+ paltostartpal(context);
+ clearendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ return;
+}
+
+static void fadescreendowns(Context & context) {
+ paltostartpal(context);
+ clearendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 64;
+ return;
+}
+
+static void clearstartpal(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 256;
+wholeloop1:
+ context.ax = 0;
+ context._stosw();
+ context.al = 0;
+ context._stosb();
+ if (--context.cx) goto wholeloop1;
return;
}
-static inline void printlogo(Context & context) {
- context.di = 56;
- context.bx = 32;
+static void showgun(Context & context) {
+ context.data.byte(348) = 0;
+ context.data.byte(347) = 0;
+ context.data.byte(349) = 0;
+ paltostartpal(context);
+ paltoendpal(context);
+ greyscalesum(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 130;
+ hangon(context);
+ endpaltostart(context);
+ clearendpal(context);
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 200;
+ hangon(context);
+ context.data.byte(531) = 34;
+ loadroomssample(context);
+ context.data.byte(386) = 0;
+ context.dx = 2364;
+ loadintotemp(context);
+ createpanel2(context);
context.ds = context.data.word(458);
context.al = 0;
context.ah = 0;
+ context.di = 100;
+ context.bx = 4;
showframe(context);
- showcurrentfile(context);
- return;
-}
-
-static inline void showcurrentfile(Context & context) {
- context.di = 178;
- context.bx = 37;
- context.si = 2895+1;
-curfileloop:
- context.al = context.data.byte(context.si);
- context._cmp(context.al, 0);
- if (context.flags.z()) goto finishfile;
- context._add(context.si, 1);
- context.push(context.si);
- modifychar(context);
- context.ds = context.data.word(406);
+ context.ds = context.data.word(458);
+ context.al = 1;
context.ah = 0;
- printchar(context);
- context.si = context.pop();
- goto curfileloop;
-finishfile:
- return;
-}
-
-static inline void monmessage(Context & context) {
- context.es = context.data.word(466);
- context.bx = 66*2;
- context.cl = context.al;
- context.ch = 0;
-monmessageloop:
- context.al = context.data.byte(context.bx);
- context._add(context.bx, 1);
- context._cmp(context.al, '+');
- if (!context.flags.z()) goto monmessageloop;
- if (--context.cx) goto monmessageloop;
- monprint(context);
+ context.di = 158;
+ context.bx = 106;
+ showframe(context);
+ worktoscreen(context);
+ getridoftemp(context);
+ fadescreenup(context);
+ context.cx = 160;
+ hangon(context);
+ context.al = 12;
+ context.ah = 0;
+ playchannel0(context);
+ context.dx = 2273;
+ loadtemptext(context);
+ rollendcredits2(context);
+ getridoftemptext(context);
return;
}
-static inline void processtrigger(Context & context) {
- context._cmp(context.data.byte(55), '1');
- if (!context.flags.z()) goto notfirsttrigger;
- context.al = 8;
- setlocation(context);
- context.al = 45;
- triggermessage(context);
- return;
-notfirsttrigger:
- context._cmp(context.data.byte(55), '2');
- if (!context.flags.z()) goto notsecondtrigger;
- context.al = 9;
- setlocation(context);
- context.al = 55;
- triggermessage(context);
- return;
-notsecondtrigger:
- context._cmp(context.data.byte(55), '3');
- if (!context.flags.z()) goto notthirdtrigger;
- context.al = 2;
- setlocation(context);
- context.al = 59;
- triggermessage(context);
-notthirdtrigger:
+static void rollendcredits2(Context & context) {
+ rollem(context);
return;
}
-static inline void triggermessage(Context & context) {
- context.push(context.ax);
- context.di = 174;
- context.bx = 153;
- context.cl = 200;
- context.ch = 63;
+static void rollem(Context & context) {
+ context.cl = 160;
+ context.ch = 160;
+ context.di = 25;
+ context.bx = 20;
context.ds = context.data.word(402);
context.si = 0;
multiget(context);
- context.ax = context.pop();
- findpuztext(context);
- context.di = 174;
- context.bx = 156;
- context.dl = 141;
- context.ah = 16;
- printdirect(context);
- context.cx = 140;
- hangon(context);
- worktoscreen(context);
- context.cx = 340;
- hangon(context);
- context.di = 174;
- context.bx = 153;
- context.cl = 200;
- context.ch = 63;
- context.ds = context.data.word(402);
- context.si = 0;
- multiput(context);
- worktoscreen(context);
- context.data.byte(55) = 0;
- return;
-}
-
-static inline void printcurs(Context & context) {
+ context.es = context.data.word(466);
+ context.si = 49*2;
+ context.ax = context.data.word(context.si);
+ context.si = context.ax;
+ context._add(context.si, 66*2);
+ context.cx = 80;
+endcredits21:
+ context.push(context.cx);
+ context.bx = 10;
+ context.cx = context.data.word(77);
+endcredits22:
+ context.push(context.cx);
context.push(context.si);
context.push(context.di);
- context.push(context.ds);
- context.push(context.dx);
- context.push(context.bx);
context.push(context.es);
- context.di = context.data.word(312);
- context.bx = context.data.word(314);
- context.cl = 6;
- context.ch = 8;
- context._sub(context.bx, 3);
- context.ch = 11;
- context.ds = context.data.word(412);
- context.si = 0;
- context.push(context.di);
- context.push(context.bx);
- multiget(context);
- context.bx = context.pop();
- context.di = context.pop();
context.push(context.bx);
- context.push(context.di);
- context._add(context.data.word(138), 1);
- context.ax = context.data.word(138);
- context._and(context.al, 16);
- if (!context.flags.z()) goto flashcurs;
- context.al = '/';
- context._sub(context.al, 32);
- context.ah = 0;
- context.ds = context.data.word(406);
- showframe(context);
-flashcurs:
- context.di = context.pop();
+ vsync(context);
+ context.cl = 160;
+ context.ch = 160;
+ context.di = 25;
+ context.bx = 20;
+ context.ds = context.data.word(402);
+ context.si = 0;
+ multiput(context);
+ vsync(context);
context.bx = context.pop();
- context._sub(context.di, 6);
- context.cl = 12;
- context.ch = 11;
- multidump(context);
context.es = context.pop();
- context.bx = context.pop();
- context.dx = context.pop();
- context.ds = context.pop();
context.di = context.pop();
context.si = context.pop();
- return;
-}
-
-static inline void delcurs(Context & context) {
- context.push(context.es);
- context.push(context.bx);
- context.push(context.di);
- context.push(context.ds);
- context.push(context.dx);
context.push(context.si);
- context.di = context.data.word(312);
- context.bx = context.data.word(314);
- context.cl = 6;
- context.ch = 8;
- context._sub(context.bx, 3);
- context.ch = 11;
context.push(context.di);
+ context.push(context.es);
context.push(context.bx);
+ context.cx = 18;
+onelot2:
context.push(context.cx);
- context.ds = context.data.word(412);
- context.si = 0;
- multiput(context);
+ context.di = 25;
+ context.dx = 161;
+ context.ax = 0;
+ printdirect(context);
+ context._add(context.bx, context.data.word(77));
+ context.cx = context.pop();
+ if (--context.cx) goto onelot2;
+ vsync(context);
+ context.cl = 160;
+ context.ch = 160;
+ context.di = 25;
+ context.bx = 20;
+ multidump(context);
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.di = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto endearly2;
+ context._sub(context.bx, 1);
+ if (--context.cx) goto endcredits22;
+ context.cx = context.pop();
+looknext2:
+ context.al = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto gotnext2;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto gotnext2;
+ goto looknext2;
+gotnext2:
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto endearly;
+ if (--context.cx) goto endcredits21;
+ context.cx = 120;
+ hangone(context);
+ return;
+endearly2:
context.cx = context.pop();
- context.bx = context.pop();
- context.di = context.pop();
- multidump(context);
-finishcurdel:
- context.si = context.pop();
- context.dx = context.pop();
- context.ds = context.pop();
- context.di = context.pop();
- context.bx = context.pop();
- context.es = context.pop();
+endearly:
return;
}
-static inline void useobject(Context & context) {
- context.data.byte(95) = 255;
- context._cmp(context.data.byte(100), 229);
- if (context.flags.z()) goto alreadyuse;
- context.data.byte(100) = 229;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
- context.al = 51;
- commandwithob(context);
-alreadyuse:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
- if (context.flags.z()) goto nouse;
- context._and(context.ax, 1);
- if (!context.flags.z()) goto douse;
-nouse:
+static void fadecalculation(Context & context) {
+ context._cmp(context.data.byte(346), 0);
+ if (context.flags.z()) goto nomorefading;
+ context.bl = context.data.byte(346);
+ context.es = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.cx = 768;
+fadecolloop:
+ context.al = context.data.byte(context.si);
+ context.ah = context.data.byte(context.di);
+ context._cmp(context.al, context.ah);
+ if (context.flags.z()) goto gotthere;
+ if (context.flags.c()) goto lesscolour;
+ context._sub(context.data.byte(context.si), 1);
+ goto gotthere;
+lesscolour:
+ context._cmp(context.bl, context.ah);
+ if (context.flags.z()) goto withit;
+ if (!context.flags.c()) goto gotthere;
+withit:
+ context._add(context.data.byte(context.si), 1);
+gotthere:
+ context._add(context.si, 1);
+ context._add(context.di, 1);
+ if (--context.cx) goto fadecolloop;
+ context._sub(context.data.byte(346), 1);
return;
-douse:
- useroutine(context);
+nomorefading:
+ context.data.byte(344) = 0;
return;
}
-static inline void useroutine(Context & context) {
- context._cmp(context.data.byte(184), 50);
- if (context.flags.c()) goto nodream7;
- context._cmp(context.data.byte(232), 0);
- if (!context.flags.z()) goto powerok;
- return;
-powerok:
- context.data.byte(232) = 0;
-nodream7:
- getanyad(context);
- context.dx = context.ds;
- context.ds = context.dx;
- context.si = 2895;
-checkuselist:
- context.push(context.si);
- context._lodsb();
- context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+12));
- if (!context.flags.z()) goto failed;
- context._lodsb();
- context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+13));
- if (!context.flags.z()) goto failed;
- context._lodsb();
- context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+14));
- if (!context.flags.z()) goto failed;
- context._lodsb();
- context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+15));
- if (!context.flags.z()) goto failed;
- context._lodsw();
- context.si = context.pop();
- __dispatch_call(context, context.ax);
- return;
-failed:
- context.si = context.pop();
- context._add(context.si, 6);
- context._cmp(context.data.byte(context.si), 140);
- if (!context.flags.z()) goto checkuselist;
- delpointer(context);
- getobtextstart(context);
- findnextcolon(context);
+static void greyscalesum(Context & context) {
+ context.es = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.cx = 256;
+greysumloop1:
+ context.push(context.cx);
+ context.bx = 0;
+ context.al = context.data.byte(context.si);
+ context.ah = 0;
+ context.cx = 20;
+ context._mul(context.cx);
+ context._add(context.bx, context.ax);
+ context.al = context.data.byte(context.si+1);
+ context.ah = 0;
+ context.cx = 59;
+ context._mul(context.cx);
+ context._add(context.bx, context.ax);
+ context.al = context.data.byte(context.si+2);
+ context.ah = 0;
+ context.cx = 11;
+ context._mul(context.cx);
+ context._add(context.bx, context.ax);
+ context.al = -1;
+greysumloop2:
+ context._add(context.al, 1);
+ context._sub(context.bx, 100);
+ if (!context.flags.c()) goto greysumloop2;
+ context.bl = context.al;
+ context.al = context.bl;
+ context.ah = context.data.byte(348);
context._cmp(context.al, 0);
- if (context.flags.z()) goto cantuse2;
- findnextcolon(context);
+ context._add(context.al, context.ah);
+noaddr:
+ context._stosb();
+ context.ah = context.data.byte(347);
+ context.al = context.bl;
context._cmp(context.al, 0);
- if (context.flags.z()) goto cantuse2;
- context.al = context.data.byte(context.si);
+ if (context.flags.z()) goto noaddg;
+ context._add(context.al, context.ah);
+noaddg:
+ context._stosb();
+ context.ah = context.data.byte(349);
+ context.al = context.bl;
context._cmp(context.al, 0);
- if (context.flags.z()) goto cantuse2;
- usetext(context);
- context.cx = 400;
- hangonp(context);
- putbackobstuff(context);
- return;
-cantuse2:
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- obicons(context);
- context.di = 33;
- context.bx = 100;
- context.al = 63;
- context.dl = 241;
- printmessage(context);
- worktoscreenm(context);
- context.cx = 50;
- hangonp(context);
- putbackobstuff(context);
- context.data.byte(100) = 255;
+ if (context.flags.z()) goto noaddb;
+ context._add(context.al, context.ah);
+noaddb:
+ context._stosb();
+ context._add(context.si, 3);
+ context.cx = context.pop();
+ if (--context.cx) goto greysumloop1;
return;
}
-static inline void wheelsound(Context & context) {
- context.al = 17;
- playchannel1(context);
- showfirstuse(context);
- putbackobstuff(context);
- return;
+static void paltostartpal(Context & context) {
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 768/2;
+ while(--context.cx) context._movsw();
+ return;
}
-static inline void runtap(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto tapwith;
- withwhat(context);
- return;
-tapwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'C';
- context.ch = 'U';
- context.dl = 'P';
- context.dh = 'E';
- compare(context);
- if (context.flags.z()) goto fillcupfromtap;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'C';
- context.ch = 'U';
- context.dl = 'P';
- context.dh = 'F';
- compare(context);
- if (context.flags.z()) goto cupfromtapfull;
- context.cx = 300;
- context.al = 56;
- showpuztext(context);
- putbackobstuff(context);
- return;
-fillcupfromtap:
- context.al = context.data.byte(95);
- getexad(context);
- context.data.byte(context.bx+15) = 'F'-'A';
- context.al = 8;
- playchannel1(context);
- context.cx = 300;
- context.al = 57;
- showpuztext(context);
- putbackobstuff(context);
- return;
-cupfromtapfull:
- context.cx = 300;
- context.al = 58;
- showpuztext(context);
- putbackobstuff(context);
+static void endpaltostart(Context & context) {
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 768/2;
+ while(--context.cx) context._movsw();
+ return;
+}
+
+static void startpaltoend(Context & context) {
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.cx = 768/2;
+ while(--context.cx) context._movsw();
+ return;
+}
+
+static void paltoendpal(Context & context) {
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.cx = 768/2;
+ while(--context.cx) context._movsw();
+ return;
+}
+
+static void allpalette(Context & context) {
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.cx = 768/2;
+ while(--context.cx) context._movsw();
+ dumpcurrent(context);
return;
}
-static inline void playguitar(Context & context) {
- context.al = 14;
- playchannel1(context);
- showfirstuse(context);
- putbackobstuff(context);
+static void dumpcurrent(Context & context) {
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.ds = context.data.word(412);
+ vsync(context);
+ context.al = 0;
+ context.cx = 128;
+ showgroup(context);
+ vsync(context);
+ context.al = 128;
+ context.cx = 128;
+ showgroup(context);
return;
}
-static inline void hotelcontrol(Context & context) {
- context._cmp(context.data.byte(184), 21);
- if (!context.flags.z()) goto notrightcont;
- context._cmp(context.data.byte(148), 33);
- if (!context.flags.z()) goto notrightcont;
- showfirstuse(context);
- putbackobstuff(context);
+static void fadedownmon(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 64;
+ hangon(context);
return;
-notrightcont:
- showseconduse(context);
- putbackobstuff(context);
+}
+
+static void fadeupmon(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 128;
+ hangon(context);
return;
}
-static inline void hotelbell(Context & context) {
- context.al = 12;
+static void fadeupmonfirst(Context & context) {
+ paltostartpal(context);
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 64;
+ hangon(context);
+ context.al = 26;
playchannel1(context);
- showfirstuse(context);
- putbackobstuff(context);
+ context.cx = 64;
+ hangon(context);
return;
}
-static inline void opentomb(Context & context) {
- context._add(context.data.byte(2), 1);
- showfirstuse(context);
- context.data.word(21) = 35*2;
- context.data.word(23) = 1;
- context.data.word(25) = 33;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+static void fadeupyellows(Context & context) {
+ paltoendpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
+ context.cx = 3*8;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context._stosb();
+ context._stosw();
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
+ context.cx = 128;
+ hangon(context);
return;
}
-static inline void usetrainer(Context & context) {
- getanyad(context);
- context._cmp(context.data.byte(context.bx+2), 4);
- if (!context.flags.z()) goto notheldtrainer;
- context._add(context.data.byte(2), 1);
- makeworn(context);
- showseconduse(context);
- putbackobstuff(context);
- return;
-notheldtrainer:
- nothelderror(context);
+static void initialmoncols(Context & context) {
+ paltostartpal(context);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
+ context.cx = 3*9;
+ context.ax = 0;
+ while(--context.cx) context._stosb();
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context._stosb();
+ context._stosw();
+ context.ds = context.data.word(412);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
+ context.al = 230;
+ context.cx = 18;
+ showgroup(context);
return;
}
-static inline void nothelderror(Context & context) {
- createpanel(context);
- showpanel(context);
- showman(context);
- showexit(context);
- obicons(context);
- context.di = 64;
- context.bx = 100;
- context.al = 63;
- context.ah = 1;
- context.dl = 201;
- printmessage2(context);
- worktoscreenm(context);
- context.cx = 50;
- hangonp(context);
- putbackobstuff(context);
+static void titles(Context & context) {
+ clearpalette(context);
+ biblequote(context);
+ intro(context);
return;
}
-static inline void usepipe(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto pipewith;
- withwhat(context);
+static void endgame(Context & context) {
+ context.dx = 2273;
+ loadtemptext(context);
+ monkspeaking(context);
+ gettingshot(context);
+ getridoftemptext(context);
+ context.data.byte(387) = 7;
+ context.data.byte(388) = 1;
+ context.cx = 200;
+ hangon(context);
return;
-pipewith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'C';
- context.ch = 'U';
- context.dl = 'P';
- context.dh = 'E';
- compare(context);
- if (context.flags.z()) goto fillcup;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'C';
- context.ch = 'U';
- context.dl = 'P';
- context.dh = 'F';
- compare(context);
- if (context.flags.z()) goto alreadyfull;
+}
+
+static void monkspeaking(Context & context) {
+ context.data.byte(531) = 35;
+ loadroomssample(context);
+ context.dx = 2377;
+ loadintotemp(context);
+ clearwork(context);
+ showmonk(context);
+ worktoscreen(context);
+ context.data.byte(386) = 7;
+ context.data.byte(388) = -1;
+ context.data.byte(387) = 0;
+ context.al = 12;
+ context.ah = 255;
+ playchannel0(context);
+ fadescreenups(context);
context.cx = 300;
- context.al = 14;
- showpuztext(context);
- putbackobstuff(context);
+ hangon(context);
+ context.al = 40;
+nextmonkspeak:
+ context.push(context.ax);
+ context.ah = 0;
+ context.si = context.ax;
+ context._add(context.si, context.si);
+ context.es = context.data.word(466);
+ context.ax = context.data.word(context.si);
+ context._add(context.ax, 66*2);
+ context.si = context.ax;
+nextbit:
+ context.di = 36;
+ context.bx = 140;
+ context.dl = 239;
+ printdirect(context);
+ context.push(context.ax);
+ context.push(context.si);
+ context.push(context.es);
+ worktoscreen(context);
+ clearwork(context);
+ showmonk(context);
+ context.cx = 240;
+ hangon(context);
+ context.es = context.pop();
+ context.si = context.pop();
+ context.ax = context.pop();
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto nextbit;
+ context.ax = context.pop();
+ context._add(context.al, 1);
+ context._cmp(context.al, 44);
+ if (!context.flags.z()) goto nextmonkspeak;
+ context.data.byte(388) = 1;
+ context.data.byte(387) = 7;
+ fadescreendowns(context);
+ context.cx = 300;
+ hangon(context);
+ getridoftemp(context);
+ return;
+}
+
+static void showmonk(Context & context) {
+ context.al = 0;
+ context.ah = 128;
+ context.di = 160;
+ context.bx = 72;
+ context.ds = context.data.word(458);
+ showframe(context);
+ return;
+}
+
+static void gettingshot(Context & context) {
+ context.data.byte(188) = 55;
+ clearpalette(context);
+ loadintroroom(context);
+ fadescreenups(context);
+ context.data.byte(387) = 0;
+ context.data.byte(388) = -1;
+ runendseq(context);
+ clearbeforeload(context);
return;
-fillcup:
- context.cx = 300;
- context.al = 36;
- showpuztext(context);
- putbackobstuff(context);
- context.al = context.data.byte(95);
- getexad(context);
- context.data.byte(context.bx+15) = 'F'-'A';
+}
+
+static void credits(Context & context) {
+ clearpalette(context);
+ realcredits(context);
return;
-alreadyfull:
- context.cx = 300;
- context.al = 35;
- showpuztext(context);
- putbackobstuff(context);
+}
+
+static void biblequote(Context & context) {
+ mode640x480(context);
+ context.dx = 2390;
+ showpcx(context);
+ fadescreenups(context);
+ context.cx = 80;
+ hangone(context);
+ context.cx = 560;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 200;
+ hangone(context);
+ cancelch0(context);
return;
}
-static inline void usefullcart(Context & context) {
- context._add(context.data.byte(2), 1);
- context.al = 2;
- context.ah = context.data.byte(185);
- context._add(context.ah, 6);
- turnanypathon(context);
- context.data.byte(475) = 4;
- context.data.byte(133) = 4;
- context.data.byte(135) = 4;
- context.data.byte(477) = 4;
- findxyfrompath(context);
- context.data.byte(187) = 1;
- showfirstuse(context);
- context.data.word(21) = 72*2;
- context.data.word(23) = 58;
- context.data.word(25) = 142;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+static void hangone(Context & context) {
+hangonloope:
+ context.push(context.cx);
+ vsync(context);
+ context.cx = context.pop();
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto hangonearly;
+ if (--context.cx) goto hangonloope;
+ return;
+hangonearly:
+ context.ax = context.pop();
+ context.ax = context.pop();
return;
}
-static inline void useplinth(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto plinthwith;
- withwhat(context);
+static void intro(Context & context) {
+ context.dx = 2260;
+ loadtemptext(context);
+ loadpalfromiff(context);
+ setmode(context);
+ context.data.byte(188) = 50;
+ clearpalette(context);
+ loadintroroom(context);
+ context.data.byte(386) = 7;
+ context.data.byte(388) = -1;
+ context.data.byte(387) = 0;
+ context.al = 12;
+ context.ah = 255;
+ playchannel0(context);
+ fadescreenups(context);
+ runintroseq(context);
+ clearbeforeload(context);
+ context.data.byte(188) = 52;
+ loadintroroom(context);
+ runintroseq(context);
+ clearbeforeload(context);
+ context.data.byte(188) = 53;
+ loadintroroom(context);
+ runintroseq(context);
+ clearbeforeload(context);
+ allpalette(context);
+ context.data.byte(188) = 54;
+ loadintroroom(context);
+ runintroseq(context);
+ getridoftemptext(context);
+ clearbeforeload(context);
return;
-plinthwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'D';
- context.ch = 'K';
- context.dl = 'E';
- context.dh = 'Y';
- compare(context);
- if (context.flags.z()) goto isrightkey;
- showfirstuse(context);
- putbackobstuff(context);
+}
+
+static void runintroseq(Context & context) {
+ context.data.byte(103) = 0;
+moreintroseq:
+ vsync(context);
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto earlyendrun;
+ spriteupdate(context);
+ vsync(context);
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto earlyendrun;
+ deleverything(context);
+ printsprites(context);
+ reelsonscreen(context);
+ afterintroroom(context);
+ usetimedtext(context);
+ vsync(context);
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto earlyendrun;
+ dumpmap(context);
+ dumptimedtext(context);
+ vsync(context);
+ context._cmp(context.data.byte(392), 1);
+ if (context.flags.z()) goto earlyendrun;
+ context._cmp(context.data.byte(103), 1);
+ if (!context.flags.z()) goto moreintroseq;
return;
-isrightkey:
- context._add(context.data.byte(2), 1);
- showseconduse(context);
- context.data.word(21) = 220;
- context.data.word(23) = 0;
- context.data.word(25) = 104;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
- context.al = context.data.byte(67);
- context.data.byte(188) = context.al;
+earlyendrun:
+ context.ax = context.pop();
+ context.ax = context.pop();
+ getridoftemptext(context);
+ clearbeforeload(context);
return;
}
-static inline void chewy(Context & context) {
- showfirstuse(context);
- getanyad(context);
- context.data.byte(context.bx+2) = 255;
- context.data.byte(103) = 1;
+static void runendseq(Context & context) {
+ atmospheres(context);
+ context.data.byte(103) = 0;
+moreendseq:
+ vsync(context);
+ spriteupdate(context);
+ vsync(context);
+ deleverything(context);
+ printsprites(context);
+ reelsonscreen(context);
+ afterintroroom(context);
+ usetimedtext(context);
+ vsync(context);
+ dumpmap(context);
+ dumptimedtext(context);
+ vsync(context);
+ context._cmp(context.data.byte(103), 1);
+ if (!context.flags.z()) goto moreendseq;
return;
}
-static inline void useladder(Context & context) {
- showfirstuse(context);
- context._sub(context.data.byte(148), 11);
- findroominloc(context);
- context.data.byte(133) = 6;
- context.data.byte(135) = 6;
- context.data.byte(475) = 0;
- context.data.byte(478) = 0;
- context.data.byte(477) = 0;
- findxyfrompath(context);
- context.data.byte(187) = 1;
- context.data.byte(103) = 1;
+static void loadintroroom(Context & context) {
+ context.data.byte(139) = 0;
+ context.data.byte(9) = 255;
+ loadroom(context);
+ context.data.word(121) = 72;
+ context.data.word(123) = 16;
+ clearsprites(context);
+ context.data.byte(61) = 0;
+ context.data.byte(142) = '0';
+ context.data.byte(105) = 0;
+ clearwork(context);
+ context.data.byte(62) = 1;
+ drawfloor(context);
+ reelsonscreen(context);
+ spriteupdate(context);
+ printsprites(context);
+ worktoscreen(context);
return;
}
-static inline void useladderb(Context & context) {
- showfirstuse(context);
- context._add(context.data.byte(148), 11);
- findroominloc(context);
- context.data.byte(133) = 2;
- context.data.byte(135) = 2;
- context.data.byte(475) = 1;
- context.data.byte(478) = 1;
- context.data.byte(477) = 1;
- findxyfrompath(context);
- context.data.byte(187) = 1;
- context.data.byte(103) = 1;
+static void realcredits(Context & context) {
+ context.data.byte(531) = 33;
+ loadroomssample(context);
+ context.data.byte(386) = 0;
+ mode640x480(context);
+ context.cx = 35;
+ hangon(context);
+ context.dx = 2403;
+ showpcx(context);
+ context.al = 12;
+ context.ah = 0;
+ playchannel0(context);
+ context.cx = 2;
+ hangone(context);
+ allpalette(context);
+ context.cx = 80;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 256;
+ hangone(context);
+ context.dx = 2416;
+ showpcx(context);
+ context.al = 12;
+ context.ah = 0;
+ playchannel0(context);
+ context.cx = 2;
+ hangone(context);
+ allpalette(context);
+ context.cx = 80;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 256;
+ hangone(context);
+ context.dx = 2429;
+ showpcx(context);
+ context.al = 12;
+ context.ah = 0;
+ playchannel0(context);
+ context.cx = 2;
+ hangone(context);
+ allpalette(context);
+ context.cx = 80;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 256;
+ hangone(context);
+ context.dx = 2442;
+ showpcx(context);
+ context.al = 12;
+ context.ah = 0;
+ playchannel0(context);
+ context.cx = 2;
+ hangone(context);
+ allpalette(context);
+ context.cx = 80;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 256;
+ hangone(context);
+ context.dx = 2455;
+ showpcx(context);
+ context.al = 12;
+ context.ah = 0;
+ playchannel0(context);
+ context.cx = 2;
+ hangone(context);
+ allpalette(context);
+ context.cx = 80;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 256;
+ hangone(context);
+ context.dx = 2468;
+ showpcx(context);
+ fadescreenups(context);
+ context.cx = 60;
+ hangone(context);
+ context.al = 13;
+ context.ah = 0;
+ playchannel0(context);
+ context.cx = 350;
+ hangone(context);
+ fadescreendowns(context);
+ context.cx = 256;
+ hangone(context);
return;
}
-static inline void slabdoora(Context & context) {
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 13;
- context._cmp(context.data.byte(66), 3);
- if (!context.flags.z()) goto slabawrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 42;
- context.data.byte(188) = 47;
- return;
-slabawrong:
- context.data.word(21) = 40;
- context.data.word(25) = 34;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+static void printchar(Context & context) {
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto ignoreit;
+ context.push(context.si);
+ context.push(context.bx);
+ context.push(context.di);
+ context._sub(context.bx, 3);
+ context.push(context.ax);
+ context._sub(context.al, 32);
+ context.ah = 0;
+ context._add(context.ax, context.data.word(71));
+ showframe(context);
+ context.ax = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.si = context.pop();
+ context._cmp(context.data.byte(72), 0);
+ if (!context.flags.z()) goto nokern;
+ kernchars(context);
+nokern:
+ context.push(context.cx);
+ context.ch = 0;
+ context._add(context.di, context.cx);
+ context.cx = context.pop();
+ignoreit:
return;
}
-static inline void slabdoorb(Context & context) {
- context._cmp(context.data.byte(66), 1);
- if (!context.flags.z()) goto slabbwrong;
- context.al = 'S';
- context.ah = 'H';
- context.cl = 'L';
- context.ch = 'D';
- isryanholding(context);
- if (!context.flags.z()) goto gotcrystal;
- context.al = 44;
- context.cx = 200;
- showpuztext(context);
- putbackobstuff(context);
+static void kernchars(Context & context) {
+ context._cmp(context.al, 'a');
+ if (context.flags.z()) goto iskern;
+ context._cmp(context.al, 'u');
+ if (context.flags.z()) goto iskern;
return;
-gotcrystal:
- showfirstuse(context);
- context._add(context.data.byte(2), 1);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 44;
- context.data.word(21) = 60;
- context.data.word(25) = 71;
- context.data.byte(188) = 47;
+iskern:
+ context._cmp(context.ah, 'n');
+ if (context.flags.z()) goto kernit;
+ context._cmp(context.ah, 't');
+ if (context.flags.z()) goto kernit;
+ context._cmp(context.ah, 'r');
+ if (context.flags.z()) goto kernit;
+ context._cmp(context.ah, 'i');
+ if (context.flags.z()) goto kernit;
+ context._cmp(context.ah, 'l');
+ if (context.flags.z()) goto kernit;
return;
-slabbwrong:
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 44;
- context.data.word(21) = 40;
- context.data.word(25) = 63;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+kernit:
+ context._sub(context.cl, 1);
return;
}
-static inline void slabdoord(Context & context) {
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 75;
- context._cmp(context.data.byte(66), 0);
- if (!context.flags.z()) goto slabcwrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 102;
- context.data.byte(188) = 47;
+static void printslow(Context & context) {
+ context.data.byte(231) = 1;
+ context.data.byte(234) = 3;
+ context.ds = context.data.word(404);
+printloopslow6:
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.dx);
+ getnumber(context);
+ context.ch = 0;
+printloopslow5:
+ context.push(context.cx);
+ context.push(context.si);
+ context.push(context.es);
+ context.ax = context.data.word(context.si);
+ context.push(context.bx);
+ context.push(context.cx);
+ context.push(context.es);
+ context.push(context.si);
+ context.push(context.ds);
+ modifychar(context);
+ printboth(context);
+ context.ds = context.pop();
+ context.si = context.pop();
+ context.es = context.pop();
+ context.cx = context.pop();
+ context.bx = context.pop();
+ context.ax = context.data.word(context.si+1);
+ context._add(context.si, 1);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishslow;
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto finishslow;
+ context._cmp(context.cl, 1);
+ if (context.flags.z()) goto afterslow;
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.bx);
+ context.push(context.cx);
+ context.push(context.es);
+ context.push(context.si);
+ modifychar(context);
+ context.data.word(71) = 91;
+ printboth(context);
+ context.data.word(71) = 0;
+ context.si = context.pop();
+ context.es = context.pop();
+ context.cx = context.pop();
+ context.bx = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ waitframes(context);
+ context._cmp(context.ax, 0);
+ if (context.flags.z()) goto keepgoing;
+ context._cmp(context.ax, context.data.word(212));
+ if (!context.flags.z()) goto finishslow2;
+keepgoing:
+ waitframes(context);
+noslow:
+ context._cmp(context.ax, 0);
+ if (context.flags.z()) goto afterslow;
+ context._cmp(context.ax, context.data.word(212));
+ if (!context.flags.z()) goto finishslow2;
+afterslow:
+ context.es = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
+ context._add(context.si, 1);
+ if (--context.cx) goto printloopslow5;
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context._add(context.bx, 10);
+ goto printloopslow6;
+finishslow:
+ context.cx = context.pop();
+ context.si = context.pop();
+ context.es = context.pop();
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.al = 0;
return;
-slabcwrong:
- context.data.word(21) = 40;
- context.data.word(25) = 94;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+finishslow2:
+ context.cx = context.pop();
+ context.si = context.pop();
+ context.es = context.pop();
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.al = 1;
return;
}
-static inline void slabdoorc(Context & context) {
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 108;
- context._cmp(context.data.byte(66), 4);
- if (!context.flags.z()) goto slabdwrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 135;
- context.data.byte(188) = 47;
- return;
-slabdwrong:
- context.data.word(21) = 40;
- context.data.word(25) = 127;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+static void waitframes(Context & context) {
+ context.push(context.di);
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.si);
+ context.push(context.ds);
+ readmouse(context);
+ showpointer(context);
+ vsync(context);
+ dumppointer(context);
+ delpointer(context);
+ context.ax = context.data.word(202);
+ context.ds = context.pop();
+ context.si = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.di = context.pop();
return;
}
-static inline void slabdoore(Context & context) {
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 141;
- context._cmp(context.data.byte(66), 5);
- if (!context.flags.z()) goto slabewrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 168;
- context.data.byte(188) = 47;
- return;
-slabewrong:
- context.data.word(21) = 40;
- context.data.word(25) = 160;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+static void printboth(Context & context) {
+ context.push(context.ax);
+ context.push(context.cx);
+ context.push(context.bx);
+ context.push(context.di);
+ printchar(context);
+ context.ax = context.pop();
+ context.push(context.di);
+ context.di = context.ax;
+ multidump(context);
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.cx = context.pop();
+ context.ax = context.pop();
return;
}
-static inline void slabdoorf(Context & context) {
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.word(23) = 171;
- context._cmp(context.data.byte(66), 2);
- if (!context.flags.z()) goto slabfwrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 197;
- context.data.byte(188) = 47;
+static void printdirect(Context & context) {
+ context.data.word(84) = context.di;
+ context.ds = context.data.word(268);
+printloop6:
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.dx);
+ getnumber(context);
+ context.ch = 0;
+printloop5:
+ context.ax = context.data.word(context.si);
+ context._add(context.si, 1);
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishdirct;
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto finishdirct;
+ context.push(context.cx);
+ context.push(context.es);
+ modifychar(context);
+ printchar(context);
+ context.data.word(84) = context.di;
+ context.es = context.pop();
+ context.cx = context.pop();
+ if (--context.cx) goto printloop5;
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context._add(context.bx, context.data.word(77));
+ goto printloop6;
+finishdirct:
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
return;
-slabfwrong:
- context.data.word(21) = 40;
- context.data.word(25) = 189;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+}
+
+static void monprint(Context & context) {
+ context.data.byte(72) = 1;
+ context.si = context.bx;
+ context.dl = 166;
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
+printloop8:
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.dx);
+ getnumber(context);
+ context.ch = 0;
+printloop7:
+ context.al = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto finishmon2;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto finishmon;
+ context._cmp(context.al, 34);
+ if (context.flags.z()) goto finishmon;
+ context._cmp(context.al, '=');
+ if (context.flags.z()) goto finishmon;
+ context._cmp(context.al, '%');
+ if (!context.flags.z()) goto nottrigger;
+ context.ah = context.data.byte(context.si);
+ context._add(context.si, 1);
+ context._add(context.si, 1);
+ goto finishmon;
+nottrigger:
+ context.push(context.cx);
+ context.push(context.es);
+ modifychar(context);
+ printchar(context);
+ context.data.word(312) = context.di;
+ context.data.word(314) = context.bx;
+ context.data.word(138) = 1;
+ printcurs(context);
+ vsync(context);
+ context.push(context.si);
+ context.push(context.dx);
+ context.push(context.ds);
+ context.push(context.es);
+ context.push(context.bx);
+ context.push(context.di);
+ lockmon(context);
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.es = context.pop();
+ context.ds = context.pop();
+ context.dx = context.pop();
+ context.si = context.pop();
+ delcurs(context);
+ context.es = context.pop();
+ context.cx = context.pop();
+ if (--context.cx) goto printloop7;
+finishmon2:
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ scrollmonitor(context);
+ context.data.word(312) = context.di;
+ goto printloop8;
+finishmon:
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context._cmp(context.al, '%');
+ if (!context.flags.z()) goto nottrigger2;
+ context.data.byte(55) = context.ah;
+nottrigger2:
+ context.data.word(312) = context.di;
+ scrollmonitor(context);
+ context.bx = context.si;
+ context.data.byte(72) = 0;
return;
}
-static inline void useslab(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto slabwith;
- withwhat(context);
+static void getnumber(Context & context) {
+ context.cx = 0;
+ context.push(context.si);
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.es);
+ context.di = context.si;
+wordloop:
+ context.push(context.cx);
+ context.push(context.dx);
+ getnextword(context);
+ context.dx = context.pop();
+ context.cx = context.pop();
+ context._cmp(context.al, 1);
+ if (context.flags.z()) goto endoftext;
+ context.al = context.cl;
+ context.ah = 0;
+ context.push(context.bx);
+ context.bh = 0;
+ context._add(context.ax, context.bx);
+ context.bx = context.pop();
+ context._sub(context.ax, 10);
+ context.dh = 0;
+ context._cmp(context.ax, context.dx);
+ if (!context.flags.c()) goto gotoverend;
+ context._add(context.cl, context.bl);
+ context._add(context.ch, context.bh);
+ goto wordloop;
+gotoverend:
+ context.al = context.dl;
+ context._and(context.al, 1);
+ if (context.flags.z()) goto notcentre;
+ context.push(context.cx);
+ context.al = context.dl;
+ context._and(context.al, 0xfe);
+ context.ah = 0;
+ context.ch = 0;
+ context._sub(context.ax, context.cx);
+ context._add(context.ax, 20);
+ context._shr(context.ax, 1);
+ context.cx = context.pop();
+ context.es = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.si = context.pop();
+ context._add(context.di, context.ax);
+ context.cl = context.ch;
return;
-slabwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'J';
- context.ch = 'E';
- context.dl = 'W';
- context.dh = 'L';
- compare(context);
- if (context.flags.z()) goto nextslab;
- context.cx = 300;
- context.al = 14;
- showpuztext(context);
- putbackobstuff(context);
+notcentre:
+ context.es = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.si = context.pop();
+ context.cl = context.ch;
+ return;
+endoftext:
+ context.al = context.cl;
+ context.ah = 0;
+ context.push(context.bx);
+ context.bh = 0;
+ context._add(context.ax, context.bx);
+ context.bx = context.pop();
+ context._sub(context.ax, 10);
+ context.dh = 0;
+ context._cmp(context.ax, context.dx);
+ if (!context.flags.c()) goto gotoverend2;
+ context._add(context.cl, context.bl);
+ context._add(context.ch, context.bh);
+gotoverend2:
+ context.al = context.dl;
+ context._and(context.al, 1);
+ if (context.flags.z()) goto notcent2;
+ context.push(context.cx);
+ context.al = context.dl;
+ context._and(context.al, 0xfe);
+ context._add(context.al, 2);
+ context.ah = 0;
+ context.ch = 0;
+ context._add(context.ax, 20);
+ context._sub(context.ax, context.cx);
+ context._shr(context.ax, 1);
+ context.cx = context.pop();
+ context.es = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.si = context.pop();
+ context._add(context.di, context.ax);
+ context.cl = context.ch;
return;
-nextslab:
- context.al = context.data.byte(95);
- getexad(context);
- context.data.byte(context.bx+2) = 0;
- context.al = context.data.byte(99);
- context.push(context.ax);
- removesetobject(context);
- context.ax = context.pop();
- context._add(context.al, 1);
- context.push(context.ax);
- placesetobject(context);
- context.ax = context.pop();
- context._cmp(context.al, 54);
- if (!context.flags.z()) goto notlastslab;
- context.al = 0;
- turnpathon(context);
- context.data.word(21) = 22;
- context.data.word(23) = 35;
- context.data.word(25) = 48;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
-notlastslab:
- context._add(context.data.byte(2), 1);
- showfirstuse(context);
- context.data.byte(103) = 1;
+notcent2:
+ context.es = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.si = context.pop();
+ context.cl = context.ch;
return;
}
-static inline void usecart(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto cartwith;
- withwhat(context);
- return;
-cartwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'R';
- context.ch = 'O';
- context.dl = 'C';
- context.dh = 'K';
- compare(context);
- if (context.flags.z()) goto nextcart;
- context.cx = 300;
- context.al = 14;
- showpuztext(context);
- putbackobstuff(context);
- return;
-nextcart:
- context.al = context.data.byte(95);
- getexad(context);
- context.data.byte(context.bx+2) = 0;
- context.al = context.data.byte(99);
+static void getnextword(Context & context) {
+ context.bx = 0;
+getloop:
+ context.ax = context.data.word(context.di);
+ context._add(context.di, 1);
+ context._add(context.bh, 1);
+ context._cmp(context.al, ':');
+ if (context.flags.z()) goto endall;
+ context._cmp(context.al, 0);
+ if (context.flags.z()) goto endall;
+ context._cmp(context.al, 32);
+ if (context.flags.z()) goto endword;
+ modifychar(context);
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto getloop;
context.push(context.ax);
- removesetobject(context);
+ context._sub(context.al, 32);
+ context.ah = 0;
+ context._add(context.ax, context.data.word(71));
+ context._add(context.ax, context.ax);
+ context.si = context.ax;
+ context._add(context.ax, context.ax);
+ context._add(context.si, context.ax);
+ context.cl = context.data.byte(context.si+0);
context.ax = context.pop();
- context._add(context.al, 1);
- placesetobject(context);
- context._add(context.data.byte(2), 1);
- context.al = 17;
- playchannel1(context);
- showfirstuse(context);
- context.data.byte(103) = 1;
- return;
-}
-
-static inline void useclearbox(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto clearboxwith;
- withwhat(context);
- return;
-clearboxwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'R';
- context.ch = 'A';
- context.dl = 'I';
- context.dh = 'L';
- compare(context);
- if (context.flags.z()) goto openbox;
- context.cx = 300;
- context.al = 14;
- showpuztext(context);
- putbackobstuff(context);
+ kernchars(context);
+ context._add(context.bl, context.cl);
+ goto getloop;
+endword:
+ context._add(context.bl, 6);
+ context.al = 0;
return;
-openbox:
- context._add(context.data.byte(2), 1);
- showfirstuse(context);
- context.data.word(21) = 80;
- context.data.word(23) = 67;
- context.data.word(25) = 105;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+endall:
+ context._add(context.bl, 6);
+ context.al = 1;
return;
}
-static inline void usecoveredbox(Context & context) {
- context._add(context.data.byte(2), 1);
- showfirstuse(context);
- context.data.word(21) = 50;
- context.data.word(23) = 41;
- context.data.word(25) = 66;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+static void modifychar(Context & context) {
+ context._cmp(context.al, 128);
+ if (context.flags.c()) goto nomod;
+ context._cmp(context.al, 160);
+ if (!context.flags.z()) goto not160;
+ context.al = 'Z'+1;
return;
-}
-
-static inline void userailing(Context & context) {
- showfirstuse(context);
- context.data.word(21) = 80;
- context.data.word(23) = 0;
- context.data.word(25) = 30;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
- context.data.byte(56) = 4;
+not160:
+ context._cmp(context.al, 130);
+ if (!context.flags.z()) goto not130;
+ context.al = 'Z'+2;
return;
-}
-
-static inline void useopenbox(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto openboxwith;
- withwhat(context);
+not130:
+ context._cmp(context.al, 161);
+ if (!context.flags.z()) goto not161;
+ context.al = 'Z'+3;
return;
-openboxwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'C';
- context.ch = 'U';
- context.dl = 'P';
- context.dh = 'F';
- compare(context);
- if (context.flags.z()) goto destoryopenbox;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'C';
- context.ch = 'U';
- context.dl = 'P';
- context.dh = 'E';
- compare(context);
- if (context.flags.z()) goto openboxwrong;
- showfirstuse(context);
+not161:
+ context._cmp(context.al, 162);
+ if (!context.flags.z()) goto not162;
+ context.al = 'Z'+4;
return;
-destoryopenbox:
- context._add(context.data.byte(2), 1);
- context.cx = 300;
- context.al = 37;
- showpuztext(context);
- context.al = context.data.byte(95);
- getexad(context);
- context.data.byte(context.bx+15) = 'E'-'A';
- context.data.word(21) = 140;
- context.data.word(23) = 105;
- context.data.word(25) = 181;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.al = 4;
- turnpathon(context);
- context.data.byte(103) = 1;
+not162:
+ context._cmp(context.al, 163);
+ if (!context.flags.z()) goto not163;
+ context.al = 'Z'+5;
return;
-openboxwrong:
- context.cx = 300;
- context.al = 38;
- showpuztext(context);
- putbackobstuff(context);
+not163:
+ context._cmp(context.al, 164);
+ if (!context.flags.z()) goto not164;
+ context.al = 'Z'+6;
return;
-}
-
-static inline void wearwatch(Context & context) {
- context._cmp(context.data.byte(3), 1);
- if (context.flags.z()) goto wearingwatch;
- showfirstuse(context);
- context.data.byte(3) = 1;
- context.data.byte(103) = 1;
- getanyad(context);
- makeworn(context);
+not164:
+ context._cmp(context.al, 165);
+ if (!context.flags.z()) goto not165;
+ context.al = ','-1;
return;
-wearingwatch:
- showseconduse(context);
- putbackobstuff(context);
+not165:
+ context._cmp(context.al, 168);
+ if (!context.flags.z()) goto not168;
+ context.al = 'A'-1;
return;
-}
-
-static inline void wearshades(Context & context) {
- context._cmp(context.data.byte(4), 1);
- if (context.flags.z()) goto wearingshades;
- context.data.byte(4) = 1;
- showfirstuse(context);
- context.data.byte(103) = 1;
- getanyad(context);
- makeworn(context);
+not168:
+ context._cmp(context.al, 173);
+ if (!context.flags.z()) goto not173;
+ context.al = 'A'-4;
+ return;
+not173:
+ context._cmp(context.al, 129);
+ if (!context.flags.z()) goto not129;
+ context.al = 'A'-5;
+not129:
return;
-wearingshades:
- showseconduse(context);
- putbackobstuff(context);
+nomod:
return;
}
-static inline void sitdowninbar(Context & context) {
- context._cmp(context.data.byte(32), -1);
- if (!context.flags.z()) goto satdown;
- showfirstuse(context);
- context.data.word(21) = 50;
- context.data.word(23) = 55;
- context.data.word(25) = 71;
- context.data.word(29) = 73;
- context.data.word(31) = 83;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
- return;
-satdown:
- showseconduse(context);
- putbackobstuff(context);
+static void fillryan(Context & context) {
+ context.es = context.data.word(412);
+ context.di = 0+(228*13)+32;
+ findallryan(context);
+ context.si = 0+(228*13)+32;
+ context.al = context.data.byte(19);
+ context.ah = 0;
+ context.cx = 20;
+ context._mul(context.cx);
+ context._add(context.si, context.ax);
+ context.di = 80;
+ context.bx = 58;
+ context.cx = 2;
+ryanloop2:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.bx);
+ context.cx = 5;
+ryanloop1:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ax = context.data.word(context.si);
+ context._add(context.si, 2);
+ context.push(context.si);
+ context.push(context.es);
+ obtoinv(context);
+ context.es = context.pop();
+ context.si = context.pop();
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.di, 44);
+ if (--context.cx) goto ryanloop1;
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.bx, 44);
+ if (--context.cx) goto ryanloop2;
+ showryanpage(context);
return;
}
-static inline void usechurchhole(Context & context) {
- showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.word(21) = 28;
- context.data.word(23) = 13;
- context.data.word(25) = 26;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
+static void fillopen(Context & context) {
+ deltextline(context);
+ getopenedsize(context);
+ context._cmp(context.ah, 4);
+ if (context.flags.c()) goto lessthanapage;
+ context.ah = 4;
+lessthanapage:
+ context.al = 1;
+ context.push(context.ax);
+ context.es = context.data.word(412);
+ context.di = 0+(228*13);
+ findallopen(context);
+ context.si = 0+(228*13);
+ context.di = 80;
+ context.bx = 58+96;
+ context.cx = context.pop();
+openloop1:
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ax = context.data.word(context.si);
+ context._add(context.si, 2);
+ context.push(context.si);
+ context.push(context.es);
+ context._cmp(context.ch, context.cl);
+ if (context.flags.c()) goto nextopenslot;
+ obtoinv(context);
+nextopenslot:
+ context.es = context.pop();
+ context.si = context.pop();
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.cx = context.pop();
+ context._add(context.di, 44);
+ context._add(context.cl, 1);
+ context._cmp(context.cl, 5);
+ if (!context.flags.z()) goto openloop1;
+ undertextline(context);
return;
}
-static inline void usehole(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto holewith;
- withwhat(context);
- return;
-holewith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'H';
- context.ch = 'N';
- context.dl = 'D';
- context.dh = 'A';
- compare(context);
- if (context.flags.z()) goto righthand;
- context.cx = 300;
- context.al = 14;
- showpuztext(context);
- putbackobstuff(context);
- return;
-righthand:
- showfirstuse(context);
- context.al = 86;
- removesetobject(context);
- context.al = context.data.byte(95);
- getexad(context);
- context.data.byte(context.bx+2) = 255;
- context.data.byte(47) = 1;
- context.data.byte(103) = 1;
+static void findallryan(Context & context) {
+ context.push(context.di);
+ context.cx = 30;
+ context.ax = 0x0ffff;
+ while(--context.cx) context._stosw();
+ context.di = context.pop();
+ context.cl = 4;
+ context.ds = context.data.word(398);
+ context.bx = 0+2080+30000;
+ context.ch = 0;
+findryanloop:
+ context._cmp(context.data.byte(context.bx+2), context.cl);
+ if (!context.flags.z()) goto notinryaninv;
+ context._cmp(context.data.byte(context.bx+3), 255);
+ if (!context.flags.z()) goto notinryaninv;
+ context.al = context.data.byte(context.bx+4);
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context._add(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 4;
+ context._stosw();
+ context.di = context.pop();
+notinryaninv:
+ context._add(context.bx, 16);
+ context._add(context.ch, 1);
+ context._cmp(context.ch, 114);
+ if (!context.flags.z()) goto findryanloop;
return;
}
-static inline void usealtar(Context & context) {
- context.al = 'C';
- context.ah = 'N';
- context.cl = 'D';
- context.ch = 'A';
- findexobject(context);
- context._cmp(context.al, 114);
- if (context.flags.z()) goto thingsonaltar;
- context.al = 'C';
- context.ah = 'N';
- context.cl = 'D';
- context.ch = 'B';
- findexobject(context);
- context._cmp(context.al, 114);
- if (context.flags.z()) goto thingsonaltar;
- context._cmp(context.data.byte(47), 1);
- if (context.flags.z()) goto movealtar;
- context.cx = 300;
- context.al = 23;
- showpuztext(context);
- context.data.byte(103) = 1;
- return;
-movealtar:
- context._add(context.data.byte(2), 1);
- showseconduse(context);
- context.data.word(21) = 160;
- context.data.word(23) = 81;
- context.data.word(25) = 174;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.al = 47;
- context.bl = 52;
- context.bh = 76;
- context.cx = 32;
- context.dx = 98;
- setuptimeduse(context);
- context.data.byte(103) = 1;
- return;
-thingsonaltar:
- showfirstuse(context);
- context.data.byte(103) = 1;
+static void findallopen(Context & context) {
+ context.push(context.di);
+ context.cx = 16;
+ context.ax = 0x0ffff;
+ while(--context.cx) context._stosw();
+ context.di = context.pop();
+ context.cl = context.data.byte(110);
+ context.dl = context.data.byte(111);
+ context.ds = context.data.word(398);
+ context.bx = 0+2080+30000;
+ context.ch = 0;
+findopen1:
+ context._cmp(context.data.byte(context.bx+3), context.cl);
+ if (!context.flags.z()) goto findopen2;
+ context._cmp(context.data.byte(context.bx+2), context.dl);
+ if (!context.flags.z()) goto findopen2;
+ context._cmp(context.data.byte(111), 4);
+ if (context.flags.z()) goto noloccheck;
+ context.al = context.data.byte(context.bx+5);
+ context._cmp(context.al, context.data.byte(184));
+ if (!context.flags.z()) goto findopen2;
+noloccheck:
+ context.al = context.data.byte(context.bx+4);
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context._add(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 4;
+ context._stosw();
+ context.di = context.pop();
+findopen2:
+ context._add(context.bx, 16);
+ context._add(context.ch, 1);
+ context._cmp(context.ch, 114);
+ if (!context.flags.z()) goto findopen1;
+ context.cl = context.data.byte(110);
+ context.dl = context.data.byte(111);
+ context.push(context.dx);
+ context.ds = context.data.word(426);
+ context.dx = context.pop();
+ context.bx = 0;
+ context.ch = 0;
+findopen1a:
+ context._cmp(context.data.byte(context.bx+3), context.cl);
+ if (!context.flags.z()) goto findopen2a;
+ context._cmp(context.data.byte(context.bx+2), context.dl);
+ if (!context.flags.z()) goto findopen2a;
+ context.al = context.data.byte(context.bx+4);
+ context.ah = 0;
+ context.push(context.di);
+ context._add(context.di, context.ax);
+ context._add(context.di, context.ax);
+ context.al = context.ch;
+ context.ah = 2;
+ context._stosw();
+ context.di = context.pop();
+findopen2a:
+ context._add(context.bx, 16);
+ context._add(context.ch, 1);
+ context._cmp(context.ch, 80);
+ if (!context.flags.z()) goto findopen1a;
return;
}
-static inline void opentvdoor(Context & context) {
- context._cmp(context.data.byte(95), 255);
- if (!context.flags.z()) goto tvdoorwith;
- withwhat(context);
- return;
-tvdoorwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
- context.cl = 'U';
- context.ch = 'L';
- context.dl = 'O';
- context.dh = 'K';
- compare(context);
- if (context.flags.z()) goto keyontv;
- context.cx = 300;
- context.al = 14;
- showpuztext(context);
- putbackobstuff(context);
- return;
-keyontv:
- showfirstuse(context);
- context.data.byte(37) = 0;
- context.data.byte(103) = 1;
+static void obtoinv(Context & context) {
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.si);
+ context.push(context.ax);
+ context.push(context.ax);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ds = context.data.word(408);
+ context._sub(context.di, 2);
+ context._sub(context.bx, 1);
+ context.al = 10;
+ context.ah = 0;
+ showframe(context);
+ context.bx = context.pop();
+ context.di = context.pop();
+ context.ax = context.pop();
+ context._cmp(context.al, 255);
+ if (context.flags.z()) goto finishfill;
+ context.push(context.bx);
+ context.push(context.di);
+ context.push(context.ax);
+ context.ds = context.data.word(398);
+ context._cmp(context.ah, 4);
+ if (context.flags.z()) goto isanextra;
+ context.ds = context.data.word(446);
+isanextra:
+ context.cl = context.al;
+ context._add(context.al, context.al);
+ context._add(context.al, context.cl);
+ context._add(context.al, 1);
+ context.ah = 128;
+ context._add(context.bx, 19);
+ context._add(context.di, 18);
+ showframe(context);
+ context.ax = context.pop();
+ context.di = context.pop();
+ context.bx = context.pop();
+ context.push(context.bx);
+ getanyaddir(context);
+ isitworn(context);
+ context.bx = context.pop();
+ if (!context.flags.z()) goto finishfill;
+ context.ds = context.data.word(408);
+ context._sub(context.di, 3);
+ context._sub(context.bx, 2);
+ context.al = 7;
+ context.ah = 0;
+ showframe(context);
+finishfill:
+ context.ax = context.pop();
+ context.si = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
return;
}
-static inline void usedryer(Context & context) {
- context.al = 12;
- playchannel1(context);
- showfirstuse(context);
- context.data.byte(103) = 1;
+static void isitworn(Context & context) {
+ context.al = context.data.byte(context.bx+12);
+ context._cmp(context.al, 'W'-'A');
+ if (!context.flags.z()) goto notworn;
+ context.al = context.data.byte(context.bx+13);
+ context._cmp(context.al, 'E'-'A');
+notworn:
return;
}
-static inline void openlouis(Context & context) {
- context.al = 5;
- context.ah = 2;
- context.cl = 3;
- context.ch = 8;
- entercode(context);
- context.data.byte(103) = 1;
+static void makeworn(Context & context) {
+ context.data.byte(context.bx+12) = 'W'-'A';
+ context.data.byte(context.bx+13) = 'E'-'A';
return;
}
-static inline void nextcolon(Context & context) {
-lookcolon:
- context.al = context.data.byte(context.si);
- context._add(context.si, 1);
- context._cmp(context.al, ':');
- if (!context.flags.z()) goto lookcolon;
+static void examineob(Context & context) {
+ context.data.byte(234) = 0;
+ context.data.word(328) = 0;
+examineagain:
+ context.data.byte(237) = 0;
+ context.data.byte(108) = 0;
+ context.data.byte(110) = 255;
+ context.data.byte(111) = 255;
+ context.data.byte(104) = 0;
+ context.al = context.data.byte(100);
+ context.data.byte(102) = context.al;
+ context.data.byte(89) = 0;
+ context.data.byte(231) = 0;
+ createpanel(context);
+ showpanel(context);
+ showman(context);
+ showexit(context);
+ obicons(context);
+ obpicture(context);
+ describeob(context);
+ undertextline(context);
+ context.data.byte(100) = 255;
+ readmouse(context);
+ showpointer(context);
+ worktoscreen(context);
+ delpointer(context);
+waitexam:
+ readmouse(context);
+ showpointer(context);
+ vsync(context);
+ dumppointer(context);
+ dumptextline(context);
+ delpointer(context);
+ context.data.byte(103) = 0;
+ context.bx = 2494;
+ context._cmp(context.data.byte(104), 0);
+ if (context.flags.z()) goto notuseinv;
+ context.bx = 2556;
+ context._cmp(context.data.byte(104), 1);
+ if (context.flags.z()) goto notuseinv;
+ context.bx = 2618;
+notuseinv:
+ checkcoords(context);
+ context._cmp(context.data.byte(108), 0);
+ if (context.flags.z()) goto norex;
+ goto examineagain;
+norex:
+ context._cmp(context.data.byte(103), 0);
+ if (context.flags.z()) goto waitexam;
+ context.data.byte(106) = 0;
+ context._cmp(context.data.word(21), 0);
+ if (!context.flags.z()) goto iswatching;
+ context._cmp(context.data.byte(188), 255);
+ if (!context.flags.z()) goto justgetback;
+iswatching:
+ makemainscreen(context);
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
+ return;
+justgetback:
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
return;
}
-static inline void openyourneighbour(Context & context) {
- context.al = 255;
- context.ah = 255;
- context.cl = 255;
- context.ch = 255;
- entercode(context);
- context.data.byte(103) = 1;
+static void makemainscreen(Context & context) {
+ createpanel(context);
+ context.data.byte(62) = 1;
+ drawfloor(context);
+ spriteupdate(context);
+ printsprites(context);
+ reelsonscreen(context);
+ showicon(context);
+ getunderzoom(context);
+ undertextline(context);
+ context.data.byte(100) = 255;
+ animpointer(context);
Commit: 1f063c947b34ba9e56fabcbdf838094da80b3727
https://github.com/scummvm/scummvm/commit/1f063c947b34ba9e56fabcbdf838094da80b3727
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:39-07:00
Commit Message:
DREAMWEB: added stubs
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 5943572..9e04147 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -133,3 +133,239 @@ Common::Error DreamWebEngine::run() {
}
} // End of namespace DreamWeb
+
+
+namespace dreamgen {
+void randomnumber(Context &context) {
+ ::error("randomnumber");
+}
+
+void quickquit(Context &context) {
+ ::error("quickquit");
+}
+
+void quickquit2(Context &context) {
+ ::error("quickquit2");
+}
+
+void keyboardread(Context &context) {
+ ::error("keyboardread");
+}
+
+void resetkeyboard(Context &context) {
+ ::error("resetkeyboard");
+}
+
+void setkeyboardint(Context &context) {
+ ::error("setkeyboardint");
+}
+
+void readfromfile(Context &context) {
+ ::error("readfromfile");
+}
+
+void closefile(Context &context) {
+ ::error("closefile");
+}
+
+void openforsave(Context &context) {
+ ::error("openforsave");
+}
+
+void openfilenocheck(Context &context) {
+ ::error("openfilenocheck");
+}
+
+void openfile(Context &context) {
+ ::error("openfile");
+}
+
+void createfile(Context &context) {
+ ::error("createfile");
+}
+
+void dontloadseg(Context &context) {
+ ::error("dontloadseg");
+}
+
+void mousecall(Context &context) {
+ ::error("mousecall");
+}
+
+void setmouse(Context &context) {
+ ::error("setmouse");
+}
+
+void gettime(Context &context) {
+ ::error("gettime");
+}
+
+void allocatemem(Context &context) {
+ ::error("allocatemem");
+}
+
+void deallocatemem(Context &context) {
+ ::error("deallocatemem");
+}
+
+void removeemm(Context &context) {
+ ::error("removeemm");
+}
+
+void setupemm(Context &context) {
+ ::error("setupemm");
+}
+
+void pitinterupt(Context &context) {
+ ::error("pitinterupt");
+}
+
+void getridofpit(Context &context) {
+ ::error("getridofpit");
+}
+
+void setuppit(Context &context) {
+ ::error("setuppit");
+}
+
+void startdmablock(Context &context) {
+ ::error("startdmablock");
+}
+
+void dmaend(Context &context) {
+ ::error("dmaend");
+}
+
+void restoreems(Context &context) {
+ ::error("restoreems");
+}
+
+void saveems(Context &context) {
+ ::error("saveems");
+}
+
+void bothchannels(Context &context) {
+ ::error("bothchannels");
+}
+
+void channel1only(Context &context) {
+ ::error("channel1only");
+}
+
+void channel0only(Context &context) {
+ ::error("channel0only");
+}
+
+void out22c(Context &context) {
+ ::error("out22c");
+}
+
+void soundend(Context &context) {
+ ::error("soundend");
+}
+
+void interupttest(Context &context) {
+ ::error("interupttest");
+}
+
+void disablesoundint(Context &context) {
+ ::error("disablesoundint");
+}
+
+void enablesoundint(Context &context) {
+ ::error("enablesoundint");
+}
+
+void checksoundint(Context &context) {
+ ::error("checksoundint");
+}
+
+void setsoundoff(Context &context) {
+ ::error("setsoundoff");
+}
+
+void soundstartup(Context &context) {
+ ::error("soundstartup");
+}
+
+void loadsecondsample(Context &context) {
+ ::error("loadsecondsample");
+}
+
+void loadsample(Context &context) {
+ ::error("loadsample");
+}
+
+void loadspeech(Context &context) {
+ ::error("loadspeech");
+}
+
+void scanfornames(Context &context) {
+ ::error("scanfornames");
+}
+
+void saveseg(Context &context) {
+ ::error("saveseg");
+}
+
+void loadseg(Context &context) {
+ ::error("loadseg");
+}
+
+void loadposition(Context &context) {
+ ::error("loadposition");
+}
+
+void saveposition(Context &context) {
+ ::error("saveposition");
+}
+
+void error(Context &context) {
+ ::error("error");
+}
+
+void generalerror(Context &context) {
+ ::error("generalerror");
+}
+
+void dosreturn(Context &context) {
+ ::error("dosreturn");
+}
+
+void set16colpalette(Context &context) {
+ ::error("set16colpalette");
+}
+
+void mode640x480(Context &context) {
+ ::error("mode640x480");
+}
+
+void showgroup(Context &context) {
+ ::error("showgroup");
+}
+
+void fadedos(Context &context) {
+ ::error("fadedos");
+}
+
+void doshake(Context &context) {
+ ::error("doshake");
+}
+
+void vsync(Context &context) {
+ ::error("vsync");
+}
+
+void setmode(Context &context) {
+ ::error("setmode");
+}
+
+void readoneblock(Context &context) {
+ ::error("readoneblock");
+}
+
+void showpcx(Context &context) {
+ ::error("showpcx");
+}
+
+} /*namespace dreamgen */
Commit: 9cf2a7ba0e686b35a4f1041f67c51cb9ef2fa867
https://github.com/scummvm/scummvm/commit/9cf2a7ba0e686b35a4f1041f67c51cb9ef2fa867
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:44-07:00
Commit Message:
DREAMWEB: added tasm-recover tool
Changed paths:
A devtools/tasmrecover/runtime.h
A devtools/tasmrecover/tasm-recover
A devtools/tasmrecover/tasm/__init__.py
A devtools/tasmrecover/tasm/__init__.pyc
A devtools/tasmrecover/tasm/cpp.py
A devtools/tasmrecover/tasm/cpp.pyc
A devtools/tasmrecover/tasm/lex.py
A devtools/tasmrecover/tasm/lex.pyc
A devtools/tasmrecover/tasm/op.py
A devtools/tasmrecover/tasm/op.pyc
A devtools/tasmrecover/tasm/parser.py
A devtools/tasmrecover/tasm/parser.pyc
A devtools/tasmrecover/tasm/proc.py
A devtools/tasmrecover/tasm/proc.pyc
diff --git a/devtools/tasmrecover/runtime.h b/devtools/tasmrecover/runtime.h
new file mode 100644
index 0000000..5824728
--- /dev/null
+++ b/devtools/tasmrecover/runtime.h
@@ -0,0 +1,330 @@
+#ifndef TASM_RECOVER_H__
+#define TASM_RECOVER_H__
+
+#include <stdint.h>
+#include <assert.h>
+#include <vector>
+
+typedef uint16_t uint16;
+typedef uint8_t uint8;
+typedef int16_t int16;
+typedef int8_t int8;
+
+//little endian
+#define REG_LOW 0
+#define REG_HIGH 1
+
+struct Register {
+ union {
+ uint16 _value;
+ uint8 _part[2];
+ };
+ inline Register(): _value() {}
+ inline Register& operator=(uint16_t v) { _value = v; return *this; }
+ inline operator uint16&() { return _value; }
+ inline void cbw() {
+ if (_value & 0x80)
+ _value |= 0xff00;
+ else
+ _value &= 0xff;
+ }
+};
+
+template<unsigned PART>
+struct RegisterPart {
+ uint8_t &_part;
+
+ inline RegisterPart(Register ®) : _part(reg._part[PART]) {}
+
+ inline operator uint8&() {
+ return _part;
+ }
+ inline RegisterPart& operator=(const RegisterPart& o) {
+ _part = o._part;
+ return *this;
+ }
+ inline RegisterPart& operator=(uint8_t v) {
+ _part = v;
+ return *this;
+ }
+};
+
+struct WordRef {
+ std::vector<uint8> &data;
+ unsigned index;
+ bool changed;
+ uint16_t value;
+
+ inline WordRef(std::vector<uint8> &data, unsigned index) : data(data), index(index), changed(false) {
+ assert(index + 1 < data.size());
+ value = data[index] | (data[index + 1] << 8);
+ }
+ inline WordRef& operator=(const WordRef &ref) {
+ changed = true;
+ value = ref.value;
+ return *this;
+ }
+ inline WordRef& operator=(uint16_t v) {
+ changed = true;
+ value = v;
+ return *this;
+ }
+ inline operator uint16_t() const {
+ return value;
+ }
+ inline operator uint16_t&() {
+ return value;
+ }
+ inline ~WordRef() {
+ if (changed) {
+ data[index] = value & 0xff;
+ data[index + 1] = value >> 8;
+ }
+ }
+};
+
+struct Segment {
+ std::vector<uint8> data;
+ inline uint8_t &byte(unsigned index) {
+ assert(index < data.size());
+ return data[index];
+ }
+ inline uint16_t word(unsigned index) const {
+ assert(index + 1 < data.size());
+ return data[index] | (data[index + 1] << 8);
+ }
+
+ inline WordRef word(unsigned index) {
+ return WordRef(data, index);
+ }
+};
+
+
+struct SegmentRef {
+ public:
+ uint16_t value;
+ std::vector<uint8> *data;
+ inline SegmentRef& operator=(const SegmentRef &o) {
+ data = o.data;
+ return *this;
+ }
+ inline SegmentRef& operator=(const uint16_t id) {
+ return *this;
+ }
+ inline uint8_t &byte(unsigned index) {
+ assert(index < data->size());
+ return (*data)[index];
+ }
+ inline uint16_t word(unsigned index) const {
+ assert(index + 1 < data->size());
+ return (*data)[index] | ((*data)[index + 1] << 8);
+ }
+
+ inline operator uint16_t() const {
+ return value;
+ }
+
+ inline WordRef word(unsigned index) {
+ return WordRef(*data, index);
+ }
+};
+
+struct Flags {
+ bool _z, _c, _s, _o;
+ inline Flags(): _z(true), _c(false), _s(false), _o(false) {}
+
+ inline bool z() const { return _z; }
+ inline bool c() const { return _c; }
+ inline bool s() const { return _s; }
+ //complex flags:
+ inline bool g() const { return !_z && _s == _o; }
+ inline bool ge() const { return _z || _s == _o; }
+ inline bool l() const { return !_z && _s != _o; }
+ inline bool le() const { return _z || _s != _o; }
+
+ inline void update_sign(uint8 v) {
+ bool s = v & 0x80;
+ _o = s != _s;
+ _s = s;
+ _z = v == 0;
+ }
+
+ inline void update(uint16 v) {
+ bool s = v & 0x8000;
+ _o = s != _s;
+ _s = s;
+ _z = v == 0;
+ }
+};
+
+template<typename Data>
+struct RegisterContext {
+ Register ax, dx, bx, cx, si, di;
+ RegisterPart<REG_LOW> al;
+ RegisterPart<REG_HIGH> ah;
+ RegisterPart<REG_LOW> bl;
+ RegisterPart<REG_HIGH> bh;
+ RegisterPart<REG_LOW> cl;
+ RegisterPart<REG_HIGH> ch;
+ RegisterPart<REG_LOW> dl;
+ RegisterPart<REG_HIGH> dh;
+
+ SegmentRef cs, ds, es;
+ Flags flags;
+
+ inline RegisterContext(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx) {}
+
+ inline void _cmp(uint8 a, uint8 b) {
+ uint8 x = a;
+ _sub(x, b);
+ }
+ inline void _cmp(uint16 a, uint16 b) {
+ uint16 x = a;
+ _sub(x, b);
+ }
+ inline void _test(uint8 a, uint8 b) {
+ uint8 x = a;
+ _and(x, b);
+ }
+ inline void _test(uint16 a, uint16 b) {
+ uint16 x = a;
+ _and(x, b);
+ }
+
+ inline void _add(uint8 &dst, uint8 src) {
+ flags._c = dst + src < dst;
+ dst += src;
+ flags.update(dst);
+ }
+ inline void _add(uint16 &dst, uint16 src) {
+ flags._c = dst + src < dst;
+ dst += src;
+ flags.update(dst);
+ }
+ inline void _sub(uint8 &dst, uint8 src) {
+ flags._c = dst < src;
+ dst -= src;
+ flags.update(dst);
+ }
+ inline void _sub(uint16 &dst, uint16 src) {
+ flags._c = dst < src;
+ dst -= src;
+ flags.update(dst);
+ }
+
+ inline void _and(uint8 &dst, uint8 src) {
+ dst &= src;
+ flags._c = false;
+ flags.update(dst);
+ }
+ inline void _and(uint16 &dst, uint16 src) {
+ dst &= src;
+ flags._c = false;
+ flags.update(dst);
+ }
+ inline void _or(uint8 &dst, uint8 src) {
+ dst |= src;
+ flags._c = false;
+ flags.update(dst);
+ }
+ inline void _or(uint16 &dst, uint16 src) {
+ dst |= src;
+ flags._c = false;
+ flags.update(dst);
+ }
+
+ inline void _xor(uint8 &dst, uint8 src) {
+ dst ^= src;
+ flags._c = false;
+ flags.update(dst);
+ }
+ inline void _xor(uint16 &dst, uint16 src) {
+ dst ^= src;
+ flags._c = false;
+ flags.update(dst);
+ }
+
+ inline void _shr(uint8 &dst, uint8 src) {}
+ inline void _shr(uint16 &dst, uint8 src) {}
+ inline void _shl(uint8 &dst, uint8 src) {}
+ inline void _shl(uint16 &dst, uint8 src) {}
+ inline void _mul(uint8 src) {
+ unsigned r = unsigned(al) * src;
+ ax = (uint16)r;
+ flags._c = r >= 0x10000;
+ flags._z = r == 0;
+ bool s = r & 0x8000;
+ flags._o = s != flags._s;
+ flags._s = s;
+ }
+ inline void _mul(uint16 src) {
+ unsigned r = unsigned(ax) * src; //assuming here that we have at least 32 bits
+ dx = (r >> 16) & 0xffff;
+ ax = r & 0xffff;
+ flags._c = false;//fixme
+ flags._z = r == 0;
+ bool s = r & 0x80000000;
+ flags._o = s != flags._s;
+ flags._s = s;
+ }
+ inline void _neg(uint8 &src) {
+ src = ~src;
+ flags._c = false;
+ flags.update(src);
+ }
+ inline void _neg(uint16 &src) {
+ src = ~src;
+ flags._c = false;
+ flags.update(src);
+ }
+
+ inline void _movsb() {
+ es.byte(di++) = ds.byte(si++);
+ }
+ inline void _movsw() {
+ es.word(di) = ds.word(si);
+ di += 2;
+ si += 2;
+ }
+ inline void _lodsb() {
+ al = ds.byte(si++);
+ }
+ inline void _lodsw() {
+ ax = ds.word(si);
+ si += 2;
+ }
+ inline void _stosb() {
+ es.byte(di++) = al;
+ }
+ inline void _stosw() {
+ es.word(di) = al;
+ di += 2;
+ }
+
+ inline void _xchg(uint16 &a, uint16 &b) {
+ uint16 x = a;
+ a = b;
+ b = x;
+ }
+
+ inline void _xchg(uint8 &a, uint8 &b) {
+ uint8 t = a;
+ a = b;
+ b = t;
+ }
+
+ std::vector<uint16> stack;
+ inline void push(uint16 v) {
+ stack.push_back(v);
+ }
+ inline uint16 pop() {
+ uint16 v = stack.back();
+ stack.pop_back();
+ return v;
+ }
+
+ Data data;
+};
+
+#endif
+
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
new file mode 100755
index 0000000..c4214b2
--- /dev/null
+++ b/devtools/tasmrecover/tasm-recover
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+
+from tasm.parser import parser
+from tasm.cpp import cpp
+
+p = parser()
+p.strip_path = 3
+context = p.parse('dreamweb/dreamweb.asm')
+p.link()
+generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2'])
+generator.generate('dreamweb') #start routine
diff --git a/devtools/tasmrecover/tasm/__init__.py b/devtools/tasmrecover/tasm/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/devtools/tasmrecover/tasm/__init__.pyc b/devtools/tasmrecover/tasm/__init__.pyc
new file mode 100644
index 0000000..8582b7b
Binary files /dev/null and b/devtools/tasmrecover/tasm/__init__.pyc differ
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
new file mode 100644
index 0000000..53338c1
--- /dev/null
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -0,0 +1,544 @@
+import op, traceback, re, proc
+from copy import copy
+proc_module = proc
+
+class CrossJump(Exception):
+ pass
+
+def parse_bin(s):
+ b = s.group(1)
+ v = hex(int(b, 2))
+ #print "BINARY: %s -> %s" %(b, v)
+ return v
+
+class cpp:
+ def __init__(self, context, namespace, skip_first = 0, blacklist = []):
+ self.namespace = namespace
+ fname = namespace + ".cpp"
+ header = namespace + ".h"
+ self.fd = open(fname, "wt")
+ self.hd = open(header, "wt")
+ self.context = context
+ self.data_seg = context.binary_data
+ self.procs = context.proc_list
+ self.skip_first = skip_first
+ self.proc_queue = []
+ self.proc_done = []
+ self.blacklist = blacklist
+ self.failed = list(blacklist)
+ self.translated = []
+ self.proc_addr = []
+ self.forwards = []
+ self.fd.write("""#include \"%s\"
+
+namespace %s {
+
+""" %(header, namespace))
+
+ def expand_cb(self, match):
+ name = match.group(0).lower()
+ if len(name) == 2 and \
+ ((name[0] in ['a', 'b', 'c', 'd'] and name[1] in ['h', 'x', 'l']) or name in ['si', 'di', 'es', 'ds', 'cs']):
+ return "context.%s" %name
+
+ if self.indirection == -1:
+ try:
+ offset,p,p = self.context.get_offset(name)
+ print "OFFSET = %d" %offset
+ self.indirection = 0
+ return str(offset)
+ except:
+ pass
+
+ g = self.context.get_global(name)
+ if isinstance(g, op.const):
+ value = self.expand(g.value)
+ elif isinstance(g, proc.proc):
+ if self.indirection != -1:
+ raise Exception("invalid proc label usage")
+ value = str(g.offset)
+ self.indirection = 0
+ else:
+ size = g.size
+ if size == 0:
+ raise Exception("invalid var '%s' size %u" %(name, size))
+ if self.indirection == 0:
+ value = "context.data.%s(%d)" %("byte" if size == 1 else "word", g.offset)
+ elif self.indirection == -1:
+ value = "%s" %g.offset
+ self.indirection = 0
+ else:
+ raise Exception("invalid indirection %d" %self.indirection)
+ return value
+
+ def get_size(self, expr):
+ #print 'get_size("%s")' %expr
+ try:
+ v = self.context.parse_int(expr)
+ return 1 if v < 256 else 2
+ except:
+ pass
+
+ if re.match(r'byte\s+ptr\s', expr) is not None:
+ return 1
+
+ if re.match(r'word\s+ptr\s', expr) is not None:
+ return 2
+
+ if len(expr) == 2 and expr[0] in ['a', 'b', 'c', 'd'] and expr[1] in ['h', 'l']:
+ return 1
+ if expr in ['ax', 'bx', 'cx', 'dx', 'si', 'di', 'sp', 'bp', 'ds', 'cs', 'es', 'fs']:
+ return 2
+
+ m = re.match(r'[a-zA-Z_]\w*', expr)
+ if m is not None:
+ name = m.group(0)
+ try:
+ g = self.context.get_global(name)
+ return g.size
+ except:
+ pass
+
+ return 0
+
+ def expand(self, expr, def_size = 0):
+ #print "EXPAND \"%s\"" %expr
+ size = self.get_size(expr) if def_size == 0 else def_size
+ indirection = 0
+ seg = None
+ reg = True
+
+ m = re.match(r'seg\s+(.*?)$', expr)
+ if m is not None:
+ return "context.ds"
+
+ match_id = True
+ m = re.match(r'offset\s+(.*?)$', expr)
+ if m is not None:
+ indirection -= 1
+ expr = m.group(1).strip()
+
+ m = re.match(r'byte\s+ptr\s+(.*?)$', expr)
+ if m is not None:
+ expr = m.group(1).strip()
+
+ m = re.match(r'word\s+ptr\s+(.*?)$', expr)
+ if m is not None:
+ expr = m.group(1).strip()
+
+ m = re.match(r'\[(.*)\]$', expr)
+ if m is not None:
+ indirection += 1
+ expr = m.group(1).strip()
+
+ m = re.match(r'(\w{2,2}):(.*)$', expr)
+ if m is not None:
+ seg = m.group(1)
+ expr = m.group(2).strip()
+ print "SEGMENT %s, remains: %s" %(seg, expr)
+
+ m = re.match(r'(([abcd][xhl])|si|di|bp|sp)([\+-].*)?$', expr)
+ if m is not None:
+ reg = m.group(1)
+ plus = m.group(3)
+ if plus is not None:
+ plus = self.expand(plus)
+ else:
+ plus = ""
+ match_id = False
+ #print "COMMON_REG: ", reg, plus
+ expr = "context.%s%s" %(reg, plus)
+
+ expr = re.sub(r'\b([0-9][a-fA-F0-9]*)h', '0x\\1', expr)
+ expr = re.sub(r'\b([0-1]+)b', parse_bin, expr)
+ expr = re.sub(r'"(.)"', '\'\\1\'', expr)
+ if match_id:
+ #print "BEFORE: %d" %indirection
+ self.indirection = indirection
+ expr = re.sub(r'\b[a-zA-Z_][a-zA-Z0-9_]+\b', self.expand_cb, expr)
+ indirection = self.indirection
+ #print "AFTER: %d" %indirection
+
+ if indirection == 1:
+ if size == 1:
+ expr = "context.data.byte(%s)" %expr
+ elif size == 2:
+ expr = "context.data.word(%s)" %expr
+ else:
+ expr = "@invalid size 0"
+ elif indirection == 0:
+ pass
+ elif indirection == -1:
+ expr = "&%s" %expr
+ else:
+ raise Exception("invalid indirection %d" %indirection)
+ return expr
+
+ def mangle_label(self, name):
+ name = name.lower()
+ return re.sub(r'\$', '_tmp', name)
+
+ def resolve_label(self, name):
+ name = name.lower()
+ if not name in self.proc.labels:
+ try:
+ offset, proc, pos = self.context.get_offset(name)
+ except:
+ print "no label %s, trying procedure" %name
+ proc = self.context.get_global(name)
+ pos = 0
+ if not isinstance(proc, proc_module.proc):
+ raise CrossJump("cross-procedure jump to non label and non procedure %s" %(name))
+ self.proc.labels.add(name)
+ for i in xrange(0, len(self.unbounded)):
+ u = self.unbounded[i]
+ if u[1] == proc:
+ if pos < u[2]:
+ self.unbounded[i] = (name, proc, pos)
+ return self.mangle_label(name)
+ self.unbounded.append((name, proc, pos))
+
+ return self.mangle_label(name)
+
+ def jump_to_label(self, name):
+ jump_proc = False
+ if name in self.blacklist:
+ jump_proc = True
+
+ if self.context.has_global(name) :
+ g = self.context.get_global(name)
+ if isinstance(g, proc_module.proc):
+ jump_proc = True
+
+ if jump_proc:
+ self.add_forward(name)
+ return "{ %s(context); return; }" %name
+ else:
+ return "goto %s" %self.resolve_label(name)
+
+ def _label(self, name):
+ self.body += "%s:\n" %self.mangle_label(name)
+
+ def schedule(self, name):
+ name = name.lower()
+ if name in self.proc_queue or name in self.proc_done or name in self.failed:
+ return
+ print "+scheduling function %s..." %name
+ self.proc_queue.append(name)
+
+ def add_forward(self, name):
+ if name not in self.forwards and name not in self.failed:
+ self.forwards.append(name)
+
+ def _call(self, name):
+ name = name.lower()
+ if name == 'ax':
+ self.body += "\t__dispatch_call(context, %s);\n" %self.expand('ax', 2)
+ return
+ self.body += "\t%s(context);\n" %name
+ self.add_forward(name);
+ self.schedule(name)
+
+ def _ret(self):
+ self.body += "\treturn;\n"
+
+ def parse2(self, dst, src):
+ dst_size, src_size = self.get_size(dst), self.get_size(src)
+ if dst_size == 0:
+ if src_size == 0:
+ raise Exception("both sizes are 0")
+ dst_size = src_size
+ if src_size == 0:
+ src_size = dst_size
+
+ dst = self.expand(dst, dst_size)
+ src = self.expand(src, src_size)
+ return dst, src
+
+ def _mov(self, dst, src):
+ self.body += "\t%s = %s;\n" %self.parse2(dst, src)
+
+ def _add(self, dst, src):
+ self.body += "\tcontext._add(%s, %s);\n" %self.parse2(dst, src)
+
+ def _sub(self, dst, src):
+ self.body += "\tcontext._sub(%s, %s);\n" %self.parse2(dst, src)
+
+ def _and(self, dst, src):
+ self.body += "\tcontext._and(%s, %s);\n" %self.parse2(dst, src)
+
+ def _or(self, dst, src):
+ self.body += "\tcontext._or(%s, %s);\n" %self.parse2(dst, src)
+
+ def _xor(self, dst, src):
+ self.body += "\tcontext._xor(%s, %s);\n" %self.parse2(dst, src)
+
+ def _neg(self, dst):
+ dst = self.expand(dst)
+ self.body += "\tcontext._neg(%s);\n" %(dst)
+
+ def _cbw(self):
+ self.body += "\tcontext.ax.cbw();\n"
+
+ def _shr(self, dst, src):
+ self.body += "\tcontext._shr(%s, %s);\n" %self.parse2(dst, src)
+
+ def _shl(self, dst, src):
+ self.body += "\tcontext._shl(%s, %s);\n" %self.parse2(dst, src)
+
+ def _sar(self, dst, src):
+ self.body += "\tcontext._sar(%s%s);\n" %self.parse2(dst, src)
+
+ def _sal(self, dst, src):
+ self.body += "\tcontext._sal(%s, %s);\n" %self.parse2(dst, src)
+
+ def _rcl(self, dst, src):
+ self.body += "\tcontext._rcl(%s, %s);\n" %self.parse2(dst, src)
+
+ def _rcr(self, dst, src):
+ self.body += "\tcontext._rcr(%s, %s);\n" %self.parse2(dst, src)
+
+ def _mul(self, src):
+ src = self.expand(src)
+ self.body += "\tcontext._mul(%s);\n" %(src)
+
+ def _div(self, src):
+ src = self.expand(src)
+ self.body += "\tcontext._div(%s);\n" %(src)
+
+ def _inc(self, dst):
+ dst = self.expand(dst)
+ self.body += "\tcontext._add(%s, 1);\n" %(dst)
+
+ def _dec(self, dst):
+ dst = self.expand(dst)
+ self.body += "\tcontext._sub(%s, 1);\n" %(dst)
+
+ def _cmp(self, a, b):
+ self.body += "\tcontext._cmp(%s, %s);\n" %self.parse2(a, b)
+
+ def _test(self, a, b):
+ self.body += "\tcontext._test(%s, %s);\n" %self.parse2(a, b)
+
+ def _js(self, label):
+ self.body += "\tif (context.flags.s()) %s;\n" %(self.jump_to_label(label))
+
+ def _jns(self, label):
+ self.body += "\tif (!context.flags.s()) %s;\n" %(self.jump_to_label(label))
+
+ def _jz(self, label):
+ self.body += "\tif (context.flags.z()) %s;\n" %(self.jump_to_label(label))
+
+ def _jnz(self, label):
+ self.body += "\tif (!context.flags.z()) %s;\n" %(self.jump_to_label(label))
+
+ def _jl(self, label):
+ self.body += "\tif (context.flags.l()) %s;\n" %(self.jump_to_label(label))
+
+ def _jg(self, label):
+ self.body += "\tif (!context.flags.g()) %s;\n" %(self.jump_to_label(label))
+
+ def _jle(self, label):
+ self.body += "\tif (context.flags.le()) %s;\n" %(self.jump_to_label(label))
+
+ def _jge(self, label):
+ self.body += "\tif (!context.flags.ge()) %s;\n" %(self.jump_to_label(label))
+
+ def _jc(self, label):
+ self.body += "\tif (context.flags.c()) %s;\n" %(self.jump_to_label(label))
+
+ def _jnc(self, label):
+ self.body += "\tif (!context.flags.c()) %s;\n" %(self.jump_to_label(label))
+
+ def _xchg(self, dst, src):
+ self.body += "\tcontext._xchg(%s, %s);\n" %self.parse2(dst, src)
+
+ def _jmp(self, label):
+ self.body += "\t%s;\n" %(self.jump_to_label(label))
+
+ def _loop(self, label):
+ self.body += "\tif (--context.cx) %s;\n" %self.jump_to_label(label)
+
+ def _push(self, regs):
+ p = str();
+ for r in regs:
+ r = self.expand(r)
+ p += "\tcontext.push(%s);\n" %(r)
+ self.body += p
+
+ def _pop(self, regs):
+ p = str();
+ for r in regs:
+ self.temps_count -= 1
+ i = self.temps_count
+ r = self.expand(r)
+ p += "\t%s = context.pop();\n" %r
+ self.body += p
+
+ def _rep(self):
+ self.body += "\twhile(--context.cx) ";
+
+ def _lodsb(self):
+ self.body += "\tcontext._lodsb();\n";
+
+ def _lodsw(self):
+ self.body += "\tcontext._lodsw();\n";
+
+ def _stosb(self):
+ self.body += "\tcontext._stosb();\n";
+
+ def _stosw(self):
+ self.body += "\tcontext._stosw();\n";
+
+ def _movsb(self):
+ self.body += "\tcontext._movsb();\n ";
+
+ def _movsw(self):
+ self.body += "\tcontext._movsw();\n ";
+
+ def __proc(self, name, def_skip = 0):
+ try:
+ skip = def_skip
+ self.temps_count = 0
+ self.temps_max = 0
+ if self.context.has_global(name):
+ self.proc = self.context.get_global(name)
+ else:
+ print "No procedure named %s, trying label" %name
+ off, src_proc, skip = self.context.get_offset(name)
+
+ self.proc = proc_module.proc(name)
+ self.proc.stmts = copy(src_proc.stmts)
+ self.proc.labels = copy(src_proc.labels)
+ #for p in xrange(skip, len(self.proc.stmts)):
+ # s = self.proc.stmts[p]
+ # if isinstance(s, op.basejmp):
+ # o, p, s = self.context.get_offset(s.label)
+ # if p == src_proc and s < skip:
+ # skip = s
+
+
+ self.proc_addr.append((name, self.proc.offset))
+ self.body = str()
+ self.body += "static void %s(Context & context) {\n" %name;
+ self.proc.optimize()
+ self.unbounded = []
+ self.proc.visit(self, skip)
+
+ #adding remaining labels:
+ for i in xrange(0, len(self.unbounded)):
+ u = self.unbounded[i]
+ print "UNBOUNDED: ", u
+ proc = u[1]
+ for p in xrange(u[2], len(proc.stmts)):
+ s = proc.stmts[p]
+ if isinstance(s, op.basejmp):
+ self.resolve_label(s.label)
+
+ #adding statements
+ for label, proc, offset in self.unbounded:
+ self.body += "/*continuing to unbounded code: %s from %s:%d-%d*/\n" %(label, proc.name, offset, len(proc.stmts))
+ start = len(self.proc.stmts)
+ self.proc.add_label(label)
+ for s in proc.stmts[offset:]:
+ if isinstance(s, op.label):
+ self.proc.labels.add(s.name)
+ self.proc.stmts.append(s)
+ self.proc.add("ret")
+ print "skipping %d instructions, todo: %d" %(start, len(self.proc.stmts) - start)
+ self.proc.visit(self, start)
+ self.body += "}\n";
+ self.translated.insert(0, self.body)
+ self.proc = None
+ if self.temps_count > 0:
+ raise Exception("temps count == %d at the exit of proc" %self.temps_count);
+ return True
+ except (CrossJump, op.Unsupported) as e:
+ print "%s: ERROR: %s" %(name, e)
+ self.failed.append(name)
+ except:
+ raise
+
+ def get_type(self, width):
+ return "uint%d_t" %(width * 8)
+
+ def write_stubs(self, fname, procs):
+ fd = open(fname, "wt")
+ fd.write("namespace %s {\n" %self.namespace)
+ for p in procs:
+ fd.write("void %s(Context &context) {\n\t::error(\"%s\");\n}\n\n" %(p, p))
+ fd.write("} /*namespace %s */\n" %self.namespace)
+ fd.close()
+
+
+ def generate(self, start):
+ #print self.prologue()
+ #print context
+ self.proc_queue.append(start)
+ while len(self.proc_queue):
+ name = self.proc_queue.pop()
+ if name in self.failed or name in self.proc_done:
+ continue
+ if len(self.proc_queue) == 0 and len(self.procs) > 0:
+ print "queue's empty, adding remaining procs:"
+ for p in self.procs:
+ self.schedule(p)
+ self.procs = []
+ print "continuing on %s" %name
+ self.proc_done.append(name)
+ self.__proc(name)
+ self.write_stubs("_stubs.cpp", self.failed)
+ done, failed = len(self.proc_done), len(self.failed)
+ for f in self.forwards:
+ if f not in self.failed:
+ self.fd.write("static void %s(Context &context);\n" %f)
+ self.fd.write("\n")
+ self.fd.write("\n".join(self.translated))
+ self.fd.write("\n\n")
+ print "%d ok, %d failed of %d, %.02g%% translated" %(done, failed, done + failed, 100.0 * done / (done + failed))
+ print "\n".join(self.failed)
+ data_decl = "struct Data : public Segment {\n\t\tData();\n"
+ data_impl = "Data::Data() {\n"
+ data_bin = self.data_seg
+ data_impl += "\tstatic const uint8 src[] = {\n\t\t"
+ n = 0
+ for v in data_bin:
+ data_impl += "%s, " %v
+ n += 1
+ if (n & 0xf) == 0:
+ data_impl += "\n\t\t"
+ data_impl += "};\ndata.assign(src, src + sizeof(src));\n"
+ hid = "TASMRECOVER_%s_STUBS_H__" %self.namespace.upper()
+ data_decl += "\t};\n\n"
+ data_impl += "\t};\n\n"
+ self.hd.write("""#ifndef %s
+#define %s
+""" %(hid, hid))
+ self.hd.write(
+"""\n#\tinclude "runtime.h"
+
+namespace %s {
+
+ %s
+ typedef RegisterContext<Data> Context;
+
+ void __dispatch_call(Context &context, unsigned addr);
+ void __start(Context &context);
+
+""" %(self.namespace, data_decl))
+ self.fd.write(data_impl)
+
+ for f in self.failed:
+ self.hd.write("\tvoid %s(Context &context);\n" %f)
+ self.hd.write("\n}\n\n#endif\n")
+ self.hd.close()
+
+ self.fd.write("\nvoid __start(Context &context) { %s(context); }\n" %start)
+
+ self.fd.write("\nvoid __dispatch_call(Context &context, unsigned addr) {\n\tswitch(addr) {\n")
+ self.proc_addr.sort(cmp = lambda x, y: x[1] - y[1])
+ for name,addr in self.proc_addr:
+ self.fd.write("\t\tcase 0x%04x: %s(context); break;\n" %(addr, name))
+ self.fd.write("\n\t}\n}\n\n} /*namespace*/\n")
+
+ self.fd.close()
diff --git a/devtools/tasmrecover/tasm/cpp.pyc b/devtools/tasmrecover/tasm/cpp.pyc
new file mode 100644
index 0000000..b0406b3
Binary files /dev/null and b/devtools/tasmrecover/tasm/cpp.pyc differ
diff --git a/devtools/tasmrecover/tasm/lex.py b/devtools/tasmrecover/tasm/lex.py
new file mode 100644
index 0000000..ba66611
--- /dev/null
+++ b/devtools/tasmrecover/tasm/lex.py
@@ -0,0 +1,52 @@
+def parse_args(text):
+ #print "parsing: [%s]" %text
+ escape = False
+ string = False
+ result = []
+ token = str()
+ value = 0;
+ for c in text:
+ #print "[%s]%s: %s: %s" %(token, c, escape, string)
+ if c == '\\':
+ escape = True
+ continue
+
+ if escape:
+ if not string:
+ raise SyntaxError("escape found in no string: %s" %text);
+
+ #print "escaping[%s]" %c
+ escape = False
+ token += c
+ continue
+
+ if string:
+ if c == '\'' or c == '"':
+ string = False
+
+ token += c
+ continue
+
+ if c == '\'' or c == '"':
+ string = True
+ token += c
+ continue
+
+ if c == ',':
+ result.append(token.strip())
+ token = str()
+ continue
+
+ if c == ';': #comment, bailing out
+ break
+
+ token += c
+ token = token.strip()
+ if len(token):
+ result.append(token)
+ #print result
+ return result
+
+def compile(width, data):
+ print data
+ return data
diff --git a/devtools/tasmrecover/tasm/lex.pyc b/devtools/tasmrecover/tasm/lex.pyc
new file mode 100644
index 0000000..aaab26e
Binary files /dev/null and b/devtools/tasmrecover/tasm/lex.pyc differ
diff --git a/devtools/tasmrecover/tasm/op.py b/devtools/tasmrecover/tasm/op.py
new file mode 100644
index 0000000..c77eda2
--- /dev/null
+++ b/devtools/tasmrecover/tasm/op.py
@@ -0,0 +1,394 @@
+import re
+import lex
+
+class Unsupported(Exception):
+ pass
+
+class var:
+ def __init__(self, size, offset):
+ self.size = size
+ self.offset = offset
+
+class const:
+ def __init__(self, value):
+ self.value = value
+
+class reg:
+ def __init__(self, name):
+ self.name = name
+ def size(self):
+ return 2 if self.name[1] == 'x' else 1
+ def __str__(self):
+ return "<register %s>" %self.name
+
+class unref:
+ def __init__(self, exp):
+ self.exp = exp
+ def __str__(self):
+ return "<unref %s>" %self.exp
+
+class ref:
+ def __init__(self, name):
+ self.name = name
+ def __str__(self):
+ return "<ref %s>" %self.name
+
+class glob:
+ def __init__(self, name):
+ self.name = name
+ def __str__(self):
+ return "<global %s>" %self.name
+
+class segment:
+ def __init__(self, name):
+ self.name = name
+ def __str__(self):
+ return "<segment %s>" %self.name
+
+class baseop(object):
+ def parse_arg(self, arg):
+ return arg
+
+ def split(self, text):
+ a, b = lex.parse_args(text)
+ return self.parse_arg(a), self.parse_arg(b)
+ def __str__(self):
+ return str(self.__class__)
+
+class basejmp(baseop):
+ pass
+
+class _call(baseop):
+ def __init__(self, arg):
+ self.name = arg
+ def visit(self, visitor):
+ visitor._call(self.name)
+ def __str__(self):
+ return "call(%s)" %self.name
+
+class _rep(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._rep()
+
+class _mov(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._mov(self.dst, self.src)
+ def __str__(self):
+ return "mov(%s, %s)" %(self.dst, self.src)
+
+class _mov2(baseop):
+ def __init__(self, dst, src):
+ self.dst, self.src = dst, src
+ def visit(self, visitor):
+ visitor._mov(self.dst, self.src)
+
+class _shr(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._shr(self.dst, self.src)
+
+class _shl(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._shl(self.dst, self.src)
+
+class _ror(baseop):
+ def __init__(self, arg):
+ pass
+
+class _rol(baseop):
+ def __init__(self, arg):
+ pass
+
+class _sar(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._sar(self.dst, self.src)
+
+class _sal(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._sal(self.dst, self.src)
+
+class _rcl(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._rcl(self.dst, self.src)
+
+class _rcr(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._rcr(self.dst, self.src)
+
+class _neg(baseop):
+ def __init__(self, arg):
+ self.arg = arg
+ def visit(self, visitor):
+ visitor._neg(self.arg)
+
+class _dec(baseop):
+ def __init__(self, arg):
+ self.dst = arg
+ def visit(self, visitor):
+ visitor._dec(self.dst)
+
+class _inc(baseop):
+ def __init__(self, arg):
+ self.dst = arg
+ def visit(self, visitor):
+ visitor._inc(self.dst)
+
+class _add(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._add(self.dst, self.src)
+
+class _sub(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._sub(self.dst, self.src)
+
+class _mul(baseop):
+ def __init__(self, arg):
+ self.arg = self.parse_arg(arg)
+ def visit(self, visitor):
+ visitor._mul(self.arg)
+
+class _div(baseop):
+ def __init__(self, arg):
+ self.arg = self.parse_arg(arg)
+ def visit(self, visitor):
+ visitor._div(self.arg)
+
+class _and(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._and(self.dst, self.src)
+
+class _xor(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._xor(self.dst, self.src)
+
+class _or(baseop):
+ def __init__(self, arg):
+ self.dst, self.src = self.split(arg)
+ def visit(self, visitor):
+ visitor._or(self.dst, self.src)
+
+class _cmp(baseop):
+ def __init__(self, arg):
+ self.a, self.b = self.split(arg)
+ def visit(self, visitor):
+ visitor._cmp(self.a, self.b)
+
+class _test(baseop):
+ def __init__(self, arg):
+ self.a, self.b = self.split(arg)
+ def visit(self, visitor):
+ visitor._test(self.a, self.b)
+
+class _xchg(baseop):
+ def __init__(self, arg):
+ self.a, self.b = self.split(arg)
+ def visit(self, visitor):
+ visitor._xchg(self.a, self.b)
+
+class _jnz(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jnz(self.label)
+
+class _jz(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jz(self.label)
+
+class _jc(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jc(self.label)
+
+class _jnc(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jnc(self.label)
+
+class _js(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._js(self.label)
+
+class _jns(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jns(self.label)
+
+class _jl(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jl(self.label)
+
+class _jg(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jg(self.label)
+
+class _jle(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jle(self.label)
+
+class _jge(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jge(self.label)
+
+class _jmp(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._jmp(self.label)
+
+class _loop(basejmp):
+ def __init__(self, label):
+ self.label = label
+ def visit(self, visitor):
+ visitor._loop(self.label)
+
+class _push(baseop):
+ def __init__(self, arg):
+ self.regs = []
+ for r in arg.split():
+ self.regs.append(self.parse_arg(r))
+ def visit(self, visitor):
+ visitor._push(self.regs)
+
+class _pop(baseop):
+ def __init__(self, arg):
+ self.regs = []
+ for r in arg.split():
+ self.regs.append(self.parse_arg(r))
+ def visit(self, visitor):
+ visitor._pop(self.regs)
+
+class _ret(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._ret()
+
+class _lodsb(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._lodsb()
+
+class _lodsw(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._lodsw()
+
+class _stosw(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._stosw()
+
+class _stosb(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._stosb()
+
+class _movsw(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._movsw()
+
+class _movsb(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._movsb()
+
+class _in(baseop):
+ def __init__(self, arg):
+ self.arg = arg
+ def visit(self, visitor):
+ raise Unsupported("input from port: %s" %self.arg)
+
+class _out(baseop):
+ def __init__(self, arg):
+ self.arg = arg
+ def visit(self, visitor):
+ raise Unsupported("out to port: %s" %self.arg)
+
+class _cli(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ raise Unsupported("cli")
+
+class _sti(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ raise Unsupported("sli")
+
+class _int(baseop):
+ def __init__(self, arg):
+ self.arg = arg
+ def visit(self, visitor):
+ raise Unsupported("interrupt: %s" %self.arg)
+
+class _iret(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ raise Unsupported("interrupt return")
+
+class _cbw(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._cbw()
+
+class _nop(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ pass
+
+class label(baseop):
+ def __init__(self, name):
+ self.name = name
+ def visit(self, visitor):
+ visitor._label(self.name)
+
diff --git a/devtools/tasmrecover/tasm/op.pyc b/devtools/tasmrecover/tasm/op.pyc
new file mode 100644
index 0000000..2e212ae
Binary files /dev/null and b/devtools/tasmrecover/tasm/op.pyc differ
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
new file mode 100644
index 0000000..8dbf54c
--- /dev/null
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -0,0 +1,248 @@
+import os, re
+from proc import proc
+import lex
+import op
+
+class parser:
+ def __init__(self):
+ self.strip_path = 0
+ self.__globals = {}
+ self.__offsets = {}
+ self.__stack = []
+ self.proc = None
+ self.proc_list = []
+ self.binary_data = []
+
+ self.symbols = []
+ self.link_later = []
+
+ def visible(self):
+ for i in self.__stack:
+ if not i or i == 0:
+ return False
+ return True
+
+ def push_if(self, text):
+ value = self.eval(text)
+ #print "if %s -> %s" %(text, value)
+ self.__stack.append(value)
+
+ def push_else(self):
+ #print "else"
+ self.__stack[-1] = not self.__stack[-1]
+
+ def pop_if(self):
+ #print "endif"
+ return self.__stack.pop()
+
+ def set_global(self, name, value):
+ if len(name) == 0:
+ raise Exception("empty name is not allowed")
+ name = name.lower()
+ #print "adding global %s -> %s" %(name, value)
+ if self.__globals.has_key(name):
+ raise Exception("global %s was already defined", name)
+ self.__globals[name] = value
+
+ def get_global(self, name):
+ name = name.lower()
+ return self.__globals[name]
+
+ def has_global(self, name):
+ name = name.lower()
+ return self.__globals.has_key(name)
+
+ def set_offset(self, name, value):
+ if len(name) == 0:
+ raise Exception("empty name is not allowed")
+ name = name.lower()
+ #print "adding global %s -> %s" %(name, value)
+ if self.__offsets.has_key(name):
+ raise Exception("global %s was already defined", name)
+ self.__offsets[name] = value
+
+ def get_offset(self, name):
+ name = name.lower()
+ return self.__offsets[name]
+
+ def include(self, basedir, fname):
+ path = fname.split('\\')[self.strip_path:]
+ path = os.path.join(basedir, os.path.pathsep.join(path))
+ #print "including %s" %(path)
+
+ self.parse(path)
+
+ def eval(self, stmt):
+ try:
+ return self.parse_int(stmt)
+ except:
+ pass
+ value = self.__globals[stmt.lower()].value
+ return int(value)
+
+ def expr_callback(self, match):
+ name = match.group(1).lower()
+ g = self.get_global(name)
+ if isinstance(g, op.const):
+ return g.value
+ else:
+ return "0x%04x" %g.offset
+
+ def eval_expr(self, expr):
+ n = 1
+ while n > 0:
+ expr, n = re.subn(r'\b([a-zA-Z_]+[a-zA-Z0-9_]*)', self.expr_callback, expr)
+ return eval(expr)
+
+ def expand_globals(self, text):
+ return text
+
+ def fix_dollar(self, v):
+ return re.sub(r'\$', "%d" %len(self.binary_data), v)
+
+ def parse_int(self, v):
+ if re.match(r'[01]+b$', v):
+ v = int(v[:-1], 2)
+ if re.match(r'[\+-]?[0-9a-f]+h$', v):
+ v = int(v[:-1], 16)
+ return int(v)
+
+ def compact_data(self, width, data):
+ #print "COMPACTING %d %s" %(width, data)
+ r = []
+ base = 0x100 if width == 1 else 0x10000
+ for v in data:
+ if v[0] == '"':
+ if v[-1] != '"':
+ raise Exception("invalid string %s" %v)
+ if width == 2:
+ raise Exception("string with data width more than 1") #we could allow it :)
+ for i in xrange(1, len(v) - 1):
+ r.append(ord(v[i]))
+ continue
+
+ m = re.match(r'(\w+)\s+dup\s+\((\s*\S+\s*)\)', v)
+ if m is not None:
+ #we should parse that
+ n = self.parse_int(m.group(1))
+ if m.group(2) != '?':
+ value = self.parse_int(m.group(2))
+ else:
+ value = 0
+ for i in xrange(0, n):
+ v = value
+ for b in xrange(0, width):
+ r.append(v & 0xff);
+ v >>= 8
+ continue
+
+ try:
+ v = self.parse_int(v)
+ if v < 0:
+ v += base
+ except:
+ #global name
+ print "global/expr: %s" %v
+ try:
+ g = self.get_global(v)
+ v = g.offset
+ except:
+ print "unknown address %s" %(v)
+ self.link_later.append((len(self.binary_data) + len(r), v))
+ v = 0
+
+ for b in xrange(0, width):
+ r.append(v & 0xff);
+ v >>= 8
+ #print r
+ return r
+
+ def parse(self, fname):
+# print "opening file %s..." %(fname, basedir)
+ fd = open(fname, 'rb')
+ for line in fd:
+ line = line.strip()
+ if len(line) == 0 or line[0] == ';' or line[0] == chr(0x1a):
+ continue
+
+ #print cmd
+ m = re.match('(\w+)\s*?:', line)
+ if m is not None:
+ line = line[len(m.group(0)):]
+ if self.visible():
+ name = m.group(1)
+ if self.proc is not None:
+ self.proc.add_label(name)
+ self.set_offset(name, (len(self.binary_data), self.proc, len(self.proc.stmts) if self.proc is not None else 0))
+
+ cmd = line.split()
+ if len(cmd) == 0:
+ continue
+
+ cmd0 = str(cmd[0])
+ if cmd0 == 'if':
+ self.push_if(cmd[1])
+ continue
+ elif cmd0 == 'else':
+ self.push_else()
+ continue
+ elif cmd0 == 'endif':
+ self.pop_if()
+ continue
+
+ if not self.visible():
+ continue
+
+ if cmd0 == 'db' or cmd0 == 'dw' or cmd0 == 'dd':
+ arg = " ".join(cmd[1:])
+ binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd0[1]]
+ self.binary_data += self.compact_data(binary_width, lex.parse_args(arg))
+ continue
+ elif cmd0 == 'include':
+ self.include(os.path.dirname(fname), cmd[1])
+ continue
+ elif cmd0 == 'endp':
+ self.proc = None
+ continue
+ elif cmd0 == 'assume':
+ print "skipping: %s" %line
+ continue
+ elif cmd0 == 'rep':
+ self.proc.add(cmd0)
+ self.proc.add(" ".join(cmd[1:]))
+ continue
+
+ if len(cmd) >= 3:
+ cmd1 = cmd[1]
+ if cmd1 == 'equ':
+ v = cmd[2]
+ self.set_global(cmd0, op.const(self.fix_dollar(v)))
+ elif cmd1 == 'db' or cmd1 == 'dw' or cmd1 == 'dd':
+ binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd1[1]]
+ self.binary_data += self.compact_data(binary_width, lex.parse_args(" ".join(cmd[2:])))
+ self.set_global(cmd0.lower(), op.var(binary_width, len(self.binary_data)))
+ continue
+ elif cmd1 == 'proc':
+ name = cmd0.lower()
+ self.proc = proc(name)
+ print "procedure %s, #%d" %(name, len(self.proc_list))
+ self.proc_list.append(name)
+ self.set_global(name, self.proc)
+ continue
+ if (self.proc):
+ self.proc.add(line)
+ else:
+ #print line
+ pass
+
+ fd.close()
+ return self
+
+ def link(self):
+ for addr, expr in self.link_later:
+ v = self.eval_expr(expr)
+ print "link: patching %04x -> %04x" %(addr, v)
+ while v != 0:
+ self.binary_data[addr] = v & 0xff
+ addr += 1
+ v >>= 8
diff --git a/devtools/tasmrecover/tasm/parser.pyc b/devtools/tasmrecover/tasm/parser.pyc
new file mode 100644
index 0000000..d7049c8
Binary files /dev/null and b/devtools/tasmrecover/tasm/parser.pyc differ
diff --git a/devtools/tasmrecover/tasm/proc.py b/devtools/tasmrecover/tasm/proc.py
new file mode 100644
index 0000000..4337d4c
--- /dev/null
+++ b/devtools/tasmrecover/tasm/proc.py
@@ -0,0 +1,84 @@
+import re
+import op
+
+class proc:
+ last_addr = 0xc000
+
+ def __init__(self, name):
+ self.name = name
+ self.calls = []
+ self.stmts = []
+ self.labels = set()
+ self.__label_re = re.compile(r'^(\S+):(.*)$')
+ self.offset = proc.last_addr
+ proc.last_addr += 4
+
+ def add_label(self, label):
+ self.stmts.append(op.label(label))
+ self.labels.add(label)
+
+ def optimize(self):
+ print "optimizing..."
+ #trivial simplifications, removing last ret
+ while len(self.stmts) and isinstance(self.stmts[-1], op.label):
+ print "stripping last label"
+ self.stmts.pop()
+ #if isinstance(self.stmts[-1], op._ret) and (len(self.stmts) < 2 or not isinstance(self.stmts[-2], op.label)):
+ # print "stripping last ret"
+ # self.stmts.pop()
+ #merging push ax pop bx constructs
+ i = 0
+ while i + 1 < len(self.stmts):
+ a, b = self.stmts[i], self.stmts[i + 1]
+ if isinstance(a, op._push) and isinstance(b, op._pop):
+ ar, br = a.regs, b.regs
+ movs = []
+ while len(ar) and len(br):
+ src = ar.pop()
+ dst = br.pop(0)
+ movs.append(op._mov2(dst, src))
+ if len(br) == 0:
+ self.stmts.pop(i + 1)
+ print "merging %d push-pops into movs" %(len(movs))
+ for m in movs:
+ print "\t%s <- %s" %(m.dst, m.src)
+ self.stmts[i + 1:i + 1] = movs
+ if len(ar) == 0:
+ self.stmts.pop(i)
+ else:
+ i += 1
+ #fixme: add local?
+
+ def add(self, stmt):
+ #print stmt
+ comment = stmt.rfind(';')
+ if comment >= 0:
+ stmt = stmt[:comment]
+ stmt = stmt.strip()
+
+ r = self.__label_re.search(stmt)
+ if r is not None:
+ #label
+ self.add_label(r.group(1).lower())
+ #print "remains: %s" %r.group(2)
+ stmt = r.group(2).strip()
+
+ if len(stmt) == 0:
+ return
+
+ s = stmt.split(None)
+ cmd = s[0]
+ cl = getattr(op, '_' + cmd)
+ arg = " ".join(s[1:]) if len(s) > 1 else str()
+ o = cl(arg)
+ self.stmts.append(o)
+
+ def __str__(self):
+ r = []
+ for i in self.stmts:
+ r.append(i.__str__())
+ return "\n".join(r)
+
+ def visit(self, visitor, skip = 0):
+ for i in xrange(skip, len(self.stmts)):
+ self.stmts[i].visit(visitor)
diff --git a/devtools/tasmrecover/tasm/proc.pyc b/devtools/tasmrecover/tasm/proc.pyc
new file mode 100644
index 0000000..cd8f967
Binary files /dev/null and b/devtools/tasmrecover/tasm/proc.pyc differ
Commit: 10c84a81fe3e04d9b923c023c46e89ca9eeb151a
https://github.com/scummvm/scummvm/commit/10c84a81fe3e04d9b923c023c46e89ca9eeb151a
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:48-07:00
Commit Message:
DREAMWEB: removed ugly macroses
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 5824728..8050e9f 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -1,18 +1,15 @@
-#ifndef TASM_RECOVER_H__
-#define TASM_RECOVER_H__
+#ifndef ENGINES_DREAMGEN_RUNTIME_H__
+#define ENGINES_DREAMGEN_RUNTIME_H__
#include <stdint.h>
#include <assert.h>
#include <vector>
+#include "common/scummsys.h"
-typedef uint16_t uint16;
-typedef uint8_t uint8;
-typedef int16_t int16;
-typedef int8_t int8;
+//fixme: name clash
+#undef random
-//little endian
-#define REG_LOW 0
-#define REG_HIGH 1
+enum { kLowPartOfRegister = 0, kHighPartOfRegister = 1 };
struct Register {
union {
@@ -160,14 +157,14 @@ struct Flags {
template<typename Data>
struct RegisterContext {
Register ax, dx, bx, cx, si, di;
- RegisterPart<REG_LOW> al;
- RegisterPart<REG_HIGH> ah;
- RegisterPart<REG_LOW> bl;
- RegisterPart<REG_HIGH> bh;
- RegisterPart<REG_LOW> cl;
- RegisterPart<REG_HIGH> ch;
- RegisterPart<REG_LOW> dl;
- RegisterPart<REG_HIGH> dh;
+ RegisterPart<kLowPartOfRegister> al;
+ RegisterPart<kHighPartOfRegister> ah;
+ RegisterPart<kLowPartOfRegister> bl;
+ RegisterPart<kHighPartOfRegister> bh;
+ RegisterPart<kLowPartOfRegister> cl;
+ RegisterPart<kHighPartOfRegister> ch;
+ RegisterPart<kLowPartOfRegister> dl;
+ RegisterPart<kHighPartOfRegister> dh;
SegmentRef cs, ds, es;
Flags flags;
Commit: e3178397ce9dd1e5e52e7a6831f3a19670005076
https://github.com/scummvm/scummvm/commit/e3178397ce9dd1e5e52e7a6831f3a19670005076
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:52-07:00
Commit Message:
COMMON: added assign(T*, T*)
Changed paths:
common/array.h
diff --git a/common/array.h b/common/array.h
index 7ab4a1b..b3d3e01 100644
--- a/common/array.h
+++ b/common/array.h
@@ -252,6 +252,13 @@ public:
_size = newSize;
}
+ void assign(const T *srcBegin, const T *srcEnd) {
+ reserve(distance(srcBegin, srcEnd));
+ T *dst = _storage;
+ while(srcBegin != srcEnd)
+ *dst++ = *srcBegin++;
+ }
+
protected:
static uint roundUpCapacity(uint capacity) {
// Round up capacity to the next power of 2;
Commit: d725199ac05e439a1a616f9eef2fe010d3433d90
https://github.com/scummvm/scummvm/commit/d725199ac05e439a1a616f9eef2fe010d3433d90
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:29:58-07:00
Commit Message:
DREAMWEB: 'scummvm'ing types. :)
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 8050e9f..c266c5d 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -1,10 +1,9 @@
#ifndef ENGINES_DREAMGEN_RUNTIME_H__
#define ENGINES_DREAMGEN_RUNTIME_H__
-#include <stdint.h>
#include <assert.h>
-#include <vector>
#include "common/scummsys.h"
+#include "common/array.h"
//fixme: name clash
#undef random
@@ -17,7 +16,7 @@ struct Register {
uint8 _part[2];
};
inline Register(): _value() {}
- inline Register& operator=(uint16_t v) { _value = v; return *this; }
+ inline Register& operator=(uint16 v) { _value = v; return *this; }
inline operator uint16&() { return _value; }
inline void cbw() {
if (_value & 0x80)
@@ -29,7 +28,7 @@ struct Register {
template<unsigned PART>
struct RegisterPart {
- uint8_t &_part;
+ uint8 &_part;
inline RegisterPart(Register ®) : _part(reg._part[PART]) {}
@@ -40,19 +39,19 @@ struct RegisterPart {
_part = o._part;
return *this;
}
- inline RegisterPart& operator=(uint8_t v) {
+ inline RegisterPart& operator=(uint8 v) {
_part = v;
return *this;
}
};
struct WordRef {
- std::vector<uint8> &data;
+ Common::Array<uint8> &data;
unsigned index;
bool changed;
- uint16_t value;
+ uint16 value;
- inline WordRef(std::vector<uint8> &data, unsigned index) : data(data), index(index), changed(false) {
+ inline WordRef(Common::Array<uint8> &data, unsigned index) : data(data), index(index), changed(false) {
assert(index + 1 < data.size());
value = data[index] | (data[index + 1] << 8);
}
@@ -61,15 +60,15 @@ struct WordRef {
value = ref.value;
return *this;
}
- inline WordRef& operator=(uint16_t v) {
+ inline WordRef& operator=(uint16 v) {
changed = true;
value = v;
return *this;
}
- inline operator uint16_t() const {
+ inline operator uint16() const {
return value;
}
- inline operator uint16_t&() {
+ inline operator uint16&() {
return value;
}
inline ~WordRef() {
@@ -81,12 +80,12 @@ struct WordRef {
};
struct Segment {
- std::vector<uint8> data;
- inline uint8_t &byte(unsigned index) {
+ Common::Array<uint8> data;
+ inline uint8 &byte(unsigned index) {
assert(index < data.size());
return data[index];
}
- inline uint16_t word(unsigned index) const {
+ inline uint16 word(unsigned index) const {
assert(index + 1 < data.size());
return data[index] | (data[index + 1] << 8);
}
@@ -99,25 +98,25 @@ struct Segment {
struct SegmentRef {
public:
- uint16_t value;
- std::vector<uint8> *data;
+ uint16 value;
+ Common::Array<uint8> *data;
inline SegmentRef& operator=(const SegmentRef &o) {
data = o.data;
return *this;
}
- inline SegmentRef& operator=(const uint16_t id) {
+ inline SegmentRef& operator=(const uint16 id) {
return *this;
}
- inline uint8_t &byte(unsigned index) {
+ inline uint8 &byte(unsigned index) {
assert(index < data->size());
return (*data)[index];
}
- inline uint16_t word(unsigned index) const {
+ inline uint16 word(unsigned index) const {
assert(index + 1 < data->size());
return (*data)[index] | ((*data)[index + 1] << 8);
}
- inline operator uint16_t() const {
+ inline operator uint16() const {
return value;
}
@@ -310,7 +309,7 @@ struct RegisterContext {
b = t;
}
- std::vector<uint16> stack;
+ Common::Array<uint16> stack;
inline void push(uint16 v) {
stack.push_back(v);
}
Commit: 1f991fa1e4ae59fb86852212d7fe5021b6f97809
https://github.com/scummvm/scummvm/commit/1f991fa1e4ae59fb86852212d7fe5021b6f97809
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:03-07:00
Commit Message:
DREAMWEB: fixed almost all runtime warnings
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index c266c5d..7324475 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -4,6 +4,7 @@
#include <assert.h>
#include "common/scummsys.h"
#include "common/array.h"
+#include "common/hashmap.h"
//fixme: name clash
#undef random
@@ -45,36 +46,38 @@ struct RegisterPart {
}
};
-struct WordRef {
- Common::Array<uint8> &data;
- unsigned index;
- bool changed;
- uint16 value;
+class WordRef {
+ Common::Array<uint8> &_data;
+ unsigned _index;
+ bool _changed;
+ uint16 _value;
- inline WordRef(Common::Array<uint8> &data, unsigned index) : data(data), index(index), changed(false) {
+public:
+
+ inline WordRef(Common::Array<uint8> &data, unsigned index) : _data(data), _index(index), _changed(false) {
assert(index + 1 < data.size());
- value = data[index] | (data[index + 1] << 8);
+ _value = _data[index] | (_data[index + 1] << 8);
}
inline WordRef& operator=(const WordRef &ref) {
- changed = true;
- value = ref.value;
+ _changed = true;
+ _value = ref._value;
return *this;
}
inline WordRef& operator=(uint16 v) {
- changed = true;
- value = v;
+ _changed = true;
+ _value = v;
return *this;
}
inline operator uint16() const {
- return value;
+ return _value;
}
inline operator uint16&() {
- return value;
+ return _value;
}
inline ~WordRef() {
- if (changed) {
- data[index] = value & 0xff;
- data[index + 1] = value >> 8;
+ if (_changed) {
+ _data[_index] = _value & 0xff;
+ _data[_index + 1] = _value >> 8;
}
}
};
@@ -96,32 +99,40 @@ struct Segment {
};
-struct SegmentRef {
- public:
- uint16 value;
- Common::Array<uint8> *data;
- inline SegmentRef& operator=(const SegmentRef &o) {
- data = o.data;
- return *this;
+class SegmentRef {
+
+ uint16 _value;
+ Segment *_segment;
+
+public:
+ SegmentRef(): _value(), _segment() {
}
+
+ inline void reset(uint16 value) {
+
+ }
+
inline SegmentRef& operator=(const uint16 id) {
return *this;
}
+
inline uint8 &byte(unsigned index) {
- assert(index < data->size());
- return (*data)[index];
+ assert(_segment != 0);
+ return _segment->byte(index);
}
+
inline uint16 word(unsigned index) const {
- assert(index + 1 < data->size());
- return (*data)[index] | ((*data)[index + 1] << 8);
+ assert(_segment != 0);
+ return _segment->word(index);
}
inline operator uint16() const {
- return value;
+ return _value;
}
inline WordRef word(unsigned index) {
- return WordRef(*data, index);
+ assert(_segment != 0);
+ return _segment->word(index);
}
};
@@ -139,16 +150,16 @@ struct Flags {
inline bool le() const { return _z || _s != _o; }
inline void update_sign(uint8 v) {
- bool s = v & 0x80;
- _o = s != _s;
- _s = s;
+ bool new_s = v & 0x80;
+ _o = new_s != _s;
+ _s = new_s;
_z = v == 0;
}
inline void update(uint16 v) {
- bool s = v & 0x8000;
- _o = s != _s;
- _s = s;
+ bool new_s = v & 0x8000;
+ _o = new_s != _s;
+ _s = new_s;
_z = v == 0;
}
};
Commit: cc784e9a0c0b0527548b1ea5cac06b4d9458042a
https://github.com/scummvm/scummvm/commit/cc784e9a0c0b0527548b1ea5cac06b4d9458042a
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:08-07:00
Commit Message:
DREAMWEB: removed context template, cleaned up initialization
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 5b075a1..6d45fbf 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -20872,565 +20872,562 @@ endofgame:
}
-Data::Data() {
+
+void __start(Context &context) {
static const uint8 src[] = {
- 0, 0, 0, 0, 0, 30, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 255, 0,
- 255, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 10, 0, 13, 0, 182,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 104, 0, 38, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 255, 0, 0, 0, 0, 1, 44, 0, 20, 0, 2, 0, 1, 1, 55,
- 0, 0, 0, 50, 20, 0, 24, 22, 0, 74, 0, 1, 0, 0, 24, 33,
- 10, 75, 0, 1, 0, 1, 1, 44, 0, 27, 0, 2, 0, 2, 1, 44,
- 0, 96, 0, 3, 0, 4, 1, 44, 0, 118, 0, 2, 0, 5, 1, 44,
- 10, 0, 0, 2, 0, 0, 5, 22, 20, 53, 0, 3, 0, 0, 5, 22,
- 20, 40, 0, 1, 0, 2, 5, 22, 20, 50, 0, 1, 0, 3, 2, 11,
- 10, 192, 0, 1, 0, 0, 2, 11, 10, 182, 0, 2, 0, 1, 8, 11,
- 10, 0, 0, 2, 0, 1, 23, 0, 50, 0, 0, 3, 0, 0, 28, 11,
- 20, 250, 0, 4, 0, 0, 23, 0, 50, 43, 0, 2, 0, 8, 23, 11,
- 40, 130, 0, 2, 0, 1, 23, 22, 40, 122, 0, 2, 0, 2, 23, 22,
- 40, 105, 0, 2, 0, 3, 23, 22, 40, 81, 0, 2, 0, 4, 23, 11,
- 40, 135, 0, 2, 0, 5, 23, 22, 40, 145, 0, 2, 0, 6, 4, 22,
- 30, 0, 0, 2, 0, 0, 45, 22, 30, 200, 0, 0, 0, 20, 45, 22,
- 30, 39, 0, 2, 0, 0, 45, 22, 30, 25, 0, 2, 0, 0, 8, 22,
- 40, 32, 0, 2, 0, 0, 7, 11, 20, 64, 0, 2, 0, 0, 22, 22,
- 20, 82, 0, 2, 0, 0, 27, 11, 30, 0, 0, 2, 0, 0, 20, 0,
- 30, 0, 0, 2, 0, 0, 14, 33, 40, 21, 0, 1, 0, 0, 29, 11,
- 10, 0, 0, 1, 0, 0, 2, 22, 0, 2, 0, 2, 0, 0, 25, 0,
- 50, 4, 0, 2, 0, 0, 50, 22, 30, 121, 0, 2, 0, 0, 50, 22,
- 30, 0, 0, 20, 0, 0, 52, 22, 30, 192, 0, 2, 0, 0, 52, 22,
- 30, 233, 0, 2, 0, 0, 50, 22, 40, 104, 0, 55, 0, 0, 53, 33,
- 0, 99, 0, 2, 0, 0, 50, 22, 40, 0, 0, 3, 0, 0, 50, 22,
- 30, 162, 0, 2, 0, 0, 52, 22, 30, 57, 0, 2, 0, 0, 52, 22,
- 30, 0, 0, 2, 0, 0, 54, 0, 0, 72, 0, 3, 0, 0, 55, 44,
- 0, 0, 0, 2, 0, 0, 19, 0, 0, 0, 0, 28, 0, 0, 14, 22,
- 0, 2, 0, 2, 0, 0, 14, 22, 0, 44, 1, 1, 0, 0, 10, 22,
- 30, 174, 0, 0, 0, 0, 12, 22, 20, 0, 0, 1, 0, 0, 11, 11,
- 20, 0, 0, 50, 20, 0, 11, 11, 30, 0, 0, 50, 20, 0, 11, 22,
- 20, 0, 0, 50, 20, 0, 14, 33, 40, 0, 0, 50, 20, 0, 255, 124,
- 192, 128, 192, 28, 192, 32, 192, 0, 193, 16, 192, 24, 192, 244, 192, 12,
- 192, 36, 192, 40, 192, 44, 192, 48, 192, 84, 192, 120, 192, 80, 192, 116,
- 192, 52, 192, 56, 192, 64, 192, 68, 192, 72, 192, 60, 192, 20, 192, 136,
- 192, 140, 192, 144, 192, 112, 192, 252, 192, 108, 192, 88, 192, 104, 192, 4,
- 193, 100, 192, 96, 192, 92, 192, 148, 192, 4, 192, 164, 192, 156, 192, 160,
- 192, 168, 192, 172, 192, 152, 192, 176, 192, 180, 192, 200, 192, 204, 192, 212,
- 192, 220, 192, 216, 192, 0, 192, 8, 192, 132, 192, 132, 192, 132, 192, 132,
- 192, 0, 60, 33, 71, 11, 82, 22, 93, 1, 44, 10, 16, 4, 11, 30,
- 14, 4, 22, 30, 14, 3, 33, 10, 14, 10, 33, 30, 14, 10, 22, 30,
- 24, 9, 22, 10, 14, 2, 33, 0, 14, 2, 22, 0, 14, 6, 11, 30,
- 14, 7, 11, 20, 18, 7, 0, 20, 18, 7, 0, 30, 18, 55, 44, 0,
- 14, 5, 22, 30, 14, 8, 0, 10, 18, 8, 11, 10, 18, 8, 22, 10,
- 18, 8, 33, 10, 18, 8, 33, 20, 18, 8, 33, 30, 18, 8, 33, 40,
- 18, 8, 22, 40, 18, 8, 11, 40, 18, 21, 44, 20, 18, 255, 47, 5,
- 48, 5, 52, 5, 47, 5, 47, 5, 47, 5, 71, 5, 47, 5, 78, 5,
- 94, 5, 101, 5, 105, 5, 109, 5, 113, 5, 126, 5, 47, 5, 47, 5,
- 47, 5, 47, 5, 47, 5, 160, 5, 47, 5, 182, 5, 213, 5, 47, 5,
- 226, 5, 248, 5, 14, 6, 39, 6, 58, 6, 47, 5, 47, 5, 47, 5,
- 47, 5, 47, 5, 47, 5, 47, 5, 47, 5, 47, 5, 47, 5, 47, 5,
- 47, 5, 47, 5, 47, 5, 47, 5, 74, 6, 81, 6, 118, 6, 47, 5,
- 47, 5, 47, 5, 47, 5, 131, 6, 135, 6, 47, 5, 142, 6, 255, 15,
- 1, 1, 255, 12, 5, 0, 13, 21, 0, 15, 35, 0, 17, 50, 0, 18,
- 103, 0, 19, 108, 0, 255, 18, 19, 0, 19, 23, 0, 255, 12, 51, 0,
- 13, 53, 0, 14, 14, 0, 15, 20, 0, 0, 78, 0, 255, 12, 119, 0,
- 12, 145, 0, 255, 13, 16, 0, 255, 13, 20, 0, 255, 14, 16, 0, 255,
- 15, 4, 0, 16, 8, 0, 17, 134, 0, 18, 153, 0, 255, 13, 108, 0,
- 15, 70, 1, 15, 75, 1, 15, 80, 1, 15, 86, 1, 15, 92, 1, 15,
- 98, 1, 18, 159, 0, 18, 178, 0, 147, 217, 0, 84, 228, 0, 255, 13,
- 20, 0, 13, 21, 0, 15, 34, 0, 13, 52, 0, 13, 55, 0, 25, 57,
- 0, 21, 73, 0, 255, 13, 196, 0, 13, 234, 0, 13, 156, 0, 14, 129,
- 0, 13, 124, 0, 15, 162, 0, 15, 200, 0, 15, 239, 0, 17, 99, 0,
- 12, 52, 0, 255, 15, 56, 0, 16, 64, 0, 19, 22, 0, 20, 33, 0,
- 255, 20, 11, 0, 20, 15, 0, 15, 28, 0, 13, 80, 0, 21, 82, 0,
- 147, 87, 0, 87, 128, 0, 255, 12, 13, 0, 14, 39, 0, 12, 67, 0,
- 12, 75, 0, 12, 83, 0, 12, 91, 0, 15, 102, 0, 255, 22, 36, 0,
- 13, 125, 0, 18, 88, 0, 15, 107, 0, 14, 127, 0, 14, 154, 0, 147,
- 170, 0, 87, 232, 0, 255, 21, 16, 0, 21, 72, 0, 21, 205, 0, 22,
- 63, 0, 151, 99, 0, 88, 158, 0, 255, 13, 21, 0, 14, 24, 0, 147,
- 50, 0, 87, 75, 0, 24, 128, 0, 255, 83, 46, 0, 16, 167, 0, 255,
- 16, 19, 0, 14, 36, 0, 16, 50, 0, 14, 65, 0, 16, 81, 0, 14,
- 96, 0, 16, 114, 0, 14, 129, 0, 16, 147, 0, 14, 162, 0, 16, 177,
- 0, 14, 191, 0, 255, 13, 48, 0, 14, 41, 0, 15, 78, 0, 16, 92,
- 0, 255, 16, 115, 0, 255, 21, 103, 0, 20, 199, 0, 255, 17, 53, 0,
- 17, 54, 0, 17, 55, 0, 17, 56, 0, 17, 57, 0, 17, 58, 0, 17,
- 59, 0, 17, 61, 0, 17, 63, 0, 17, 64, 0, 17, 65, 0, 255, 156,
- 154, 159, 154, 156, 158, 160, 155, 157, 153, 159, 158, 156, 154, 159, 154, 156,
- 158, 160, 155, 157, 153, 159, 158, 156, 154, 159, 154, 156, 158, 160, 155, 157,
- 153, 159, 158, 156, 154, 159, 154, 156, 158, 160, 155, 157, 153, 159, 158, 156,
- 154, 159, 154, 156, 158, 160, 155, 157, 153, 159, 158, 156, 154, 159, 154, 156,
- 158, 160, 155, 157, 153, 159, 158, 156, 154, 159, 154, 156, 158, 160, 155, 157,
- 153, 159, 158, 156, 154, 159, 154, 156, 158, 160, 155, 157, 153, 159, 158, 156,
- 154, 159, 154, 156, 158, 160, 155, 157, 153, 159, 156, 68, 82, 69, 65, 77,
- 87, 69, 66, 46, 83, 48, 48, 0, 68, 82, 69, 65, 77, 87, 69, 66,
- 46, 83, 48, 50, 0, 73, 78, 83, 84, 65, 76, 76, 46, 68, 65, 84,
- 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 67, 48, 48, 0, 68, 82,
- 69, 65, 77, 87, 69, 66, 46, 67, 48, 49, 0, 68, 82, 69, 65, 77,
- 87, 69, 66, 46, 67, 48, 50, 0, 68, 82, 69, 65, 77, 87, 69, 66,
- 46, 86, 48, 48, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 86, 57,
- 57, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 71, 48, 48, 0, 68,
- 82, 69, 65, 77, 87, 69, 66, 46, 71, 48, 49, 0, 68, 82, 69, 65,
- 77, 87, 69, 66, 46, 71, 48, 50, 0, 68, 82, 69, 65, 77, 87, 69,
- 66, 46, 71, 48, 56, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 71,
- 48, 51, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 71, 48, 55, 0,
- 68, 82, 69, 65, 77, 87, 69, 66, 46, 71, 48, 52, 0, 68, 82, 69,
- 65, 77, 87, 69, 66, 46, 71, 48, 53, 0, 68, 82, 69, 65, 77, 87,
- 69, 66, 46, 71, 48, 54, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46,
- 71, 49, 52, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 48, 49,
- 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 48, 50, 0, 68, 82,
- 69, 65, 77, 87, 69, 66, 46, 84, 49, 48, 0, 68, 82, 69, 65, 77,
- 87, 69, 66, 46, 84, 49, 49, 0, 68, 82, 69, 65, 77, 87, 69, 66,
- 46, 84, 49, 50, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 49,
- 51, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 50, 48, 0, 68,
- 82, 69, 65, 77, 87, 69, 66, 46, 84, 50, 49, 0, 68, 82, 69, 65,
- 77, 87, 69, 66, 46, 84, 50, 50, 0, 68, 82, 69, 65, 77, 87, 69,
- 66, 46, 84, 50, 51, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84,
- 50, 52, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 53, 48, 0,
- 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 53, 49, 0, 68, 82, 69,
- 65, 77, 87, 69, 66, 46, 84, 56, 48, 0, 68, 82, 69, 65, 77, 87,
- 69, 66, 46, 84, 56, 49, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46,
- 84, 56, 50, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 56, 51,
- 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 84, 56, 52, 0, 68, 82,
- 69, 65, 77, 87, 69, 66, 46, 86, 79, 76, 0, 68, 82, 69, 65, 77,
- 87, 69, 66, 46, 71, 48, 57, 0, 68, 82, 69, 65, 77, 87, 69, 66,
- 46, 71, 49, 48, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 71, 49,
- 49, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 71, 49, 50, 0, 68,
- 82, 69, 65, 77, 87, 69, 66, 46, 71, 49, 51, 0, 68, 82, 69, 65,
- 77, 87, 69, 66, 46, 71, 49, 53, 0, 68, 82, 69, 65, 77, 87, 69,
- 66, 46, 73, 48, 48, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 73,
- 48, 49, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 73, 48, 50, 0,
- 68, 82, 69, 65, 77, 87, 69, 66, 46, 73, 48, 51, 0, 68, 82, 69,
- 65, 77, 87, 69, 66, 46, 73, 48, 52, 0, 68, 82, 69, 65, 77, 87,
- 69, 66, 46, 73, 48, 53, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46,
- 73, 48, 54, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 73, 48, 55,
- 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 80, 65, 76, 0, 17, 1,
- 64, 1, 157, 0, 198, 0, 72, 195, 4, 1, 44, 1, 0, 0, 44, 0,
- 132, 197, 210, 0, 254, 0, 0, 0, 44, 0, 224, 195, 144, 0, 176, 0,
- 64, 0, 96, 0, 132, 195, 0, 0, 50, 0, 50, 0, 200, 0, 136, 195,
- 0, 0, 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 17, 1, 64, 1,
- 157, 0, 198, 0, 72, 195, 255, 0, 38, 1, 0, 0, 24, 0, 204, 195,
- 247, 0, 45, 1, 40, 0, 56, 0, 76, 195, 80, 0, 0, 1, 158, 0,
- 202, 0, 228, 195, 80, 0, 44, 1, 58, 0, 146, 0, 156, 195, 0, 0,
- 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 17, 1, 64, 1, 157, 0,
- 198, 0, 72, 195, 247, 0, 45, 1, 40, 0, 56, 0, 76, 195, 80, 0,
- 44, 1, 58, 0, 146, 0, 192, 198, 0, 0, 64, 1, 0, 0, 200, 0,
- 156, 202, 255, 255, 17, 1, 64, 1, 157, 0, 198, 0, 128, 196, 240, 0,
- 34, 1, 2, 0, 44, 0, 152, 196, 0, 0, 64, 1, 0, 0, 200, 0,
- 156, 202, 255, 255, 17, 1, 64, 1, 157, 0, 198, 0, 128, 196, 0, 0,
- 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 238, 0, 2, 1, 4, 0,
- 44, 0, 204, 196, 104, 0, 124, 0, 4, 0, 44, 0, 208, 196, 24, 1,
- 52, 1, 4, 0, 44, 0, 180, 196, 104, 0, 216, 0, 138, 0, 192, 0,
- 212, 196, 17, 1, 64, 1, 157, 0, 198, 0, 128, 196, 0, 0, 64, 1,
- 0, 0, 200, 0, 156, 202, 255, 255, 69, 88, 73, 84, 32, 72, 69, 76,
- 80, 32, 76, 73, 83, 84, 32, 82, 69, 65, 68, 32, 76, 79, 71, 79,
- 78, 32, 75, 69, 89, 83, 32, 1, 0, 80, 85, 66, 76, 73, 67, 32,
- 80, 85, 66, 76, 73, 67, 32, 0, 0, 0, 66, 76, 65, 67, 75, 68,
- 82, 65, 71, 79, 78, 32, 82, 89, 65, 78, 32, 0, 0, 0, 72, 69,
- 78, 68, 82, 73, 88, 32, 76, 79, 85, 73, 83, 32, 0, 0, 0, 83,
- 69, 80, 84, 73, 77, 85, 83, 32, 66, 69, 67, 75, 69, 84, 84, 32,
- 0, 255, 255, 32, 0, 34, 82, 79, 79, 84, 32, 0, 34, 32, 0, 78,
- 69, 84, 87, 236, 196, 69, 76, 86, 65, 144, 198, 69, 76, 86, 66, 160,
- 198, 69, 76, 86, 67, 152, 198, 69, 76, 86, 69, 156, 198, 69, 76, 86,
- 70, 164, 198, 67, 71, 65, 84, 52, 199, 82, 69, 77, 79, 172, 198, 66,
- 85, 84, 65, 64, 199, 67, 66, 79, 88, 72, 199, 76, 73, 84, 69, 96,
- 198, 80, 76, 65, 84, 68, 199, 76, 73, 70, 84, 128, 198, 87, 73, 82,
- 69, 136, 198, 72, 78, 68, 76, 140, 198, 72, 65, 67, 72, 132, 198, 68,
- 79, 79, 82, 184, 198, 67, 83, 72, 82, 116, 198, 71, 85, 78, 65, 56,
- 199, 67, 82, 65, 65, 104, 198, 67, 82, 66, 66, 108, 198, 67, 82, 67,
- 67, 112, 198, 83, 69, 65, 84, 252, 197, 77, 69, 78, 85, 156, 199, 67,
- 79, 79, 75, 176, 198, 69, 76, 67, 65, 80, 198, 69, 68, 67, 65, 84,
- 198, 68, 68, 67, 65, 88, 198, 65, 76, 84, 82, 8, 198, 76, 79, 75,
- 65, 64, 198, 76, 79, 75, 66, 68, 198, 69, 78, 84, 65, 20, 198, 69,
- 78, 84, 66, 40, 198, 69, 78, 84, 69, 44, 198, 69, 78, 84, 67, 28,
- 198, 69, 78, 84, 68, 48, 198, 69, 78, 84, 72, 52, 198, 87, 87, 65,
- 84, 244, 197, 80, 79, 79, 76, 92, 198, 87, 83, 72, 68, 248, 197, 71,
- 82, 65, 70, 72, 198, 84, 82, 65, 80, 76, 198, 67, 68, 80, 69, 44,
- 199, 68, 76, 79, 75, 12, 198, 72, 79, 76, 69, 4, 198, 68, 82, 89,
- 82, 16, 198, 72, 79, 76, 89, 0, 198, 87, 65, 76, 76, 48, 199, 66,
- 79, 79, 75, 12, 200, 65, 88, 69, 68, 180, 198, 83, 72, 76, 68, 60,
- 199, 66, 67, 78, 89, 236, 197, 76, 73, 68, 67, 232, 197, 76, 73, 68,
- 85, 228, 197, 76, 73, 68, 79, 240, 197, 80, 73, 80, 69, 172, 197, 66,
- 65, 76, 67, 36, 198, 87, 73, 78, 68, 32, 198, 80, 65, 80, 82, 184,
- 199, 85, 87, 84, 65, 164, 197, 85, 87, 84, 66, 164, 197, 83, 84, 65,
- 84, 220, 199, 84, 76, 73, 68, 160, 197, 83, 76, 65, 66, 220, 197, 67,
- 65, 82, 84, 224, 197, 70, 67, 65, 82, 176, 197, 83, 76, 66, 65, 196,
- 197, 83, 76, 66, 66, 200, 197, 83, 76, 66, 67, 208, 197, 83, 76, 66,
- 68, 204, 197, 83, 76, 66, 69, 212, 197, 83, 76, 66, 70, 216, 197, 80,
- 76, 73, 78, 180, 197, 76, 65, 68, 68, 188, 197, 76, 65, 68, 66, 192,
- 197, 71, 85, 77, 65, 184, 197, 83, 81, 69, 69, 140, 197, 84, 65, 80,
- 80, 144, 197, 71, 85, 73, 84, 148, 197, 67, 79, 78, 84, 152, 197, 66,
- 69, 76, 76, 156, 197, 140, 140, 140, 140, 48, 48, 48, 48, 0, 48, 48,
- 0, 157, 0, 178, 0, 81, 0, 94, 0, 92, 199, 179, 0, 200, 0, 81,
- 0, 94, 0, 96, 199, 201, 0, 222, 0, 81, 0, 94, 0, 100, 199, 157,
- 0, 178, 0, 95, 0, 112, 0, 104, 199, 179, 0, 200, 0, 95, 0, 112,
- 0, 108, 199, 201, 0, 222, 0, 95, 0, 112, 0, 112, 199, 157, 0, 178,
- 0, 113, 0, 130, 0, 116, 199, 179, 0, 200, 0, 113, 0, 130, 0, 120,
- 199, 201, 0, 222, 0, 113, 0, 130, 0, 124, 199, 157, 0, 178, 0, 131,
- 0, 145, 0, 128, 199, 179, 0, 222, 0, 131, 0, 145, 0, 132, 199, 220,
- 0, 234, 0, 152, 0, 166, 0, 84, 199, 0, 0, 64, 1, 0, 0, 200,
- 0, 156, 202, 255, 255, 174, 0, 188, 0, 132, 0, 148, 0, 84, 199, 0,
- 0, 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 24, 1, 64, 1, 160,
- 0, 200, 0, 84, 199, 143, 0, 44, 1, 6, 0, 194, 0, 188, 199, 0,
- 0, 143, 0, 6, 0, 194, 0, 196, 199, 0, 0, 64, 1, 0, 0, 200,
- 0, 156, 202, 255, 255, 104, 0, 128, 0, 58, 0, 72, 0, 224, 199, 64,
- 0, 116, 0, 76, 0, 106, 0, 228, 199, 116, 0, 168, 0, 76, 0, 106,
- 0, 232, 199, 64, 0, 116, 0, 106, 0, 136, 0, 236, 199, 116, 0, 168,
- 0, 106, 0, 136, 0, 240, 199, 0, 0, 64, 1, 0, 0, 200, 0, 156,
- 202, 255, 255, 186, 0, 202, 0, 157, 0, 173, 0, 32, 200, 243, 0, 3,
- 1, 131, 0, 147, 0, 28, 200, 12, 1, 28, 1, 168, 0, 184, 0, 84,
- 199, 0, 0, 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 119, 0, 174,
- 0, 82, 0, 128, 0, 56, 200, 70, 0, 137, 0, 62, 0, 111, 0, 132,
- 200, 188, 0, 250, 0, 68, 0, 152, 0, 80, 200, 0, 0, 64, 1, 0,
- 0, 200, 0, 156, 202, 255, 255, 236, 0, 252, 0, 112, 0, 128, 0, 76,
- 200, 188, 0, 250, 0, 64, 0, 152, 0, 92, 200, 62, 0, 152, 0, 56,
- 0, 133, 0, 120, 200, 0, 0, 64, 1, 0, 0, 200, 0, 156, 202, 255,
- 255, 119, 0, 174, 0, 82, 0, 128, 0, 72, 200, 70, 0, 139, 0, 62,
- 0, 111, 0, 84, 200, 236, 0, 252, 0, 112, 0, 128, 0, 76, 200, 0,
- 0, 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 236, 0, 252, 0, 112,
- 0, 128, 0, 76, 200, 188, 0, 250, 0, 64, 0, 152, 0, 88, 200, 62,
- 0, 152, 0, 56, 0, 133, 0, 120, 200, 0, 0, 64, 1, 0, 0, 200,
- 0, 156, 202, 255, 255, 13, 10, 13, 10, 68, 114, 101, 97, 109, 119, 101,
- 98, 32, 104, 97, 115, 32, 97, 110, 32, 69, 114, 114, 111, 114, 58, 13,
- 10, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 97, 108, 108, 111, 99,
- 97, 116, 101, 32, 69, 120, 112, 97, 110, 100, 101, 100, 32, 77, 101, 109,
- 111, 114, 121, 46, 13, 10, 13, 10, 36, 13, 10, 13, 10, 68, 114, 101,
- 97, 109, 119, 101, 98, 32, 104, 97, 115, 32, 97, 110, 32, 69, 114, 114,
- 111, 114, 58, 13, 10, 83, 111, 117, 110, 100, 32, 66, 108, 97, 115, 116,
- 101, 114, 32, 99, 97, 114, 100, 32, 110, 111, 116, 32, 102, 111, 117, 110,
- 100, 32, 97, 116, 32, 97, 100, 100, 114, 101, 115, 115, 32, 50, 50, 48,
- 32, 72, 101, 120, 46, 13, 10, 13, 10, 36, 13, 10, 13, 10, 68, 114,
- 101, 97, 109, 119, 101, 98, 32, 104, 97, 115, 32, 97, 110, 32, 69, 114,
- 114, 111, 114, 58, 13, 10, 79, 117, 116, 32, 111, 102, 32, 66, 97, 115,
- 101, 32, 77, 101, 109, 111, 114, 121, 46, 13, 10, 13, 10, 36, 13, 10,
- 13, 10, 68, 114, 101, 97, 109, 119, 101, 98, 32, 104, 97, 115, 32, 97,
- 110, 32, 69, 114, 114, 111, 114, 58, 13, 10, 77, 101, 109, 111, 114, 121,
- 32, 68, 101, 97, 108, 108, 111, 99, 97, 116, 105, 111, 110, 32, 112, 114,
- 111, 98, 108, 101, 109, 46, 13, 10, 13, 10, 36, 13, 10, 13, 10, 68,
- 114, 101, 97, 109, 119, 101, 98, 32, 104, 97, 115, 32, 97, 110, 32, 69,
- 114, 114, 111, 114, 58, 13, 10, 65, 116, 32, 108, 101, 97, 115, 116, 32,
- 53, 57, 48, 75, 32, 111, 102, 32, 98, 97, 115, 101, 32, 109, 101, 109,
- 111, 114, 121, 32, 105, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 46,
- 13, 10, 13, 10, 36, 13, 10, 13, 10, 68, 114, 101, 97, 109, 119, 101,
- 98, 32, 104, 97, 115, 32, 97, 110, 32, 69, 114, 114, 111, 114, 58, 13,
- 10, 83, 111, 117, 110, 100, 32, 66, 108, 97, 115, 116, 101, 114, 32, 110,
- 111, 116, 32, 102, 111, 117, 110, 100, 32, 111, 110, 32, 105, 110, 116, 101,
- 114, 117, 112, 116, 32, 48, 13, 10, 13, 10, 36, 13, 10, 13, 10, 68,
- 114, 101, 97, 109, 119, 101, 98, 32, 104, 97, 115, 32, 97, 110, 32, 69,
- 114, 114, 111, 114, 58, 13, 10, 85, 110, 97, 98, 108, 101, 32, 116, 111,
- 32, 115, 101, 108, 101, 99, 116, 32, 69, 77, 77, 32, 112, 97, 103, 101,
- 46, 13, 10, 13, 10, 36, 13, 10, 13, 10, 68, 114, 101, 97, 109, 119,
- 101, 98, 32, 104, 97, 115, 32, 97, 110, 32, 69, 114, 114, 111, 114, 58,
- 13, 10, 70, 105, 108, 101, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100,
- 46, 99, 13, 10, 13, 10, 36, 68, 114, 101, 97, 109, 119, 101, 98, 32,
- 108, 111, 111, 107, 115, 32, 102, 111, 114, 32, 83, 111, 117, 110, 100, 32,
- 66, 108, 97, 115, 116, 101, 114, 32, 105, 110, 102, 111, 114, 109, 97, 116,
- 105, 111, 110, 32, 105, 110, 13, 10, 116, 104, 101, 32, 66, 76, 65, 83,
- 84, 69, 82, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 32,
- 118, 97, 114, 105, 97, 98, 108, 101, 32, 40, 105, 110, 32, 121, 111, 117,
- 114, 32, 65, 85, 84, 79, 69, 88, 69, 67, 46, 66, 65, 84, 41, 13,
- 10, 13, 10, 73, 102, 32, 116, 104, 105, 115, 32, 105, 115, 32, 110, 111,
- 116, 32, 102, 111, 117, 110, 100, 32, 116, 104, 101, 110, 32, 73, 82, 81,
- 32, 55, 44, 32, 68, 77, 65, 32, 99, 104, 97, 110, 110, 101, 108, 32,
- 49, 32, 97, 110, 100, 32, 98, 97, 115, 101, 13, 10, 97, 100, 100, 114,
- 101, 115, 115, 32, 50, 50, 48, 104, 32, 97, 114, 101, 32, 97, 115, 115,
- 117, 109, 101, 100, 46, 13, 10, 13, 10, 84, 111, 32, 97, 108, 116, 101,
- 114, 32, 97, 110, 121, 32, 111, 114, 32, 97, 108, 108, 32, 111, 102, 32,
- 116, 104, 101, 115, 101, 32, 115, 101, 116, 116, 105, 110, 103, 115, 32, 121,
- 111, 117, 32, 99, 97, 110, 32, 115, 112, 101, 99, 105, 102, 121, 32, 116,
- 104, 101, 109, 13, 10, 111, 110, 32, 116, 104, 101, 32, 99, 111, 109, 109,
- 97, 110, 100, 32, 108, 105, 110, 101, 46, 32, 70, 111, 114, 32, 101, 120,
- 97, 109, 112, 108, 101, 58, 13, 10, 13, 10, 84, 121, 112, 101, 32, 68,
- 82, 69, 65, 77, 87, 69, 66, 32, 73, 55, 32, 65, 50, 50, 48, 32,
- 68, 49, 32, 116, 111, 32, 114, 117, 110, 32, 68, 114, 101, 97, 109, 119,
- 101, 98, 32, 111, 110, 32, 73, 82, 81, 32, 55, 44, 32, 68, 77, 65,
- 13, 10, 32, 99, 104, 97, 110, 110, 101, 108, 32, 49, 32, 97, 110, 100,
- 32, 98, 97, 115, 101, 32, 97, 100, 100, 114, 101, 115, 115, 32, 50, 50,
- 48, 104, 13, 10, 32, 68, 82, 69, 65, 77, 87, 69, 66, 32, 73, 53,
- 32, 116, 111, 32, 114, 117, 110, 32, 68, 114, 101, 97, 109, 119, 101, 98,
- 32, 111, 110, 32, 73, 82, 81, 32, 53, 32, 97, 110, 100, 13, 10, 32,
- 100, 101, 102, 97, 117, 108, 116, 32, 97, 100, 100, 114, 101, 115, 115, 32,
- 111, 102, 32, 50, 50, 48, 104, 44, 32, 68, 77, 65, 32, 49, 13, 10,
- 13, 10, 36, 13, 10, 13, 10, 84, 114, 121, 32, 116, 104, 101, 32, 68,
- 114, 101, 97, 109, 119, 101, 98, 32, 67, 68, 32, 105, 110, 32, 121, 111,
- 117, 114, 32, 115, 116, 101, 114, 101, 111, 46, 46, 46, 46, 13, 10, 13,
- 10, 13, 10, 36, 129, 0, 184, 0, 82, 0, 128, 0, 188, 200, 80, 0,
- 147, 0, 62, 0, 111, 0, 132, 200, 183, 0, 250, 0, 62, 0, 111, 0,
- 192, 200, 0, 0, 64, 1, 0, 0, 200, 0, 156, 202, 255, 255, 83, 80,
- 69, 69, 67, 72, 82, 50, 52, 67, 48, 48, 48, 53, 46, 82, 65, 87,
- 0, 135, 131, 129, 130, 44, 0, 70, 0, 32, 0, 46, 0, 116, 196, 0,
- 0, 50, 0, 0, 0, 180, 0, 128, 195, 226, 0, 244, 0, 10, 0, 26,
- 0, 44, 200, 226, 0, 244, 0, 26, 0, 40, 0, 48, 200, 240, 0, 4,
- 1, 100, 0, 124, 0, 200, 201, 0, 0, 64, 1, 0, 0, 200, 0, 208,
- 201, 255, 255, 44, 0, 70, 0, 32, 0, 46, 0, 116, 196, 0, 0, 50,
- 0, 0, 0, 180, 0, 128, 195, 18, 1, 36, 1, 10, 0, 26, 0, 44,
- 200, 18, 1, 36, 1, 26, 0, 40, 0, 48, 200, 240, 0, 4, 1, 100,
- 0, 124, 0, 200, 201, 0, 0, 64, 1, 0, 0, 200, 0, 208, 201, 255,
- 255, 0, 33, 10, 15, 255, 0, 22, 10, 15, 255, 0, 22, 0, 15, 255,
- 0, 11, 0, 15, 255, 0, 11, 10, 15, 255, 0, 0, 10, 15, 255, 1,
- 44, 10, 6, 255, 1, 44, 0, 13, 255, 2, 33, 0, 6, 255, 2, 22,
- 0, 5, 255, 2, 22, 10, 16, 255, 2, 11, 10, 16, 255, 3, 44, 0,
- 15, 255, 3, 33, 10, 6, 255, 3, 33, 0, 5, 255, 4, 11, 30, 6,
- 255, 4, 22, 30, 5, 255, 4, 22, 20, 13, 255, 10, 33, 30, 6, 255,
- 10, 22, 30, 6, 255, 9, 22, 10, 6, 255, 9, 22, 20, 16, 255, 9,
- 22, 30, 16, 255, 9, 22, 40, 16, 255, 9, 22, 50, 16, 255, 6, 11,
- 30, 6, 255, 6, 0, 10, 15, 255, 6, 0, 20, 15, 255, 6, 11, 20,
- 15, 255, 6, 22, 20, 15, 255, 7, 11, 20, 6, 255, 7, 0, 20, 6,
- 255, 7, 0, 30, 6, 255, 55, 44, 0, 5, 255, 55, 44, 10, 5, 255,
- 5, 22, 30, 6, 255, 5, 22, 20, 15, 255, 5, 22, 10, 15, 255, 24,
- 22, 0, 15, 255, 24, 33, 0, 15, 255, 24, 44, 0, 15, 255, 24, 33,
- 10, 15, 255, 8, 0, 10, 6, 255, 8, 11, 10, 6, 255, 8, 22, 10,
- 6, 255, 8, 33, 10, 6, 255, 8, 33, 20, 6, 255, 8, 33, 30, 6,
- 255, 8, 33, 40, 6, 255, 8, 22, 40, 6, 255, 8, 11, 40, 6, 255,
- 11, 11, 20, 12, 255, 11, 11, 30, 12, 255, 11, 22, 20, 12, 255, 11,
- 22, 30, 12, 255, 12, 22, 20, 12, 255, 13, 22, 20, 12, 255, 13, 33,
- 20, 12, 255, 14, 44, 20, 12, 255, 14, 33, 0, 12, 255, 14, 33, 10,
- 12, 255, 14, 33, 20, 12, 255, 14, 33, 30, 12, 255, 14, 33, 40, 12,
- 255, 14, 22, 0, 16, 255, 19, 0, 0, 12, 255, 20, 0, 20, 16, 255,
- 20, 0, 30, 16, 255, 20, 11, 30, 16, 255, 20, 0, 40, 16, 255, 20,
- 11, 40, 16, 255, 21, 11, 10, 15, 255, 21, 11, 20, 15, 255, 21, 0,
- 20, 15, 255, 21, 22, 20, 15, 255, 21, 33, 20, 15, 255, 21, 44, 20,
- 15, 255, 21, 44, 10, 15, 255, 22, 22, 10, 16, 255, 22, 22, 20, 16,
- 255, 23, 22, 30, 13, 255, 23, 22, 40, 13, 255, 23, 33, 40, 13, 255,
- 23, 11, 40, 13, 255, 23, 0, 40, 13, 255, 23, 0, 50, 13, 255, 25,
- 11, 40, 16, 255, 25, 11, 50, 16, 255, 25, 0, 50, 16, 255, 27, 11,
- 20, 16, 255, 27, 11, 30, 16, 255, 29, 11, 10, 16, 255, 45, 22, 30,
- 12, 255, 45, 22, 40, 12, 255, 45, 22, 50, 12, 255, 46, 22, 40, 12,
- 255, 46, 11, 50, 12, 255, 46, 22, 50, 12, 255, 46, 33, 50, 12, 255,
- 47, 0, 0, 12, 255, 26, 22, 20, 16, 255, 26, 33, 10, 16, 255, 26,
- 33, 20, 16, 255, 26, 33, 30, 16, 255, 26, 44, 30, 16, 255, 26, 22,
- 30, 16, 255, 26, 11, 30, 16, 255, 26, 11, 20, 16, 255, 26, 0, 20,
- 16, 255, 26, 11, 40, 16, 255, 26, 0, 40, 16, 255, 26, 22, 40, 16,
- 255, 26, 11, 50, 16, 255, 28, 0, 30, 15, 255, 28, 0, 20, 15, 255,
- 28, 0, 40, 15, 255, 28, 11, 30, 15, 255, 28, 11, 20, 15, 255, 28,
- 22, 30, 15, 255, 28, 22, 20, 15, 255, 255, 79, 66, 74, 69, 67, 84,
- 32, 78, 65, 77, 69, 32, 79, 78, 69, 32, 0, 16, 18, 18, 17, 16,
- 16, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
- 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45,
- 0, 8, 0, 81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 0, 0, 13,
- 0, 65, 83, 68, 70, 71, 72, 74, 75, 76, 0, 0, 0, 0, 0, 90,
- 88, 67, 86, 66, 78, 77, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 68, 82, 69, 65, 77, 87, 69, 66, 32, 68,
- 65, 84, 65, 32, 70, 73, 76, 69, 32, 67, 79, 80, 89, 82, 73, 71,
- 72, 84, 32, 49, 57, 57, 50, 32, 67, 82, 69, 65, 84, 73, 86, 69,
- 32, 82, 69, 65, 76, 73, 84, 89, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 48, 0, 5, 255, 33, 10, 255, 255, 255, 0, 1, 6, 2, 255, 3,
- 255, 255, 255, 255, 255, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 49, 0, 1, 255, 44, 10, 255, 255, 255, 0, 7, 2, 255, 255, 255,
- 255, 6, 255, 255, 255, 1, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 50, 0, 2, 255, 33, 0, 255, 255, 255, 0, 1, 0, 255, 255, 1,
- 255, 3, 255, 255, 255, 2, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 51, 0, 5, 255, 33, 10, 255, 255, 255, 0, 2, 2, 0, 2, 4,
- 255, 0, 255, 255, 255, 3, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 52, 0, 23, 255, 11, 30, 255, 255, 255, 0, 1, 4, 0, 5, 255,
- 255, 3, 255, 255, 255, 4, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 53, 0, 5, 255, 22, 30, 255, 255, 255, 0, 1, 2, 0, 4, 255,
- 255, 3, 255, 255, 255, 5, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 54, 0, 5, 255, 11, 30, 255, 255, 255, 0, 1, 0, 0, 1, 2,
- 255, 0, 255, 255, 255, 6, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 55, 0, 255, 255, 0, 20, 255, 255, 255, 0, 2, 2, 255, 255, 255,
- 255, 0, 255, 255, 255, 7, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 56, 0, 8, 255, 0, 10, 255, 255, 255, 0, 1, 2, 255, 255, 255,
- 255, 0, 11, 40, 0, 8, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 57, 0, 9, 255, 22, 10, 255, 255, 255, 0, 4, 6, 255, 255, 255,
- 255, 0, 255, 255, 255, 9, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 48, 0, 10, 255, 33, 30, 255, 255, 255, 0, 2, 0, 255, 255, 2,
- 2, 4, 22, 30, 255, 10, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 49, 0, 11, 255, 11, 20, 255, 255, 255, 0, 0, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 11, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 50, 0, 12, 255, 22, 20, 255, 255, 255, 0, 1, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 12, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 51, 0, 12, 255, 22, 20, 255, 255, 255, 0, 1, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 13, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 52, 0, 14, 255, 44, 20, 255, 255, 255, 0, 0, 6, 255, 255, 255,
- 255, 255, 255, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 57, 0, 19, 255, 0, 0, 255, 255, 255, 0, 0, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 19, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 48, 0, 22, 255, 0, 20, 255, 255, 255, 0, 1, 4, 2, 15, 255,
- 255, 255, 255, 255, 255, 20, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 49, 0, 5, 255, 11, 10, 255, 255, 255, 0, 1, 4, 2, 15, 1,
- 255, 255, 255, 255, 255, 21, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 50, 0, 22, 255, 22, 10, 255, 255, 255, 0, 0, 4, 255, 255, 1,
- 255, 255, 255, 255, 255, 22, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 51, 0, 23, 255, 22, 30, 255, 255, 255, 0, 1, 4, 2, 15, 3,
- 255, 255, 255, 255, 255, 23, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 52, 0, 5, 255, 44, 0, 255, 255, 255, 0, 1, 6, 2, 15, 255,
- 255, 255, 255, 255, 255, 24, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 53, 0, 22, 255, 11, 40, 255, 255, 255, 0, 1, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 25, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 54, 0, 9, 255, 22, 20, 255, 255, 255, 0, 4, 2, 255, 255, 255,
- 255, 255, 255, 255, 255, 26, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 55, 0, 22, 255, 11, 20, 255, 255, 255, 0, 0, 6, 255, 255, 255,
- 255, 255, 255, 255, 255, 27, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 56, 0, 5, 255, 11, 30, 255, 255, 255, 0, 0, 0, 255, 255, 2,
- 255, 255, 255, 255, 255, 28, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 57, 0, 22, 255, 11, 10, 255, 255, 255, 0, 0, 2, 255, 255, 255,
- 255, 255, 255, 255, 255, 29, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 53, 0, 5, 255, 22, 10, 255, 255, 255, 0, 1, 4, 1, 15, 255,
- 255, 255, 255, 255, 255, 5, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 52, 0, 23, 255, 22, 20, 255, 255, 255, 0, 1, 4, 2, 15, 255,
- 255, 255, 255, 255, 255, 4, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 48, 0, 10, 255, 22, 30, 255, 255, 255, 0, 3, 6, 255, 255, 255,
- 255, 255, 255, 255, 255, 10, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 50, 0, 12, 255, 22, 20, 255, 255, 255, 0, 0, 2, 255, 255, 255,
- 255, 255, 255, 255, 255, 12, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 51, 0, 5, 255, 44, 0, 255, 255, 255, 0, 1, 6, 2, 255, 4,
- 255, 255, 255, 255, 255, 3, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 52, 0, 5, 255, 22, 0, 255, 255, 255, 0, 3, 6, 0, 255, 255,
- 255, 255, 33, 0, 3, 24, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 50, 0, 22, 255, 22, 20, 255, 255, 255, 0, 1, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 22, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 50, 0, 22, 255, 22, 20, 255, 255, 255, 0, 0, 2, 255, 255, 255,
- 255, 255, 255, 255, 255, 22, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 49, 0, 11, 255, 22, 30, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 11, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 56, 0, 5, 255, 11, 20, 255, 255, 255, 0, 0, 6, 255, 255, 2,
- 255, 255, 255, 255, 255, 28, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 49, 0, 5, 255, 11, 10, 255, 255, 255, 0, 1, 4, 2, 15, 1,
- 255, 255, 255, 255, 255, 21, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 50, 54, 0, 9, 255, 0, 40, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 26, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 49, 57, 0, 19, 255, 0, 0, 255, 255, 255, 0, 2, 2, 255, 255, 255,
- 255, 255, 255, 255, 255, 19, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 56, 0, 8, 255, 11, 40, 255, 255, 255, 0, 0, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 8, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 48, 49, 0, 1, 255, 44, 10, 255, 255, 255, 0, 3, 6, 255, 255, 255,
- 255, 255, 255, 255, 255, 1, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 52, 53, 0, 35, 255, 22, 30, 255, 255, 255, 0, 0, 6, 255, 255, 255,
- 255, 255, 255, 255, 255, 45, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 52, 54, 0, 35, 255, 22, 40, 255, 255, 255, 0, 0, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 46, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 52, 55, 0, 35, 255, 0, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 47, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 52, 53, 0, 35, 255, 22, 30, 255, 255, 255, 0, 4, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 45, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 52, 54, 0, 35, 255, 22, 50, 255, 255, 255, 0, 0, 4, 255, 255, 255,
- 255, 255, 255, 255, 255, 46, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 53, 48, 0, 35, 255, 22, 30, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 50, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 53, 49, 0, 35, 255, 11, 30, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 51, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 53, 50, 0, 35, 255, 22, 30, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 52, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 53, 51, 0, 35, 255, 33, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 53, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 53, 52, 0, 35, 255, 0, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 54, 68, 82, 69, 65, 77, 87, 69, 66, 46, 82,
- 53, 53, 0, 14, 255, 44, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255,
- 255, 255, 255, 255, 255, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 0, 3, 2, 4, 1, 10, 9, 8, 6,
- 11, 4, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 68, 82, 69, 65, 77, 87, 69, 66, 46, 68, 48,
- 48, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 68, 48, 49, 0, 68,
- 82, 69, 65, 77, 87, 69, 66, 46, 68, 48, 50, 0, 68, 82, 69, 65,
- 77, 87, 69, 66, 46, 68, 48, 51, 0, 68, 82, 69, 65, 77, 87, 69,
- 66, 46, 68, 48, 52, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 68,
- 48, 53, 0, 68, 82, 69, 65, 77, 87, 69, 66, 46, 68, 48, 54, 0,
- 68, 82, 69, 65, 77, 87, 69, 66, 46, 68, 69, 77, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
-data.assign(src, src + sizeof(src));
- };
-
-
-void __start(Context &context) { dreamweb(context); }
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x13, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0xb6,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37,
+ 0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21,
+ 0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c,
+ 0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c,
+ 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16,
+ 0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b,
+ 0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b,
+ 0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b,
+ 0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b,
+ 0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16,
+ 0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b,
+ 0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16,
+ 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16,
+ 0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16,
+ 0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16,
+ 0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00,
+ 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b,
+ 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00,
+ 0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16,
+ 0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16,
+ 0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21,
+ 0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16,
+ 0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16,
+ 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c,
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16,
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16,
+ 0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b,
+ 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16,
+ 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x7c,
+ 0xc0, 0x80, 0xc0, 0x1c, 0xc0, 0x20, 0xc0, 0x00, 0xc1, 0x10, 0xc0, 0x18, 0xc0, 0xf4, 0xc0, 0x0c,
+ 0xc0, 0x24, 0xc0, 0x28, 0xc0, 0x2c, 0xc0, 0x30, 0xc0, 0x54, 0xc0, 0x78, 0xc0, 0x50, 0xc0, 0x74,
+ 0xc0, 0x34, 0xc0, 0x38, 0xc0, 0x40, 0xc0, 0x44, 0xc0, 0x48, 0xc0, 0x3c, 0xc0, 0x14, 0xc0, 0x88,
+ 0xc0, 0x8c, 0xc0, 0x90, 0xc0, 0x70, 0xc0, 0xfc, 0xc0, 0x6c, 0xc0, 0x58, 0xc0, 0x68, 0xc0, 0x04,
+ 0xc1, 0x64, 0xc0, 0x60, 0xc0, 0x5c, 0xc0, 0x94, 0xc0, 0x04, 0xc0, 0xa4, 0xc0, 0x9c, 0xc0, 0xa0,
+ 0xc0, 0xa8, 0xc0, 0xac, 0xc0, 0x98, 0xc0, 0xb0, 0xc0, 0xb4, 0xc0, 0xc8, 0xc0, 0xcc, 0xc0, 0xd4,
+ 0xc0, 0xdc, 0xc0, 0xd8, 0xc0, 0x00, 0xc0, 0x08, 0xc0, 0x84, 0xc0, 0x84, 0xc0, 0x84, 0xc0, 0x84,
+ 0xc0, 0x00, 0x3c, 0x21, 0x47, 0x0b, 0x52, 0x16, 0x5d, 0x01, 0x2c, 0x0a, 0x10, 0x04, 0x0b, 0x1e,
+ 0x0e, 0x04, 0x16, 0x1e, 0x0e, 0x03, 0x21, 0x0a, 0x0e, 0x0a, 0x21, 0x1e, 0x0e, 0x0a, 0x16, 0x1e,
+ 0x18, 0x09, 0x16, 0x0a, 0x0e, 0x02, 0x21, 0x00, 0x0e, 0x02, 0x16, 0x00, 0x0e, 0x06, 0x0b, 0x1e,
+ 0x0e, 0x07, 0x0b, 0x14, 0x12, 0x07, 0x00, 0x14, 0x12, 0x07, 0x00, 0x1e, 0x12, 0x37, 0x2c, 0x00,
+ 0x0e, 0x05, 0x16, 0x1e, 0x0e, 0x08, 0x00, 0x0a, 0x12, 0x08, 0x0b, 0x0a, 0x12, 0x08, 0x16, 0x0a,
+ 0x12, 0x08, 0x21, 0x0a, 0x12, 0x08, 0x21, 0x14, 0x12, 0x08, 0x21, 0x1e, 0x12, 0x08, 0x21, 0x28,
+ 0x12, 0x08, 0x16, 0x28, 0x12, 0x08, 0x0b, 0x28, 0x12, 0x15, 0x2c, 0x14, 0x12, 0xff, 0x2f, 0x05,
+ 0x30, 0x05, 0x34, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x47, 0x05, 0x2f, 0x05, 0x4e, 0x05,
+ 0x5e, 0x05, 0x65, 0x05, 0x69, 0x05, 0x6d, 0x05, 0x71, 0x05, 0x7e, 0x05, 0x2f, 0x05, 0x2f, 0x05,
+ 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0xa0, 0x05, 0x2f, 0x05, 0xb6, 0x05, 0xd5, 0x05, 0x2f, 0x05,
+ 0xe2, 0x05, 0xf8, 0x05, 0x0e, 0x06, 0x27, 0x06, 0x3a, 0x06, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05,
+ 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05,
+ 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x4a, 0x06, 0x51, 0x06, 0x76, 0x06, 0x2f, 0x05,
+ 0x2f, 0x05, 0x2f, 0x05, 0x2f, 0x05, 0x83, 0x06, 0x87, 0x06, 0x2f, 0x05, 0x8e, 0x06, 0xff, 0x0f,
+ 0x01, 0x01, 0xff, 0x0c, 0x05, 0x00, 0x0d, 0x15, 0x00, 0x0f, 0x23, 0x00, 0x11, 0x32, 0x00, 0x12,
+ 0x67, 0x00, 0x13, 0x6c, 0x00, 0xff, 0x12, 0x13, 0x00, 0x13, 0x17, 0x00, 0xff, 0x0c, 0x33, 0x00,
+ 0x0d, 0x35, 0x00, 0x0e, 0x0e, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x4e, 0x00, 0xff, 0x0c, 0x77, 0x00,
+ 0x0c, 0x91, 0x00, 0xff, 0x0d, 0x10, 0x00, 0xff, 0x0d, 0x14, 0x00, 0xff, 0x0e, 0x10, 0x00, 0xff,
+ 0x0f, 0x04, 0x00, 0x10, 0x08, 0x00, 0x11, 0x86, 0x00, 0x12, 0x99, 0x00, 0xff, 0x0d, 0x6c, 0x00,
+ 0x0f, 0x46, 0x01, 0x0f, 0x4b, 0x01, 0x0f, 0x50, 0x01, 0x0f, 0x56, 0x01, 0x0f, 0x5c, 0x01, 0x0f,
+ 0x62, 0x01, 0x12, 0x9f, 0x00, 0x12, 0xb2, 0x00, 0x93, 0xd9, 0x00, 0x54, 0xe4, 0x00, 0xff, 0x0d,
+ 0x14, 0x00, 0x0d, 0x15, 0x00, 0x0f, 0x22, 0x00, 0x0d, 0x34, 0x00, 0x0d, 0x37, 0x00, 0x19, 0x39,
+ 0x00, 0x15, 0x49, 0x00, 0xff, 0x0d, 0xc4, 0x00, 0x0d, 0xea, 0x00, 0x0d, 0x9c, 0x00, 0x0e, 0x81,
+ 0x00, 0x0d, 0x7c, 0x00, 0x0f, 0xa2, 0x00, 0x0f, 0xc8, 0x00, 0x0f, 0xef, 0x00, 0x11, 0x63, 0x00,
+ 0x0c, 0x34, 0x00, 0xff, 0x0f, 0x38, 0x00, 0x10, 0x40, 0x00, 0x13, 0x16, 0x00, 0x14, 0x21, 0x00,
+ 0xff, 0x14, 0x0b, 0x00, 0x14, 0x0f, 0x00, 0x0f, 0x1c, 0x00, 0x0d, 0x50, 0x00, 0x15, 0x52, 0x00,
+ 0x93, 0x57, 0x00, 0x57, 0x80, 0x00, 0xff, 0x0c, 0x0d, 0x00, 0x0e, 0x27, 0x00, 0x0c, 0x43, 0x00,
+ 0x0c, 0x4b, 0x00, 0x0c, 0x53, 0x00, 0x0c, 0x5b, 0x00, 0x0f, 0x66, 0x00, 0xff, 0x16, 0x24, 0x00,
+ 0x0d, 0x7d, 0x00, 0x12, 0x58, 0x00, 0x0f, 0x6b, 0x00, 0x0e, 0x7f, 0x00, 0x0e, 0x9a, 0x00, 0x93,
+ 0xaa, 0x00, 0x57, 0xe8, 0x00, 0xff, 0x15, 0x10, 0x00, 0x15, 0x48, 0x00, 0x15, 0xcd, 0x00, 0x16,
+ 0x3f, 0x00, 0x97, 0x63, 0x00, 0x58, 0x9e, 0x00, 0xff, 0x0d, 0x15, 0x00, 0x0e, 0x18, 0x00, 0x93,
+ 0x32, 0x00, 0x57, 0x4b, 0x00, 0x18, 0x80, 0x00, 0xff, 0x53, 0x2e, 0x00, 0x10, 0xa7, 0x00, 0xff,
+ 0x10, 0x13, 0x00, 0x0e, 0x24, 0x00, 0x10, 0x32, 0x00, 0x0e, 0x41, 0x00, 0x10, 0x51, 0x00, 0x0e,
+ 0x60, 0x00, 0x10, 0x72, 0x00, 0x0e, 0x81, 0x00, 0x10, 0x93, 0x00, 0x0e, 0xa2, 0x00, 0x10, 0xb1,
+ 0x00, 0x0e, 0xbf, 0x00, 0xff, 0x0d, 0x30, 0x00, 0x0e, 0x29, 0x00, 0x0f, 0x4e, 0x00, 0x10, 0x5c,
+ 0x00, 0xff, 0x10, 0x73, 0x00, 0xff, 0x15, 0x67, 0x00, 0x14, 0xc7, 0x00, 0xff, 0x11, 0x35, 0x00,
+ 0x11, 0x36, 0x00, 0x11, 0x37, 0x00, 0x11, 0x38, 0x00, 0x11, 0x39, 0x00, 0x11, 0x3a, 0x00, 0x11,
+ 0x3b, 0x00, 0x11, 0x3d, 0x00, 0x11, 0x3f, 0x00, 0x11, 0x40, 0x00, 0x11, 0x41, 0x00, 0xff, 0x9c,
+ 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c,
+ 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d,
+ 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c,
+ 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c,
+ 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d,
+ 0x99, 0x9f, 0x9e, 0x9c, 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9e, 0x9c,
+ 0x9a, 0x9f, 0x9a, 0x9c, 0x9e, 0xa0, 0x9b, 0x9d, 0x99, 0x9f, 0x9c, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x53, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,
+ 0x2e, 0x53, 0x30, 0x32, 0x00, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54,
+ 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x30, 0x00, 0x44, 0x52,
+ 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,
+ 0x2e, 0x56, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39,
+ 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x30, 0x00, 0x44,
+ 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41,
+ 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
+ 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47,
+ 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x37, 0x00,
+ 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45,
+ 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57,
+ 0x45, 0x42, 0x2e, 0x47, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e,
+ 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x30, 0x31,
+ 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x30, 0x32, 0x00, 0x44, 0x52,
+ 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x31, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x54, 0x31, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,
+ 0x2e, 0x54, 0x31, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x31,
+ 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x32, 0x30, 0x00, 0x44,
+ 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x32, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41,
+ 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x32, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
+ 0x42, 0x2e, 0x54, 0x32, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54,
+ 0x32, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x30, 0x00,
+ 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45,
+ 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57,
+ 0x45, 0x42, 0x2e, 0x54, 0x38, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e,
+ 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x33,
+ 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x34, 0x00, 0x44, 0x52,
+ 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,
+ 0x2e, 0x47, 0x31, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31,
+ 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x32, 0x00, 0x44,
+ 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41,
+ 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
+ 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49,
+ 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x32, 0x00,
+ 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45,
+ 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57,
+ 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e,
+ 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x37,
+ 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, 0x4c, 0x00, 0x11, 0x01,
+ 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0x04, 0x01, 0x2c, 0x01, 0x00, 0x00, 0x2c, 0x00,
+ 0x84, 0xc5, 0xd2, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x2c, 0x00, 0xe0, 0xc3, 0x90, 0x00, 0xb0, 0x00,
+ 0x40, 0x00, 0x60, 0x00, 0x84, 0xc3, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0xc8, 0x00, 0x88, 0xc3,
+ 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
+ 0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0xff, 0x00, 0x26, 0x01, 0x00, 0x00, 0x18, 0x00, 0xcc, 0xc3,
+ 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00, 0x00, 0x01, 0x9e, 0x00,
+ 0xca, 0x00, 0xe4, 0xc3, 0x50, 0x00, 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0x9c, 0xc3, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
+ 0xc6, 0x00, 0x48, 0xc3, 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00,
+ 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0xc0, 0xc6, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
+ 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0xf0, 0x00,
+ 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x98, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
+ 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
+ 0x2c, 0x00, 0xcc, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xd0, 0xc4, 0x18, 0x01,
+ 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb4, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00,
+ 0xd4, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00, 0x40, 0x01,
+ 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
+ 0x50, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x4c, 0x4f, 0x47, 0x4f,
+ 0x4e, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20,
+ 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44,
+ 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45,
+ 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x00, 0x00, 0x00, 0x53,
+ 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20,
+ 0x00, 0xff, 0xff, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x00, 0x22, 0x20, 0x00, 0x4e,
+ 0x45, 0x54, 0x57, 0xec, 0xc4, 0x45, 0x4c, 0x56, 0x41, 0x90, 0xc6, 0x45, 0x4c, 0x56, 0x42, 0xa0,
+ 0xc6, 0x45, 0x4c, 0x56, 0x43, 0x98, 0xc6, 0x45, 0x4c, 0x56, 0x45, 0x9c, 0xc6, 0x45, 0x4c, 0x56,
+ 0x46, 0xa4, 0xc6, 0x43, 0x47, 0x41, 0x54, 0x34, 0xc7, 0x52, 0x45, 0x4d, 0x4f, 0xac, 0xc6, 0x42,
+ 0x55, 0x54, 0x41, 0x40, 0xc7, 0x43, 0x42, 0x4f, 0x58, 0x48, 0xc7, 0x4c, 0x49, 0x54, 0x45, 0x60,
+ 0xc6, 0x50, 0x4c, 0x41, 0x54, 0x44, 0xc7, 0x4c, 0x49, 0x46, 0x54, 0x80, 0xc6, 0x57, 0x49, 0x52,
+ 0x45, 0x88, 0xc6, 0x48, 0x4e, 0x44, 0x4c, 0x8c, 0xc6, 0x48, 0x41, 0x43, 0x48, 0x84, 0xc6, 0x44,
+ 0x4f, 0x4f, 0x52, 0xb8, 0xc6, 0x43, 0x53, 0x48, 0x52, 0x74, 0xc6, 0x47, 0x55, 0x4e, 0x41, 0x38,
+ 0xc7, 0x43, 0x52, 0x41, 0x41, 0x68, 0xc6, 0x43, 0x52, 0x42, 0x42, 0x6c, 0xc6, 0x43, 0x52, 0x43,
+ 0x43, 0x70, 0xc6, 0x53, 0x45, 0x41, 0x54, 0xfc, 0xc5, 0x4d, 0x45, 0x4e, 0x55, 0x9c, 0xc7, 0x43,
+ 0x4f, 0x4f, 0x4b, 0xb0, 0xc6, 0x45, 0x4c, 0x43, 0x41, 0x50, 0xc6, 0x45, 0x44, 0x43, 0x41, 0x54,
+ 0xc6, 0x44, 0x44, 0x43, 0x41, 0x58, 0xc6, 0x41, 0x4c, 0x54, 0x52, 0x08, 0xc6, 0x4c, 0x4f, 0x4b,
+ 0x41, 0x40, 0xc6, 0x4c, 0x4f, 0x4b, 0x42, 0x44, 0xc6, 0x45, 0x4e, 0x54, 0x41, 0x14, 0xc6, 0x45,
+ 0x4e, 0x54, 0x42, 0x28, 0xc6, 0x45, 0x4e, 0x54, 0x45, 0x2c, 0xc6, 0x45, 0x4e, 0x54, 0x43, 0x1c,
+ 0xc6, 0x45, 0x4e, 0x54, 0x44, 0x30, 0xc6, 0x45, 0x4e, 0x54, 0x48, 0x34, 0xc6, 0x57, 0x57, 0x41,
+ 0x54, 0xf4, 0xc5, 0x50, 0x4f, 0x4f, 0x4c, 0x5c, 0xc6, 0x57, 0x53, 0x48, 0x44, 0xf8, 0xc5, 0x47,
+ 0x52, 0x41, 0x46, 0x48, 0xc6, 0x54, 0x52, 0x41, 0x50, 0x4c, 0xc6, 0x43, 0x44, 0x50, 0x45, 0x2c,
+ 0xc7, 0x44, 0x4c, 0x4f, 0x4b, 0x0c, 0xc6, 0x48, 0x4f, 0x4c, 0x45, 0x04, 0xc6, 0x44, 0x52, 0x59,
+ 0x52, 0x10, 0xc6, 0x48, 0x4f, 0x4c, 0x59, 0x00, 0xc6, 0x57, 0x41, 0x4c, 0x4c, 0x30, 0xc7, 0x42,
+ 0x4f, 0x4f, 0x4b, 0x0c, 0xc8, 0x41, 0x58, 0x45, 0x44, 0xb4, 0xc6, 0x53, 0x48, 0x4c, 0x44, 0x3c,
+ 0xc7, 0x42, 0x43, 0x4e, 0x59, 0xec, 0xc5, 0x4c, 0x49, 0x44, 0x43, 0xe8, 0xc5, 0x4c, 0x49, 0x44,
+ 0x55, 0xe4, 0xc5, 0x4c, 0x49, 0x44, 0x4f, 0xf0, 0xc5, 0x50, 0x49, 0x50, 0x45, 0xac, 0xc5, 0x42,
+ 0x41, 0x4c, 0x43, 0x24, 0xc6, 0x57, 0x49, 0x4e, 0x44, 0x20, 0xc6, 0x50, 0x41, 0x50, 0x52, 0xb8,
+ 0xc7, 0x55, 0x57, 0x54, 0x41, 0xa4, 0xc5, 0x55, 0x57, 0x54, 0x42, 0xa4, 0xc5, 0x53, 0x54, 0x41,
+ 0x54, 0xdc, 0xc7, 0x54, 0x4c, 0x49, 0x44, 0xa0, 0xc5, 0x53, 0x4c, 0x41, 0x42, 0xdc, 0xc5, 0x43,
+ 0x41, 0x52, 0x54, 0xe0, 0xc5, 0x46, 0x43, 0x41, 0x52, 0xb0, 0xc5, 0x53, 0x4c, 0x42, 0x41, 0xc4,
+ 0xc5, 0x53, 0x4c, 0x42, 0x42, 0xc8, 0xc5, 0x53, 0x4c, 0x42, 0x43, 0xd0, 0xc5, 0x53, 0x4c, 0x42,
+ 0x44, 0xcc, 0xc5, 0x53, 0x4c, 0x42, 0x45, 0xd4, 0xc5, 0x53, 0x4c, 0x42, 0x46, 0xd8, 0xc5, 0x50,
+ 0x4c, 0x49, 0x4e, 0xb4, 0xc5, 0x4c, 0x41, 0x44, 0x44, 0xbc, 0xc5, 0x4c, 0x41, 0x44, 0x42, 0xc0,
+ 0xc5, 0x47, 0x55, 0x4d, 0x41, 0xb8, 0xc5, 0x53, 0x51, 0x45, 0x45, 0x8c, 0xc5, 0x54, 0x41, 0x50,
+ 0x50, 0x90, 0xc5, 0x47, 0x55, 0x49, 0x54, 0x94, 0xc5, 0x43, 0x4f, 0x4e, 0x54, 0x98, 0xc5, 0x42,
+ 0x45, 0x4c, 0x4c, 0x9c, 0xc5, 0x8c, 0x8c, 0x8c, 0x8c, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30,
+ 0x00, 0x9d, 0x00, 0xb2, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x5c, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x51,
+ 0x00, 0x5e, 0x00, 0x60, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x64, 0xc7, 0x9d,
+ 0x00, 0xb2, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x68, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x5f, 0x00, 0x70,
+ 0x00, 0x6c, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x70, 0xc7, 0x9d, 0x00, 0xb2,
+ 0x00, 0x71, 0x00, 0x82, 0x00, 0x74, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x71, 0x00, 0x82, 0x00, 0x78,
+ 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, 0x82, 0x00, 0x7c, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83,
+ 0x00, 0x91, 0x00, 0x80, 0xc7, 0xb3, 0x00, 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x84, 0xc7, 0xdc,
+ 0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, 0x54, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
+ 0x00, 0x9c, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x54, 0xc7, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
+ 0x00, 0xc8, 0x00, 0x54, 0xc7, 0x8f, 0x00, 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xbc, 0xc7, 0x00,
+ 0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, 0xc4, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
+ 0x00, 0x9c, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xe0, 0xc7, 0x40,
+ 0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe4, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a,
+ 0x00, 0xe8, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, 0x74, 0x00, 0xa8,
+ 0x00, 0x6a, 0x00, 0x88, 0x00, 0xf0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c,
+ 0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x20, 0xc8, 0xf3, 0x00, 0x03,
+ 0x01, 0x83, 0x00, 0x93, 0x00, 0x1c, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x54,
+ 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
+ 0x00, 0x52, 0x00, 0x80, 0x00, 0x38, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84,
+ 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x50, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00,
+ 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c,
+ 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x5c, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38,
+ 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff,
+ 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e,
+ 0x00, 0x6f, 0x00, 0x54, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c, 0xc8, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
+ 0x00, 0x80, 0x00, 0x4c, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x58, 0xc8, 0x3e,
+ 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
+ 0x00, 0x9c, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
+ 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
+ 0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
+ 0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x72, 0x79, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65,
+ 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72,
+ 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74,
+ 0x65, 0x72, 0x20, 0x63, 0x61, 0x72, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
+ 0x64, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30,
+ 0x20, 0x48, 0x65, 0x78, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72,
+ 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72,
+ 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x4f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x61, 0x73,
+ 0x65, 0x20, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a,
+ 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61,
+ 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
+ 0x20, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72,
+ 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44,
+ 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x41, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20,
+ 0x35, 0x39, 0x30, 0x4b, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e,
+ 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
+ 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
+ 0x0a, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x6e,
+ 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x75, 0x70, 0x74, 0x20, 0x30, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44,
+ 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f,
+ 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x45, 0x4d, 0x4d, 0x20, 0x70, 0x61, 0x67, 0x65,
+ 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77,
+ 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a,
+ 0x0d, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64,
+ 0x2e, 0x63, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20,
+ 0x6c, 0x6f, 0x6f, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20,
+ 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x0d, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x42, 0x4c, 0x41, 0x53,
+ 0x54, 0x45, 0x52, 0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20,
+ 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75,
+ 0x72, 0x20, 0x41, 0x55, 0x54, 0x4f, 0x45, 0x58, 0x45, 0x43, 0x2e, 0x42, 0x41, 0x54, 0x29, 0x0d,
+ 0x0a, 0x0d, 0x0a, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f,
+ 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x52, 0x51,
+ 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20,
+ 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x61, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x73, 0x73,
+ 0x75, 0x6d, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x6f, 0x20, 0x61, 0x6c, 0x74, 0x65,
+ 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20,
+ 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x79,
+ 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x74,
+ 0x68, 0x65, 0x6d, 0x0d, 0x0a, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78,
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x20, 0x44,
+ 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x20, 0x49, 0x37, 0x20, 0x41, 0x32, 0x32, 0x30, 0x20,
+ 0x44, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77,
+ 0x65, 0x62, 0x20, 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41,
+ 0x0d, 0x0a, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x31, 0x20, 0x61, 0x6e, 0x64,
+ 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32,
+ 0x30, 0x68, 0x0d, 0x0a, 0x20, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x20, 0x49, 0x35,
+ 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62,
+ 0x20, 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x35, 0x20, 0x61, 0x6e, 0x64, 0x0d, 0x0a, 0x20,
+ 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20,
+ 0x6f, 0x66, 0x20, 0x32, 0x32, 0x30, 0x68, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x31, 0x0d, 0x0a,
+ 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44,
+ 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f,
+ 0x75, 0x72, 0x20, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d,
+ 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xbc, 0xc8, 0x50, 0x00,
+ 0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00,
+ 0xc0, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x53, 0x50,
+ 0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57,
+ 0x00, 0x87, 0x83, 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00,
+ 0x00, 0x32, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a,
+ 0x00, 0x2c, 0xc8, 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04,
+ 0x01, 0x64, 0x00, 0x7c, 0x00, 0xc8, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd0,
+ 0xc9, 0xff, 0xff, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00, 0x00, 0x32,
+ 0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x2c,
+ 0xc8, 0x12, 0x01, 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64,
+ 0x00, 0x7c, 0x00, 0xc8, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd0, 0xc9, 0xff,
+ 0xff, 0x00, 0x21, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff,
+ 0x00, 0x0b, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01,
+ 0x2c, 0x0a, 0x06, 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16,
+ 0x00, 0x05, 0xff, 0x02, 0x16, 0x0a, 0x10, 0xff, 0x02, 0x0b, 0x0a, 0x10, 0xff, 0x03, 0x2c, 0x00,
+ 0x0f, 0xff, 0x03, 0x21, 0x0a, 0x06, 0xff, 0x03, 0x21, 0x00, 0x05, 0xff, 0x04, 0x0b, 0x1e, 0x06,
+ 0xff, 0x04, 0x16, 0x1e, 0x05, 0xff, 0x04, 0x16, 0x14, 0x0d, 0xff, 0x0a, 0x21, 0x1e, 0x06, 0xff,
+ 0x0a, 0x16, 0x1e, 0x06, 0xff, 0x09, 0x16, 0x0a, 0x06, 0xff, 0x09, 0x16, 0x14, 0x10, 0xff, 0x09,
+ 0x16, 0x1e, 0x10, 0xff, 0x09, 0x16, 0x28, 0x10, 0xff, 0x09, 0x16, 0x32, 0x10, 0xff, 0x06, 0x0b,
+ 0x1e, 0x06, 0xff, 0x06, 0x00, 0x0a, 0x0f, 0xff, 0x06, 0x00, 0x14, 0x0f, 0xff, 0x06, 0x0b, 0x14,
+ 0x0f, 0xff, 0x06, 0x16, 0x14, 0x0f, 0xff, 0x07, 0x0b, 0x14, 0x06, 0xff, 0x07, 0x00, 0x14, 0x06,
+ 0xff, 0x07, 0x00, 0x1e, 0x06, 0xff, 0x37, 0x2c, 0x00, 0x05, 0xff, 0x37, 0x2c, 0x0a, 0x05, 0xff,
+ 0x05, 0x16, 0x1e, 0x06, 0xff, 0x05, 0x16, 0x14, 0x0f, 0xff, 0x05, 0x16, 0x0a, 0x0f, 0xff, 0x18,
+ 0x16, 0x00, 0x0f, 0xff, 0x18, 0x21, 0x00, 0x0f, 0xff, 0x18, 0x2c, 0x00, 0x0f, 0xff, 0x18, 0x21,
+ 0x0a, 0x0f, 0xff, 0x08, 0x00, 0x0a, 0x06, 0xff, 0x08, 0x0b, 0x0a, 0x06, 0xff, 0x08, 0x16, 0x0a,
+ 0x06, 0xff, 0x08, 0x21, 0x0a, 0x06, 0xff, 0x08, 0x21, 0x14, 0x06, 0xff, 0x08, 0x21, 0x1e, 0x06,
+ 0xff, 0x08, 0x21, 0x28, 0x06, 0xff, 0x08, 0x16, 0x28, 0x06, 0xff, 0x08, 0x0b, 0x28, 0x06, 0xff,
+ 0x0b, 0x0b, 0x14, 0x0c, 0xff, 0x0b, 0x0b, 0x1e, 0x0c, 0xff, 0x0b, 0x16, 0x14, 0x0c, 0xff, 0x0b,
+ 0x16, 0x1e, 0x0c, 0xff, 0x0c, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x21,
+ 0x14, 0x0c, 0xff, 0x0e, 0x2c, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x00, 0x0c, 0xff, 0x0e, 0x21, 0x0a,
+ 0x0c, 0xff, 0x0e, 0x21, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x1e, 0x0c, 0xff, 0x0e, 0x21, 0x28, 0x0c,
+ 0xff, 0x0e, 0x16, 0x00, 0x10, 0xff, 0x13, 0x00, 0x00, 0x0c, 0xff, 0x14, 0x00, 0x14, 0x10, 0xff,
+ 0x14, 0x00, 0x1e, 0x10, 0xff, 0x14, 0x0b, 0x1e, 0x10, 0xff, 0x14, 0x00, 0x28, 0x10, 0xff, 0x14,
+ 0x0b, 0x28, 0x10, 0xff, 0x15, 0x0b, 0x0a, 0x0f, 0xff, 0x15, 0x0b, 0x14, 0x0f, 0xff, 0x15, 0x00,
+ 0x14, 0x0f, 0xff, 0x15, 0x16, 0x14, 0x0f, 0xff, 0x15, 0x21, 0x14, 0x0f, 0xff, 0x15, 0x2c, 0x14,
+ 0x0f, 0xff, 0x15, 0x2c, 0x0a, 0x0f, 0xff, 0x16, 0x16, 0x0a, 0x10, 0xff, 0x16, 0x16, 0x14, 0x10,
+ 0xff, 0x17, 0x16, 0x1e, 0x0d, 0xff, 0x17, 0x16, 0x28, 0x0d, 0xff, 0x17, 0x21, 0x28, 0x0d, 0xff,
+ 0x17, 0x0b, 0x28, 0x0d, 0xff, 0x17, 0x00, 0x28, 0x0d, 0xff, 0x17, 0x00, 0x32, 0x0d, 0xff, 0x19,
+ 0x0b, 0x28, 0x10, 0xff, 0x19, 0x0b, 0x32, 0x10, 0xff, 0x19, 0x00, 0x32, 0x10, 0xff, 0x1b, 0x0b,
+ 0x14, 0x10, 0xff, 0x1b, 0x0b, 0x1e, 0x10, 0xff, 0x1d, 0x0b, 0x0a, 0x10, 0xff, 0x2d, 0x16, 0x1e,
+ 0x0c, 0xff, 0x2d, 0x16, 0x28, 0x0c, 0xff, 0x2d, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x28, 0x0c,
+ 0xff, 0x2e, 0x0b, 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x21, 0x32, 0x0c, 0xff,
+ 0x2f, 0x00, 0x00, 0x0c, 0xff, 0x1a, 0x16, 0x14, 0x10, 0xff, 0x1a, 0x21, 0x0a, 0x10, 0xff, 0x1a,
+ 0x21, 0x14, 0x10, 0xff, 0x1a, 0x21, 0x1e, 0x10, 0xff, 0x1a, 0x2c, 0x1e, 0x10, 0xff, 0x1a, 0x16,
+ 0x1e, 0x10, 0xff, 0x1a, 0x0b, 0x1e, 0x10, 0xff, 0x1a, 0x0b, 0x14, 0x10, 0xff, 0x1a, 0x00, 0x14,
+ 0x10, 0xff, 0x1a, 0x0b, 0x28, 0x10, 0xff, 0x1a, 0x00, 0x28, 0x10, 0xff, 0x1a, 0x16, 0x28, 0x10,
+ 0xff, 0x1a, 0x0b, 0x32, 0x10, 0xff, 0x1c, 0x00, 0x1e, 0x0f, 0xff, 0x1c, 0x00, 0x14, 0x0f, 0xff,
+ 0x1c, 0x00, 0x28, 0x0f, 0xff, 0x1c, 0x0b, 0x1e, 0x0f, 0xff, 0x1c, 0x0b, 0x14, 0x0f, 0xff, 0x1c,
+ 0x16, 0x1e, 0x0f, 0xff, 0x1c, 0x16, 0x14, 0x0f, 0xff, 0xff, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54,
+ 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10,
+ 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x2d,
+ 0x00, 0x08, 0x00, 0x51, 0x57, 0x45, 0x52, 0x54, 0x59, 0x55, 0x49, 0x4f, 0x50, 0x00, 0x00, 0x0d,
+ 0x00, 0x41, 0x53, 0x44, 0x46, 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a,
+ 0x58, 0x43, 0x56, 0x42, 0x4e, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x20, 0x44,
+ 0x41, 0x54, 0x41, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, 0x47,
+ 0x48, 0x54, 0x20, 0x31, 0x39, 0x39, 0x32, 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x56, 0x45,
+ 0x20, 0x52, 0x45, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x30, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x06, 0x02, 0xff, 0x03,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x07, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0x06, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x32, 0x00, 0x02, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0xff, 0xff, 0x01,
+ 0xff, 0x03, 0xff, 0xff, 0xff, 0x02, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x33, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0x00, 0x02, 0x04,
+ 0xff, 0x00, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x34, 0x00, 0x17, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x00, 0x05, 0xff,
+ 0xff, 0x03, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0x00, 0x04, 0xff,
+ 0xff, 0x03, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x36, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02,
+ 0xff, 0x00, 0xff, 0xff, 0xff, 0x06, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x37, 0x00, 0xff, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0xff, 0xff, 0xff, 0x07, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x38, 0x00, 0x08, 0xff, 0x00, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x0b, 0x28, 0x00, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x39, 0x00, 0x09, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x04, 0x06, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0xff, 0xff, 0xff, 0x09, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x30, 0x00, 0x0a, 0xff, 0x21, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x02, 0x00, 0xff, 0xff, 0x02,
+ 0x02, 0x04, 0x16, 0x1e, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x31, 0x00, 0x0b, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x33, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x34, 0x00, 0x0e, 0xff, 0x2c, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x30, 0x00, 0x16, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x14, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0x01,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0x01,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x33, 0x00, 0x17, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0x03,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x34, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x06, 0x02, 0x0f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x35, 0x00, 0x16, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x36, 0x00, 0x09, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x04, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x37, 0x00, 0x16, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x02,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x39, 0x00, 0x16, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x01, 0x0f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x34, 0x00, 0x17, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x30, 0x00, 0x0a, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x03, 0x06, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x33, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x06, 0x02, 0xff, 0x04,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x34, 0x00, 0x05, 0xff, 0x16, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x06, 0x00, 0xff, 0xff,
+ 0xff, 0xff, 0x21, 0x00, 0x03, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x31, 0x00, 0x0b, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0x02,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0x01,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x32, 0x36, 0x00, 0x09, 0xff, 0x00, 0x28, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x38, 0x00, 0x08, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x03, 0x06, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x28, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x34, 0x37, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x04, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x32, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x35, 0x30, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x35, 0x31, 0x00, 0x23, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x33, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x35, 0x32, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x35, 0x33, 0x00, 0x23, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x35, 0x34, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
+ 0x35, 0x35, 0x00, 0x0e, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06,
+ 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
+ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30,
+ 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44,
+ 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41,
+ 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
+ 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44,
+ 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00,
+ 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x45, 0x4d, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
+ context.data.assign(src, src + sizeof(src)); dreamweb(context); }
void __dispatch_call(Context &context, unsigned addr) {
switch(addr) {
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index f4d1801..e5b4493 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -5,13 +5,6 @@
namespace dreamgen {
- struct Data : public Segment {
- Data();
- };
-
-
- typedef RegisterContext<Data> Context;
-
void __dispatch_call(Context &context, unsigned addr);
void __start(Context &context);
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 7324475..fb634b6 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -6,6 +6,8 @@
#include "common/array.h"
#include "common/hashmap.h"
+namespace dreamgen {
+
//fixme: name clash
#undef random
@@ -84,10 +86,16 @@ public:
struct Segment {
Common::Array<uint8> data;
+
+ inline void assign(const uint8 *b, const uint8 *e) {
+ data.assign(b, e);
+ }
+
inline uint8 &byte(unsigned index) {
assert(index < data.size());
return data[index];
}
+
inline uint16 word(unsigned index) const {
assert(index + 1 < data.size());
return data[index] | (data[index + 1] << 8);
@@ -98,14 +106,15 @@ struct Segment {
}
};
+class Context;
class SegmentRef {
-
- uint16 _value;
- Segment *_segment;
+ Context *_context;
+ uint16 _value;
+ Segment *_segment;
public:
- SegmentRef(): _value(), _segment() {
+ SegmentRef(Context *ctx): _context(ctx), _value(), _segment() {
}
inline void reset(uint16 value) {
@@ -164,8 +173,10 @@ struct Flags {
}
};
-template<typename Data>
-struct RegisterContext {
+class Context {
+ Common::HashMap<uint16, Segment> _segments;
+
+public:
Register ax, dx, bx, cx, si, di;
RegisterPart<kLowPartOfRegister> al;
RegisterPart<kHighPartOfRegister> ah;
@@ -179,7 +190,9 @@ struct RegisterContext {
SegmentRef cs, ds, es;
Flags flags;
- inline RegisterContext(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx) {}
+ inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx), cs(this), ds(this), es(this) {
+
+ }
inline void _cmp(uint8 a, uint8 b) {
uint8 x = a;
@@ -330,8 +343,10 @@ struct RegisterContext {
return v;
}
- Data data;
+ Segment data;
};
+}
+
#endif
Commit: 0b0b22ccc2157c7260a55afe3add0629703c0b21
https://github.com/scummvm/scummvm/commit/0b0b22ccc2157c7260a55afe3add0629703c0b21
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:14-07:00
Commit Message:
DREAMWEB: removed data declaration
Changed paths:
devtools/tasmrecover/tasm/cpp.py
devtools/tasmrecover/tasm/cpp.pyc
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 53338c1..d63f568 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -497,20 +497,16 @@ namespace %s {
self.fd.write("\n\n")
print "%d ok, %d failed of %d, %.02g%% translated" %(done, failed, done + failed, 100.0 * done / (done + failed))
print "\n".join(self.failed)
- data_decl = "struct Data : public Segment {\n\t\tData();\n"
- data_impl = "Data::Data() {\n"
data_bin = self.data_seg
- data_impl += "\tstatic const uint8 src[] = {\n\t\t"
+ data_impl = "\n\tstatic const uint8 src[] = {\n\t\t"
n = 0
for v in data_bin:
- data_impl += "%s, " %v
+ data_impl += "0x%02x, " %v
n += 1
if (n & 0xf) == 0:
data_impl += "\n\t\t"
- data_impl += "};\ndata.assign(src, src + sizeof(src));\n"
+ data_impl += "};\n\tcontext.data.assign(src, src + sizeof(src))"
hid = "TASMRECOVER_%s_STUBS_H__" %self.namespace.upper()
- data_decl += "\t};\n\n"
- data_impl += "\t};\n\n"
self.hd.write("""#ifndef %s
#define %s
""" %(hid, hid))
@@ -519,21 +515,16 @@ namespace %s {
namespace %s {
- %s
- typedef RegisterContext<Data> Context;
-
void __dispatch_call(Context &context, unsigned addr);
void __start(Context &context);
-""" %(self.namespace, data_decl))
- self.fd.write(data_impl)
-
+""" %(self.namespace))
for f in self.failed:
self.hd.write("\tvoid %s(Context &context);\n" %f)
self.hd.write("\n}\n\n#endif\n")
self.hd.close()
- self.fd.write("\nvoid __start(Context &context) { %s(context); }\n" %start)
+ self.fd.write("\nvoid __start(Context &context) { %s; %s(context); }\n" %(data_impl, start))
self.fd.write("\nvoid __dispatch_call(Context &context, unsigned addr) {\n\tswitch(addr) {\n")
self.proc_addr.sort(cmp = lambda x, y: x[1] - y[1])
diff --git a/devtools/tasmrecover/tasm/cpp.pyc b/devtools/tasmrecover/tasm/cpp.pyc
index b0406b3..c454ae4 100644
Binary files a/devtools/tasmrecover/tasm/cpp.pyc and b/devtools/tasmrecover/tasm/cpp.pyc differ
Commit: 4e6483e700e016d9a94b3ddb1fe53e8bc087f9c9
https://github.com/scummvm/scummvm/commit/4e6483e700e016d9a94b3ddb1fe53e8bc087f9c9
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:18-07:00
Commit Message:
DREAMWEB: removed python generated bytecode
Changed paths:
A devtools/tasmrecover/.gitignore
R devtools/tasmrecover/tasm/__init__.pyc
R devtools/tasmrecover/tasm/cpp.pyc
R devtools/tasmrecover/tasm/lex.pyc
R devtools/tasmrecover/tasm/op.pyc
R devtools/tasmrecover/tasm/parser.pyc
R devtools/tasmrecover/tasm/proc.pyc
diff --git a/devtools/tasmrecover/.gitignore b/devtools/tasmrecover/.gitignore
new file mode 100644
index 0000000..0d20b64
--- /dev/null
+++ b/devtools/tasmrecover/.gitignore
@@ -0,0 +1 @@
+*.pyc
diff --git a/devtools/tasmrecover/tasm/__init__.pyc b/devtools/tasmrecover/tasm/__init__.pyc
deleted file mode 100644
index 8582b7b..0000000
Binary files a/devtools/tasmrecover/tasm/__init__.pyc and /dev/null differ
diff --git a/devtools/tasmrecover/tasm/cpp.pyc b/devtools/tasmrecover/tasm/cpp.pyc
deleted file mode 100644
index c454ae4..0000000
Binary files a/devtools/tasmrecover/tasm/cpp.pyc and /dev/null differ
diff --git a/devtools/tasmrecover/tasm/lex.pyc b/devtools/tasmrecover/tasm/lex.pyc
deleted file mode 100644
index aaab26e..0000000
Binary files a/devtools/tasmrecover/tasm/lex.pyc and /dev/null differ
diff --git a/devtools/tasmrecover/tasm/op.pyc b/devtools/tasmrecover/tasm/op.pyc
deleted file mode 100644
index 2e212ae..0000000
Binary files a/devtools/tasmrecover/tasm/op.pyc and /dev/null differ
diff --git a/devtools/tasmrecover/tasm/parser.pyc b/devtools/tasmrecover/tasm/parser.pyc
deleted file mode 100644
index d7049c8..0000000
Binary files a/devtools/tasmrecover/tasm/parser.pyc and /dev/null differ
diff --git a/devtools/tasmrecover/tasm/proc.pyc b/devtools/tasmrecover/tasm/proc.pyc
deleted file mode 100644
index cd8f967..0000000
Binary files a/devtools/tasmrecover/tasm/proc.pyc and /dev/null differ
Commit: 781d06709f4e5dbc0812c285248a08452f9f7005
https://github.com/scummvm/scummvm/commit/781d06709f4e5dbc0812c285248a08452f9f7005
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:24-07:00
Commit Message:
DREAMWEB: updated git ignore
Changed paths:
devtools/tasmrecover/.gitignore
diff --git a/devtools/tasmrecover/.gitignore b/devtools/tasmrecover/.gitignore
index 0d20b64..c1b0a4c 100644
--- a/devtools/tasmrecover/.gitignore
+++ b/devtools/tasmrecover/.gitignore
@@ -1 +1,5 @@
*.pyc
+dreamweb
+dreamgen.*
+_stubs*
+
Commit: 1ee6b0af692d0dc478ad50ec32c8a7144c40ee40
https://github.com/scummvm/scummvm/commit/1ee6b0af692d0dc478ad50ec32c8a7144c40ee40
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:29-07:00
Commit Message:
DREAMWEB: get rid of data, added simple segment management
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/runtime.h
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index d63f568..f9afe48 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -63,7 +63,7 @@ namespace %s {
if size == 0:
raise Exception("invalid var '%s' size %u" %(name, size))
if self.indirection == 0:
- value = "context.data.%s(%d)" %("byte" if size == 1 else "word", g.offset)
+ value = "context.ds.%s(%d)" %("byte" if size == 1 else "word", g.offset)
elif self.indirection == -1:
value = "%s" %g.offset
self.indirection = 0
@@ -161,9 +161,9 @@ namespace %s {
if indirection == 1:
if size == 1:
- expr = "context.data.byte(%s)" %expr
+ expr = "context.ds.byte(%s)" %expr
elif size == 2:
- expr = "context.data.word(%s)" %expr
+ expr = "context.ds.word(%s)" %expr
else:
expr = "@invalid size 0"
elif indirection == 0:
@@ -505,7 +505,7 @@ namespace %s {
n += 1
if (n & 0xf) == 0:
data_impl += "\n\t\t"
- data_impl += "};\n\tcontext.data.assign(src, src + sizeof(src))"
+ data_impl += "};\n\tcontext.ds.assign(src, src + sizeof(src))"
hid = "TASMRECOVER_%s_STUBS_H__" %self.namespace.upper()
self.hd.write("""#ifndef %s
#define %s
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 6d45fbf..3ec12c1 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -483,7 +483,7 @@ static void intro3text(Context &context);
static void intro1text(Context &context);
static void alleybarksound(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._sub(context.ax, 1);
context._cmp(context.ax, 0);
if (!context.flags.z()) goto nobark;
@@ -495,7 +495,7 @@ static void alleybarksound(Context & context) {
context.bx = context.pop();
context.ax = 1000;
nobark:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
return;
}
@@ -516,49 +516,49 @@ nofog:
static void receptionist(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
- context._cmp(context.data.byte(52), 1);
+ context._cmp(context.ds.byte(52), 1);
if (!context.flags.z()) goto notsetcard;
- context._add(context.data.byte(52), 1);
- context.data.byte(context.bx+7) = 1;
- context.data.word(context.bx+3) = 64;
+ context._add(context.ds.byte(52), 1);
+ context.ds.byte(context.bx+7) = 1;
+ context.ds.word(context.bx+3) = 64;
notsetcard:
- context._cmp(context.data.word(context.bx+3), 58);
+ context._cmp(context.ds.word(context.bx+3), 58);
if (!context.flags.z()) goto notdes1;
randomnumber(context);
context._cmp(context.al, 30);
if (context.flags.c()) goto notdes2;
- context.data.word(context.bx+3) = 55;
+ context.ds.word(context.bx+3) = 55;
goto gotrecep;
notdes1:
- context._cmp(context.data.word(context.bx+3), 60);
+ context._cmp(context.ds.word(context.bx+3), 60);
if (!context.flags.z()) goto notdes2;
randomnumber(context);
context._cmp(context.al, 240);
if (context.flags.c()) goto gotrecep;
- context.data.word(context.bx+3) = 53;
+ context.ds.word(context.bx+3) = 53;
goto gotrecep;
notdes2:
- context._cmp(context.data.word(context.bx+3), 88);
+ context._cmp(context.ds.word(context.bx+3), 88);
if (!context.flags.z()) goto notendcard;
- context.data.word(context.bx+3) = 53;
+ context.ds.word(context.bx+3) = 53;
goto gotrecep;
notendcard:
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
gotrecep:
showgamereel(context);
addtopeoplelist(context);
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedrecep;
- context.data.byte(51) = 1;
+ context.ds.byte(51) = 1;
nottalkedrecep:
return;
}
static void smokebloke(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.ds.byte(41), 0);
if (!context.flags.z()) goto notspokento;
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto notspokento;
context.push(context.es);
@@ -570,20 +570,20 @@ static void smokebloke(Context & context) {
notspokento:
checkspeed(context);
if (!context.flags.z()) goto gotsmokeb;
- context._cmp(context.data.word(context.bx+3), 100);
+ context._cmp(context.ds.word(context.bx+3), 100);
if (!context.flags.z()) goto notsmokeb1;
randomnumber(context);
context._cmp(context.al, 30);
if (context.flags.c()) goto notsmokeb2;
- context.data.word(context.bx+3) = 96;
+ context.ds.word(context.bx+3) = 96;
goto gotsmokeb;
notsmokeb1:
- context._cmp(context.data.word(context.bx+3), 117);
+ context._cmp(context.ds.word(context.bx+3), 117);
if (!context.flags.z()) goto notsmokeb2;
- context.data.word(context.bx+3) = 96;
+ context.ds.word(context.bx+3) = 96;
goto gotsmokeb;
notsmokeb2:
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
gotsmokeb:
showgamereel(context);
addtopeoplelist(context);
@@ -593,25 +593,25 @@ gotsmokeb:
static void attendant(Context & context) {
showgamereel(context);
addtopeoplelist(context);
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalked;
- context.data.byte(48) = 1;
+ context.ds.byte(48) = 1;
nottalked:
return;
}
static void manasleep(Context & context) {
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
- context.data.byte(context.bx+7) = context.al;
+ context.ds.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
return;
}
static void eden(Context & context) {
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.ds.byte(42), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
addtopeoplelist(context);
@@ -620,9 +620,9 @@ notinbed:
}
static void edeninbath(Context & context) {
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.ds.byte(42), 0);
if (context.flags.z()) goto notinbed;
- context._cmp(context.data.byte(43), 0);
+ context._cmp(context.ds.byte(43), 0);
if (!context.flags.z()) goto notinbath;
showgamereel(context);
addtopeoplelist(context);
@@ -647,7 +647,7 @@ static void femalefan(Context & context) {
}
static void louis(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.ds.byte(41), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
addtopeoplelist(context);
@@ -656,26 +656,26 @@ notlouis1:
}
static void louischair(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.ds.byte(41), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
if (!context.flags.z()) goto notlouisanim;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 191);
if (context.flags.z()) goto restartlouis;
context._cmp(context.ax, 185);
if (context.flags.z()) goto randomlouis;
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
goto notlouisanim;
randomlouis:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
randomnumber(context);
context._cmp(context.al, 245);
if (!context.flags.c()) goto notlouisanim;
restartlouis:
context.ax = 182;
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
notlouisanim:
showgamereel(context);
addtopeoplelist(context);
@@ -684,9 +684,9 @@ notlouis2:
}
static void manasleep2(Context & context) {
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
- context.data.byte(context.bx+7) = context.al;
+ context.ds.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
return;
@@ -707,18 +707,18 @@ static void tattooman(Context & context) {
static void drinker(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotdrinker;
- context._add(context.data.word(context.bx+3), 1);
- context._cmp(context.data.word(context.bx+3), 115);
+ context._add(context.ds.word(context.bx+3), 1);
+ context._cmp(context.ds.word(context.bx+3), 115);
if (!context.flags.z()) goto notdrinker1;
- context.data.word(context.bx+3) = 105;
+ context.ds.word(context.bx+3) = 105;
goto gotdrinker;
notdrinker1:
- context._cmp(context.data.word(context.bx+3), 106);
+ context._cmp(context.ds.word(context.bx+3), 106);
if (!context.flags.z()) goto gotdrinker;
randomnumber(context);
context._cmp(context.al, 3);
if (context.flags.c()) goto gotdrinker;
- context.data.word(context.bx+3) = 105;
+ context.ds.word(context.bx+3) = 105;
gotdrinker:
showgamereel(context);
addtopeoplelist(context);
@@ -728,25 +728,25 @@ gotdrinker:
static void bartender(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotsmoket;
- context._cmp(context.data.word(context.bx+3), 86);
+ context._cmp(context.ds.word(context.bx+3), 86);
if (!context.flags.z()) goto notsmoket1;
randomnumber(context);
context._cmp(context.al, 18);
if (context.flags.c()) goto notsmoket2;
- context.data.word(context.bx+3) = 81;
+ context.ds.word(context.bx+3) = 81;
goto gotsmoket;
notsmoket1:
- context._cmp(context.data.word(context.bx+3), 103);
+ context._cmp(context.ds.word(context.bx+3), 103);
if (!context.flags.z()) goto notsmoket2;
- context.data.word(context.bx+3) = 81;
+ context.ds.word(context.bx+3) = 81;
goto gotsmoket;
notsmoket2:
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
gotsmoket:
showgamereel(context);
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.ds.byte(46), 1);
if (!context.flags.z()) goto notgotgun;
- context.data.byte(context.bx+7) = 9;
+ context.ds.byte(context.bx+7) = 9;
notgotgun:
addtopeoplelist(context);
return;
@@ -765,49 +765,49 @@ static void barwoman(Context & context) {
}
static void interviewer(Context & context) {
- context._cmp(context.data.word(23), 68);
+ context._cmp(context.ds.word(23), 68);
if (!context.flags.z()) goto notgeneralstart;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
notgeneralstart:
- context._cmp(context.data.word(context.bx+3), 250);
+ context._cmp(context.ds.word(context.bx+3), 250);
if (context.flags.z()) goto talking;
checkspeed(context);
if (!context.flags.z()) goto talking;
- context._cmp(context.data.word(context.bx+3), 259);
+ context._cmp(context.ds.word(context.bx+3), 259);
if (context.flags.z()) goto talking;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
talking:
showgamereel(context);
return;
}
static void soldier1(Context & context) {
- context._cmp(context.data.word(context.bx+3), 0);
+ context._cmp(context.ds.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
- context.data.word(21) = 10;
- context._cmp(context.data.word(context.bx+3), 30);
+ context.ds.word(21) = 10;
+ context._cmp(context.ds.word(context.bx+3), 30);
if (!context.flags.z()) goto notaftersshot;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 40);
if (!context.flags.z()) goto gotsoldframe;
- context.data.byte(56) = 2;
+ context.ds.byte(56) = 2;
goto gotsoldframe;
notaftersshot:
checkspeed(context);
if (!context.flags.z()) goto gotsoldframe;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
goto gotsoldframe;
soldierwait:
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.ds.byte(65), 1);
if (!context.flags.z()) goto gotsoldframe;
- context.data.word(21) = 10;
- context._cmp(context.data.byte(475), 2);
+ context.ds.word(21) = 10;
+ context._cmp(context.ds.byte(475), 2);
if (!context.flags.z()) goto gotsoldframe;
- context._cmp(context.data.byte(133), 4);
+ context._cmp(context.ds.byte(133), 4);
if (!context.flags.z()) goto gotsoldframe;
- context._add(context.data.word(context.bx+3), 1);
- context.data.byte(65) = -1;
- context.data.byte(64) = 0;
+ context._add(context.ds.word(context.bx+3), 1);
+ context.ds.byte(65) = -1;
+ context.ds.byte(64) = 0;
gotsoldframe:
showgamereel(context);
addtopeoplelist(context);
@@ -815,70 +815,70 @@ gotsoldframe:
}
static void rockstar(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 303);
if (context.flags.z()) goto rockcombatend;
context._cmp(context.ax, 118);
if (context.flags.z()) goto rockcombatend;
checkspeed(context);
if (!context.flags.z()) goto rockspeed;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 118);
if (!context.flags.z()) goto notbeforedead;
- context.data.byte(56) = 2;
+ context.ds.byte(56) = 2;
goto gotrockframe;
notbeforedead:
context._cmp(context.ax, 79);
if (!context.flags.z()) goto gotrockframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.ds.byte(65), 1);
if (!context.flags.z()) goto notgunonrock;
- context.data.byte(65) = -1;
+ context.ds.byte(65) = -1;
context.ax = 123;
goto gotrockframe;
notgunonrock:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 40);
if (!context.flags.z()) goto gotrockframe;
- context.data.byte(64) = 0;
+ context.ds.byte(64) = 0;
context.ax = 79;
gotrockframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
rockspeed:
showgamereel(context);
- context._cmp(context.data.word(context.bx+3), 78);
+ context._cmp(context.ds.word(context.bx+3), 78);
if (!context.flags.z()) goto notalkrock;
addtopeoplelist(context);
- context.data.byte(234) = 2;
- context.data.word(21) = 0;
+ context.ds.byte(234) = 2;
+ context.ds.word(21) = 0;
return;
notalkrock:
- context.data.word(21) = 2;
- context.data.byte(234) = 0;
- context.al = context.data.byte(149);
- context.data.byte(context.bx+2) = context.al;
+ context.ds.word(21) = 2;
+ context.ds.byte(234) = 0;
+ context.al = context.ds.byte(149);
+ context.ds.byte(context.bx+2) = context.al;
return;
rockcombatend:
- context.data.byte(188) = 45;
+ context.ds.byte(188) = 45;
showgamereel(context);
return;
}
static void helicopter(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 203);
if (context.flags.z()) goto heliwon;
checkspeed(context);
if (!context.flags.z()) goto helispeed;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 53);
if (!context.flags.z()) goto notbeforehdead;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 8);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 8);
if (context.flags.c()) goto waitabit;
- context.data.byte(56) = 2;
+ context.ds.byte(56) = 2;
waitabit:
context.ax = 49;
goto gotheliframe;
@@ -886,59 +886,59 @@ notbeforehdead:
context._cmp(context.ax, 9);
if (!context.flags.z()) goto gotheliframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.ds.byte(65), 1);
if (!context.flags.z()) goto notgunonheli;
- context.data.byte(65) = -1;
+ context.ds.byte(65) = -1;
context.ax = 55;
goto gotheliframe;
notgunonheli:
context.ax = 5;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 20);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 20);
if (!context.flags.z()) goto gotheliframe;
- context.data.byte(64) = 0;
+ context.ds.byte(64) = 0;
context.ax = 9;
gotheliframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
helispeed:
showgamereel(context);
- context.al = context.data.byte(148);
- context.data.byte(context.bx+1) = context.al;
+ context.al = context.ds.byte(148);
+ context.ds.byte(context.bx+1) = context.al;
helicombatend:
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 9);
if (!context.flags.c()) goto notwaitingheli;
- context._cmp(context.data.byte(64), 7);
+ context._cmp(context.ds.byte(64), 7);
if (context.flags.c()) goto notwaitingheli;
- context.data.byte(234) = 2;
- context.data.word(21) = 0;
+ context.ds.byte(234) = 2;
+ context.ds.word(21) = 0;
return;
notwaitingheli:
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.ds.byte(234) = 0;
+ context.ds.word(21) = 2;
return;
heliwon:
- context.data.byte(234) = 0;
+ context.ds.byte(234) = 0;
return;
}
static void mugger(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 138);
if (context.flags.z()) goto endmugger1;
context._cmp(context.ax, 176);
if (context.flags.z()) goto endmugger2;
context._cmp(context.ax, 2);
if (!context.flags.z()) goto havesetwatch;
- context.data.word(21) = 175*2;
+ context.ds.word(21) = 175*2;
havesetwatch:
checkspeed(context);
if (!context.flags.z()) goto notmugger;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
notmugger:
showgamereel(context);
- context.al = context.data.byte(148);
- context.data.byte(context.bx+1) = context.al;
+ context.al = context.ds.byte(148);
+ context.ds.byte(context.bx+1) = context.al;
return;
endmugger1:
context.push(context.es);
@@ -959,26 +959,26 @@ endmugger1:
context.es = context.pop();
context.push(context.es);
context.push(context.bx);
- context.data.word(context.bx+3) = 140;
- context.data.byte(475) = 2;
- context.data.byte(477) = 2;
+ context.ds.word(context.bx+3) = 140;
+ context.ds.byte(475) = 2;
+ context.ds.byte(477) = 2;
findxyfrompath(context);
- context.data.byte(187) = 1;
+ context.ds.byte(187) = 1;
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'A';
findexobject(context);
- context.data.byte(99) = context.al;
- context.data.byte(102) = 4;
+ context.ds.byte(99) = context.al;
+ context.ds.byte(102) = 4;
removeobfrominv(context);
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'B';
findexobject(context);
- context.data.byte(99) = context.al;
- context.data.byte(102) = 4;
+ context.ds.byte(99) = context.al;
+ context.ds.byte(102) = 4;
removeobfrominv(context);
makemainscreen(context);
context.al = 48;
@@ -987,7 +987,7 @@ endmugger1:
context.cx = 70;
context.dx = 10;
setuptimeduse(context);
- context.data.byte(45) = 1;
+ context.ds.byte(45) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -1002,9 +1002,9 @@ static void aide(Context & context) {
}
static void businessman(Context & context) {
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
- context.ax = context.data.word(context.bx+3);
+ context.ds.byte(234) = 0;
+ context.ds.word(21) = 2;
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 2);
if (!context.flags.z()) goto notfirstbiz;
context.push(context.ax);
@@ -1026,27 +1026,27 @@ notfirstbiz:
if (context.flags.z()) goto buscombatend;
checkspeed(context);
if (!context.flags.z()) goto busspeed;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 48);
if (!context.flags.z()) goto notbeforedeadb;
- context.data.byte(56) = 2;
+ context.ds.byte(56) = 2;
goto gotbusframe;
notbeforedeadb:
context._cmp(context.ax, 15);
if (!context.flags.z()) goto buscombatwon;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 3);
+ context._cmp(context.ds.byte(65), 3);
if (!context.flags.z()) goto notshieldonbus;
- context.data.byte(65) = -1;
- context.data.byte(64) = 0;
+ context.ds.byte(65) = -1;
+ context.ds.byte(64) = 0;
context.ax = 51;
goto gotbusframe;
notshieldonbus:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 20);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 20);
if (!context.flags.z()) goto gotbusframe;
- context.data.byte(64) = 0;
+ context.ds.byte(64) = 0;
context.ax = 15;
goto gotbusframe;
buscombatwon:
@@ -1062,36 +1062,36 @@ buscombatwon:
turnpathon(context);
context.al = 3;
turnpathoff(context);
- context.data.byte(475) = 5;
- context.data.byte(477) = 5;
+ context.ds.byte(475) = 5;
+ context.ds.byte(477) = 5;
findxyfrompath(context);
- context.data.byte(187) = 1;
+ context.ds.byte(187) = 1;
context.es = context.pop();
context.bx = context.pop();
context.ax = 92;
goto gotbusframe;
gotbusframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
busspeed:
showgamereel(context);
- context.al = context.data.byte(149);
- context.data.byte(context.bx+2) = context.al;
- context.ax = context.data.word(context.bx+3);
+ context.al = context.ds.byte(149);
+ context.ds.byte(context.bx+2) = context.al;
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 14);
if (!context.flags.z()) goto buscombatend;
- context.data.word(21) = 0;
- context.data.byte(234) = 2;
+ context.ds.word(21) = 0;
+ context.ds.byte(234) = 2;
return;
buscombatend:
return;
buscombatwonend:
- context.data.byte(234) = 0;
- context.data.word(21) = 0;
+ context.ds.byte(234) = 0;
+ context.ds.word(21) = 0;
return;
}
static void poolguard(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 214);
if (context.flags.z()) goto combatover2;
context._cmp(context.ax, 258);
@@ -1105,57 +1105,57 @@ static void poolguard(Context & context) {
notfirstpool:
checkspeed(context);
if (!context.flags.z()) goto guardspeed;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 122);
if (!context.flags.z()) goto notendguard1;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 2);
+ context._cmp(context.ds.byte(65), 2);
if (!context.flags.z()) goto notaxeonpool;
- context.data.byte(65) = -1;
+ context.ds.byte(65) = -1;
context.ax = 122;
goto gotguardframe;
notaxeonpool:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 40);
if (!context.flags.z()) goto gotguardframe;
- context.data.byte(64) = 0;
+ context.ds.byte(64) = 0;
context.ax = 195;
goto gotguardframe;
notendguard1:
context._cmp(context.ax, 147);
if (!context.flags.z()) goto gotguardframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.ds.byte(65), 1);
if (!context.flags.z()) goto notgunonpool;
- context.data.byte(65) = -1;
+ context.ds.byte(65) = -1;
context.ax = 147;
goto gotguardframe;
notgunonpool:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 40);
if (!context.flags.z()) goto gotguardframe;
- context.data.byte(64) = 0;
+ context.ds.byte(64) = 0;
context.ax = 220;
gotguardframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
guardspeed:
showgamereel(context);
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 121);
if (context.flags.z()) goto iswaitingpool;
context._cmp(context.ax, 146);
if (context.flags.z()) goto iswaitingpool;
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.ds.byte(234) = 0;
+ context.ds.word(21) = 2;
return;
iswaitingpool:
- context.data.byte(234) = 2;
- context.data.word(21) = 0;
+ context.ds.byte(234) = 2;
+ context.ds.word(21) = 0;
return;
combatover1:
- context.data.word(21) = 0;
- context.data.byte(234) = 0;
+ context.ds.word(21) = 0;
+ context.ds.byte(234) = 0;
context.al = 0;
turnpathon(context);
context.al = 1;
@@ -1163,39 +1163,39 @@ combatover1:
return;
combatover2:
showgamereel(context);
- context.data.word(21) = 2;
- context.data.byte(234) = 0;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 100);
+ context.ds.word(21) = 2;
+ context.ds.byte(234) = 0;
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 100);
if (context.flags.c()) goto doneover2;
- context.data.word(21) = 0;
- context.data.byte(56) = 2;
+ context.ds.word(21) = 0;
+ context.ds.byte(56) = 2;
doneover2:
return;
}
static void security(Context & context) {
- context._cmp(context.data.word(context.bx+3), 32);
+ context._cmp(context.ds.word(context.bx+3), 32);
if (context.flags.z()) goto securwait;
- context._cmp(context.data.word(context.bx+3), 69);
+ context._cmp(context.ds.word(context.bx+3), 69);
if (!context.flags.z()) goto notaftersec;
return;
notaftersec:
- context.data.word(21) = 10;
+ context.ds.word(21) = 10;
checkspeed(context);
if (!context.flags.z()) goto gotsecurframe;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
goto gotsecurframe;
securwait:
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.ds.byte(65), 1);
if (!context.flags.z()) goto gotsecurframe;
- context.data.word(21) = 10;
- context._cmp(context.data.byte(475), 9);
+ context.ds.word(21) = 10;
+ context._cmp(context.ds.byte(475), 9);
if (!context.flags.z()) goto gotsecurframe;
- context._cmp(context.data.byte(133), 0);
+ context._cmp(context.ds.byte(133), 0);
if (!context.flags.z()) goto gotsecurframe;
- context.data.byte(65) = -1;
- context._add(context.data.word(context.bx+3), 1);
+ context.ds.byte(65) = -1;
+ context._add(context.ds.word(context.bx+3), 1);
gotsecurframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1203,34 +1203,34 @@ gotsecurframe:
}
static void heavy(Context & context) {
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
- context.data.byte(context.bx+7) = context.al;
- context._cmp(context.data.word(context.bx+3), 43);
+ context.ds.byte(context.bx+7) = context.al;
+ context._cmp(context.ds.word(context.bx+3), 43);
if (context.flags.z()) goto heavywait;
- context.data.word(21) = 10;
- context._cmp(context.data.word(context.bx+3), 70);
+ context.ds.word(21) = 10;
+ context._cmp(context.ds.word(context.bx+3), 70);
if (!context.flags.z()) goto notafterhshot;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 80);
+ context._add(context.ds.byte(64), 1);
+ context._cmp(context.ds.byte(64), 80);
if (!context.flags.z()) goto gotheavyframe;
- context.data.byte(56) = 2;
+ context.ds.byte(56) = 2;
goto gotheavyframe;
notafterhshot:
checkspeed(context);
if (!context.flags.z()) goto gotheavyframe;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
goto gotheavyframe;
heavywait:
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.ds.byte(65), 1);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.data.byte(475), 5);
+ context._cmp(context.ds.byte(475), 5);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.data.byte(133), 4);
+ context._cmp(context.ds.byte(133), 4);
if (!context.flags.z()) goto gotheavyframe;
- context.data.byte(65) = -1;
- context._add(context.data.word(context.bx+3), 1);
- context.data.byte(64) = 0;
+ context.ds.byte(65) = -1;
+ context._add(context.ds.word(context.bx+3), 1);
+ context.ds.byte(64) = 0;
gotheavyframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1240,7 +1240,7 @@ gotheavyframe:
static void bossman(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notboss;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 4);
if (context.flags.z()) goto firstdes;
@@ -1249,11 +1249,11 @@ static void bossman(Context & context) {
context._cmp(context.ax, 41);
if (!context.flags.z()) goto gotallboss;
context.ax = 0;
- context._add(context.data.byte(46), 1);
- context.data.byte(context.bx+7) = 10;
+ context._add(context.ds.byte(46), 1);
+ context.ds.byte(context.bx+7) = 10;
goto gotallboss;
firstdes:
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.ds.byte(46), 1);
if (context.flags.z()) goto gotallboss;
context.push(context.ax);
randomnumber(context);
@@ -1264,18 +1264,18 @@ firstdes:
context.ax = 0;
goto gotallboss;
secdes:
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.ds.byte(46), 1);
if (context.flags.z()) goto gotallboss;
context.ax = 0;
gotallboss:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
notboss:
showgamereel(context);
addtopeoplelist(context);
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedboss;
- context.data.byte(50) = 1;
+ context.ds.byte(50) = 1;
nottalkedboss:
return;
}
@@ -1289,10 +1289,10 @@ gameragain:
context._cmp(context.al, 5);
if (!context.flags.c()) goto gameragain;
context._add(context.al, 20);
- context._cmp(context.al, context.data.byte(context.bx+3));
+ context._cmp(context.al, context.ds.byte(context.bx+3));
if (context.flags.z()) goto gameragain;
context.ah = 0;
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
gamerfin:
showgamereel(context);
addtopeoplelist(context);
@@ -1319,17 +1319,17 @@ cantdrip2:
}
static void keeper(Context & context) {
- context._cmp(context.data.byte(54), 0);
+ context._cmp(context.ds.byte(54), 0);
if (!context.flags.z()) goto notwaiting;
- context._cmp(context.data.word(23), 190);
+ context._cmp(context.ds.word(23), 190);
if (context.flags.c()) goto waiting;
- context._add(context.data.byte(54), 1);
- context.ah = context.data.byte(context.bx+7);
+ context._add(context.ds.byte(54), 1);
+ context.ah = context.ds.byte(context.bx+7);
context._and(context.ah, 127);
- context._cmp(context.ah, context.data.byte(66));
+ context._cmp(context.ah, context.ds.byte(66));
if (context.flags.z()) goto notdiff;
- context.al = context.data.byte(66);
- context.data.byte(context.bx+7) = context.al;
+ context.al = context.ds.byte(66);
+ context.ds.byte(context.bx+7) = context.al;
notdiff:
return;
notwaiting:
@@ -1342,13 +1342,13 @@ waiting:
static void candles1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candle1;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 44);
if (!context.flags.z()) goto notendcandle1;
context.ax = 39;
notendcandle1:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
candle1:
showgamereel(context);
return;
@@ -1357,13 +1357,13 @@ candle1:
static void smallcandle(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto smallcandlef;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 37);
if (!context.flags.z()) goto notendsmallcandle;
context.ax = 25;
notendsmallcandle:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
smallcandlef:
showgamereel(context);
return;
@@ -1372,25 +1372,25 @@ smallcandlef:
static void intromagic1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm1fin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 145);
if (!context.flags.z()) goto gotintrom1;
context.ax = 121;
gotintrom1:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
context._cmp(context.ax, 121);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(139), 1);
+ context._add(context.ds.byte(139), 1);
context.push(context.es);
context.push(context.bx);
intro1text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(139), 8);
+ context._cmp(context.ds.byte(139), 8);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._add(context.ds.byte(149), 10);
+ context.ds.byte(186) = 1;
introm1fin:
showgamereel(context);
return;
@@ -1399,13 +1399,13 @@ introm1fin:
static void candles(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candlesfin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 167);
if (!context.flags.z()) goto gotcandles;
context.ax = 162;
gotcandles:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
candlesfin:
showgamereel(context);
return;
@@ -1414,13 +1414,13 @@ candlesfin:
static void candles2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candles2fin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 238);
if (!context.flags.z()) goto gotcandles2;
context.ax = 233;
gotcandles2:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
candles2fin:
showgamereel(context);
return;
@@ -1429,7 +1429,7 @@ candles2fin:
static void gates(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gatesfin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 116);
if (!context.flags.z()) goto notbang;
@@ -1444,14 +1444,14 @@ static void gates(Context & context) {
notbang:
context._cmp(context.ax, 110);
if (context.flags.c()) goto slowgates;
- context.data.byte(context.bx+5) = 2;
+ context.ds.byte(context.bx+5) = 2;
slowgates:
context._cmp(context.ax, 120);
if (!context.flags.z()) goto gotgates;
- context.data.byte(103) = 1;
+ context.ds.byte(103) = 1;
context.ax = 119;
gotgates:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
context.push(context.es);
context.push(context.bx);
intro3text(context);
@@ -1465,13 +1465,13 @@ gatesfin:
static void intromagic2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm2fin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 216);
if (!context.flags.z()) goto gotintrom2;
context.ax = 192;
gotintrom2:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
introm2fin:
showgamereel(context);
return;
@@ -1480,39 +1480,39 @@ introm2fin:
static void intromagic3(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm3fin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 218);
if (!context.flags.z()) goto gotintrom3;
- context.data.byte(103) = 1;
+ context.ds.byte(103) = 1;
gotintrom3:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
introm3fin:
showgamereel(context);
- context.al = context.data.byte(148);
- context.data.byte(context.bx+1) = context.al;
+ context.al = context.ds.byte(148);
+ context.ds.byte(context.bx+1) = context.al;
return;
}
static void intromonks1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk1fin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 80);
if (!context.flags.z()) goto notendmonk1;
- context._add(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._add(context.ds.byte(149), 10);
+ context.ds.byte(186) = 1;
showgamereel(context);
return;
notendmonk1:
context._cmp(context.ax, 30);
if (!context.flags.z()) goto gotintromonk1;
- context._sub(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._sub(context.ds.byte(149), 10);
+ context.ds.byte(186) = 1;
context.ax = 51;
gotintromonk1:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
context._cmp(context.ax, 5);
if (context.flags.z()) goto waitstep;
context._cmp(context.ax, 15);
@@ -1530,28 +1530,28 @@ waitstep:
intro2text(context);
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(context.bx+6) = -20;
+ context.ds.byte(context.bx+6) = -20;
intromonk1fin:
showgamereel(context);
- context.al = context.data.byte(149);
- context.data.byte(context.bx+2) = context.al;
+ context.al = context.ds.byte(149);
+ context.ds.byte(context.bx+2) = context.al;
return;
}
static void intromonks2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk2fin;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 87);
if (!context.flags.z()) goto nottalk1;
- context._add(context.data.byte(139), 1);
+ context._add(context.ds.byte(139), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(139), 19);
+ context._cmp(context.ds.byte(139), 19);
if (!context.flags.z()) goto notlasttalk1;
context.ax = 87;
goto gotintromonk2;
@@ -1561,13 +1561,13 @@ notlasttalk1:
nottalk1:
context._cmp(context.ax, 110);
if (!context.flags.z()) goto notraisearm;
- context._add(context.data.byte(139), 1);
+ context._add(context.ds.byte(139), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(139), 35);
+ context._cmp(context.ds.byte(139), 35);
if (!context.flags.z()) goto notlastraise;
context.ax = 111;
goto gotintromonk2;
@@ -1577,14 +1577,14 @@ notlastraise:
notraisearm:
context._cmp(context.ax, 176);
if (!context.flags.z()) goto notendmonk2;
- context.data.byte(103) = 1;
+ context.ds.byte(103) = 1;
goto gotintromonk2;
notendmonk2:
context._cmp(context.ax, 125);
if (!context.flags.z()) goto gotintromonk2;
context.ax = 140;
gotintromonk2:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
intromonk2fin:
showgamereel(context);
return;
@@ -1595,7 +1595,7 @@ static void handclap(Context & context) {
}
static void monks2text(Context & context) {
- context._cmp(context.data.byte(139), 1);
+ context._cmp(context.ds.byte(139), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
context.bl = 36;
@@ -1603,7 +1603,7 @@ static void monks2text(Context & context) {
context.cx = 100;
goto gotmonks2text;
notmonk2text1:
- context._cmp(context.data.byte(139), 4);
+ context._cmp(context.ds.byte(139), 4);
if (!context.flags.z()) goto notmonk2text2;
context.al = 9;
context.bl = 36;
@@ -1611,7 +1611,7 @@ notmonk2text1:
context.cx = 100;
goto gotmonks2text;
notmonk2text2:
- context._cmp(context.data.byte(139), 7);
+ context._cmp(context.ds.byte(139), 7);
if (!context.flags.z()) goto notmonk2text3;
context.al = 10;
context.bl = 36;
@@ -1619,7 +1619,7 @@ notmonk2text2:
context.cx = 100;
goto gotmonks2text;
notmonk2text3:
- context._cmp(context.data.byte(139), 10);
+ context._cmp(context.ds.byte(139), 10);
if (!context.flags.z()) goto notmonk2text4;
context.al = 11;
context.bl = 0;
@@ -1627,7 +1627,7 @@ notmonk2text3:
context.cx = 100;
goto gotmonks2text;
notmonk2text4:
- context._cmp(context.data.byte(139), 13);
+ context._cmp(context.ds.byte(139), 13);
if (!context.flags.z()) goto notmonk2text5;
context.al = 12;
context.bl = 0;
@@ -1635,7 +1635,7 @@ notmonk2text4:
context.cx = 100;
goto gotmonks2text;
notmonk2text5:
- context._cmp(context.data.byte(139), 16);
+ context._cmp(context.ds.byte(139), 16);
if (!context.flags.z()) goto notmonk2text6;
context.al = 13;
context.bl = 0;
@@ -1643,7 +1643,7 @@ notmonk2text5:
context.cx = 100;
goto gotmonks2text;
notmonk2text6:
- context._cmp(context.data.byte(139), 19);
+ context._cmp(context.ds.byte(139), 19);
if (!context.flags.z()) goto notmonk2text7;
context.al = 14;
context.bl = 36;
@@ -1653,7 +1653,7 @@ notmonk2text6:
context.ah = 82;
{ setuptimedtemp(context); return; };
notmonk2text7:
- context._cmp(context.data.byte(139), 22);
+ context._cmp(context.ds.byte(139), 22);
if (!context.flags.z()) goto notmonk2text8;
context.al = 15;
context.bl = 36;
@@ -1661,7 +1661,7 @@ notmonk2text7:
context.cx = 100;
goto gotmonks2text;
notmonk2text8:
- context._cmp(context.data.byte(139), 25);
+ context._cmp(context.ds.byte(139), 25);
if (!context.flags.z()) goto notmonk2text9;
context.al = 16;
context.bl = 36;
@@ -1669,7 +1669,7 @@ notmonk2text8:
context.cx = 100;
goto gotmonks2text;
notmonk2text9:
- context._cmp(context.data.byte(139), 28);
+ context._cmp(context.ds.byte(139), 28);
if (!context.flags.z()) goto notmonk2text10;
context.al = 17;
context.bl = 36;
@@ -1677,7 +1677,7 @@ notmonk2text9:
context.cx = 100;
goto gotmonks2text;
notmonk2text10:
- context._cmp(context.data.byte(139), 31);
+ context._cmp(context.ds.byte(139), 31);
if (!context.flags.z()) goto notmonk2text11;
context.al = 18;
context.bl = 36;
@@ -1695,7 +1695,7 @@ gotmonks2text:
}
static void intro1text(Context & context) {
- context._cmp(context.data.byte(139), 2);
+ context._cmp(context.ds.byte(139), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
context.bl = 34;
@@ -1703,7 +1703,7 @@ static void intro1text(Context & context) {
context.cx = 90;
goto gotintro1text;
notintro1text1:
- context._cmp(context.data.byte(139), 4);
+ context._cmp(context.ds.byte(139), 4);
if (!context.flags.z()) goto notintro1text2;
context.al = 41;
context.bl = 34;
@@ -1711,7 +1711,7 @@ notintro1text1:
context.cx = 90;
goto gotintro1text;
notintro1text2:
- context._cmp(context.data.byte(139), 6);
+ context._cmp(context.ds.byte(139), 6);
if (!context.flags.z()) goto notintro1text3;
context.al = 42;
context.bl = 34;
@@ -1781,23 +1781,23 @@ gotintro3text:
static void monkandryan(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notmonkryan;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 83);
if (!context.flags.z()) goto gotmonkryan;
- context._add(context.data.byte(139), 1);
+ context._add(context.ds.byte(139), 1);
context.push(context.es);
context.push(context.bx);
textformonk(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 77;
- context._cmp(context.data.byte(139), 57);
+ context._cmp(context.ds.byte(139), 57);
if (!context.flags.z()) goto gotmonkryan;
- context.data.byte(103) = 1;
+ context.ds.byte(103) = 1;
return;
gotmonkryan:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
notmonkryan:
showgamereel(context);
return;
@@ -1806,13 +1806,13 @@ notmonkryan:
static void endgameseq(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notendseq;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 51);
if (!context.flags.z()) goto gotendseq;
- context._cmp(context.data.byte(139), 140);
+ context._cmp(context.ds.byte(139), 140);
if (context.flags.z()) goto gotendseq;
- context._add(context.data.byte(139), 1);
+ context._add(context.ds.byte(139), 1);
context.push(context.es);
context.push(context.bx);
textforend(context);
@@ -1820,7 +1820,7 @@ static void endgameseq(Context & context) {
context.es = context.pop();
context.ax = 50;
gotendseq:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
context._cmp(context.ax, 134);
if (!context.flags.z()) goto notfadedown;
context.push(context.es);
@@ -1838,23 +1838,23 @@ notfadedown:
context.push(context.bx);
context.push(context.ax);
fadescreendowns(context);
- context.data.byte(387) = 7;
- context.data.byte(388) = 1;
+ context.ds.byte(387) = 7;
+ context.ds.byte(388) = 1;
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
notfadeend:
context._cmp(context.ax, 340);
if (!context.flags.z()) goto notendseq;
- context.data.byte(103) = 1;
+ context.ds.byte(103) = 1;
notendseq:
showgamereel(context);
- context.al = context.data.byte(149);
- context.data.byte(context.bx+2) = context.al;
- context.ax = context.data.word(context.bx+3);
+ context.al = context.ds.byte(149);
+ context.ds.byte(context.bx+2) = context.al;
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 145);
if (!context.flags.z()) goto notendcreds;
- context.data.word(context.bx+3) = 146;
+ context.ds.word(context.bx+3) = 146;
rollendcredits(context);
notendcreds:
return;
@@ -1864,26 +1864,26 @@ static void rollendcredits(Context & context) {
context.al = 16;
context.ah = 255;
playchannel0(context);
- context.data.byte(386) = 7;
- context.data.byte(387) = 0;
- context.data.byte(388) = -1;
+ context.ds.byte(386) = 7;
+ context.ds.byte(387) = 0;
+ context.ds.byte(388) = -1;
context.cl = 160;
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
multiget(context);
- context.es = context.data.word(466);
+ context.es = context.ds.word(466);
context.si = 3*2;
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context.si = context.ax;
context._add(context.si, 66*2);
context.cx = 254;
endcredits1:
context.push(context.cx);
context.bx = 10;
- context.cx = context.data.word(77);
+ context.cx = context.ds.word(77);
endcredits2:
context.push(context.cx);
context.push(context.si);
@@ -1895,7 +1895,7 @@ endcredits2:
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
multiput(context);
vsync(context);
@@ -1914,7 +1914,7 @@ onelot:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.data.word(77));
+ context._add(context.bx, context.ds.word(77));
context.cx = context.pop();
if (--context.cx) goto onelot;
vsync(context);
@@ -1932,7 +1932,7 @@ onelot:
if (--context.cx) goto endcredits2;
context.cx = context.pop();
looknext:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (context.flags.z()) goto gotnext;
@@ -1949,13 +1949,13 @@ gotnext:
}
static void priest(Context & context) {
- context._cmp(context.data.word(context.bx+3), 8);
+ context._cmp(context.ds.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.ds.byte(234) = 0;
+ context.ds.word(21) = 2;
checkspeed(context);
if (!context.flags.z()) goto priestwait;
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
context.push(context.es);
context.push(context.bx);
priesttext(context);
@@ -1968,22 +1968,22 @@ priestspoken:
}
static void madmanstelly(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 307);
if (!context.flags.z()) goto notendtelly;
context.ax = 300;
notendtelly:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
showgamereel(context);
return;
}
static void madman(Context & context) {
- context.data.word(21) = 2;
+ context.ds.word(21) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 364);
if (!context.flags.c()) goto ryansded;
context._cmp(context.ax, 10);
@@ -1996,46 +1996,46 @@ static void madman(Context & context) {
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(64) = -1;
- context.data.byte(69) = 0;
+ context.ds.byte(64) = -1;
+ context.ds.byte(69) = 0;
notfirstmad:
context._add(context.ax, 1);
context._cmp(context.ax, 294);
if (context.flags.z()) goto madmanspoken;
context._cmp(context.ax, 66);
if (!context.flags.z()) goto nomadspeak;
- context._add(context.data.byte(64), 1);
+ context._add(context.ds.byte(64), 1);
context.push(context.es);
context.push(context.bx);
madmantext(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 53;
- context._cmp(context.data.byte(64), 62);
+ context._cmp(context.ds.byte(64), 62);
if (context.flags.c()) goto nomadspeak;
- context._cmp(context.data.byte(64), 68);
+ context._cmp(context.ds.byte(64), 68);
if (context.flags.z()) goto killryan;
- context._cmp(context.data.byte(65), 8);
+ context._cmp(context.ds.byte(65), 8);
if (!context.flags.z()) goto nomadspeak;
- context.data.byte(64) = 70;
- context.data.byte(65) = -1;
- context.data.byte(53) = 1;
+ context.ds.byte(64) = 70;
+ context.ds.byte(65) = -1;
+ context.ds.byte(53) = 1;
context.ax = 67;
goto nomadspeak;
killryan:
context.ax = 310;
nomadspeak:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
nomadspeed:
showgamereel(context);
- context.al = context.data.byte(148);
- context.data.byte(context.bx+1) = context.al;
+ context.al = context.ds.byte(148);
+ context.ds.byte(context.bx+1) = context.al;
madmode(context);
return;
madmanspoken:
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.ds.byte(391), 1);
if (context.flags.z()) goto alreadywon;
- context.data.byte(391) = 1;
+ context.ds.byte(391) = 1;
context.push(context.es);
context.push(context.bx);
getridoftemptext(context);
@@ -2044,18 +2044,18 @@ madmanspoken:
alreadywon:
return;
ryansded:
- context.data.byte(56) = 2;
+ context.ds.byte(56) = 2;
showgamereel(context);
return;
}
static void madmantext(Context & context) {
- context._cmp(context.data.byte(64), 61);
+ context._cmp(context.ds.byte(64), 61);
if (!context.flags.c()) goto nomadtext;
- context.al = context.data.byte(64);
+ context.al = context.ds.byte(64);
context._and(context.al, 3);
if (!context.flags.z()) goto nomadtext;
- context.al = context.data.byte(64);
+ context.al = context.ds.byte(64);
context._shr(context.al, 1);
context._shr(context.al, 1);
context._add(context.al, 47);
@@ -2070,26 +2070,26 @@ nomadtext:
}
static void madmode(Context & context) {
- context.data.word(21) = 2;
- context.data.byte(234) = 0;
- context._cmp(context.data.byte(64), 63);
+ context.ds.word(21) = 2;
+ context.ds.byte(234) = 0;
+ context._cmp(context.ds.byte(64), 63);
if (context.flags.c()) goto iswatchmad;
- context._cmp(context.data.byte(64), 68);
+ context._cmp(context.ds.byte(64), 68);
if (!context.flags.c()) goto iswatchmad;
- context.data.byte(234) = 2;
+ context.ds.byte(234) = 2;
iswatchmad:
return;
}
static void priesttext(Context & context) {
- context._cmp(context.data.word(context.bx+3), 2);
+ context._cmp(context.ds.word(context.bx+3), 2);
if (context.flags.c()) goto nopriesttext;
- context._cmp(context.data.word(context.bx+3), 7);
+ context._cmp(context.ds.word(context.bx+3), 7);
if (!context.flags.c()) goto nopriesttext;
- context.al = context.data.byte(context.bx+3);
+ context.al = context.ds.byte(context.bx+3);
context._and(context.al, 1);
if (!context.flags.z()) goto nopriesttext;
- context.al = context.data.byte(context.bx+3);
+ context.al = context.ds.byte(context.bx+3);
context._shr(context.al, 1);
context._add(context.al, 50);
context.bl = 72;
@@ -2102,7 +2102,7 @@ nopriesttext:
}
static void textforend(Context & context) {
- context._cmp(context.data.byte(139), 20);
+ context._cmp(context.ds.byte(139), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
context.bl = 34;
@@ -2110,7 +2110,7 @@ static void textforend(Context & context) {
context.cx = 60;
goto gotendtext;
notendtext1:
- context._cmp(context.data.byte(139), 65);
+ context._cmp(context.ds.byte(139), 65);
if (!context.flags.z()) goto notendtext2;
context.al = 1;
context.bl = 34;
@@ -2118,7 +2118,7 @@ notendtext1:
context.cx = 60;
goto gotendtext;
notendtext2:
- context._cmp(context.data.byte(139), 110);
+ context._cmp(context.ds.byte(139), 110);
if (!context.flags.z()) goto notendtext3;
context.al = 2;
context.bl = 34;
@@ -2135,7 +2135,7 @@ gotendtext:
}
static void textformonk(Context & context) {
- context._cmp(context.data.byte(139), 1);
+ context._cmp(context.ds.byte(139), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
context.bl = 68;
@@ -2143,7 +2143,7 @@ static void textformonk(Context & context) {
context.cx = 120;
goto gotmonktext;
notmonktext1:
- context._cmp(context.data.byte(139), 5);
+ context._cmp(context.ds.byte(139), 5);
if (!context.flags.z()) goto notmonktext2;
context.al = 20;
context.bl = 68;
@@ -2151,7 +2151,7 @@ notmonktext1:
context.cx = 120;
goto gotmonktext;
notmonktext2:
- context._cmp(context.data.byte(139), 9);
+ context._cmp(context.ds.byte(139), 9);
if (!context.flags.z()) goto notmonktext3;
context.al = 21;
context.bl = 48;
@@ -2159,7 +2159,7 @@ notmonktext2:
context.cx = 120;
goto gotmonktext;
notmonktext3:
- context._cmp(context.data.byte(139), 13);
+ context._cmp(context.ds.byte(139), 13);
if (!context.flags.z()) goto notmonktext4;
context.al = 22;
context.bl = 68;
@@ -2167,7 +2167,7 @@ notmonktext3:
context.cx = 120;
goto gotmonktext;
notmonktext4:
- context._cmp(context.data.byte(139), 17);
+ context._cmp(context.ds.byte(139), 17);
if (!context.flags.z()) goto notmonktext5;
context.al = 23;
context.bl = 68;
@@ -2175,7 +2175,7 @@ notmonktext4:
context.cx = 120;
goto gotmonktext;
notmonktext5:
- context._cmp(context.data.byte(139), 21);
+ context._cmp(context.ds.byte(139), 21);
if (!context.flags.z()) goto notmonktext6;
context.al = 24;
context.bl = 68;
@@ -2183,7 +2183,7 @@ notmonktext5:
context.cx = 120;
goto gotmonktext;
notmonktext6:
- context._cmp(context.data.byte(139), 25);
+ context._cmp(context.ds.byte(139), 25);
if (!context.flags.z()) goto notmonktext7;
context.al = 25;
context.bl = 68;
@@ -2191,7 +2191,7 @@ notmonktext6:
context.cx = 120;
goto gotmonktext;
notmonktext7:
- context._cmp(context.data.byte(139), 29);
+ context._cmp(context.ds.byte(139), 29);
if (!context.flags.z()) goto notmonktext8;
context.al = 26;
context.bl = 68;
@@ -2199,7 +2199,7 @@ notmonktext7:
context.cx = 120;
goto gotmonktext;
notmonktext8:
- context._cmp(context.data.byte(139), 33);
+ context._cmp(context.ds.byte(139), 33);
if (!context.flags.z()) goto notmonktext9;
context.al = 27;
context.bl = 68;
@@ -2207,7 +2207,7 @@ notmonktext8:
context.cx = 120;
goto gotmonktext;
notmonktext9:
- context._cmp(context.data.byte(139), 37);
+ context._cmp(context.ds.byte(139), 37);
if (!context.flags.z()) goto notmonktext10;
context.al = 28;
context.bl = 68;
@@ -2215,7 +2215,7 @@ notmonktext9:
context.cx = 120;
goto gotmonktext;
notmonktext10:
- context._cmp(context.data.byte(139), 41);
+ context._cmp(context.ds.byte(139), 41);
if (!context.flags.z()) goto notmonktext11;
context.al = 29;
context.bl = 68;
@@ -2223,7 +2223,7 @@ notmonktext10:
context.cx = 120;
goto gotmonktext;
notmonktext11:
- context._cmp(context.data.byte(139), 45);
+ context._cmp(context.ds.byte(139), 45);
if (!context.flags.z()) goto notmonktext12;
context.al = 30;
context.bl = 68;
@@ -2231,7 +2231,7 @@ notmonktext11:
context.cx = 120;
goto gotmonktext;
notmonktext12:
- context._cmp(context.data.byte(139), 49);
+ context._cmp(context.ds.byte(139), 49);
if (!context.flags.z()) goto notmonktext13;
context.al = 31;
context.bl = 68;
@@ -2239,7 +2239,7 @@ notmonktext12:
context.cx = 220;
goto gotmonktext;
notmonktext13:
- context._cmp(context.data.byte(139), 53);
+ context._cmp(context.ds.byte(139), 53);
if (!context.flags.z()) goto notendtitles;
fadescreendowns(context);
notendtitles:
@@ -2253,11 +2253,11 @@ oktalk:
}
static void drunk(Context & context) {
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.ds.byte(42), 0);
if (!context.flags.z()) goto trampgone;
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
- context.data.byte(context.bx+7) = context.al;
+ context.ds.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
trampgone:
@@ -2268,7 +2268,7 @@ static void advisor(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto noadvisor;
goto noadvisor;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 123);
if (!context.flags.z()) goto notendadvis;
@@ -2285,7 +2285,7 @@ notendadvis:
if (context.flags.c()) goto gotadvframe;
context.ax = 106;
gotadvframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
noadvisor:
showgamereel(context);
addtopeoplelist(context);
@@ -2295,7 +2295,7 @@ noadvisor:
static void copper(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto nocopper;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 94);
if (!context.flags.z()) goto notendcopper;
@@ -2315,7 +2315,7 @@ mightwait:
if (context.flags.c()) goto gotcopframe;
context._sub(context.ax, 1);
gotcopframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
nocopper:
showgamereel(context);
addtopeoplelist(context);
@@ -2323,41 +2323,41 @@ nocopper:
}
static void sparky(Context & context) {
- context._cmp(context.data.word(16), 0);
+ context._cmp(context.ds.word(16), 0);
if (context.flags.z()) goto animsparky;
- context.data.byte(context.bx+7) = 3;
+ context.ds.byte(context.bx+7) = 3;
goto animsparky;
animsparky:
checkspeed(context);
if (!context.flags.z()) goto finishsparky;
- context._cmp(context.data.word(context.bx+3), 34);
+ context._cmp(context.ds.word(context.bx+3), 34);
if (!context.flags.z()) goto notsparky1;
randomnumber(context);
context._cmp(context.al, 30);
if (context.flags.c()) goto dosparky;
- context.data.word(context.bx+3) = 27;
+ context.ds.word(context.bx+3) = 27;
goto finishsparky;
notsparky1:
- context._cmp(context.data.word(context.bx+3), 48);
+ context._cmp(context.ds.word(context.bx+3), 48);
if (!context.flags.z()) goto dosparky;
- context.data.word(context.bx+3) = 27;
+ context.ds.word(context.bx+3) = 27;
goto finishsparky;
dosparky:
- context._add(context.data.word(context.bx+3), 1);
+ context._add(context.ds.word(context.bx+3), 1);
finishsparky:
showgamereel(context);
addtopeoplelist(context);
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedsparky;
- context.data.byte(49) = 1;
+ context.ds.byte(49) = 1;
nottalkedsparky:
return;
}
static void train(Context & context) {
return;
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 21);
if (!context.flags.c()) goto notrainyet;
context._add(context.ax, 1);
@@ -2366,13 +2366,13 @@ notrainyet:
randomnumber(context);
context._cmp(context.al, 253);
if (context.flags.c()) goto notrainatall;
- context._cmp(context.data.byte(475), 5);
+ context._cmp(context.ds.byte(475), 5);
if (!context.flags.z()) goto notrainatall;
- context._cmp(context.data.byte(477), 5);
+ context._cmp(context.ds.byte(477), 5);
if (!context.flags.z()) goto notrainatall;
context.ax = 5;
gottrainframe:
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
showgamereel(context);
notrainatall:
return;
@@ -2382,45 +2382,45 @@ static void addtopeoplelist(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.bx);
- context.cl = context.data.byte(context.bx+7);
- context.ax = context.data.word(context.bx+3);
- context.bx = context.data.word(18);
- context.es = context.data.word(412);
- context.data.word(context.bx) = context.ax;
+ context.cl = context.ds.byte(context.bx+7);
+ context.ax = context.ds.word(context.bx+3);
+ context.bx = context.ds.word(18);
+ context.es = context.ds.word(412);
+ context.ds.word(context.bx) = context.ax;
context.ax = context.pop();
- context.data.word(context.bx+2) = context.ax;
- context.data.byte(context.bx+4) = context.cl;
+ context.ds.word(context.bx+2) = context.ax;
+ context.ds.byte(context.bx+4) = context.cl;
context.bx = context.pop();
context.es = context.pop();
- context._add(context.data.word(18), 5);
+ context._add(context.ds.word(18), 5);
return;
}
static void showgamereel(Context & context) {
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
- context.data.word(239) = context.ax;
+ context.ds.word(239) = context.ax;
context.push(context.es);
context.push(context.bx);
plotreel(context);
context.bx = context.pop();
context.es = context.pop();
- context.ax = context.data.word(239);
- context.data.word(context.bx+3) = context.ax;
+ context.ax = context.ds.word(239);
+ context.ds.word(context.bx+3) = context.ax;
noshow:
return;
}
static void checkspeed(Context & context) {
- context._cmp(context.data.byte(65), -1);
+ context._cmp(context.ds.byte(65), -1);
if (!context.flags.z()) goto forcenext;
- context._add(context.data.byte(context.bx+6), 1);
- context.al = context.data.byte(context.bx+6);
- context._cmp(context.al, context.data.byte(context.bx+5));
+ context._add(context.ds.byte(context.bx+6), 1);
+ context.al = context.ds.byte(context.bx+6);
+ context._cmp(context.al, context.ds.byte(context.bx+5));
if (!context.flags.z()) goto notspeed;
context.al = 0;
- context.data.byte(context.bx+6) = context.al;
+ context.ds.byte(context.bx+6) = context.al;
context._cmp(context.al, context.al);
notspeed:
return;
@@ -2430,7 +2430,7 @@ forcenext:
}
static void clearsprites(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = 255;
context.cx = 32*16;
@@ -2439,21 +2439,21 @@ static void clearsprites(Context & context) {
}
static void makesprite(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
_tmp17:
- context._cmp(context.data.byte(context.bx+15), 255);
+ context._cmp(context.ds.byte(context.bx+15), 255);
if (context.flags.z()) goto _tmp17a;
context._add(context.bx, 32);
goto _tmp17;
_tmp17a:
- context.data.word(context.bx) = context.cx;
- context.data.word(context.bx+10) = context.si;
- context.data.word(context.bx+6) = context.dx;
- context.data.word(context.bx+8) = context.di;
- context.data.word(context.bx+2) = 0x0ffff;
- context.data.byte(context.bx+15) = 0;
- context.data.byte(context.bx+18) = 0;
+ context.ds.word(context.bx) = context.cx;
+ context.ds.word(context.bx+10) = context.si;
+ context.ds.word(context.bx+6) = context.dx;
+ context.ds.word(context.bx+8) = context.di;
+ context.ds.word(context.bx+2) = 0x0ffff;
+ context.ds.byte(context.bx+15) = 0;
+ context.ds.byte(context.bx+18) = 0;
return;
}
@@ -2466,30 +2466,30 @@ static void delsprite(Context & context) {
}
static void spriteupdate(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
- context.al = context.data.byte(63);
- context.data.byte(context.bx+31) = context.al;
- context.es = context.data.word(412);
+ context.al = context.ds.byte(63);
+ context.ds.byte(context.bx+31) = context.al;
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
_tmp18:
context.push(context.cx);
context.push(context.bx);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto _tmp18a;
context.push(context.es);
context.push(context.ds);
- context.cx = context.data.word(context.bx+2);
- context.data.word(context.bx+24) = context.cx;
+ context.cx = context.ds.word(context.bx+2);
+ context.ds.word(context.bx+24) = context.cx;
__dispatch_call(context, context.ax);
context.ds = context.pop();
context.es = context.pop();
_tmp18a:
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(186), 1);
+ context._cmp(context.ds.byte(186), 1);
if (context.flags.z()) goto _tmp18b;
context._add(context.bx, 32);
if (--context.cx) goto _tmp18;
@@ -2498,23 +2498,23 @@ _tmp18b:
}
static void printsprites(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.cx = 0;
priorityloop:
context.push(context.cx);
- context.data.byte(182) = context.cl;
+ context.ds.byte(182) = context.cl;
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
prtspriteloop:
context.push(context.cx);
context.push(context.bx);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto skipsprite;
- context.al = context.data.byte(182);
- context._cmp(context.al, context.data.byte(context.bx+23));
+ context.al = context.ds.byte(182);
+ context._cmp(context.al, context.ds.byte(context.bx+23));
if (!context.flags.z()) goto skipsprite;
- context._cmp(context.data.byte(context.bx+31), 1);
+ context._cmp(context.ds.byte(context.bx+31), 1);
if (context.flags.z()) goto skipsprite;
printasprite(context);
skipsprite:
@@ -2533,30 +2533,30 @@ static void printasprite(Context & context) {
context.push(context.es);
context.push(context.bx);
context.si = context.bx;
- context.ds = context.data.word(context.si+6);
- context.al = context.data.byte(context.si+11);
+ context.ds = context.ds.word(context.si+6);
+ context.al = context.ds.byte(context.si+11);
context.ah = 0;
context._cmp(context.al, 220);
if (context.flags.c()) goto notnegative1;
context.ah = 255;
notnegative1:
context.bx = context.ax;
- context._add(context.bx, context.data.word(119));
- context.al = context.data.byte(context.si+10);
+ context._add(context.bx, context.ds.word(119));
+ context.al = context.ds.byte(context.si+10);
context.ah = 0;
context._cmp(context.al, 220);
if (context.flags.c()) goto notnegative2;
context.ah = 255;
notnegative2:
context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context.al = context.data.byte(context.si+15);
+ context._add(context.di, context.ds.word(117));
+ context.al = context.ds.byte(context.si+15);
context.ah = 0;
- context._cmp(context.data.byte(context.si+30), 0);
+ context._cmp(context.ds.byte(context.si+30), 0);
if (context.flags.z()) goto steadyframe;
context.ah = 8;
steadyframe:
- context._cmp(context.data.byte(182), 6);
+ context._cmp(context.ds.byte(182), 6);
if (!context.flags.z()) goto notquickp;
notquickp:
showframe(context);
@@ -2591,7 +2591,7 @@ static void checkone(Context & context) {
context.cx = 3;
context._mul(context.cx);
context.si = context.ax;
- context.ds = context.data.word(412);
+ context.ds = context.ds.word(412);
context._add(context.si, 0+(228*13)+32+60+(32*32));
context._lodsw();
context.cx = context.ax;
@@ -2601,90 +2601,90 @@ static void checkone(Context & context) {
}
static void findsource(Context & context) {
- context.ax = context.data.word(160);
+ context.ax = context.ds.word(160);
context._cmp(context.ax, 160);
if (!context.flags.c()) goto over1000;
- context.ds = context.data.word(430);
- context.data.word(244) = 0;
+ context.ds = context.ds.word(430);
+ context.ds.word(244) = 0;
return;
over1000:
context._cmp(context.ax, 320);
if (!context.flags.c()) goto over1001;
- context.ds = context.data.word(432);
- context.data.word(244) = 160;
+ context.ds = context.ds.word(432);
+ context.ds.word(244) = 160;
return;
over1001:
- context.ds = context.data.word(434);
- context.data.word(244) = 320;
+ context.ds = context.ds.word(434);
+ context.ds.word(244) = 320;
return;
}
static void initman(Context & context) {
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
+ context.al = context.ds.byte(151);
+ context.ah = context.ds.byte(152);
context.si = context.ax;
context.cx = 49464;
- context.dx = context.data.word(414);
+ context.dx = context.ds.word(414);
context.di = 0;
makesprite(context);
- context.data.byte(context.bx+23) = 4;
- context.data.byte(context.bx+22) = 0;
- context.data.byte(context.bx+29) = 0;
+ context.ds.byte(context.bx+23) = 4;
+ context.ds.byte(context.bx+22) = 0;
+ context.ds.byte(context.bx+29) = 0;
return;
}
static void mainman(Context & context) {
- context._cmp(context.data.byte(187), 1);
+ context._cmp(context.ds.byte(187), 1);
if (!context.flags.z()) goto notinnewroom;
- context.data.byte(187) = 0;
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
- context.data.word(context.bx+10) = context.ax;
- context.data.byte(context.bx+29) = 0;
+ context.ds.byte(187) = 0;
+ context.al = context.ds.byte(151);
+ context.ah = context.ds.byte(152);
+ context.ds.word(context.bx+10) = context.ax;
+ context.ds.byte(context.bx+29) = 0;
goto executewalk;
notinnewroom:
- context._sub(context.data.byte(context.bx+22), 1);
- context._cmp(context.data.byte(context.bx+22), -1);
+ context._sub(context.ds.byte(context.bx+22), 1);
+ context._cmp(context.ds.byte(context.bx+22), -1);
if (context.flags.z()) goto executewalk;
return;
executewalk:
- context.data.byte(context.bx+22) = 0;
- context.al = context.data.byte(135);
- context._cmp(context.al, context.data.byte(133));
+ context.ds.byte(context.bx+22) = 0;
+ context.al = context.ds.byte(135);
+ context._cmp(context.al, context.ds.byte(133));
if (context.flags.z()) goto facingok;
aboutturn(context);
goto notwalk;
facingok:
- context._cmp(context.data.byte(136), 0);
+ context._cmp(context.ds.byte(136), 0);
if (context.flags.z()) goto alreadyturned;
- context._cmp(context.data.byte(492), 254);
+ context._cmp(context.ds.byte(492), 254);
if (!context.flags.z()) goto alreadyturned;
- context.data.byte(473) = 1;
- context.al = context.data.byte(133);
- context._cmp(context.al, context.data.byte(134));
+ context.ds.byte(473) = 1;
+ context.al = context.ds.byte(133);
+ context._cmp(context.al, context.ds.byte(134));
if (!context.flags.z()) goto alreadyturned;
checkforexit(context);
alreadyturned:
- context.data.byte(136) = 0;
- context._cmp(context.data.byte(492), 254);
+ context.ds.byte(136) = 0;
+ context._cmp(context.ds.byte(492), 254);
if (!context.flags.z()) goto walkman;
- context.data.byte(context.bx+29) = 0;
+ context.ds.byte(context.bx+29) = 0;
goto notwalk;
walkman:
- context.al = context.data.byte(context.bx+29);
+ context.al = context.ds.byte(context.bx+29);
context._add(context.al, 1);
context._cmp(context.al, 11);
if (!context.flags.z()) goto notanimend1;
context.al = 1;
notanimend1:
- context.data.byte(context.bx+29) = context.al;
+ context.ds.byte(context.bx+29) = context.al;
walking(context);
- context._cmp(context.data.byte(492), 254);
+ context._cmp(context.ds.byte(492), 254);
if (context.flags.z()) goto afterwalk;
- context.al = context.data.byte(133);
+ context.al = context.ds.byte(133);
context._and(context.al, 1);
if (context.flags.z()) goto isdouble;
- context.al = context.data.byte(context.bx+29);
+ context.al = context.ds.byte(context.bx+29);
context._cmp(context.al, 2);
if (context.flags.z()) goto afterwalk;
context._cmp(context.al, 7);
@@ -2692,37 +2692,37 @@ notanimend1:
isdouble:
walking(context);
afterwalk:
- context._cmp(context.data.byte(492), 254);
+ context._cmp(context.ds.byte(492), 254);
if (!context.flags.z()) goto notwalk;
- context.al = context.data.byte(135);
- context._cmp(context.al, context.data.byte(133));
+ context.al = context.ds.byte(135);
+ context._cmp(context.al, context.ds.byte(133));
if (!context.flags.z()) goto notwalk;
- context.data.byte(473) = 1;
- context.al = context.data.byte(133);
- context._cmp(context.al, context.data.byte(134));
+ context.ds.byte(473) = 1;
+ context.al = context.ds.byte(133);
+ context._cmp(context.al, context.ds.byte(134));
if (!context.flags.z()) goto notwalk;
checkforexit(context);
notwalk:
- context.al = context.data.byte(133);
+ context.al = context.ds.byte(133);
context.ah = 0;
context.di = 1105;
context._add(context.di, context.ax);
- context.al = context.data.byte(context.di);
- context._add(context.al, context.data.byte(context.bx+29));
- context.data.byte(context.bx+15) = context.al;
- context.ax = context.data.word(context.bx+10);
- context.data.byte(151) = context.al;
- context.data.byte(152) = context.ah;
+ context.al = context.ds.byte(context.di);
+ context._add(context.al, context.ds.byte(context.bx+29));
+ context.ds.byte(context.bx+15) = context.al;
+ context.ax = context.ds.word(context.bx+10);
+ context.ds.byte(151) = context.al;
+ context.ds.byte(152) = context.ah;
return;
}
static void aboutturn(Context & context) {
- context._cmp(context.data.byte(136), 1);
+ context._cmp(context.ds.byte(136), 1);
if (context.flags.z()) goto incdir;
- context._cmp(context.data.byte(136), -1);
+ context._cmp(context.ds.byte(136), -1);
if (context.flags.z()) goto decdir;
- context.al = context.data.byte(133);
- context._sub(context.al, context.data.byte(135));
+ context.al = context.ds.byte(133);
+ context._sub(context.al, context.ds.byte(135));
if (!context.flags.c()) goto higher;
context._neg(context.al);
context._cmp(context.al, 4);
@@ -2733,37 +2733,37 @@ higher:
if (!context.flags.c()) goto incdir;
goto decdir;
incdir:
- context.data.byte(136) = 1;
- context.al = context.data.byte(133);
+ context.ds.byte(136) = 1;
+ context.al = context.ds.byte(133);
context._add(context.al, 1);
context._and(context.al, 7);
- context.data.byte(133) = context.al;
- context.data.byte(context.bx+29) = 0;
+ context.ds.byte(133) = context.al;
+ context.ds.byte(context.bx+29) = 0;
return;
decdir:
- context.data.byte(136) = -1;
- context.al = context.data.byte(133);
+ context.ds.byte(136) = -1;
+ context.al = context.ds.byte(133);
context._sub(context.al, 1);
context._and(context.al, 7);
- context.data.byte(133) = context.al;
- context.data.byte(context.bx+29) = 0;
+ context.ds.byte(133) = context.al;
+ context.ds.byte(context.bx+29) = 0;
return;
}
static void walking(Context & context) {
- context._cmp(context.data.byte(493), 0);
+ context._cmp(context.ds.byte(493), 0);
if (context.flags.z()) goto normalwalk;
- context.al = context.data.byte(492);
+ context.al = context.ds.byte(492);
context._sub(context.al, 1);
- context.data.byte(492) = context.al;
+ context.ds.byte(492) = context.al;
context._cmp(context.al, 200);
if (!context.flags.c()) goto endofline;
goto continuewalk;
normalwalk:
- context.al = context.data.byte(492);
+ context.al = context.ds.byte(492);
context._add(context.al, 1);
- context.data.byte(492) = context.al;
- context._cmp(context.al, context.data.byte(494));
+ context.ds.byte(492) = context.al;
+ context._cmp(context.al, context.ds.byte(494));
if (!context.flags.c()) goto endofline;
continuewalk:
context.ah = 0;
@@ -2774,20 +2774,20 @@ continuewalk:
context.es = context.dx;
context.bx = 8344;
context._add(context.bx, context.ax);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context.bx = context.pop();
context.es = context.pop();
stillline:
- context.data.word(context.bx+10) = context.ax;
+ context.ds.word(context.bx+10) = context.ax;
return;
endofline:
- context.data.byte(492) = 254;
- context.al = context.data.byte(478);
- context.data.byte(475) = context.al;
- context._cmp(context.al, context.data.byte(477));
+ context.ds.byte(492) = 254;
+ context.al = context.ds.byte(478);
+ context.ds.byte(475) = context.al;
+ context._cmp(context.al, context.ds.byte(477));
if (context.flags.z()) goto finishedwalk;
- context.al = context.data.byte(477);
- context.data.byte(478) = context.al;
+ context.al = context.ds.byte(477);
+ context.ds.byte(478) = context.al;
context.push(context.es);
context.push(context.bx);
autosetwalk(context);
@@ -2803,42 +2803,42 @@ static void facerightway(Context & context) {
context.push(context.es);
context.push(context.bx);
getroomspaths(context);
- context.al = context.data.byte(475);
+ context.al = context.ds.byte(475);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.data.byte(context.bx+7);
- context.data.byte(135) = context.al;
- context.data.byte(134) = context.al;
+ context.al = context.ds.byte(context.bx+7);
+ context.ds.byte(135) = context.al;
+ context.ds.byte(134) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
}
static void checkforexit(Context & context) {
- context.cl = context.data.byte(151);
+ context.cl = context.ds.byte(151);
context._add(context.cl, 12);
- context.ch = context.data.byte(152);
+ context.ch = context.ds.byte(152);
context._add(context.ch, 12);
checkone(context);
- context.data.byte(153) = context.cl;
- context.data.byte(154) = context.ch;
- context.data.byte(155) = context.dl;
- context.data.byte(156) = context.dh;
- context.al = context.data.byte(153);
+ context.ds.byte(153) = context.cl;
+ context.ds.byte(154) = context.ch;
+ context.ds.byte(155) = context.dl;
+ context.ds.byte(156) = context.dh;
+ context.al = context.ds.byte(153);
context._test(context.al, 64);
if (context.flags.z()) goto notnewdirect;
- context.al = context.data.byte(154);
- context.data.byte(189) = context.al;
+ context.al = context.ds.byte(154);
+ context.ds.byte(189) = context.al;
return;
notnewdirect:
context._test(context.al, 32);
if (context.flags.z()) goto notleave;
context.push(context.es);
context.push(context.bx);
- context._cmp(context.data.byte(184), 2);
+ context._cmp(context.ds.byte(184), 2);
if (!context.flags.z()) goto notlouis;
context.bl = 0;
context.push(context.bx);
@@ -2873,17 +2873,17 @@ notravmessage:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- context.al = context.data.byte(133);
+ context.al = context.ds.byte(133);
context._add(context.al, 4);
context._and(context.al, 7);
- context.data.byte(135) = context.al;
+ context.ds.byte(135) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
notlouis:
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(60) = 1;
+ context.ds.byte(60) = 1;
return;
notleave:
context._test(context.al, 4);
@@ -2912,12 +2912,12 @@ notanup:
static void adjustdown(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.data.byte(149), 10);
- context.al = context.data.byte(154);
+ context._add(context.ds.byte(149), 10);
+ context.al = context.ds.byte(154);
context.cl = 16;
context._mul(context.cl);
- context.data.byte(context.bx+11) = context.al;
- context.data.byte(186) = 1;
+ context.ds.byte(context.bx+11) = context.al;
+ context.ds.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2926,12 +2926,12 @@ static void adjustdown(Context & context) {
static void adjustup(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._sub(context.data.byte(149), 10);
- context.al = context.data.byte(154);
+ context._sub(context.ds.byte(149), 10);
+ context.al = context.ds.byte(154);
context.cl = 16;
context._mul(context.cl);
- context.data.byte(context.bx+11) = context.al;
- context.data.byte(186) = 1;
+ context.ds.byte(context.bx+11) = context.al;
+ context.ds.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2940,13 +2940,13 @@ static void adjustup(Context & context) {
static void adjustleft(Context & context) {
context.push(context.es);
context.push(context.bx);
- context.data.byte(153) = 0;
- context._sub(context.data.byte(148), 11);
- context.al = context.data.byte(154);
+ context.ds.byte(153) = 0;
+ context._sub(context.ds.byte(148), 11);
+ context.al = context.ds.byte(154);
context.cl = 16;
context._mul(context.cl);
- context.data.byte(context.bx+10) = context.al;
- context.data.byte(186) = 1;
+ context.ds.byte(context.bx+10) = context.al;
+ context.ds.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2955,24 +2955,24 @@ static void adjustleft(Context & context) {
static void adjustright(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.data.byte(148), 11);
- context.al = context.data.byte(154);
+ context._add(context.ds.byte(148), 11);
+ context.al = context.ds.byte(154);
context.cl = 16;
context._mul(context.cl);
context._sub(context.al, 2);
- context.data.byte(context.bx+10) = context.al;
- context.data.byte(186) = 1;
+ context.ds.byte(context.bx+10) = context.al;
+ context.ds.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
}
static void reminders(Context & context) {
- context._cmp(context.data.byte(184), 24);
+ context._cmp(context.ds.byte(184), 24);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.data.byte(148), 44);
+ context._cmp(context.ds.byte(148), 44);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.data.byte(2), 0);
+ context._cmp(context.ds.byte(2), 0);
if (!context.flags.z()) goto notfirst;
context.al = 'D';
context.ah = 'K';
@@ -2987,7 +2987,7 @@ static void reminders(Context & context) {
findexobject(context);
context._cmp(context.al, 114);
if (context.flags.z()) goto forgotone;
- context.ax = context.data.word(context.bx+2);
+ context.ax = context.ds.word(context.bx+2);
context._cmp(context.al, 4);
if (!context.flags.z()) goto forgotone;
context._cmp(context.ah, 255);
@@ -3000,7 +3000,7 @@ static void reminders(Context & context) {
compare(context);
if (!context.flags.z()) goto forgotone;
havegotcard:
- context._add(context.data.byte(2), 1);
+ context._add(context.ds.byte(2), 1);
notfirst:
return;
forgotone:
@@ -3016,23 +3016,23 @@ notinedenslift:
}
static void initrain(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.bx = 1113;
checkmorerain:
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto finishinitrain;
- context._cmp(context.al, context.data.byte(184));
+ context._cmp(context.al, context.ds.byte(184));
if (!context.flags.z()) goto checkrain;
- context.al = context.data.byte(context.bx+1);
- context._cmp(context.al, context.data.byte(148));
+ context.al = context.ds.byte(context.bx+1);
+ context._cmp(context.al, context.ds.byte(148));
if (!context.flags.z()) goto checkrain;
- context.al = context.data.byte(context.bx+2);
- context._cmp(context.al, context.data.byte(149));
+ context.al = context.ds.byte(context.bx+2);
+ context._cmp(context.al, context.ds.byte(149));
if (!context.flags.z()) goto checkrain;
- context.al = context.data.byte(context.bx+3);
- context.data.byte(132) = context.al;
+ context.al = context.ds.byte(context.bx+3);
+ context.ds.byte(132) = context.al;
goto dorain;
checkrain:
context._add(context.bx, 4);
@@ -3043,26 +3043,26 @@ initraintop:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.data.byte(132));
+ context._cmp(context.al, context.ds.byte(132));
if (!context.flags.c()) goto initraintop;
context._add(context.cl, context.al);
- context._cmp(context.cl, context.data.byte(128));
+ context._cmp(context.cl, context.ds.byte(128));
if (!context.flags.c()) goto initrainside;
context.push(context.cx);
splitintolines(context);
context.cx = context.pop();
goto initraintop;
initrainside:
- context.cl = context.data.byte(128);
+ context.cl = context.ds.byte(128);
context._sub(context.cl, 1);
initrainside2:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.data.byte(132));
+ context._cmp(context.al, context.ds.byte(132));
if (!context.flags.c()) goto initrainside2;
context._add(context.ch, context.al);
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.ds.byte(129));
if (!context.flags.c()) goto finishinitrain;
context.push(context.cx);
splitintolines(context);
@@ -3083,11 +3083,11 @@ lookforlinestart:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.ds.byte(129));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
foundlinestart:
- context.data.word(context.di) = context.cx;
+ context.ds.word(context.di) = context.cx;
context.bh = 1;
lookforlineend:
getblockofpixel(context);
@@ -3097,26 +3097,26 @@ lookforlineend:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto foundlineend;
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.ds.byte(129));
if (!context.flags.c()) goto foundlineend;
context._add(context.bh, 1);
goto lookforlineend;
foundlineend:
context.push(context.cx);
- context.data.byte(context.di+2) = context.bh;
+ context.ds.byte(context.di+2) = context.bh;
randomnumber(context);
- context.data.byte(context.di+3) = context.al;
+ context.ds.byte(context.di+3) = context.al;
randomnumber(context);
- context.data.byte(context.di+4) = context.al;
+ context.ds.byte(context.di+4) = context.al;
randomnumber(context);
context._and(context.al, 3);
context._add(context.al, 4);
- context.data.byte(context.di+5) = context.al;
+ context.ds.byte(context.di+5) = context.al;
context._add(context.di, 6);
context.cx = context.pop();
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.ds.byte(129));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
endofthisline:
@@ -3127,9 +3127,9 @@ static void getblockofpixel(Context & context) {
context.push(context.cx);
context.push(context.es);
context.push(context.di);
- context.ax = context.data.word(125);
+ context.ax = context.ds.word(125);
context._add(context.cl, context.al);
- context.ax = context.data.word(127);
+ context.ax = context.ds.word(127);
context._add(context.ch, context.al);
checkone(context);
context._and(context.cl, 1);
@@ -3147,43 +3147,43 @@ failrain:
}
static void showrain(Context & context) {
- context.ds = context.data.word(414);
+ context.ds = context.ds.word(414);
context.si = 6*58;
- context.ax = context.data.word(context.si+2);
+ context.ax = context.ds.word(context.si+2);
context.si = context.ax;
context._add(context.si, 2080);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
- context.es = context.data.word(412);
- context._cmp(context.data.byte(context.bx), 255);
+ context.es = context.ds.word(412);
+ context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
morerain:
- context.es = context.data.word(412);
- context._cmp(context.data.byte(context.bx), 255);
+ context.es = context.ds.word(412);
+ context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto finishrain;
- context.al = context.data.byte(context.bx+1);
+ context.al = context.ds.byte(context.bx+1);
context.ah = 0;
- context._add(context.ax, context.data.word(119));
- context._add(context.ax, context.data.word(127));
+ context._add(context.ax, context.ds.word(119));
+ context._add(context.ax, context.ds.word(127));
context.cx = 320;
context._mul(context.cx);
- context.cl = context.data.byte(context.bx);
+ context.cl = context.ds.byte(context.bx);
context.ch = 0;
context._add(context.ax, context.cx);
- context._add(context.ax, context.data.word(117));
- context._add(context.ax, context.data.word(125));
+ context._add(context.ax, context.ds.word(117));
+ context._add(context.ax, context.ds.word(125));
context.di = context.ax;
- context.cl = context.data.byte(context.bx+2);
+ context.cl = context.ds.byte(context.bx+2);
context.ch = 0;
- context.ax = context.data.word(context.bx+3);
- context.dl = context.data.byte(context.bx+5);
+ context.ax = context.ds.word(context.bx+3);
+ context.dl = context.ds.byte(context.bx+5);
context.dh = 0;
context._sub(context.ax, context.dx);
context._and(context.ax, 511);
- context.data.word(context.bx+3) = context.ax;
+ context.ds.word(context.bx+3) = context.ax;
context._add(context.bx, 6);
context.push(context.si);
context._add(context.si, context.ax);
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.ah = 0;
context.dx = 320-2;
rainloop:
@@ -3201,20 +3201,20 @@ noplot:
context.si = context.pop();
goto morerain;
finishrain:
- context._cmp(context.data.word(521), 0);
+ context._cmp(context.ds.word(521), 0);
if (!context.flags.z()) goto nothunder;
- context._cmp(context.data.byte(184), 2);
+ context._cmp(context.ds.byte(184), 2);
if (!context.flags.z()) goto notlouisthund;
- context._cmp(context.data.byte(45), 1);
+ context._cmp(context.ds.byte(45), 1);
if (!context.flags.z()) goto nothunder;
notlouisthund:
- context._cmp(context.data.byte(184), 55);
+ context._cmp(context.ds.byte(184), 55);
if (context.flags.z()) goto nothunder;
randomnum1(context);
context._cmp(context.al, 1);
if (!context.flags.c()) goto nothunder;
context.al = 7;
- context._cmp(context.data.byte(507), 6);
+ context._cmp(context.ds.byte(507), 6);
if (context.flags.z()) goto isthunder1;
context.al = 4;
isthunder1:
@@ -3224,18 +3224,18 @@ nothunder:
}
static void backobject(Context & context) {
- context.ds = context.data.word(428);
- context.di = context.data.word(context.bx+20);
- context.al = context.data.byte(context.bx+18);
+ context.ds = context.ds.word(428);
+ context.di = context.ds.word(context.bx+20);
+ context.al = context.ds.byte(context.bx+18);
context._cmp(context.al, 0);
if (context.flags.z()) goto _tmp48z;
context._sub(context.al, 1);
- context.data.byte(context.bx+18) = context.al;
+ context.ds.byte(context.bx+18) = context.al;
goto finishback;
_tmp48z:
- context.al = context.data.byte(context.di+7);
- context.data.byte(context.bx+18) = context.al;
- context.al = context.data.byte(context.di+8);
+ context.al = context.ds.byte(context.di+7);
+ context.ds.byte(context.bx+18) = context.al;
+ context.al = context.ds.byte(context.di+8);
context._cmp(context.al, 6);
if (!context.flags.z()) goto notwidedoor;
widedoor(context);
@@ -3272,14 +3272,14 @@ finishback:
}
static void liftsprite(Context & context) {
- context.al = context.data.byte(35);
+ context.al = context.ds.byte(35);
context._cmp(context.al, 0);
if (context.flags.z()) goto liftclosed;
context._cmp(context.al, 1);
if (context.flags.z()) goto liftopen;
context._cmp(context.al, 3);
if (context.flags.z()) goto openlift;
- context.al = context.data.byte(context.bx+19);
+ context.al = context.ds.byte(context.bx+19);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishclose;
context._sub(context.al, 1);
@@ -3291,10 +3291,10 @@ static void liftsprite(Context & context) {
context.ax = context.pop();
goto pokelift;
finishclose:
- context.data.byte(35) = 0;
+ context.ds.byte(35) = 0;
return;
openlift:
- context.al = context.data.byte(context.bx+19);
+ context.al = context.ds.byte(context.bx+19);
context._cmp(context.al, 12);
if (context.flags.z()) goto endoflist;
context._add(context.al, 1);
@@ -3305,56 +3305,56 @@ openlift:
liftnoise(context);
context.ax = context.pop();
pokelift:
- context.data.byte(context.bx+19) = context.al;
+ context.ds.byte(context.bx+19) = context.al;
context.ah = 0;
context.push(context.di);
context._add(context.di, context.ax);
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
return;
endoflist:
- context.data.byte(35) = 1;
+ context.ds.byte(35) = 1;
return;
liftopen:
- context.al = context.data.byte(36);
+ context.al = context.ds.byte(36);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(40), 0);
+ context._cmp(context.ds.byte(40), 0);
if (context.flags.z()) goto nocountclose;
- context._sub(context.data.byte(40), 1);
- context._cmp(context.data.byte(40), 0);
+ context._sub(context.ds.byte(40), 1);
+ context._cmp(context.ds.byte(40), 0);
if (!context.flags.z()) goto nocountclose;
- context.data.byte(35) = 2;
+ context.ds.byte(35) = 2;
nocountclose:
context.al = 12;
goto pokelift;
liftclosed:
- context.al = context.data.byte(36);
+ context.al = context.ds.byte(36);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(39), 0);
+ context._cmp(context.ds.byte(39), 0);
if (context.flags.z()) goto nocountopen;
- context._sub(context.data.byte(39), 1);
- context._cmp(context.data.byte(39), 0);
+ context._sub(context.ds.byte(39), 1);
+ context._cmp(context.ds.byte(39), 0);
if (!context.flags.z()) goto nocountopen;
- context.data.byte(35) = 3;
+ context.ds.byte(35) = 3;
nocountopen:
context.al = 0;
goto pokelift;
}
static void liftnoise(Context & context) {
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.ds.byte(184), 5);
if (context.flags.z()) goto hissnoise;
- context._cmp(context.data.byte(184), 21);
+ context._cmp(context.ds.byte(184), 21);
if (context.flags.z()) goto hissnoise;
playchannel1(context);
return;
@@ -3370,84 +3370,84 @@ static void random(Context & context) {
context._and(context.ax, 7);
context._add(context.di, 18);
context._add(context.di, context.ax);
- context.al = context.data.byte(context.di);
+ context.al = context.ds.byte(context.di);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
return;
}
static void steady(Context & context) {
- context.al = context.data.byte(context.di+18);
- context.data.byte(context.di+17) = context.al;
- context.data.byte(context.bx+15) = context.al;
+ context.al = context.ds.byte(context.di+18);
+ context.ds.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
return;
}
static void constant(Context & context) {
- context._add(context.data.byte(context.bx+19), 1);
- context.cl = context.data.byte(context.bx+19);
+ context._add(context.ds.byte(context.bx+19), 1);
+ context.cl = context.ds.byte(context.bx+19);
context.ch = 0;
context._add(context.di, context.cx);
- context._cmp(context.data.byte(context.di+18), 255);
+ context._cmp(context.ds.byte(context.di+18), 255);
if (!context.flags.z()) goto gotconst;
context._sub(context.di, context.cx);
context.cx = 0;
- context.data.byte(context.bx+19) = context.cl;
+ context.ds.byte(context.bx+19) = context.cl;
gotconst:
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context._sub(context.di, context.cx);
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
return;
}
static void doorway(Context & context) {
- context.data.byte(193) = -24;
- context.data.byte(194) = 10;
- context.data.byte(195) = -30;
- context.data.byte(196) = 10;
+ context.ds.byte(193) = -24;
+ context.ds.byte(194) = 10;
+ context.ds.byte(195) = -30;
+ context.ds.byte(196) = 10;
dodoor(context);
return;
}
static void widedoor(Context & context) {
- context.data.byte(193) = -24;
- context.data.byte(194) = 24;
- context.data.byte(195) = -30;
- context.data.byte(196) = 24;
+ context.ds.byte(193) = -24;
+ context.ds.byte(194) = 24;
+ context.ds.byte(195) = -30;
+ context.ds.byte(196) = 24;
dodoor(context);
return;
}
static void dodoor(Context & context) {
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
- context.cl = context.data.byte(context.bx+10);
- context.ch = context.data.byte(context.bx+11);
+ context.al = context.ds.byte(151);
+ context.ah = context.ds.byte(152);
+ context.cl = context.ds.byte(context.bx+10);
+ context.ch = context.ds.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor;
context._sub(context.al, context.cl);
- context._cmp(context.al, context.data.byte(193));
+ context._cmp(context.al, context.ds.byte(193));
if (!context.flags.c()) goto upordown;
goto shutdoor;
rtofdoor:
context._sub(context.al, context.cl);
- context._cmp(context.al, context.data.byte(194));
+ context._cmp(context.al, context.ds.byte(194));
if (!context.flags.c()) goto shutdoor;
upordown:
context._cmp(context.ah, context.ch);
if (!context.flags.c()) goto botofdoor;
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.data.byte(195));
+ context._cmp(context.ah, context.ds.byte(195));
if (context.flags.c()) goto shutdoor;
goto opendoor;
botofdoor:
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.data.byte(196));
+ context._cmp(context.ah, context.ds.byte(196));
if (!context.flags.c()) goto shutdoor;
opendoor:
- context.cl = context.data.byte(context.bx+19);
- context._cmp(context.data.byte(61), 1);
+ context.cl = context.ds.byte(context.bx+19);
+ context._cmp(context.ds.byte(61), 1);
if (!context.flags.z()) goto notthrough;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough;
@@ -3457,7 +3457,7 @@ notthrough:
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound2;
context.al = 0;
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.ds.byte(184), 5);
if (!context.flags.z()) goto nothoteldoor2;
context.al = 13;
nothoteldoor2:
@@ -3466,25 +3466,25 @@ notdoorsound2:
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context._cmp(context.al, 255);
if (!context.flags.z()) goto atlast1;
context._sub(context.di, 1);
context._sub(context.cl, 1);
atlast1:
- context.data.byte(context.bx+19) = context.cl;
- context.al = context.data.byte(context.di+18);
+ context.ds.byte(context.bx+19) = context.cl;
+ context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
- context.data.byte(61) = 1;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
+ context.ds.byte(61) = 1;
return;
shutdoor:
- context.cl = context.data.byte(context.bx+19);
+ context.cl = context.ds.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.ds.byte(184), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3493,27 +3493,27 @@ notdoorsound1:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast2;
context._sub(context.cl, 1);
- context.data.byte(context.bx+19) = context.cl;
+ context.ds.byte(context.bx+19) = context.cl;
atlast2:
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.data.byte(61) = 0;
+ context.ds.byte(61) = 0;
notnearly:
return;
}
static void lockeddoorway(Context & context) {
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
- context.cl = context.data.byte(context.bx+10);
- context.ch = context.data.byte(context.bx+11);
+ context.al = context.ds.byte(151);
+ context.ah = context.ds.byte(152);
+ context.cl = context.ds.byte(context.bx+10);
+ context.ch = context.ds.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor2;
context._sub(context.al, context.cl);
@@ -3536,12 +3536,12 @@ botofdoor2:
context._cmp(context.ah, 12);
if (!context.flags.c()) goto shutdoor2;
opendoor2:
- context._cmp(context.data.byte(61), 1);
+ context._cmp(context.ds.byte(61), 1);
if (context.flags.z()) goto mustbeopen;
- context._cmp(context.data.byte(37), 1);
+ context._cmp(context.ds.byte(37), 1);
if (context.flags.z()) goto shutdoor;
mustbeopen:
- context.cl = context.data.byte(context.bx+19);
+ context.cl = context.ds.byte(context.bx+19);
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound4;
context.al = 0;
@@ -3549,15 +3549,15 @@ mustbeopen:
notdoorsound4:
context._cmp(context.cl, 6);
if (!context.flags.z()) goto noturnonyet;
- context.al = context.data.byte(38);
+ context.al = context.ds.byte(38);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
context.bx = context.pop();
context.es = context.pop();
noturnonyet:
- context.cl = context.data.byte(context.bx+19);
- context._cmp(context.data.byte(61), 1);
+ context.cl = context.ds.byte(context.bx+19);
+ context._cmp(context.ds.byte(61), 1);
if (!context.flags.z()) goto notthrough2;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough2;
@@ -3567,24 +3567,24 @@ notthrough2:
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context._cmp(context.al, 255);
if (!context.flags.z()) goto atlast3;
context._sub(context.di, 1);
context._sub(context.cl, 1);
atlast3:
- context.data.byte(context.bx+19) = context.cl;
- context.al = context.data.byte(context.di+18);
+ context.ds.byte(context.bx+19) = context.cl;
+ context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto justshutting;
- context.data.byte(61) = 1;
+ context.ds.byte(61) = 1;
justshutting:
return;
shutdoor2:
- context.cl = context.data.byte(context.bx+19);
+ context.cl = context.ds.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound3;
context.al = 1;
@@ -3593,34 +3593,34 @@ notdoorsound3:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast4;
context._sub(context.cl, 1);
- context.data.byte(context.bx+19) = context.cl;
+ context.ds.byte(context.bx+19) = context.cl;
atlast4:
context.ch = 0;
- context.data.byte(61) = 0;
+ context.ds.byte(61) = 0;
context.push(context.di);
context._add(context.di, context.cx);
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notlocky;
- context.al = context.data.byte(38);
+ context.al = context.ds.byte(38);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(37) = 1;
+ context.ds.byte(37) = 1;
notlocky:
return;
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
shutdoor:
- context.cl = context.data.byte(context.bx+19);
+ context.cl = context.ds.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.ds.byte(184), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3629,47 +3629,47 @@ notdoorsound1:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast2;
context._sub(context.cl, 1);
- context.data.byte(context.bx+19) = context.cl;
+ context.ds.byte(context.bx+19) = context.cl;
atlast2:
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
- context.al = context.data.byte(context.di+18);
+ context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.data.byte(context.bx+15) = context.al;
- context.data.byte(context.di+17) = context.al;
+ context.ds.byte(context.bx+15) = context.al;
+ context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.data.byte(61) = 0;
+ context.ds.byte(61) = 0;
notnearly:
return;
return;
}
static void updatepeople(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
- context.data.word(18) = context.di;
+ context.ds.word(18) = context.di;
context.cx = 12*5;
context.al = 255;
while(--context.cx) context._stosb();
- context._add(context.data.word(138), 1);
+ context._add(context.ds.word(138), 1);
context.es = context.cs;
context.bx = 537;
context.di = 1003;
updateloop:
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto endupdate;
- context._cmp(context.al, context.data.byte(184));
+ context._cmp(context.al, context.ds.byte(184));
if (!context.flags.z()) goto notinthisroom;
- context.cx = context.data.word(context.bx+1);
- context._cmp(context.cl, context.data.byte(148));
+ context.cx = context.ds.word(context.bx+1);
+ context._cmp(context.cl, context.ds.byte(148));
if (!context.flags.z()) goto notinthisroom;
- context._cmp(context.ch, context.data.byte(149));
+ context._cmp(context.ch, context.ds.byte(149));
if (!context.flags.z()) goto notinthisroom;
context.push(context.di);
- context.ax = context.data.word(context.di);
+ context.ax = context.ds.word(context.di);
__dispatch_call(context, context.ax);
context.di = context.pop();
notinthisroom:
@@ -3682,12 +3682,12 @@ endupdate:
static void getreelframeax(Context & context) {
context.push(context.ds);
- context.data.word(160) = context.ax;
+ context.ds.word(160) = context.ax;
findsource(context);
context.es = context.ds;
context.ds = context.pop();
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
+ context.ax = context.ds.word(160);
+ context._sub(context.ax, context.ds.word(244));
context._add(context.ax, context.ax);
context.cx = context.ax;
context._add(context.ax, context.ax);
@@ -3710,13 +3710,13 @@ static void plotreel(Context & context) {
retryreel:
context.push(context.es);
context.push(context.si);
- context.ax = context.data.word(context.si+2);
+ context.ax = context.ds.word(context.si+2);
context._cmp(context.al, 220);
if (context.flags.c()) goto normalreel;
context._cmp(context.al, 255);
if (context.flags.z()) goto normalreel;
dealwithspecial(context);
- context._add(context.data.word(239), 1);
+ context._add(context.ds.word(239), 1);
context.si = context.pop();
context.es = context.pop();
context._add(context.si, 40);
@@ -3727,7 +3727,7 @@ plotloop:
context.push(context.cx);
context.push(context.es);
context.push(context.si);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto notplot;
showreelframe(context);
@@ -3744,22 +3744,22 @@ notplot:
}
static void soundonreels(Context & context) {
- context.bl = context.data.byte(184);
+ context.bl = context.ds.byte(184);
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
context._add(context.bx, 1254);
- context.si = context.data.word(context.bx);
+ context.si = context.ds.word(context.bx);
reelsoundloop:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._cmp(context.al, 255);
if (context.flags.z()) goto endreelsound;
- context.ax = context.data.word(context.si+1);
- context._cmp(context.ax, context.data.word(239));
+ context.ax = context.ds.word(context.si+1);
+ context._cmp(context.ax, context.ds.word(239));
if (!context.flags.z()) goto skipreelsound;
- context._cmp(context.ax, context.data.word(351));
+ context._cmp(context.ax, context.ds.word(351));
if (context.flags.z()) goto skipreelsound;
- context.data.word(351) = context.ax;
- context.al = context.data.byte(context.si);
+ context.ds.word(351) = context.ax;
+ context.al = context.ds.byte(context.si);
context._cmp(context.al, 64);
if (context.flags.c()) { playchannel1(context); return; };
context._cmp(context.al, 128);
@@ -3775,26 +3775,26 @@ skipreelsound:
context._add(context.si, 3);
goto reelsoundloop;
endreelsound:
- context.ax = context.data.word(351);
- context._cmp(context.ax, context.data.word(239));
+ context.ax = context.ds.word(351);
+ context._cmp(context.ax, context.ds.word(239));
if (context.flags.z()) goto nochange2;
- context.data.word(351) = -1;
+ context.ds.word(351) = -1;
nochange2:
return;
}
static void reconstruct(Context & context) {
- context._cmp(context.data.byte(130), 0);
+ context._cmp(context.ds.byte(130), 0);
if (context.flags.z()) goto noneedtorecon;
- context.data.byte(62) = 1;
+ context.ds.byte(62) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
- context._cmp(context.data.byte(184), 20);
+ context._cmp(context.ds.byte(184), 20);
if (!context.flags.z()) goto notfudge;
undertextline(context);
notfudge:
- context.data.byte(130) = 0;
+ context.ds.byte(130) = 0;
noneedtorecon:
return;
}
@@ -3805,28 +3805,28 @@ static void dealwithspecial(Context & context) {
if (!context.flags.z()) goto notplset;
context.al = context.ah;
placesetobject(context);
- context.data.byte(130) = 1;
+ context.ds.byte(130) = 1;
return;
notplset:
context._cmp(context.al, 1);
if (!context.flags.z()) goto notremset;
context.al = context.ah;
removesetobject(context);
- context.data.byte(130) = 1;
+ context.ds.byte(130) = 1;
return;
notremset:
context._cmp(context.al, 2);
if (!context.flags.z()) goto notplfree;
context.al = context.ah;
placefreeobject(context);
- context.data.byte(130) = 1;
+ context.ds.byte(130) = 1;
return;
notplfree:
context._cmp(context.al, 3);
if (!context.flags.z()) goto notremfree;
context.al = context.ah;
removefreeobject(context);
- context.data.byte(130) = 1;
+ context.ds.byte(130) = 1;
return;
notremfree:
context._cmp(context.al, 4);
@@ -3836,14 +3836,14 @@ notremfree:
notryanoff:
context._cmp(context.al, 5);
if (!context.flags.z()) goto notryanon;
- context.data.byte(135) = context.ah;
- context.data.byte(133) = context.ah;
+ context.ds.byte(135) = context.ah;
+ context.ds.byte(133) = context.ah;
switchryanon(context);
return;
notryanon:
context._cmp(context.al, 6);
if (!context.flags.z()) goto notchangeloc;
- context.data.byte(188) = context.ah;
+ context.ds.byte(188) = context.ah;
return;
notchangeloc:
movemap(context);
@@ -3853,87 +3853,87 @@ notchangeloc:
static void movemap(Context & context) {
context._cmp(context.ah, 32);
if (!context.flags.z()) goto notmapup2;
- context._sub(context.data.byte(149), 20);
- context.data.byte(186) = 1;
+ context._sub(context.ds.byte(149), 20);
+ context.ds.byte(186) = 1;
return;
notmapup2:
context._cmp(context.ah, 16);
if (!context.flags.z()) goto notmapupspec;
- context._sub(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._sub(context.ds.byte(149), 10);
+ context.ds.byte(186) = 1;
return;
notmapupspec:
context._cmp(context.ah, 8);
if (!context.flags.z()) goto notmapdownspec;
- context._add(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._add(context.ds.byte(149), 10);
+ context.ds.byte(186) = 1;
return;
notmapdownspec:
context._cmp(context.ah, 2);
if (!context.flags.z()) goto notmaprightspec;
- context._add(context.data.byte(148), 11);
- context.data.byte(186) = 1;
+ context._add(context.ds.byte(148), 11);
+ context.ds.byte(186) = 1;
return;
notmaprightspec:
- context._sub(context.data.byte(148), 11);
- context.data.byte(186) = 1;
+ context._sub(context.ds.byte(148), 11);
+ context.ds.byte(186) = 1;
return;
}
static void getreelstart(Context & context) {
- context.ax = context.data.word(239);
+ context.ax = context.ds.word(239);
context.cx = 40;
context._mul(context.cx);
- context.es = context.data.word(450);
+ context.es = context.ds.word(450);
context.si = context.ax;
context._add(context.si, 0+(36*144));
return;
}
static void showreelframe(Context & context) {
- context.al = context.data.byte(context.si+2);
+ context.al = context.ds.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context.al = context.data.byte(context.si+3);
+ context._add(context.di, context.ds.word(117));
+ context.al = context.ds.byte(context.si+3);
context.bx = context.ax;
- context._add(context.bx, context.data.word(119));
- context.ax = context.data.word(context.si);
- context.data.word(160) = context.ax;
+ context._add(context.bx, context.ds.word(119));
+ context.ax = context.ds.word(context.si);
+ context.ds.word(160) = context.ax;
findsource(context);
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
+ context.ax = context.ds.word(160);
+ context._sub(context.ax, context.ds.word(244));
context.ah = 8;
showframe(context);
return;
}
static void deleverything(Context & context) {
- context.al = context.data.byte(129);
+ context.al = context.ds.byte(129);
context.ah = 0;
- context._add(context.ax, context.data.word(123));
+ context._add(context.ax, context.ds.word(123));
context._cmp(context.ax, 182);
if (!context.flags.c()) goto bigroom;
maptopanel(context);
return;
bigroom:
- context._sub(context.data.byte(129), 8);
+ context._sub(context.ds.byte(129), 8);
maptopanel(context);
- context._add(context.data.byte(129), 8);
+ context._add(context.ds.byte(129), 8);
return;
}
static void dumpeverything(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
dumpevery1:
- context.ax = context.data.word(context.bx);
- context.cx = context.data.word(context.bx+2);
+ context.ax = context.ds.word(context.bx);
+ context.cx = context.ds.word(context.bx+2);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto finishevery1;
- context._cmp(context.ax, context.data.word(context.bx+(40*5)));
+ context._cmp(context.ax, context.ds.word(context.bx+(40*5)));
if (!context.flags.z()) goto notskip1;
- context._cmp(context.cx, context.data.word(context.bx+(40*5)+2));
+ context._cmp(context.cx, context.ds.word(context.bx+(40*5)+2));
if (context.flags.z()) goto skip1;
notskip1:
context.push(context.bx);
@@ -3943,8 +3943,8 @@ notskip1:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.ds.word(117));
+ context._add(context.bx, context.ds.word(119));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3955,8 +3955,8 @@ skip1:
finishevery1:
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(40*5);
dumpevery2:
- context.ax = context.data.word(context.bx);
- context.cx = context.data.word(context.bx+2);
+ context.ax = context.ds.word(context.bx);
+ context.cx = context.ds.word(context.bx+2);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto finishevery2;
context.push(context.bx);
@@ -3966,8 +3966,8 @@ dumpevery2:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.ds.word(117));
+ context._add(context.bx, context.ds.word(119));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3981,7 +3981,7 @@ finishevery2:
static void allocatework(Context & context) {
context.bx = 0x1000;
allocatemem(context);
- context.data.word(400) = context.ax;
+ context.ds.word(400) = context.ax;
return;
}
@@ -4009,20 +4009,20 @@ static void loadpalfromiff(Context & context) {
context.dx = 2494;
openfile(context);
context.cx = 2000;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.dx = 0;
readfromfile(context);
closefile(context);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0x30;
context.cx = 768;
palloop:
context._lodsb();
context._shr(context.al, 1);
context._shr(context.al, 1);
- context._cmp(context.data.byte(73), 1);
+ context._cmp(context.ds.byte(73), 1);
if (!context.flags.z()) goto nought;
context._cmp(context.al, 0);
if (context.flags.z()) goto nought;
@@ -4053,7 +4053,7 @@ static void cls(Context & context) {
static void printundermon(Context & context) {
context.si = (320*43)+76;
context.di = context.si;
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context._add(context.si, 8*320);
context.dx = 0x0a000;
context.ds = context.dx;
@@ -4089,7 +4089,7 @@ static void worktoscreen(Context & context) {
context.si = 0;
context.di = 0;
context.cx = 25;
- context.ds = context.data.word(400);
+ context.ds = context.ds.word(400);
context.dx = 0x0a000;
context.es = context.dx;
dumpallloop:
@@ -4106,54 +4106,54 @@ dumpallloop:
}
static void paneltomap(Context & context) {
- context.di = context.data.word(125);
- context._add(context.di, context.data.word(117));
- context.bx = context.data.word(127);
- context._add(context.bx, context.data.word(119));
- context.ds = context.data.word(402);
+ context.di = context.ds.word(125);
+ context._add(context.di, context.ds.word(117));
+ context.bx = context.ds.word(127);
+ context._add(context.bx, context.ds.word(119));
+ context.ds = context.ds.word(402);
context.si = 0;
- context.cl = context.data.byte(128);
- context.ch = context.data.byte(129);
+ context.cl = context.ds.byte(128);
+ context.ch = context.ds.byte(129);
multiget(context);
return;
}
static void maptopanel(Context & context) {
- context.di = context.data.word(125);
- context._add(context.di, context.data.word(117));
- context.bx = context.data.word(127);
- context._add(context.bx, context.data.word(119));
- context.ds = context.data.word(402);
+ context.di = context.ds.word(125);
+ context._add(context.di, context.ds.word(117));
+ context.bx = context.ds.word(127);
+ context._add(context.bx, context.ds.word(119));
+ context.ds = context.ds.word(402);
context.si = 0;
- context.cl = context.data.byte(128);
- context.ch = context.data.byte(129);
+ context.cl = context.ds.byte(128);
+ context.ch = context.ds.byte(129);
multiput(context);
return;
}
static void dumpmap(Context & context) {
- context.di = context.data.word(125);
- context._add(context.di, context.data.word(117));
- context.bx = context.data.word(127);
- context._add(context.bx, context.data.word(119));
- context.cl = context.data.byte(128);
- context.ch = context.data.byte(129);
+ context.di = context.ds.word(125);
+ context._add(context.di, context.ds.word(117));
+ context.bx = context.ds.word(127);
+ context._add(context.bx, context.ds.word(119));
+ context.cl = context.ds.byte(128);
+ context.ch = context.ds.byte(129);
multidump(context);
return;
}
static void pixelcheckset(Context & context) {
context.push(context.ax);
- context._sub(context.al, context.data.byte(context.bx));
- context._sub(context.ah, context.data.byte(context.bx+1));
+ context._sub(context.al, context.ds.byte(context.bx));
+ context._sub(context.ah, context.ds.byte(context.bx+1));
context.push(context.es);
context.push(context.bx);
context.push(context.cx);
context.push(context.ax);
- context.al = context.data.byte(context.bx+4);
+ context.al = context.ds.byte(context.bx+4);
getsetad(context);
- context.al = context.data.byte(context.bx+17);
- context.es = context.data.word(444);
+ context.al = context.ds.byte(context.bx+17);
+ context.es = context.ds.word(444);
context.bx = 0;
context.ah = 0;
context.cx = 6;
@@ -4163,16 +4163,16 @@ static void pixelcheckset(Context & context) {
context.push(context.ax);
context.al = context.ah;
context.ah = 0;
- context.cl = context.data.byte(context.bx);
+ context.cl = context.ds.byte(context.bx);
context.ch = 0;
context._mul(context.cx);
context.cx = context.pop();
context.ch = 0;
context._add(context.ax, context.cx);
- context._add(context.ax, context.data.word(context.bx+2));
+ context._add(context.ax, context.ds.word(context.bx+2));
context.bx = context.ax;
context._add(context.bx, 0+2080);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context.dl = context.al;
context.cx = context.pop();
context.bx = context.pop();
@@ -4185,25 +4185,25 @@ static void pixelcheckset(Context & context) {
static void createpanel(Context & context) {
context.di = 0;
context.bx = 8;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 8;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 0;
context.bx = 104;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 104;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
@@ -4214,13 +4214,13 @@ static void createpanel2(Context & context) {
createpanel(context);
context.di = 0;
context.bx = 0;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.al = 5;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 0;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.al = 5;
context.ah = 2;
showframe(context);
@@ -4229,7 +4229,7 @@ static void createpanel2(Context & context) {
static void clearwork(Context & context) {
context.ax = 0x0;
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.di = 0;
context.cx = (200*320)/64;
clearloop:
@@ -4270,24 +4270,24 @@ clearloop:
}
static void zoom(Context & context) {
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.ds.word(21), 0);
if (!context.flags.z()) goto inwatching;
- context._cmp(context.data.byte(8), 1);
+ context._cmp(context.ds.byte(8), 1);
if (context.flags.z()) goto zoomswitch;
inwatching:
return;
zoomswitch:
- context._cmp(context.data.byte(100), 199);
+ context._cmp(context.ds.byte(100), 199);
if (context.flags.c()) goto zoomit;
cantzoom:
putunderzoom(context);
return;
zoomit:
- context.ax = context.data.word(222);
+ context.ax = context.ds.word(222);
context._sub(context.ax, 9);
context.cx = 320;
context._mul(context.cx);
- context._add(context.ax, context.data.word(220));
+ context._add(context.ax, context.ds.word(220));
context._sub(context.ax, 11);
context.si = context.ax;
context.ax = 132+4;
@@ -4295,8 +4295,8 @@ zoomit:
context._mul(context.cx);
context._add(context.ax, 8+5);
context.di = context.ax;
- context.es = context.data.word(400);
- context.ds = context.data.word(400);
+ context.es = context.ds.word(400);
+ context.ds = context.ds.word(400);
context.cx = 20;
zoomloop:
context.push(context.cx);
@@ -4305,14 +4305,14 @@ zoomloop2:
context._lodsb();
context.ah = context.al;
context._stosw();
- context.data.word(context.di+320-2) = context.ax;
+ context.ds.word(context.di+320-2) = context.ax;
if (--context.cx) goto zoomloop2;
context._add(context.si, 320-23);
context._add(context.di, 320-46+320);
context.cx = context.pop();
if (--context.cx) goto zoomloop;
crosshair(context);
- context.data.byte(75) = 1;
+ context.ds.byte(75) = 1;
return;
}
@@ -4321,12 +4321,12 @@ static void delthisone(Context & context) {
context.push(context.ax);
context.al = context.ah;
context.ah = 0;
- context._add(context.ax, context.data.word(119));
+ context._add(context.ax, context.ds.word(119));
context.bx = 320;
context._mul(context.bx);
context.bx = context.pop();
context.bh = 0;
- context._add(context.bx, context.data.word(117));
+ context._add(context.bx, context.ds.word(117));
context._add(context.ax, context.bx);
context.di = context.ax;
context.ax = context.pop();
@@ -4339,8 +4339,8 @@ static void delthisone(Context & context) {
context.bh = 0;
context._add(context.ax, context.bx);
context.si = context.ax;
- context.es = context.data.word(400);
- context.ds = context.data.word(402);
+ context.es = context.ds.word(400);
+ context.ds = context.ds.word(402);
context.dl = context.cl;
context.dh = 0;
context.ax = 320;
@@ -4364,7 +4364,7 @@ static void multiget(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.es = context.ds;
context.ds = context.es;
context._xchg(context.di, context.si);
@@ -4408,7 +4408,7 @@ static void multiput(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.al = context.cl;
context.ah = 0;
context.dx = 320;
@@ -4447,7 +4447,7 @@ multiloop6:
static void multidump(Context & context) {
context.dx = 0x0a000;
context.es = context.dx;
- context.ds = context.data.word(400);
+ context.ds = context.ds.word(400);
context.ax = context.bx;
context.bx = 320;
context._mul(context.bx);
@@ -4729,17 +4729,17 @@ static void width160(Context & context) {
}
static void doblocks(Context & context) {
- context.es = context.data.word(400);
- context.ax = context.data.word(119);
+ context.es = context.ds.word(400);
+ context.ax = context.ds.word(119);
context.cx = 320;
context._mul(context.cx);
- context.di = context.data.word(117);
+ context.di = context.ds.word(117);
context._add(context.di, context.ax);
- context.al = context.data.byte(149);
+ context.al = context.ds.byte(149);
context.ah = 0;
context.bx = 66;
context._mul(context.bx);
- context.bl = context.data.byte(148);
+ context.bl = context.ds.byte(148);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -4752,9 +4752,9 @@ loop120:
loop124:
context.push(context.cx);
context.push(context.di);
- context.ds = context.data.word(418);
+ context.ds = context.ds.word(418);
context._lodsb();
- context.ds = context.data.word(416);
+ context.ds = context.ds.word(416);
context.push(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto zeroblock;
@@ -4852,22 +4852,22 @@ static void showframe(Context & context) {
context.si = context.cx;
context._add(context.cx, context.cx);
context._add(context.si, context.cx);
- context._cmp(context.data.word(context.si), 0);
+ context._cmp(context.ds.word(context.si), 0);
if (!context.flags.z()) goto notblankshow;
context.cx = 0;
return;
notblankshow:
context._test(context.ah, 128);
if (!context.flags.z()) goto skipoffsets;
- context.al = context.data.byte(context.si+4);
+ context.al = context.ds.byte(context.si+4);
context.ah = 0;
context._add(context.di, context.ax);
- context.al = context.data.byte(context.si+5);
+ context.al = context.ds.byte(context.si+5);
context.ah = 0;
context._add(context.bx, context.ax);
skipoffsets:
- context.cx = context.data.word(context.si+0);
- context.ax = context.data.word(context.si+2);
+ context.cx = context.ds.word(context.si+0);
+ context.ax = context.ds.word(context.si+2);
context._add(context.ax, 2080);
context.si = context.ax;
context.ax = context.pop();
@@ -4898,9 +4898,9 @@ notdiffdest:
if (context.flags.z()) goto notprintlist;
context.push(context.ax);
context.ax = context.di;
- context._sub(context.ax, context.data.word(117));
+ context._sub(context.ax, context.ds.word(117));
context.push(context.bx);
- context._sub(context.bx, context.data.word(119));
+ context._sub(context.bx, context.ds.word(119));
context.ah = context.bl;
context.bx = context.pop();
context.ax = context.pop();
@@ -4908,7 +4908,7 @@ notprintlist:
context._test(context.ah, 4);
if (context.flags.z()) goto notflippedx;
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.push(context.cx);
frameoutfx(context);
context.cx = context.pop();
@@ -4917,7 +4917,7 @@ notflippedx:
context._test(context.ah, 2);
if (context.flags.z()) goto notnomask;
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.push(context.cx);
frameoutnm(context);
context.cx = context.pop();
@@ -4926,14 +4926,14 @@ notnomask:
context._test(context.ah, 32);
if (context.flags.z()) goto noeffects;
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.push(context.cx);
frameoutbh(context);
context.cx = context.pop();
return;
noeffects:
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.ds.word(400);
context.push(context.cx);
frameoutv(context);
context.cx = context.pop();
@@ -5038,7 +5038,7 @@ bhloop2:
context.ch = 0;
context.ah = 255;
bhloop1:
- context._cmp(context.data.byte(context.di), context.ah);
+ context._cmp(context.ds.byte(context.di), context.ah);
if (!context.flags.z()) goto nofill;
context._movsb();
if (--context.cx) goto bhloop1;
@@ -5086,7 +5086,7 @@ frameloopfx3:
context._cmp(context.al, 0);
if (context.flags.z()) goto backtootherfx;
backtosolidfx:
- context.data.byte(context.di) = context.al;
+ context.ds.byte(context.di) = context.al;
context._sub(context.di, 1);
if (--context.cx) goto frameloopfx3;
context.cx = context.pop();
@@ -5097,9 +5097,9 @@ backtosolidfx:
}
static void transferinv(Context & context) {
- context.di = context.data.word(12);
+ context.di = context.ds.word(12);
context.push(context.di);
- context.al = context.data.byte(10);
+ context.al = context.ds.byte(10);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5107,12 +5107,12 @@ static void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.data.byte(90);
+ context.al = context.ds.byte(90);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5120,94 +5120,94 @@ static void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.data.word(446);
+ context.ds = context.ds.word(446);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context.ah = 0;
- context.cl = context.data.byte(context.bx+1);
+ context.cl = context.ds.byte(context.bx+1);
context.ch = 0;
- context._add(context.si, context.data.word(context.bx+2));
- context.dx = context.data.word(context.bx+4);
+ context._add(context.si, context.ds.word(context.bx+2));
+ context.dx = context.ds.word(context.bx+4);
context.bx = context.pop();
- context.data.byte(context.bx+0) = context.al;
- context.data.byte(context.bx+1) = context.cl;
- context.data.word(context.bx+4) = context.dx;
+ context.ds.byte(context.bx+0) = context.al;
+ context.ds.byte(context.bx+1) = context.cl;
+ context.ds.word(context.bx+4) = context.dx;
context._mul(context.cx);
context.cx = context.ax;
context.push(context.cx);
while(--context.cx) context._movsb();
context.cx = context.pop();
context.ax = context.pop();
- context.data.word(context.bx+2) = context.ax;
- context._add(context.data.word(12), context.cx);
+ context.ds.word(context.bx+2) = context.ax;
+ context._add(context.ds.word(12), context.cx);
return;
}
static void transfermap(Context & context) {
- context.di = context.data.word(12);
+ context.di = context.ds.word(12);
context.push(context.di);
- context.al = context.data.byte(10);
+ context.al = context.ds.byte(10);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.data.byte(90);
+ context.al = context.ds.byte(90);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.data.word(446);
+ context.ds = context.ds.word(446);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context.ah = 0;
- context.cl = context.data.byte(context.bx+1);
+ context.cl = context.ds.byte(context.bx+1);
context.ch = 0;
- context._add(context.si, context.data.word(context.bx+2));
- context.dx = context.data.word(context.bx+4);
+ context._add(context.si, context.ds.word(context.bx+2));
+ context.dx = context.ds.word(context.bx+4);
context.bx = context.pop();
- context.data.byte(context.bx+0) = context.al;
- context.data.byte(context.bx+1) = context.cl;
- context.data.word(context.bx+4) = context.dx;
+ context.ds.byte(context.bx+0) = context.al;
+ context.ds.byte(context.bx+1) = context.cl;
+ context.ds.word(context.bx+4) = context.dx;
context._mul(context.cx);
context.cx = context.ax;
context.push(context.cx);
while(--context.cx) context._movsb();
context.cx = context.pop();
context.ax = context.pop();
- context.data.word(context.bx+2) = context.ax;
- context._add(context.data.word(12), context.cx);
+ context.ds.word(context.bx+2) = context.ax;
+ context._add(context.ds.word(12), context.cx);
return;
}
static void dofade(Context & context) {
- context._cmp(context.data.byte(344), 0);
+ context._cmp(context.ds.byte(344), 0);
if (context.flags.z()) goto finishfade;
- context.cl = context.data.byte(345);
+ context.cl = context.ds.byte(345);
context.ch = 0;
- context.al = context.data.byte(343);
+ context.al = context.ds.byte(343);
context.ah = 0;
- context.ds = context.data.word(412);
+ context.ds = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
showgroup(context);
- context.al = context.data.byte(345);
- context._add(context.al, context.data.byte(343));
- context.data.byte(343) = context.al;
+ context.al = context.ds.byte(345);
+ context._add(context.al, context.ds.byte(343));
+ context.ds.byte(343) = context.al;
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishfade;
fadecalculation(context);
@@ -5216,7 +5216,7 @@ finishfade:
}
static void clearendpal(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 0;
@@ -5225,7 +5225,7 @@ static void clearendpal(Context & context) {
}
static void clearpalette(Context & context) {
- context.data.byte(344) = 0;
+ context.ds.byte(344) = 0;
clearstartpal(context);
dumpcurrent(context);
return;
@@ -5234,15 +5234,15 @@ static void clearpalette(Context & context) {
static void fadescreenup(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
return;
}
static void fadetowhite(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 63;
@@ -5253,15 +5253,15 @@ static void fadetowhite(Context & context) {
context._stosb();
context._stosb();
paltostartpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
return;
}
static void fadefromwhite(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768;
context.al = 63;
@@ -5272,20 +5272,20 @@ static void fadefromwhite(Context & context) {
context._stosb();
context._stosb();
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
return;
}
static void fadescreenups(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 64;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 64;
return;
}
@@ -5293,16 +5293,16 @@ static void fadescreendownhalf(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.cx = 768;
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
halfend:
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._shr(context.al, 1);
- context.data.byte(context.bx) = context.al;
+ context.ds.byte(context.bx) = context.al;
context._add(context.bx, 1);
if (--context.cx) goto halfend;
- context.ds = context.data.word(412);
- context.es = context.data.word(412);
+ context.ds = context.ds.word(412);
+ context.es = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
context.cx = 3*5;
@@ -5311,45 +5311,45 @@ halfend:
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
context.cx = 3*2;
while(--context.cx) context._movsb();
- context.data.byte(344) = 1;
- context.data.byte(346) = 31;
- context.data.byte(343) = 0;
- context.data.byte(345) = 32;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 31;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 32;
return;
}
static void fadescreenuphalf(Context & context) {
endpaltostart(context);
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 31;
- context.data.byte(343) = 0;
- context.data.byte(345) = 32;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 31;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 32;
return;
}
static void fadescreendown(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
return;
}
static void fadescreendowns(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 64;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 64;
return;
}
static void clearstartpal(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 256;
wholeloop1:
@@ -5362,39 +5362,39 @@ wholeloop1:
}
static void showgun(Context & context) {
- context.data.byte(348) = 0;
- context.data.byte(347) = 0;
- context.data.byte(349) = 0;
+ context.ds.byte(348) = 0;
+ context.ds.byte(347) = 0;
+ context.ds.byte(349) = 0;
paltostartpal(context);
paltoendpal(context);
greyscalesum(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
context.cx = 130;
hangon(context);
endpaltostart(context);
clearendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
context.cx = 200;
hangon(context);
- context.data.byte(531) = 34;
+ context.ds.byte(531) = 34;
loadroomssample(context);
- context.data.byte(386) = 0;
+ context.ds.byte(386) = 0;
context.dx = 2364;
loadintotemp(context);
createpanel2(context);
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 0;
context.ah = 0;
context.di = 100;
context.bx = 4;
showframe(context);
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 1;
context.ah = 0;
context.di = 158;
@@ -5425,19 +5425,19 @@ static void rollem(Context & context) {
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
multiget(context);
- context.es = context.data.word(466);
+ context.es = context.ds.word(466);
context.si = 49*2;
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context.si = context.ax;
context._add(context.si, 66*2);
context.cx = 80;
endcredits21:
context.push(context.cx);
context.bx = 10;
- context.cx = context.data.word(77);
+ context.cx = context.ds.word(77);
endcredits22:
context.push(context.cx);
context.push(context.si);
@@ -5449,7 +5449,7 @@ endcredits22:
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
multiput(context);
vsync(context);
@@ -5468,7 +5468,7 @@ onelot2:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.data.word(77));
+ context._add(context.bx, context.ds.word(77));
context.cx = context.pop();
if (--context.cx) goto onelot2;
vsync(context);
@@ -5482,13 +5482,13 @@ onelot2:
context.di = context.pop();
context.si = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto endearly2;
context._sub(context.bx, 1);
if (--context.cx) goto endcredits22;
context.cx = context.pop();
looknext2:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (context.flags.z()) goto gotnext2;
@@ -5496,7 +5496,7 @@ looknext2:
if (context.flags.z()) goto gotnext2;
goto looknext2;
gotnext2:
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto endearly;
if (--context.cx) goto endcredits21;
context.cx = 120;
@@ -5509,57 +5509,57 @@ endearly:
}
static void fadecalculation(Context & context) {
- context._cmp(context.data.byte(346), 0);
+ context._cmp(context.ds.byte(346), 0);
if (context.flags.z()) goto nomorefading;
- context.bl = context.data.byte(346);
- context.es = context.data.word(412);
+ context.bl = context.ds.byte(346);
+ context.es = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
fadecolloop:
- context.al = context.data.byte(context.si);
- context.ah = context.data.byte(context.di);
+ context.al = context.ds.byte(context.si);
+ context.ah = context.ds.byte(context.di);
context._cmp(context.al, context.ah);
if (context.flags.z()) goto gotthere;
if (context.flags.c()) goto lesscolour;
- context._sub(context.data.byte(context.si), 1);
+ context._sub(context.ds.byte(context.si), 1);
goto gotthere;
lesscolour:
context._cmp(context.bl, context.ah);
if (context.flags.z()) goto withit;
if (!context.flags.c()) goto gotthere;
withit:
- context._add(context.data.byte(context.si), 1);
+ context._add(context.ds.byte(context.si), 1);
gotthere:
context._add(context.si, 1);
context._add(context.di, 1);
if (--context.cx) goto fadecolloop;
- context._sub(context.data.byte(346), 1);
+ context._sub(context.ds.byte(346), 1);
return;
nomorefading:
- context.data.byte(344) = 0;
+ context.ds.byte(344) = 0;
return;
}
static void greyscalesum(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 256;
greysumloop1:
context.push(context.cx);
context.bx = 0;
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
context._add(context.bx, context.ax);
- context.al = context.data.byte(context.si+1);
+ context.al = context.ds.byte(context.si+1);
context.ah = 0;
context.cx = 59;
context._mul(context.cx);
context._add(context.bx, context.ax);
- context.al = context.data.byte(context.si+2);
+ context.al = context.ds.byte(context.si+2);
context.ah = 0;
context.cx = 11;
context._mul(context.cx);
@@ -5571,19 +5571,19 @@ greysumloop2:
if (!context.flags.c()) goto greysumloop2;
context.bl = context.al;
context.al = context.bl;
- context.ah = context.data.byte(348);
+ context.ah = context.ds.byte(348);
context._cmp(context.al, 0);
context._add(context.al, context.ah);
noaddr:
context._stosb();
- context.ah = context.data.byte(347);
+ context.ah = context.ds.byte(347);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddg;
context._add(context.al, context.ah);
noaddg:
context._stosb();
- context.ah = context.data.byte(349);
+ context.ah = context.ds.byte(349);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddb;
@@ -5597,8 +5597,8 @@ noaddb:
}
static void paltostartpal(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.ds.word(412);
+ context.ds = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5607,8 +5607,8 @@ static void paltostartpal(Context & context) {
}
static void endpaltostart(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.ds.word(412);
+ context.ds = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5617,8 +5617,8 @@ static void endpaltostart(Context & context) {
}
static void startpaltoend(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.ds.word(412);
+ context.ds = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5627,8 +5627,8 @@ static void startpaltoend(Context & context) {
}
static void paltoendpal(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.ds.word(412);
+ context.ds = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5637,8 +5637,8 @@ static void paltoendpal(Context & context) {
}
static void allpalette(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.ds.word(412);
+ context.ds = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5649,7 +5649,7 @@ static void allpalette(Context & context) {
static void dumpcurrent(Context & context) {
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.ds = context.data.word(412);
+ context.ds = context.ds.word(412);
vsync(context);
context.al = 0;
context.cx = 128;
@@ -5664,7 +5664,7 @@ static void dumpcurrent(Context & context) {
static void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5672,10 +5672,10 @@ static void fadedownmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
context.cx = 64;
hangon(context);
return;
@@ -5684,7 +5684,7 @@ static void fadedownmon(Context & context) {
static void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5692,10 +5692,10 @@ static void fadeupmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5704,7 +5704,7 @@ static void fadeupmon(Context & context) {
static void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5712,10 +5712,10 @@ static void fadeupmonfirst(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
context.cx = 64;
hangon(context);
context.al = 26;
@@ -5727,7 +5727,7 @@ static void fadeupmonfirst(Context & context) {
static void fadeupyellows(Context & context) {
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5735,10 +5735,10 @@ static void fadeupyellows(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.ds.byte(344) = 1;
+ context.ds.byte(346) = 63;
+ context.ds.byte(343) = 0;
+ context.ds.byte(345) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5746,7 +5746,7 @@ static void fadeupyellows(Context & context) {
static void initialmoncols(Context & context) {
paltostartpal(context);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.cx = 3*9;
context.ax = 0;
@@ -5754,7 +5754,7 @@ static void initialmoncols(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.ds = context.data.word(412);
+ context.ds = context.ds.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.al = 230;
context.cx = 18;
@@ -5775,24 +5775,24 @@ static void endgame(Context & context) {
monkspeaking(context);
gettingshot(context);
getridoftemptext(context);
- context.data.byte(387) = 7;
- context.data.byte(388) = 1;
+ context.ds.byte(387) = 7;
+ context.ds.byte(388) = 1;
context.cx = 200;
hangon(context);
return;
}
static void monkspeaking(Context & context) {
- context.data.byte(531) = 35;
+ context.ds.byte(531) = 35;
loadroomssample(context);
context.dx = 2377;
loadintotemp(context);
clearwork(context);
showmonk(context);
worktoscreen(context);
- context.data.byte(386) = 7;
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
+ context.ds.byte(386) = 7;
+ context.ds.byte(388) = -1;
+ context.ds.byte(387) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
@@ -5805,8 +5805,8 @@ nextmonkspeak:
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.data.word(466);
- context.ax = context.data.word(context.si);
+ context.es = context.ds.word(466);
+ context.ax = context.ds.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
nextbit:
@@ -5831,8 +5831,8 @@ nextbit:
context._add(context.al, 1);
context._cmp(context.al, 44);
if (!context.flags.z()) goto nextmonkspeak;
- context.data.byte(388) = 1;
- context.data.byte(387) = 7;
+ context.ds.byte(388) = 1;
+ context.ds.byte(387) = 7;
fadescreendowns(context);
context.cx = 300;
hangon(context);
@@ -5845,18 +5845,18 @@ static void showmonk(Context & context) {
context.ah = 128;
context.di = 160;
context.bx = 72;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
showframe(context);
return;
}
static void gettingshot(Context & context) {
- context.data.byte(188) = 55;
+ context.ds.byte(188) = 55;
clearpalette(context);
loadintroroom(context);
fadescreenups(context);
- context.data.byte(387) = 0;
- context.data.byte(388) = -1;
+ context.ds.byte(387) = 0;
+ context.ds.byte(388) = -1;
runendseq(context);
clearbeforeload(context);
return;
@@ -5889,7 +5889,7 @@ hangonloope:
context.push(context.cx);
vsync(context);
context.cx = context.pop();
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto hangonearly;
if (--context.cx) goto hangonloope;
return;
@@ -5904,28 +5904,28 @@ static void intro(Context & context) {
loadtemptext(context);
loadpalfromiff(context);
setmode(context);
- context.data.byte(188) = 50;
+ context.ds.byte(188) = 50;
clearpalette(context);
loadintroroom(context);
- context.data.byte(386) = 7;
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
+ context.ds.byte(386) = 7;
+ context.ds.byte(388) = -1;
+ context.ds.byte(387) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
fadescreenups(context);
runintroseq(context);
clearbeforeload(context);
- context.data.byte(188) = 52;
+ context.ds.byte(188) = 52;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
- context.data.byte(188) = 53;
+ context.ds.byte(188) = 53;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
allpalette(context);
- context.data.byte(188) = 54;
+ context.ds.byte(188) = 54;
loadintroroom(context);
runintroseq(context);
getridoftemptext(context);
@@ -5934,14 +5934,14 @@ static void intro(Context & context) {
}
static void runintroseq(Context & context) {
- context.data.byte(103) = 0;
+ context.ds.byte(103) = 0;
moreintroseq:
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
spriteupdate(context);
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
deleverything(context);
printsprites(context);
@@ -5949,14 +5949,14 @@ moreintroseq:
afterintroroom(context);
usetimedtext(context);
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.ds.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.ds.byte(103), 1);
if (!context.flags.z()) goto moreintroseq;
return;
earlyendrun:
@@ -5969,7 +5969,7 @@ earlyendrun:
static void runendseq(Context & context) {
atmospheres(context);
- context.data.byte(103) = 0;
+ context.ds.byte(103) = 0;
moreendseq:
vsync(context);
spriteupdate(context);
@@ -5983,23 +5983,23 @@ moreendseq:
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.ds.byte(103), 1);
if (!context.flags.z()) goto moreendseq;
return;
}
static void loadintroroom(Context & context) {
- context.data.byte(139) = 0;
- context.data.byte(9) = 255;
+ context.ds.byte(139) = 0;
+ context.ds.byte(9) = 255;
loadroom(context);
- context.data.word(121) = 72;
- context.data.word(123) = 16;
+ context.ds.word(121) = 72;
+ context.ds.word(123) = 16;
clearsprites(context);
- context.data.byte(61) = 0;
- context.data.byte(142) = '0';
- context.data.byte(105) = 0;
+ context.ds.byte(61) = 0;
+ context.ds.byte(142) = '0';
+ context.ds.byte(105) = 0;
clearwork(context);
- context.data.byte(62) = 1;
+ context.ds.byte(62) = 1;
drawfloor(context);
reelsonscreen(context);
spriteupdate(context);
@@ -6009,9 +6009,9 @@ static void loadintroroom(Context & context) {
}
static void realcredits(Context & context) {
- context.data.byte(531) = 33;
+ context.ds.byte(531) = 33;
loadroomssample(context);
- context.data.byte(386) = 0;
+ context.ds.byte(386) = 0;
mode640x480(context);
context.cx = 35;
hangon(context);
@@ -6106,13 +6106,13 @@ static void printchar(Context & context) {
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.data.word(71));
+ context._add(context.ax, context.ds.word(71));
showframe(context);
context.ax = context.pop();
context.di = context.pop();
context.bx = context.pop();
context.si = context.pop();
- context._cmp(context.data.byte(72), 0);
+ context._cmp(context.ds.byte(72), 0);
if (!context.flags.z()) goto nokern;
kernchars(context);
nokern:
@@ -6148,9 +6148,9 @@ kernit:
}
static void printslow(Context & context) {
- context.data.byte(231) = 1;
- context.data.byte(234) = 3;
- context.ds = context.data.word(404);
+ context.ds.byte(231) = 1;
+ context.ds.byte(234) = 3;
+ context.ds = context.ds.word(404);
printloopslow6:
context.push(context.bx);
context.push(context.di);
@@ -6161,7 +6161,7 @@ printloopslow5:
context.push(context.cx);
context.push(context.si);
context.push(context.es);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context.push(context.bx);
context.push(context.cx);
context.push(context.es);
@@ -6174,7 +6174,7 @@ printloopslow5:
context.es = context.pop();
context.cx = context.pop();
context.bx = context.pop();
- context.ax = context.data.word(context.si+1);
+ context.ax = context.ds.word(context.si+1);
context._add(context.si, 1);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishslow;
@@ -6189,9 +6189,9 @@ printloopslow5:
context.push(context.es);
context.push(context.si);
modifychar(context);
- context.data.word(71) = 91;
+ context.ds.word(71) = 91;
printboth(context);
- context.data.word(71) = 0;
+ context.ds.word(71) = 0;
context.si = context.pop();
context.es = context.pop();
context.cx = context.pop();
@@ -6201,14 +6201,14 @@ printloopslow5:
waitframes(context);
context._cmp(context.ax, 0);
if (context.flags.z()) goto keepgoing;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (!context.flags.z()) goto finishslow2;
keepgoing:
waitframes(context);
noslow:
context._cmp(context.ax, 0);
if (context.flags.z()) goto afterslow;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (!context.flags.z()) goto finishslow2;
afterslow:
context.es = context.pop();
@@ -6252,7 +6252,7 @@ static void waitframes(Context & context) {
vsync(context);
dumppointer(context);
delpointer(context);
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context.ds = context.pop();
context.si = context.pop();
context.es = context.pop();
@@ -6279,8 +6279,8 @@ static void printboth(Context & context) {
}
static void printdirect(Context & context) {
- context.data.word(84) = context.di;
- context.ds = context.data.word(268);
+ context.ds.word(84) = context.di;
+ context.ds = context.ds.word(268);
printloop6:
context.push(context.bx);
context.push(context.di);
@@ -6288,7 +6288,7 @@ printloop6:
getnumber(context);
context.ch = 0;
printloop5:
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.si, 1);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishdirct;
@@ -6298,14 +6298,14 @@ printloop5:
context.push(context.es);
modifychar(context);
printchar(context);
- context.data.word(84) = context.di;
+ context.ds.word(84) = context.di;
context.es = context.pop();
context.cx = context.pop();
if (--context.cx) goto printloop5;
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
- context._add(context.bx, context.data.word(77));
+ context._add(context.bx, context.ds.word(77));
goto printloop6;
finishdirct:
context.dx = context.pop();
@@ -6315,12 +6315,12 @@ finishdirct:
}
static void monprint(Context & context) {
- context.data.byte(72) = 1;
+ context.ds.byte(72) = 1;
context.si = context.bx;
context.dl = 166;
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
+ context.ds = context.ds.word(406);
printloop8:
context.push(context.bx);
context.push(context.di);
@@ -6328,7 +6328,7 @@ printloop8:
getnumber(context);
context.ch = 0;
printloop7:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (context.flags.z()) goto finishmon2;
@@ -6340,7 +6340,7 @@ printloop7:
if (context.flags.z()) goto finishmon;
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger;
- context.ah = context.data.byte(context.si);
+ context.ah = context.ds.byte(context.si);
context._add(context.si, 1);
context._add(context.si, 1);
goto finishmon;
@@ -6349,9 +6349,9 @@ nottrigger:
context.push(context.es);
modifychar(context);
printchar(context);
- context.data.word(312) = context.di;
- context.data.word(314) = context.bx;
- context.data.word(138) = 1;
+ context.ds.word(312) = context.di;
+ context.ds.word(314) = context.bx;
+ context.ds.word(138) = 1;
printcurs(context);
vsync(context);
context.push(context.si);
@@ -6376,7 +6376,7 @@ finishmon2:
context.di = context.pop();
context.bx = context.pop();
scrollmonitor(context);
- context.data.word(312) = context.di;
+ context.ds.word(312) = context.di;
goto printloop8;
finishmon:
context.dx = context.pop();
@@ -6384,12 +6384,12 @@ finishmon:
context.bx = context.pop();
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger2;
- context.data.byte(55) = context.ah;
+ context.ds.byte(55) = context.ah;
nottrigger2:
- context.data.word(312) = context.di;
+ context.ds.word(312) = context.di;
scrollmonitor(context);
context.bx = context.si;
- context.data.byte(72) = 0;
+ context.ds.byte(72) = 0;
return;
}
@@ -6499,7 +6499,7 @@ notcent2:
static void getnextword(Context & context) {
context.bx = 0;
getloop:
- context.ax = context.data.word(context.di);
+ context.ax = context.ds.word(context.di);
context._add(context.di, 1);
context._add(context.bh, 1);
context._cmp(context.al, ':');
@@ -6514,12 +6514,12 @@ getloop:
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.data.word(71));
+ context._add(context.ax, context.ds.word(71));
context._add(context.ax, context.ax);
context.si = context.ax;
context._add(context.ax, context.ax);
context._add(context.si, context.ax);
- context.cl = context.data.byte(context.si+0);
+ context.cl = context.ds.byte(context.si+0);
context.ax = context.pop();
kernchars(context);
context._add(context.bl, context.cl);
@@ -6592,11 +6592,11 @@ nomod:
}
static void fillryan(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32;
findallryan(context);
context.si = 0+(228*13)+32;
- context.al = context.data.byte(19);
+ context.al = context.ds.byte(19);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
@@ -6613,7 +6613,7 @@ ryanloop1:
context.push(context.cx);
context.push(context.di);
context.push(context.bx);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.si, 2);
context.push(context.si);
context.push(context.es);
@@ -6643,7 +6643,7 @@ static void fillopen(Context & context) {
lessthanapage:
context.al = 1;
context.push(context.ax);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13);
findallopen(context);
context.si = 0+(228*13);
@@ -6654,7 +6654,7 @@ openloop1:
context.push(context.cx);
context.push(context.di);
context.push(context.bx);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.si, 2);
context.push(context.si);
context.push(context.es);
@@ -6682,15 +6682,15 @@ static void findallryan(Context & context) {
while(--context.cx) context._stosw();
context.di = context.pop();
context.cl = 4;
- context.ds = context.data.word(398);
+ context.ds = context.ds.word(398);
context.bx = 0+2080+30000;
context.ch = 0;
findryanloop:
- context._cmp(context.data.byte(context.bx+2), context.cl);
+ context._cmp(context.ds.byte(context.bx+2), context.cl);
if (!context.flags.z()) goto notinryaninv;
- context._cmp(context.data.byte(context.bx+3), 255);
+ context._cmp(context.ds.byte(context.bx+3), 255);
if (!context.flags.z()) goto notinryaninv;
- context.al = context.data.byte(context.bx+4);
+ context.al = context.ds.byte(context.bx+4);
context.ah = 0;
context.push(context.di);
context._add(context.di, context.ax);
@@ -6713,23 +6713,23 @@ static void findallopen(Context & context) {
context.ax = 0x0ffff;
while(--context.cx) context._stosw();
context.di = context.pop();
- context.cl = context.data.byte(110);
- context.dl = context.data.byte(111);
- context.ds = context.data.word(398);
+ context.cl = context.ds.byte(110);
+ context.dl = context.ds.byte(111);
+ context.ds = context.ds.word(398);
context.bx = 0+2080+30000;
context.ch = 0;
findopen1:
- context._cmp(context.data.byte(context.bx+3), context.cl);
+ context._cmp(context.ds.byte(context.bx+3), context.cl);
if (!context.flags.z()) goto findopen2;
- context._cmp(context.data.byte(context.bx+2), context.dl);
+ context._cmp(context.ds.byte(context.bx+2), context.dl);
if (!context.flags.z()) goto findopen2;
- context._cmp(context.data.byte(111), 4);
+ context._cmp(context.ds.byte(111), 4);
if (context.flags.z()) goto noloccheck;
- context.al = context.data.byte(context.bx+5);
- context._cmp(context.al, context.data.byte(184));
+ context.al = context.ds.byte(context.bx+5);
+ context._cmp(context.al, context.ds.byte(184));
if (!context.flags.z()) goto findopen2;
noloccheck:
- context.al = context.data.byte(context.bx+4);
+ context.al = context.ds.byte(context.bx+4);
context.ah = 0;
context.push(context.di);
context._add(context.di, context.ax);
@@ -6743,19 +6743,19 @@ findopen2:
context._add(context.ch, 1);
context._cmp(context.ch, 114);
if (!context.flags.z()) goto findopen1;
- context.cl = context.data.byte(110);
- context.dl = context.data.byte(111);
+ context.cl = context.ds.byte(110);
+ context.dl = context.ds.byte(111);
context.push(context.dx);
- context.ds = context.data.word(426);
+ context.ds = context.ds.word(426);
context.dx = context.pop();
context.bx = 0;
context.ch = 0;
findopen1a:
- context._cmp(context.data.byte(context.bx+3), context.cl);
+ context._cmp(context.ds.byte(context.bx+3), context.cl);
if (!context.flags.z()) goto findopen2a;
- context._cmp(context.data.byte(context.bx+2), context.dl);
+ context._cmp(context.ds.byte(context.bx+2), context.dl);
if (!context.flags.z()) goto findopen2a;
- context.al = context.data.byte(context.bx+4);
+ context.al = context.ds.byte(context.bx+4);
context.ah = 0;
context.push(context.di);
context._add(context.di, context.ax);
@@ -6780,7 +6780,7 @@ static void obtoinv(Context & context) {
context.push(context.ax);
context.push(context.di);
context.push(context.bx);
- context.ds = context.data.word(408);
+ context.ds = context.ds.word(408);
context._sub(context.di, 2);
context._sub(context.bx, 1);
context.al = 10;
@@ -6794,10 +6794,10 @@ static void obtoinv(Context & context) {
context.push(context.bx);
context.push(context.di);
context.push(context.ax);
- context.ds = context.data.word(398);
+ context.ds = context.ds.word(398);
context._cmp(context.ah, 4);
if (context.flags.z()) goto isanextra;
- context.ds = context.data.word(446);
+ context.ds = context.ds.word(446);
isanextra:
context.cl = context.al;
context._add(context.al, context.al);
@@ -6815,7 +6815,7 @@ isanextra:
isitworn(context);
context.bx = context.pop();
if (!context.flags.z()) goto finishfill;
- context.ds = context.data.word(408);
+ context.ds = context.ds.word(408);
context._sub(context.di, 3);
context._sub(context.bx, 2);
context.al = 7;
@@ -6830,34 +6830,34 @@ finishfill:
}
static void isitworn(Context & context) {
- context.al = context.data.byte(context.bx+12);
+ context.al = context.ds.byte(context.bx+12);
context._cmp(context.al, 'W'-'A');
if (!context.flags.z()) goto notworn;
- context.al = context.data.byte(context.bx+13);
+ context.al = context.ds.byte(context.bx+13);
context._cmp(context.al, 'E'-'A');
notworn:
return;
}
static void makeworn(Context & context) {
- context.data.byte(context.bx+12) = 'W'-'A';
- context.data.byte(context.bx+13) = 'E'-'A';
+ context.ds.byte(context.bx+12) = 'W'-'A';
+ context.ds.byte(context.bx+13) = 'E'-'A';
return;
}
static void examineob(Context & context) {
- context.data.byte(234) = 0;
- context.data.word(328) = 0;
+ context.ds.byte(234) = 0;
+ context.ds.word(328) = 0;
examineagain:
- context.data.byte(237) = 0;
- context.data.byte(108) = 0;
- context.data.byte(110) = 255;
- context.data.byte(111) = 255;
- context.data.byte(104) = 0;
- context.al = context.data.byte(100);
- context.data.byte(102) = context.al;
- context.data.byte(89) = 0;
- context.data.byte(231) = 0;
+ context.ds.byte(237) = 0;
+ context.ds.byte(108) = 0;
+ context.ds.byte(110) = 255;
+ context.ds.byte(111) = 255;
+ context.ds.byte(104) = 0;
+ context.al = context.ds.byte(100);
+ context.ds.byte(102) = context.al;
+ context.ds.byte(89) = 0;
+ context.ds.byte(231) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -6866,7 +6866,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -6878,41 +6878,41 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.data.byte(103) = 0;
+ context.ds.byte(103) = 0;
context.bx = 2494;
- context._cmp(context.data.byte(104), 0);
+ context._cmp(context.ds.byte(104), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.data.byte(104), 1);
+ context._cmp(context.ds.byte(104), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.data.byte(108), 0);
+ context._cmp(context.ds.byte(108), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.ds.byte(103), 0);
if (context.flags.z()) goto waitexam;
- context.data.byte(106) = 0;
- context._cmp(context.data.word(21), 0);
+ context.ds.byte(106) = 0;
+ context._cmp(context.ds.word(21), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(188), 255);
+ context._cmp(context.ds.byte(188), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.ds.byte(104) = 0;
+ context.ds.byte(110) = 255;
return;
justgetback:
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.ds.byte(104) = 0;
+ context.ds.byte(110) = 255;
return;
}
static void makemainscreen(Context & context) {
createpanel(context);
- context.data.byte(62) = 1;
+ context.ds.byte(62) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
@@ -6920,16 +6920,16 @@ static void makemainscreen(Context & context) {
showicon(context);
getunderzoom(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
animpointer(context);
worktoscreenm(context);
- context.data.byte(100) = 200;
- context.data.byte(131) = 0;
+ context.ds.byte(100) = 200;
+ context.ds.byte(131) = 0;
return;
}
static void getbackfromob(Context & context) {
- context._cmp(context.data.byte(106), 1);
+ context._cmp(context.ds.byte(106), 1);
if (!context.flags.z()) goto notheldob;
blank(context);
return;
@@ -6939,25 +6939,25 @@ notheldob:
}
static void incryanpage(Context & context) {
- context._cmp(context.data.byte(100), 222);
+ context._cmp(context.ds.byte(100), 222);
if (context.flags.z()) goto alreadyincryan;
- context.data.byte(100) = 222;
+ context.ds.byte(100) = 222;
context.al = 31;
commandonly(context);
alreadyincryan:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto noincryan;
context._and(context.ax, 1);
if (!context.flags.z()) goto doincryan;
noincryan:
return;
doincryan:
- context.ax = context.data.word(198);
+ context.ax = context.ds.word(198);
context._sub(context.ax, 80+167);
- context.data.byte(19) = -1;
+ context.ds.byte(19) = -1;
findnewpage:
- context._add(context.data.byte(19), 1);
+ context._add(context.ds.byte(19), 1);
context._sub(context.ax, 18);
if (!context.flags.c()) goto findnewpage;
delpointer(context);
@@ -6970,32 +6970,32 @@ findnewpage:
}
static void openinv(Context & context) {
- context.data.byte(104) = 1;
+ context.ds.byte(104) = 1;
context.al = 61;
context.di = 80;
context.bx = 58-10;
context.dl = 240;
printmessage(context);
fillryan(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
return;
}
static void showryanpage(Context & context) {
- context.ds = context.data.word(408);
+ context.ds = context.ds.word(408);
context.di = 80+167;
context.bx = 58-12;
context.al = 12;
context.ah = 0;
showframe(context);
context.al = 13;
- context._add(context.al, context.data.byte(19));
+ context._add(context.al, context.ds.byte(19));
context.push(context.ax);
- context.al = context.data.byte(19);
+ context.al = context.ds.byte(19);
context.ah = 0;
context.cx = 18;
context._mul(context.cx);
- context.ds = context.data.word(408);
+ context.ds = context.ds.word(408);
context.di = 80+167;
context._add(context.di, context.ax);
context.bx = 58-12;
@@ -7006,8 +7006,8 @@ static void showryanpage(Context & context) {
}
static void openob(Context & context) {
- context.al = context.data.byte(110);
- context.ah = context.data.byte(111);
+ context.al = context.ds.byte(110);
+ context.ah = context.ds.byte(111);
context.di = 5674;
copyname(context);
context.di = 80;
@@ -7015,7 +7015,7 @@ static void openob(Context & context) {
context.al = 62;
context.dl = 240;
printmessage(context);
- context.di = context.data.word(84);
+ context.di = context.ds.word(84);
context._add(context.di, 5);
context.bx = 58+86;
context.es = context.cs;
@@ -7032,23 +7032,23 @@ static void openob(Context & context) {
context._mul(context.cx);
context._add(context.ax, 80);
context.bx = 2588;
- context.data.word(context.bx) = context.ax;
+ context.ds.word(context.bx) = context.ax;
return;
}
static void obicons(Context & context) {
- context.al = context.data.byte(99);
+ context.al = context.ds.byte(99);
getanyad(context);
context._cmp(context.al, 255);
if (context.flags.z()) goto cantopenit;
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.di = 210;
context.bx = 1;
context.al = 4;
context.ah = 0;
showframe(context);
cantopenit:
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.di = 260;
context.bx = 1;
context.al = 1;
@@ -7058,7 +7058,7 @@ cantopenit:
}
static void examicon(Context & context) {
- context.ds = context.data.word(410);
+ context.ds = context.ds.word(410);
context.di = 254;
context.bx = 5;
context.al = 3;
@@ -7068,13 +7068,13 @@ static void examicon(Context & context) {
}
static void obpicture(Context & context) {
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.ds.byte(99);
+ context.ah = context.ds.byte(102);
context._cmp(context.ah, 1);
if (context.flags.z()) goto setframe;
context._cmp(context.ah, 4);
if (context.flags.z()) goto exframe;
- context.ds = context.data.word(446);
+ context.ds = context.ds.word(446);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7087,7 +7087,7 @@ static void obpicture(Context & context) {
setframe:
return;
exframe:
- context.ds = context.data.word(398);
+ context.ds = context.ds.word(398);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7103,18 +7103,18 @@ static void describeob(Context & context) {
getobtextstart(context);
context.di = 33;
context.bx = 92;
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.ds.byte(102), 1);
if (!context.flags.z()) goto notsetd;
context.bx = 82;
notsetd:
context.dl = 241;
context.ah = 16;
- context.data.word(71) = 91+91;
+ context.ds.word(71) = 91+91;
printdirect(context);
- context.data.word(71) = 0;
+ context.ds.word(71) = 0;
context.di = 36;
context.bx = 104;
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.ds.byte(102), 1);
if (!context.flags.z()) goto notsetd2;
context.bx = 94;
notsetd2:
@@ -7131,16 +7131,16 @@ notsetd2:
static void additionaltext(Context & context) {
context._add(context.bx, 10);
context.push(context.bx);
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.ds.byte(99);
+ context.ah = context.ds.byte(102);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto emptycup;
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.ds.byte(99);
+ context.ah = context.ds.byte(102);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -7170,8 +7170,8 @@ fullcup:
}
static void obsthatdothings(Context & context) {
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.ds.byte(99);
+ context.ah = context.ds.byte(102);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -7192,35 +7192,35 @@ notlouiscard:
}
static void getobtextstart(Context & context) {
- context.es = context.data.word(438);
+ context.es = context.ds.word(438);
context.si = 0;
context.cx = 0+(82*2);
- context._cmp(context.data.byte(102), 2);
+ context._cmp(context.ds.byte(102), 2);
if (context.flags.z()) goto describe;
- context.es = context.data.word(440);
+ context.es = context.ds.word(440);
context.si = 0;
context.cx = 0+(130*2);
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.ds.byte(102), 1);
if (context.flags.z()) goto describe;
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.si = 0+2080+30000+(16*114);
context.cx = 0+2080+30000+(16*114)+((114+2)*2);
describe:
- context.al = context.data.byte(99);
+ context.al = context.ds.byte(99);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.si, context.ax);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
context.bx = context.ax;
tryagain:
context.push(context.si);
findnextcolon(context);
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context.cx = context.si;
context.si = context.pop();
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.ds.byte(102), 1);
if (!context.flags.z()) goto cantmakeoneup;
context._cmp(context.al, 0);
if (context.flags.z()) goto findsometext;
@@ -7238,9 +7238,9 @@ static void searchforsame(Context & context) {
context.si = context.cx;
searchagain:
context._add(context.si, 1);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
search:
- context._cmp(context.data.byte(context.si), context.al);
+ context._cmp(context.ds.byte(context.si), context.al);
if (context.flags.z()) goto gotstartletter;
context._add(context.cx, 1);
context._add(context.si, 1);
@@ -7255,8 +7255,8 @@ gotstartletter:
keepchecking:
context._add(context.si, 1);
context._add(context.bx, 1);
- context.al = context.data.byte(context.bx);
- context.ah = context.data.byte(context.si);
+ context.al = context.ds.byte(context.bx);
+ context.ah = context.ds.byte(context.si);
context._cmp(context.al, ':');
if (context.flags.z()) goto foundmatch;
context._cmp(context.al, 0);
@@ -7274,7 +7274,7 @@ foundmatch:
static void findnextcolon(Context & context) {
isntcolon:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, 0);
if (context.flags.z()) goto endofcolon;
@@ -7285,31 +7285,31 @@ endofcolon:
}
static void inventory(Context & context) {
- context._cmp(context.data.byte(56), 1);
+ context._cmp(context.ds.byte(56), 1);
if (context.flags.z()) goto iswatchinv;
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.ds.word(21), 0);
if (context.flags.z()) goto notwatchinv;
iswatchinv:
blank(context);
return;
notwatchinv:
- context._cmp(context.data.byte(100), 239);
+ context._cmp(context.ds.byte(100), 239);
if (context.flags.z()) goto alreadyopinv;
- context.data.byte(100) = 239;
+ context.ds.byte(100) = 239;
context.al = 32;
commandonly(context);
alreadyopinv:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto cantopinv;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopeninv;
cantopinv:
return;
doopeninv:
- context.data.word(328) = 0;
- context.data.byte(234) = 0;
- context.data.byte(237) = 0;
+ context.ds.word(328) = 0;
+ context.ds.byte(234) = 0;
+ context.ds.byte(237) = 0;
animpointer(context);
createpanel(context);
showpanel(context);
@@ -7317,26 +7317,26 @@ doopeninv:
showman(context);
showexit(context);
undertextline(context);
- context.data.byte(106) = 0;
- context.data.byte(104) = 2;
+ context.ds.byte(106) = 0;
+ context.ds.byte(104) = 2;
openinv(context);
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.data.byte(110) = 255;
+ context.ds.byte(110) = 255;
goto waitexam;
/*continuing to unbounded code: examineagain from examineob:3-66*/
examineagain:
- context.data.byte(237) = 0;
- context.data.byte(108) = 0;
- context.data.byte(110) = 255;
- context.data.byte(111) = 255;
- context.data.byte(104) = 0;
- context.al = context.data.byte(100);
- context.data.byte(102) = context.al;
- context.data.byte(89) = 0;
- context.data.byte(231) = 0;
+ context.ds.byte(237) = 0;
+ context.ds.byte(108) = 0;
+ context.ds.byte(110) = 255;
+ context.ds.byte(111) = 255;
+ context.ds.byte(104) = 0;
+ context.al = context.ds.byte(100);
+ context.ds.byte(102) = context.al;
+ context.ds.byte(89) = 0;
+ context.ds.byte(231) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -7345,7 +7345,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -7357,35 +7357,35 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.data.byte(103) = 0;
+ context.ds.byte(103) = 0;
context.bx = 2494;
- context._cmp(context.data.byte(104), 0);
+ context._cmp(context.ds.byte(104), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.data.byte(104), 1);
+ context._cmp(context.ds.byte(104), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.data.byte(108), 0);
+ context._cmp(context.ds.byte(108), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.ds.byte(103), 0);
if (context.flags.z()) goto waitexam;
- context.data.byte(106) = 0;
- context._cmp(context.data.word(21), 0);
+ context.ds.byte(106) = 0;
+ context._cmp(context.ds.word(21), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(188), 255);
+ context._cmp(context.ds.byte(188), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.ds.byte(104) = 0;
+ context.ds.byte(110) = 255;
return;
justgetback:
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.ds.byte(104) = 0;
+ context.ds.byte(110) = 255;
return;
examlist:
invlist1:
@@ -7395,30 +7395,30 @@ withlist1:
}
static void setpickup(Context & context) {
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.ds.byte(102), 1);
if (context.flags.z()) goto cantpick;
- context._cmp(context.data.byte(102), 3);
+ context._cmp(context.ds.byte(102), 3);
if (context.flags.z()) goto cantpick;
getanyad(context);
- context.al = context.data.byte(context.bx+2);
+ context.al = context.ds.byte(context.bx+2);
context._cmp(context.al, 4);
if (!context.flags.z()) goto canpick;
cantpick:
blank(context);
return;
canpick:
- context._cmp(context.data.byte(100), 209);
+ context._cmp(context.ds.byte(100), 209);
if (context.flags.z()) goto alreadysp;
- context.data.byte(100) = 209;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
+ context.ds.byte(100) = 209;
+ context.bl = context.ds.byte(99);
+ context.bh = context.ds.byte(102);
context.al = 33;
commandwithob(context);
alreadysp:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._cmp(context.ax, 1);
if (!context.flags.z()) goto nosetpick;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (!context.flags.z()) goto dosetpick;
nosetpick:
return;
@@ -7428,39 +7428,39 @@ dosetpick:
showman(context);
showexit(context);
examicon(context);
- context.data.byte(106) = 1;
- context.data.byte(104) = 2;
- context._cmp(context.data.byte(102), 4);
+ context.ds.byte(106) = 1;
+ context.ds.byte(104) = 2;
+ context._cmp(context.ds.byte(102), 4);
if (context.flags.z()) goto pickupexob;
- context.al = context.data.byte(99);
- context.data.byte(89) = context.al;
- context.data.byte(110) = 255;
+ context.al = context.ds.byte(99);
+ context.ds.byte(89) = context.al;
+ context.ds.byte(110) = 255;
transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = 4;
geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
openinv(context);
worktoscreenm(context);
return;
pickupexob:
- context.al = context.data.byte(99);
- context.data.byte(89) = context.al;
- context.data.byte(110) = 255;
+ context.al = context.ds.byte(99);
+ context.ds.byte(89) = context.al;
+ context.ds.byte(110) = 255;
openinv(context);
worktoscreenm(context);
return;
}
static void examinventory(Context & context) {
- context._cmp(context.data.byte(100), 249);
+ context._cmp(context.ds.byte(100), 249);
if (context.flags.z()) goto alreadyexinv;
- context.data.byte(100) = 249;
+ context.ds.byte(100) = 249;
context.al = 32;
commandonly(context);
alreadyexinv:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._and(context.ax, 1);
if (!context.flags.z()) goto doexinv;
return;
@@ -7470,8 +7470,8 @@ doexinv:
showman(context);
showexit(context);
examicon(context);
- context.data.byte(106) = 0;
- context.data.byte(104) = 2;
+ context.ds.byte(106) = 0;
+ context.ds.byte(104) = 2;
openinv(context);
worktoscreenm(context);
return;
@@ -7479,74 +7479,74 @@ doexinv:
static void reexfrominv(Context & context) {
findinvpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(100) = context.ah;
- context.data.byte(99) = context.al;
- context.data.byte(108) = 1;
- context.data.byte(234) = 0;
+ context.ax = context.ds.word(context.bx);
+ context.ds.byte(100) = context.ah;
+ context.ds.byte(99) = context.al;
+ context.ds.byte(108) = 1;
+ context.ds.byte(234) = 0;
return;
}
static void reexfromopen(Context & context) {
return;
findopenpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(100) = context.ah;
- context.data.byte(99) = context.al;
- context.data.byte(108) = 1;
- context.data.byte(234) = 0;
+ context.ax = context.ds.word(context.bx);
+ context.ds.byte(100) = context.ah;
+ context.ds.byte(99) = context.al;
+ context.ds.byte(108) = 1;
+ context.ds.byte(234) = 0;
return;
}
static void swapwithinv(Context & context) {
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.ds.byte(89);
+ context.ah = context.ds.byte(102);
+ context._cmp(context.ax, context.ds.word(94));
if (!context.flags.z()) goto difsub7;
- context._cmp(context.data.byte(100), 243);
+ context._cmp(context.ds.byte(100), 243);
if (context.flags.z()) goto alreadyswap1;
- context.data.byte(100) = 243;
+ context.ds.byte(100) = 243;
difsub7:
- context.data.word(94) = context.ax;
+ context.ds.word(94) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap1:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto cantswap1;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap1;
cantswap1:
return;
doswap1:
- context.ah = context.data.byte(102);
- context.al = context.data.byte(89);
+ context.ah = context.ds.byte(102);
+ context.al = context.ds.byte(89);
context.push(context.ax);
findinvpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.ax = context.ds.word(context.bx);
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
+ context.bl = context.ds.byte(89);
+ context.bh = context.ds.byte(102);
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
+ context.ds.byte(89) = context.al;
context.push(context.bx);
findinvpos(context);
delpointer(context);
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
geteitherad(context);
- context.data.byte(context.bx+2) = 4;
- context.data.byte(context.bx+3) = 255;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
+ context.ds.byte(context.bx+2) = 4;
+ context.ds.byte(context.bx+3) = 255;
+ context.al = context.ds.byte(107);
+ context.ds.byte(context.bx+4) = context.al;
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
+ context.ds.byte(89) = context.al;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7556,21 +7556,21 @@ doswap1:
}
static void swapwithopen(Context & context) {
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.ds.byte(89);
+ context.ah = context.ds.byte(102);
+ context._cmp(context.ax, context.ds.word(94));
if (!context.flags.z()) goto difsub8;
- context._cmp(context.data.byte(100), 242);
+ context._cmp(context.ds.byte(100), 242);
if (context.flags.z()) goto alreadyswap2;
- context.data.byte(100) = 242;
+ context.ds.byte(100) = 242;
difsub8:
- context.data.word(94) = context.ax;
+ context.ds.word(94) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap2:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto cantswap2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap2;
@@ -7584,11 +7584,11 @@ doswap2:
return;
notwornswap:
delpointer(context);
- context.al = context.data.byte(89);
- context._cmp(context.al, context.data.byte(110));
+ context.al = context.ds.byte(89);
+ context._cmp(context.al, context.ds.byte(110));
if (!context.flags.z()) goto isntsame2;
- context.al = context.data.byte(102);
- context._cmp(context.al, context.data.byte(111));
+ context.al = context.ds.byte(102);
+ context._cmp(context.al, context.ds.byte(111));
if (!context.flags.z()) goto isntsame2;
errormessage1(context);
return;
@@ -7598,46 +7598,46 @@ isntsame2:
if (context.flags.z()) goto sizeok2;
return;
sizeok2:
- context.ah = context.data.byte(102);
- context.al = context.data.byte(89);
+ context.ah = context.ds.byte(102);
+ context.al = context.ds.byte(89);
context.push(context.ax);
findopenpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.ax = context.ds.word(context.bx);
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeswapex;
geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
goto actuallyswap;
makeswapex:
transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = 4;
geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
actuallyswap:
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
+ context.bl = context.ds.byte(89);
+ context.bh = context.ds.byte(102);
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
+ context.ds.byte(89) = context.al;
context.push(context.bx);
findopenpos(context);
geteitherad(context);
- context.al = context.data.byte(111);
- context.data.byte(context.bx+2) = context.al;
- context.al = context.data.byte(110);
- context.data.byte(context.bx+3) = context.al;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.al = context.data.byte(184);
- context.data.byte(context.bx+5) = context.al;
+ context.al = context.ds.byte(111);
+ context.ds.byte(context.bx+2) = context.al;
+ context.al = context.ds.byte(110);
+ context.ds.byte(context.bx+3) = context.al;
+ context.al = context.ds.byte(107);
+ context.ds.byte(context.bx+4) = context.al;
+ context.al = context.ds.byte(184);
+ context.ds.byte(context.bx+5) = context.al;
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
+ context.ds.byte(89) = context.al;
fillopen(context);
fillryan(context);
undertextline(context);
@@ -7650,33 +7650,33 @@ actuallyswap:
}
static void intoinv(Context & context) {
- context._cmp(context.data.byte(106), 0);
+ context._cmp(context.ds.byte(106), 0);
if (!context.flags.z()) goto notout;
outofinv(context);
return;
notout:
findinvpos(context);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto canplace1;
swapwithinv(context);
return;
canplace1:
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.ds.byte(89);
+ context.ah = context.ds.byte(102);
+ context._cmp(context.ax, context.ds.word(94));
if (!context.flags.z()) goto difsub1;
- context._cmp(context.data.byte(100), 220);
+ context._cmp(context.ds.byte(100), 220);
if (context.flags.z()) goto alreadyplce;
- context.data.byte(100) = 220;
+ context.ds.byte(100) = 220;
difsub1:
- context.data.word(94) = context.ax;
+ context.ds.word(94) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplce:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto notletgo2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doplace;
@@ -7684,13 +7684,13 @@ notletgo2:
return;
doplace:
delpointer(context);
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
getexad(context);
- context.data.byte(context.bx+2) = 4;
- context.data.byte(context.bx+3) = 255;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.data.byte(106) = 0;
+ context.ds.byte(context.bx+2) = 4;
+ context.ds.byte(context.bx+3) = 255;
+ context.al = context.ds.byte(107);
+ context.ds.byte(context.bx+4) = context.al;
+ context.ds.byte(106) = 0;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7701,22 +7701,22 @@ doplace:
}
static void deletetaken(Context & context) {
- context.es = context.data.word(426);
- context.ah = context.data.byte(184);
- context.ds = context.data.word(398);
+ context.es = context.ds.word(426);
+ context.ah = context.ds.byte(184);
+ context.ds = context.ds.word(398);
context.si = 0+2080+30000;
context.cx = 114;
takenloop:
- context.al = context.data.byte(context.si+11);
+ context.al = context.ds.byte(context.si+11);
context._cmp(context.al, context.ah);
if (!context.flags.z()) goto notinhere;
- context.bl = context.data.byte(context.si+1);
+ context.bl = context.ds.byte(context.si+1);
context.bh = 0;
context._add(context.bx, context.bx);
context._add(context.bx, context.bx);
context._add(context.bx, context.bx);
context._add(context.bx, context.bx);
- context.data.byte(context.bx+2) = 254;
+ context.ds.byte(context.bx+2) = 254;
notinhere:
context._add(context.si, 16);
if (--context.cx) goto takenloop;
@@ -7725,31 +7725,31 @@ notinhere:
static void outofinv(Context & context) {
findinvpos(context);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canpick2;
blank(context);
return;
canpick2:
- context.bx = context.data.word(202);
+ context.bx = context.ds.word(202);
context._cmp(context.bx, 2);
if (!context.flags.z()) goto canpick2a;
reexfrominv(context);
return;
canpick2a:
- context._cmp(context.ax, context.data.word(94));
+ context._cmp(context.ax, context.ds.word(94));
if (!context.flags.z()) goto difsub3;
- context._cmp(context.data.byte(100), 221);
+ context._cmp(context.ds.byte(100), 221);
if (context.flags.z()) goto alreadygrab;
- context.data.byte(100) = 221;
+ context.ds.byte(100) = 221;
difsub3:
- context.data.word(94) = context.ax;
+ context.ds.word(94) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrab:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto notletgo;
context._and(context.ax, 1);
if (!context.flags.z()) goto dograb;
@@ -7757,14 +7757,14 @@ notletgo:
return;
dograb:
delpointer(context);
- context.data.byte(106) = 1;
+ context.ds.byte(106) = 1;
findinvpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.ax = context.ds.word(context.bx);
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
getexad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7779,7 +7779,7 @@ static void getfreead(Context & context) {
context.cl = 4;
context._shl(context.ax, context.cl);
context.bx = context.ax;
- context.es = context.data.word(426);
+ context.es = context.ds.word(426);
return;
}
@@ -7788,41 +7788,41 @@ static void getexad(Context & context) {
context.bx = 16;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context._add(context.bx, 0+2080+30000);
return;
}
static void geteitherad(Context & context) {
- context._cmp(context.data.byte(102), 4);
+ context._cmp(context.ds.byte(102), 4);
if (context.flags.z()) goto isinexlist;
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
getfreead(context);
return;
isinexlist:
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
getexad(context);
return;
}
static void getanyad(Context & context) {
- context._cmp(context.data.byte(102), 4);
+ context._cmp(context.ds.byte(102), 4);
if (context.flags.z()) goto isex;
- context._cmp(context.data.byte(102), 2);
+ context._cmp(context.ds.byte(102), 2);
if (context.flags.z()) goto isfree;
- context.al = context.data.byte(99);
+ context.al = context.ds.byte(99);
getsetad(context);
- context.ax = context.data.word(context.bx+4);
+ context.ax = context.ds.word(context.bx+4);
return;
isfree:
- context.al = context.data.byte(99);
+ context.al = context.ds.byte(99);
getfreead(context);
- context.ax = context.data.word(context.bx+7);
+ context.ax = context.ds.word(context.bx+7);
return;
isex:
- context.al = context.data.byte(99);
+ context.al = context.ds.byte(99);
getexad(context);
- context.ax = context.data.word(context.bx+7);
+ context.ax = context.ds.word(context.bx+7);
return;
}
@@ -7842,23 +7842,23 @@ isex3:
}
static void getopenedsize(Context & context) {
- context._cmp(context.data.byte(111), 4);
+ context._cmp(context.ds.byte(111), 4);
if (context.flags.z()) goto isex2;
- context._cmp(context.data.byte(111), 2);
+ context._cmp(context.ds.byte(111), 2);
if (context.flags.z()) goto isfree2;
- context.al = context.data.byte(110);
+ context.al = context.ds.byte(110);
getsetad(context);
- context.ax = context.data.word(context.bx+3);
+ context.ax = context.ds.word(context.bx+3);
return;
isfree2:
- context.al = context.data.byte(110);
+ context.al = context.ds.byte(110);
getfreead(context);
- context.ax = context.data.word(context.bx+7);
+ context.ax = context.ds.word(context.bx+7);
return;
isex2:
- context.al = context.data.byte(110);
+ context.al = context.ds.byte(110);
getexad(context);
- context.ax = context.data.word(context.bx+7);
+ context.ax = context.ds.word(context.bx+7);
return;
}
@@ -7867,40 +7867,40 @@ static void getsetad(Context & context) {
context.bx = 64;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.data.word(428);
+ context.es = context.ds.word(428);
return;
}
static void findinvpos(Context & context) {
- context.cx = context.data.word(198);
+ context.cx = context.ds.word(198);
context._sub(context.cx, 80);
context.bx = -1;
findinv1:
context._add(context.bx, 1);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv1;
- context.cx = context.data.word(200);
+ context.cx = context.ds.word(200);
context._sub(context.cx, 58);
context._sub(context.bx, 5);
findinv2:
context._add(context.bx, 5);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv2;
- context.al = context.data.byte(19);
+ context.al = context.ds.byte(19);
context.ah = 0;
context.cx = 10;
context._mul(context.cx);
context._add(context.bx, context.ax);
context.al = context.bl;
- context.data.byte(107) = context.al;
+ context.ds.byte(107) = context.al;
context._add(context.bx, context.bx);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context._add(context.bx, 0+(228*13)+32);
return;
}
static void findopenpos(Context & context) {
- context.cx = context.data.word(198);
+ context.cx = context.ds.word(198);
context._sub(context.cx, 80);
context.bx = -1;
findopenp1:
@@ -7908,26 +7908,26 @@ findopenp1:
context._sub(context.cx, 44);
if (!context.flags.c()) goto findopenp1;
context.al = context.bl;
- context.data.byte(107) = context.al;
+ context.ds.byte(107) = context.al;
context._add(context.bx, context.bx);
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context._add(context.bx, 0+(228*13));
return;
}
static void dropobject(Context & context) {
- context._cmp(context.data.byte(100), 223);
+ context._cmp(context.ds.byte(100), 223);
if (context.flags.z()) goto alreadydrop;
- context.data.byte(100) = 223;
- context._cmp(context.data.byte(106), 0);
+ context.ds.byte(100) = 223;
+ context._cmp(context.ds.byte(106), 0);
if (context.flags.z()) { blank(context); return; };
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
+ context.bl = context.ds.byte(89);
+ context.bh = context.ds.byte(102);
context.al = 37;
commandwithob(context);
alreadydrop:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nodrop;
context._and(context.ax, 1);
if (!context.flags.z()) goto dodrop;
@@ -7940,11 +7940,11 @@ dodrop:
wornerror(context);
return;
nowornerror:
- context._cmp(context.data.byte(184), 47);
+ context._cmp(context.ds.byte(184), 47);
if (context.flags.z()) goto nodrop2;
- context.cl = context.data.byte(151);
+ context.cl = context.ds.byte(151);
context._add(context.cl, 12);
- context.ch = context.data.byte(152);
+ context.ch = context.ds.byte(152);
context._add(context.ch, 12);
checkone(context);
context._cmp(context.cl, 2);
@@ -7953,14 +7953,14 @@ nodrop2:
droperror(context);
return;
nodroperror:
- context._cmp(context.data.byte(128), 64);
+ context._cmp(context.ds.byte(128), 64);
if (!context.flags.z()) goto notinlift;
- context._cmp(context.data.byte(129), 64);
+ context._cmp(context.ds.byte(129), 64);
if (!context.flags.z()) goto notinlift;
droperror(context);
return;
notinlift:
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
context.ah = 4;
context.cl = 'G';
context.ch = 'U';
@@ -7968,7 +7968,7 @@ notinlift:
context.dh = 'A';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
context.ah = 4;
context.cl = 'S';
context.ch = 'H';
@@ -7976,38 +7976,38 @@ notinlift:
context.dh = 'D';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.data.byte(102) = 4;
- context.al = context.data.byte(89);
+ context.ds.byte(102) = 4;
+ context.al = context.ds.byte(89);
getexad(context);
- context.data.byte(context.bx+2) = 0;
- context.al = context.data.byte(151);
+ context.ds.byte(context.bx+2) = 0;
+ context.al = context.ds.byte(151);
context._add(context.al, 4);
context.cl = 4;
context._shr(context.al, context.cl);
- context._add(context.al, context.data.byte(148));
- context.ah = context.data.byte(152);
+ context._add(context.al, context.ds.byte(148));
+ context.ah = context.ds.byte(152);
context._add(context.ah, 8);
context.cl = 4;
context._shr(context.ah, context.cl);
- context._add(context.ah, context.data.byte(149));
- context.data.byte(context.bx+3) = context.al;
- context.data.byte(context.bx+5) = context.ah;
- context.al = context.data.byte(151);
+ context._add(context.ah, context.ds.byte(149));
+ context.ds.byte(context.bx+3) = context.al;
+ context.ds.byte(context.bx+5) = context.ah;
+ context.al = context.ds.byte(151);
context._add(context.al, 4);
context._and(context.al, 15);
- context.ah = context.data.byte(152);
+ context.ah = context.ds.byte(152);
context._add(context.ah, 8);
context._and(context.ah, 15);
- context.data.byte(context.bx+4) = context.al;
- context.data.byte(context.bx+6) = context.ah;
- context.data.byte(106) = 0;
- context.al = context.data.byte(184);
- context.data.byte(context.bx) = context.al;
+ context.ds.byte(context.bx+4) = context.al;
+ context.ds.byte(context.bx+6) = context.ah;
+ context.ds.byte(106) = 0;
+ context.al = context.ds.byte(184);
+ context.ds.byte(context.bx) = context.al;
return;
}
static void droperror(Context & context) {
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8020,13 +8020,13 @@ static void droperror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
worktoscreenm(context);
return;
}
static void cantdrop(Context & context) {
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8039,13 +8039,13 @@ static void cantdrop(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
worktoscreenm(context);
return;
}
static void wornerror(Context & context) {
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8058,17 +8058,17 @@ static void wornerror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
worktoscreenm(context);
return;
}
static void removeobfrominv(Context & context) {
- context._cmp(context.data.byte(99), 100);
+ context._cmp(context.ds.byte(99), 100);
if (context.flags.z()) goto obnotexist;
getanyad(context);
context.di = context.bx;
- context.cl = context.data.byte(99);
+ context.cl = context.ds.byte(99);
context.ch = 0;
deleteexobject(context);
obnotexist:
@@ -8076,33 +8076,33 @@ obnotexist:
}
static void selectopenob(Context & context) {
- context.al = context.data.byte(99);
+ context.al = context.ds.byte(99);
getanyad(context);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canopenit1;
blank(context);
return;
canopenit1:
- context._cmp(context.data.byte(100), 224);
+ context._cmp(context.ds.byte(100), 224);
if (context.flags.z()) goto alreadyopob;
- context.data.byte(100) = 224;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
+ context.ds.byte(100) = 224;
+ context.bl = context.ds.byte(99);
+ context.bh = context.ds.byte(102);
context.al = 38;
commandwithob(context);
alreadyopob:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto noopenob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopenob;
noopenob:
return;
doopenob:
- context.al = context.data.byte(99);
- context.data.byte(110) = context.al;
- context.al = context.data.byte(102);
- context.data.byte(111) = context.al;
+ context.al = context.ds.byte(99);
+ context.ds.byte(110) = context.al;
+ context.al = context.ds.byte(102);
+ context.ds.byte(111) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -8119,41 +8119,41 @@ doopenob:
}
static void useopened(Context & context) {
- context._cmp(context.data.byte(110), 255);
+ context._cmp(context.ds.byte(110), 255);
if (context.flags.z()) goto cannotuseopen;
- context._cmp(context.data.byte(106), 0);
+ context._cmp(context.ds.byte(106), 0);
if (!context.flags.z()) goto notout2;
outofopen(context);
return;
notout2:
findopenpos(context);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto canplace3;
swapwithopen(context);
cannotuseopen:
return;
canplace3:
- context._cmp(context.data.byte(106), 1);
+ context._cmp(context.ds.byte(106), 1);
if (context.flags.z()) goto intoopen;
blank(context);
return;
intoopen:
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.ds.byte(89);
+ context.ah = context.ds.byte(102);
+ context._cmp(context.ax, context.ds.word(94));
if (!context.flags.z()) goto difsub2;
- context._cmp(context.data.byte(100), 227);
+ context._cmp(context.ds.byte(100), 227);
if (context.flags.z()) goto alreadyplc2;
- context.data.byte(100) = 227;
+ context.ds.byte(100) = 227;
difsub2:
- context.data.word(94) = context.ax;
+ context.ds.word(94) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplc2:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto notletgo3;
context._cmp(context.ax, 1);
if (context.flags.z()) goto doplace2;
@@ -8167,11 +8167,11 @@ doplace2:
return;
notworntoopen:
delpointer(context);
- context.al = context.data.byte(89);
- context._cmp(context.al, context.data.byte(110));
+ context.al = context.ds.byte(89);
+ context._cmp(context.al, context.ds.byte(110));
if (!context.flags.z()) goto isntsame;
- context.al = context.data.byte(102);
- context._cmp(context.al, context.data.byte(111));
+ context.al = context.ds.byte(102);
+ context._cmp(context.al, context.ds.byte(111));
if (!context.flags.z()) goto isntsame;
errormessage1(context);
return;
@@ -8181,17 +8181,17 @@ isntsame:
if (context.flags.z()) goto sizeok1;
return;
sizeok1:
- context.data.byte(106) = 0;
- context.al = context.data.byte(89);
+ context.ds.byte(106) = 0;
+ context.al = context.ds.byte(89);
geteitherad(context);
- context.al = context.data.byte(111);
- context.data.byte(context.bx+2) = context.al;
- context.al = context.data.byte(110);
- context.data.byte(context.bx+3) = context.al;
- context.al = context.data.byte(107);
- context.data.byte(context.bx+4) = context.al;
- context.al = context.data.byte(184);
- context.data.byte(context.bx+5) = context.al;
+ context.al = context.ds.byte(111);
+ context.ds.byte(context.bx+2) = context.al;
+ context.al = context.ds.byte(110);
+ context.ds.byte(context.bx+3) = context.al;
+ context.al = context.ds.byte(107);
+ context.ds.byte(context.bx+4) = context.al;
+ context.al = context.ds.byte(184);
+ context.ds.byte(context.bx+5) = context.al;
fillopen(context);
undertextline(context);
readmouse(context);
@@ -8227,7 +8227,7 @@ static void errormessage1(Context & context) {
}
static void errormessage2(Context & context) {
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8275,9 +8275,9 @@ static void errormessage3(Context & context) {
static void checkobjectsize(Context & context) {
getopenedsize(context);
context.push(context.ax);
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
geteitherad(context);
- context.al = context.data.byte(context.bx+9);
+ context.al = context.ds.byte(context.bx+9);
context.cx = context.pop();
context._cmp(context.al, 255);
if (!context.flags.z()) goto notunsized;
@@ -8314,29 +8314,29 @@ sizeok:
}
static void outofopen(Context & context) {
- context._cmp(context.data.byte(110), 255);
+ context._cmp(context.ds.byte(110), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canpick4;
cantuseopen:
blank(context);
return;
canpick4:
- context._cmp(context.ax, context.data.word(94));
+ context._cmp(context.ax, context.ds.word(94));
if (!context.flags.z()) goto difsub4;
- context._cmp(context.data.byte(100), 228);
+ context._cmp(context.ds.byte(100), 228);
if (context.flags.z()) goto alreadygrb;
- context.data.byte(100) = 228;
+ context.ds.byte(100) = 228;
difsub4:
- context.data.word(94) = context.ax;
+ context.ds.word(94) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrb:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto notletgo4;
context._cmp(context.ax, 1);
if (context.flags.z()) goto dogrb;
@@ -8347,24 +8347,24 @@ notletgo4:
return;
dogrb:
delpointer(context);
- context.data.byte(106) = 1;
+ context.ds.byte(106) = 1;
findopenpos(context);
- context.ax = context.data.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.ax = context.ds.word(context.bx);
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeintoex;
geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
goto actuallyout;
makeintoex:
transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
+ context.ds.byte(89) = context.al;
+ context.ds.byte(102) = 4;
geteitherad(context);
- context.data.byte(context.bx+2) = 20;
- context.data.byte(context.bx+3) = 255;
+ context.ds.byte(context.bx+2) = 20;
+ context.ds.byte(context.bx+3) = 255;
actuallyout:
fillopen(context);
undertextline(context);
@@ -8379,52 +8379,52 @@ actuallyout:
static void transfertoex(Context & context) {
emergencypurge(context);
getexpos(context);
- context.al = context.data.byte(10);
+ context.al = context.ds.byte(10);
context.push(context.ax);
context.push(context.di);
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.data.word(426);
+ context.ds = context.ds.word(426);
context.si = context.ax;
context.cx = 8;
while(--context.cx) context._movsw();
context.di = context.pop();
- context.al = context.data.byte(184);
- context.data.byte(context.di) = context.al;
- context.data.byte(context.di+11) = context.al;
- context.al = context.data.byte(89);
- context.data.byte(context.di+1) = context.al;
- context.data.byte(context.di+2) = 4;
- context.data.byte(context.di+3) = 255;
- context.al = context.data.byte(107);
- context.data.byte(context.di+4) = context.al;
- context.al = context.data.byte(89);
- context.data.byte(90) = context.al;
+ context.al = context.ds.byte(184);
+ context.ds.byte(context.di) = context.al;
+ context.ds.byte(context.di+11) = context.al;
+ context.al = context.ds.byte(89);
+ context.ds.byte(context.di+1) = context.al;
+ context.ds.byte(context.di+2) = 4;
+ context.ds.byte(context.di+3) = 255;
+ context.al = context.ds.byte(107);
+ context.ds.byte(context.di+4) = context.al;
+ context.al = context.ds.byte(89);
+ context.ds.byte(90) = context.al;
transfermap(context);
transferinv(context);
transfertext(context);
- context.al = context.data.byte(89);
+ context.al = context.ds.byte(89);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.data.word(426);
+ context.ds = context.ds.word(426);
context.si = context.ax;
- context.data.byte(context.si+2) = 254;
+ context.ds.byte(context.si+2) = 254;
pickupconts(context);
context.ax = context.pop();
return;
}
static void pickupconts(Context & context) {
- context.al = context.data.byte(context.si+7);
+ context.al = context.ds.byte(context.si+7);
context._cmp(context.al, 255);
if (context.flags.z()) goto notopenable;
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context.dl = context.data.byte(10);
- context.es = context.data.word(426);
+ context.al = context.ds.byte(89);
+ context.ah = context.ds.byte(102);
+ context.dl = context.ds.byte(10);
+ context.es = context.ds.word(426);
context.bx = 0;
context.cx = 0;
pickupcontloop:
@@ -8433,11 +8433,11 @@ pickupcontloop:
context.push(context.bx);
context.push(context.dx);
context.push(context.ax);
- context._cmp(context.data.byte(context.bx+2), context.ah);
+ context._cmp(context.ds.byte(context.bx+2), context.ah);
if (!context.flags.z()) goto notinsidethis;
- context._cmp(context.data.byte(context.bx+3), context.al);
+ context._cmp(context.ds.byte(context.bx+3), context.al);
if (!context.flags.z()) goto notinsidethis;
- context.data.byte(90) = context.cl;
+ context.ds.byte(90) = context.cl;
transfercontoex(context);
notinsidethis:
context.ax = context.pop();
@@ -8467,76 +8467,76 @@ static void transfercontoex(Context & context) {
while(--context.cx) context._movsw();
context.di = context.pop();
context.dx = context.pop();
- context.al = context.data.byte(184);
- context.data.byte(context.di) = context.al;
- context.data.byte(context.di+11) = context.al;
- context.al = context.data.byte(90);
- context.data.byte(context.di+1) = context.al;
- context.data.byte(context.di+3) = context.dl;
- context.data.byte(context.di+2) = 4;
+ context.al = context.ds.byte(184);
+ context.ds.byte(context.di) = context.al;
+ context.ds.byte(context.di+11) = context.al;
+ context.al = context.ds.byte(90);
+ context.ds.byte(context.di+1) = context.al;
+ context.ds.byte(context.di+3) = context.dl;
+ context.ds.byte(context.di+2) = 4;
transfermap(context);
transferinv(context);
transfertext(context);
context.si = context.pop();
context.ds = context.pop();
- context.data.byte(context.si+2) = 255;
+ context.ds.byte(context.si+2) = 255;
return;
}
static void transfertext(Context & context) {
- context.es = context.data.word(398);
- context.al = context.data.byte(10);
+ context.es = context.ds.word(398);
+ context.al = context.ds.byte(10);
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = 0+2080+30000+(16*114);
context._add(context.bx, context.ax);
- context.di = context.data.word(14);
- context.data.word(context.bx) = context.di;
+ context.di = context.ds.word(14);
+ context.ds.word(context.bx) = context.di;
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
- context.al = context.data.byte(90);
+ context.al = context.ds.byte(90);
context.ah = 0;
context._add(context.ax, context.ax);
- context.ds = context.data.word(438);
+ context.ds = context.ds.word(438);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+(82*2);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
context._add(context.si, context.ax);
moretext:
context._lodsb();
context._stosb();
- context._add(context.data.word(14), 1);
+ context._add(context.ds.word(14), 1);
context._cmp(context.al, 0);
if (!context.flags.z()) goto moretext;
return;
}
static void getexpos(Context & context) {
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.al = 0;
context.di = 0+2080+30000;
tryanotherex:
- context._cmp(context.data.byte(context.di+2), 255);
+ context._cmp(context.ds.byte(context.di+2), 255);
if (context.flags.z()) goto foundnewex;
context._add(context.di, 16);
context._add(context.al, 1);
context._cmp(context.al, 114);
if (!context.flags.z()) goto tryanotherex;
foundnewex:
- context.data.byte(10) = context.al;
+ context.ds.byte(10) = context.al;
return;
}
static void purgealocation(Context & context) {
context.push(context.ax);
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.di = 0+2080+30000;
context.bx = context.pop();
context.cx = 0;
purgeloc:
- context._cmp(context.bl, context.data.byte(context.di+0));
+ context._cmp(context.bl, context.ds.byte(context.di+0));
if (!context.flags.z()) goto dontpurge;
- context._cmp(context.data.byte(context.di+2), 0);
+ context._cmp(context.ds.byte(context.di+2), 0);
if (!context.flags.z()) goto dontpurge;
context.push(context.di);
context.push(context.es);
@@ -8557,14 +8557,14 @@ dontpurge:
static void emergencypurge(Context & context) {
checkpurgeagain:
- context.ax = context.data.word(12);
+ context.ax = context.ds.word(12);
context._add(context.ax, 4000);
context._cmp(context.ax, 30000);
if (context.flags.c()) goto notnearframeend;
purgeanitem(context);
goto checkpurgeagain;
notnearframeend:
- context.ax = context.data.word(14);
+ context.ax = context.ds.word(14);
context._add(context.ax, 400);
context._cmp(context.ax, 18000);
if (context.flags.c()) goto notneartextend;
@@ -8575,20 +8575,20 @@ notneartextend:
}
static void purgeanitem(Context & context) {
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.di = 0+2080+30000;
- context.bl = context.data.byte(184);
+ context.bl = context.ds.byte(184);
context.cx = 0;
lookforpurge:
- context.al = context.data.byte(context.di+2);
+ context.al = context.ds.byte(context.di+2);
context._cmp(context.al, 0);
if (!context.flags.z()) goto cantpurge;
- context._cmp(context.data.byte(context.di+12), 2);
+ context._cmp(context.ds.byte(context.di+12), 2);
if (context.flags.z()) goto iscup;
- context._cmp(context.data.byte(context.di+12), 255);
+ context._cmp(context.ds.byte(context.di+12), 255);
if (!context.flags.z()) goto cantpurge;
iscup:
- context._cmp(context.data.byte(context.di+11), context.bl);
+ context._cmp(context.ds.byte(context.di+11), context.bl);
if (context.flags.z()) goto cantpurge;
deleteexobject(context);
return;
@@ -8598,13 +8598,13 @@ cantpurge:
context._cmp(context.cx, 114);
if (!context.flags.z()) goto lookforpurge;
context.di = 0+2080+30000;
- context.bl = context.data.byte(184);
+ context.bl = context.ds.byte(184);
context.cx = 0;
lookforpurge2:
- context.al = context.data.byte(context.di+2);
+ context.al = context.ds.byte(context.di+2);
context._cmp(context.al, 0);
if (!context.flags.z()) goto cantpurge2;
- context._cmp(context.data.byte(context.di+12), 255);
+ context._cmp(context.ds.byte(context.di+12), 255);
if (!context.flags.z()) goto cantpurge2;
deleteexobject(context);
return;
@@ -8643,7 +8643,7 @@ static void deleteexobject(Context & context) {
context.di = 0+2080+30000;
context.cx = 0;
deleteconts:
- context._cmp(context.data.word(context.di+2), context.bx);
+ context._cmp(context.ds.word(context.di+2), context.bx);
if (!context.flags.z()) goto notinsideex;
context.push(context.bx);
context.push(context.cx);
@@ -8667,33 +8667,33 @@ static void deleteexframe(Context & context) {
context._add(context.di, context.ax);
context._add(context.ax, context.ax);
context._add(context.di, context.ax);
- context.al = context.data.byte(context.di);
+ context.al = context.ds.byte(context.di);
context.ah = 0;
- context.cl = context.data.byte(context.di+1);
+ context.cl = context.ds.byte(context.di+1);
context.ch = 0;
context._mul(context.cx);
- context.si = context.data.word(context.di+2);
+ context.si = context.ds.word(context.di+2);
context.push(context.si);
context._add(context.si, 0+2080);
context.cx = 30000;
- context._sub(context.cx, context.data.word(context.di+2));
+ context._sub(context.cx, context.ds.word(context.di+2));
context.di = context.si;
context._add(context.si, context.ax);
context.push(context.ax);
context.ds = context.es;
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.data.word(12), context.bx);
+ context._sub(context.ds.word(12), context.bx);
context.si = context.pop();
context.cx = 114*3;
context.di = 0;
shuffleadsdown:
- context.ax = context.data.word(context.di+2);
+ context.ax = context.ds.word(context.di+2);
context._cmp(context.ax, context.si);
if (context.flags.c()) goto beforethisone;
context._sub(context.ax, context.bx);
beforethisone:
- context.data.word(context.di+2) = context.ax;
+ context.ds.word(context.di+2) = context.ax;
context._add(context.di, 6);
if (--context.cx) goto shuffleadsdown;
return;
@@ -8704,14 +8704,14 @@ static void deleteextext(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.di, context.ax);
- context.ax = context.data.word(context.di);
+ context.ax = context.ds.word(context.di);
context.si = context.ax;
context.di = context.ax;
context._add(context.si, 0+2080+30000+(16*114)+((114+2)*2));
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
context.ax = 0;
findlenextext:
- context.cl = context.data.byte(context.si);
+ context.cl = context.ds.byte(context.si);
context._add(context.ax, 1);
context._add(context.si, 1);
context._cmp(context.cl, 0);
@@ -8724,17 +8724,17 @@ findlenextext:
context._sub(context.cx, context.bx);
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.data.word(14), context.bx);
+ context._sub(context.ds.word(14), context.bx);
context.si = context.pop();
context.cx = 114;
context.di = 0+2080+30000+(16*114);
shuffletextads:
- context.ax = context.data.word(context.di);
+ context.ax = context.ds.word(context.di);
context._cmp(context.ax, context.si);
if (context.flags.c()) goto beforethistext;
context._sub(context.ax, context.bx);
beforethistext:
- context.data.word(context.di) = context.ax;
+ context.ds.word(context.di) = context.ax;
context._add(context.di, 2);
if (--context.cx) goto shuffletextads;
return;
@@ -8743,7 +8743,7 @@ beforethistext:
static void blockget(Context & context) {
context.ah = context.al;
context.al = 0;
- context.ds = context.data.word(416);
+ context.ds = context.ds.word(416);
context.si = 0+192;
context._add(context.si, context.ax);
return;
@@ -8761,7 +8761,7 @@ static void drawfloor(Context & context) {
showallex(context);
paneltomap(context);
initrain(context);
- context.data.byte(62) = 0;
+ context.ds.byte(62) = 0;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -8778,8 +8778,8 @@ static void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.data.word(121));
- context.data.word(117) = context.ax;
+ context._add(context.ax, context.ds.word(121));
+ context.ds.word(117) = context.ax;
context.dx = context.pop();
context.cx = context.pop();
context.al = 10;
@@ -8789,13 +8789,13 @@ static void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.data.word(123));
- context.data.word(119) = context.ax;
+ context._add(context.ax, context.ds.word(123));
+ context.ds.word(119) = context.ax;
return;
}
static void getdimension(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32);
context.ch = 0;
dimloop1:
@@ -8847,14 +8847,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.word(125) = context.ax;
+ context.ds.word(125) = context.ax;
context.al = context.ch;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.word(127) = context.ax;
+ context.ds.word(127) = context.ax;
context._sub(context.dl, context.cl);
context._sub(context.dh, context.ch);
context.al = context.dl;
@@ -8863,21 +8863,21 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.byte(128) = context.al;
+ context.ds.byte(128) = context.al;
context.al = context.dh;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.byte(129) = context.al;
+ context.ds.byte(129) = context.al;
return;
}
static void addalong(Context & context) {
context.ah = 11;
addloop:
- context._cmp(context.data.byte(context.bx), 0);
+ context._cmp(context.ds.byte(context.bx), 0);
if (!context.flags.z()) goto gotalong;
context._add(context.bx, 3);
context._sub(context.ah, 1);
@@ -8892,7 +8892,7 @@ gotalong:
static void addlength(Context & context) {
context.ah = 10;
addloop2:
- context._cmp(context.data.byte(context.bx), 0);
+ context._cmp(context.ds.byte(context.bx), 0);
if (!context.flags.z()) goto gotlength;
context._add(context.bx, 3*11);
context._sub(context.ah, 1);
@@ -8905,13 +8905,13 @@ gotlength:
}
static void drawflags(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.di = 0+(228*13)+32+60+(32*32);
- context.al = context.data.byte(149);
+ context.al = context.ds.byte(149);
context.ah = 0;
context.cx = 66;
context._mul(context.cx);
- context.bl = context.data.byte(148);
+ context.bl = context.ds.byte(148);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -8921,9 +8921,9 @@ _tmp28:
context.push(context.cx);
context.cx = 11;
_tmp28a:
- context.ds = context.data.word(418);
+ context.ds = context.ds.word(418);
context._lodsb();
- context.ds = context.data.word(416);
+ context.ds = context.ds.word(416);
context.push(context.si);
context.push(context.ax);
context.ah = 0;
@@ -8942,15 +8942,15 @@ _tmp28a:
}
static void eraseoldobs(Context & context) {
- context._cmp(context.data.byte(62), 0);
+ context._cmp(context.ds.byte(62), 0);
if (context.flags.z()) goto donterase;
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
oberase:
context.push(context.cx);
context.push(context.bx);
- context.ax = context.data.word(context.bx+20);
+ context.ax = context.ds.word(context.bx+20);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto notthisob;
context.di = context.bx;
@@ -8967,21 +8967,21 @@ donterase:
}
static void showallobs(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32);
- context.data.word(18) = context.bx;
+ context.ds.word(18) = context.bx;
context.di = context.bx;
context.cx = 128*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(444);
- context.data.word(166) = context.es;
+ context.es = context.ds.word(444);
+ context.ds.word(166) = context.es;
context.ax = 0;
- context.data.word(164) = context.ax;
+ context.ds.word(164) = context.ax;
context.ax = 0+2080;
- context.data.word(162) = context.ax;
- context.data.byte(181) = 0;
- context.ds = context.data.word(428);
+ context.ds.word(162) = context.ax;
+ context.ds.byte(181) = 0;
+ context.ds = context.ds.word(428);
context.si = 0;
context.cx = 128;
showobsloop:
@@ -8989,14 +8989,14 @@ showobsloop:
context.push(context.si);
context.push(context.si);
context._add(context.si, 58);
- context.es = context.data.word(428);
+ context.es = context.ds.word(428);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankframe;
- context.al = context.data.byte(context.si+18);
+ context.al = context.ds.byte(context.si+18);
context.ah = 0;
- context.data.word(160) = context.ax;
+ context.ds.word(160) = context.ax;
context._cmp(context.al, 255);
if (context.flags.z()) goto blankframe;
context.push(context.es);
@@ -9005,39 +9005,39 @@ showobsloop:
finalframe(context);
context.si = context.pop();
context.es = context.pop();
- context.al = context.data.byte(context.si+18);
- context.data.byte(context.si+17) = context.al;
- context._cmp(context.data.byte(context.si+8), 0);
+ context.al = context.ds.byte(context.si+18);
+ context.ds.byte(context.si+17) = context.al;
+ context._cmp(context.ds.byte(context.si+8), 0);
if (!context.flags.z()) goto animating;
- context._cmp(context.data.byte(context.si+5), 5);
+ context._cmp(context.ds.byte(context.si+5), 5);
if (context.flags.z()) goto animating;
- context._cmp(context.data.byte(context.si+5), 6);
+ context._cmp(context.ds.byte(context.si+5), 6);
if (context.flags.z()) goto animating;
- context.ax = context.data.word(160);
+ context.ax = context.ds.word(160);
context.ah = 0;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.ds.word(117));
+ context._add(context.bx, context.ds.word(119));
showframe(context);
goto drawnsetob;
animating:
makebackob(context);
drawnsetob:
- context.si = context.data.word(18);
- context.es = context.data.word(412);
- context.al = context.data.byte(179);
- context.ah = context.data.byte(180);
- context.data.word(context.si) = context.ax;
+ context.si = context.ds.word(18);
+ context.es = context.ds.word(412);
+ context.al = context.ds.byte(179);
+ context.ah = context.ds.byte(180);
+ context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(176);
+ context.ax = context.ds.word(176);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
- context.data.word(context.si+2) = context.ax;
- context.al = context.data.byte(181);
- context.data.byte(context.si+4) = context.al;
+ context.ds.word(context.si+2) = context.ax;
+ context.al = context.ds.byte(181);
+ context.ds.byte(context.si+4) = context.al;
context._add(context.si, 5);
- context.data.word(18) = context.si;
+ context.ds.word(18) = context.si;
blankframe:
- context._add(context.data.byte(181), 1);
+ context._add(context.ds.byte(181), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 64);
@@ -9049,106 +9049,106 @@ finishedsetobs:
}
static void makebackob(Context & context) {
- context._cmp(context.data.byte(62), 0);
+ context._cmp(context.ds.byte(62), 0);
if (context.flags.z()) goto nomake;
- context.al = context.data.byte(context.si+5);
- context.ah = context.data.byte(context.si+8);
+ context.al = context.ds.byte(context.si+5);
+ context.ah = context.ds.byte(context.si+8);
context.push(context.si);
context.push(context.ax);
context.push(context.si);
- context.ax = context.data.word(168);
- context.bx = context.data.word(170);
+ context.ax = context.ds.word(168);
+ context.bx = context.ds.word(170);
context.ah = context.bl;
context.si = context.ax;
context.cx = 49520;
- context.dx = context.data.word(444);
+ context.dx = context.ds.word(444);
context.di = 0;
makesprite(context);
context.ax = context.pop();
- context.data.word(context.bx+20) = context.ax;
+ context.ds.word(context.bx+20) = context.ax;
context.ax = context.pop();
context._cmp(context.al, 255);
if (!context.flags.z()) goto usedpriority;
context.al = 0;
usedpriority:
- context.data.byte(context.bx+23) = context.al;
- context.data.byte(context.bx+30) = context.ah;
- context.data.byte(context.bx+16) = 0;
- context.data.byte(context.bx+18) = 0;
- context.data.byte(context.bx+19) = 0;
+ context.ds.byte(context.bx+23) = context.al;
+ context.ds.byte(context.bx+30) = context.ah;
+ context.ds.byte(context.bx+16) = 0;
+ context.ds.byte(context.bx+18) = 0;
+ context.ds.byte(context.bx+19) = 0;
context.si = context.pop();
nomake:
return;
}
static void showallfree(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
- context.data.word(18) = context.bx;
+ context.ds.word(18) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
context.cx = 80*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(446);
- context.data.word(166) = context.es;
+ context.es = context.ds.word(446);
+ context.ds.word(166) = context.es;
context.ax = 0;
- context.data.word(164) = context.ax;
+ context.ds.word(164) = context.ax;
context.ax = 0+2080;
- context.data.word(162) = context.ax;
+ context.ds.word(162) = context.ax;
context.al = 0;
- context.data.byte(158) = context.al;
- context.ds = context.data.word(426);
+ context.ds.byte(158) = context.al;
+ context.ds = context.ds.word(426);
context.si = 2;
context.cx = 0;
loop127:
context.push(context.cx);
context.push(context.si);
context.push(context.si);
- context.es = context.data.word(426);
+ context.es = context.ds.word(426);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto over138;
- context.al = context.data.byte(158);
+ context.al = context.ds.byte(158);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.data.word(160) = context.ax;
+ context.ds.word(160) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.data.word(402);
- context.ds = context.data.word(166);
+ context.es = context.ds.word(402);
+ context.ds = context.ds.word(166);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto over138;
- context.ax = context.data.word(160);
+ context.ax = context.ds.word(160);
context.ah = 0;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.ds.word(117));
+ context._add(context.bx, context.ds.word(119));
showframe(context);
- context.si = context.data.word(18);
- context.es = context.data.word(412);
- context.al = context.data.byte(179);
- context.ah = context.data.byte(180);
- context.data.word(context.si) = context.ax;
+ context.si = context.ds.word(18);
+ context.es = context.ds.word(412);
+ context.al = context.ds.byte(179);
+ context.ah = context.ds.byte(180);
+ context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(176);
+ context.ax = context.ds.word(176);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
- context.data.word(context.si+2) = context.ax;
+ context.ds.word(context.si+2) = context.ax;
context.ax = context.pop();
context.cx = context.pop();
context.push(context.cx);
context.push(context.ax);
- context.data.byte(context.si+4) = context.cl;
+ context.ds.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.data.word(18) = context.si;
+ context.ds.word(18) = context.si;
over138:
- context._add(context.data.byte(158), 1);
+ context._add(context.ds.byte(158), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9161,78 +9161,78 @@ finfree:
}
static void showallex(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.ds.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
- context.data.word(18) = context.bx;
+ context.ds.word(18) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
context.cx = 100*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(398);
- context.data.word(166) = context.es;
+ context.es = context.ds.word(398);
+ context.ds.word(166) = context.es;
context.ax = 0;
- context.data.word(164) = context.ax;
+ context.ds.word(164) = context.ax;
context.ax = 0+2080;
- context.data.word(162) = context.ax;
- context.data.byte(157) = 0;
+ context.ds.word(162) = context.ax;
+ context.ds.byte(157) = 0;
context.si = 0+2080+30000+2;
context.cx = 0;
exloop:
context.push(context.cx);
context.push(context.si);
- context.es = context.data.word(398);
+ context.es = context.ds.word(398);
context.push(context.si);
context.ch = 0;
- context._cmp(context.data.byte(context.si), 255);
+ context._cmp(context.ds.byte(context.si), 255);
if (context.flags.z()) goto notinroom;
- context.al = context.data.byte(context.si-2);
- context._cmp(context.al, context.data.byte(184));
+ context.al = context.ds.byte(context.si-2);
+ context._cmp(context.al, context.ds.byte(184));
if (!context.flags.z()) goto notinroom;
getmapad(context);
notinroom:
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankex;
- context.al = context.data.byte(157);
+ context.al = context.ds.byte(157);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.data.word(160) = context.ax;
+ context.ds.word(160) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.data.word(402);
- context.ds = context.data.word(166);
+ context.es = context.ds.word(402);
+ context.ds = context.ds.word(166);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto blankex;
- context.ax = context.data.word(160);
+ context.ax = context.ds.word(160);
context.ah = 0;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.ds.word(117));
+ context._add(context.bx, context.ds.word(119));
showframe(context);
- context.si = context.data.word(18);
- context.es = context.data.word(412);
- context.al = context.data.byte(179);
- context.ah = context.data.byte(180);
- context.data.word(context.si) = context.ax;
+ context.si = context.ds.word(18);
+ context.es = context.ds.word(412);
+ context.al = context.ds.byte(179);
+ context.ah = context.ds.byte(180);
+ context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(176);
+ context.ax = context.ds.word(176);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
- context.data.word(context.si+2) = context.ax;
+ context.ds.word(context.si+2) = context.ax;
context.ax = context.pop();
context.cx = context.pop();
context.push(context.cx);
context.push(context.ax);
- context.data.byte(context.si+4) = context.cl;
+ context.ds.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.data.word(18) = context.si;
+ context.ds.word(18) = context.si;
blankex:
- context._add(context.data.byte(157), 1);
+ context._add(context.ds.byte(157), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9245,49 +9245,49 @@ finex:
}
static void calcfrframe(Context & context) {
- context.dx = context.data.word(166);
- context.ax = context.data.word(162);
+ context.dx = context.ds.word(166);
+ context.ax = context.ds.word(162);
context.push(context.ax);
- context.cx = context.data.word(164);
- context.ax = context.data.word(160);
+ context.cx = context.ds.word(164);
+ context.ax = context.ds.word(160);
context.ds = context.dx;
context.bx = 6;
context._mul(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
- context.cx = context.data.word(context.bx);
- context.ax = context.data.word(context.bx+2);
- context.dx = context.data.word(context.bx+4);
+ context.cx = context.ds.word(context.bx);
+ context.ax = context.ds.word(context.bx+2);
+ context.dx = context.ds.word(context.bx+4);
context.bx = context.pop();
context.push(context.dx);
context._add(context.ax, context.bx);
- context.data.word(178) = context.ax;
- context.data.word(176) = context.cx;
+ context.ds.word(178) = context.ax;
+ context.ds.word(176) = context.cx;
context.ax = context.pop();
context.push(context.ax);
context.ah = 0;
- context.data.word(172) = context.ax;
+ context.ds.word(172) = context.ax;
context.ax = context.pop();
context.al = context.ah;
context.ah = 0;
- context.data.word(174) = context.ax;
+ context.ds.word(174) = context.ax;
return;
nullframe:
context.ax = context.pop();
context.cx = 0;
- context.data.word(176) = context.cx;
+ context.ds.word(176) = context.cx;
return;
}
static void finalframe(Context & context) {
- context.ax = context.data.word(170);
- context._add(context.ax, context.data.word(174));
- context.bx = context.data.word(168);
- context._add(context.bx, context.data.word(172));
- context.data.byte(179) = context.bl;
- context.data.byte(180) = context.al;
- context.di = context.data.word(168);
- context.bx = context.data.word(170);
+ context.ax = context.ds.word(170);
+ context._add(context.ax, context.ds.word(174));
+ context.bx = context.ds.word(168);
+ context._add(context.bx, context.ds.word(172));
+ context.ds.byte(179) = context.bl;
+ context.ds.byte(180) = context.al;
+ context.di = context.ds.word(168);
+ context.bx = context.ds.word(170);
return;
}
@@ -9307,26 +9307,26 @@ static void getmapad(Context & context) {
getxad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.data.word(168) = context.ax;
+ context.ds.word(168) = context.ax;
getyad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.data.word(170) = context.ax;
+ context.ds.word(170) = context.ax;
context.ch = 1;
over146:
return;
}
static void getxad(Context & context) {
- context.cl = context.data.byte(context.si);
+ context.cl = context.ds.byte(context.si);
context._add(context.si, 1);
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 1);
- context.ah = context.data.byte(context.si);
+ context.ah = context.ds.byte(context.si);
context._add(context.si, 1);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto over148;
- context._sub(context.al, context.data.byte(148));
+ context._sub(context.al, context.ds.byte(148));
if (context.flags.c()) goto over148;
context._cmp(context.al, 11);
if (!context.flags.c()) goto over148;
@@ -9342,11 +9342,11 @@ over148:
}
static void getyad(Context & context) {
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 1);
- context.ah = context.data.byte(context.si);
+ context.ah = context.ds.byte(context.si);
context._add(context.si, 1);
- context._sub(context.al, context.data.byte(149));
+ context._sub(context.al, context.ds.byte(149));
if (context.flags.c()) goto over147;
context._cmp(context.al, 10);
if (!context.flags.c()) goto over147;
@@ -9362,40 +9362,40 @@ over147:
}
static void autolook(Context & context) {
- context.ax = context.data.word(198);
- context._cmp(context.ax, context.data.word(214));
+ context.ax = context.ds.word(198);
+ context._cmp(context.ax, context.ds.word(214));
if (!context.flags.z()) goto diffmouse;
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(216));
+ context.ax = context.ds.word(200);
+ context._cmp(context.ax, context.ds.word(216));
if (!context.flags.z()) goto diffmouse;
- context._sub(context.data.word(98), 1);
- context._cmp(context.data.word(98), 0);
+ context._sub(context.ds.word(98), 1);
+ context._cmp(context.ds.word(98), 0);
if (!context.flags.z()) goto noautolook;
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.ds.word(21), 0);
if (!context.flags.z()) goto noautolook;
dolook(context);
noautolook:
return;
diffmouse:
- context.data.word(98) = 1000;
+ context.ds.word(98) = 1000;
return;
}
static void look(Context & context) {
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.ds.word(21), 0);
if (!context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(234), 2);
+ context._cmp(context.ds.byte(234), 2);
if (context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(100), 241);
+ context._cmp(context.ds.byte(100), 241);
if (context.flags.z()) goto alreadylook;
- context.data.byte(100) = 241;
+ context.ds.byte(100) = 241;
context.al = 25;
commandonly(context);
alreadylook:
- context._cmp(context.data.word(202), 1);
+ context._cmp(context.ds.word(202), 1);
if (!context.flags.z()) goto nolook;
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nolook;
dolook(context);
nolook:
@@ -9407,19 +9407,19 @@ static void dolook(Context & context) {
showicon(context);
undertextline(context);
worktoscreenm(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
dumptextline(context);
- context.bl = context.data.byte(185);
+ context.bl = context.ds.byte(185);
context._and(context.bl, 31);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(436);
+ context.es = context.ds.word(436);
context._add(context.bx, 0);
- context.si = context.data.word(context.bx);
+ context.si = context.ds.word(context.bx);
context._add(context.si, 0+(38*2));
findnextcolon(context);
context.di = 66;
- context._cmp(context.data.byte(184), 50);
+ context._cmp(context.ds.byte(184), 50);
if (context.flags.c()) goto notdream3;
context.di = 40;
notdream3:
@@ -9431,17 +9431,17 @@ notdream3:
context.cx = 400;
hangonp(context);
afterlook:
- context.data.byte(234) = 0;
- context.data.byte(100) = 0;
+ context.ds.byte(234) = 0;
+ context.ds.byte(100) = 0;
redrawmainscrn(context);
worktoscreenm(context);
return;
}
static void redrawmainscrn(Context & context) {
- context.data.word(328) = 0;
+ context.ds.word(328) = 0;
createpanel(context);
- context.data.byte(62) = 0;
+ context.ds.byte(62) = 0;
drawfloor(context);
printsprites(context);
reelsonscreen(context);
@@ -9449,40 +9449,40 @@ static void redrawmainscrn(Context & context) {
getunderzoom(context);
undertextline(context);
readmouse(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
return;
}
static void getback1(Context & context) {
- context._cmp(context.data.byte(106), 0);
+ context._cmp(context.ds.byte(106), 0);
if (context.flags.z()) goto notgotobject;
blank(context);
return;
notgotobject:
- context._cmp(context.data.byte(100), 202);
+ context._cmp(context.ds.byte(100), 202);
if (context.flags.z()) goto alreadyget;
- context.data.byte(100) = 202;
+ context.ds.byte(100) = 202;
context.al = 26;
commandonly(context);
alreadyget:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nogetback;
context._and(context.ax, 1);
if (!context.flags.z()) goto dogetback;
nogetback:
return;
dogetback:
- context.data.byte(103) = 1;
- context.data.byte(106) = 0;
+ context.ds.byte(103) = 1;
+ context.ds.byte(106) = 0;
return;
}
static void talk(Context & context) {
- context.data.byte(246) = 0;
- context.data.byte(237) = 0;
- context.al = context.data.byte(99);
- context.data.byte(247) = context.al;
+ context.ds.byte(246) = 0;
+ context.ds.byte(237) = 0;
+ context.al = context.ds.byte(99);
+ context.ds.byte(247) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -9490,7 +9490,7 @@ static void talk(Context & context) {
undertextline(context);
convicons(context);
starttalk(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -9502,41 +9502,41 @@ waittalk:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.data.byte(103) = 0;
+ context.ds.byte(103) = 0;
context.bx = 2660;
checkcoords(context);
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.ds.byte(103), 0);
if (context.flags.z()) goto waittalk;
finishtalk:
- context.bx = context.data.word(249);
+ context.bx = context.ds.word(249);
context.es = context.cs;
- context._cmp(context.data.byte(246), 4);
+ context._cmp(context.ds.byte(246), 4);
if (context.flags.c()) goto notnexttalk;
- context.al = context.data.byte(context.bx+7);
+ context.al = context.ds.byte(context.bx+7);
context._or(context.al, 128);
- context.data.byte(context.bx+7) = context.al;
+ context.ds.byte(context.bx+7) = context.al;
notnexttalk:
redrawmainscrn(context);
worktoscreenm(context);
- context._cmp(context.data.byte(383), 1);
+ context._cmp(context.ds.byte(383), 1);
if (!context.flags.z()) goto nospeech;
cancelch1(context);
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
+ context.ds.byte(388) = -1;
+ context.ds.byte(387) = 0;
nospeech:
return;
}
static void convicons(Context & context) {
- context.al = context.data.byte(247);
+ context.al = context.ds.byte(247);
context._and(context.al, 127);
getpersframe(context);
context.di = 234;
context.bx = 2;
- context.data.word(160) = context.ax;
+ context.ds.word(160) = context.ax;
findsource(context);
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
+ context.ax = context.ds.word(160);
+ context._sub(context.ax, context.ds.word(244));
context.ah = 0;
showframe(context);
return;
@@ -9546,25 +9546,25 @@ static void getpersframe(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
- context.es = context.data.word(448);
+ context.es = context.ds.word(448);
context._add(context.bx, 0);
- context.ax = context.data.word(context.bx);
+ context.ax = context.ds.word(context.bx);
return;
}
static void starttalk(Context & context) {
- context.data.byte(245) = 0;
- context.al = context.data.byte(247);
+ context.ds.byte(245) = 0;
+ context.al = context.ds.byte(247);
context._and(context.al, 127);
getpersontext(context);
- context.data.word(71) = 91+91;
+ context.ds.word(71) = 91+91;
context.di = 66;
context.bx = 64;
context.dl = 241;
context.al = 0;
context.ah = 79;
printdirect(context);
- context.data.word(71) = 0;
+ context.ds.word(71) = 0;
context.di = 66;
context.bx = 80;
context.dl = 241;
@@ -9580,40 +9580,40 @@ static void getpersontext(Context & context) {
context.cx = 64*2;
context._mul(context.cx);
context.si = context.ax;
- context.es = context.data.word(448);
+ context.es = context.ds.word(448);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
return;
}
static void moretalk(Context & context) {
- context._cmp(context.data.byte(245), 0);
+ context._cmp(context.ds.byte(245), 0);
if (context.flags.z()) goto canmore;
redes(context);
return;
canmore:
- context._cmp(context.data.byte(100), 215);
+ context._cmp(context.ds.byte(100), 215);
if (context.flags.z()) goto alreadymore;
- context.data.byte(100) = 215;
+ context.ds.byte(100) = 215;
context.al = 49;
commandonly(context);
alreadymore:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nomore;
context._and(context.ax, 1);
if (!context.flags.z()) goto domoretalk;
nomore:
return;
domoretalk:
- context.data.byte(245) = 2;
- context.data.byte(246) = 4;
- context._cmp(context.data.byte(247), 100);
+ context.ds.byte(245) = 2;
+ context.ds.byte(246) = 4;
+ context._cmp(context.ds.byte(247), 100);
if (context.flags.c()) goto notsecondpart;
- context.data.byte(246) = 48;
+ context.ds.byte(246) = 48;
notsecondpart:
dosometalk(context);
return;
@@ -9621,25 +9621,25 @@ notsecondpart:
static void dosometalk(Context & context) {
watchtalk:
- context.al = context.data.byte(246);
- context.al = context.data.byte(247);
+ context.al = context.ds.byte(246);
+ context.al = context.ds.byte(247);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.data.byte(246);
+ context.al = context.ds.byte(246);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.data.word(448);
+ context.es = context.ds.word(448);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
- context._cmp(context.data.byte(context.si), 0);
+ context._cmp(context.ds.byte(context.si), 0);
if (context.flags.z()) goto endwatchtalk;
context.push(context.es);
context.push(context.si);
@@ -9656,34 +9656,34 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.data.byte(234) = 3;
+ context.ds.byte(234) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
- context._add(context.data.byte(246), 1);
- context.al = context.data.byte(246);
- context.al = context.data.byte(247);
+ context._add(context.ds.byte(246), 1);
+ context.al = context.ds.byte(246);
+ context.al = context.ds.byte(247);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.data.byte(246);
+ context.al = context.ds.byte(246);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.data.word(448);
+ context.es = context.ds.word(448);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
- context.ax = context.data.word(context.si);
+ context.ax = context.ds.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
- context._cmp(context.data.byte(context.si), 0);
+ context._cmp(context.ds.byte(context.si), 0);
if (context.flags.z()) goto endwatchtalk;
- context._cmp(context.data.byte(context.si), ':');
+ context._cmp(context.ds.byte(context.si), ':');
if (context.flags.z()) goto skiptalk;
- context._cmp(context.data.byte(context.si), 32);
+ context._cmp(context.ds.byte(context.si), 32);
if (context.flags.z()) goto skiptalk;
context.push(context.es);
context.push(context.si);
@@ -9700,20 +9700,20 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.data.byte(234) = 3;
+ context.ds.byte(234) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
skiptalk:
- context._add(context.data.byte(246), 1);
+ context._add(context.ds.byte(246), 1);
goto watchtalk;
endwatchtalk:
- context.data.byte(234) = 0;
+ context.ds.byte(234) = 0;
return;
}
static void hangonpq(Context & context) {
- context.data.byte(103) = 0;
+ context.ds.byte(103) = 0;
context.bx = 0;
hangloopq:
context.push(context.cx);
@@ -9729,48 +9729,48 @@ hangloopq:
checkcoords(context);
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.ds.byte(103), 1);
if (context.flags.z()) goto quitconv;
- context._cmp(context.data.byte(383), 1);
+ context._cmp(context.ds.byte(383), 1);
if (!context.flags.z()) goto notspeaking;
- context._cmp(context.data.byte(515), 255);
+ context._cmp(context.ds.byte(515), 255);
if (!context.flags.z()) goto notspeaking;
context._add(context.bx, 1);
context._cmp(context.bx, 40);
if (context.flags.z()) goto finishconv;
notspeaking:
- context._cmp(context.data.word(202), 0);
+ context._cmp(context.ds.word(202), 0);
if (context.flags.z()) goto hangloopq;
- context._cmp(context.data.word(212), 0);
+ context._cmp(context.ds.word(212), 0);
if (!context.flags.z()) goto hangloopq;
finishconv:
delpointer(context);
- context.data.byte(234) = 0;
+ context.ds.byte(234) = 0;
return;
quitconv:
delpointer(context);
- context.data.byte(234) = 0;
+ context.ds.byte(234) = 0;
context.ax = context.pop();
cancelch1(context);
return;
}
static void redes(Context & context) {
- context._cmp(context.data.byte(515), 255);
+ context._cmp(context.ds.byte(515), 255);
if (!context.flags.z()) goto cantredes;
- context._cmp(context.data.byte(245), 2);
+ context._cmp(context.ds.byte(245), 2);
if (context.flags.z()) goto canredes;
cantredes:
blank(context);
return;
canredes:
- context._cmp(context.data.byte(100), 217);
+ context._cmp(context.ds.byte(100), 217);
if (context.flags.z()) goto alreadyreds;
- context.data.byte(100) = 217;
+ context.ds.byte(100) = 217;
context.al = 50;
commandonly(context);
alreadyreds:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._and(context.ax, 1);
if (!context.flags.z()) goto doredes;
return;
@@ -9790,27 +9790,27 @@ doredes:
}
static void newplace(Context & context) {
- context._cmp(context.data.byte(60), 1);
+ context._cmp(context.ds.byte(60), 1);
if (context.flags.z()) goto istravel;
- context._cmp(context.data.byte(189), -1);
+ context._cmp(context.ds.byte(189), -1);
if (!context.flags.z()) goto isautoloc;
return;
isautoloc:
- context.al = context.data.byte(189);
- context.data.byte(188) = context.al;
- context.data.byte(189) = -1;
+ context.al = context.ds.byte(189);
+ context.ds.byte(188) = context.al;
+ context.ds.byte(189) = -1;
return;
istravel:
- context.data.byte(60) = 0;
+ context.ds.byte(60) = 0;
selectlocation(context);
return;
}
static void selectlocation(Context & context) {
- context.data.byte(237) = 0;
+ context.ds.byte(237) = 0;
clearbeforeload(context);
- context.data.byte(103) = 0;
- context.data.byte(231) = 22;
+ context.ds.byte(103) = 0;
+ context.ds.byte(231) = 22;
readcitypic(context);
showcity(context);
getridoftemp(context);
@@ -9822,15 +9822,15 @@ static void selectlocation(Context & context) {
showexit(context);
locationpic(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
readmouse(context);
- context.data.byte(231) = 0;
+ context.ds.byte(231) = 0;
showpointer(context);
worktoscreen(context);
context.al = 9;
context.ah = 255;
playchannel0(context);
- context.data.byte(188) = 255;
+ context.ds.byte(188) = 255;
select:
delpointer(context);
readmouse(context);
@@ -9838,42 +9838,42 @@ select:
vsync(context);
dumppointer(context);
dumptextline(context);
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.ds.byte(103), 1);
if (context.flags.z()) goto quittravel;
context.bx = 2714;
checkcoords(context);
- context._cmp(context.data.byte(188), 255);
+ context._cmp(context.ds.byte(188), 255);
if (context.flags.z()) goto select;
- context.al = context.data.byte(188);
- context._cmp(context.al, context.data.byte(9));
+ context.al = context.ds.byte(188);
+ context._cmp(context.al, context.ds.byte(9));
if (context.flags.z()) goto quittravel;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.data.word(456);
+ context.es = context.ds.word(456);
deallocatemem(context);
return;
quittravel:
- context.al = context.data.byte(184);
- context.data.byte(188) = context.al;
- context.data.byte(103) = 0;
+ context.al = context.ds.byte(184);
+ context.ds.byte(188) = context.al;
+ context.ds.byte(103) = 0;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.data.word(456);
+ context.es = context.ds.word(456);
deallocatemem(context);
return;
}
static void showcity(Context & context) {
clearwork(context);
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.di = 57;
context.bx = 32;
context.al = 0;
context.ah = 0;
showframe(context);
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.di = 120+57;
context.bx = 32;
context.al = 1;
@@ -9883,25 +9883,25 @@ static void showcity(Context & context) {
}
static void lookatplace(Context & context) {
- context._cmp(context.data.byte(100), 224);
+ context._cmp(context.ds.byte(100), 224);
if (context.flags.z()) goto alreadyinfo;
- context.data.byte(100) = 224;
+ context.ds.byte(100) = 224;
context.al = 27;
commandonly(context);
alreadyinfo:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto noinfo;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto noinfo;
- context.bl = context.data.byte(183);
+ context.bl = context.ds.byte(183);
context._cmp(context.bl, 15);
if (!context.flags.c()) goto noinfo;
context.push(context.bx);
delpointer(context);
deltextline(context);
getundercentre(context);
- context.ds = context.data.word(462);
+ context.ds = context.ds.word(462);
context.al = 0;
context.ah = 0;
context.di = 60;
@@ -9920,8 +9920,8 @@ alreadyinfo:
context.bx = context.pop();
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(456);
- context.si = context.data.word(context.bx);
+ context.es = context.ds.word(456);
+ context.si = context.ds.word(context.bx);
context._add(context.si, 66*2);
findnextcolon(context);
context.di = 63;
@@ -9934,8 +9934,8 @@ alreadyinfo:
context.cx = 500;
hangonp(context);
afterinfo:
- context.data.byte(234) = 0;
- context.data.byte(231) = 0;
+ context.ds.byte(234) = 0;
+ context.ds.byte(231) = 0;
putundercentre(context);
worktoscreenm(context);
noinfo:
@@ -9945,7 +9945,7 @@ noinfo:
static void getundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9956,7 +9956,7 @@ static void getundercentre(Context & context) {
static void putundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9966,18 +9966,18 @@ static void putundercentre(Context & context) {
static void locationpic(Context & context) {
getdestinfo(context);
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context.push(context.es);
context.push(context.si);
context.di = 0;
context._cmp(context.al, 6);
if (!context.flags.c()) goto secondlot;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context._add(context.al, 4);
goto gotgraphic;
secondlot:
context._sub(context.al, 6);
- context.ds = context.data.word(460);
+ context.ds = context.ds.word(460);
gotgraphic:
context._add(context.di, 104);
context.bx = 138+14;
@@ -9985,21 +9985,21 @@ gotgraphic:
showframe(context);
context.si = context.pop();
context.es = context.pop();
- context.al = context.data.byte(183);
- context._cmp(context.al, context.data.byte(184));
+ context.al = context.ds.byte(183);
+ context._cmp(context.al, context.ds.byte(184));
if (!context.flags.z()) goto notinthisone;
context.al = 3;
context.di = 104;
context.bx = 140+14;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.ah = 0;
showframe(context);
notinthisone:
- context.bl = context.data.byte(183);
+ context.bl = context.ds.byte(183);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(456);
- context.si = context.data.word(context.bx);
+ context.es = context.ds.word(456);
+ context.si = context.ds.word(context.bx);
context._add(context.si, 66*2);
context.di = 50;
context.bx = 20;
@@ -10011,14 +10011,14 @@ notinthisone:
}
static void getdestinfo(Context & context) {
- context.al = context.data.byte(183);
+ context.al = context.ds.byte(183);
context.ah = 0;
context.push(context.ax);
context.dx = context.ds;
context.es = context.dx;
context.si = 7798;
context._add(context.si, context.ax);
- context.cl = context.data.byte(context.si);
+ context.cl = context.ds.byte(context.si);
context.ax = context.pop();
context.push(context.cx);
context.dx = context.ds;
@@ -10032,19 +10032,19 @@ static void getdestinfo(Context & context) {
static void showarrows(Context & context) {
context.di = 116-12;
context.bx = 16;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 0;
context.ah = 0;
showframe(context);
context.di = 226+12;
context.bx = 16;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 280;
context.bx = 14;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 2;
context.ah = 0;
showframe(context);
@@ -10053,27 +10053,27 @@ static void showarrows(Context & context) {
static void nextdest(Context & context) {
duok:
- context._cmp(context.data.byte(100), 218);
+ context._cmp(context.ds.byte(100), 218);
if (context.flags.z()) goto alreadydu;
- context.data.byte(100) = 218;
+ context.ds.byte(100) = 218;
context.al = 28;
commandonly(context);
alreadydu:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto nodu;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nodu;
searchdestup:
- context._add(context.data.byte(183), 1);
- context._cmp(context.data.byte(183), 15);
+ context._add(context.ds.byte(183), 1);
+ context._cmp(context.ds.byte(183), 15);
if (!context.flags.z()) goto notlastdest;
- context.data.byte(183) = 0;
+ context.ds.byte(183) = 0;
notlastdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestup;
- context.data.byte(109) = 1;
+ context.ds.byte(109) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10091,27 +10091,27 @@ nodu:
static void lastdest(Context & context) {
ddok:
- context._cmp(context.data.byte(100), 219);
+ context._cmp(context.ds.byte(100), 219);
if (context.flags.z()) goto alreadydd;
- context.data.byte(100) = 219;
+ context.ds.byte(100) = 219;
context.al = 29;
commandonly(context);
alreadydd:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto nodd;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nodd;
searchdestdown:
- context._sub(context.data.byte(183), 1);
- context._cmp(context.data.byte(183), -1);
+ context._sub(context.ds.byte(183), 1);
+ context._cmp(context.ds.byte(183), -1);
if (!context.flags.z()) goto notfirstdest;
- context.data.byte(183) = 15;
+ context.ds.byte(183) = 15;
notfirstdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestdown;
- context.data.byte(109) = 1;
+ context.ds.byte(109) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10128,20 +10128,20 @@ nodd:
}
static void destselect(Context & context) {
- context._cmp(context.data.byte(100), 222);
+ context._cmp(context.ds.byte(100), 222);
if (context.flags.z()) goto alreadytrav;
- context.data.byte(100) = 222;
+ context.ds.byte(100) = 222;
context.al = 30;
commandonly(context);
alreadytrav:
- context.ax = context.data.word(202);
+ context.ax = context.ds.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto notrav;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto notrav;
getdestinfo(context);
- context.al = context.data.byte(183);
- context.data.byte(188) = context.al;
+ context.al = context.ds.byte(183);
+ context.ds.byte(188) = context.al;
notrav:
return;
}
@@ -10152,7 +10152,7 @@ static void getlocation(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 7798);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
return;
}
@@ -10162,7 +10162,7 @@ static void setlocation(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 7798);
- context.data.byte(context.bx) = 1;
+ context.ds.byte(context.bx) = 1;
return;
}
@@ -10209,7 +10209,7 @@ clearedlocations:
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 7798);
- context.data.byte(context.bx) = 0;
+ context.ds.byte(context.bx) = 0;
return;
}
@@ -10230,7 +10230,7 @@ static void readcitypic(Context & context) {
}
static void usemon(Context & context) {
- context.data.byte(55) = 0;
+ context.ds.byte(55) = 0;
context.es = context.cs;
context.di = 2895+1;
context.cx = 12;
@@ -10243,11 +10243,11 @@ static void usemon(Context & context) {
while(--context.cx) context._stosb();
context.es = context.cs;
context.di = 2807;
- context.data.byte(context.di) = 1;
+ context.ds.byte(context.di) = 1;
context._add(context.di, 26);
context.cx = 3;
keyloop:
- context.data.byte(context.di) = 0;
+ context.ds.byte(context.di) = 0;
context._add(context.di, 26);
if (--context.cx) goto keyloop;
createpanel(context);
@@ -10269,8 +10269,8 @@ keyloop:
turnonpower(context);
fadeupyellows(context);
fadeupmonfirst(context);
- context.data.word(318) = 76;
- context.data.word(320) = 141;
+ context.ds.word(318) = 76;
+ context.ds.word(320) = 141;
context.al = 1;
monmessage(context);
context.cx = 120;
@@ -10285,34 +10285,34 @@ keyloop:
hangoncurs(context);
printlogo(context);
scrollmonitor(context);
- context.data.word(394) = 0;
- context.data.word(396) = 0;
+ context.ds.word(394) = 0;
+ context.ds.word(396) = 0;
moreinput:
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.data.word(318) = context.di;
- context.data.word(320) = context.bx;
+ context.ds.word(318) = context.di;
+ context.ds.word(320) = context.bx;
execcommand(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto moreinput;
endmon:
getridoftemp(context);
getridoftempcharset(context);
- context.es = context.data.word(466);
+ context.es = context.ds.word(466);
deallocatemem(context);
- context.es = context.data.word(468);
+ context.es = context.ds.word(468);
deallocatemem(context);
- context.es = context.data.word(470);
+ context.es = context.ds.word(470);
deallocatemem(context);
- context.data.byte(103) = 1;
+ context.ds.byte(103) = 1;
context.al = 26;
playchannel1(context);
- context.data.byte(131) = 0;
+ context.ds.byte(131) = 0;
restoreall(context);
redrawmainscrn(context);
worktoscreenm(context);
@@ -10322,25 +10322,25 @@ endmon:
static void printoutermon(Context & context) {
context.di = 40;
context.bx = 32;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 264;
context.bx = 32;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 2;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 12;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 3;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 164;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 4;
context.ah = 0;
showframe(context);
@@ -10348,7 +10348,7 @@ static void printoutermon(Context & context) {
}
static void loadpersonal(Context & context) {
- context.al = context.data.byte(9);
+ context.al = context.ds.byte(9);
context.dx = 2065;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundpersonal;
@@ -10360,12 +10360,12 @@ static void loadpersonal(Context & context) {
foundpersonal:
openfile(context);
readheader(context);
- context.bx = context.data.word(context.di);
+ context.bx = context.ds.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(466) = context.ax;
+ context.ds.word(466) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10375,7 +10375,7 @@ foundpersonal:
}
static void loadnews(Context & context) {
- context.al = context.data.byte(34);
+ context.al = context.ds.byte(34);
context.dx = 2091;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundnews;
@@ -10389,12 +10389,12 @@ static void loadnews(Context & context) {
foundnews:
openfile(context);
readheader(context);
- context.bx = context.data.word(context.di);
+ context.bx = context.ds.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(468) = context.ax;
+ context.ds.word(468) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10421,12 +10421,12 @@ static void loadcart(Context & context) {
gotcart:
openfile(context);
readheader(context);
- context.bx = context.data.word(context.di);
+ context.bx = context.ds.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(470) = context.ax;
+ context.ds.word(470) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10445,7 +10445,7 @@ static void lookininterface(Context & context) {
checkinside(context);
context._cmp(context.cl, 114);
if (context.flags.z()) goto emptyinterface;
- context.al = context.data.byte(context.bx+15);
+ context.al = context.ds.byte(context.bx+15);
context._add(context.al, 1);
return;
emptyinterface:
@@ -10492,7 +10492,7 @@ chosenaccess:
static void powerlighton(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 6;
context.ah = 0;
context.push(context.di);
@@ -10509,7 +10509,7 @@ static void powerlighton(Context & context) {
static void powerlightoff(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 5;
context.ah = 0;
context.push(context.di);
@@ -10526,7 +10526,7 @@ static void powerlightoff(Context & context) {
static void accesslighton(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 8;
context.ah = 0;
context.push(context.di);
@@ -10543,7 +10543,7 @@ static void accesslighton(Context & context) {
static void accesslightoff(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 7;
context.ah = 0;
context.push(context.di);
@@ -10560,7 +10560,7 @@ static void accesslightoff(Context & context) {
static void locklighton(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 10;
context.ah = 0;
context.push(context.di);
@@ -10577,7 +10577,7 @@ static void locklighton(Context & context) {
static void locklightoff(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 9;
context.ah = 0;
context.push(context.di);
@@ -10597,62 +10597,62 @@ static void input(Context & context) {
context.cx = 64;
context.al = 0;
while(--context.cx) context._stosb();
- context.data.word(316) = 0;
+ context.ds.word(316) = 0;
context.al = '>';
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
+ context.ds = context.ds.word(406);
context.ah = 0;
printchar(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
context.cl = 6;
context.ch = 8;
multidump(context);
- context._add(context.data.word(318), 6);
- context.ax = context.data.word(318);
- context.data.word(312) = context.ax;
- context.ax = context.data.word(320);
- context.data.word(314) = context.ax;
+ context._add(context.ds.word(318), 6);
+ context.ax = context.ds.word(318);
+ context.ds.word(312) = context.ax;
+ context.ax = context.ds.word(320);
+ context.ds.word(314) = context.ax;
waitkey:
printcurs(context);
vsync(context);
delcurs(context);
readkey(context);
- context.al = context.data.byte(142);
+ context.al = context.ds.byte(142);
context._cmp(context.al, 0);
if (context.flags.z()) goto waitkey;
context._cmp(context.al, 13);
if (context.flags.z()) goto endofinput;
context._cmp(context.al, 8);
if (!context.flags.z()) goto notdel;
- context._cmp(context.data.word(316), 0);
+ context._cmp(context.ds.word(316), 0);
if (context.flags.z()) goto waitkey;
delchar(context);
goto waitkey;
notdel:
- context._cmp(context.data.word(316), 28);
+ context._cmp(context.ds.word(316), 28);
if (context.flags.z()) goto waitkey;
- context._cmp(context.data.byte(142), 32);
+ context._cmp(context.ds.byte(142), 32);
if (!context.flags.z()) goto notleadingspace;
- context._cmp(context.data.word(316), 0);
+ context._cmp(context.ds.word(316), 0);
if (context.flags.z()) goto waitkey;
notleadingspace:
makecaps(context);
context.es = context.cs;
- context.si = context.data.word(316);
+ context.si = context.ds.word(316);
context._add(context.si, context.si);
context._add(context.si, 7944);
- context.data.byte(context.si) = context.al;
+ context.ds.byte(context.si) = context.al;
context._cmp(context.al, 'Z'+1);
if (!context.flags.c()) goto waitkey;
context.push(context.ax);
context.push(context.es);
context.push(context.si);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(402);
- context.ax = context.data.word(316);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
+ context.ds = context.ds.word(402);
+ context.ax = context.ds.word(316);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
@@ -10663,18 +10663,18 @@ notleadingspace:
context.ax = context.pop();
context.push(context.es);
context.push(context.si);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
+ context.ds = context.ds.word(406);
context.ah = 0;
printchar(context);
context.si = context.pop();
context.es = context.pop();
- context.data.byte(context.si+1) = context.cl;
+ context.ds.byte(context.si+1) = context.cl;
context.ch = 0;
- context._add(context.data.word(318), context.cx);
- context._add(context.data.word(316), 1);
- context._add(context.data.word(312), context.cx);
+ context._add(context.ds.word(318), context.cx);
+ context._add(context.ds.word(316), 1);
+ context._add(context.ds.word(312), context.cx);
goto waitkey;
endofinput:
return;
@@ -10689,27 +10689,27 @@ notupperc:
}
static void delchar(Context & context) {
- context._sub(context.data.word(316), 1);
- context.si = context.data.word(316);
+ context._sub(context.ds.word(316), 1);
+ context.si = context.ds.word(316);
context._add(context.si, context.si);
context.es = context.cs;
context._add(context.si, 7944);
- context.data.byte(context.si) = 0;
- context.al = context.data.byte(context.si+1);
- context.ah = 0;
- context._sub(context.data.word(318), context.ax);
- context._sub(context.data.word(312), context.ax);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(402);
- context.ax = context.data.word(316);
+ context.ds.byte(context.si) = 0;
+ context.al = context.ds.byte(context.si+1);
+ context.ah = 0;
+ context._sub(context.ds.word(318), context.ax);
+ context._sub(context.ds.word(312), context.ax);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
+ context.ds = context.ds.word(402);
+ context.ax = context.ds.word(316);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
context.ch = 8;
multiput(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
context.cl = context.al;
context.ch = 8;
multidump(context);
@@ -10721,7 +10721,7 @@ static void execcommand(Context & context) {
context.bx = 2776;
context.ds = context.cs;
context.si = 7944;
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
if (!context.flags.z()) goto notblankinp;
scrollmonitor(context);
@@ -10732,9 +10732,9 @@ comloop:
context.push(context.bx);
context.push(context.si);
comloop2:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._add(context.si, 2);
- context.ah = context.data.byte(context.bx);
+ context.ah = context.ds.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.ah, 32);
if (context.flags.z()) goto foundcom;
@@ -10800,12 +10800,12 @@ static void dircom(Context & context) {
context.cx = 30;
randomaccess(context);
parser(context);
- context._cmp(context.data.byte(context.di+1), 0);
+ context._cmp(context.ds.byte(context.di+1), 0);
if (context.flags.z()) goto dirroot;
dirfile(context);
return;
dirroot:
- context.data.byte(269) = 0;
+ context.ds.byte(269) = 0;
context.ds = context.cs;
context.si = 2885;
context._add(context.si, 1);
@@ -10818,11 +10818,11 @@ dirroot:
scrollmonitor(context);
context.al = 9;
monmessage(context);
- context.es = context.data.word(466);
+ context.es = context.ds.word(466);
searchforfiles(context);
- context.es = context.data.word(468);
+ context.es = context.ds.word(468);
searchforfiles(context);
- context.es = context.data.word(470);
+ context.es = context.ds.word(470);
searchforfiles(context);
scrollmonitor(context);
return;
@@ -10831,7 +10831,7 @@ dirroot:
static void searchforfiles(Context & context) {
context.bx = 66*2;
directloop1:
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.al, '*');
if (context.flags.z()) goto endofdir;
@@ -10860,7 +10860,7 @@ signonloop2:
context._cmp(context.al, 32);
if (context.flags.z()) goto foundsign;
makecaps(context);
- context.ah = context.data.byte(context.di);
+ context.ah = context.ds.byte(context.di);
context._add(context.di, 1);
context._cmp(context.al, context.ah);
if (!context.flags.z()) goto nomatch;
@@ -10880,7 +10880,7 @@ foundsign:
context.cx = context.pop();
context.bx = context.si;
context.es = context.ds;
- context._cmp(context.data.byte(context.bx), 0);
+ context._cmp(context.ds.byte(context.bx), 0);
if (context.flags.z()) goto notyetassigned;
context.al = 17;
monmessage(context);
@@ -10891,15 +10891,15 @@ notyetassigned:
scrollmonitor(context);
context.al = 15;
monmessage(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.data.word(318) = context.di;
- context.data.word(320) = context.bx;
+ context.ds.word(318) = context.di;
+ context.ds.word(320) = context.bx;
context.bx = context.pop();
context.es = context.pop();
context.push(context.es);
@@ -10909,7 +10909,7 @@ notyetassigned:
context.si = 7944;
checkpass:
context._lodsw();
- context.ah = context.data.byte(context.bx);
+ context.ah = context.ds.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.ah, 32);
if (context.flags.z()) goto passpassed;
@@ -10934,7 +10934,7 @@ passpassed:
scrollmonitor(context);
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(context.bx) = 1;
+ context.ds.byte(context.bx) = 1;
return;
}
@@ -10950,7 +10950,7 @@ static void showkeys(Context & context) {
keysloop:
context.push(context.cx);
context.push(context.bx);
- context._cmp(context.data.byte(context.bx), 0);
+ context._cmp(context.ds.byte(context.bx), 0);
if (context.flags.z()) goto notheld;
context._add(context.bx, 14);
monprint(context);
@@ -10967,29 +10967,29 @@ static void read(Context & context) {
context.cx = 40;
randomaccess(context);
parser(context);
- context._cmp(context.data.byte(context.di+1), 0);
+ context._cmp(context.ds.byte(context.di+1), 0);
if (!context.flags.z()) goto okcom;
neterror(context);
return;
okcom:
context.es = context.cs;
context.di = 2895;
- context.ax = context.data.word(466);
- context.data.word(324) = context.ax;
+ context.ax = context.ds.word(466);
+ context.ds.word(324) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(468);
- context.data.word(324) = context.ax;
+ context.ax = context.ds.word(468);
+ context.ds.word(324) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(470);
- context.data.word(324) = context.ax;
+ context.ax = context.ds.word(470);
+ context.ds.word(324) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
@@ -11006,12 +11006,12 @@ foundfile2:
keyok1:
context.es = context.cs;
context.di = 2883;
- context.ds = context.data.word(324);
+ context.ds = context.ds.word(324);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto findtopictext;
- context.al = context.data.byte(270);
- context.data.byte(269) = context.al;
+ context.al = context.ds.byte(270);
+ context.ds.byte(269) = context.al;
context.al = 11;
monmessage(context);
return;
@@ -11025,7 +11025,7 @@ findtopictext:
context.es = context.pop();
moretopic:
monprint(context);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._cmp(context.al, 34);
if (context.flags.z()) goto endoftopic;
context._cmp(context.al, '=');
@@ -11047,10 +11047,10 @@ endoftopic:
static void dirfile(Context & context) {
context.al = 34;
- context.data.byte(context.di) = context.al;
+ context.ds.byte(context.di) = context.al;
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(466);
+ context.ds = context.ds.word(466);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11059,7 +11059,7 @@ static void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(468);
+ context.ds = context.ds.word(468);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11068,7 +11068,7 @@ static void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(470);
+ context.ds = context.ds.word(470);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11101,7 +11101,7 @@ keyok2:
context.bx = context.pop();
context.es = context.pop();
directloop2:
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.al, 34);
if (context.flags.z()) goto endofdir2;
@@ -11118,24 +11118,24 @@ endofdir2:
static void getkeyandlogo(Context & context) {
context._add(context.bx, 1);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
- context.data.byte(271) = context.al;
+ context.ds.byte(271) = context.al;
context._add(context.bx, 2);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
- context.data.byte(276) = context.al;
+ context.ds.byte(276) = context.al;
context._add(context.bx, 1);
context.push(context.es);
context.push(context.bx);
- context.al = context.data.byte(276);
+ context.al = context.ds.byte(276);
context.ah = 0;
context.cx = 26;
context._mul(context.cx);
context.es = context.cs;
context.bx = 2807;
context._add(context.bx, context.ax);
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._cmp(context.al, 1);
if (context.flags.z()) goto keyok;
context.push(context.bx);
@@ -11154,14 +11154,14 @@ static void getkeyandlogo(Context & context) {
keyok:
context.bx = context.pop();
context.es = context.pop();
- context.al = context.data.byte(271);
- context.data.byte(269) = context.al;
+ context.al = context.ds.byte(271);
+ context.ds.byte(269) = context.al;
context.al = 0;
return;
}
static void searchforstring(Context & context) {
- context.dl = context.data.byte(context.di);
+ context.dl = context.ds.byte(context.di);
context.cx = context.di;
restartlook:
context.di = context.cx;
@@ -11177,7 +11177,7 @@ keeplooking:
context._cmp(context.al, 34);
if (context.flags.z()) goto notfound;
nofindingtopic:
- context.ah = context.data.byte(context.di);
+ context.ah = context.ds.byte(context.di);
context._cmp(context.al, context.dl);
if (!context.flags.z()) goto notbracket;
context._add(context.dh, 1);
@@ -11242,10 +11242,10 @@ static void scrollmonitor(Context & context) {
context.push(context.es);
context.push(context.ds);
printlogo(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.ds.word(318);
+ context.bx = context.ds.word(320);
printundermon(context);
- context.ax = context.data.word(320);
+ context.ax = context.ds.word(320);
worktoscreen(context);
context.al = 25;
playchannel1(context);
@@ -11261,11 +11261,11 @@ static void scrollmonitor(Context & context) {
}
static void lockmon(Context & context) {
- context._cmp(context.data.byte(392), 57);
+ context._cmp(context.ds.byte(392), 57);
if (!context.flags.z()) goto notlock;
locklighton(context);
lockloop:
- context._cmp(context.data.byte(392), 57);
+ context._cmp(context.ds.byte(392), 57);
if (context.flags.z()) goto lockloop;
locklightoff(context);
notlock:
@@ -11273,10 +11273,10 @@ notlock:
}
static void monitorlogo(Context & context) {
- context.al = context.data.byte(269);
- context._cmp(context.al, context.data.byte(270));
+ context.al = context.ds.byte(269);
+ context._cmp(context.al, context.ds.byte(270));
if (context.flags.z()) goto notnewlogo;
- context.data.byte(270) = context.al;
+ context.ds.byte(270) = context.al;
printlogo(context);
printundermon(context);
worktoscreen(context);
@@ -11295,7 +11295,7 @@ notnewlogo:
static void printlogo(Context & context) {
context.di = 56;
context.bx = 32;
- context.ds = context.data.word(458);
+ context.ds = context.ds.word(458);
context.al = 0;
context.ah = 0;
showframe(context);
@@ -11308,13 +11308,13 @@ static void showcurrentfile(Context & context) {
context.bx = 37;
context.si = 2895+1;
curfileloop:
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishfile;
context._add(context.si, 1);
context.push(context.si);
modifychar(context);
- context.ds = context.data.word(406);
+ context.ds = context.ds.word(406);
context.ah = 0;
printchar(context);
context.si = context.pop();
@@ -11324,12 +11324,12 @@ finishfile:
}
static void monmessage(Context & context) {
- context.es = context.data.word(466);
+ context.es = context.ds.word(466);
context.bx = 66*2;
context.cl = context.al;
context.ch = 0;
monmessageloop:
- context.al = context.data.byte(context.bx);
+ context.al = context.ds.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.al, '+');
if (!context.flags.z()) goto monmessageloop;
@@ -11339,7 +11339,7 @@ monmessageloop:
}
static void processtrigger(Context & context) {
- context._cmp(context.data.byte(55), '1');
+ context._cmp(context.ds.byte(55), '1');
if (!context.flags.z()) goto notfirsttrigger;
context.al = 8;
setlocation(context);
@@ -11347,7 +11347,7 @@ static void processtrigger(Context & context) {
triggermessage(context);
return;
notfirsttrigger:
- context._cmp(context.data.byte(55), '2');
+ context._cmp(context.ds.byte(55), '2');
if (!context.flags.z()) goto notsecondtrigger;
context.al = 9;
setlocation(context);
@@ -11355,7 +11355,7 @@ notfirsttrigger:
triggermessage(context);
return;
notsecondtrigger:
- context._cmp(context.data.byte(55), '3');
+ context._cmp(context.ds.byte(55), '3');
if (!context.flags.z()) goto notthirdtrigger;
context.al = 2;
setlocation(context);
@@ -11371,7 +11371,7 @@ static void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
multiget(context);
context.ax = context.pop();
@@ -11390,11 +11390,11 @@ static void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.data.word(402);
+ context.ds = context.ds.word(402);
context.si = 0;
multiput(context);
worktoscreen(context);
- context.data.byte(55) = 0;
+ context.ds.byte(55) = 0;
return;
}
@@ -11405,13 +11405,13 @@ static void printcurs(Context & context) {
context.push(context.dx);
context.push(context.bx);
context.push(context.es);
- context.di = context.data.word(312);
- context.bx = context.data.word(314);
+ context.di = context.ds.word(312);
+ context.bx = context.ds.word(314);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
context.ch = 11;
- context.ds = context.data.word(412);
+ context.ds = context.ds.word(412);
context.si = 0;
context.push(context.di);
context.push(context.bx);
@@ -11420,14 +11420,14 @@ static void printcurs(Context & context) {
context.di = context.pop();
context.push(context.bx);
context.push(context.di);
- context._add(context.data.word(138), 1);
- context.ax = context.data.word(138);
+ context._add(context.ds.word(138), 1);
+ context.ax = context.ds.word(138);
context._and(context.al, 16);
if (!context.flags.z()) goto flashcurs;
context.al = '/';
context._sub(context.al, 32);
context.ah = 0;
- context.ds = context.data.word(406);
+ context.ds = context.ds.word(406);
showframe(context);
flashcurs:
context.di = context.pop();
@@ -11452,8 +11452,8 @@ static void delcurs(Context & context) {
context.push(context.ds);
context.push(context.dx);
context.push(context.si);
- context.di = context.data.word(312);
- context.bx = context.data.word(314);
+ context.di = context.ds.word(312);
+ context.bx = context.ds.word(314);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
@@ -11461,7 +11461,7 @@ static void delcurs(Context & context) {
context.push(context.di);
context.push(context.bx);
context.push(context.cx);
- context.ds = context.data.word(412);
+ context.ds = context.ds.word(412);
context.si = 0;
multiput(context);
context.cx = context.pop();
@@ -11479,17 +11479,17 @@ finishcurdel:
}
static void useobject(Context & context) {
- context.data.byte(95) = 255;
- context._cmp(context.data.byte(100), 229);
+ context.ds.byte(95) = 255;
+ context._cmp(context.ds.byte(100), 229);
if (context.flags.z()) goto alreadyuse;
- context.data.byte(100) = 229;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
+ context.ds.byte(100) = 229;
+ context.bl = context.ds.byte(99);
+ context.bh = context.ds.byte(102);
context.al = 51;
commandwithob(context);
alreadyuse:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.ds.word(202);
+ context._cmp(context.ax, context.ds.word(212));
if (context.flags.z()) goto nouse;
context._and(context.ax, 1);
if (!context.flags.z()) goto douse;
@@ -11501,13 +11501,13 @@ douse:
}
static void useroutine(Context & context) {
- context._cmp(context.data.byte(184), 50);
+ context._cmp(context.ds.byte(184), 50);
if (context.flags.c()) goto nodream7;
- context._cmp(context.data.byte(232), 0);
+ context._cmp(context.ds.byte(232), 0);
if (!context.flags.z()) goto powerok;
return;
powerok:
- context.data.byte(232) = 0;
+ context.ds.byte(232) = 0;
nodream7:
getanyad(context);
context.dx = context.ds;
@@ -11517,19 +11517,19 @@ checkuselist:
context.push(context.si);
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+12));
+ context._cmp(context.al, context.ds.byte(context.bx+12));
if (!context.flags.z()) goto failed;
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+13));
+ context._cmp(context.al, context.ds.byte(context.bx+13));
if (!context.flags.z()) goto failed;
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+14));
+ context._cmp(context.al, context.ds.byte(context.bx+14));
if (!context.flags.z()) goto failed;
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.data.byte(context.bx+15));
+ context._cmp(context.al, context.ds.byte(context.bx+15));
if (!context.flags.z()) goto failed;
context._lodsw();
context.si = context.pop();
@@ -11538,7 +11538,7 @@ checkuselist:
failed:
context.si = context.pop();
context._add(context.si, 6);
- context._cmp(context.data.byte(context.si), 140);
+ context._cmp(context.ds.byte(context.si), 140);
if (!context.flags.z()) goto checkuselist;
delpointer(context);
getobtextstart(context);
@@ -11548,7 +11548,7 @@ failed:
findnextcolon(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto cantuse2;
- context.al = context.data.byte(context.si);
+ context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto cantuse2;
usetext(context);
@@ -11571,7 +11571,7 @@ cantuse2:
context.cx = 50;
hangonp(context);
putbackobstuff(context);
- context.data.byte(100) = 255;
+ context.ds.byte(100) = 255;
return;
}
@@ -11584,21 +11584,21 @@ static void wheelsound(Context & context) {
}
static void runtap(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.ds.byte(95), 255);
if (!context.flags.z()) goto tapwith;
withwhat(context);
return;
tapwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.ds.byte(95);
+ context.ah = context.ds.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcupfromtap;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.ds.byte(95);
+ context.ah = context.ds.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11611,9 +11611,9 @@ tapwith:
putbackobstuff(context);
return;
fillcupfromtap:
- context.al = context.data.byte(95);
+ context.al = context.ds.byte(95);
getexad(context);
- context.data.byte(context.bx+15) = 'F'-'A';
+ context.ds.byte(context.bx+15) = 'F'-'A';
context.al = 8;
playchannel1(context);
context.cx = 300;
@@ -11638,9 +11638,9 @@ static void playguitar(Context & context) {
}
static void hotelcontrol(Context & context) {
- context._cmp(context.data.byte(184), 21);
+ context._cmp(context.ds.byte(184), 21);
if (!context.flags.z()) goto notrightcont;
- context._cmp(context.data.byte(148), 33);
+ context._cmp(context.ds.byte(148), 33);
if (!context.flags.z()) goto notrightcont;
showfirstuse(context);
putbackobstuff(context);
@@ -11660,22 +11660,22 @@ static void hotelbell(Context & context) {
}
static void opentomb(Context & context) {
- context._add(context.data.byte(2), 1);
+ context._add(context.ds.byte(2), 1);
showfirstuse(context);
- context.data.word(21) = 35*2;
- context.data.word(23) = 1;
- context.data.word(25) = 33;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.ds.word(21) = 35*2;
+ context.ds.word(23) = 1;
+ context.ds.word(25) = 33;
+ context.ds.byte(27) = 1;
+ context.ds.byte(26) = 1;
+ context.ds.byte(103) = 1;
return;
}
static void usetrainer(Context & context) {
getanyad(context);
- context._cmp(context.data.byte(context.bx+2), 4);
+ context._cmp(context.ds.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
- context._add(context.data.byte(2), 1);
+ context._add(context.ds.byte(2), 1);
makeworn(context);
showseconduse(context);
putbackobstuff(context);
@@ -11705,21 +11705,21 @@ static void nothelderror(Context & context) {
}
static void usepipe(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.ds.byte(95), 255);
if (!context.flags.z()) goto pipewith;
withwhat(context);
return;
pipewith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.ds.byte(95);
+ context.ah = context.ds.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcup;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.ds.byte(95);
+ context.ah = context.ds.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11736,9 +11736,9 @@ fillcup:
context.al = 36;
showpuztext(context);
putbackobstuff(context);
- context.al = context.data.byte(95);
+ context.al = context.ds.byte(95);
getexad(context);
- context.data.byte(context.bx+15) = 'F'-'A';
+ context.ds.byte(context.bx+15) = 'F'-'A';
return;
alreadyfull:
context.cx = 300;
@@ -11749,35 +11749,35 @@ alreadyfull:
}
static void usefullcart(Context & context) {
- context._add(context.data.byte(2), 1);
+ context._add(context.ds.byte(2), 1);
context.al = 2;
- context.ah = context.data.byte(185);
+ context.ah = context.ds.byte(185);
context._add(context.ah, 6);
turnanypathon(context);
- context.data.byte(475) = 4;
- context.data.byte(133) = 4;
- context.data.byte(135) = 4;
- context.data.byte(477) = 4;
+ context.ds.byte(475) = 4;
+ context.ds.byte(133) = 4;
+ context.ds.byte(135) = 4;
+ context.ds.byte(477) = 4;
findxyfrompath(context);
- context.data.byte(187) = 1;
+ context.ds.byte(187) = 1;
showfirstuse(context);
- context.data.word(21) = 72*2;
- context.data.word(23) = 58;
- context.data.word(25) = 142;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.ds.word(21) = 72*2;
+ context.ds.word(23) = 58;
+ context.ds.word(25) = 142;
+ context.ds.byte(27) = 1;
+ context.ds.byte(26) = 1;
+ context.ds.byte(103) = 1;
return;
}
static void useplinth(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.ds.byte(95), 255);
if (!context.flags.z()) goto plinthwith;
withwhat(context);
return;
plinthwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.ds.byte(95);
+ context.ah = context.ds.byte(96);
context.cl = 'D';
context.ch = 'K';
context.dl = 'E';
@@ -11788,80 +11788,80 @@ plinthwith:
putbackobstuff(context);
return;
isrightkey:
- context._add(context.data.byte(2), 1);
+ context._add(context.ds.byte(2), 1);
showseconduse(context);
- context.data.word(21) = 220;
- context.data.word(23) = 0;
- context.data.word(25) = 104;
- context.data.byte(27) = 1;
- context.data.byte(26) = 1;
- context.data.byte(103) = 1;
- context.al = context.data.byte(67);
- context.data.byte(188) = context.al;
+ context.ds.word(21) = 220;
+ context.ds.word(23) = 0;
+ context.ds.word(25) = 104;
+ context.ds.byte(27) = 1;
+ context.ds.byte(26) = 1;
+ context.ds.byte(103) = 1;
+ context.al = context.ds.byte(67);
+ context.ds.byte(188) = context.al;
return;
}
static void chewy(Context & context) {
showfirstuse(context);
getanyad(context);
- context.data.byte(context.bx+2) = 255;
- context.data.byte(103) = 1;
+ context.ds.byte(context.bx+2) = 255;
+ context.ds.byte(103) = 1;
return;
}
static void useladder(Context & context) {
showfirstuse(context);
- context._sub(context.data.byte(148), 11);
+ context._sub(context.ds.byte(148), 11);
findroominloc(context);
- context.data.byte(133) = 6;
- context.data.byte(135) = 6;
- context.data.byte(475) = 0;
- context.data.byte(478) = 0;
- context.data.byte(477) = 0;
+ context.ds.byte(133) = 6;
+ context.ds.byte(135) = 6;
+ context.ds.byte(475) = 0;
+ context.ds.byte(478) = 0;
+ context.ds.byte(477) = 0;
findxyfrompath(context);
- context.data.byte(187) = 1;
- context.data.byte(103) = 1;
+ context.ds.byte(187) = 1;
+ context.ds.byte(103) = 1;
return;
}
static void useladderb(Context & context) {
showfirstuse(context);
- context._add(context.data.byte(148), 11);
+ context._add(context.ds.byte(148), 11);
findroominloc(context);
- context.data.byte(133) = 2;
- context.data.byte(135) = 2;
- context.data.byte(475) = 1;
- context.data.byte(478) = 1;
- context.data.byte(477) = 1;
+ context.ds.byte(133) = 2;
+ context.ds.byte(135) = 2;
+ context.ds.byte(475) = 1;
+ context.ds.byte(478) = 1;
+ context.ds.byte(477) = 1;
findxyfrompath(context);
- context.data.byte(187) = 1;
- context.data.byte(103) = 1;
+ context.ds.byte(187) = 1;
+ context.ds.byte(103) = 1;
return;
}
Commit: 61fe610c730ec3488e98b26d5a01e66526d33e85
https://github.com/scummvm/scummvm/commit/61fe610c730ec3488e98b26d5a01e66526d33e85
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:34-07:00
Commit Message:
DREAMWEB: fixed default segment addr
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 6adcdc7..6b5f650 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -181,7 +181,7 @@ class Context {
SegmentMap _segments;
public:
- enum { kDefaultDataSegment };
+ enum { kDefaultDataSegment = 0x1000 };
Register ax, dx, bx, cx, si, di;
RegisterPart<kLowPartOfRegister> al;
@@ -198,9 +198,9 @@ public:
inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx), cs(this), ds(this), es(this) {
_segments[kDefaultDataSegment] = Segment();
- cs.reset(1);
- ds.reset(1);
- es.reset(1);
+ cs.reset(kDefaultDataSegment);
+ ds.reset(kDefaultDataSegment);
+ es.reset(kDefaultDataSegment);
}
SegmentRef getSegment(uint16 value) {
Commit: a0e56d9cad9148ae2c6fb5d616bc15c47de79e77
https://github.com/scummvm/scummvm/commit/a0e56d9cad9148ae2c6fb5d616bc15c47de79e77
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:39-07:00
Commit Message:
DREAMWEB: minor cleanup
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index f9afe48..fa2dd67 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -505,7 +505,7 @@ namespace %s {
n += 1
if (n & 0xf) == 0:
data_impl += "\n\t\t"
- data_impl += "};\n\tcontext.ds.assign(src, src + sizeof(src))"
+ data_impl += "};\n\tcontext.ds.assign(src, src + sizeof(src));\n"
hid = "TASMRECOVER_%s_STUBS_H__" %self.namespace.upper()
self.hd.write("""#ifndef %s
#define %s
@@ -524,7 +524,7 @@ namespace %s {
self.hd.write("\n}\n\n#endif\n")
self.hd.close()
- self.fd.write("\nvoid __start(Context &context) { %s; %s(context); }\n" %(data_impl, start))
+ self.fd.write("\nvoid __start(Context &context) { %s%s(context); \n}\n" %(data_impl, start))
self.fd.write("\nvoid __dispatch_call(Context &context, unsigned addr) {\n\tswitch(addr) {\n")
self.proc_addr.sort(cmp = lambda x, y: x[1] - y[1])
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 3ec12c1..cb94596 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -21427,7 +21427,9 @@ void __start(Context &context) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
- context.ds.assign(src, src + sizeof(src)); dreamweb(context); }
+ context.ds.assign(src, src + sizeof(src));
+dreamweb(context);
+}
void __dispatch_call(Context &context, unsigned addr) {
switch(addr) {
Commit: e4c9ae7a5452e52d9ae064af293a5f12d5a06bab
https://github.com/scummvm/scummvm/commit/e4c9ae7a5452e52d9ae064af293a5f12d5a06bab
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:43-07:00
Commit Message:
COMMON: fixed resize
Changed paths:
common/array.h
diff --git a/common/array.h b/common/array.h
index b3d3e01..ff32d3d 100644
--- a/common/array.h
+++ b/common/array.h
@@ -253,7 +253,7 @@ public:
}
void assign(const T *srcBegin, const T *srcEnd) {
- reserve(distance(srcBegin, srcEnd));
+ resize(distance(srcBegin, srcEnd)); //fixme: ineffective?
T *dst = _storage;
while(srcBegin != srcEnd)
*dst++ = *srcBegin++;
Commit: 5b9a40584e8f244169943c419763c2ad35fa851a
https://github.com/scummvm/scummvm/commit/5b9a40584e8f244169943c419763c2ad35fa851a
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:48-07:00
Commit Message:
DREAMWEB: added stubs for sound startup/exit
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 9e04147..25e6118 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -260,8 +260,10 @@ void out22c(Context &context) {
::error("out22c");
}
+void soundstartup(Context &context) {
+}
+
void soundend(Context &context) {
- ::error("soundend");
}
void interupttest(Context &context) {
@@ -284,9 +286,6 @@ void setsoundoff(Context &context) {
::error("setsoundoff");
}
-void soundstartup(Context &context) {
- ::error("soundstartup");
-}
void loadsecondsample(Context &context) {
::error("loadsecondsample");
Commit: 59b0c4b4b5992d6fe0bdc0b88849169d167b98fe
https://github.com/scummvm/scummvm/commit/59b0c4b4b5992d6fe0bdc0b88849169d167b98fe
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:30:56-07:00
Commit Message:
DREAMWEB: added all offsets
Changed paths:
devtools/tasmrecover/tasm/cpp.py
devtools/tasmrecover/tasm/parser.py
engines/dreamweb/dreamgen.h
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index fa2dd67..fe7f3ff 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -521,6 +521,13 @@ namespace %s {
""" %(self.namespace))
for f in self.failed:
self.hd.write("\tvoid %s(Context &context);\n" %f)
+
+ offsets_decl = "\n"
+ for k,v in self.context.get_offsets().items():
+ offsets_decl += "\tconst static uint16 k%s = %d;\n" %(k.capitalize(), v[0])
+ offsets_decl += "\n"
+ self.hd.write(offsets_decl);
+
self.hd.write("\n}\n\n#endif\n")
self.hd.close()
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index 8dbf54c..6342a17 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -64,6 +64,9 @@ class parser:
def get_offset(self, name):
name = name.lower()
return self.__offsets[name]
+
+ def get_offsets(self):
+ return self.__offsets
def include(self, basedir, fname):
path = fname.split('\\')[self.strip_path:]
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index e5b4493..c345134 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -67,6 +67,1528 @@ namespace dreamgen {
void readoneblock(Context &context);
void showpcx(Context &context);
+ const static uint16 kWaitabit = 1105;
+ const static uint16 kShuffletextads = 2660;
+ const static uint16 kCanopenpool = 3385;
+ const static uint16 kGottrainframe = 1105;
+ const static uint16 kInteruptworked = 4949;
+ const static uint16 kIsmorereel2 = 4949;
+ const static uint16 kCannotuseopen = 2660;
+ const static uint16 kNotret = 3861;
+ const static uint16 kNextmonkspeak = 2494;
+ const static uint16 kNothoteldoor1 = 1214;
+ const static uint16 kNothoteldoor2 = 1214;
+ const static uint16 kWearingshades = 3385;
+ const static uint16 kKillryan = 1105;
+ const static uint16 kSameline = 1711;
+ const static uint16 kNotuseinv = 2494;
+ const static uint16 kDoneit = 4949;
+ const static uint16 kNotunderchurch = 4949;
+ const static uint16 kNowatch = 4949;
+ const static uint16 kBlankex = 2660;
+ const static uint16 kOberase = 2660;
+ const static uint16 kNowornerror = 2660;
+ const static uint16 kNotdes2 = 1105;
+ const static uint16 kAlreadyactload = 3861;
+ const static uint16 kNotrightcont = 3385;
+ const static uint16 kNotch0only = 4949;
+ const static uint16 kNotwatchpath = 4949;
+ const static uint16 kEdensdhere = 3385;
+ const static uint16 kUnscrewplate = 3393;
+ const static uint16 kGotmonkryan = 1105;
+ const static uint16 kFindopen1a = 2494;
+ const static uint16 kSearchmess = 5691;
+ const static uint16 kNotworn = 2494;
+ const static uint16 kError6patch = 4261;
+ const static uint16 kNextcheck = 5691;
+ const static uint16 kPlayingalready = 5073;
+ const static uint16 kStereonotok = 3393;
+ const static uint16 kSearchagain = 2660;
+ const static uint16 kNotnewdirect = 1113;
+ const static uint16 kEarlyendrun = 2494;
+ const static uint16 kWidth18 = 1819;
+ const static uint16 kNotbeforehdead = 1105;
+ const static uint16 kNotheldtrainer = 3385;
+ const static uint16 kAfterprintname = 3861;
+ const static uint16 kIncdir = 1113;
+ const static uint16 kError1 = 3861;
+ const static uint16 kError2 = 3861;
+ const static uint16 kError3 = 3861;
+ const static uint16 kError4 = 3861;
+ const static uint16 kError5 = 3861;
+ const static uint16 kError6 = 3861;
+ const static uint16 kError7 = 3861;
+ const static uint16 kError8 = 3861;
+ const static uint16 kNotendcard = 1105;
+ const static uint16 kNotneg2 = 5691;
+ const static uint16 kCantpick = 2660;
+ const static uint16 kNodown = 2494;
+ const static uint16 kNotaxeonpool = 1105;
+ const static uint16 kIsbaseadd = 4949;
+ const static uint16 kShuffleadsdown = 2660;
+ const static uint16 kFindtopictext = 2895;
+ const static uint16 kFinishevery2 = 1711;
+ const static uint16 kCheckuselist = 2895;
+ const static uint16 kFinishevery1 = 1711;
+ const static uint16 kBigroom = 1711;
+ const static uint16 kAlreadyplce = 2660;
+ const static uint16 kMenuframeok = 3547;
+ const static uint16 kNotdelhotel = 2776;
+ const static uint16 kAlreadydu = 2776;
+ const static uint16 kGotintro1text = 1105;
+ const static uint16 kNotnewintro = 5674;
+ const static uint16 kRootdir = 2885;
+ const static uint16 kDorain = 1113;
+ const static uint16 kAlreadydd = 2776;
+ const static uint16 kNotblast = 4949;
+ const static uint16 kNorex = 2494;
+ const static uint16 kNosetloop = 4949;
+ const static uint16 kMonmessageloop = 2895;
+ const static uint16 kAlreadyplc2 = 2660;
+ const static uint16 kNotarrow = 5698;
+ const static uint16 kUpdateloop = 1214;
+ const static uint16 kIdentifyex = 5073;
+ const static uint16 kSeencard = 2660;
+ const static uint16 kAlreadygetops = 3777;
+ const static uint16 kNotenter = 3525;
+ const static uint16 kRainloop = 1214;
+ const static uint16 kNotplot = 1214;
+ const static uint16 kIdentifyreel = 5073;
+ const static uint16 kStillline = 1113;
+ const static uint16 kSetallloop = 3393;
+ const static uint16 kDiscopslist = 3777;
+ const static uint16 kBacktosolid = 1819;
+ const static uint16 kNotloc43 = 4949;
+ const static uint16 kTapwith = 3385;
+ const static uint16 kFinishrain = 1214;
+ const static uint16 kNotgunonpool = 1105;
+ const static uint16 kNotsmally2 = 5698;
+ const static uint16 kBotlotv = 4949;
+ const static uint16 kNotendkey = 3393;
+ const static uint16 kAlreadyblnk = 5698;
+ const static uint16 kPasspassed = 2895;
+ const static uint16 kMoreintroseq = 2494;
+ const static uint16 kNotplset = 1711;
+ const static uint16 kPathoktv = 3393;
+ const static uint16 kIsex = 2660;
+ const static uint16 kLineexit = 5691;
+ const static uint16 kNotupperc = 2776;
+ const static uint16 kGotsoldframe = 1105;
+ const static uint16 kDonextf = 3589;
+ const static uint16 kNomorethan6 = 5691;
+ const static uint16 kTendstohoriz = 5691;
+ const static uint16 kTwolotsleft = 3589;
+ const static uint16 kCanmore = 2692;
+ const static uint16 kArrow = 5698;
+ const static uint16 kHigher = 1113;
+ const static uint16 kAtmospherelist = 5073;
+ const static uint16 kHundredsc = 4945;
+ const static uint16 kNotbeforedead = 1105;
+ const static uint16 kNofindininv = 3393;
+ const static uint16 kFinmonscroll = 1711;
+ const static uint16 kFindinv2 = 2660;
+ const static uint16 kFindinv1 = 2660;
+ const static uint16 kNotsparkys = 4949;
+ const static uint16 kSpacepress = 3861;
+ const static uint16 kWaitstep = 1105;
+ const static uint16 kNofill = 1819;
+ const static uint16 kFolderlist = 3547;
+ const static uint16 kNoleftpage = 3589;
+ const static uint16 kFoundcharacter = 3861;
+ const static uint16 kHangonloop = 5862;
+ const static uint16 kTopleft = 5691;
+ const static uint16 kGetscash = 3385;
+ const static uint16 kNotlastraise = 1105;
+ const static uint16 kNumberpoke3 = 3393;
+ const static uint16 kNumberpoke2 = 3393;
+ const static uint16 kNumberpoke1 = 3393;
+ const static uint16 kNumberpoke0 = 3393;
+ const static uint16 kNotsparky1 = 1105;
+ const static uint16 kAlreadygrab = 2660;
+ const static uint16 kNotsamealready = 5691;
+ const static uint16 kInitrainside = 1113;
+ const static uint16 kShutdoor = 1214;
+ const static uint16 kOktalk2 = 1105;
+ const static uint16 kNotmonkryan = 1105;
+ const static uint16 kNotendcreds = 1105;
+ const static uint16 kNotworntoopen = 2660;
+ const static uint16 kNotsmokeb2 = 1105;
+ const static uint16 kNotsmokeb1 = 1105;
+ const static uint16 kAlreadyexinv = 2660;
+ const static uint16 kShowwatchreel = 4949;
+ const static uint16 kNoshow = 1105;
+ const static uint16 kRandomlouis = 1105;
+ const static uint16 kNotnexttalk = 2660;
+ const static uint16 kSteadyframe = 1105;
+ const static uint16 kDiarylist = 3651;
+ const static uint16 kNotlouisanim = 1105;
+ const static uint16 kNotonbalc = 3385;
+ const static uint16 kNotout2 = 2660;
+ const static uint16 kClosedfolder = 3589;
+ const static uint16 kNomadtext = 1105;
+ const static uint16 kCorrectcard = 3385;
+ const static uint16 kTalking = 1105;
+ const static uint16 kExframe = 2660;
+ const static uint16 kFoundfile2 = 2895;
+ const static uint16 kNotover32 = 5691;
+ const static uint16 kAlreadywalking = 5691;
+ const static uint16 kCansaveok = 3819;
+ const static uint16 kWatchison = 5691;
+ const static uint16 kKernit = 2494;
+ const static uint16 kNotinlouiss = 3393;
+ const static uint16 kOver1001 = 1105;
+ const static uint16 kOver1000 = 1105;
+ const static uint16 kFillcupfromtap = 3385;
+ const static uint16 kOpenlift = 1214;
+ const static uint16 kMakeswapex = 2660;
+ const static uint16 kAlreadyinfo = 2776;
+ const static uint16 kGotlighterwith = 3385;
+ const static uint16 kNowristwatch = 5691;
+ const static uint16 kNotfirstmad = 1105;
+ const static uint16 kCurfileloop = 2895;
+ const static uint16 kGameerror1 = 3861;
+ const static uint16 kGotcopframe = 1105;
+ const static uint16 kAlreadykeyp = 3693;
+ const static uint16 kDob = 3525;
+ const static uint16 kNotdiffdest = 1819;
+ const static uint16 kNotremset = 1711;
+ const static uint16 kDumpallloop = 1711;
+ const static uint16 kNextcheck2 = 5691;
+ const static uint16 kAlreadykeyn = 3693;
+ const static uint16 kEndwatchtalk = 2692;
+ const static uint16 kNottalked = 1105;
+ const static uint16 kNotsetd = 2660;
+ const static uint16 kSkipreelsound = 1214;
+ const static uint16 kNotspokento = 1105;
+ const static uint16 kEndofenvironment = 4949;
+ const static uint16 kEndofgame = 4949;
+ const static uint16 kNoselslot2 = 3861;
+ const static uint16 kScanloop = 4884;
+ const static uint16 kNotskip1 = 1711;
+ const static uint16 kKeybuffer = 5715;
+ const static uint16 kNotendcopper = 1105;
+ const static uint16 kFrameloopfx1 = 1819;
+ const static uint16 kFrameloopfx3 = 1819;
+ const static uint16 kFrameloopfx2 = 1819;
+ const static uint16 kNotpressed = 5698;
+ const static uint16 kNotmonk2text8 = 1105;
+ const static uint16 kNotmonk2text9 = 1105;
+ const static uint16 kNotmonk2text2 = 1105;
+ const static uint16 kNotmonk2text3 = 1105;
+ const static uint16 kNotmonk2text1 = 1105;
+ const static uint16 kNotmonk2text6 = 1105;
+ const static uint16 kNotmonk2text7 = 1105;
+ const static uint16 kNotmonk2text4 = 1105;
+ const static uint16 kNotmonk2text5 = 1105;
+ const static uint16 kNot164 = 2494;
+ const static uint16 kNot165 = 2494;
+ const static uint16 kNot160 = 2494;
+ const static uint16 kNot161 = 2494;
+ const static uint16 kNot162 = 2494;
+ const static uint16 kNot163 = 2494;
+ const static uint16 kNot168 = 2494;
+ const static uint16 kNocopper = 1105;
+ const static uint16 kCantdrip = 1105;
+ const static uint16 kFlashdots = 4949;
+ const static uint16 kTopfinished = 3651;
+ const static uint16 kOktalk = 1105;
+ const static uint16 kNonefound = 5073;
+ const static uint16 kNofindingtopic = 2895;
+ const static uint16 kGotgraphic = 2776;
+ const static uint16 kOnelot2 = 2494;
+ const static uint16 kFirstdes = 1105;
+ const static uint16 kWordloop = 2494;
+ const static uint16 kBotlot = 4949;
+ const static uint16 kDonterase = 2660;
+ const static uint16 kAtlast4 = 1214;
+ const static uint16 kEndofcolon = 2660;
+ const static uint16 kNotcentre = 2494;
+ const static uint16 kDontbother28 = 4949;
+ const static uint16 kNomadspeed = 1105;
+ const static uint16 kCanselectob = 3393;
+ const static uint16 kNotgunonrock = 1105;
+ const static uint16 kPath = 3393;
+ const static uint16 kNomorefading = 2494;
+ const static uint16 kAlreadydiscops = 3777;
+ const static uint16 kWidth80 = 1819;
+ const static uint16 kNotsartadd = 3693;
+ const static uint16 kRyanloop1 = 2494;
+ const static uint16 kRyanloop2 = 2494;
+ const static uint16 kLoop120 = 1819;
+ const static uint16 kLoop127 = 2660;
+ const static uint16 kLoop124 = 1819;
+ const static uint16 kLoop125 = 1819;
+ const static uint16 kLessthanapage = 2494;
+ const static uint16 kMoreloadspeech = 4926;
+ const static uint16 kCupfromtapfull = 3385;
+ const static uint16 kCombatover1 = 1105;
+ const static uint16 kCombatover2 = 1105;
+ const static uint16 kFlunkedit = 5073;
+ const static uint16 kCutgate = 3393;
+ const static uint16 kNotlastf = 3589;
+ const static uint16 kDoswap1 = 2660;
+ const static uint16 kDoswap2 = 2660;
+ const static uint16 kNotdes1 = 1105;
+ const static uint16 kBuscombatwonend = 1105;
+ const static uint16 kAddloop = 2660;
+ const static uint16 kWidth10 = 1819;
+ const static uint16 kWidth11 = 1819;
+ const static uint16 kWidth12 = 1819;
+ const static uint16 kWidth13 = 1819;
+ const static uint16 kWidth14 = 1819;
+ const static uint16 kWidth15 = 1819;
+ const static uint16 kWidth16 = 1819;
+ const static uint16 kWidth17 = 1819;
+ const static uint16 kWaitstopwalk = 4949;
+ const static uint16 kWidth19 = 1819;
+ const static uint16 kNonoise = 3525;
+ const static uint16 kSlabdwrong = 3385;
+ const static uint16 kUselist = 2895;
+ const static uint16 kMovealtar = 3385;
+ const static uint16 kQuickquit2 = 3861;
+ const static uint16 kFoundlen = 4884;
+ const static uint16 kOperand1 = 2883;
+ const static uint16 kMake = 5691;
+ const static uint16 kFinishidentify = 5073;
+ const static uint16 kNotlouiscard = 2660;
+ const static uint16 kIswalking = 5674;
+ const static uint16 kIsntcolon = 2660;
+ const static uint16 kZoomit = 1819;
+ const static uint16 kFoundnews = 2776;
+ const static uint16 kSlabbwrong = 3385;
+ const static uint16 kSlotloop = 3861;
+ const static uint16 kNotsarters2 = 4949;
+ const static uint16 kNotneg1 = 5691;
+ const static uint16 kDoopeninv = 2660;
+ const static uint16 kFoodinside = 3393;
+ const static uint16 kClearedlocations = 2776;
+ const static uint16 kNomore = 2692;
+ const static uint16 kAlreadyusedit = 3385;
+ const static uint16 kRetryreel = 1214;
+ const static uint16 kTalklist = 2660;
+ const static uint16 kNotexist = 4884;
+ const static uint16 kRockcombatend = 1105;
+ const static uint16 kWidth57 = 1819;
+ const static uint16 kPrtspriteloop = 1105;
+ const static uint16 kOpenboxwith = 3385;
+ const static uint16 kNotloop = 4949;
+ const static uint16 kNotinalley = 3393;
+ const static uint16 kPrintloopslow6 = 2494;
+ const static uint16 kPrintloopslow5 = 2494;
+ const static uint16 kNextone = 4884;
+ const static uint16 kExloop = 2660;
+ const static uint16 kCantdrip2 = 1105;
+ const static uint16 kSecondlot = 2776;
+ const static uint16 kAlreadysel = 3861;
+ const static uint16 kNotfreename = 5691;
+ const static uint16 kNotover2 = 5073;
+ const static uint16 kCanplace1 = 2660;
+ const static uint16 kCanplace3 = 2660;
+ const static uint16 kFinishmon = 2494;
+ const static uint16 kDeleteconts = 2660;
+ const static uint16 kLooknext2 = 2494;
+ const static uint16 kNotwalk = 1105;
+ const static uint16 kNotzeronum = 4949;
+ const static uint16 kError8patch = 4370;
+ const static uint16 kNodos = 3861;
+ const static uint16 kIsedens = 4949;
+ const static uint16 kNotlouisvol2 = 5073;
+ const static uint16 kHeavywait = 1105;
+ const static uint16 kPickupcontloop = 2660;
+ const static uint16 kHavegotcard = 1113;
+ const static uint16 kNotlastslab = 3385;
+ const static uint16 kComloop2 = 2776;
+ const static uint16 kSpeechfile = 4932;
+ const static uint16 kFindlenextext = 2660;
+ const static uint16 kSecurwait = 1105;
+ const static uint16 kComloop = 2776;
+ const static uint16 kNotboss = 1105;
+ const static uint16 kLine23 = 5691;
+ const static uint16 kDiscopsloop = 3777;
+ const static uint16 kKeypadlist = 3393;
+ const static uint16 kWearingwatch = 3385;
+ const static uint16 kSoundfail = 4949;
+ const static uint16 kHislope = 5691;
+ const static uint16 kGeneralerror = 3861;
+ const static uint16 kGotmonktext = 1105;
+ const static uint16 kNovolumeload = 5862;
+ const static uint16 kGotkeyn = 3693;
+ const static uint16 kDiffsub3 = 3393;
+ const static uint16 kGotlength = 2660;
+ const static uint16 kAnimsparky = 1105;
+ const static uint16 kNought = 1711;
+ const static uint16 kNotendtitles = 1105;
+ const static uint16 kIswatchingmode = 4949;
+ const static uint16 kNotquickp = 1105;
+ const static uint16 kNotwaitingheli = 1105;
+ const static uint16 kNotright = 3385;
+ const static uint16 kNolook = 2660;
+ const static uint16 kAxeoncontrols = 3393;
+ const static uint16 kFoundpersonal = 2776;
+ const static uint16 kNotaristoadd = 3589;
+ const static uint16 kFinishpars = 2895;
+ const static uint16 kNotnearly = 1214;
+ const static uint16 kSlabawrong = 3385;
+ const static uint16 kAfterpress = 3393;
+ const static uint16 kFinishedwalk = 1113;
+ const static uint16 kGotnext2 = 2494;
+ const static uint16 kNozoomonoff = 3693;
+ const static uint16 kDdok = 2776;
+ const static uint16 kLiftclosed = 1214;
+ const static uint16 kNotmonktext11 = 1105;
+ const static uint16 kNotafreeid = 5073;
+ const static uint16 kEndreelsound = 1214;
+ const static uint16 kNotendguard1 = 1105;
+ const static uint16 kWidth29 = 1819;
+ const static uint16 kWidth28 = 1819;
+ const static uint16 kWidth25 = 1819;
+ const static uint16 kWidth24 = 1819;
+ const static uint16 kWidth27 = 1819;
+ const static uint16 kWidth26 = 1819;
+ const static uint16 kAlreadydos = 3861;
+ const static uint16 kWidth20 = 1819;
+ const static uint16 kWidth23 = 1819;
+ const static uint16 kWidth22 = 1819;
+ const static uint16 kNodd = 2776;
+ const static uint16 kPipewith = 3385;
+ const static uint16 kShutdoor2 = 1214;
+ const static uint16 kGotdrinker = 1105;
+ const static uint16 kDogrb = 2660;
+ const static uint16 kNodu = 2776;
+ const static uint16 kHangonloope = 2494;
+ const static uint16 kShaketable = 1711;
+ const static uint16 kAfterinfo = 2776;
+ const static uint16 kCanredes = 2714;
+ const static uint16 kNotbeforedeadb = 1105;
+ const static uint16 kFinishshake = 1711;
+ const static uint16 kNomake = 2660;
+ const static uint16 kNotclear = 4949;
+ const static uint16 kNotwithboss = 3393;
+ const static uint16 kAlreadylastf = 3589;
+ const static uint16 kConvertpcx = 1711;
+ const static uint16 kFadedosloop = 2494;
+ const static uint16 kMiddleofwalk = 5674;
+ const static uint16 kFinflashmouse = 5698;
+ const static uint16 kScrollmonloop1 = 1711;
+ const static uint16 kMenulist = 3525;
+ const static uint16 kScrollmonloop2 = 1711;
+ const static uint16 kAlreadytrav = 2776;
+ const static uint16 kNotfirstdest = 2776;
+ const static uint16 kWidth55 = 1819;
+ const static uint16 kNotendtelly = 1105;
+ const static uint16 kNotch1endofpage1 = 4949;
+ const static uint16 kNotedens2 = 3393;
+ const static uint16 kBlimey = 5862;
+ const static uint16 kNotxover = 5715;
+ const static uint16 kGotconst = 1214;
+ const static uint16 kContinuewalk = 1113;
+ const static uint16 kLeftpageloop = 3589;
+ const static uint16 kCantsetup = 3393;
+ const static uint16 kNottrigger = 2494;
+ const static uint16 kIsanextra = 2494;
+ const static uint16 kNotonsartroof = 3393;
+ const static uint16 kCombathand = 5698;
+ const static uint16 kGotreader1with = 3385;
+ const static uint16 kCanpick2 = 2660;
+ const static uint16 kNodistortv = 4949;
+ const static uint16 kCanpick4 = 2660;
+ const static uint16 kSlowgates = 1105;
+ const static uint16 kNotsetd2 = 2660;
+ const static uint16 kNotnearframeend = 2660;
+ const static uint16 kInsideloop = 3393;
+ const static uint16 kCommandline = 5674;
+ const static uint16 kEndofdir = 2895;
+ const static uint16 kLouisvol = 5073;
+ const static uint16 kNotdrinker1 = 1105;
+ const static uint16 kGobackover = 3393;
+ const static uint16 kIswatchinv = 2660;
+ const static uint16 kHissnoise = 1214;
+ const static uint16 kNodumptimed = 3393;
+ const static uint16 kLoloop = 5691;
+ const static uint16 kNotplfree = 1711;
+ const static uint16 kLooky2 = 5862;
+ const static uint16 kSetframe = 2660;
+ const static uint16 kLine31 = 5691;
+ const static uint16 kHalfend = 2494;
+ const static uint16 kLine32 = 5691;
+ const static uint16 kIsntspecial = 2660;
+ const static uint16 kAlreadynextf = 3589;
+ const static uint16 kBeforethisone = 2660;
+ const static uint16 kRtofdoor = 1214;
+ const static uint16 kGotkeyp = 3693;
+ const static uint16 kNotinsartroom = 3393;
+ const static uint16 kChosenaccess = 2776;
+ const static uint16 kNofoundchange = 3393;
+ const static uint16 kIstravel = 2714;
+ const static uint16 kOddwidth2 = 1819;
+ const static uint16 kOddwidth3 = 1819;
+ const static uint16 kIswatchmad = 1105;
+ const static uint16 kNomorereel = 4949;
+ const static uint16 kDosparky = 1105;
+ const static uint16 kCandle1 = 1105;
+ const static uint16 kNextbit = 2494;
+ const static uint16 kSizeok1 = 2660;
+ const static uint16 kSizeok2 = 2660;
+ const static uint16 kNoadd = 5674;
+ const static uint16 kLookattail = 4949;
+ const static uint16 kBacktootherfx = 1819;
+ const static uint16 kIsautoloc = 2714;
+ const static uint16 kFoundcom = 2776;
+ const static uint16 kFreeobject = 3393;
+ const static uint16 kWidth38 = 1819;
+ const static uint16 kWidth39 = 1819;
+ const static uint16 kWidth32 = 1819;
+ const static uint16 kWidth33 = 1819;
+ const static uint16 kNotendblock = 1711;
+ const static uint16 kWidth31 = 1819;
+ const static uint16 kWidth36 = 1819;
+ const static uint16 kWidth37 = 1819;
+ const static uint16 kWidth34 = 1819;
+ const static uint16 kWidth35 = 1819;
+ const static uint16 kNotwrapforb = 3651;
+ const static uint16 kAlreadyload = 3735;
+ const static uint16 kCantpurge = 2660;
+ const static uint16 kHelicombatend = 1105;
+ const static uint16 kEmptyinterface = 2776;
+ const static uint16 kSymbolwrong = 3589;
+ const static uint16 kNotlouis = 1113;
+ const static uint16 kWaitops = 3693;
+ const static uint16 kNotedensagain = 4949;
+ const static uint16 kNotyetrecep = 3385;
+ const static uint16 kInitrainside2 = 1113;
+ const static uint16 kGotheliframe = 1105;
+ const static uint16 kNevershown = 5698;
+ const static uint16 kDodiscops = 3777;
+ const static uint16 kNotlasttalk1 = 1105;
+ const static uint16 kAlreadyreds = 2714;
+ const static uint16 kNotext = 3393;
+ const static uint16 kNodiscops = 3777;
+ const static uint16 kGotrockframe = 1105;
+ const static uint16 kNotloc15 = 4949;
+ const static uint16 kWaittalk = 2660;
+ const static uint16 kChannel0once = 1214;
+ const static uint16 kEndline = 1711;
+ const static uint16 kNomoreatmos = 5073;
+ const static uint16 kDestoryopenbox = 3385;
+ const static uint16 kNotsmally = 5698;
+ const static uint16 kBotofdoor = 1214;
+ const static uint16 kNotqk = 3525;
+ const static uint16 kNotqs = 3651;
+ const static uint16 kCantopinv = 2660;
+ const static uint16 kWidth8 = 1819;
+ const static uint16 kWidth9 = 1819;
+ const static uint16 kWidth2 = 1819;
+ const static uint16 kWidth3 = 1819;
+ const static uint16 kWidth0 = 1819;
+ const static uint16 kWidth1 = 1819;
+ const static uint16 kWidth6 = 1819;
+ const static uint16 kWidth7 = 1819;
+ const static uint16 kWidth4 = 1819;
+ const static uint16 kWidth5 = 1819;
+ const static uint16 kAlreadybotl = 3651;
+ const static uint16 kNotsetcard = 1105;
+ const static uint16 kVolok = 4949;
+ const static uint16 kAlreadysave = 3819;
+ const static uint16 kGotwirewith = 3393;
+ const static uint16 kBhloop2 = 1819;
+ const static uint16 kBhloop1 = 1819;
+ const static uint16 kHangonearly = 2494;
+ const static uint16 kTakenloop = 2660;
+ const static uint16 kGotmonks2text = 1105;
+ const static uint16 kNotanimend1 = 1105;
+ const static uint16 kNoopenob = 2660;
+ const static uint16 kLookx2 = 5862;
+ const static uint16 kFindsometext = 2660;
+ const static uint16 kNotnextf = 3589;
+ const static uint16 kGameerror8 = 4326;
+ const static uint16 kNotdelboathouse = 2776;
+ const static uint16 kGameerror6 = 4197;
+ const static uint16 kGameerror7 = 4267;
+ const static uint16 kGameerror4 = 4062;
+ const static uint16 kGameerror5 = 4123;
+ const static uint16 kGameerror2 = 3929;
+ const static uint16 kGameerror3 = 4010;
+ const static uint16 kNomatch = 2895;
+ const static uint16 kVolloop = 4949;
+ const static uint16 kPlatewith = 3393;
+ const static uint16 kHiloop = 5691;
+ const static uint16 kNodrop2 = 2660;
+ const static uint16 kSkipoffsets = 1819;
+ const static uint16 kRockspeed = 1105;
+ const static uint16 kWantstowalk = 5674;
+ const static uint16 kNotfirstpool = 1105;
+ const static uint16 kNotlocky = 1214;
+ const static uint16 kGotalong = 2660;
+ const static uint16 kNoinfo = 2776;
+ const static uint16 kToofaraway = 5674;
+ const static uint16 kMoney2poke = 3390;
+ const static uint16 kThousandsc = 4945;
+ const static uint16 kNotb = 3525;
+ const static uint16 kKeeplooking = 2895;
+ const static uint16 kDontrestore = 5862;
+ const static uint16 kNotlastspeed2 = 4949;
+ const static uint16 kOver242 = 2660;
+ const static uint16 kInitraintop = 1113;
+ const static uint16 kError2patch = 3997;
+ const static uint16 kNoplot = 1214;
+ const static uint16 kNormal = 1711;
+ const static uint16 kFinishslow = 2494;
+ const static uint16 kMustgo = 4949;
+ const static uint16 kLesscolour = 2494;
+ const static uint16 kOpenboxwrong = 3385;
+ const static uint16 kNotch1only = 4949;
+ const static uint16 kClearboxwith = 3385;
+ const static uint16 kEndoflist = 1214;
+ const static uint16 kNotblock = 5674;
+ const static uint16 kNotbothendofpage0 = 4949;
+ const static uint16 kNotbothendofpage1 = 4949;
+ const static uint16 kGotrecep = 1105;
+ const static uint16 kNoreset = 5862;
+ const static uint16 kKeypadloop = 3393;
+ const static uint16 kPoolwith = 3385;
+ const static uint16 kOddwidthframe = 1819;
+ const static uint16 kGuardspeed = 1105;
+ const static uint16 kNocountclose = 1214;
+ const static uint16 kRightcard = 3385;
+ const static uint16 kWireknife = 3393;
+ const static uint16 kNouse = 2895;
+ const static uint16 kNotdream3 = 2660;
+ const static uint16 kDolastf = 3589;
+ const static uint16 kDirectloop1 = 2895;
+ const static uint16 kSlow = 4949;
+ const static uint16 kAlreadynewgame = 4926;
+ const static uint16 kLoop048 = 5073;
+ const static uint16 kIntrom2fin = 1105;
+ const static uint16 kDiaryloop = 3651;
+ const static uint16 kRyansoff = 5073;
+ const static uint16 kDoneover2 = 1105;
+ const static uint16 kNotinroom = 2660;
+ const static uint16 kIsaperson = 5674;
+ const static uint16 kNotadown = 1113;
+ const static uint16 kFoundchange = 3393;
+ const static uint16 kNumloop1 = 4949;
+ const static uint16 kNoaddg = 2494;
+ const static uint16 kEndoftext = 2494;
+ const static uint16 kNoaddb = 2494;
+ const static uint16 kKeepgoing = 2494;
+ const static uint16 kNotintro1text2 = 1105;
+ const static uint16 kGotintromonk2 = 1105;
+ const static uint16 kNoaddr = 2494;
+ const static uint16 kGotintromonk1 = 1105;
+ const static uint16 kAccesscom = 2776;
+ const static uint16 kNotshieldonbus = 1105;
+ const static uint16 kDontplace = 1711;
+ const static uint16 kAlreadydrop = 2660;
+ const static uint16 kLoadmode = 3861;
+ const static uint16 kGotendseq = 1105;
+ const static uint16 kNotverycool = 5691;
+ const static uint16 kNorightpage = 3589;
+ const static uint16 kChangeloop = 3393;
+ const static uint16 kGotintro2text = 1105;
+ const static uint16 kItsanobject = 5698;
+ const static uint16 kGotquad = 5691;
+ const static uint16 kNotsmoket1 = 1105;
+ const static uint16 kNotsmoket2 = 1105;
+ const static uint16 kAlreadymore = 2692;
+ const static uint16 kFoundlineend = 1214;
+ const static uint16 kHasloadedroom = 4884;
+ const static uint16 kShowobsloop = 2660;
+ const static uint16 kNogetback = 2660;
+ const static uint16 kLooknext = 1105;
+ const static uint16 kGotthere = 2494;
+ const static uint16 kIsrightkey = 3385;
+ const static uint16 kGameover = 4949;
+ const static uint16 kRainlocations = 1113;
+ const static uint16 kFolderloop = 3547;
+ const static uint16 kNotactload = 3861;
+ const static uint16 kBotfinished = 3651;
+ const static uint16 kNotthisob = 2660;
+ const static uint16 kSteadyob = 1214;
+ const static uint16 kNoneedforemm = 4949;
+ const static uint16 kDirroot = 2895;
+ const static uint16 kSearchdestup = 2776;
+ const static uint16 kUsedpriority = 2660;
+ const static uint16 kFinishedsetobs = 2660;
+ const static uint16 kNotlouisthund = 1214;
+ const static uint16 kNotmapupspec = 1711;
+ const static uint16 kGotkey = 3525;
+ const static uint16 kNotraisearm = 1105;
+ const static uint16 kFoundmatch = 2660;
+ const static uint16 kRightkey = 3393;
+ const static uint16 kEndoftopic = 2895;
+ const static uint16 kBotwrap = 3651;
+ const static uint16 kSame = 5862;
+ const static uint16 kNotwrapback = 3651;
+ const static uint16 kCantswap1 = 2660;
+ const static uint16 kCantswap2 = 2660;
+ const static uint16 kTryagain = 2660;
+ const static uint16 kNotnewpath = 5674;
+ const static uint16 kTvdoorwith = 3385;
+ const static uint16 kFinishearly = 4949;
+ const static uint16 kCantpurge2 = 2660;
+ const static uint16 kGetloop = 2494;
+ const static uint16 kLine12 = 5691;
+ const static uint16 kRestartlouis = 1105;
+ const static uint16 kAlreadyactsave = 3861;
+ const static uint16 kNotaleft = 1113;
+ const static uint16 kNobark = 1105;
+ const static uint16 kTopok = 4949;
+ const static uint16 kQuitconv = 2692;
+ const static uint16 kFacelist = 1105;
+ const static uint16 kNomadspeak = 1105;
+ const static uint16 kSymbolloop = 3589;
+ const static uint16 kEmmerror1 = 4949;
+ const static uint16 kEmmerror2 = 4945;
+ const static uint16 kNoload = 3735;
+ const static uint16 kNowatchworn = 4949;
+ const static uint16 kWithlist1 = 2618;
+ const static uint16 kNotaide = 3393;
+ const static uint16 kNotinhere = 2660;
+ const static uint16 kNotnew = 5073;
+ const static uint16 kDestlist = 2714;
+ const static uint16 kNocountopen = 1214;
+ const static uint16 kNextatmos = 5073;
+ const static uint16 kNokern = 2494;
+ const static uint16 kAnimating = 2660;
+ const static uint16 kNomorekeys = 3525;
+ const static uint16 kWaitinit = 4945;
+ const static uint16 kGotdoorwith = 3393;
+ const static uint16 kBeforethistext = 2660;
+ const static uint16 kNotyetassigned = 2895;
+ const static uint16 kDifffound = 5698;
+ const static uint16 kNotfoundinside = 3393;
+ const static uint16 kFpathloop = 5073;
+ const static uint16 kNottrigger2 = 2494;
+ const static uint16 kNotdoor = 1214;
+ const static uint16 kFinishback = 1214;
+ const static uint16 kLookforpurge2 = 2660;
+ const static uint16 kNotnegative2 = 1105;
+ const static uint16 kNotgotgun = 1105;
+ const static uint16 kNotnegative1 = 1105;
+ const static uint16 kGotreader2with = 3385;
+ const static uint16 kSavelist = 3819;
+ const static uint16 kMousehand = 5698;
+ const static uint16 kFindnewpage = 2660;
+ const static uint16 kNotspeed = 1105;
+ const static uint16 kFinishmakename = 5691;
+ const static uint16 kNotlock = 2895;
+ const static uint16 kNormalreel = 1214;
+ const static uint16 kFoundsign = 2895;
+ const static uint16 kGotnext = 1105;
+ const static uint16 kNofog = 1105;
+ const static uint16 kNopresses = 3393;
+ const static uint16 kComplete = 2895;
+ const static uint16 kSizewrong = 2660;
+ const static uint16 kAlreadytopl = 3651;
+ const static uint16 kNoneedtorecon = 1711;
+ const static uint16 kGatewith = 3393;
+ const static uint16 kPrintloop7 = 2494;
+ const static uint16 kPrintloop6 = 2494;
+ const static uint16 kPrintloop5 = 2494;
+ const static uint16 kNullframe = 2660;
+ const static uint16 kNotcrystal = 4949;
+ const static uint16 kAlreadytopr = 3651;
+ const static uint16 kPrintloop8 = 2494;
+ const static uint16 kNotinthisone = 2776;
+ const static uint16 kNotblankshow = 1819;
+ const static uint16 kNoshoe2 = 1113;
+ const static uint16 kDspready = 4945;
+ const static uint16 kToplotv = 4949;
+ const static uint16 kIdentifyfree = 5073;
+ const static uint16 kSignonloop = 2895;
+ const static uint16 kEndcredits21 = 2494;
+ const static uint16 kDescribe = 2660;
+ const static uint16 kNotinnewroom = 1105;
+ const static uint16 kPathokboss = 3393;
+ const static uint16 kOpendoor2 = 1214;
+ const static uint16 kJustcancel = 4945;
+ const static uint16 kOpenchangesize = 2588;
+ const static uint16 kIncorrect = 3393;
+ const static uint16 kZeroblock = 1819;
+ const static uint16 kFindsetloop = 3393;
+ const static uint16 kNotxover2 = 5715;
+ const static uint16 kNotsecondbank = 4949;
+ const static uint16 kNextline = 1819;
+ const static uint16 kNotheldob = 2660;
+ const static uint16 kGotfirst = 5073;
+ const static uint16 kPowerok = 2895;
+ const static uint16 kCheckdestloop = 5691;
+ const static uint16 kMadmanspoken = 1105;
+ const static uint16 kTensc = 4945;
+ const static uint16 kDosave = 3819;
+ const static uint16 kDirectory = 2776;
+ const static uint16 kKeyontv = 3385;
+ const static uint16 kDoselob = 3393;
+ const static uint16 kDuok = 2776;
+ const static uint16 kChangelight = 3525;
+ const static uint16 kIsinleft = 5691;
+ const static uint16 kIsdream1 = 5691;
+ const static uint16 kDodecisions = 4949;
+ const static uint16 kNotlockdoor = 1214;
+ const static uint16 kNotinlift = 2660;
+ const static uint16 kNotplayingreel = 4949;
+ const static uint16 kNodumpwatch = 4949;
+ const static uint16 kTrampgone = 1105;
+ const static uint16 kObnotexist = 2660;
+ const static uint16 kNodumptextline = 5698;
+ const static uint16 kTwolotsright = 3589;
+ const static uint16 kCantopenit = 2660;
+ const static uint16 kCantwalk = 5691;
+ const static uint16 kCdinside = 3393;
+ const static uint16 kMakedoorsopen = 4949;
+ const static uint16 kPowerloop = 2776;
+ const static uint16 kNotanexid = 5073;
+ const static uint16 kNotcent2 = 2494;
+ const static uint16 kOpenbox = 3385;
+ const static uint16 kNotwatching = 4949;
+ const static uint16 kNosetpick = 2660;
+ const static uint16 kPlaceit = 1711;
+ const static uint16 kNotwatchinv = 2660;
+ const static uint16 kDiff2 = 5674;
+ const static uint16 kEndupdate = 1214;
+ const static uint16 kNotendcandle1 = 1105;
+ const static uint16 kFlipfolder = 3589;
+ const static uint16 kNokeyatall = 3693;
+ const static uint16 kGotlight = 3525;
+ const static uint16 kAlreadyqs = 3651;
+ const static uint16 kDifsub8 = 2660;
+ const static uint16 kWidth88 = 1819;
+ const static uint16 kAlreadyqk = 3525;
+ const static uint16 kCanpick = 2660;
+ const static uint16 kDifsub1 = 2660;
+ const static uint16 kDifsub2 = 2660;
+ const static uint16 kDifsub3 = 2660;
+ const static uint16 kDifsub4 = 2660;
+ const static uint16 kNotinedenslift = 1113;
+ const static uint16 kDifsub7 = 2660;
+ const static uint16 kSearch = 2660;
+ const static uint16 kDomoretalk = 2692;
+ const static uint16 kNotbystudio = 3393;
+ const static uint16 kDonethisbit = 3393;
+ const static uint16 kNotrainatall = 1105;
+ const static uint16 kNotremfree = 1711;
+ const static uint16 kNomatchslot2 = 3861;
+ const static uint16 kSelect = 2714;
+ const static uint16 kGotheavyframe = 1105;
+ const static uint16 kDrawnsetob = 2660;
+ const static uint16 kNotloc23 = 4949;
+ const static uint16 kNotopright = 3651;
+ const static uint16 kCheckpurgeagain = 2660;
+ const static uint16 kNotleave = 1113;
+ const static uint16 kGotendtext = 1105;
+ const static uint16 kNotdel = 2776;
+ const static uint16 kNotmonktext10 = 1105;
+ const static uint16 kNotmonktext13 = 1105;
+ const static uint16 kNotmonktext12 = 1105;
+ const static uint16 kDogetbackops = 3777;
+ const static uint16 kNoautolook = 2660;
+ const static uint16 kDecdir = 1113;
+ const static uint16 kNotaright = 1113;
+ const static uint16 kZoomswitch = 1819;
+ const static uint16 kFoundnewex = 2660;
+ const static uint16 kNodream7 = 2895;
+ const static uint16 kIswatching = 2494;
+ const static uint16 kNotfudge = 1711;
+ const static uint16 kZerostill = 3861;
+ const static uint16 kNotenterdream = 4949;
+ const static uint16 kNotlastdest = 2776;
+ const static uint16 kDoexinv = 2660;
+ const static uint16 kOpsblock1 = 3735;
+ const static uint16 kGotsecurframe = 1105;
+ const static uint16 kEndearly2 = 2494;
+ const static uint16 kPlaygame = 4949;
+ const static uint16 kNotdiff = 1105;
+ const static uint16 kNotaftersshot = 1105;
+ const static uint16 kSet16palloop2 = 2494;
+ const static uint16 kPriestspoken = 1105;
+ const static uint16 kOpenloop1 = 2494;
+ const static uint16 kMoreload2 = 4945;
+ const static uint16 kGotstartletter = 2660;
+ const static uint16 kEndmugger1 = 1105;
+ const static uint16 kEndmugger2 = 1105;
+ const static uint16 kGotintrom1 = 1105;
+ const static uint16 kGotintrom3 = 1105;
+ const static uint16 kGotintrom2 = 1105;
+ const static uint16 kWaitkey = 2776;
+ const static uint16 kNozoom1 = 5691;
+ const static uint16 kWantstotalk = 5674;
+ const static uint16 kNotfirst = 1113;
+ const static uint16 kSlabewrong = 3385;
+ const static uint16 kCantmakeoneup = 2660;
+ const static uint16 kNotdoorsound1 = 1214;
+ const static uint16 kNotdoorsound3 = 1214;
+ const static uint16 kNotdoorsound2 = 1214;
+ const static uint16 kNotdoorsound4 = 1214;
+ const static uint16 kDirectloop2 = 2895;
+ const static uint16 kNomatchslot = 3861;
+ const static uint16 kNotzoomon = 5698;
+ const static uint16 kDontcheck = 5674;
+ const static uint16 kLookforlineend = 1214;
+ const static uint16 kFrameloop1 = 1819;
+ const static uint16 kFrameloop3 = 1819;
+ const static uint16 kFrameloop2 = 1819;
+ const static uint16 kRightspeed3 = 5698;
+ const static uint16 kFinex = 2660;
+ const static uint16 kIscup = 2660;
+ const static uint16 kNoconvnum = 4949;
+ const static uint16 kEmmerror = 4945;
+ const static uint16 kLiftopen = 1214;
+ const static uint16 kClearloop = 1711;
+ const static uint16 kDumpevery2 = 1711;
+ const static uint16 kDumpevery1 = 1711;
+ const static uint16 kAlreadyb = 3525;
+ const static uint16 kFirsttimed = 3393;
+ const static uint16 kNotboth = 5698;
+ const static uint16 kKeyconverttab = 5731;
+ const static uint16 kNoturnonyet = 1214;
+ const static uint16 kNotmonk2text10 = 1105;
+ const static uint16 kNotmonk2text11 = 1105;
+ const static uint16 kNotinbath = 1105;
+ const static uint16 kActuallyswap = 2660;
+ const static uint16 kKeyscom = 2776;
+ const static uint16 kNormalline = 5691;
+ const static uint16 kEndcredits2 = 1105;
+ const static uint16 kEndcredits1 = 1105;
+ const static uint16 kNofindex = 3393;
+ const static uint16 kLoslope = 5691;
+ const static uint16 kNottalkedboss = 1105;
+ const static uint16 kWrongroom1 = 3393;
+ const static uint16 kWaitexam = 2494;
+ const static uint16 kNotsetname = 5691;
+ const static uint16 kFileerror = 5862;
+ const static uint16 kLoop2 = 1711;
+ const static uint16 kLoop1 = 1711;
+ const static uint16 kRtofdoor2 = 1214;
+ const static uint16 kNotmaprightspec = 1711;
+ const static uint16 kIsnosound = 4949;
+ const static uint16 kInwatching = 1819;
+ const static uint16 kNotthirdtrigger = 2895;
+ const static uint16 kHavesetwatch = 1105;
+ const static uint16 kIsthunder1 = 1214;
+ const static uint16 kMainlist = 4949;
+ const static uint16 kNotopenchurch = 3393;
+ const static uint16 kPriorityloop = 1105;
+ const static uint16 kEdenspart2 = 3393;
+ const static uint16 kRyansded = 1105;
+ const static uint16 kNotwrapfor = 3651;
+ const static uint16 kNotintro3text2 = 1105;
+ const static uint16 kNotafterhshot = 1105;
+ const static uint16 kNottalkedsparky = 1105;
+ const static uint16 kZoomloop2 = 1819;
+ const static uint16 kNotmugger = 1105;
+ const static uint16 kNotcarpark = 4949;
+ const static uint16 kLoadlist = 3735;
+ const static uint16 kWaitdecide = 4884;
+ const static uint16 kSkiptalk = 2692;
+ const static uint16 kNextopenslot = 2494;
+ const static uint16 kNotfound = 2895;
+ const static uint16 kDosetpick = 2660;
+ const static uint16 kTryanotherex = 2660;
+ const static uint16 kNotaideadd = 3589;
+ const static uint16 kNotshown = 3693;
+ const static uint16 kNotshowp = 3693;
+ const static uint16 kNotendadvis = 1105;
+ const static uint16 kAlreadylook = 2660;
+ const static uint16 kNotblankpers = 5073;
+ const static uint16 kCorrectcard2 = 3385;
+ const static uint16 kGetslotnum = 3861;
+ const static uint16 kNogetbackops = 3777;
+ const static uint16 kNotinsideex = 2660;
+ const static uint16 kHangloopw = 5698;
+ const static uint16 kHangloopq = 2692;
+ const static uint16 kCigarette = 3385;
+ const static uint16 kDonefirstops = 3693;
+ const static uint16 kBotright = 5691;
+ const static uint16 kNotwalkandexam = 5691;
+ const static uint16 kFinishfile = 2895;
+ const static uint16 kAlreadyselob = 3393;
+ const static uint16 kFinishfill = 2494;
+ const static uint16 kPickupexob = 2660;
+ const static uint16 kTriedknife = 3393;
+ const static uint16 kIsinexlist = 2660;
+ const static uint16 kAfterkey = 3861;
+ const static uint16 kDoopenob = 2660;
+ const static uint16 kFinishdirct = 2494;
+ const static uint16 kLoadedalready = 5862;
+ const static uint16 kWatchtalk = 2692;
+ const static uint16 kKeysloop = 2895;
+ const static uint16 kFailed = 2895;
+ const static uint16 kEndearly = 2494;
+ const static uint16 kNotfirsttimed = 3393;
+ const static uint16 kIswaitingpool = 1105;
+ const static uint16 kBlinktab = 5691;
+ const static uint16 kNotcentred = 1819;
+ const static uint16 kCandles2fin = 1105;
+ const static uint16 kMoretext = 2660;
+ const static uint16 kNormalwalk = 1113;
+ const static uint16 kNokey = 5715;
+ const static uint16 kGotpl = 5691;
+ const static uint16 kAlreadyswap1 = 2660;
+ const static uint16 kSignoncom = 2776;
+ const static uint16 kOpenpool = 3385;
+ const static uint16 kOpslist = 3693;
+ const static uint16 kNoneedtoremove = 4949;
+ const static uint16 kNoloadold = 4926;
+ const static uint16 kNotintro2text1 = 1105;
+ const static uint16 kNotintro2text2 = 1105;
+ const static uint16 kNobotleft = 3651;
+ const static uint16 kIgnoreit = 2494;
+ const static uint16 kNotalley = 4949;
+ const static uint16 kSpecialcase = 2660;
+ const static uint16 kNodumpsym = 3651;
+ const static uint16 kCanopenit1 = 2660;
+ const static uint16 kNotsecondpart = 2692;
+ const static uint16 kNotmapup2 = 1711;
+ const static uint16 kIsfree = 2660;
+ const static uint16 kOver045 = 5073;
+ const static uint16 kGoingdown = 3393;
+ const static uint16 kNotedenlob = 4949;
+ const static uint16 kNoclear = 4949;
+ const static uint16 kNoobselect = 5674;
+ const static uint16 kLowvolumetran = 4949;
+ const static uint16 kCh0oksecond = 4945;
+ const static uint16 kFlashmousetab = 5698;
+ const static uint16 kIntrom3fin = 1105;
+ const static uint16 kNotareelid = 5073;
+ const static uint16 kKeyok = 2895;
+ const static uint16 kDontbother4 = 4949;
+ const static uint16 kExamlist = 2494;
+ const static uint16 kDontbother2 = 4945;
+ const static uint16 kDontbother3 = 4949;
+ const static uint16 kNotlair = 5674;
+ const static uint16 kDontbother8 = 4926;
+ const static uint16 kDontbother9 = 4945;
+ const static uint16 kNotfirstbiz = 1105;
+ const static uint16 kWrongatmos = 5073;
+ const static uint16 kContleftpage = 3589;
+ const static uint16 kAlreadysp = 2660;
+ const static uint16 kMustbeopen = 1214;
+ const static uint16 kNotryanoff = 1711;
+ const static uint16 kSkip1 = 1711;
+ const static uint16 kOver138 = 2660;
+ const static uint16 kNotkeyn = 3693;
+ const static uint16 kWholeloop1 = 2494;
+ const static uint16 kCanlastf = 3589;
+ const static uint16 kStereook = 3393;
+ const static uint16 kStereoon = 3393;
+ const static uint16 kEmptycup = 2660;
+ const static uint16 kQuitloaded = 3735;
+ const static uint16 kNotkeyp = 3693;
+ const static uint16 kFlipfolderline = 3589;
+ const static uint16 kIdentifyset = 5073;
+ const static uint16 kWalkandexamine = 5674;
+ const static uint16 kFirstbitofblock = 1819;
+ const static uint16 kNotloc44 = 4949;
+ const static uint16 kRighthand = 3385;
+ const static uint16 kBacktoother = 1819;
+ const static uint16 kEndofdir2 = 2895;
+ const static uint16 kNotendsmallcandle = 1105;
+ const static uint16 kIsbright = 4949;
+ const static uint16 kWidth63 = 1819;
+ const static uint16 kEndofinput = 2776;
+ const static uint16 kGotadvframe = 1105;
+ const static uint16 kQuitlist = 2692;
+ const static uint16 kNotwornswap = 2660;
+ const static uint16 kKeys = 2807;
+ const static uint16 kNomod = 2494;
+ const static uint16 kNodumpeye = 5698;
+ const static uint16 kCopyin1 = 2895;
+ const static uint16 kHorizloop = 5691;
+ const static uint16 kFquit = 4884;
+ const static uint16 kFullcup = 2660;
+ const static uint16 kPurgeloc = 2660;
+ const static uint16 kNotendmonk1 = 1105;
+ const static uint16 kDontpurge = 2660;
+ const static uint16 kExecutewalk = 1105;
+ const static uint16 kIntrom1fin = 1105;
+ const static uint16 kNotout = 2660;
+ const static uint16 kGamerfin = 1105;
+ const static uint16 kAfterwalk = 1105;
+ const static uint16 kNotgotobject = 2660;
+ const static uint16 kDoincryan = 2660;
+ const static uint16 kCopytext = 5691;
+ const static uint16 kIsntsame = 2660;
+ const static uint16 kNoeffects = 1819;
+ const static uint16 kFindblaster = 4949;
+ const static uint16 kNottalkedrecep = 1105;
+ const static uint16 kDecidelist = 4884;
+ const static uint16 kIsdouble = 1105;
+ const static uint16 kNoswap2 = 5691;
+ const static uint16 kNoswap1 = 5691;
+ const static uint16 kNotspeaking = 2692;
+ const static uint16 kMorerain = 1214;
+ const static uint16 kSizeok = 2660;
+ const static uint16 kNotdeltvstud = 2776;
+ const static uint16 kEndofline = 1113;
+ const static uint16 kOddwidth = 1819;
+ const static uint16 kBacktosolidfx = 1819;
+ const static uint16 kNotinedens = 3393;
+ const static uint16 kMoreload = 4945;
+ const static uint16 kIntoopen = 2660;
+ const static uint16 kIsfree3 = 2660;
+ const static uint16 kIsfree2 = 2660;
+ const static uint16 kActuallyout = 2660;
+ const static uint16 kFailrain = 1214;
+ const static uint16 kFullvol = 5073;
+ const static uint16 kGotreader3with = 3385;
+ const static uint16 kNmloop1 = 1819;
+ const static uint16 kNmloop2 = 1819;
+ const static uint16 kIntromonk2fin = 1105;
+ const static uint16 kNotnocurs = 3861;
+ const static uint16 kMultiloop1 = 1819;
+ const static uint16 kWithit = 2494;
+ const static uint16 kMultiloop3 = 1819;
+ const static uint16 kMultiloop2 = 1819;
+ const static uint16 kMultiloop5 = 1819;
+ const static uint16 kMultiloop4 = 1819;
+ const static uint16 kMultiloop6 = 1819;
+ const static uint16 kInpoolhall = 3393;
+ const static uint16 kUsekey1 = 3393;
+ const static uint16 kUsekey2 = 3393;
+ const static uint16 kGetoutofit = 5698;
+ const static uint16 kNotrav = 2776;
+ const static uint16 kDouse = 2895;
+ const static uint16 kNotdelsarters = 2776;
+ const static uint16 kNottvsoldier = 3393;
+ const static uint16 kAddloop2 = 2660;
+ const static uint16 kJustgetback = 2494;
+ const static uint16 kNotreleasehold = 4949;
+ const static uint16 kMightwait = 1105;
+ const static uint16 kNotyet = 3385;
+ const static uint16 kNotintro1text1 = 1105;
+ const static uint16 kNotintro1text3 = 1105;
+ const static uint16 kIsdma = 4949;
+ const static uint16 kNotinbed = 1105;
+ const static uint16 kPlinthwith = 3385;
+ const static uint16 kAxeondoor = 3393;
+ const static uint16 kOkcom = 2895;
+ const static uint16 kNotover1 = 5073;
+ const static uint16 kHorizline = 5691;
+ const static uint16 kBuscombatwon = 1105;
+ const static uint16 kAlreadyincryan = 2660;
+ const static uint16 kPalloop = 1711;
+ const static uint16 kGotguardframe = 1105;
+ const static uint16 kGotcrystal = 3385;
+ const static uint16 kLookcolon = 3385;
+ const static uint16 kAccessloop = 2776;
+ const static uint16 kSaveops = 3819;
+ const static uint16 kMonloop1 = 5698;
+ const static uint16 kCheckmain = 4949;
+ const static uint16 kWidth128 = 1819;
+ const static uint16 kNotheld = 2895;
+ const static uint16 kNotopleft = 3651;
+ const static uint16 kDeallerror = 4949;
+ const static uint16 kEndtail = 4949;
+ const static uint16 kEndofthisline = 1214;
+ const static uint16 kSignonloop2 = 2895;
+ const static uint16 kSymbollist = 3589;
+ const static uint16 kNofirst = 5073;
+ const static uint16 kLockloop = 2895;
+ const static uint16 kFinishslow2 = 2494;
+ const static uint16 kNopathoff = 5073;
+ const static uint16 kCantsetup2 = 3393;
+ const static uint16 kHaventfound = 3393;
+ const static uint16 kIsmorereel = 4949;
+ const static uint16 kNotbracket = 2895;
+ const static uint16 kMoreendseq = 2494;
+ const static uint16 kEndlessloop = 4949;
+ const static uint16 kNodel2 = 3861;
+ const static uint16 kNodroperror = 2660;
+ const static uint16 kEndgametext1 = 4835;
+ const static uint16 kNoops = 3693;
+ const static uint16 kNotclear3 = 4949;
+ const static uint16 kNotclear2 = 4949;
+ const static uint16 kNotclear1 = 4949;
+ const static uint16 kLoadnew = 4949;
+ const static uint16 kFinishtime = 4949;
+ const static uint16 kBusspeed = 1105;
+ const static uint16 kGotbusframe = 1105;
+ const static uint16 kGrafwith = 3385;
+ const static uint16 kIsex2 = 2660;
+ const static uint16 kIsex3 = 2660;
+ const static uint16 kDoplace = 2660;
+ const static uint16 kSoldierwait = 1105;
+ const static uint16 kGotsmoket = 1105;
+ const static uint16 kNothingund = 5073;
+ const static uint16 kPlotloop = 1214;
+ const static uint16 kWaiting = 1105;
+ const static uint16 kNoresetpit = 4949;
+ const static uint16 kGotsmokeb = 1105;
+ const static uint16 kFoundfile = 2895;
+ const static uint16 kRightpageloop = 3589;
+ const static uint16 kBothspecial = 2660;
+ const static uint16 kIssoundint = 4949;
+ const static uint16 kNotspace1 = 2895;
+ const static uint16 kLowvolumemix = 4949;
+ const static uint16 kNoactsave = 3861;
+ const static uint16 kWalkman = 1105;
+ const static uint16 kNotinrockroom = 3393;
+ const static uint16 kNodrop = 2660;
+ const static uint16 kKeyonhotel2 = 3385;
+ const static uint16 kKeyonhotel1 = 3385;
+ const static uint16 kGotcontrolwith = 3393;
+ const static uint16 kThingsonaltar = 3385;
+ const static uint16 kAlreadywon = 1105;
+ const static uint16 kNextslab = 3385;
+ const static uint16 kAlreadyrun = 5073;
+ const static uint16 kFinishclose = 1214;
+ const static uint16 kHangloop = 5698;
+ const static uint16 kNonewgame = 4926;
+ const static uint16 kCh1oksecond = 4945;
+ const static uint16 kForcenext = 1105;
+ const static uint16 kUpordown2 = 1214;
+ const static uint16 kBalls = 3393;
+ const static uint16 kWidth21 = 1819;
+ const static uint16 kAlreadyops = 3693;
+ const static uint16 kEndword = 2494;
+ const static uint16 kIsntblank = 4884;
+ const static uint16 kNotfadeend = 1105;
+ const static uint16 kDoqk = 3525;
+ const static uint16 kQuitcom = 2776;
+ const static uint16 kNotyover = 5715;
+ const static uint16 kDoqs = 3651;
+ const static uint16 kNotdreamcentre = 4949;
+ const static uint16 kLine4 = 5691;
+ const static uint16 kLine3 = 5691;
+ const static uint16 kLine1 = 5691;
+ const static uint16 kGotgates = 1105;
+ const static uint16 kZoomisoff = 5691;
+ const static uint16 kForgotone = 1113;
+ const static uint16 kNotch0endofpage0 = 4949;
+ const static uint16 kWidth49 = 1819;
+ const static uint16 kWidth48 = 1819;
+ const static uint16 kWidth47 = 1819;
+ const static uint16 kWidth46 = 1819;
+ const static uint16 kNoselslot = 3861;
+ const static uint16 kWidth44 = 1819;
+ const static uint16 kFoundlinestart = 1214;
+ const static uint16 kWidth42 = 1819;
+ const static uint16 kWidth41 = 1819;
+ const static uint16 kWidth40 = 1819;
+ const static uint16 kNotletgo4 = 2660;
+ const static uint16 kWidth110 = 1819;
+ const static uint16 kNotletgo3 = 2660;
+ const static uint16 kNotletgo2 = 2660;
+ const static uint16 kGotsoundbuff = 4949;
+ const static uint16 kSearchdestdown = 2776;
+ const static uint16 kNotneartextend = 2660;
+ const static uint16 kHelispeed = 1105;
+ const static uint16 kQuickquit = 3861;
+ const static uint16 kAfterlook = 2660;
+ const static uint16 kNotwaiting = 1105;
+ const static uint16 kCheckmorerain = 1113;
+ const static uint16 kDontbother = 4945;
+ const static uint16 kAlreadyloadold = 4926;
+ const static uint16 kAlreadyopob = 2660;
+ const static uint16 kTestcom = 2776;
+ const static uint16 kNotinryaninv = 2494;
+ const static uint16 kLookx = 5862;
+ const static uint16 kLooky = 5862;
+ const static uint16 kDozoomonoff = 3693;
+ const static uint16 kNotyover2 = 5715;
+ const static uint16 kAfterslow = 2494;
+ const static uint16 kGotoverend2 = 2494;
+ const static uint16 kNotletgo = 2660;
+ const static uint16 kAlreadyget = 2660;
+ const static uint16 kHoteldoorwith2 = 3385;
+ const static uint16 kNoteden2 = 4949;
+ const static uint16 kNowinch = 3393;
+ const static uint16 kKeyloop = 2776;
+ const static uint16 kNocross = 5698;
+ const static uint16 kNotpersonname = 5691;
+ const static uint16 kFindexloop = 3393;
+ const static uint16 kNotlouis2 = 1105;
+ const static uint16 kNothelicopter = 3393;
+ const static uint16 kNotlouis1 = 1105;
+ const static uint16 kFacingok = 1105;
+ const static uint16 kNotrandom = 1214;
+ const static uint16 kGotoverend = 2494;
+ const static uint16 kNotgunonheli = 1105;
+ const static uint16 kNoslow = 2494;
+ const static uint16 kFinishmon2 = 2494;
+ const static uint16 kFinishsparky = 1105;
+ const static uint16 kNotselob = 3393;
+ const static uint16 kSkipsprite = 1105;
+ const static uint16 kFinishconv = 2692;
+ const static uint16 kIsinright = 5691;
+ const static uint16 kWidth45 = 1819;
+ const static uint16 kHavecutwire = 3393;
+ const static uint16 kFinfree = 2660;
+ const static uint16 kWidth43 = 1819;
+ const static uint16 kHolewith = 3385;
+ const static uint16 kNodistort = 4949;
+ const static uint16 kBackwards = 3651;
+ const static uint16 kNotasetid = 5073;
+ const static uint16 kNotholdingreel = 4949;
+ const static uint16 kAlreadygotnew = 3385;
+ const static uint16 kFlashcurs = 2895;
+ const static uint16 kCantuseopen = 2660;
+ const static uint16 kHoteldoorwith = 3385;
+ const static uint16 kIsloadmode = 3861;
+ const static uint16 kNot129 = 2494;
+ const static uint16 kNobotright = 3651;
+ const static uint16 kMemerror = 4949;
+ const static uint16 kBlankframe = 2660;
+ const static uint16 kOpendoor = 1214;
+ const static uint16 kNotbang = 1105;
+ const static uint16 kFadecolloop = 2494;
+ const static uint16 kNotlouisvol = 5073;
+ const static uint16 kBotok = 4949;
+ const static uint16 kNextcart = 3385;
+ const static uint16 kFillcup = 3385;
+ const static uint16 kNotopenable = 2660;
+ const static uint16 kWireaxe = 3393;
+ const static uint16 kNotinsidethis = 2660;
+ const static uint16 kAtlast2 = 1214;
+ const static uint16 kAtlast3 = 1214;
+ const static uint16 kAtlast1 = 1214;
+ const static uint16 kHoldingreel = 5691;
+ const static uint16 kFindopen2 = 2494;
+ const static uint16 kFindopen1 = 2494;
+ const static uint16 kEndsetloop = 3393;
+ const static uint16 kGotcart = 2776;
+ const static uint16 kNot10 = 3525;
+ const static uint16 kLookforlinestart = 1214;
+ const static uint16 kCanpick2a = 2660;
+ const static uint16 kAlreadyonoff = 3693;
+ const static uint16 kNotsarters = 3393;
+ const static uint16 kDogetback = 2660;
+ const static uint16 kNotthrough2 = 1214;
+ const static uint16 kNotprintlist = 1819;
+ const static uint16 kNotwrapbackb = 3651;
+ const static uint16 kNoadvisor = 1105;
+ const static uint16 kWidth30 = 1819;
+ const static uint16 kNotleadingspace = 2776;
+ const static uint16 kMoney1poke = 3385;
+ const static uint16 kFinishwatch = 4949;
+ const static uint16 kQuittravel = 2714;
+ const static uint16 kDontgetrid = 5862;
+ const static uint16 kVolfinish = 4949;
+ const static uint16 kDograf = 3385;
+ const static uint16 kDograb = 2660;
+ const static uint16 kWidth58 = 1819;
+ const static uint16 kWidth59 = 1819;
+ const static uint16 kEnoughmem = 4949;
+ const static uint16 kWidth54 = 1819;
+ const static uint16 kMainloop = 4949;
+ const static uint16 kWidth56 = 1819;
+ const static uint16 kShowgroup1 = 2494;
+ const static uint16 kWidth50 = 1819;
+ const static uint16 kWidth51 = 1819;
+ const static uint16 kWidth52 = 1819;
+ const static uint16 kWidth53 = 1819;
+ const static uint16 kOver148 = 2660;
+ const static uint16 kWord4 = 4949;
+ const static uint16 kNottalk1 = 1105;
+ const static uint16 kWord1 = 4949;
+ const static uint16 kWord3 = 4949;
+ const static uint16 kWord2 = 4949;
+ const static uint16 kPriestwait = 1105;
+ const static uint16 kKeepchecking = 2660;
+ const static uint16 kOver146 = 2660;
+ const static uint16 kOver147 = 2660;
+ const static uint16 kAlreadyopinv = 2660;
+ const static uint16 kIsntblock = 5674;
+ const static uint16 kKeyok2 = 2895;
+ const static uint16 kKeyok1 = 2895;
+ const static uint16 kFinishtalk = 2660;
+ const static uint16 kNumberright = 3393;
+ const static uint16 kFindryanloop = 2494;
+ const static uint16 kAlreadyfull = 3385;
+ const static uint16 kNotchangeloc = 1711;
+ const static uint16 kNotweb = 5073;
+ const static uint16 kNotendseq = 1105;
+ const static uint16 kSecdes = 1105;
+ const static uint16 kComparefin = 3393;
+ const static uint16 kAlreadygrb = 2660;
+ const static uint16 kNoshoe1 = 1113;
+ const static uint16 kFinishdim4 = 2660;
+ const static uint16 kRestartlook = 2895;
+ const static uint16 kFinishdim1 = 2660;
+ const static uint16 kFinishdim3 = 2660;
+ const static uint16 kFinishdim2 = 2660;
+ const static uint16 kNotnomask = 1819;
+ const static uint16 kNorun = 5073;
+ const static uint16 kNotryanon = 1711;
+ const static uint16 kFinishmain = 4949;
+ const static uint16 kFinishfade = 2494;
+ const static uint16 kNopitflip = 4949;
+ const static uint16 kStereook2 = 3393;
+ const static uint16 kGreysumloop1 = 2494;
+ const static uint16 kGreysumloop2 = 2494;
+ const static uint16 kNotaftersec = 1105;
+ const static uint16 kNotinthelift = 4949;
+ const static uint16 kAdjustemmpage = 4945;
+ const static uint16 kNotendtext2 = 1105;
+ const static uint16 kNotendtext3 = 1105;
+ const static uint16 kNotendtext1 = 1105;
+ const static uint16 kNospeech1 = 2692;
+ const static uint16 kSlabfwrong = 3385;
+ const static uint16 kNotdumpdiary = 3693;
+ const static uint16 kNokeypress = 3861;
+ const static uint16 kFindten = 4945;
+ const static uint16 kBuscombatend = 1105;
+ const static uint16 kIstakengun = 3393;
+ const static uint16 kFindopenp1 = 2660;
+ const static uint16 kNotstartshake = 4949;
+ const static uint16 kNoloccheck = 2494;
+ const static uint16 kJustret = 3693;
+ const static uint16 kAlreadyturned = 1105;
+ const static uint16 kNothunder = 1214;
+ const static uint16 kNotmonktext5 = 1105;
+ const static uint16 kNotmonktext4 = 1105;
+ const static uint16 kNotmonktext7 = 1105;
+ const static uint16 kNotmonktext6 = 1105;
+ const static uint16 kNotmonktext1 = 1105;
+ const static uint16 kNotmonktext3 = 1105;
+ const static uint16 kNotmonktext2 = 1105;
+ const static uint16 kGotcandles = 1105;
+ const static uint16 kNotmonktext9 = 1105;
+ const static uint16 kNotmonktext8 = 1105;
+ const static uint16 kSatdown = 3385;
+ const static uint16 kSlabwith = 3385;
+ const static uint16 kIntromonk1fin = 1105;
+ const static uint16 kContrightpage = 3589;
+ const static uint16 kCantwalk2 = 5691;
+ const static uint16 kDeltimedtext = 3393;
+ const static uint16 kEndcredits22 = 2494;
+ const static uint16 kBackwardsbot = 3651;
+ const static uint16 kNot130 = 2494;
+ const static uint16 kFinished = 5073;
+ const static uint16 kAlreadyswap2 = 2660;
+ const static uint16 kEndall = 2494;
+ const static uint16 kMoreinput = 2776;
+ const static uint16 kFinishinitrain = 1113;
+ const static uint16 kNotsecondbank1 = 4949;
+ const static uint16 kDimloop4 = 2660;
+ const static uint16 kDontwalkin = 5862;
+ const static uint16 kReelsoundloop = 1214;
+ const static uint16 kDimloop1 = 2660;
+ const static uint16 kDimloop2 = 2660;
+ const static uint16 kDimloop3 = 2660;
+ const static uint16 kNotinpool = 3393;
+ const static uint16 kIskern = 2494;
+ const static uint16 kEyesshut = 5691;
+ const static uint16 kDoload = 3735;
+ const static uint16 kCantzoom = 1819;
+ const static uint16 kToplot = 4949;
+ const static uint16 kNotfirsttrigger = 2895;
+ const static uint16 kMenuloop = 3525;
+ const static uint16 kNotmapdownspec = 1711;
+ const static uint16 kUptime = 4949;
+ const static uint16 kFindopen2a = 2494;
+ const static uint16 kPathloop = 5073;
+ const static uint16 kCheckrain = 1113;
+ const static uint16 kNotyetboss = 3385;
+ const static uint16 kNoincryan = 2660;
+ const static uint16 kSpeechfilename = 4926;
+ const static uint16 kComlist = 2776;
+ const static uint16 kGotallboss = 1105;
+ const static uint16 kNottopchurch = 4949;
+ const static uint16 kBeenpickedup = 3393;
+ const static uint16 kNotintro3text1 = 1105;
+ const static uint16 kNopathon = 5073;
+ const static uint16 kOff = 2776;
+ const static uint16 kAlreadyuse = 2895;
+ const static uint16 kInvlist1 = 2556;
+ const static uint16 kObject = 3393;
+ const static uint16 kMorethan10 = 4949;
+ const static uint16 kMightbeonlych1 = 4949;
+ const static uint16 kMightbeonlych0 = 4949;
+ const static uint16 kPasserror = 2895;
+ const static uint16 kAlreadyloaded = 4949;
+ const static uint16 kNopriesttext = 1105;
+ const static uint16 kNotanup = 1113;
+ const static uint16 kEndmon = 2776;
+ const static uint16 kMoretopic = 2895;
+ const static uint16 kGatesfin = 1105;
+ const static uint16 kNokeyn = 3693;
+ const static uint16 kFinishcurdel = 2895;
+ const static uint16 kCheckpass = 2895;
+ const static uint16 kNotlift = 1214;
+ const static uint16 kWidth61 = 1819;
+ const static uint16 kWidth60 = 1819;
+ const static uint16 kNofind = 3393;
+ const static uint16 kWidth62 = 1819;
+ const static uint16 kNotsmallx2 = 5698;
+ const static uint16 kDos2 = 2494;
+ const static uint16 kDos3 = 2494;
+ const static uint16 kNocash = 3385;
+ const static uint16 kDos1 = 2494;
+ const static uint16 kNotendmonk2 = 1105;
+ const static uint16 kDiffmouse = 2660;
+ const static uint16 kNotinthebeach = 4949;
+ const static uint16 kPcxpal = 1711;
+ const static uint16 kCandlesfin = 1105;
+ const static uint16 kSuccess = 5691;
+ const static uint16 kGotvalidpath = 5073;
+ const static uint16 kTopokv = 4949;
+ const static uint16 kNotinpoolroom = 3393;
+ const static uint16 kGothand = 5698;
+ const static uint16 kCantuse2 = 2895;
+ const static uint16 kDiff = 5674;
+ const static uint16 kSearchinv = 3393;
+ const static uint16 kIsblock = 5674;
+ const static uint16 kJimmycontrols = 3393;
+ const static uint16 kItsfrominv = 5698;
+ const static uint16 kNotgeneralstart = 1105;
+ const static uint16 kMakeintoex = 2660;
+ const static uint16 kDoredes = 2714;
+ const static uint16 kLookforpurge = 2660;
+ const static uint16 kNochange2 = 1214;
+ const static uint16 kUpordown = 1214;
+ const static uint16 kDontbother5 = 4949;
+ const static uint16 kZoomloop = 1819;
+ const static uint16 kStillspace1 = 2895;
+ const static uint16 kHeliwon = 1105;
+ const static uint16 kGameinfo = 4375;
+ const static uint16 kNotalkrock = 1105;
+ const static uint16 kShownameloop = 3861;
+ const static uint16 kNotblankinp = 2776;
+ const static uint16 kJustshutting = 1214;
+ const static uint16 kNotwidedoor = 1214;
+ const static uint16 kNotdiffob = 5674;
+ const static uint16 kNotthrough = 1214;
+ const static uint16 kExamineagain = 2494;
+ const static uint16 kVertline = 5691;
+ const static uint16 kRestartops = 3693;
+ const static uint16 kNotsmallx = 5698;
+ const static uint16 kNotwatchpoint = 5698;
+ const static uint16 kNotflippedx = 1819;
+ const static uint16 kBotokv = 4949;
+ const static uint16 kSmallcandlef = 1105;
+ const static uint16 kGotcandles2 = 1105;
+ const static uint16 kFinblink1 = 5691;
+ const static uint16 kNotinthisroom = 1214;
+ const static uint16 kNospeech = 2660;
+ const static uint16 kSlabcwrong = 3385;
+ const static uint16 kPokelift = 1214;
+ const static uint16 kLoadops = 3735;
+ const static uint16 kNotextraname = 5691;
+ const static uint16 kCantredes = 2714;
+ const static uint16 kOnelot = 1105;
+ const static uint16 kDeloneloop = 1819;
+ const static uint16 kDodrop = 2660;
+ const static uint16 kDoplace2 = 2660;
+ const static uint16 kNopath = 3393;
+ const static uint16 kBotofdoor2 = 1214;
+ const static uint16 kNotnewlogo = 2895;
+ const static uint16 kIsntsame2 = 2660;
+ const static uint16 kNotfadedown = 1105;
+ const static uint16 kNot173 = 2494;
+ const static uint16 kTopwrap = 3651;
+ const static uint16 kCannextf = 3589;
+ const static uint16 kCartwith = 3385;
+ const static uint16 kGotintro3text = 1105;
+ const static uint16 kAlreadybotr = 3651;
+ const static uint16 kMainlist2 = 5011;
+ const static uint16 kNotrainyet = 1105;
+ const static uint16 kNotsecondtrigger = 2895;
+ const static uint16 kNotravmessage = 1113;
+ const static uint16 kNotunsized = 2660;
+ const static uint16 kGameragain = 1105;
+
+
}
#endif
Commit: b76035db6696a0afb4cb0521c6c16a28878c3ff1
https://github.com/scummvm/scummvm/commit/b76035db6696a0afb4cb0521c6c16a28878c3ff1
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:00-07:00
Commit Message:
DREAMWEB: put data offsets, not labels into public
Changed paths:
devtools/tasmrecover/tasm/cpp.py
devtools/tasmrecover/tasm/parser.py
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index fe7f3ff..a8d2253 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -523,8 +523,14 @@ namespace %s {
self.hd.write("\tvoid %s(Context &context);\n" %f)
offsets_decl = "\n"
- for k,v in self.context.get_offsets().items():
- offsets_decl += "\tconst static uint16 k%s = %d;\n" %(k.capitalize(), v[0])
+ offsets = []
+ for k, v in self.context.get_globals().items():
+ if isinstance(v, op.var):
+ offsets.append((k.capitalize(), v.offset))
+
+ offsets = sorted(offsets, key=lambda t: t[1])
+ for o in offsets:
+ offsets_decl += "\tconst static uint16 k%s = %d;\n" %o
offsets_decl += "\n"
self.hd.write(offsets_decl);
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index 6342a17..3eb553f 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -48,6 +48,9 @@ class parser:
name = name.lower()
return self.__globals[name]
+ def get_globals(self):
+ return self.__globals
+
def has_global(self, name):
name = name.lower()
return self.__globals.has_key(name)
@@ -65,9 +68,6 @@ class parser:
name = name.lower()
return self.__offsets[name]
- def get_offsets(self):
- return self.__offsets
-
def include(self, basedir, fname):
path = fname.split('\\')[self.strip_path:]
path = os.path.join(basedir, os.path.pathsep.join(path))
Commit: d9e4fb5d0e2b0239478d9d7030ddd1150707cd68
https://github.com/scummvm/scummvm/commit/d9e4fb5d0e2b0239478d9d7030ddd1150707cd68
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:04-07:00
Commit Message:
DREAMWEB: regenerated code
Changed paths:
engines/dreamweb/dreamgen.h
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index c345134..c82d9f8 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -67,1526 +67,480 @@ namespace dreamgen {
void readoneblock(Context &context);
void showpcx(Context &context);
- const static uint16 kWaitabit = 1105;
- const static uint16 kShuffletextads = 2660;
- const static uint16 kCanopenpool = 3385;
- const static uint16 kGottrainframe = 1105;
- const static uint16 kInteruptworked = 4949;
- const static uint16 kIsmorereel2 = 4949;
- const static uint16 kCannotuseopen = 2660;
- const static uint16 kNotret = 3861;
- const static uint16 kNextmonkspeak = 2494;
- const static uint16 kNothoteldoor1 = 1214;
- const static uint16 kNothoteldoor2 = 1214;
- const static uint16 kWearingshades = 3385;
- const static uint16 kKillryan = 1105;
- const static uint16 kSameline = 1711;
- const static uint16 kNotuseinv = 2494;
- const static uint16 kDoneit = 4949;
- const static uint16 kNotunderchurch = 4949;
- const static uint16 kNowatch = 4949;
- const static uint16 kBlankex = 2660;
- const static uint16 kOberase = 2660;
- const static uint16 kNowornerror = 2660;
- const static uint16 kNotdes2 = 1105;
- const static uint16 kAlreadyactload = 3861;
- const static uint16 kNotrightcont = 3385;
- const static uint16 kNotch0only = 4949;
- const static uint16 kNotwatchpath = 4949;
- const static uint16 kEdensdhere = 3385;
- const static uint16 kUnscrewplate = 3393;
- const static uint16 kGotmonkryan = 1105;
- const static uint16 kFindopen1a = 2494;
- const static uint16 kSearchmess = 5691;
- const static uint16 kNotworn = 2494;
- const static uint16 kError6patch = 4261;
- const static uint16 kNextcheck = 5691;
- const static uint16 kPlayingalready = 5073;
- const static uint16 kStereonotok = 3393;
- const static uint16 kSearchagain = 2660;
- const static uint16 kNotnewdirect = 1113;
- const static uint16 kEarlyendrun = 2494;
- const static uint16 kWidth18 = 1819;
- const static uint16 kNotbeforehdead = 1105;
- const static uint16 kNotheldtrainer = 3385;
- const static uint16 kAfterprintname = 3861;
- const static uint16 kIncdir = 1113;
- const static uint16 kError1 = 3861;
- const static uint16 kError2 = 3861;
- const static uint16 kError3 = 3861;
- const static uint16 kError4 = 3861;
- const static uint16 kError5 = 3861;
- const static uint16 kError6 = 3861;
- const static uint16 kError7 = 3861;
- const static uint16 kError8 = 3861;
- const static uint16 kNotendcard = 1105;
- const static uint16 kNotneg2 = 5691;
- const static uint16 kCantpick = 2660;
- const static uint16 kNodown = 2494;
- const static uint16 kNotaxeonpool = 1105;
- const static uint16 kIsbaseadd = 4949;
- const static uint16 kShuffleadsdown = 2660;
- const static uint16 kFindtopictext = 2895;
- const static uint16 kFinishevery2 = 1711;
- const static uint16 kCheckuselist = 2895;
- const static uint16 kFinishevery1 = 1711;
- const static uint16 kBigroom = 1711;
- const static uint16 kAlreadyplce = 2660;
- const static uint16 kMenuframeok = 3547;
- const static uint16 kNotdelhotel = 2776;
- const static uint16 kAlreadydu = 2776;
- const static uint16 kGotintro1text = 1105;
- const static uint16 kNotnewintro = 5674;
- const static uint16 kRootdir = 2885;
- const static uint16 kDorain = 1113;
- const static uint16 kAlreadydd = 2776;
- const static uint16 kNotblast = 4949;
- const static uint16 kNorex = 2494;
- const static uint16 kNosetloop = 4949;
- const static uint16 kMonmessageloop = 2895;
- const static uint16 kAlreadyplc2 = 2660;
- const static uint16 kNotarrow = 5698;
- const static uint16 kUpdateloop = 1214;
- const static uint16 kIdentifyex = 5073;
- const static uint16 kSeencard = 2660;
- const static uint16 kAlreadygetops = 3777;
- const static uint16 kNotenter = 3525;
- const static uint16 kRainloop = 1214;
- const static uint16 kNotplot = 1214;
- const static uint16 kIdentifyreel = 5073;
- const static uint16 kStillline = 1113;
- const static uint16 kSetallloop = 3393;
- const static uint16 kDiscopslist = 3777;
- const static uint16 kBacktosolid = 1819;
- const static uint16 kNotloc43 = 4949;
- const static uint16 kTapwith = 3385;
- const static uint16 kFinishrain = 1214;
- const static uint16 kNotgunonpool = 1105;
- const static uint16 kNotsmally2 = 5698;
- const static uint16 kBotlotv = 4949;
- const static uint16 kNotendkey = 3393;
- const static uint16 kAlreadyblnk = 5698;
- const static uint16 kPasspassed = 2895;
- const static uint16 kMoreintroseq = 2494;
- const static uint16 kNotplset = 1711;
- const static uint16 kPathoktv = 3393;
- const static uint16 kIsex = 2660;
- const static uint16 kLineexit = 5691;
- const static uint16 kNotupperc = 2776;
- const static uint16 kGotsoldframe = 1105;
- const static uint16 kDonextf = 3589;
- const static uint16 kNomorethan6 = 5691;
- const static uint16 kTendstohoriz = 5691;
- const static uint16 kTwolotsleft = 3589;
- const static uint16 kCanmore = 2692;
- const static uint16 kArrow = 5698;
- const static uint16 kHigher = 1113;
- const static uint16 kAtmospherelist = 5073;
- const static uint16 kHundredsc = 4945;
- const static uint16 kNotbeforedead = 1105;
- const static uint16 kNofindininv = 3393;
- const static uint16 kFinmonscroll = 1711;
- const static uint16 kFindinv2 = 2660;
- const static uint16 kFindinv1 = 2660;
- const static uint16 kNotsparkys = 4949;
- const static uint16 kSpacepress = 3861;
- const static uint16 kWaitstep = 1105;
- const static uint16 kNofill = 1819;
- const static uint16 kFolderlist = 3547;
- const static uint16 kNoleftpage = 3589;
- const static uint16 kFoundcharacter = 3861;
- const static uint16 kHangonloop = 5862;
- const static uint16 kTopleft = 5691;
- const static uint16 kGetscash = 3385;
- const static uint16 kNotlastraise = 1105;
- const static uint16 kNumberpoke3 = 3393;
- const static uint16 kNumberpoke2 = 3393;
- const static uint16 kNumberpoke1 = 3393;
- const static uint16 kNumberpoke0 = 3393;
- const static uint16 kNotsparky1 = 1105;
- const static uint16 kAlreadygrab = 2660;
- const static uint16 kNotsamealready = 5691;
- const static uint16 kInitrainside = 1113;
- const static uint16 kShutdoor = 1214;
- const static uint16 kOktalk2 = 1105;
- const static uint16 kNotmonkryan = 1105;
- const static uint16 kNotendcreds = 1105;
- const static uint16 kNotworntoopen = 2660;
- const static uint16 kNotsmokeb2 = 1105;
- const static uint16 kNotsmokeb1 = 1105;
- const static uint16 kAlreadyexinv = 2660;
- const static uint16 kShowwatchreel = 4949;
- const static uint16 kNoshow = 1105;
- const static uint16 kRandomlouis = 1105;
- const static uint16 kNotnexttalk = 2660;
- const static uint16 kSteadyframe = 1105;
- const static uint16 kDiarylist = 3651;
- const static uint16 kNotlouisanim = 1105;
- const static uint16 kNotonbalc = 3385;
- const static uint16 kNotout2 = 2660;
- const static uint16 kClosedfolder = 3589;
- const static uint16 kNomadtext = 1105;
- const static uint16 kCorrectcard = 3385;
- const static uint16 kTalking = 1105;
- const static uint16 kExframe = 2660;
- const static uint16 kFoundfile2 = 2895;
- const static uint16 kNotover32 = 5691;
- const static uint16 kAlreadywalking = 5691;
- const static uint16 kCansaveok = 3819;
- const static uint16 kWatchison = 5691;
- const static uint16 kKernit = 2494;
- const static uint16 kNotinlouiss = 3393;
- const static uint16 kOver1001 = 1105;
- const static uint16 kOver1000 = 1105;
- const static uint16 kFillcupfromtap = 3385;
- const static uint16 kOpenlift = 1214;
- const static uint16 kMakeswapex = 2660;
- const static uint16 kAlreadyinfo = 2776;
- const static uint16 kGotlighterwith = 3385;
- const static uint16 kNowristwatch = 5691;
- const static uint16 kNotfirstmad = 1105;
- const static uint16 kCurfileloop = 2895;
- const static uint16 kGameerror1 = 3861;
- const static uint16 kGotcopframe = 1105;
- const static uint16 kAlreadykeyp = 3693;
- const static uint16 kDob = 3525;
- const static uint16 kNotdiffdest = 1819;
- const static uint16 kNotremset = 1711;
- const static uint16 kDumpallloop = 1711;
- const static uint16 kNextcheck2 = 5691;
- const static uint16 kAlreadykeyn = 3693;
- const static uint16 kEndwatchtalk = 2692;
- const static uint16 kNottalked = 1105;
- const static uint16 kNotsetd = 2660;
- const static uint16 kSkipreelsound = 1214;
- const static uint16 kNotspokento = 1105;
- const static uint16 kEndofenvironment = 4949;
- const static uint16 kEndofgame = 4949;
- const static uint16 kNoselslot2 = 3861;
- const static uint16 kScanloop = 4884;
- const static uint16 kNotskip1 = 1711;
- const static uint16 kKeybuffer = 5715;
- const static uint16 kNotendcopper = 1105;
- const static uint16 kFrameloopfx1 = 1819;
- const static uint16 kFrameloopfx3 = 1819;
- const static uint16 kFrameloopfx2 = 1819;
- const static uint16 kNotpressed = 5698;
- const static uint16 kNotmonk2text8 = 1105;
- const static uint16 kNotmonk2text9 = 1105;
- const static uint16 kNotmonk2text2 = 1105;
- const static uint16 kNotmonk2text3 = 1105;
- const static uint16 kNotmonk2text1 = 1105;
- const static uint16 kNotmonk2text6 = 1105;
- const static uint16 kNotmonk2text7 = 1105;
- const static uint16 kNotmonk2text4 = 1105;
- const static uint16 kNotmonk2text5 = 1105;
- const static uint16 kNot164 = 2494;
- const static uint16 kNot165 = 2494;
- const static uint16 kNot160 = 2494;
- const static uint16 kNot161 = 2494;
- const static uint16 kNot162 = 2494;
- const static uint16 kNot163 = 2494;
- const static uint16 kNot168 = 2494;
- const static uint16 kNocopper = 1105;
- const static uint16 kCantdrip = 1105;
- const static uint16 kFlashdots = 4949;
- const static uint16 kTopfinished = 3651;
- const static uint16 kOktalk = 1105;
- const static uint16 kNonefound = 5073;
- const static uint16 kNofindingtopic = 2895;
- const static uint16 kGotgraphic = 2776;
- const static uint16 kOnelot2 = 2494;
- const static uint16 kFirstdes = 1105;
- const static uint16 kWordloop = 2494;
- const static uint16 kBotlot = 4949;
- const static uint16 kDonterase = 2660;
- const static uint16 kAtlast4 = 1214;
- const static uint16 kEndofcolon = 2660;
- const static uint16 kNotcentre = 2494;
- const static uint16 kDontbother28 = 4949;
- const static uint16 kNomadspeed = 1105;
- const static uint16 kCanselectob = 3393;
- const static uint16 kNotgunonrock = 1105;
- const static uint16 kPath = 3393;
- const static uint16 kNomorefading = 2494;
- const static uint16 kAlreadydiscops = 3777;
- const static uint16 kWidth80 = 1819;
- const static uint16 kNotsartadd = 3693;
- const static uint16 kRyanloop1 = 2494;
- const static uint16 kRyanloop2 = 2494;
- const static uint16 kLoop120 = 1819;
- const static uint16 kLoop127 = 2660;
- const static uint16 kLoop124 = 1819;
- const static uint16 kLoop125 = 1819;
- const static uint16 kLessthanapage = 2494;
- const static uint16 kMoreloadspeech = 4926;
- const static uint16 kCupfromtapfull = 3385;
- const static uint16 kCombatover1 = 1105;
- const static uint16 kCombatover2 = 1105;
- const static uint16 kFlunkedit = 5073;
- const static uint16 kCutgate = 3393;
- const static uint16 kNotlastf = 3589;
- const static uint16 kDoswap1 = 2660;
- const static uint16 kDoswap2 = 2660;
- const static uint16 kNotdes1 = 1105;
- const static uint16 kBuscombatwonend = 1105;
- const static uint16 kAddloop = 2660;
- const static uint16 kWidth10 = 1819;
- const static uint16 kWidth11 = 1819;
- const static uint16 kWidth12 = 1819;
- const static uint16 kWidth13 = 1819;
- const static uint16 kWidth14 = 1819;
- const static uint16 kWidth15 = 1819;
- const static uint16 kWidth16 = 1819;
- const static uint16 kWidth17 = 1819;
- const static uint16 kWaitstopwalk = 4949;
- const static uint16 kWidth19 = 1819;
- const static uint16 kNonoise = 3525;
- const static uint16 kSlabdwrong = 3385;
- const static uint16 kUselist = 2895;
- const static uint16 kMovealtar = 3385;
- const static uint16 kQuickquit2 = 3861;
- const static uint16 kFoundlen = 4884;
- const static uint16 kOperand1 = 2883;
- const static uint16 kMake = 5691;
- const static uint16 kFinishidentify = 5073;
- const static uint16 kNotlouiscard = 2660;
- const static uint16 kIswalking = 5674;
- const static uint16 kIsntcolon = 2660;
- const static uint16 kZoomit = 1819;
- const static uint16 kFoundnews = 2776;
- const static uint16 kSlabbwrong = 3385;
- const static uint16 kSlotloop = 3861;
- const static uint16 kNotsarters2 = 4949;
- const static uint16 kNotneg1 = 5691;
- const static uint16 kDoopeninv = 2660;
- const static uint16 kFoodinside = 3393;
- const static uint16 kClearedlocations = 2776;
- const static uint16 kNomore = 2692;
- const static uint16 kAlreadyusedit = 3385;
- const static uint16 kRetryreel = 1214;
- const static uint16 kTalklist = 2660;
- const static uint16 kNotexist = 4884;
- const static uint16 kRockcombatend = 1105;
- const static uint16 kWidth57 = 1819;
- const static uint16 kPrtspriteloop = 1105;
- const static uint16 kOpenboxwith = 3385;
- const static uint16 kNotloop = 4949;
- const static uint16 kNotinalley = 3393;
- const static uint16 kPrintloopslow6 = 2494;
- const static uint16 kPrintloopslow5 = 2494;
- const static uint16 kNextone = 4884;
- const static uint16 kExloop = 2660;
- const static uint16 kCantdrip2 = 1105;
- const static uint16 kSecondlot = 2776;
- const static uint16 kAlreadysel = 3861;
- const static uint16 kNotfreename = 5691;
- const static uint16 kNotover2 = 5073;
- const static uint16 kCanplace1 = 2660;
- const static uint16 kCanplace3 = 2660;
- const static uint16 kFinishmon = 2494;
- const static uint16 kDeleteconts = 2660;
- const static uint16 kLooknext2 = 2494;
- const static uint16 kNotwalk = 1105;
- const static uint16 kNotzeronum = 4949;
- const static uint16 kError8patch = 4370;
- const static uint16 kNodos = 3861;
- const static uint16 kIsedens = 4949;
- const static uint16 kNotlouisvol2 = 5073;
- const static uint16 kHeavywait = 1105;
- const static uint16 kPickupcontloop = 2660;
- const static uint16 kHavegotcard = 1113;
- const static uint16 kNotlastslab = 3385;
- const static uint16 kComloop2 = 2776;
- const static uint16 kSpeechfile = 4932;
- const static uint16 kFindlenextext = 2660;
- const static uint16 kSecurwait = 1105;
- const static uint16 kComloop = 2776;
- const static uint16 kNotboss = 1105;
- const static uint16 kLine23 = 5691;
- const static uint16 kDiscopsloop = 3777;
- const static uint16 kKeypadlist = 3393;
- const static uint16 kWearingwatch = 3385;
- const static uint16 kSoundfail = 4949;
- const static uint16 kHislope = 5691;
- const static uint16 kGeneralerror = 3861;
- const static uint16 kGotmonktext = 1105;
- const static uint16 kNovolumeload = 5862;
- const static uint16 kGotkeyn = 3693;
- const static uint16 kDiffsub3 = 3393;
- const static uint16 kGotlength = 2660;
- const static uint16 kAnimsparky = 1105;
- const static uint16 kNought = 1711;
- const static uint16 kNotendtitles = 1105;
- const static uint16 kIswatchingmode = 4949;
- const static uint16 kNotquickp = 1105;
- const static uint16 kNotwaitingheli = 1105;
- const static uint16 kNotright = 3385;
- const static uint16 kNolook = 2660;
- const static uint16 kAxeoncontrols = 3393;
- const static uint16 kFoundpersonal = 2776;
- const static uint16 kNotaristoadd = 3589;
- const static uint16 kFinishpars = 2895;
- const static uint16 kNotnearly = 1214;
- const static uint16 kSlabawrong = 3385;
- const static uint16 kAfterpress = 3393;
- const static uint16 kFinishedwalk = 1113;
- const static uint16 kGotnext2 = 2494;
- const static uint16 kNozoomonoff = 3693;
- const static uint16 kDdok = 2776;
- const static uint16 kLiftclosed = 1214;
- const static uint16 kNotmonktext11 = 1105;
- const static uint16 kNotafreeid = 5073;
- const static uint16 kEndreelsound = 1214;
- const static uint16 kNotendguard1 = 1105;
- const static uint16 kWidth29 = 1819;
- const static uint16 kWidth28 = 1819;
- const static uint16 kWidth25 = 1819;
- const static uint16 kWidth24 = 1819;
- const static uint16 kWidth27 = 1819;
- const static uint16 kWidth26 = 1819;
- const static uint16 kAlreadydos = 3861;
- const static uint16 kWidth20 = 1819;
- const static uint16 kWidth23 = 1819;
- const static uint16 kWidth22 = 1819;
- const static uint16 kNodd = 2776;
- const static uint16 kPipewith = 3385;
- const static uint16 kShutdoor2 = 1214;
- const static uint16 kGotdrinker = 1105;
- const static uint16 kDogrb = 2660;
- const static uint16 kNodu = 2776;
- const static uint16 kHangonloope = 2494;
- const static uint16 kShaketable = 1711;
- const static uint16 kAfterinfo = 2776;
- const static uint16 kCanredes = 2714;
- const static uint16 kNotbeforedeadb = 1105;
- const static uint16 kFinishshake = 1711;
- const static uint16 kNomake = 2660;
- const static uint16 kNotclear = 4949;
- const static uint16 kNotwithboss = 3393;
- const static uint16 kAlreadylastf = 3589;
- const static uint16 kConvertpcx = 1711;
- const static uint16 kFadedosloop = 2494;
- const static uint16 kMiddleofwalk = 5674;
- const static uint16 kFinflashmouse = 5698;
- const static uint16 kScrollmonloop1 = 1711;
- const static uint16 kMenulist = 3525;
- const static uint16 kScrollmonloop2 = 1711;
- const static uint16 kAlreadytrav = 2776;
- const static uint16 kNotfirstdest = 2776;
- const static uint16 kWidth55 = 1819;
- const static uint16 kNotendtelly = 1105;
- const static uint16 kNotch1endofpage1 = 4949;
- const static uint16 kNotedens2 = 3393;
- const static uint16 kBlimey = 5862;
- const static uint16 kNotxover = 5715;
- const static uint16 kGotconst = 1214;
- const static uint16 kContinuewalk = 1113;
- const static uint16 kLeftpageloop = 3589;
- const static uint16 kCantsetup = 3393;
- const static uint16 kNottrigger = 2494;
- const static uint16 kIsanextra = 2494;
- const static uint16 kNotonsartroof = 3393;
- const static uint16 kCombathand = 5698;
- const static uint16 kGotreader1with = 3385;
- const static uint16 kCanpick2 = 2660;
- const static uint16 kNodistortv = 4949;
- const static uint16 kCanpick4 = 2660;
- const static uint16 kSlowgates = 1105;
- const static uint16 kNotsetd2 = 2660;
- const static uint16 kNotnearframeend = 2660;
- const static uint16 kInsideloop = 3393;
- const static uint16 kCommandline = 5674;
- const static uint16 kEndofdir = 2895;
- const static uint16 kLouisvol = 5073;
- const static uint16 kNotdrinker1 = 1105;
- const static uint16 kGobackover = 3393;
- const static uint16 kIswatchinv = 2660;
- const static uint16 kHissnoise = 1214;
- const static uint16 kNodumptimed = 3393;
- const static uint16 kLoloop = 5691;
- const static uint16 kNotplfree = 1711;
- const static uint16 kLooky2 = 5862;
- const static uint16 kSetframe = 2660;
- const static uint16 kLine31 = 5691;
- const static uint16 kHalfend = 2494;
- const static uint16 kLine32 = 5691;
- const static uint16 kIsntspecial = 2660;
- const static uint16 kAlreadynextf = 3589;
- const static uint16 kBeforethisone = 2660;
- const static uint16 kRtofdoor = 1214;
- const static uint16 kGotkeyp = 3693;
- const static uint16 kNotinsartroom = 3393;
- const static uint16 kChosenaccess = 2776;
- const static uint16 kNofoundchange = 3393;
- const static uint16 kIstravel = 2714;
- const static uint16 kOddwidth2 = 1819;
- const static uint16 kOddwidth3 = 1819;
- const static uint16 kIswatchmad = 1105;
- const static uint16 kNomorereel = 4949;
- const static uint16 kDosparky = 1105;
- const static uint16 kCandle1 = 1105;
- const static uint16 kNextbit = 2494;
- const static uint16 kSizeok1 = 2660;
- const static uint16 kSizeok2 = 2660;
- const static uint16 kNoadd = 5674;
- const static uint16 kLookattail = 4949;
- const static uint16 kBacktootherfx = 1819;
- const static uint16 kIsautoloc = 2714;
- const static uint16 kFoundcom = 2776;
- const static uint16 kFreeobject = 3393;
- const static uint16 kWidth38 = 1819;
- const static uint16 kWidth39 = 1819;
- const static uint16 kWidth32 = 1819;
- const static uint16 kWidth33 = 1819;
- const static uint16 kNotendblock = 1711;
- const static uint16 kWidth31 = 1819;
- const static uint16 kWidth36 = 1819;
- const static uint16 kWidth37 = 1819;
- const static uint16 kWidth34 = 1819;
- const static uint16 kWidth35 = 1819;
- const static uint16 kNotwrapforb = 3651;
- const static uint16 kAlreadyload = 3735;
- const static uint16 kCantpurge = 2660;
- const static uint16 kHelicombatend = 1105;
- const static uint16 kEmptyinterface = 2776;
- const static uint16 kSymbolwrong = 3589;
- const static uint16 kNotlouis = 1113;
- const static uint16 kWaitops = 3693;
- const static uint16 kNotedensagain = 4949;
- const static uint16 kNotyetrecep = 3385;
- const static uint16 kInitrainside2 = 1113;
- const static uint16 kGotheliframe = 1105;
- const static uint16 kNevershown = 5698;
- const static uint16 kDodiscops = 3777;
- const static uint16 kNotlasttalk1 = 1105;
- const static uint16 kAlreadyreds = 2714;
- const static uint16 kNotext = 3393;
- const static uint16 kNodiscops = 3777;
- const static uint16 kGotrockframe = 1105;
- const static uint16 kNotloc15 = 4949;
- const static uint16 kWaittalk = 2660;
- const static uint16 kChannel0once = 1214;
- const static uint16 kEndline = 1711;
- const static uint16 kNomoreatmos = 5073;
- const static uint16 kDestoryopenbox = 3385;
- const static uint16 kNotsmally = 5698;
- const static uint16 kBotofdoor = 1214;
- const static uint16 kNotqk = 3525;
- const static uint16 kNotqs = 3651;
- const static uint16 kCantopinv = 2660;
- const static uint16 kWidth8 = 1819;
- const static uint16 kWidth9 = 1819;
- const static uint16 kWidth2 = 1819;
- const static uint16 kWidth3 = 1819;
- const static uint16 kWidth0 = 1819;
- const static uint16 kWidth1 = 1819;
- const static uint16 kWidth6 = 1819;
- const static uint16 kWidth7 = 1819;
- const static uint16 kWidth4 = 1819;
- const static uint16 kWidth5 = 1819;
- const static uint16 kAlreadybotl = 3651;
- const static uint16 kNotsetcard = 1105;
- const static uint16 kVolok = 4949;
- const static uint16 kAlreadysave = 3819;
- const static uint16 kGotwirewith = 3393;
- const static uint16 kBhloop2 = 1819;
- const static uint16 kBhloop1 = 1819;
- const static uint16 kHangonearly = 2494;
- const static uint16 kTakenloop = 2660;
- const static uint16 kGotmonks2text = 1105;
- const static uint16 kNotanimend1 = 1105;
- const static uint16 kNoopenob = 2660;
- const static uint16 kLookx2 = 5862;
- const static uint16 kFindsometext = 2660;
- const static uint16 kNotnextf = 3589;
- const static uint16 kGameerror8 = 4326;
- const static uint16 kNotdelboathouse = 2776;
- const static uint16 kGameerror6 = 4197;
- const static uint16 kGameerror7 = 4267;
- const static uint16 kGameerror4 = 4062;
- const static uint16 kGameerror5 = 4123;
- const static uint16 kGameerror2 = 3929;
- const static uint16 kGameerror3 = 4010;
- const static uint16 kNomatch = 2895;
- const static uint16 kVolloop = 4949;
- const static uint16 kPlatewith = 3393;
- const static uint16 kHiloop = 5691;
- const static uint16 kNodrop2 = 2660;
- const static uint16 kSkipoffsets = 1819;
- const static uint16 kRockspeed = 1105;
- const static uint16 kWantstowalk = 5674;
- const static uint16 kNotfirstpool = 1105;
- const static uint16 kNotlocky = 1214;
- const static uint16 kGotalong = 2660;
- const static uint16 kNoinfo = 2776;
- const static uint16 kToofaraway = 5674;
- const static uint16 kMoney2poke = 3390;
- const static uint16 kThousandsc = 4945;
- const static uint16 kNotb = 3525;
- const static uint16 kKeeplooking = 2895;
- const static uint16 kDontrestore = 5862;
- const static uint16 kNotlastspeed2 = 4949;
- const static uint16 kOver242 = 2660;
- const static uint16 kInitraintop = 1113;
- const static uint16 kError2patch = 3997;
- const static uint16 kNoplot = 1214;
- const static uint16 kNormal = 1711;
- const static uint16 kFinishslow = 2494;
- const static uint16 kMustgo = 4949;
- const static uint16 kLesscolour = 2494;
- const static uint16 kOpenboxwrong = 3385;
- const static uint16 kNotch1only = 4949;
- const static uint16 kClearboxwith = 3385;
- const static uint16 kEndoflist = 1214;
- const static uint16 kNotblock = 5674;
- const static uint16 kNotbothendofpage0 = 4949;
- const static uint16 kNotbothendofpage1 = 4949;
- const static uint16 kGotrecep = 1105;
- const static uint16 kNoreset = 5862;
- const static uint16 kKeypadloop = 3393;
- const static uint16 kPoolwith = 3385;
- const static uint16 kOddwidthframe = 1819;
- const static uint16 kGuardspeed = 1105;
- const static uint16 kNocountclose = 1214;
- const static uint16 kRightcard = 3385;
- const static uint16 kWireknife = 3393;
- const static uint16 kNouse = 2895;
- const static uint16 kNotdream3 = 2660;
- const static uint16 kDolastf = 3589;
- const static uint16 kDirectloop1 = 2895;
- const static uint16 kSlow = 4949;
- const static uint16 kAlreadynewgame = 4926;
- const static uint16 kLoop048 = 5073;
- const static uint16 kIntrom2fin = 1105;
- const static uint16 kDiaryloop = 3651;
- const static uint16 kRyansoff = 5073;
- const static uint16 kDoneover2 = 1105;
- const static uint16 kNotinroom = 2660;
- const static uint16 kIsaperson = 5674;
- const static uint16 kNotadown = 1113;
- const static uint16 kFoundchange = 3393;
- const static uint16 kNumloop1 = 4949;
- const static uint16 kNoaddg = 2494;
- const static uint16 kEndoftext = 2494;
- const static uint16 kNoaddb = 2494;
- const static uint16 kKeepgoing = 2494;
- const static uint16 kNotintro1text2 = 1105;
- const static uint16 kGotintromonk2 = 1105;
- const static uint16 kNoaddr = 2494;
- const static uint16 kGotintromonk1 = 1105;
- const static uint16 kAccesscom = 2776;
- const static uint16 kNotshieldonbus = 1105;
- const static uint16 kDontplace = 1711;
- const static uint16 kAlreadydrop = 2660;
- const static uint16 kLoadmode = 3861;
- const static uint16 kGotendseq = 1105;
- const static uint16 kNotverycool = 5691;
- const static uint16 kNorightpage = 3589;
- const static uint16 kChangeloop = 3393;
- const static uint16 kGotintro2text = 1105;
- const static uint16 kItsanobject = 5698;
- const static uint16 kGotquad = 5691;
- const static uint16 kNotsmoket1 = 1105;
- const static uint16 kNotsmoket2 = 1105;
- const static uint16 kAlreadymore = 2692;
- const static uint16 kFoundlineend = 1214;
- const static uint16 kHasloadedroom = 4884;
- const static uint16 kShowobsloop = 2660;
- const static uint16 kNogetback = 2660;
- const static uint16 kLooknext = 1105;
- const static uint16 kGotthere = 2494;
- const static uint16 kIsrightkey = 3385;
- const static uint16 kGameover = 4949;
- const static uint16 kRainlocations = 1113;
- const static uint16 kFolderloop = 3547;
- const static uint16 kNotactload = 3861;
- const static uint16 kBotfinished = 3651;
- const static uint16 kNotthisob = 2660;
- const static uint16 kSteadyob = 1214;
- const static uint16 kNoneedforemm = 4949;
- const static uint16 kDirroot = 2895;
- const static uint16 kSearchdestup = 2776;
- const static uint16 kUsedpriority = 2660;
- const static uint16 kFinishedsetobs = 2660;
- const static uint16 kNotlouisthund = 1214;
- const static uint16 kNotmapupspec = 1711;
- const static uint16 kGotkey = 3525;
- const static uint16 kNotraisearm = 1105;
- const static uint16 kFoundmatch = 2660;
- const static uint16 kRightkey = 3393;
- const static uint16 kEndoftopic = 2895;
- const static uint16 kBotwrap = 3651;
- const static uint16 kSame = 5862;
- const static uint16 kNotwrapback = 3651;
- const static uint16 kCantswap1 = 2660;
- const static uint16 kCantswap2 = 2660;
- const static uint16 kTryagain = 2660;
- const static uint16 kNotnewpath = 5674;
- const static uint16 kTvdoorwith = 3385;
- const static uint16 kFinishearly = 4949;
- const static uint16 kCantpurge2 = 2660;
- const static uint16 kGetloop = 2494;
- const static uint16 kLine12 = 5691;
- const static uint16 kRestartlouis = 1105;
- const static uint16 kAlreadyactsave = 3861;
- const static uint16 kNotaleft = 1113;
- const static uint16 kNobark = 1105;
- const static uint16 kTopok = 4949;
- const static uint16 kQuitconv = 2692;
- const static uint16 kFacelist = 1105;
- const static uint16 kNomadspeak = 1105;
- const static uint16 kSymbolloop = 3589;
- const static uint16 kEmmerror1 = 4949;
- const static uint16 kEmmerror2 = 4945;
- const static uint16 kNoload = 3735;
- const static uint16 kNowatchworn = 4949;
- const static uint16 kWithlist1 = 2618;
- const static uint16 kNotaide = 3393;
- const static uint16 kNotinhere = 2660;
- const static uint16 kNotnew = 5073;
- const static uint16 kDestlist = 2714;
- const static uint16 kNocountopen = 1214;
- const static uint16 kNextatmos = 5073;
- const static uint16 kNokern = 2494;
- const static uint16 kAnimating = 2660;
- const static uint16 kNomorekeys = 3525;
- const static uint16 kWaitinit = 4945;
- const static uint16 kGotdoorwith = 3393;
- const static uint16 kBeforethistext = 2660;
- const static uint16 kNotyetassigned = 2895;
- const static uint16 kDifffound = 5698;
- const static uint16 kNotfoundinside = 3393;
- const static uint16 kFpathloop = 5073;
- const static uint16 kNottrigger2 = 2494;
- const static uint16 kNotdoor = 1214;
- const static uint16 kFinishback = 1214;
- const static uint16 kLookforpurge2 = 2660;
- const static uint16 kNotnegative2 = 1105;
- const static uint16 kNotgotgun = 1105;
- const static uint16 kNotnegative1 = 1105;
- const static uint16 kGotreader2with = 3385;
- const static uint16 kSavelist = 3819;
- const static uint16 kMousehand = 5698;
- const static uint16 kFindnewpage = 2660;
- const static uint16 kNotspeed = 1105;
- const static uint16 kFinishmakename = 5691;
- const static uint16 kNotlock = 2895;
- const static uint16 kNormalreel = 1214;
- const static uint16 kFoundsign = 2895;
- const static uint16 kGotnext = 1105;
- const static uint16 kNofog = 1105;
- const static uint16 kNopresses = 3393;
- const static uint16 kComplete = 2895;
- const static uint16 kSizewrong = 2660;
- const static uint16 kAlreadytopl = 3651;
- const static uint16 kNoneedtorecon = 1711;
- const static uint16 kGatewith = 3393;
- const static uint16 kPrintloop7 = 2494;
- const static uint16 kPrintloop6 = 2494;
- const static uint16 kPrintloop5 = 2494;
- const static uint16 kNullframe = 2660;
- const static uint16 kNotcrystal = 4949;
- const static uint16 kAlreadytopr = 3651;
- const static uint16 kPrintloop8 = 2494;
- const static uint16 kNotinthisone = 2776;
- const static uint16 kNotblankshow = 1819;
- const static uint16 kNoshoe2 = 1113;
- const static uint16 kDspready = 4945;
- const static uint16 kToplotv = 4949;
- const static uint16 kIdentifyfree = 5073;
- const static uint16 kSignonloop = 2895;
- const static uint16 kEndcredits21 = 2494;
- const static uint16 kDescribe = 2660;
- const static uint16 kNotinnewroom = 1105;
- const static uint16 kPathokboss = 3393;
- const static uint16 kOpendoor2 = 1214;
- const static uint16 kJustcancel = 4945;
- const static uint16 kOpenchangesize = 2588;
- const static uint16 kIncorrect = 3393;
- const static uint16 kZeroblock = 1819;
- const static uint16 kFindsetloop = 3393;
- const static uint16 kNotxover2 = 5715;
- const static uint16 kNotsecondbank = 4949;
- const static uint16 kNextline = 1819;
- const static uint16 kNotheldob = 2660;
- const static uint16 kGotfirst = 5073;
- const static uint16 kPowerok = 2895;
- const static uint16 kCheckdestloop = 5691;
- const static uint16 kMadmanspoken = 1105;
- const static uint16 kTensc = 4945;
- const static uint16 kDosave = 3819;
- const static uint16 kDirectory = 2776;
- const static uint16 kKeyontv = 3385;
- const static uint16 kDoselob = 3393;
- const static uint16 kDuok = 2776;
- const static uint16 kChangelight = 3525;
- const static uint16 kIsinleft = 5691;
- const static uint16 kIsdream1 = 5691;
- const static uint16 kDodecisions = 4949;
- const static uint16 kNotlockdoor = 1214;
- const static uint16 kNotinlift = 2660;
- const static uint16 kNotplayingreel = 4949;
- const static uint16 kNodumpwatch = 4949;
- const static uint16 kTrampgone = 1105;
- const static uint16 kObnotexist = 2660;
- const static uint16 kNodumptextline = 5698;
- const static uint16 kTwolotsright = 3589;
- const static uint16 kCantopenit = 2660;
- const static uint16 kCantwalk = 5691;
- const static uint16 kCdinside = 3393;
- const static uint16 kMakedoorsopen = 4949;
- const static uint16 kPowerloop = 2776;
- const static uint16 kNotanexid = 5073;
- const static uint16 kNotcent2 = 2494;
- const static uint16 kOpenbox = 3385;
- const static uint16 kNotwatching = 4949;
- const static uint16 kNosetpick = 2660;
- const static uint16 kPlaceit = 1711;
- const static uint16 kNotwatchinv = 2660;
- const static uint16 kDiff2 = 5674;
- const static uint16 kEndupdate = 1214;
- const static uint16 kNotendcandle1 = 1105;
- const static uint16 kFlipfolder = 3589;
- const static uint16 kNokeyatall = 3693;
- const static uint16 kGotlight = 3525;
- const static uint16 kAlreadyqs = 3651;
- const static uint16 kDifsub8 = 2660;
- const static uint16 kWidth88 = 1819;
- const static uint16 kAlreadyqk = 3525;
- const static uint16 kCanpick = 2660;
- const static uint16 kDifsub1 = 2660;
- const static uint16 kDifsub2 = 2660;
- const static uint16 kDifsub3 = 2660;
- const static uint16 kDifsub4 = 2660;
- const static uint16 kNotinedenslift = 1113;
- const static uint16 kDifsub7 = 2660;
- const static uint16 kSearch = 2660;
- const static uint16 kDomoretalk = 2692;
- const static uint16 kNotbystudio = 3393;
- const static uint16 kDonethisbit = 3393;
- const static uint16 kNotrainatall = 1105;
- const static uint16 kNotremfree = 1711;
- const static uint16 kNomatchslot2 = 3861;
- const static uint16 kSelect = 2714;
- const static uint16 kGotheavyframe = 1105;
- const static uint16 kDrawnsetob = 2660;
- const static uint16 kNotloc23 = 4949;
- const static uint16 kNotopright = 3651;
- const static uint16 kCheckpurgeagain = 2660;
- const static uint16 kNotleave = 1113;
- const static uint16 kGotendtext = 1105;
- const static uint16 kNotdel = 2776;
- const static uint16 kNotmonktext10 = 1105;
- const static uint16 kNotmonktext13 = 1105;
- const static uint16 kNotmonktext12 = 1105;
- const static uint16 kDogetbackops = 3777;
- const static uint16 kNoautolook = 2660;
- const static uint16 kDecdir = 1113;
- const static uint16 kNotaright = 1113;
- const static uint16 kZoomswitch = 1819;
- const static uint16 kFoundnewex = 2660;
- const static uint16 kNodream7 = 2895;
- const static uint16 kIswatching = 2494;
- const static uint16 kNotfudge = 1711;
- const static uint16 kZerostill = 3861;
- const static uint16 kNotenterdream = 4949;
- const static uint16 kNotlastdest = 2776;
- const static uint16 kDoexinv = 2660;
- const static uint16 kOpsblock1 = 3735;
- const static uint16 kGotsecurframe = 1105;
- const static uint16 kEndearly2 = 2494;
- const static uint16 kPlaygame = 4949;
- const static uint16 kNotdiff = 1105;
- const static uint16 kNotaftersshot = 1105;
- const static uint16 kSet16palloop2 = 2494;
- const static uint16 kPriestspoken = 1105;
- const static uint16 kOpenloop1 = 2494;
- const static uint16 kMoreload2 = 4945;
- const static uint16 kGotstartletter = 2660;
- const static uint16 kEndmugger1 = 1105;
- const static uint16 kEndmugger2 = 1105;
- const static uint16 kGotintrom1 = 1105;
- const static uint16 kGotintrom3 = 1105;
- const static uint16 kGotintrom2 = 1105;
- const static uint16 kWaitkey = 2776;
- const static uint16 kNozoom1 = 5691;
- const static uint16 kWantstotalk = 5674;
- const static uint16 kNotfirst = 1113;
- const static uint16 kSlabewrong = 3385;
- const static uint16 kCantmakeoneup = 2660;
- const static uint16 kNotdoorsound1 = 1214;
- const static uint16 kNotdoorsound3 = 1214;
- const static uint16 kNotdoorsound2 = 1214;
- const static uint16 kNotdoorsound4 = 1214;
- const static uint16 kDirectloop2 = 2895;
- const static uint16 kNomatchslot = 3861;
- const static uint16 kNotzoomon = 5698;
- const static uint16 kDontcheck = 5674;
- const static uint16 kLookforlineend = 1214;
- const static uint16 kFrameloop1 = 1819;
- const static uint16 kFrameloop3 = 1819;
- const static uint16 kFrameloop2 = 1819;
- const static uint16 kRightspeed3 = 5698;
- const static uint16 kFinex = 2660;
- const static uint16 kIscup = 2660;
- const static uint16 kNoconvnum = 4949;
- const static uint16 kEmmerror = 4945;
- const static uint16 kLiftopen = 1214;
- const static uint16 kClearloop = 1711;
- const static uint16 kDumpevery2 = 1711;
- const static uint16 kDumpevery1 = 1711;
- const static uint16 kAlreadyb = 3525;
- const static uint16 kFirsttimed = 3393;
- const static uint16 kNotboth = 5698;
- const static uint16 kKeyconverttab = 5731;
- const static uint16 kNoturnonyet = 1214;
- const static uint16 kNotmonk2text10 = 1105;
- const static uint16 kNotmonk2text11 = 1105;
- const static uint16 kNotinbath = 1105;
- const static uint16 kActuallyswap = 2660;
- const static uint16 kKeyscom = 2776;
- const static uint16 kNormalline = 5691;
- const static uint16 kEndcredits2 = 1105;
- const static uint16 kEndcredits1 = 1105;
- const static uint16 kNofindex = 3393;
- const static uint16 kLoslope = 5691;
- const static uint16 kNottalkedboss = 1105;
- const static uint16 kWrongroom1 = 3393;
- const static uint16 kWaitexam = 2494;
- const static uint16 kNotsetname = 5691;
- const static uint16 kFileerror = 5862;
- const static uint16 kLoop2 = 1711;
- const static uint16 kLoop1 = 1711;
- const static uint16 kRtofdoor2 = 1214;
- const static uint16 kNotmaprightspec = 1711;
- const static uint16 kIsnosound = 4949;
- const static uint16 kInwatching = 1819;
- const static uint16 kNotthirdtrigger = 2895;
- const static uint16 kHavesetwatch = 1105;
- const static uint16 kIsthunder1 = 1214;
- const static uint16 kMainlist = 4949;
- const static uint16 kNotopenchurch = 3393;
- const static uint16 kPriorityloop = 1105;
- const static uint16 kEdenspart2 = 3393;
- const static uint16 kRyansded = 1105;
- const static uint16 kNotwrapfor = 3651;
- const static uint16 kNotintro3text2 = 1105;
- const static uint16 kNotafterhshot = 1105;
- const static uint16 kNottalkedsparky = 1105;
- const static uint16 kZoomloop2 = 1819;
- const static uint16 kNotmugger = 1105;
- const static uint16 kNotcarpark = 4949;
- const static uint16 kLoadlist = 3735;
- const static uint16 kWaitdecide = 4884;
- const static uint16 kSkiptalk = 2692;
- const static uint16 kNextopenslot = 2494;
- const static uint16 kNotfound = 2895;
- const static uint16 kDosetpick = 2660;
- const static uint16 kTryanotherex = 2660;
- const static uint16 kNotaideadd = 3589;
- const static uint16 kNotshown = 3693;
- const static uint16 kNotshowp = 3693;
- const static uint16 kNotendadvis = 1105;
- const static uint16 kAlreadylook = 2660;
- const static uint16 kNotblankpers = 5073;
- const static uint16 kCorrectcard2 = 3385;
- const static uint16 kGetslotnum = 3861;
- const static uint16 kNogetbackops = 3777;
- const static uint16 kNotinsideex = 2660;
- const static uint16 kHangloopw = 5698;
- const static uint16 kHangloopq = 2692;
- const static uint16 kCigarette = 3385;
- const static uint16 kDonefirstops = 3693;
- const static uint16 kBotright = 5691;
- const static uint16 kNotwalkandexam = 5691;
- const static uint16 kFinishfile = 2895;
- const static uint16 kAlreadyselob = 3393;
- const static uint16 kFinishfill = 2494;
- const static uint16 kPickupexob = 2660;
- const static uint16 kTriedknife = 3393;
- const static uint16 kIsinexlist = 2660;
- const static uint16 kAfterkey = 3861;
- const static uint16 kDoopenob = 2660;
- const static uint16 kFinishdirct = 2494;
- const static uint16 kLoadedalready = 5862;
- const static uint16 kWatchtalk = 2692;
- const static uint16 kKeysloop = 2895;
- const static uint16 kFailed = 2895;
- const static uint16 kEndearly = 2494;
- const static uint16 kNotfirsttimed = 3393;
- const static uint16 kIswaitingpool = 1105;
- const static uint16 kBlinktab = 5691;
- const static uint16 kNotcentred = 1819;
- const static uint16 kCandles2fin = 1105;
- const static uint16 kMoretext = 2660;
- const static uint16 kNormalwalk = 1113;
- const static uint16 kNokey = 5715;
- const static uint16 kGotpl = 5691;
- const static uint16 kAlreadyswap1 = 2660;
- const static uint16 kSignoncom = 2776;
- const static uint16 kOpenpool = 3385;
- const static uint16 kOpslist = 3693;
- const static uint16 kNoneedtoremove = 4949;
- const static uint16 kNoloadold = 4926;
- const static uint16 kNotintro2text1 = 1105;
- const static uint16 kNotintro2text2 = 1105;
- const static uint16 kNobotleft = 3651;
- const static uint16 kIgnoreit = 2494;
- const static uint16 kNotalley = 4949;
- const static uint16 kSpecialcase = 2660;
- const static uint16 kNodumpsym = 3651;
- const static uint16 kCanopenit1 = 2660;
- const static uint16 kNotsecondpart = 2692;
- const static uint16 kNotmapup2 = 1711;
- const static uint16 kIsfree = 2660;
- const static uint16 kOver045 = 5073;
- const static uint16 kGoingdown = 3393;
- const static uint16 kNotedenlob = 4949;
- const static uint16 kNoclear = 4949;
- const static uint16 kNoobselect = 5674;
- const static uint16 kLowvolumetran = 4949;
- const static uint16 kCh0oksecond = 4945;
- const static uint16 kFlashmousetab = 5698;
- const static uint16 kIntrom3fin = 1105;
- const static uint16 kNotareelid = 5073;
- const static uint16 kKeyok = 2895;
- const static uint16 kDontbother4 = 4949;
- const static uint16 kExamlist = 2494;
- const static uint16 kDontbother2 = 4945;
- const static uint16 kDontbother3 = 4949;
- const static uint16 kNotlair = 5674;
- const static uint16 kDontbother8 = 4926;
- const static uint16 kDontbother9 = 4945;
- const static uint16 kNotfirstbiz = 1105;
- const static uint16 kWrongatmos = 5073;
- const static uint16 kContleftpage = 3589;
- const static uint16 kAlreadysp = 2660;
- const static uint16 kMustbeopen = 1214;
- const static uint16 kNotryanoff = 1711;
- const static uint16 kSkip1 = 1711;
- const static uint16 kOver138 = 2660;
- const static uint16 kNotkeyn = 3693;
- const static uint16 kWholeloop1 = 2494;
- const static uint16 kCanlastf = 3589;
- const static uint16 kStereook = 3393;
- const static uint16 kStereoon = 3393;
- const static uint16 kEmptycup = 2660;
- const static uint16 kQuitloaded = 3735;
- const static uint16 kNotkeyp = 3693;
- const static uint16 kFlipfolderline = 3589;
- const static uint16 kIdentifyset = 5073;
- const static uint16 kWalkandexamine = 5674;
- const static uint16 kFirstbitofblock = 1819;
- const static uint16 kNotloc44 = 4949;
- const static uint16 kRighthand = 3385;
- const static uint16 kBacktoother = 1819;
- const static uint16 kEndofdir2 = 2895;
- const static uint16 kNotendsmallcandle = 1105;
- const static uint16 kIsbright = 4949;
- const static uint16 kWidth63 = 1819;
- const static uint16 kEndofinput = 2776;
- const static uint16 kGotadvframe = 1105;
- const static uint16 kQuitlist = 2692;
- const static uint16 kNotwornswap = 2660;
- const static uint16 kKeys = 2807;
- const static uint16 kNomod = 2494;
- const static uint16 kNodumpeye = 5698;
- const static uint16 kCopyin1 = 2895;
- const static uint16 kHorizloop = 5691;
- const static uint16 kFquit = 4884;
- const static uint16 kFullcup = 2660;
- const static uint16 kPurgeloc = 2660;
- const static uint16 kNotendmonk1 = 1105;
- const static uint16 kDontpurge = 2660;
- const static uint16 kExecutewalk = 1105;
- const static uint16 kIntrom1fin = 1105;
- const static uint16 kNotout = 2660;
- const static uint16 kGamerfin = 1105;
- const static uint16 kAfterwalk = 1105;
- const static uint16 kNotgotobject = 2660;
- const static uint16 kDoincryan = 2660;
- const static uint16 kCopytext = 5691;
- const static uint16 kIsntsame = 2660;
- const static uint16 kNoeffects = 1819;
- const static uint16 kFindblaster = 4949;
- const static uint16 kNottalkedrecep = 1105;
- const static uint16 kDecidelist = 4884;
- const static uint16 kIsdouble = 1105;
- const static uint16 kNoswap2 = 5691;
- const static uint16 kNoswap1 = 5691;
- const static uint16 kNotspeaking = 2692;
- const static uint16 kMorerain = 1214;
- const static uint16 kSizeok = 2660;
- const static uint16 kNotdeltvstud = 2776;
- const static uint16 kEndofline = 1113;
- const static uint16 kOddwidth = 1819;
- const static uint16 kBacktosolidfx = 1819;
- const static uint16 kNotinedens = 3393;
- const static uint16 kMoreload = 4945;
- const static uint16 kIntoopen = 2660;
- const static uint16 kIsfree3 = 2660;
- const static uint16 kIsfree2 = 2660;
- const static uint16 kActuallyout = 2660;
- const static uint16 kFailrain = 1214;
- const static uint16 kFullvol = 5073;
- const static uint16 kGotreader3with = 3385;
- const static uint16 kNmloop1 = 1819;
- const static uint16 kNmloop2 = 1819;
- const static uint16 kIntromonk2fin = 1105;
- const static uint16 kNotnocurs = 3861;
- const static uint16 kMultiloop1 = 1819;
- const static uint16 kWithit = 2494;
- const static uint16 kMultiloop3 = 1819;
- const static uint16 kMultiloop2 = 1819;
- const static uint16 kMultiloop5 = 1819;
- const static uint16 kMultiloop4 = 1819;
- const static uint16 kMultiloop6 = 1819;
- const static uint16 kInpoolhall = 3393;
- const static uint16 kUsekey1 = 3393;
- const static uint16 kUsekey2 = 3393;
- const static uint16 kGetoutofit = 5698;
- const static uint16 kNotrav = 2776;
- const static uint16 kDouse = 2895;
- const static uint16 kNotdelsarters = 2776;
- const static uint16 kNottvsoldier = 3393;
- const static uint16 kAddloop2 = 2660;
- const static uint16 kJustgetback = 2494;
- const static uint16 kNotreleasehold = 4949;
- const static uint16 kMightwait = 1105;
- const static uint16 kNotyet = 3385;
- const static uint16 kNotintro1text1 = 1105;
- const static uint16 kNotintro1text3 = 1105;
- const static uint16 kIsdma = 4949;
- const static uint16 kNotinbed = 1105;
- const static uint16 kPlinthwith = 3385;
- const static uint16 kAxeondoor = 3393;
- const static uint16 kOkcom = 2895;
- const static uint16 kNotover1 = 5073;
- const static uint16 kHorizline = 5691;
- const static uint16 kBuscombatwon = 1105;
- const static uint16 kAlreadyincryan = 2660;
- const static uint16 kPalloop = 1711;
- const static uint16 kGotguardframe = 1105;
- const static uint16 kGotcrystal = 3385;
- const static uint16 kLookcolon = 3385;
- const static uint16 kAccessloop = 2776;
- const static uint16 kSaveops = 3819;
- const static uint16 kMonloop1 = 5698;
- const static uint16 kCheckmain = 4949;
- const static uint16 kWidth128 = 1819;
- const static uint16 kNotheld = 2895;
- const static uint16 kNotopleft = 3651;
- const static uint16 kDeallerror = 4949;
- const static uint16 kEndtail = 4949;
- const static uint16 kEndofthisline = 1214;
- const static uint16 kSignonloop2 = 2895;
- const static uint16 kSymbollist = 3589;
- const static uint16 kNofirst = 5073;
- const static uint16 kLockloop = 2895;
- const static uint16 kFinishslow2 = 2494;
- const static uint16 kNopathoff = 5073;
- const static uint16 kCantsetup2 = 3393;
- const static uint16 kHaventfound = 3393;
- const static uint16 kIsmorereel = 4949;
- const static uint16 kNotbracket = 2895;
- const static uint16 kMoreendseq = 2494;
- const static uint16 kEndlessloop = 4949;
- const static uint16 kNodel2 = 3861;
- const static uint16 kNodroperror = 2660;
- const static uint16 kEndgametext1 = 4835;
- const static uint16 kNoops = 3693;
- const static uint16 kNotclear3 = 4949;
- const static uint16 kNotclear2 = 4949;
- const static uint16 kNotclear1 = 4949;
- const static uint16 kLoadnew = 4949;
- const static uint16 kFinishtime = 4949;
- const static uint16 kBusspeed = 1105;
- const static uint16 kGotbusframe = 1105;
- const static uint16 kGrafwith = 3385;
- const static uint16 kIsex2 = 2660;
- const static uint16 kIsex3 = 2660;
- const static uint16 kDoplace = 2660;
- const static uint16 kSoldierwait = 1105;
- const static uint16 kGotsmoket = 1105;
- const static uint16 kNothingund = 5073;
- const static uint16 kPlotloop = 1214;
- const static uint16 kWaiting = 1105;
- const static uint16 kNoresetpit = 4949;
- const static uint16 kGotsmokeb = 1105;
- const static uint16 kFoundfile = 2895;
- const static uint16 kRightpageloop = 3589;
- const static uint16 kBothspecial = 2660;
- const static uint16 kIssoundint = 4949;
- const static uint16 kNotspace1 = 2895;
- const static uint16 kLowvolumemix = 4949;
- const static uint16 kNoactsave = 3861;
- const static uint16 kWalkman = 1105;
- const static uint16 kNotinrockroom = 3393;
- const static uint16 kNodrop = 2660;
- const static uint16 kKeyonhotel2 = 3385;
- const static uint16 kKeyonhotel1 = 3385;
- const static uint16 kGotcontrolwith = 3393;
- const static uint16 kThingsonaltar = 3385;
- const static uint16 kAlreadywon = 1105;
- const static uint16 kNextslab = 3385;
- const static uint16 kAlreadyrun = 5073;
- const static uint16 kFinishclose = 1214;
- const static uint16 kHangloop = 5698;
- const static uint16 kNonewgame = 4926;
- const static uint16 kCh1oksecond = 4945;
- const static uint16 kForcenext = 1105;
- const static uint16 kUpordown2 = 1214;
- const static uint16 kBalls = 3393;
- const static uint16 kWidth21 = 1819;
- const static uint16 kAlreadyops = 3693;
- const static uint16 kEndword = 2494;
- const static uint16 kIsntblank = 4884;
- const static uint16 kNotfadeend = 1105;
- const static uint16 kDoqk = 3525;
- const static uint16 kQuitcom = 2776;
- const static uint16 kNotyover = 5715;
- const static uint16 kDoqs = 3651;
- const static uint16 kNotdreamcentre = 4949;
- const static uint16 kLine4 = 5691;
- const static uint16 kLine3 = 5691;
- const static uint16 kLine1 = 5691;
- const static uint16 kGotgates = 1105;
- const static uint16 kZoomisoff = 5691;
- const static uint16 kForgotone = 1113;
- const static uint16 kNotch0endofpage0 = 4949;
- const static uint16 kWidth49 = 1819;
- const static uint16 kWidth48 = 1819;
- const static uint16 kWidth47 = 1819;
- const static uint16 kWidth46 = 1819;
- const static uint16 kNoselslot = 3861;
- const static uint16 kWidth44 = 1819;
- const static uint16 kFoundlinestart = 1214;
- const static uint16 kWidth42 = 1819;
- const static uint16 kWidth41 = 1819;
- const static uint16 kWidth40 = 1819;
- const static uint16 kNotletgo4 = 2660;
- const static uint16 kWidth110 = 1819;
- const static uint16 kNotletgo3 = 2660;
- const static uint16 kNotletgo2 = 2660;
- const static uint16 kGotsoundbuff = 4949;
- const static uint16 kSearchdestdown = 2776;
- const static uint16 kNotneartextend = 2660;
- const static uint16 kHelispeed = 1105;
- const static uint16 kQuickquit = 3861;
- const static uint16 kAfterlook = 2660;
- const static uint16 kNotwaiting = 1105;
- const static uint16 kCheckmorerain = 1113;
- const static uint16 kDontbother = 4945;
- const static uint16 kAlreadyloadold = 4926;
- const static uint16 kAlreadyopob = 2660;
- const static uint16 kTestcom = 2776;
- const static uint16 kNotinryaninv = 2494;
- const static uint16 kLookx = 5862;
- const static uint16 kLooky = 5862;
- const static uint16 kDozoomonoff = 3693;
- const static uint16 kNotyover2 = 5715;
- const static uint16 kAfterslow = 2494;
- const static uint16 kGotoverend2 = 2494;
- const static uint16 kNotletgo = 2660;
- const static uint16 kAlreadyget = 2660;
- const static uint16 kHoteldoorwith2 = 3385;
- const static uint16 kNoteden2 = 4949;
- const static uint16 kNowinch = 3393;
- const static uint16 kKeyloop = 2776;
- const static uint16 kNocross = 5698;
- const static uint16 kNotpersonname = 5691;
- const static uint16 kFindexloop = 3393;
- const static uint16 kNotlouis2 = 1105;
- const static uint16 kNothelicopter = 3393;
- const static uint16 kNotlouis1 = 1105;
- const static uint16 kFacingok = 1105;
- const static uint16 kNotrandom = 1214;
- const static uint16 kGotoverend = 2494;
- const static uint16 kNotgunonheli = 1105;
- const static uint16 kNoslow = 2494;
- const static uint16 kFinishmon2 = 2494;
- const static uint16 kFinishsparky = 1105;
- const static uint16 kNotselob = 3393;
- const static uint16 kSkipsprite = 1105;
- const static uint16 kFinishconv = 2692;
- const static uint16 kIsinright = 5691;
- const static uint16 kWidth45 = 1819;
- const static uint16 kHavecutwire = 3393;
- const static uint16 kFinfree = 2660;
- const static uint16 kWidth43 = 1819;
- const static uint16 kHolewith = 3385;
- const static uint16 kNodistort = 4949;
- const static uint16 kBackwards = 3651;
- const static uint16 kNotasetid = 5073;
- const static uint16 kNotholdingreel = 4949;
- const static uint16 kAlreadygotnew = 3385;
- const static uint16 kFlashcurs = 2895;
- const static uint16 kCantuseopen = 2660;
- const static uint16 kHoteldoorwith = 3385;
- const static uint16 kIsloadmode = 3861;
- const static uint16 kNot129 = 2494;
- const static uint16 kNobotright = 3651;
- const static uint16 kMemerror = 4949;
- const static uint16 kBlankframe = 2660;
- const static uint16 kOpendoor = 1214;
- const static uint16 kNotbang = 1105;
- const static uint16 kFadecolloop = 2494;
- const static uint16 kNotlouisvol = 5073;
- const static uint16 kBotok = 4949;
- const static uint16 kNextcart = 3385;
- const static uint16 kFillcup = 3385;
- const static uint16 kNotopenable = 2660;
- const static uint16 kWireaxe = 3393;
- const static uint16 kNotinsidethis = 2660;
- const static uint16 kAtlast2 = 1214;
- const static uint16 kAtlast3 = 1214;
- const static uint16 kAtlast1 = 1214;
- const static uint16 kHoldingreel = 5691;
- const static uint16 kFindopen2 = 2494;
- const static uint16 kFindopen1 = 2494;
- const static uint16 kEndsetloop = 3393;
- const static uint16 kGotcart = 2776;
- const static uint16 kNot10 = 3525;
- const static uint16 kLookforlinestart = 1214;
- const static uint16 kCanpick2a = 2660;
- const static uint16 kAlreadyonoff = 3693;
- const static uint16 kNotsarters = 3393;
- const static uint16 kDogetback = 2660;
- const static uint16 kNotthrough2 = 1214;
- const static uint16 kNotprintlist = 1819;
- const static uint16 kNotwrapbackb = 3651;
- const static uint16 kNoadvisor = 1105;
- const static uint16 kWidth30 = 1819;
- const static uint16 kNotleadingspace = 2776;
- const static uint16 kMoney1poke = 3385;
- const static uint16 kFinishwatch = 4949;
- const static uint16 kQuittravel = 2714;
- const static uint16 kDontgetrid = 5862;
- const static uint16 kVolfinish = 4949;
- const static uint16 kDograf = 3385;
- const static uint16 kDograb = 2660;
- const static uint16 kWidth58 = 1819;
- const static uint16 kWidth59 = 1819;
- const static uint16 kEnoughmem = 4949;
- const static uint16 kWidth54 = 1819;
- const static uint16 kMainloop = 4949;
- const static uint16 kWidth56 = 1819;
- const static uint16 kShowgroup1 = 2494;
- const static uint16 kWidth50 = 1819;
- const static uint16 kWidth51 = 1819;
- const static uint16 kWidth52 = 1819;
- const static uint16 kWidth53 = 1819;
- const static uint16 kOver148 = 2660;
- const static uint16 kWord4 = 4949;
- const static uint16 kNottalk1 = 1105;
- const static uint16 kWord1 = 4949;
- const static uint16 kWord3 = 4949;
- const static uint16 kWord2 = 4949;
- const static uint16 kPriestwait = 1105;
- const static uint16 kKeepchecking = 2660;
- const static uint16 kOver146 = 2660;
- const static uint16 kOver147 = 2660;
- const static uint16 kAlreadyopinv = 2660;
- const static uint16 kIsntblock = 5674;
- const static uint16 kKeyok2 = 2895;
- const static uint16 kKeyok1 = 2895;
- const static uint16 kFinishtalk = 2660;
- const static uint16 kNumberright = 3393;
- const static uint16 kFindryanloop = 2494;
- const static uint16 kAlreadyfull = 3385;
- const static uint16 kNotchangeloc = 1711;
- const static uint16 kNotweb = 5073;
- const static uint16 kNotendseq = 1105;
- const static uint16 kSecdes = 1105;
- const static uint16 kComparefin = 3393;
- const static uint16 kAlreadygrb = 2660;
- const static uint16 kNoshoe1 = 1113;
- const static uint16 kFinishdim4 = 2660;
- const static uint16 kRestartlook = 2895;
- const static uint16 kFinishdim1 = 2660;
- const static uint16 kFinishdim3 = 2660;
- const static uint16 kFinishdim2 = 2660;
- const static uint16 kNotnomask = 1819;
- const static uint16 kNorun = 5073;
- const static uint16 kNotryanon = 1711;
- const static uint16 kFinishmain = 4949;
- const static uint16 kFinishfade = 2494;
- const static uint16 kNopitflip = 4949;
- const static uint16 kStereook2 = 3393;
- const static uint16 kGreysumloop1 = 2494;
- const static uint16 kGreysumloop2 = 2494;
- const static uint16 kNotaftersec = 1105;
- const static uint16 kNotinthelift = 4949;
- const static uint16 kAdjustemmpage = 4945;
- const static uint16 kNotendtext2 = 1105;
- const static uint16 kNotendtext3 = 1105;
- const static uint16 kNotendtext1 = 1105;
- const static uint16 kNospeech1 = 2692;
- const static uint16 kSlabfwrong = 3385;
- const static uint16 kNotdumpdiary = 3693;
- const static uint16 kNokeypress = 3861;
- const static uint16 kFindten = 4945;
- const static uint16 kBuscombatend = 1105;
- const static uint16 kIstakengun = 3393;
- const static uint16 kFindopenp1 = 2660;
- const static uint16 kNotstartshake = 4949;
- const static uint16 kNoloccheck = 2494;
- const static uint16 kJustret = 3693;
- const static uint16 kAlreadyturned = 1105;
- const static uint16 kNothunder = 1214;
- const static uint16 kNotmonktext5 = 1105;
- const static uint16 kNotmonktext4 = 1105;
- const static uint16 kNotmonktext7 = 1105;
- const static uint16 kNotmonktext6 = 1105;
- const static uint16 kNotmonktext1 = 1105;
- const static uint16 kNotmonktext3 = 1105;
- const static uint16 kNotmonktext2 = 1105;
- const static uint16 kGotcandles = 1105;
- const static uint16 kNotmonktext9 = 1105;
- const static uint16 kNotmonktext8 = 1105;
- const static uint16 kSatdown = 3385;
- const static uint16 kSlabwith = 3385;
- const static uint16 kIntromonk1fin = 1105;
- const static uint16 kContrightpage = 3589;
- const static uint16 kCantwalk2 = 5691;
- const static uint16 kDeltimedtext = 3393;
- const static uint16 kEndcredits22 = 2494;
- const static uint16 kBackwardsbot = 3651;
- const static uint16 kNot130 = 2494;
- const static uint16 kFinished = 5073;
- const static uint16 kAlreadyswap2 = 2660;
- const static uint16 kEndall = 2494;
- const static uint16 kMoreinput = 2776;
- const static uint16 kFinishinitrain = 1113;
- const static uint16 kNotsecondbank1 = 4949;
- const static uint16 kDimloop4 = 2660;
- const static uint16 kDontwalkin = 5862;
- const static uint16 kReelsoundloop = 1214;
- const static uint16 kDimloop1 = 2660;
- const static uint16 kDimloop2 = 2660;
- const static uint16 kDimloop3 = 2660;
- const static uint16 kNotinpool = 3393;
- const static uint16 kIskern = 2494;
- const static uint16 kEyesshut = 5691;
- const static uint16 kDoload = 3735;
- const static uint16 kCantzoom = 1819;
- const static uint16 kToplot = 4949;
- const static uint16 kNotfirsttrigger = 2895;
- const static uint16 kMenuloop = 3525;
- const static uint16 kNotmapdownspec = 1711;
- const static uint16 kUptime = 4949;
- const static uint16 kFindopen2a = 2494;
- const static uint16 kPathloop = 5073;
- const static uint16 kCheckrain = 1113;
- const static uint16 kNotyetboss = 3385;
- const static uint16 kNoincryan = 2660;
- const static uint16 kSpeechfilename = 4926;
- const static uint16 kComlist = 2776;
- const static uint16 kGotallboss = 1105;
- const static uint16 kNottopchurch = 4949;
- const static uint16 kBeenpickedup = 3393;
- const static uint16 kNotintro3text1 = 1105;
- const static uint16 kNopathon = 5073;
- const static uint16 kOff = 2776;
- const static uint16 kAlreadyuse = 2895;
- const static uint16 kInvlist1 = 2556;
- const static uint16 kObject = 3393;
- const static uint16 kMorethan10 = 4949;
- const static uint16 kMightbeonlych1 = 4949;
- const static uint16 kMightbeonlych0 = 4949;
- const static uint16 kPasserror = 2895;
- const static uint16 kAlreadyloaded = 4949;
- const static uint16 kNopriesttext = 1105;
- const static uint16 kNotanup = 1113;
- const static uint16 kEndmon = 2776;
- const static uint16 kMoretopic = 2895;
- const static uint16 kGatesfin = 1105;
- const static uint16 kNokeyn = 3693;
- const static uint16 kFinishcurdel = 2895;
- const static uint16 kCheckpass = 2895;
- const static uint16 kNotlift = 1214;
- const static uint16 kWidth61 = 1819;
- const static uint16 kWidth60 = 1819;
- const static uint16 kNofind = 3393;
- const static uint16 kWidth62 = 1819;
- const static uint16 kNotsmallx2 = 5698;
- const static uint16 kDos2 = 2494;
- const static uint16 kDos3 = 2494;
- const static uint16 kNocash = 3385;
- const static uint16 kDos1 = 2494;
- const static uint16 kNotendmonk2 = 1105;
- const static uint16 kDiffmouse = 2660;
- const static uint16 kNotinthebeach = 4949;
- const static uint16 kPcxpal = 1711;
- const static uint16 kCandlesfin = 1105;
- const static uint16 kSuccess = 5691;
- const static uint16 kGotvalidpath = 5073;
- const static uint16 kTopokv = 4949;
- const static uint16 kNotinpoolroom = 3393;
- const static uint16 kGothand = 5698;
- const static uint16 kCantuse2 = 2895;
- const static uint16 kDiff = 5674;
- const static uint16 kSearchinv = 3393;
- const static uint16 kIsblock = 5674;
- const static uint16 kJimmycontrols = 3393;
- const static uint16 kItsfrominv = 5698;
- const static uint16 kNotgeneralstart = 1105;
- const static uint16 kMakeintoex = 2660;
- const static uint16 kDoredes = 2714;
- const static uint16 kLookforpurge = 2660;
- const static uint16 kNochange2 = 1214;
- const static uint16 kUpordown = 1214;
- const static uint16 kDontbother5 = 4949;
- const static uint16 kZoomloop = 1819;
- const static uint16 kStillspace1 = 2895;
- const static uint16 kHeliwon = 1105;
- const static uint16 kGameinfo = 4375;
- const static uint16 kNotalkrock = 1105;
- const static uint16 kShownameloop = 3861;
- const static uint16 kNotblankinp = 2776;
- const static uint16 kJustshutting = 1214;
- const static uint16 kNotwidedoor = 1214;
- const static uint16 kNotdiffob = 5674;
- const static uint16 kNotthrough = 1214;
- const static uint16 kExamineagain = 2494;
- const static uint16 kVertline = 5691;
- const static uint16 kRestartops = 3693;
- const static uint16 kNotsmallx = 5698;
- const static uint16 kNotwatchpoint = 5698;
- const static uint16 kNotflippedx = 1819;
- const static uint16 kBotokv = 4949;
- const static uint16 kSmallcandlef = 1105;
- const static uint16 kGotcandles2 = 1105;
- const static uint16 kFinblink1 = 5691;
- const static uint16 kNotinthisroom = 1214;
- const static uint16 kNospeech = 2660;
- const static uint16 kSlabcwrong = 3385;
- const static uint16 kPokelift = 1214;
- const static uint16 kLoadops = 3735;
- const static uint16 kNotextraname = 5691;
- const static uint16 kCantredes = 2714;
- const static uint16 kOnelot = 1105;
- const static uint16 kDeloneloop = 1819;
- const static uint16 kDodrop = 2660;
- const static uint16 kDoplace2 = 2660;
- const static uint16 kNopath = 3393;
- const static uint16 kBotofdoor2 = 1214;
- const static uint16 kNotnewlogo = 2895;
- const static uint16 kIsntsame2 = 2660;
- const static uint16 kNotfadedown = 1105;
- const static uint16 kNot173 = 2494;
- const static uint16 kTopwrap = 3651;
- const static uint16 kCannextf = 3589;
- const static uint16 kCartwith = 3385;
- const static uint16 kGotintro3text = 1105;
- const static uint16 kAlreadybotr = 3651;
- const static uint16 kMainlist2 = 5011;
- const static uint16 kNotrainyet = 1105;
- const static uint16 kNotsecondtrigger = 2895;
- const static uint16 kNotravmessage = 1113;
- const static uint16 kNotunsized = 2660;
- const static uint16 kGameragain = 1105;
+ const static uint16 kStartvars = 1;
+ const static uint16 kProgresspoints = 2;
+ const static uint16 kWatchon = 3;
+ const static uint16 kShadeson = 4;
+ const static uint16 kSecondcount = 5;
+ const static uint16 kMinutecount = 6;
+ const static uint16 kHourcount = 7;
+ const static uint16 kZoomon = 8;
+ const static uint16 kLocation = 9;
+ const static uint16 kExpos = 10;
+ const static uint16 kExframepos = 12;
+ const static uint16 kExtextpos = 14;
+ const static uint16 kCard1money = 16;
+ const static uint16 kListpos = 18;
+ const static uint16 kRyanpage = 19;
+ const static uint16 kWatchingtime = 21;
+ const static uint16 kReeltowatch = 23;
+ const static uint16 kEndwatchreel = 25;
+ const static uint16 kSpeedcount = 26;
+ const static uint16 kWatchspeed = 27;
+ const static uint16 kReeltohold = 29;
+ const static uint16 kEndofholdreel = 31;
+ const static uint16 kWatchmode = 32;
+ const static uint16 kDestafterhold = 33;
+ const static uint16 kNewsitem = 34;
+ const static uint16 kLiftflag = 35;
+ const static uint16 kLiftpath = 36;
+ const static uint16 kLockstatus = 37;
+ const static uint16 kDoorpath = 38;
+ const static uint16 kCounttoopen = 39;
+ const static uint16 kCounttoclose = 40;
+ const static uint16 kRockstardead = 41;
+ const static uint16 kGeneraldead = 42;
+ const static uint16 kSartaindead = 43;
+ const static uint16 kAidedead = 44;
+ const static uint16 kBeenmugged = 45;
+ const static uint16 kGunpassflag = 46;
+ const static uint16 kCanmovealtar = 47;
+ const static uint16 kTalkedtoattendant = 48;
+ const static uint16 kTalkedtosparky = 49;
+ const static uint16 kTalkedtoboss = 50;
+ const static uint16 kTalkedtorecep = 51;
+ const static uint16 kCardpassflag = 52;
+ const static uint16 kMadmanflag = 53;
+ const static uint16 kKeeperflag = 54;
+ const static uint16 kLasttrigger = 55;
+ const static uint16 kMandead = 56;
+ const static uint16 kSeed = 59;
+ const static uint16 kNeedtotravel = 60;
+ const static uint16 kThroughdoor = 61;
+ const static uint16 kNewobs = 62;
+ const static uint16 kRyanon = 63;
+ const static uint16 kCombatcount = 64;
+ const static uint16 kLastweapon = 65;
+ const static uint16 kDreamnumber = 66;
+ const static uint16 kRoomafterdream = 67;
+ const static uint16 kShakecounter = 68;
+ const static uint16 kSpeechcount = 69;
+ const static uint16 kCharshift = 71;
+ const static uint16 kKerning = 72;
+ const static uint16 kBrightness = 73;
+ const static uint16 kRoomloaded = 74;
+ const static uint16 kDidzoom = 75;
+ const static uint16 kLinespacing = 77;
+ const static uint16 kTextaddressx = 79;
+ const static uint16 kTextaddressy = 81;
+ const static uint16 kTextlen = 82;
+ const static uint16 kLastxpos = 84;
+ const static uint16 kIcontop = 86;
+ const static uint16 kIconleft = 88;
+ const static uint16 kItemframe = 89;
+ const static uint16 kItemtotran = 90;
+ const static uint16 kRoomad = 92;
+ const static uint16 kOldsubject = 94;
+ const static uint16 kWithobject = 95;
+ const static uint16 kWithtype = 96;
+ const static uint16 kLookcounter = 98;
+ const static uint16 kCommand = 99;
+ const static uint16 kCommandtype = 100;
+ const static uint16 kOldcommandtype = 101;
+ const static uint16 kObjecttype = 102;
+ const static uint16 kGetback = 103;
+ const static uint16 kInvopen = 104;
+ const static uint16 kMainmode = 105;
+ const static uint16 kPickup = 106;
+ const static uint16 kLastinvpos = 107;
+ const static uint16 kExamagain = 108;
+ const static uint16 kNewtextline = 109;
+ const static uint16 kOpenedob = 110;
+ const static uint16 kOpenedtype = 111;
+ const static uint16 kOldmapadx = 113;
+ const static uint16 kOldmapady = 115;
+ const static uint16 kMapadx = 117;
+ const static uint16 kMapady = 119;
+ const static uint16 kMapoffsetx = 121;
+ const static uint16 kMapoffsety = 123;
+ const static uint16 kMapxstart = 125;
+ const static uint16 kMapystart = 127;
+ const static uint16 kMapxsize = 128;
+ const static uint16 kMapysize = 129;
+ const static uint16 kHavedoneobs = 130;
+ const static uint16 kManisoffscreen = 131;
+ const static uint16 kRainspace = 132;
+ const static uint16 kFacing = 133;
+ const static uint16 kLeavedirection = 134;
+ const static uint16 kTurntoface = 135;
+ const static uint16 kTurndirection = 136;
+ const static uint16 kMaintimer = 138;
+ const static uint16 kIntrocount = 139;
+ const static uint16 kArrowad = 141;
+ const static uint16 kCurrentkey = 142;
+ const static uint16 kOldkey = 143;
+ const static uint16 kUseddirection = 144;
+ const static uint16 kCurrentkey2 = 145;
+ const static uint16 kTimercount = 146;
+ const static uint16 kOldtimercount = 147;
+ const static uint16 kMapx = 148;
+ const static uint16 kMapy = 149;
+ const static uint16 kNewscreen = 150;
+ const static uint16 kRyanx = 151;
+ const static uint16 kRyany = 152;
+ const static uint16 kLastflag = 153;
+ const static uint16 kLastflagex = 154;
+ const static uint16 kFlagx = 155;
+ const static uint16 kFlagy = 156;
+ const static uint16 kCurrentex = 157;
+ const static uint16 kCurrentfree = 158;
+ const static uint16 kCurrentframe = 160;
+ const static uint16 kFramesad = 162;
+ const static uint16 kDataad = 164;
+ const static uint16 kFrsegment = 166;
+ const static uint16 kObjectx = 168;
+ const static uint16 kObjecty = 170;
+ const static uint16 kOffsetx = 172;
+ const static uint16 kOffsety = 174;
+ const static uint16 kSavesize = 176;
+ const static uint16 kSavesource = 178;
+ const static uint16 kSavex = 179;
+ const static uint16 kSavey = 180;
+ const static uint16 kCurrentob = 181;
+ const static uint16 kPriority = 182;
+ const static uint16 kDestpos = 183;
+ const static uint16 kReallocation = 184;
+ const static uint16 kRoomnum = 185;
+ const static uint16 kNowinnewroom = 186;
+ const static uint16 kResetmanxy = 187;
+ const static uint16 kNewlocation = 188;
+ const static uint16 kAutolocation = 189;
+ const static uint16 kMustload = 190;
+ const static uint16 kAnswered = 191;
+ const static uint16 kSaidno = 192;
+ const static uint16 kDoorcheck1 = 193;
+ const static uint16 kDoorcheck2 = 194;
+ const static uint16 kDoorcheck3 = 195;
+ const static uint16 kDoorcheck4 = 196;
+ const static uint16 kMousex = 198;
+ const static uint16 kMousey = 200;
+ const static uint16 kMousebutton = 202;
+ const static uint16 kMousebutton1 = 204;
+ const static uint16 kMousebutton2 = 206;
+ const static uint16 kMousebutton3 = 208;
+ const static uint16 kMousebutton4 = 210;
+ const static uint16 kOldbutton = 212;
+ const static uint16 kOldx = 214;
+ const static uint16 kOldy = 216;
+ const static uint16 kLastbutton = 218;
+ const static uint16 kOldpointerx = 220;
+ const static uint16 kOldpointery = 222;
+ const static uint16 kDelherex = 224;
+ const static uint16 kDelherey = 226;
+ const static uint16 kPointerxs = 227;
+ const static uint16 kPointerys = 228;
+ const static uint16 kDelxs = 229;
+ const static uint16 kDelys = 230;
+ const static uint16 kPointerframe = 231;
+ const static uint16 kPointerpower = 232;
+ const static uint16 kAuxpointerframe = 233;
+ const static uint16 kPointermode = 234;
+ const static uint16 kPointerspeed = 235;
+ const static uint16 kPointercount = 236;
+ const static uint16 kInmaparea = 237;
+ const static uint16 kReelpointer = 239;
+ const static uint16 kSlotdata = 240;
+ const static uint16 kThisslot = 241;
+ const static uint16 kSlotflags = 242;
+ const static uint16 kTakeoff = 244;
+ const static uint16 kTalkmode = 245;
+ const static uint16 kTalkpos = 246;
+ const static uint16 kCharacter = 247;
+ const static uint16 kPersondata = 249;
+ const static uint16 kTalknum = 250;
+ const static uint16 kNumberinroom = 251;
+ const static uint16 kCurrentcel = 252;
+ const static uint16 kOldselection = 253;
+ const static uint16 kStopwalking = 254;
+ const static uint16 kMouseon = 255;
+ const static uint16 kPlayed = 257;
+ const static uint16 kTimer1 = 258;
+ const static uint16 kTimer2 = 259;
+ const static uint16 kTimer3 = 260;
+ const static uint16 kWholetimer = 262;
+ const static uint16 kTimer1to = 263;
+ const static uint16 kTimer2to = 264;
+ const static uint16 kTimer3to = 265;
+ const static uint16 kWatchdump = 266;
+ const static uint16 kCurrentset = 268;
+ const static uint16 kLogonum = 269;
+ const static uint16 kOldlogonum = 270;
+ const static uint16 kNewlogonum = 271;
+ const static uint16 kNetseg = 273;
+ const static uint16 kNetpoint = 275;
+ const static uint16 kKeynum = 276;
+ const static uint16 kCursorstate = 277;
+ const static uint16 kPressed = 278;
+ const static uint16 kPresspointer = 280;
+ const static uint16 kGraphicpress = 281;
+ const static uint16 kPresscount = 282;
+ const static uint16 kKeypadax = 284;
+ const static uint16 kKeypadcx = 286;
+ const static uint16 kLightcount = 287;
+ const static uint16 kFolderpage = 288;
+ const static uint16 kDiarypage = 289;
+ const static uint16 kMenucount = 290;
+ const static uint16 kSymboltopx = 291;
+ const static uint16 kSymboltopnum = 292;
+ const static uint16 kSymboltopdir = 293;
+ const static uint16 kSymbolbotx = 294;
+ const static uint16 kSymbolbotnum = 295;
+ const static uint16 kSymbolbotdir = 296;
+ const static uint16 kSymboltolight = 297;
+ const static uint16 kSymbol1 = 298;
+ const static uint16 kSymbol2 = 299;
+ const static uint16 kSymbol3 = 300;
+ const static uint16 kSymbolnum = 301;
+ const static uint16 kDumpx = 303;
+ const static uint16 kDumpy = 305;
+ const static uint16 kWalkandexam = 306;
+ const static uint16 kWalkexamtype = 307;
+ const static uint16 kWalkexamnum = 308;
+ const static uint16 kCursloc = 310;
+ const static uint16 kCurslocx = 312;
+ const static uint16 kCurslocy = 314;
+ const static uint16 kCurpos = 316;
+ const static uint16 kMonadx = 318;
+ const static uint16 kMonady = 320;
+ const static uint16 kGotfrom = 322;
+ const static uint16 kMonsource = 324;
+ const static uint16 kNumtodo = 326;
+ const static uint16 kTimecount = 328;
+ const static uint16 kCounttotimed = 330;
+ const static uint16 kTimedseg = 332;
+ const static uint16 kTimedoffset = 334;
+ const static uint16 kTimedy = 335;
+ const static uint16 kTimedx = 336;
+ const static uint16 kNeedtodumptimed = 337;
+ const static uint16 kHandle = 339;
+ const static uint16 kLoadingorsave = 340;
+ const static uint16 kCurrentslot = 341;
+ const static uint16 kCursorpos = 342;
+ const static uint16 kColourpos = 343;
+ const static uint16 kFadedirection = 344;
+ const static uint16 kNumtofade = 345;
+ const static uint16 kFadecount = 346;
+ const static uint16 kAddtogreen = 347;
+ const static uint16 kAddtored = 348;
+ const static uint16 kAddtoblue = 349;
+ const static uint16 kLastsoundreel = 351;
+ const static uint16 kSoundbuffer = 353;
+ const static uint16 kSoundbufferad = 355;
+ const static uint16 kSoundbufferpage = 356;
+ const static uint16 kSoundtimes = 357;
+ const static uint16 kNeedsoundbuff = 358;
+ const static uint16 kOldint9seg = 360;
+ const static uint16 kOldint9add = 362;
+ const static uint16 kOldint8seg = 364;
+ const static uint16 kOldint8add = 366;
+ const static uint16 kOldsoundintseg = 368;
+ const static uint16 kOldsoundintadd = 370;
+ const static uint16 kSoundbaseadd = 372;
+ const static uint16 kDsp_status = 374;
+ const static uint16 kDsp_write = 376;
+ const static uint16 kDmaaddress = 377;
+ const static uint16 kSoundint = 378;
+ const static uint16 kSounddmachannel = 379;
+ const static uint16 kSampleplaying = 380;
+ const static uint16 kTestresult = 381;
+ const static uint16 kCurrentirq = 382;
+ const static uint16 kSpeechloaded = 383;
+ const static uint16 kSpeechlength = 385;
+ const static uint16 kVolume = 386;
+ const static uint16 kVolumeto = 387;
+ const static uint16 kVolumedirection = 388;
+ const static uint16 kVolumecount = 389;
+ const static uint16 kPlayblock = 390;
+ const static uint16 kWongame = 391;
+ const static uint16 kLasthardkey = 392;
+ const static uint16 kBufferin = 394;
+ const static uint16 kBufferout = 396;
+ const static uint16 kExtras = 398;
+ const static uint16 kWorkspace = 400;
+ const static uint16 kMapstore = 402;
+ const static uint16 kCharset1 = 404;
+ const static uint16 kTempcharset = 406;
+ const static uint16 kIcons1 = 408;
+ const static uint16 kIcons2 = 410;
+ const static uint16 kBuffers = 412;
+ const static uint16 kMainsprites = 414;
+ const static uint16 kBackdrop = 416;
+ const static uint16 kMapdata = 418;
+ const static uint16 kSounddata = 420;
+ const static uint16 kSounddata2 = 422;
+ const static uint16 kRecordspace = 424;
+ const static uint16 kFreedat = 426;
+ const static uint16 kSetdat = 428;
+ const static uint16 kReel1 = 430;
+ const static uint16 kReel2 = 432;
+ const static uint16 kReel3 = 434;
+ const static uint16 kRoomdesc = 436;
+ const static uint16 kFreedesc = 438;
+ const static uint16 kSetdesc = 440;
+ const static uint16 kBlockdesc = 442;
+ const static uint16 kSetframes = 444;
+ const static uint16 kFreeframes = 446;
+ const static uint16 kPeople = 448;
+ const static uint16 kReels = 450;
+ const static uint16 kCommandtext = 452;
+ const static uint16 kPuzzletext = 454;
+ const static uint16 kTraveltext = 456;
+ const static uint16 kTempgraphics = 458;
+ const static uint16 kTempgraphics2 = 460;
+ const static uint16 kTempgraphics3 = 462;
+ const static uint16 kTempsprites = 464;
+ const static uint16 kTextfile1 = 466;
+ const static uint16 kTextfile2 = 468;
+ const static uint16 kTextfile3 = 470;
+ const static uint16 kBlinkframe = 471;
+ const static uint16 kBlinkcount = 472;
+ const static uint16 kReasseschanges = 473;
+ const static uint16 kPointerspath = 474;
+ const static uint16 kManspath = 475;
+ const static uint16 kPointerfirstpath = 476;
+ const static uint16 kFinaldest = 477;
+ const static uint16 kDestination = 478;
+ const static uint16 kLinestartx = 480;
+ const static uint16 kLinestarty = 482;
+ const static uint16 kLineendx = 484;
+ const static uint16 kLineendy = 486;
+ const static uint16 kIncrement1 = 488;
+ const static uint16 kIncrement2 = 490;
+ const static uint16 kLineroutine = 491;
+ const static uint16 kLinepointer = 492;
+ const static uint16 kLinedirection = 493;
+ const static uint16 kLinelength = 494;
+ const static uint16 kLiftsoundcount = 495;
+ const static uint16 kEmmhandle = 497;
+ const static uint16 kEmmpageframe = 499;
+ const static uint16 kEmmhardwarepage = 500;
+ const static uint16 kCh0emmpage = 502;
+ const static uint16 kCh0offset = 504;
+ const static uint16 kCh0blockstocopy = 506;
+ const static uint16 kCh0playing = 507;
+ const static uint16 kCh0repeat = 508;
+ const static uint16 kCh0oldemmpage = 510;
+ const static uint16 kCh0oldoffset = 512;
+ const static uint16 kCh0oldblockstocopy = 514;
+ const static uint16 kCh1playing = 515;
+ const static uint16 kCh1emmpage = 517;
+ const static uint16 kCh1offset = 519;
+ const static uint16 kCh1blockstocopy = 521;
+ const static uint16 kCh1blocksplayed = 523;
+ const static uint16 kSoundbufferwrite = 525;
+ const static uint16 kSoundemmpage = 527;
+ const static uint16 kSpeechemmpage = 529;
+ const static uint16 kCurrentsample = 530;
+ const static uint16 kRoomssample = 531;
+ const static uint16 kGameerror = 532;
+ const static uint16 kHowmuchalloc = 534;
+ const static uint16 kReelroutines = 537;
+ const static uint16 kReelcalls = 1003;
+ const static uint16 kRoombyroom = 1254;
+ const static uint16 kR0 = 1327;
+ const static uint16 kR1 = 1328;
+ const static uint16 kR2 = 1332;
+ const static uint16 kR6 = 1351;
+ const static uint16 kR8 = 1358;
+ const static uint16 kR9 = 1374;
+ const static uint16 kR10 = 1381;
+ const static uint16 kR11 = 1385;
+ const static uint16 kR12 = 1389;
+ const static uint16 kR13 = 1393;
+ const static uint16 kR14 = 1406;
+ const static uint16 kR20 = 1440;
+ const static uint16 kR22 = 1462;
+ const static uint16 kR23 = 1493;
+ const static uint16 kR25 = 1506;
+ const static uint16 kR26 = 1528;
+ const static uint16 kR27 = 1550;
+ const static uint16 kR28 = 1575;
+ const static uint16 kR29 = 1594;
+ const static uint16 kR45 = 1610;
+ const static uint16 kR46 = 1617;
+ const static uint16 kR47 = 1654;
+ const static uint16 kR52 = 1667;
+ const static uint16 kR53 = 1671;
+ const static uint16 kR55 = 1678;
+ const static uint16 kSpritename1 = 1832;
+ const static uint16 kSpritename3 = 1845;
+ const static uint16 kIdname = 1857;
+ const static uint16 kCharacterset1 = 1870;
+ const static uint16 kCharacterset2 = 1883;
+ const static uint16 kCharacterset3 = 1896;
+ const static uint16 kSamplename = 1909;
+ const static uint16 kBasicsample = 1922;
+ const static uint16 kIcongraphics0 = 1935;
+ const static uint16 kIcongraphics1 = 1948;
+ const static uint16 kExtragraphics1 = 1961;
+ const static uint16 kIcongraphics8 = 1974;
+ const static uint16 kMongraphicname = 1987;
+ const static uint16 kMongraphics2 = 2000;
+ const static uint16 kCityname = 2013;
+ const static uint16 kTravelgraphic1 = 2026;
+ const static uint16 kTravelgraphic2 = 2039;
+ const static uint16 kDiarygraphic = 2052;
+ const static uint16 kMonitorfile1 = 2065;
+ const static uint16 kMonitorfile2 = 2078;
+ const static uint16 kMonitorfile10 = 2091;
+ const static uint16 kMonitorfile11 = 2104;
+ const static uint16 kMonitorfile12 = 2117;
+ const static uint16 kMonitorfile13 = 2130;
+ const static uint16 kMonitorfile20 = 2143;
+ const static uint16 kMonitorfile21 = 2156;
+ const static uint16 kMonitorfile22 = 2169;
+ const static uint16 kMonitorfile23 = 2182;
+ const static uint16 kMonitorfile24 = 2195;
+ const static uint16 kFoldertext = 2208;
+ const static uint16 kDiarytext = 2221;
+ const static uint16 kPuzzletextname = 2234;
+ const static uint16 kTraveltextname = 2247;
+ const static uint16 kIntrotextname = 2260;
+ const static uint16 kEndtextname = 2273;
+ const static uint16 kCommandtextname = 2286;
+ const static uint16 kVolumetabname = 2299;
+ const static uint16 kFoldergraphic1 = 2312;
+ const static uint16 kFoldergraphic2 = 2325;
+ const static uint16 kFoldergraphic3 = 2338;
+ const static uint16 kSymbolgraphic = 2351;
+ const static uint16 kGungraphic = 2364;
+ const static uint16 kMonkface = 2377;
+ const static uint16 kTitle0graphics = 2390;
+ const static uint16 kTitle1graphics = 2403;
+ const static uint16 kTitle2graphics = 2416;
+ const static uint16 kTitle3graphics = 2429;
+ const static uint16 kTitle4graphics = 2442;
+ const static uint16 kTitle5graphics = 2455;
+ const static uint16 kTitle6graphics = 2468;
+ const static uint16 kTitle7graphics = 2481;
+ const static uint16 kPalettescreen = 2494;
+ const static uint16 kCurrentfile = 2895;
+ const static uint16 kDmaaddresses = 4949;
+ const static uint16 kFileheader = 5881;
+ const static uint16 kFiledata = 5952;
+ const static uint16 kExtradata = 5958;
+ const static uint16 kRoomdata = 5971;
+ const static uint16 kMadeuproomdat = 7782;
+ const static uint16 kRoomscango = 7798;
+ const static uint16 kRoompics = 7813;
+ const static uint16 kOplist = 7816;
+ const static uint16 kInputline = 7944;
+ const static uint16 kLinedata = 8344;
+ const static uint16 kPresslist = 8350;
+ const static uint16 kSavenames = 8367;
+ const static uint16 kSavefiles = 8482;
+ const static uint16 kRecname = 8573;
+ const static uint16 kStak = 8829;
}
Commit: 9d53cefa53349c5717e3f585445664b56361c4de
https://github.com/scummvm/scummvm/commit/9d53cefa53349c5717e3f585445664b56361c4de
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:09-07:00
Commit Message:
DREAMWEB: added allocateSegment, added some stubs
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 25e6118..8c6b3ce 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -153,11 +153,9 @@ void keyboardread(Context &context) {
}
void resetkeyboard(Context &context) {
- ::error("resetkeyboard");
}
void setkeyboardint(Context &context) {
- ::error("setkeyboardint");
}
void readfromfile(Context &context) {
@@ -201,7 +199,12 @@ void gettime(Context &context) {
}
void allocatemem(Context &context) {
- ::error("allocatemem");
+ uint size = (context.bx + 2) * 16;
+ debug(1, "allocate mem, %u bytes", size);
+ context.flags._c = false;
+ SegmentRef seg = context.allocateSegment(size);
+ context.ax = (uint16)seg;
+ debug(1, "\tsegment address -> %04x", (uint16)context.ax);
}
void deallocatemem(Context &context) {
@@ -213,7 +216,7 @@ void removeemm(Context &context) {
}
void setupemm(Context &context) {
- ::error("setupemm");
+ //fixme: double check this, but it seems that emm pages used only for sound
}
void pitinterupt(Context &context) {
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 6b5f650..bcc7c38 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -209,6 +209,14 @@ public:
return SegmentRef(this, value, &i->_value);
}
+ SegmentRef allocateSegment(uint size) {
+ unsigned id = kDefaultDataSegment + _segments.size();
+ assert(!_segments.contains(id));
+ Segment &seg = _segments[id];
+ seg.data.resize(size);
+ return SegmentRef(this, id, &seg);
+ }
+
inline void _cmp(uint8 a, uint8 b) {
uint8 x = a;
_sub(x, b);
Commit: e94a8299aa2aa6dec189232f2db8a340e588c228
https://github.com/scummvm/scummvm/commit/e94a8299aa2aa6dec189232f2db8a340e588c228
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:13-07:00
Commit Message:
DREAMWEB: fixed invalid operator=
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index bcc7c38..c46ac64 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -120,6 +120,7 @@ public:
inline void reset(uint16 value);
inline SegmentRef& operator=(const uint16 id) {
+ reset(id);
return *this;
}
Commit: 40c02f2f7ff999ee1b07306604607cb2ff3e12e5
https://github.com/scummvm/scummvm/commit/40c02f2f7ff999ee1b07306604607cb2ff3e12e5
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:17-07:00
Commit Message:
DREAMWEB: replaced seecommandtail with stub
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index c4214b2..159acac 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -7,5 +7,5 @@ p = parser()
p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
p.link()
-generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2'])
+generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2', 'seecommandtail'])
generator.generate('dreamweb') #start routine
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index cb94596..bf996f8 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2,7 +2,6 @@
namespace dreamgen {
-static void seecommandtail(Context &context);
static void checkbasemem(Context &context);
static void allocatebuffers(Context &context);
static void clearbuffers(Context &context);
@@ -145,7 +144,6 @@ static void dumptimedtext(Context &context);
static void readmouse4(Context &context);
static void dumpwatch(Context &context);
static void fadescreenup(Context &context);
-static void parseblaster(Context &context);
static void clearreels(Context &context);
static void clearrest(Context &context);
static void trysoundalloc(Context &context);
@@ -17455,54 +17453,6 @@ static void clearrest(Context & context) {
return;
}
-static void seecommandtail(Context & context) {
- context.ds.word(372) = 0x220;
- context.ds.byte(378) = 5;
- context.ds.byte(379) = 1;
- context.ds.byte(73) = 0;
- context.bx = 2;
- context.ax = context.ds.word(context.bx);
- context.dx = context.es;
- context._sub(context.ax, context.dx);
- context.ds.word(534) = context.ax;
- context.bx = 0x02c;
- context.ax = context.ds.word(context.bx);
- context.push(context.es);
- context.push(context.bx);
- context.es = context.ax;
- context.bx = 0;
-findblaster:
- context.ax = context.ds.word(context.bx);
- context._cmp(context.ax, 0);
- if (context.flags.z()) goto endofenvironment;
- context._cmp(context.al, 'B');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ah, 'L');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ds.byte(context.bx+2), 'A');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ds.byte(context.bx+3), 'S');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ds.byte(context.bx+4), 'T');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ds.byte(context.bx+5), 'E');
- if (!context.flags.z()) goto notblast;
- context._cmp(context.ds.byte(context.bx+6), 'R');
- if (!context.flags.z()) goto notblast;
- context._add(context.bx, 7);
- parseblaster(context);
- goto endofenvironment;
-notblast:
- context._add(context.bx, 1);
- goto findblaster;
-endofenvironment:
- context.bx = context.pop();
- context.es = context.pop();
- context.bx = 0x81;
- parseblaster(context);
- return;
-}
-
static void parseblaster(Context & context) {
lookattail:
context.al = context.ds.byte(context.bx);
@@ -22043,7 +21993,6 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc97c: clearrest(context); break;
case 0xc980: deallocatemem(context); break;
case 0xc984: allocatemem(context); break;
- case 0xc988: seecommandtail(context); break;
case 0xc98c: parseblaster(context); break;
case 0xc990: startup(context); break;
case 0xc994: startup1(context); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index c82d9f8..3696c95 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -11,6 +11,7 @@ namespace dreamgen {
void randomnumber(Context &context);
void quickquit(Context &context);
void quickquit2(Context &context);
+ void seecommandtail(Context &context);
void keyboardread(Context &context);
void resetkeyboard(Context &context);
void setkeyboardint(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 8c6b3ce..c25ee6a 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -136,15 +136,25 @@ Common::Error DreamWebEngine::run() {
namespace dreamgen {
+void seecommandtail(Context &context) {
+ context.ds.word(kSoundbaseadd) = 0x220;
+ context.ds.byte(kSoundint) = 5;
+ context.ds.byte(kSounddmachannel) = 1;
+ context.ds.byte(kBrightness) = 1;
+ context.ds.word(kHowmuchalloc) = 0x9360;
+}
+
void randomnumber(Context &context) {
::error("randomnumber");
}
void quickquit(Context &context) {
+ assert(0);
::error("quickquit");
}
void quickquit2(Context &context) {
+ assert(0);
::error("quickquit2");
}
Commit: d4d5c0527e4fa42cb83e58b03190e92eb2c2ddbb
https://github.com/scummvm/scummvm/commit/d4d5c0527e4fa42cb83e58b03190e92eb2c2ddbb
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:21-07:00
Commit Message:
DREAMWEB: implemented some of the stubs
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index c25ee6a..f2c86eb 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -44,25 +44,26 @@
namespace DreamWeb {
-DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
+DreamWebEngine *DreamWebEngine::_instance;
+
+DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc) :
+ Engine(syst), _gameDescription(gameDesc), _rnd("dreamweb") {
// Setup mixer
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume"));
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
_mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, ConfMan.getInt("speech_volume"));
- _rnd = new Common::RandomSource("dreamweb");
-
_vSyncInterrupt = false;
_console = 0;
DebugMan.addDebugChannel(kDebugAnimation, "Animation", "Animation Debug Flag");
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
+ _instance = this;
}
DreamWebEngine::~DreamWebEngine() {
DebugMan.clearAllDebugChannels();
delete _console;
- delete _rnd;
}
// Let's see if it's a good idea to emulate VSYNC interrupts with a timer like
@@ -136,6 +137,11 @@ Common::Error DreamWebEngine::run() {
namespace dreamgen {
+
+static inline DreamWeb::DreamWebEngine *engine() {
+ return DreamWeb::DreamWebEngine::instance();
+}
+
void seecommandtail(Context &context) {
context.ds.word(kSoundbaseadd) = 0x220;
context.ds.byte(kSoundint) = 5;
@@ -145,7 +151,7 @@ void seecommandtail(Context &context) {
}
void randomnumber(Context &context) {
- ::error("randomnumber");
+ context.al = engine()->randomNumber();
}
void quickquit(Context &context) {
@@ -201,11 +207,18 @@ void mousecall(Context &context) {
}
void setmouse(Context &context) {
- ::error("setmouse");
+ context.ds.word(kOldpointerx) = 0xffff;
+ warning("setmouse: fixme: add range setting");
+ //set vertical range to 15-184
+ //set horizontal range to 15-298*2
}
void gettime(Context &context) {
- ::error("gettime");
+ warning("gettime: stub: ");
+ context.ch = 10;
+ context.cl = 15;
+ context.dh = 0;
+;
}
void allocatemem(Context &context) {
@@ -357,7 +370,7 @@ void showgroup(Context &context) {
}
void fadedos(Context &context) {
- ::error("fadedos");
+ warning("fadedos: STUB");
}
void doshake(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 2bff384..96aa61a 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -50,8 +50,9 @@ struct DreamWebGameDescription;
class DreamWebEngine : public Engine {
private:
- DreamWebConsole *_console;
- bool _vSyncInterrupt;
+ DreamWebConsole *_console;
+ bool _vSyncInterrupt;
+ static DreamWebEngine *_instance;
protected:
// Engine APIs
@@ -61,6 +62,7 @@ protected:
public:
DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc);
virtual ~DreamWebEngine();
+ static DreamWebEngine* instance() { return _instance; }
void setVSyncInterrupt(bool flag);
void waitForVSync();
@@ -71,10 +73,12 @@ public:
bool canLoadGameStateCurrently();
bool canSaveGameStateCurrently();
- const DreamWebGameDescription *_gameDescription;
+//dreamgen public api:
+ uint8 randomNumber() { return _rnd.getRandomNumber(255); }
- Common::RandomSource *_rnd;
-
+private:
+ const DreamWebGameDescription *_gameDescription;
+ Common::RandomSource _rnd;
Common::Point _mouse;
};
Commit: f0b54cec1319a0d1e56e66350091732f73a47d62
https://github.com/scummvm/scummvm/commit/f0b54cec1319a0d1e56e66350091732f73a47d62
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:24-07:00
Commit Message:
DREAMWEB: fixed typo
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index f2c86eb..d27fba2 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -218,7 +218,6 @@ void gettime(Context &context) {
context.ch = 10;
context.cl = 15;
context.dh = 0;
-;
}
void allocatemem(Context &context) {
Commit: 9e10e8e8939a0834611c37ccad5cfb382c62d899
https://github.com/scummvm/scummvm/commit/9e10e8e8939a0834611c37ccad5cfb382c62d899
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:28-07:00
Commit Message:
DREAMWEB: minor cleanup
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index d27fba2..19e5b29 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -214,9 +214,9 @@ void setmouse(Context &context) {
}
void gettime(Context &context) {
- warning("gettime: stub: ");
+ warning("gettime: stub: 10:10:00");
context.ch = 10;
- context.cl = 15;
+ context.cl = 10;
context.dh = 0;
}
Commit: a5e76d6911d29c42b810925480fd80478356fd10
https://github.com/scummvm/scummvm/commit/a5e76d6911d29c42b810925480fd80478356fd10
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:33-07:00
Commit Message:
DREAMWEB: cleaned up register part mess
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index c46ac64..c3b4fc9 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -11,13 +11,17 @@ namespace dreamgen {
//fixme: name clash
#undef random
-enum { kLowPartOfRegister = 0, kHighPartOfRegister = 1 };
+struct LowPartOfRegister {
+ enum { Mask = 0xff };
+ enum { Shift = 0 };
+};
+struct HighPartOfRegister {
+ enum { Mask = 0xff00 };
+ enum { Shift = 8 };
+};
struct Register {
- union {
- uint16 _value;
- uint8 _part[2];
- };
+ uint16 _value;
inline Register(): _value() {}
inline Register& operator=(uint16 v) { _value = v; return *this; }
inline operator uint16&() { return _value; }
@@ -29,44 +33,46 @@ struct Register {
}
};
-template<unsigned PART>
+template<typename P>
struct RegisterPart {
- uint8 &_part;
+ typedef P PartTraits;
+ Register &_reg;
+ uint8 _value;
- inline RegisterPart(Register ®) : _part(reg._part[PART]) {}
+ inline RegisterPart(Register ®) : _reg(reg), _value(reg._value >> PartTraits::Shift) {}
inline operator uint8&() {
- return _part;
+ return _value;
}
inline RegisterPart& operator=(const RegisterPart& o) {
- _part = o._part;
+ _value = o._value;
return *this;
}
inline RegisterPart& operator=(uint8 v) {
- _part = v;
+ _value = v;
return *this;
}
+ inline ~RegisterPart() {
+ _reg._value = (_reg._value & ~PartTraits::Mask) | (_value << PartTraits::Shift);
+ }
};
class WordRef {
Common::Array<uint8> &_data;
unsigned _index;
- bool _changed;
uint16 _value;
public:
- inline WordRef(Common::Array<uint8> &data, unsigned index) : _data(data), _index(index), _changed(false) {
+ inline WordRef(Common::Array<uint8> &data, unsigned index) : _data(data), _index(index) {
assert(index + 1 < data.size());
_value = _data[index] | (_data[index + 1] << 8);
}
inline WordRef& operator=(const WordRef &ref) {
- _changed = true;
_value = ref._value;
return *this;
}
inline WordRef& operator=(uint16 v) {
- _changed = true;
_value = v;
return *this;
}
@@ -77,10 +83,8 @@ public:
return _value;
}
inline ~WordRef() {
- if (_changed) {
- _data[_index] = _value & 0xff;
- _data[_index + 1] = _value >> 8;
- }
+ _data[_index] = _value & 0xff;
+ _data[_index + 1] = _value >> 8;
}
};
@@ -185,14 +189,14 @@ public:
enum { kDefaultDataSegment = 0x1000 };
Register ax, dx, bx, cx, si, di;
- RegisterPart<kLowPartOfRegister> al;
- RegisterPart<kHighPartOfRegister> ah;
- RegisterPart<kLowPartOfRegister> bl;
- RegisterPart<kHighPartOfRegister> bh;
- RegisterPart<kLowPartOfRegister> cl;
- RegisterPart<kHighPartOfRegister> ch;
- RegisterPart<kLowPartOfRegister> dl;
- RegisterPart<kHighPartOfRegister> dh;
+ RegisterPart<LowPartOfRegister> al;
+ RegisterPart<HighPartOfRegister> ah;
+ RegisterPart<LowPartOfRegister> bl;
+ RegisterPart<HighPartOfRegister> bh;
+ RegisterPart<LowPartOfRegister> cl;
+ RegisterPart<HighPartOfRegister> ch;
+ RegisterPart<LowPartOfRegister> dl;
+ RegisterPart<HighPartOfRegister> dh;
SegmentRef cs, ds, es;
Flags flags;
Commit: 222d9b23762d24ad3a752c8fbb9d2112cd2faeba
https://github.com/scummvm/scummvm/commit/222d9b23762d24ad3a752c8fbb9d2112cd2faeba
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:38-07:00
Commit Message:
DREAMWEB: fixed stosw instruction
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index c3b4fc9..1d3096d 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -345,7 +345,7 @@ public:
es.byte(di++) = al;
}
inline void _stosw() {
- es.word(di) = al;
+ es.word(di) = ax;
di += 2;
}
Commit: f7de3e8c386293b162225829a8268565408b0e4e
https://github.com/scummvm/scummvm/commit/f7de3e8c386293b162225829a8268565408b0e4e
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:42-07:00
Commit Message:
DREAMWEB: simplified register part definition
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 1d3096d..be83686 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -11,15 +11,6 @@ namespace dreamgen {
//fixme: name clash
#undef random
-struct LowPartOfRegister {
- enum { Mask = 0xff };
- enum { Shift = 0 };
-};
-struct HighPartOfRegister {
- enum { Mask = 0xff00 };
- enum { Shift = 8 };
-};
-
struct Register {
uint16 _value;
inline Register(): _value() {}
@@ -33,13 +24,12 @@ struct Register {
}
};
-template<typename P>
+template<int Mask, int Shift>
struct RegisterPart {
- typedef P PartTraits;
Register &_reg;
uint8 _value;
- inline RegisterPart(Register ®) : _reg(reg), _value(reg._value >> PartTraits::Shift) {}
+ inline RegisterPart(Register ®) : _reg(reg), _value(reg._value >> Shift) {}
inline operator uint8&() {
return _value;
@@ -53,9 +43,11 @@ struct RegisterPart {
return *this;
}
inline ~RegisterPart() {
- _reg._value = (_reg._value & ~PartTraits::Mask) | (_value << PartTraits::Shift);
+ _reg._value = (_reg._value & Mask) | (_value << Shift);
}
};
+typedef RegisterPart<0xff, 0> LowPartOfRegister;
+typedef RegisterPart<0xff00, 8> HighPartOfRegister;
class WordRef {
Common::Array<uint8> &_data;
@@ -189,14 +181,14 @@ public:
enum { kDefaultDataSegment = 0x1000 };
Register ax, dx, bx, cx, si, di;
- RegisterPart<LowPartOfRegister> al;
- RegisterPart<HighPartOfRegister> ah;
- RegisterPart<LowPartOfRegister> bl;
- RegisterPart<HighPartOfRegister> bh;
- RegisterPart<LowPartOfRegister> cl;
- RegisterPart<HighPartOfRegister> ch;
- RegisterPart<LowPartOfRegister> dl;
- RegisterPart<HighPartOfRegister> dh;
+ LowPartOfRegister al;
+ HighPartOfRegister ah;
+ LowPartOfRegister bl;
+ HighPartOfRegister bh;
+ LowPartOfRegister cl;
+ HighPartOfRegister ch;
+ LowPartOfRegister dl;
+ HighPartOfRegister dh;
SegmentRef cs, ds, es;
Flags flags;
Commit: 78cc82a18ce8047e703a2fbbdc6a729f760e2905
https://github.com/scummvm/scummvm/commit/78cc82a18ce8047e703a2fbbdc6a729f760e2905
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:45-07:00
Commit Message:
DREAMWEB: fixed typo
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index be83686..6b33028 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -29,7 +29,7 @@ struct RegisterPart {
Register &_reg;
uint8 _value;
- inline RegisterPart(Register ®) : _reg(reg), _value(reg._value >> Shift) {}
+ explicit inline RegisterPart(Register ®) : _reg(reg), _value(reg._value >> Shift) {}
inline operator uint8&() {
return _value;
@@ -46,6 +46,7 @@ struct RegisterPart {
_reg._value = (_reg._value & Mask) | (_value << Shift);
}
};
+
typedef RegisterPart<0xff, 0> LowPartOfRegister;
typedef RegisterPart<0xff00, 8> HighPartOfRegister;
@@ -60,14 +61,17 @@ public:
assert(index + 1 < data.size());
_value = _data[index] | (_data[index + 1] << 8);
}
+
inline WordRef& operator=(const WordRef &ref) {
_value = ref._value;
return *this;
}
+
inline WordRef& operator=(uint16 v) {
_value = v;
return *this;
}
+
inline operator uint16() const {
return _value;
}
@@ -158,7 +162,7 @@ struct Flags {
inline bool l() const { return !_z && _s != _o; }
inline bool le() const { return _z || _s != _o; }
- inline void update_sign(uint8 v) {
+ inline void update(uint8 v) {
bool new_s = v & 0x80;
_o = new_s != _s;
_s = new_s;
Commit: 27210a70b49567e1307fcf9f43558ef615daa3ac
https://github.com/scummvm/scummvm/commit/27210a70b49567e1307fcf9f43558ef615daa3ac
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:51-07:00
Commit Message:
DREAMWEB: removed useless const methods, fixed mask
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 6b33028..b6771dd 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -43,7 +43,7 @@ struct RegisterPart {
return *this;
}
inline ~RegisterPart() {
- _reg._value = (_reg._value & Mask) | (_value << Shift);
+ _reg._value = (_reg._value & ~Mask) | (_value << Shift);
}
};
@@ -56,7 +56,6 @@ class WordRef {
uint16 _value;
public:
-
inline WordRef(Common::Array<uint8> &data, unsigned index) : _data(data), _index(index) {
assert(index + 1 < data.size());
_value = _data[index] | (_data[index + 1] << 8);
@@ -72,9 +71,6 @@ public:
return *this;
}
- inline operator uint16() const {
- return _value;
- }
inline operator uint16&() {
return _value;
}
@@ -96,11 +92,6 @@ struct Segment {
return data[index];
}
- inline uint16 word(unsigned index) const {
- assert(index + 1 < data.size());
- return data[index] | (data[index + 1] << 8);
- }
-
inline WordRef word(unsigned index) {
return WordRef(data, index);
}
Commit: 326d5025ccdf0af4cf580583066bc0708a0c4e74
https://github.com/scummvm/scummvm/commit/326d5025ccdf0af4cf580583066bc0708a0c4e74
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:55-07:00
Commit Message:
DREAMWEB: removed const method
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index b6771dd..8e2eeb1 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -120,11 +120,6 @@ public:
return _segment->byte(index);
}
- inline uint16 word(unsigned index) const {
- assert(_segment != 0);
- return _segment->word(index);
- }
-
inline operator uint16() const {
return _value;
}
Commit: 694c00bd10ec3daaf61445dfdc7c37f6c04a525c
https://github.com/scummvm/scummvm/commit/694c00bd10ec3daaf61445dfdc7c37f6c04a525c
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:31:59-07:00
Commit Message:
DREAMWEB: cleanups
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 8e2eeb1..30bd043 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -4,6 +4,7 @@
#include <assert.h>
#include "common/scummsys.h"
#include "common/array.h"
+#include "common/debug.h"
#include "common/hashmap.h"
namespace dreamgen {
@@ -51,32 +52,37 @@ typedef RegisterPart<0xff, 0> LowPartOfRegister;
typedef RegisterPart<0xff00, 8> HighPartOfRegister;
class WordRef {
- Common::Array<uint8> &_data;
- unsigned _index;
- uint16 _value;
+ uint8 *_data;
+ unsigned _index;
+ uint16 _value;
public:
- inline WordRef(Common::Array<uint8> &data, unsigned index) : _data(data), _index(index) {
+ inline WordRef(Common::Array<uint8> &data, unsigned index) : _data(data.begin() + index), _index(index) {
assert(index + 1 < data.size());
- _value = _data[index] | (_data[index + 1] << 8);
+ _value = _data[0] | (_data[1] << 8);
+ debug(1, "word ref %d -> 0x%04x", _index, _value);
}
-
+
inline WordRef& operator=(const WordRef &ref) {
_value = ref._value;
return *this;
}
-
+
inline WordRef& operator=(uint16 v) {
_value = v;
return *this;
}
-
+
inline operator uint16&() {
return _value;
}
+
inline ~WordRef() {
- _data[_index] = _value & 0xff;
- _data[_index + 1] = _value >> 8;
+ debug(1, "writing %d -> 0x%04x", _index, _value);
+ _data[0] = _value & 0xff;
+ _data[1] = _value >> 8;
+ _value = _data[0] | (_data[1] << 8);
+ debug(1, "word ref result %d -> 0x%04x", _index, _value);
}
};
@@ -189,13 +195,13 @@ public:
ds.reset(kDefaultDataSegment);
es.reset(kDefaultDataSegment);
}
-
+
SegmentRef getSegment(uint16 value) {
SegmentMap::iterator i = _segments.find(value);
assert(i != _segments.end());
return SegmentRef(this, value, &i->_value);
}
-
+
SegmentRef allocateSegment(uint size) {
unsigned id = kDefaultDataSegment + _segments.size();
assert(!_segments.contains(id));
@@ -203,39 +209,45 @@ public:
seg.data.resize(size);
return SegmentRef(this, id, &seg);
}
-
+
inline void _cmp(uint8 a, uint8 b) {
uint8 x = a;
_sub(x, b);
}
+
inline void _cmp(uint16 a, uint16 b) {
uint16 x = a;
_sub(x, b);
}
+
inline void _test(uint8 a, uint8 b) {
uint8 x = a;
_and(x, b);
}
+
inline void _test(uint16 a, uint16 b) {
uint16 x = a;
_and(x, b);
}
-
+
inline void _add(uint8 &dst, uint8 src) {
flags._c = dst + src < dst;
dst += src;
flags.update(dst);
}
+
inline void _add(uint16 &dst, uint16 src) {
flags._c = dst + src < dst;
dst += src;
flags.update(dst);
}
+
inline void _sub(uint8 &dst, uint8 src) {
flags._c = dst < src;
dst -= src;
flags.update(dst);
}
+
inline void _sub(uint16 &dst, uint16 src) {
flags._c = dst < src;
dst -= src;
@@ -247,16 +259,19 @@ public:
flags._c = false;
flags.update(dst);
}
+
inline void _and(uint16 &dst, uint16 src) {
dst &= src;
flags._c = false;
flags.update(dst);
}
+
inline void _or(uint8 &dst, uint8 src) {
dst |= src;
flags._c = false;
flags.update(dst);
}
+
inline void _or(uint16 &dst, uint16 src) {
dst |= src;
flags._c = false;
@@ -268,6 +283,7 @@ public:
flags._c = false;
flags.update(dst);
}
+
inline void _xor(uint16 &dst, uint16 src) {
dst ^= src;
flags._c = false;
@@ -278,6 +294,7 @@ public:
inline void _shr(uint16 &dst, uint8 src) {}
inline void _shl(uint8 &dst, uint8 src) {}
inline void _shl(uint16 &dst, uint8 src) {}
+
inline void _mul(uint8 src) {
unsigned r = unsigned(al) * src;
ax = (uint16)r;
@@ -287,6 +304,7 @@ public:
flags._o = s != flags._s;
flags._s = s;
}
+
inline void _mul(uint16 src) {
unsigned r = unsigned(ax) * src; //assuming here that we have at least 32 bits
dx = (r >> 16) & 0xffff;
@@ -297,11 +315,13 @@ public:
flags._o = s != flags._s;
flags._s = s;
}
+
inline void _neg(uint8 &src) {
src = ~src;
flags._c = false;
flags.update(src);
}
+
inline void _neg(uint16 &src) {
src = ~src;
flags._c = false;
@@ -311,26 +331,31 @@ public:
inline void _movsb() {
es.byte(di++) = ds.byte(si++);
}
+
inline void _movsw() {
es.word(di) = ds.word(si);
di += 2;
si += 2;
}
+
inline void _lodsb() {
al = ds.byte(si++);
}
+
inline void _lodsw() {
ax = ds.word(si);
si += 2;
}
+
inline void _stosb() {
es.byte(di++) = al;
}
+
inline void _stosw() {
es.word(di) = ax;
di += 2;
}
-
+
inline void _xchg(uint16 &a, uint16 &b) {
uint16 x = a;
a = b;
@@ -347,6 +372,7 @@ public:
inline void push(uint16 v) {
stack.push_back(v);
}
+
inline uint16 pop() {
uint16 v = stack.back();
stack.pop_back();
Commit: bba7724aec6b6b440e166fdd95b65be5346977c1
https://github.com/scummvm/scummvm/commit/bba7724aec6b6b440e166fdd95b65be5346977c1
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:02-07:00
Commit Message:
DREAMWEB: added fake data register pointing to variables
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/runtime.h
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index a8d2253..1e77893 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -63,7 +63,7 @@ namespace %s {
if size == 0:
raise Exception("invalid var '%s' size %u" %(name, size))
if self.indirection == 0:
- value = "context.ds.%s(%d)" %("byte" if size == 1 else "word", g.offset)
+ value = "context.data.%s(%d)" %("byte" if size == 1 else "word", g.offset)
elif self.indirection == -1:
value = "%s" %g.offset
self.indirection = 0
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index bf996f8..ef05c31 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -514,9 +514,9 @@ nofog:
static void receptionist(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
- context._cmp(context.ds.byte(52), 1);
+ context._cmp(context.data.byte(52), 1);
if (!context.flags.z()) goto notsetcard;
- context._add(context.ds.byte(52), 1);
+ context._add(context.data.byte(52), 1);
context.ds.byte(context.bx+7) = 1;
context.ds.word(context.bx+3) = 64;
notsetcard:
@@ -548,13 +548,13 @@ gotrecep:
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedrecep;
- context.ds.byte(51) = 1;
+ context.data.byte(51) = 1;
nottalkedrecep:
return;
}
static void smokebloke(Context & context) {
- context._cmp(context.ds.byte(41), 0);
+ context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto notspokento;
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
@@ -594,7 +594,7 @@ static void attendant(Context & context) {
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalked;
- context.ds.byte(48) = 1;
+ context.data.byte(48) = 1;
nottalked:
return;
}
@@ -609,7 +609,7 @@ static void manasleep(Context & context) {
}
static void eden(Context & context) {
- context._cmp(context.ds.byte(42), 0);
+ context._cmp(context.data.byte(42), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
addtopeoplelist(context);
@@ -618,9 +618,9 @@ notinbed:
}
static void edeninbath(Context & context) {
- context._cmp(context.ds.byte(42), 0);
+ context._cmp(context.data.byte(42), 0);
if (context.flags.z()) goto notinbed;
- context._cmp(context.ds.byte(43), 0);
+ context._cmp(context.data.byte(43), 0);
if (!context.flags.z()) goto notinbath;
showgamereel(context);
addtopeoplelist(context);
@@ -645,7 +645,7 @@ static void femalefan(Context & context) {
}
static void louis(Context & context) {
- context._cmp(context.ds.byte(41), 0);
+ context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
addtopeoplelist(context);
@@ -654,7 +654,7 @@ notlouis1:
}
static void louischair(Context & context) {
- context._cmp(context.ds.byte(41), 0);
+ context._cmp(context.data.byte(41), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
if (!context.flags.z()) goto notlouisanim;
@@ -742,7 +742,7 @@ notsmoket2:
context._add(context.ds.word(context.bx+3), 1);
gotsmoket:
showgamereel(context);
- context._cmp(context.ds.byte(46), 1);
+ context._cmp(context.data.byte(46), 1);
if (!context.flags.z()) goto notgotgun;
context.ds.byte(context.bx+7) = 9;
notgotgun:
@@ -763,7 +763,7 @@ static void barwoman(Context & context) {
}
static void interviewer(Context & context) {
- context._cmp(context.ds.word(23), 68);
+ context._cmp(context.data.word(23), 68);
if (!context.flags.z()) goto notgeneralstart;
context._add(context.ds.word(context.bx+3), 1);
notgeneralstart:
@@ -782,13 +782,13 @@ talking:
static void soldier1(Context & context) {
context._cmp(context.ds.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
- context.ds.word(21) = 10;
+ context.data.word(21) = 10;
context._cmp(context.ds.word(context.bx+3), 30);
if (!context.flags.z()) goto notaftersshot;
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 40);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
if (!context.flags.z()) goto gotsoldframe;
- context.ds.byte(56) = 2;
+ context.data.byte(56) = 2;
goto gotsoldframe;
notaftersshot:
checkspeed(context);
@@ -796,16 +796,16 @@ notaftersshot:
context._add(context.ds.word(context.bx+3), 1);
goto gotsoldframe;
soldierwait:
- context._cmp(context.ds.byte(65), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto gotsoldframe;
- context.ds.word(21) = 10;
- context._cmp(context.ds.byte(475), 2);
+ context.data.word(21) = 10;
+ context._cmp(context.data.byte(475), 2);
if (!context.flags.z()) goto gotsoldframe;
- context._cmp(context.ds.byte(133), 4);
+ context._cmp(context.data.byte(133), 4);
if (!context.flags.z()) goto gotsoldframe;
context._add(context.ds.word(context.bx+3), 1);
- context.ds.byte(65) = -1;
- context.ds.byte(64) = 0;
+ context.data.byte(65) = -1;
+ context.data.byte(64) = 0;
gotsoldframe:
showgamereel(context);
addtopeoplelist(context);
@@ -824,22 +824,22 @@ static void rockstar(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 118);
if (!context.flags.z()) goto notbeforedead;
- context.ds.byte(56) = 2;
+ context.data.byte(56) = 2;
goto gotrockframe;
notbeforedead:
context._cmp(context.ax, 79);
if (!context.flags.z()) goto gotrockframe;
context._sub(context.ax, 1);
- context._cmp(context.ds.byte(65), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto notgunonrock;
- context.ds.byte(65) = -1;
+ context.data.byte(65) = -1;
context.ax = 123;
goto gotrockframe;
notgunonrock:
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 40);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
if (!context.flags.z()) goto gotrockframe;
- context.ds.byte(64) = 0;
+ context.data.byte(64) = 0;
context.ax = 79;
gotrockframe:
context.ds.word(context.bx+3) = context.ax;
@@ -848,17 +848,17 @@ rockspeed:
context._cmp(context.ds.word(context.bx+3), 78);
if (!context.flags.z()) goto notalkrock;
addtopeoplelist(context);
- context.ds.byte(234) = 2;
- context.ds.word(21) = 0;
+ context.data.byte(234) = 2;
+ context.data.word(21) = 0;
return;
notalkrock:
- context.ds.word(21) = 2;
- context.ds.byte(234) = 0;
- context.al = context.ds.byte(149);
+ context.data.word(21) = 2;
+ context.data.byte(234) = 0;
+ context.al = context.data.byte(149);
context.ds.byte(context.bx+2) = context.al;
return;
rockcombatend:
- context.ds.byte(188) = 45;
+ context.data.byte(188) = 45;
showgamereel(context);
return;
}
@@ -873,10 +873,10 @@ static void helicopter(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 53);
if (!context.flags.z()) goto notbeforehdead;
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 8);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 8);
if (context.flags.c()) goto waitabit;
- context.ds.byte(56) = 2;
+ context.data.byte(56) = 2;
waitabit:
context.ax = 49;
goto gotheliframe;
@@ -884,39 +884,39 @@ notbeforehdead:
context._cmp(context.ax, 9);
if (!context.flags.z()) goto gotheliframe;
context._sub(context.ax, 1);
- context._cmp(context.ds.byte(65), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto notgunonheli;
- context.ds.byte(65) = -1;
+ context.data.byte(65) = -1;
context.ax = 55;
goto gotheliframe;
notgunonheli:
context.ax = 5;
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 20);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 20);
if (!context.flags.z()) goto gotheliframe;
- context.ds.byte(64) = 0;
+ context.data.byte(64) = 0;
context.ax = 9;
gotheliframe:
context.ds.word(context.bx+3) = context.ax;
helispeed:
showgamereel(context);
- context.al = context.ds.byte(148);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+1) = context.al;
helicombatend:
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 9);
if (!context.flags.c()) goto notwaitingheli;
- context._cmp(context.ds.byte(64), 7);
+ context._cmp(context.data.byte(64), 7);
if (context.flags.c()) goto notwaitingheli;
- context.ds.byte(234) = 2;
- context.ds.word(21) = 0;
+ context.data.byte(234) = 2;
+ context.data.word(21) = 0;
return;
notwaitingheli:
- context.ds.byte(234) = 0;
- context.ds.word(21) = 2;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
return;
heliwon:
- context.ds.byte(234) = 0;
+ context.data.byte(234) = 0;
return;
}
@@ -928,14 +928,14 @@ static void mugger(Context & context) {
if (context.flags.z()) goto endmugger2;
context._cmp(context.ax, 2);
if (!context.flags.z()) goto havesetwatch;
- context.ds.word(21) = 175*2;
+ context.data.word(21) = 175*2;
havesetwatch:
checkspeed(context);
if (!context.flags.z()) goto notmugger;
context._add(context.ds.word(context.bx+3), 1);
notmugger:
showgamereel(context);
- context.al = context.ds.byte(148);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+1) = context.al;
return;
endmugger1:
@@ -958,25 +958,25 @@ endmugger1:
context.push(context.es);
context.push(context.bx);
context.ds.word(context.bx+3) = 140;
- context.ds.byte(475) = 2;
- context.ds.byte(477) = 2;
+ context.data.byte(475) = 2;
+ context.data.byte(477) = 2;
findxyfrompath(context);
- context.ds.byte(187) = 1;
+ context.data.byte(187) = 1;
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'A';
findexobject(context);
- context.ds.byte(99) = context.al;
- context.ds.byte(102) = 4;
+ context.data.byte(99) = context.al;
+ context.data.byte(102) = 4;
removeobfrominv(context);
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'B';
findexobject(context);
- context.ds.byte(99) = context.al;
- context.ds.byte(102) = 4;
+ context.data.byte(99) = context.al;
+ context.data.byte(102) = 4;
removeobfrominv(context);
makemainscreen(context);
context.al = 48;
@@ -985,7 +985,7 @@ endmugger1:
context.cx = 70;
context.dx = 10;
setuptimeduse(context);
- context.ds.byte(45) = 1;
+ context.data.byte(45) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -1000,8 +1000,8 @@ static void aide(Context & context) {
}
static void businessman(Context & context) {
- context.ds.byte(234) = 0;
- context.ds.word(21) = 2;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 2);
if (!context.flags.z()) goto notfirstbiz;
@@ -1028,23 +1028,23 @@ notfirstbiz:
context._add(context.ax, 1);
context._cmp(context.ax, 48);
if (!context.flags.z()) goto notbeforedeadb;
- context.ds.byte(56) = 2;
+ context.data.byte(56) = 2;
goto gotbusframe;
notbeforedeadb:
context._cmp(context.ax, 15);
if (!context.flags.z()) goto buscombatwon;
context._sub(context.ax, 1);
- context._cmp(context.ds.byte(65), 3);
+ context._cmp(context.data.byte(65), 3);
if (!context.flags.z()) goto notshieldonbus;
- context.ds.byte(65) = -1;
- context.ds.byte(64) = 0;
+ context.data.byte(65) = -1;
+ context.data.byte(64) = 0;
context.ax = 51;
goto gotbusframe;
notshieldonbus:
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 20);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 20);
if (!context.flags.z()) goto gotbusframe;
- context.ds.byte(64) = 0;
+ context.data.byte(64) = 0;
context.ax = 15;
goto gotbusframe;
buscombatwon:
@@ -1060,10 +1060,10 @@ buscombatwon:
turnpathon(context);
context.al = 3;
turnpathoff(context);
- context.ds.byte(475) = 5;
- context.ds.byte(477) = 5;
+ context.data.byte(475) = 5;
+ context.data.byte(477) = 5;
findxyfrompath(context);
- context.ds.byte(187) = 1;
+ context.data.byte(187) = 1;
context.es = context.pop();
context.bx = context.pop();
context.ax = 92;
@@ -1072,19 +1072,19 @@ gotbusframe:
context.ds.word(context.bx+3) = context.ax;
busspeed:
showgamereel(context);
- context.al = context.ds.byte(149);
+ context.al = context.data.byte(149);
context.ds.byte(context.bx+2) = context.al;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 14);
if (!context.flags.z()) goto buscombatend;
- context.ds.word(21) = 0;
- context.ds.byte(234) = 2;
+ context.data.word(21) = 0;
+ context.data.byte(234) = 2;
return;
buscombatend:
return;
buscombatwonend:
- context.ds.byte(234) = 0;
- context.ds.word(21) = 0;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 0;
return;
}
@@ -1108,32 +1108,32 @@ notfirstpool:
context._cmp(context.ax, 122);
if (!context.flags.z()) goto notendguard1;
context._sub(context.ax, 1);
- context._cmp(context.ds.byte(65), 2);
+ context._cmp(context.data.byte(65), 2);
if (!context.flags.z()) goto notaxeonpool;
- context.ds.byte(65) = -1;
+ context.data.byte(65) = -1;
context.ax = 122;
goto gotguardframe;
notaxeonpool:
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 40);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
if (!context.flags.z()) goto gotguardframe;
- context.ds.byte(64) = 0;
+ context.data.byte(64) = 0;
context.ax = 195;
goto gotguardframe;
notendguard1:
context._cmp(context.ax, 147);
if (!context.flags.z()) goto gotguardframe;
context._sub(context.ax, 1);
- context._cmp(context.ds.byte(65), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto notgunonpool;
- context.ds.byte(65) = -1;
+ context.data.byte(65) = -1;
context.ax = 147;
goto gotguardframe;
notgunonpool:
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 40);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 40);
if (!context.flags.z()) goto gotguardframe;
- context.ds.byte(64) = 0;
+ context.data.byte(64) = 0;
context.ax = 220;
gotguardframe:
context.ds.word(context.bx+3) = context.ax;
@@ -1144,16 +1144,16 @@ guardspeed:
if (context.flags.z()) goto iswaitingpool;
context._cmp(context.ax, 146);
if (context.flags.z()) goto iswaitingpool;
- context.ds.byte(234) = 0;
- context.ds.word(21) = 2;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
return;
iswaitingpool:
- context.ds.byte(234) = 2;
- context.ds.word(21) = 0;
+ context.data.byte(234) = 2;
+ context.data.word(21) = 0;
return;
combatover1:
- context.ds.word(21) = 0;
- context.ds.byte(234) = 0;
+ context.data.word(21) = 0;
+ context.data.byte(234) = 0;
context.al = 0;
turnpathon(context);
context.al = 1;
@@ -1161,13 +1161,13 @@ combatover1:
return;
combatover2:
showgamereel(context);
- context.ds.word(21) = 2;
- context.ds.byte(234) = 0;
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 100);
+ context.data.word(21) = 2;
+ context.data.byte(234) = 0;
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 100);
if (context.flags.c()) goto doneover2;
- context.ds.word(21) = 0;
- context.ds.byte(56) = 2;
+ context.data.word(21) = 0;
+ context.data.byte(56) = 2;
doneover2:
return;
}
@@ -1179,20 +1179,20 @@ static void security(Context & context) {
if (!context.flags.z()) goto notaftersec;
return;
notaftersec:
- context.ds.word(21) = 10;
+ context.data.word(21) = 10;
checkspeed(context);
if (!context.flags.z()) goto gotsecurframe;
context._add(context.ds.word(context.bx+3), 1);
goto gotsecurframe;
securwait:
- context._cmp(context.ds.byte(65), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto gotsecurframe;
- context.ds.word(21) = 10;
- context._cmp(context.ds.byte(475), 9);
+ context.data.word(21) = 10;
+ context._cmp(context.data.byte(475), 9);
if (!context.flags.z()) goto gotsecurframe;
- context._cmp(context.ds.byte(133), 0);
+ context._cmp(context.data.byte(133), 0);
if (!context.flags.z()) goto gotsecurframe;
- context.ds.byte(65) = -1;
+ context.data.byte(65) = -1;
context._add(context.ds.word(context.bx+3), 1);
gotsecurframe:
showgamereel(context);
@@ -1206,13 +1206,13 @@ static void heavy(Context & context) {
context.ds.byte(context.bx+7) = context.al;
context._cmp(context.ds.word(context.bx+3), 43);
if (context.flags.z()) goto heavywait;
- context.ds.word(21) = 10;
+ context.data.word(21) = 10;
context._cmp(context.ds.word(context.bx+3), 70);
if (!context.flags.z()) goto notafterhshot;
- context._add(context.ds.byte(64), 1);
- context._cmp(context.ds.byte(64), 80);
+ context._add(context.data.byte(64), 1);
+ context._cmp(context.data.byte(64), 80);
if (!context.flags.z()) goto gotheavyframe;
- context.ds.byte(56) = 2;
+ context.data.byte(56) = 2;
goto gotheavyframe;
notafterhshot:
checkspeed(context);
@@ -1220,15 +1220,15 @@ notafterhshot:
context._add(context.ds.word(context.bx+3), 1);
goto gotheavyframe;
heavywait:
- context._cmp(context.ds.byte(65), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.ds.byte(475), 5);
+ context._cmp(context.data.byte(475), 5);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.ds.byte(133), 4);
+ context._cmp(context.data.byte(133), 4);
if (!context.flags.z()) goto gotheavyframe;
- context.ds.byte(65) = -1;
+ context.data.byte(65) = -1;
context._add(context.ds.word(context.bx+3), 1);
- context.ds.byte(64) = 0;
+ context.data.byte(64) = 0;
gotheavyframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1247,11 +1247,11 @@ static void bossman(Context & context) {
context._cmp(context.ax, 41);
if (!context.flags.z()) goto gotallboss;
context.ax = 0;
- context._add(context.ds.byte(46), 1);
+ context._add(context.data.byte(46), 1);
context.ds.byte(context.bx+7) = 10;
goto gotallboss;
firstdes:
- context._cmp(context.ds.byte(46), 1);
+ context._cmp(context.data.byte(46), 1);
if (context.flags.z()) goto gotallboss;
context.push(context.ax);
randomnumber(context);
@@ -1262,7 +1262,7 @@ firstdes:
context.ax = 0;
goto gotallboss;
secdes:
- context._cmp(context.ds.byte(46), 1);
+ context._cmp(context.data.byte(46), 1);
if (context.flags.z()) goto gotallboss;
context.ax = 0;
gotallboss:
@@ -1273,7 +1273,7 @@ notboss:
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedboss;
- context.ds.byte(50) = 1;
+ context.data.byte(50) = 1;
nottalkedboss:
return;
}
@@ -1317,16 +1317,16 @@ cantdrip2:
}
static void keeper(Context & context) {
- context._cmp(context.ds.byte(54), 0);
+ context._cmp(context.data.byte(54), 0);
if (!context.flags.z()) goto notwaiting;
- context._cmp(context.ds.word(23), 190);
+ context._cmp(context.data.word(23), 190);
if (context.flags.c()) goto waiting;
- context._add(context.ds.byte(54), 1);
+ context._add(context.data.byte(54), 1);
context.ah = context.ds.byte(context.bx+7);
context._and(context.ah, 127);
- context._cmp(context.ah, context.ds.byte(66));
+ context._cmp(context.ah, context.data.byte(66));
if (context.flags.z()) goto notdiff;
- context.al = context.ds.byte(66);
+ context.al = context.data.byte(66);
context.ds.byte(context.bx+7) = context.al;
notdiff:
return;
@@ -1379,16 +1379,16 @@ gotintrom1:
context.ds.word(context.bx+3) = context.ax;
context._cmp(context.ax, 121);
if (!context.flags.z()) goto introm1fin;
- context._add(context.ds.byte(139), 1);
+ context._add(context.data.byte(139), 1);
context.push(context.es);
context.push(context.bx);
intro1text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.ds.byte(139), 8);
+ context._cmp(context.data.byte(139), 8);
if (!context.flags.z()) goto introm1fin;
- context._add(context.ds.byte(149), 10);
- context.ds.byte(186) = 1;
+ context._add(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
introm1fin:
showgamereel(context);
return;
@@ -1446,7 +1446,7 @@ notbang:
slowgates:
context._cmp(context.ax, 120);
if (!context.flags.z()) goto gotgates;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
context.ax = 119;
gotgates:
context.ds.word(context.bx+3) = context.ax;
@@ -1482,12 +1482,12 @@ static void intromagic3(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 218);
if (!context.flags.z()) goto gotintrom3;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
gotintrom3:
context.ds.word(context.bx+3) = context.ax;
introm3fin:
showgamereel(context);
- context.al = context.ds.byte(148);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+1) = context.al;
return;
}
@@ -1499,15 +1499,15 @@ static void intromonks1(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 80);
if (!context.flags.z()) goto notendmonk1;
- context._add(context.ds.byte(149), 10);
- context.ds.byte(186) = 1;
+ context._add(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
showgamereel(context);
return;
notendmonk1:
context._cmp(context.ax, 30);
if (!context.flags.z()) goto gotintromonk1;
- context._sub(context.ds.byte(149), 10);
- context.ds.byte(186) = 1;
+ context._sub(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
context.ax = 51;
gotintromonk1:
context.ds.word(context.bx+3) = context.ax;
@@ -1531,7 +1531,7 @@ waitstep:
context.ds.byte(context.bx+6) = -20;
intromonk1fin:
showgamereel(context);
- context.al = context.ds.byte(149);
+ context.al = context.data.byte(149);
context.ds.byte(context.bx+2) = context.al;
return;
}
@@ -1543,13 +1543,13 @@ static void intromonks2(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 87);
if (!context.flags.z()) goto nottalk1;
- context._add(context.ds.byte(139), 1);
+ context._add(context.data.byte(139), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.ds.byte(139), 19);
+ context._cmp(context.data.byte(139), 19);
if (!context.flags.z()) goto notlasttalk1;
context.ax = 87;
goto gotintromonk2;
@@ -1559,13 +1559,13 @@ notlasttalk1:
nottalk1:
context._cmp(context.ax, 110);
if (!context.flags.z()) goto notraisearm;
- context._add(context.ds.byte(139), 1);
+ context._add(context.data.byte(139), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.ds.byte(139), 35);
+ context._cmp(context.data.byte(139), 35);
if (!context.flags.z()) goto notlastraise;
context.ax = 111;
goto gotintromonk2;
@@ -1575,7 +1575,7 @@ notlastraise:
notraisearm:
context._cmp(context.ax, 176);
if (!context.flags.z()) goto notendmonk2;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
goto gotintromonk2;
notendmonk2:
context._cmp(context.ax, 125);
@@ -1593,7 +1593,7 @@ static void handclap(Context & context) {
}
static void monks2text(Context & context) {
- context._cmp(context.ds.byte(139), 1);
+ context._cmp(context.data.byte(139), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
context.bl = 36;
@@ -1601,7 +1601,7 @@ static void monks2text(Context & context) {
context.cx = 100;
goto gotmonks2text;
notmonk2text1:
- context._cmp(context.ds.byte(139), 4);
+ context._cmp(context.data.byte(139), 4);
if (!context.flags.z()) goto notmonk2text2;
context.al = 9;
context.bl = 36;
@@ -1609,7 +1609,7 @@ notmonk2text1:
context.cx = 100;
goto gotmonks2text;
notmonk2text2:
- context._cmp(context.ds.byte(139), 7);
+ context._cmp(context.data.byte(139), 7);
if (!context.flags.z()) goto notmonk2text3;
context.al = 10;
context.bl = 36;
@@ -1617,7 +1617,7 @@ notmonk2text2:
context.cx = 100;
goto gotmonks2text;
notmonk2text3:
- context._cmp(context.ds.byte(139), 10);
+ context._cmp(context.data.byte(139), 10);
if (!context.flags.z()) goto notmonk2text4;
context.al = 11;
context.bl = 0;
@@ -1625,7 +1625,7 @@ notmonk2text3:
context.cx = 100;
goto gotmonks2text;
notmonk2text4:
- context._cmp(context.ds.byte(139), 13);
+ context._cmp(context.data.byte(139), 13);
if (!context.flags.z()) goto notmonk2text5;
context.al = 12;
context.bl = 0;
@@ -1633,7 +1633,7 @@ notmonk2text4:
context.cx = 100;
goto gotmonks2text;
notmonk2text5:
- context._cmp(context.ds.byte(139), 16);
+ context._cmp(context.data.byte(139), 16);
if (!context.flags.z()) goto notmonk2text6;
context.al = 13;
context.bl = 0;
@@ -1641,7 +1641,7 @@ notmonk2text5:
context.cx = 100;
goto gotmonks2text;
notmonk2text6:
- context._cmp(context.ds.byte(139), 19);
+ context._cmp(context.data.byte(139), 19);
if (!context.flags.z()) goto notmonk2text7;
context.al = 14;
context.bl = 36;
@@ -1651,7 +1651,7 @@ notmonk2text6:
context.ah = 82;
{ setuptimedtemp(context); return; };
notmonk2text7:
- context._cmp(context.ds.byte(139), 22);
+ context._cmp(context.data.byte(139), 22);
if (!context.flags.z()) goto notmonk2text8;
context.al = 15;
context.bl = 36;
@@ -1659,7 +1659,7 @@ notmonk2text7:
context.cx = 100;
goto gotmonks2text;
notmonk2text8:
- context._cmp(context.ds.byte(139), 25);
+ context._cmp(context.data.byte(139), 25);
if (!context.flags.z()) goto notmonk2text9;
context.al = 16;
context.bl = 36;
@@ -1667,7 +1667,7 @@ notmonk2text8:
context.cx = 100;
goto gotmonks2text;
notmonk2text9:
- context._cmp(context.ds.byte(139), 28);
+ context._cmp(context.data.byte(139), 28);
if (!context.flags.z()) goto notmonk2text10;
context.al = 17;
context.bl = 36;
@@ -1675,7 +1675,7 @@ notmonk2text9:
context.cx = 100;
goto gotmonks2text;
notmonk2text10:
- context._cmp(context.ds.byte(139), 31);
+ context._cmp(context.data.byte(139), 31);
if (!context.flags.z()) goto notmonk2text11;
context.al = 18;
context.bl = 36;
@@ -1693,7 +1693,7 @@ gotmonks2text:
}
static void intro1text(Context & context) {
- context._cmp(context.ds.byte(139), 2);
+ context._cmp(context.data.byte(139), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
context.bl = 34;
@@ -1701,7 +1701,7 @@ static void intro1text(Context & context) {
context.cx = 90;
goto gotintro1text;
notintro1text1:
- context._cmp(context.ds.byte(139), 4);
+ context._cmp(context.data.byte(139), 4);
if (!context.flags.z()) goto notintro1text2;
context.al = 41;
context.bl = 34;
@@ -1709,7 +1709,7 @@ notintro1text1:
context.cx = 90;
goto gotintro1text;
notintro1text2:
- context._cmp(context.ds.byte(139), 6);
+ context._cmp(context.data.byte(139), 6);
if (!context.flags.z()) goto notintro1text3;
context.al = 42;
context.bl = 34;
@@ -1783,16 +1783,16 @@ static void monkandryan(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 83);
if (!context.flags.z()) goto gotmonkryan;
- context._add(context.ds.byte(139), 1);
+ context._add(context.data.byte(139), 1);
context.push(context.es);
context.push(context.bx);
textformonk(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 77;
- context._cmp(context.ds.byte(139), 57);
+ context._cmp(context.data.byte(139), 57);
if (!context.flags.z()) goto gotmonkryan;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
gotmonkryan:
context.ds.word(context.bx+3) = context.ax;
@@ -1808,9 +1808,9 @@ static void endgameseq(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 51);
if (!context.flags.z()) goto gotendseq;
- context._cmp(context.ds.byte(139), 140);
+ context._cmp(context.data.byte(139), 140);
if (context.flags.z()) goto gotendseq;
- context._add(context.ds.byte(139), 1);
+ context._add(context.data.byte(139), 1);
context.push(context.es);
context.push(context.bx);
textforend(context);
@@ -1836,18 +1836,18 @@ notfadedown:
context.push(context.bx);
context.push(context.ax);
fadescreendowns(context);
- context.ds.byte(387) = 7;
- context.ds.byte(388) = 1;
+ context.data.byte(387) = 7;
+ context.data.byte(388) = 1;
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
notfadeend:
context._cmp(context.ax, 340);
if (!context.flags.z()) goto notendseq;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
notendseq:
showgamereel(context);
- context.al = context.ds.byte(149);
+ context.al = context.data.byte(149);
context.ds.byte(context.bx+2) = context.al;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 145);
@@ -1862,17 +1862,17 @@ static void rollendcredits(Context & context) {
context.al = 16;
context.ah = 255;
playchannel0(context);
- context.ds.byte(386) = 7;
- context.ds.byte(387) = 0;
- context.ds.byte(388) = -1;
+ context.data.byte(386) = 7;
+ context.data.byte(387) = 0;
+ context.data.byte(388) = -1;
context.cl = 160;
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
multiget(context);
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
context.si = 3*2;
context.ax = context.ds.word(context.si);
context.si = context.ax;
@@ -1881,7 +1881,7 @@ static void rollendcredits(Context & context) {
endcredits1:
context.push(context.cx);
context.bx = 10;
- context.cx = context.ds.word(77);
+ context.cx = context.data.word(77);
endcredits2:
context.push(context.cx);
context.push(context.si);
@@ -1893,7 +1893,7 @@ endcredits2:
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
multiput(context);
vsync(context);
@@ -1912,7 +1912,7 @@ onelot:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.ds.word(77));
+ context._add(context.bx, context.data.word(77));
context.cx = context.pop();
if (--context.cx) goto onelot;
vsync(context);
@@ -1949,8 +1949,8 @@ gotnext:
static void priest(Context & context) {
context._cmp(context.ds.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
- context.ds.byte(234) = 0;
- context.ds.word(21) = 2;
+ context.data.byte(234) = 0;
+ context.data.word(21) = 2;
checkspeed(context);
if (!context.flags.z()) goto priestwait;
context._add(context.ds.word(context.bx+3), 1);
@@ -1978,7 +1978,7 @@ notendtelly:
}
static void madman(Context & context) {
- context.ds.word(21) = 2;
+ context.data.word(21) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
context.ax = context.ds.word(context.bx+3);
@@ -1994,30 +1994,30 @@ static void madman(Context & context) {
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
- context.ds.byte(64) = -1;
- context.ds.byte(69) = 0;
+ context.data.byte(64) = -1;
+ context.data.byte(69) = 0;
notfirstmad:
context._add(context.ax, 1);
context._cmp(context.ax, 294);
if (context.flags.z()) goto madmanspoken;
context._cmp(context.ax, 66);
if (!context.flags.z()) goto nomadspeak;
- context._add(context.ds.byte(64), 1);
+ context._add(context.data.byte(64), 1);
context.push(context.es);
context.push(context.bx);
madmantext(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 53;
- context._cmp(context.ds.byte(64), 62);
+ context._cmp(context.data.byte(64), 62);
if (context.flags.c()) goto nomadspeak;
- context._cmp(context.ds.byte(64), 68);
+ context._cmp(context.data.byte(64), 68);
if (context.flags.z()) goto killryan;
- context._cmp(context.ds.byte(65), 8);
+ context._cmp(context.data.byte(65), 8);
if (!context.flags.z()) goto nomadspeak;
- context.ds.byte(64) = 70;
- context.ds.byte(65) = -1;
- context.ds.byte(53) = 1;
+ context.data.byte(64) = 70;
+ context.data.byte(65) = -1;
+ context.data.byte(53) = 1;
context.ax = 67;
goto nomadspeak;
killryan:
@@ -2026,14 +2026,14 @@ nomadspeak:
context.ds.word(context.bx+3) = context.ax;
nomadspeed:
showgamereel(context);
- context.al = context.ds.byte(148);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+1) = context.al;
madmode(context);
return;
madmanspoken:
- context._cmp(context.ds.byte(391), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto alreadywon;
- context.ds.byte(391) = 1;
+ context.data.byte(391) = 1;
context.push(context.es);
context.push(context.bx);
getridoftemptext(context);
@@ -2042,18 +2042,18 @@ madmanspoken:
alreadywon:
return;
ryansded:
- context.ds.byte(56) = 2;
+ context.data.byte(56) = 2;
showgamereel(context);
return;
}
static void madmantext(Context & context) {
- context._cmp(context.ds.byte(64), 61);
+ context._cmp(context.data.byte(64), 61);
if (!context.flags.c()) goto nomadtext;
- context.al = context.ds.byte(64);
+ context.al = context.data.byte(64);
context._and(context.al, 3);
if (!context.flags.z()) goto nomadtext;
- context.al = context.ds.byte(64);
+ context.al = context.data.byte(64);
context._shr(context.al, 1);
context._shr(context.al, 1);
context._add(context.al, 47);
@@ -2068,13 +2068,13 @@ nomadtext:
}
static void madmode(Context & context) {
- context.ds.word(21) = 2;
- context.ds.byte(234) = 0;
- context._cmp(context.ds.byte(64), 63);
+ context.data.word(21) = 2;
+ context.data.byte(234) = 0;
+ context._cmp(context.data.byte(64), 63);
if (context.flags.c()) goto iswatchmad;
- context._cmp(context.ds.byte(64), 68);
+ context._cmp(context.data.byte(64), 68);
if (!context.flags.c()) goto iswatchmad;
- context.ds.byte(234) = 2;
+ context.data.byte(234) = 2;
iswatchmad:
return;
}
@@ -2100,7 +2100,7 @@ nopriesttext:
}
static void textforend(Context & context) {
- context._cmp(context.ds.byte(139), 20);
+ context._cmp(context.data.byte(139), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
context.bl = 34;
@@ -2108,7 +2108,7 @@ static void textforend(Context & context) {
context.cx = 60;
goto gotendtext;
notendtext1:
- context._cmp(context.ds.byte(139), 65);
+ context._cmp(context.data.byte(139), 65);
if (!context.flags.z()) goto notendtext2;
context.al = 1;
context.bl = 34;
@@ -2116,7 +2116,7 @@ notendtext1:
context.cx = 60;
goto gotendtext;
notendtext2:
- context._cmp(context.ds.byte(139), 110);
+ context._cmp(context.data.byte(139), 110);
if (!context.flags.z()) goto notendtext3;
context.al = 2;
context.bl = 34;
@@ -2133,7 +2133,7 @@ gotendtext:
}
static void textformonk(Context & context) {
- context._cmp(context.ds.byte(139), 1);
+ context._cmp(context.data.byte(139), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
context.bl = 68;
@@ -2141,7 +2141,7 @@ static void textformonk(Context & context) {
context.cx = 120;
goto gotmonktext;
notmonktext1:
- context._cmp(context.ds.byte(139), 5);
+ context._cmp(context.data.byte(139), 5);
if (!context.flags.z()) goto notmonktext2;
context.al = 20;
context.bl = 68;
@@ -2149,7 +2149,7 @@ notmonktext1:
context.cx = 120;
goto gotmonktext;
notmonktext2:
- context._cmp(context.ds.byte(139), 9);
+ context._cmp(context.data.byte(139), 9);
if (!context.flags.z()) goto notmonktext3;
context.al = 21;
context.bl = 48;
@@ -2157,7 +2157,7 @@ notmonktext2:
context.cx = 120;
goto gotmonktext;
notmonktext3:
- context._cmp(context.ds.byte(139), 13);
+ context._cmp(context.data.byte(139), 13);
if (!context.flags.z()) goto notmonktext4;
context.al = 22;
context.bl = 68;
@@ -2165,7 +2165,7 @@ notmonktext3:
context.cx = 120;
goto gotmonktext;
notmonktext4:
- context._cmp(context.ds.byte(139), 17);
+ context._cmp(context.data.byte(139), 17);
if (!context.flags.z()) goto notmonktext5;
context.al = 23;
context.bl = 68;
@@ -2173,7 +2173,7 @@ notmonktext4:
context.cx = 120;
goto gotmonktext;
notmonktext5:
- context._cmp(context.ds.byte(139), 21);
+ context._cmp(context.data.byte(139), 21);
if (!context.flags.z()) goto notmonktext6;
context.al = 24;
context.bl = 68;
@@ -2181,7 +2181,7 @@ notmonktext5:
context.cx = 120;
goto gotmonktext;
notmonktext6:
- context._cmp(context.ds.byte(139), 25);
+ context._cmp(context.data.byte(139), 25);
if (!context.flags.z()) goto notmonktext7;
context.al = 25;
context.bl = 68;
@@ -2189,7 +2189,7 @@ notmonktext6:
context.cx = 120;
goto gotmonktext;
notmonktext7:
- context._cmp(context.ds.byte(139), 29);
+ context._cmp(context.data.byte(139), 29);
if (!context.flags.z()) goto notmonktext8;
context.al = 26;
context.bl = 68;
@@ -2197,7 +2197,7 @@ notmonktext7:
context.cx = 120;
goto gotmonktext;
notmonktext8:
- context._cmp(context.ds.byte(139), 33);
+ context._cmp(context.data.byte(139), 33);
if (!context.flags.z()) goto notmonktext9;
context.al = 27;
context.bl = 68;
@@ -2205,7 +2205,7 @@ notmonktext8:
context.cx = 120;
goto gotmonktext;
notmonktext9:
- context._cmp(context.ds.byte(139), 37);
+ context._cmp(context.data.byte(139), 37);
if (!context.flags.z()) goto notmonktext10;
context.al = 28;
context.bl = 68;
@@ -2213,7 +2213,7 @@ notmonktext9:
context.cx = 120;
goto gotmonktext;
notmonktext10:
- context._cmp(context.ds.byte(139), 41);
+ context._cmp(context.data.byte(139), 41);
if (!context.flags.z()) goto notmonktext11;
context.al = 29;
context.bl = 68;
@@ -2221,7 +2221,7 @@ notmonktext10:
context.cx = 120;
goto gotmonktext;
notmonktext11:
- context._cmp(context.ds.byte(139), 45);
+ context._cmp(context.data.byte(139), 45);
if (!context.flags.z()) goto notmonktext12;
context.al = 30;
context.bl = 68;
@@ -2229,7 +2229,7 @@ notmonktext11:
context.cx = 120;
goto gotmonktext;
notmonktext12:
- context._cmp(context.ds.byte(139), 49);
+ context._cmp(context.data.byte(139), 49);
if (!context.flags.z()) goto notmonktext13;
context.al = 31;
context.bl = 68;
@@ -2237,7 +2237,7 @@ notmonktext12:
context.cx = 220;
goto gotmonktext;
notmonktext13:
- context._cmp(context.ds.byte(139), 53);
+ context._cmp(context.data.byte(139), 53);
if (!context.flags.z()) goto notendtitles;
fadescreendowns(context);
notendtitles:
@@ -2251,7 +2251,7 @@ oktalk:
}
static void drunk(Context & context) {
- context._cmp(context.ds.byte(42), 0);
+ context._cmp(context.data.byte(42), 0);
if (!context.flags.z()) goto trampgone;
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
@@ -2321,7 +2321,7 @@ nocopper:
}
static void sparky(Context & context) {
- context._cmp(context.ds.word(16), 0);
+ context._cmp(context.data.word(16), 0);
if (context.flags.z()) goto animsparky;
context.ds.byte(context.bx+7) = 3;
goto animsparky;
@@ -2348,7 +2348,7 @@ finishsparky:
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedsparky;
- context.ds.byte(49) = 1;
+ context.data.byte(49) = 1;
nottalkedsparky:
return;
}
@@ -2364,9 +2364,9 @@ notrainyet:
randomnumber(context);
context._cmp(context.al, 253);
if (context.flags.c()) goto notrainatall;
- context._cmp(context.ds.byte(475), 5);
+ context._cmp(context.data.byte(475), 5);
if (!context.flags.z()) goto notrainatall;
- context._cmp(context.ds.byte(477), 5);
+ context._cmp(context.data.byte(477), 5);
if (!context.flags.z()) goto notrainatall;
context.ax = 5;
gottrainframe:
@@ -2382,15 +2382,15 @@ static void addtopeoplelist(Context & context) {
context.push(context.bx);
context.cl = context.ds.byte(context.bx+7);
context.ax = context.ds.word(context.bx+3);
- context.bx = context.ds.word(18);
- context.es = context.ds.word(412);
+ context.bx = context.data.word(18);
+ context.es = context.data.word(412);
context.ds.word(context.bx) = context.ax;
context.ax = context.pop();
context.ds.word(context.bx+2) = context.ax;
context.ds.byte(context.bx+4) = context.cl;
context.bx = context.pop();
context.es = context.pop();
- context._add(context.ds.word(18), 5);
+ context._add(context.data.word(18), 5);
return;
}
@@ -2398,20 +2398,20 @@ static void showgamereel(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
- context.ds.word(239) = context.ax;
+ context.data.word(239) = context.ax;
context.push(context.es);
context.push(context.bx);
plotreel(context);
context.bx = context.pop();
context.es = context.pop();
- context.ax = context.ds.word(239);
+ context.ax = context.data.word(239);
context.ds.word(context.bx+3) = context.ax;
noshow:
return;
}
static void checkspeed(Context & context) {
- context._cmp(context.ds.byte(65), -1);
+ context._cmp(context.data.byte(65), -1);
if (!context.flags.z()) goto forcenext;
context._add(context.ds.byte(context.bx+6), 1);
context.al = context.ds.byte(context.bx+6);
@@ -2428,7 +2428,7 @@ forcenext:
}
static void clearsprites(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = 255;
context.cx = 32*16;
@@ -2437,7 +2437,7 @@ static void clearsprites(Context & context) {
}
static void makesprite(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
_tmp17:
context._cmp(context.ds.byte(context.bx+15), 255);
@@ -2464,11 +2464,11 @@ static void delsprite(Context & context) {
}
static void spriteupdate(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
- context.al = context.ds.byte(63);
+ context.al = context.data.byte(63);
context.ds.byte(context.bx+31) = context.al;
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
_tmp18:
@@ -2487,7 +2487,7 @@ _tmp18:
_tmp18a:
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.ds.byte(186), 1);
+ context._cmp(context.data.byte(186), 1);
if (context.flags.z()) goto _tmp18b;
context._add(context.bx, 32);
if (--context.cx) goto _tmp18;
@@ -2496,11 +2496,11 @@ _tmp18b:
}
static void printsprites(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.cx = 0;
priorityloop:
context.push(context.cx);
- context.ds.byte(182) = context.cl;
+ context.data.byte(182) = context.cl;
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
prtspriteloop:
@@ -2509,7 +2509,7 @@ prtspriteloop:
context.ax = context.ds.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto skipsprite;
- context.al = context.ds.byte(182);
+ context.al = context.data.byte(182);
context._cmp(context.al, context.ds.byte(context.bx+23));
if (!context.flags.z()) goto skipsprite;
context._cmp(context.ds.byte(context.bx+31), 1);
@@ -2539,7 +2539,7 @@ static void printasprite(Context & context) {
context.ah = 255;
notnegative1:
context.bx = context.ax;
- context._add(context.bx, context.ds.word(119));
+ context._add(context.bx, context.data.word(119));
context.al = context.ds.byte(context.si+10);
context.ah = 0;
context._cmp(context.al, 220);
@@ -2547,14 +2547,14 @@ notnegative1:
context.ah = 255;
notnegative2:
context.di = context.ax;
- context._add(context.di, context.ds.word(117));
+ context._add(context.di, context.data.word(117));
context.al = context.ds.byte(context.si+15);
context.ah = 0;
context._cmp(context.ds.byte(context.si+30), 0);
if (context.flags.z()) goto steadyframe;
context.ah = 8;
steadyframe:
- context._cmp(context.ds.byte(182), 6);
+ context._cmp(context.data.byte(182), 6);
if (!context.flags.z()) goto notquickp;
notquickp:
showframe(context);
@@ -2589,7 +2589,7 @@ static void checkone(Context & context) {
context.cx = 3;
context._mul(context.cx);
context.si = context.ax;
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context._add(context.si, 0+(228*13)+32+60+(32*32));
context._lodsw();
context.cx = context.ax;
@@ -2599,30 +2599,30 @@ static void checkone(Context & context) {
}
static void findsource(Context & context) {
- context.ax = context.ds.word(160);
+ context.ax = context.data.word(160);
context._cmp(context.ax, 160);
if (!context.flags.c()) goto over1000;
- context.ds = context.ds.word(430);
- context.ds.word(244) = 0;
+ context.ds = context.data.word(430);
+ context.data.word(244) = 0;
return;
over1000:
context._cmp(context.ax, 320);
if (!context.flags.c()) goto over1001;
- context.ds = context.ds.word(432);
- context.ds.word(244) = 160;
+ context.ds = context.data.word(432);
+ context.data.word(244) = 160;
return;
over1001:
- context.ds = context.ds.word(434);
- context.ds.word(244) = 320;
+ context.ds = context.data.word(434);
+ context.data.word(244) = 320;
return;
}
static void initman(Context & context) {
- context.al = context.ds.byte(151);
- context.ah = context.ds.byte(152);
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
context.si = context.ax;
context.cx = 49464;
- context.dx = context.ds.word(414);
+ context.dx = context.data.word(414);
context.di = 0;
makesprite(context);
context.ds.byte(context.bx+23) = 4;
@@ -2632,11 +2632,11 @@ static void initman(Context & context) {
}
static void mainman(Context & context) {
- context._cmp(context.ds.byte(187), 1);
+ context._cmp(context.data.byte(187), 1);
if (!context.flags.z()) goto notinnewroom;
- context.ds.byte(187) = 0;
- context.al = context.ds.byte(151);
- context.ah = context.ds.byte(152);
+ context.data.byte(187) = 0;
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
context.ds.word(context.bx+10) = context.ax;
context.ds.byte(context.bx+29) = 0;
goto executewalk;
@@ -2647,24 +2647,24 @@ notinnewroom:
return;
executewalk:
context.ds.byte(context.bx+22) = 0;
- context.al = context.ds.byte(135);
- context._cmp(context.al, context.ds.byte(133));
+ context.al = context.data.byte(135);
+ context._cmp(context.al, context.data.byte(133));
if (context.flags.z()) goto facingok;
aboutturn(context);
goto notwalk;
facingok:
- context._cmp(context.ds.byte(136), 0);
+ context._cmp(context.data.byte(136), 0);
if (context.flags.z()) goto alreadyturned;
- context._cmp(context.ds.byte(492), 254);
+ context._cmp(context.data.byte(492), 254);
if (!context.flags.z()) goto alreadyturned;
- context.ds.byte(473) = 1;
- context.al = context.ds.byte(133);
- context._cmp(context.al, context.ds.byte(134));
+ context.data.byte(473) = 1;
+ context.al = context.data.byte(133);
+ context._cmp(context.al, context.data.byte(134));
if (!context.flags.z()) goto alreadyturned;
checkforexit(context);
alreadyturned:
- context.ds.byte(136) = 0;
- context._cmp(context.ds.byte(492), 254);
+ context.data.byte(136) = 0;
+ context._cmp(context.data.byte(492), 254);
if (!context.flags.z()) goto walkman;
context.ds.byte(context.bx+29) = 0;
goto notwalk;
@@ -2677,9 +2677,9 @@ walkman:
notanimend1:
context.ds.byte(context.bx+29) = context.al;
walking(context);
- context._cmp(context.ds.byte(492), 254);
+ context._cmp(context.data.byte(492), 254);
if (context.flags.z()) goto afterwalk;
- context.al = context.ds.byte(133);
+ context.al = context.data.byte(133);
context._and(context.al, 1);
if (context.flags.z()) goto isdouble;
context.al = context.ds.byte(context.bx+29);
@@ -2690,18 +2690,18 @@ notanimend1:
isdouble:
walking(context);
afterwalk:
- context._cmp(context.ds.byte(492), 254);
+ context._cmp(context.data.byte(492), 254);
if (!context.flags.z()) goto notwalk;
- context.al = context.ds.byte(135);
- context._cmp(context.al, context.ds.byte(133));
+ context.al = context.data.byte(135);
+ context._cmp(context.al, context.data.byte(133));
if (!context.flags.z()) goto notwalk;
- context.ds.byte(473) = 1;
- context.al = context.ds.byte(133);
- context._cmp(context.al, context.ds.byte(134));
+ context.data.byte(473) = 1;
+ context.al = context.data.byte(133);
+ context._cmp(context.al, context.data.byte(134));
if (!context.flags.z()) goto notwalk;
checkforexit(context);
notwalk:
- context.al = context.ds.byte(133);
+ context.al = context.data.byte(133);
context.ah = 0;
context.di = 1105;
context._add(context.di, context.ax);
@@ -2709,18 +2709,18 @@ notwalk:
context._add(context.al, context.ds.byte(context.bx+29));
context.ds.byte(context.bx+15) = context.al;
context.ax = context.ds.word(context.bx+10);
- context.ds.byte(151) = context.al;
- context.ds.byte(152) = context.ah;
+ context.data.byte(151) = context.al;
+ context.data.byte(152) = context.ah;
return;
}
static void aboutturn(Context & context) {
- context._cmp(context.ds.byte(136), 1);
+ context._cmp(context.data.byte(136), 1);
if (context.flags.z()) goto incdir;
- context._cmp(context.ds.byte(136), -1);
+ context._cmp(context.data.byte(136), -1);
if (context.flags.z()) goto decdir;
- context.al = context.ds.byte(133);
- context._sub(context.al, context.ds.byte(135));
+ context.al = context.data.byte(133);
+ context._sub(context.al, context.data.byte(135));
if (!context.flags.c()) goto higher;
context._neg(context.al);
context._cmp(context.al, 4);
@@ -2731,37 +2731,37 @@ higher:
if (!context.flags.c()) goto incdir;
goto decdir;
incdir:
- context.ds.byte(136) = 1;
- context.al = context.ds.byte(133);
+ context.data.byte(136) = 1;
+ context.al = context.data.byte(133);
context._add(context.al, 1);
context._and(context.al, 7);
- context.ds.byte(133) = context.al;
+ context.data.byte(133) = context.al;
context.ds.byte(context.bx+29) = 0;
return;
decdir:
- context.ds.byte(136) = -1;
- context.al = context.ds.byte(133);
+ context.data.byte(136) = -1;
+ context.al = context.data.byte(133);
context._sub(context.al, 1);
context._and(context.al, 7);
- context.ds.byte(133) = context.al;
+ context.data.byte(133) = context.al;
context.ds.byte(context.bx+29) = 0;
return;
}
static void walking(Context & context) {
- context._cmp(context.ds.byte(493), 0);
+ context._cmp(context.data.byte(493), 0);
if (context.flags.z()) goto normalwalk;
- context.al = context.ds.byte(492);
+ context.al = context.data.byte(492);
context._sub(context.al, 1);
- context.ds.byte(492) = context.al;
+ context.data.byte(492) = context.al;
context._cmp(context.al, 200);
if (!context.flags.c()) goto endofline;
goto continuewalk;
normalwalk:
- context.al = context.ds.byte(492);
+ context.al = context.data.byte(492);
context._add(context.al, 1);
- context.ds.byte(492) = context.al;
- context._cmp(context.al, context.ds.byte(494));
+ context.data.byte(492) = context.al;
+ context._cmp(context.al, context.data.byte(494));
if (!context.flags.c()) goto endofline;
continuewalk:
context.ah = 0;
@@ -2779,13 +2779,13 @@ stillline:
context.ds.word(context.bx+10) = context.ax;
return;
endofline:
- context.ds.byte(492) = 254;
- context.al = context.ds.byte(478);
- context.ds.byte(475) = context.al;
- context._cmp(context.al, context.ds.byte(477));
+ context.data.byte(492) = 254;
+ context.al = context.data.byte(478);
+ context.data.byte(475) = context.al;
+ context._cmp(context.al, context.data.byte(477));
if (context.flags.z()) goto finishedwalk;
- context.al = context.ds.byte(477);
- context.ds.byte(478) = context.al;
+ context.al = context.data.byte(477);
+ context.data.byte(478) = context.al;
context.push(context.es);
context.push(context.bx);
autosetwalk(context);
@@ -2801,42 +2801,42 @@ static void facerightway(Context & context) {
context.push(context.es);
context.push(context.bx);
getroomspaths(context);
- context.al = context.ds.byte(475);
+ context.al = context.data.byte(475);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = context.ds.byte(context.bx+7);
- context.ds.byte(135) = context.al;
- context.ds.byte(134) = context.al;
+ context.data.byte(135) = context.al;
+ context.data.byte(134) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
}
static void checkforexit(Context & context) {
- context.cl = context.ds.byte(151);
+ context.cl = context.data.byte(151);
context._add(context.cl, 12);
- context.ch = context.ds.byte(152);
+ context.ch = context.data.byte(152);
context._add(context.ch, 12);
checkone(context);
- context.ds.byte(153) = context.cl;
- context.ds.byte(154) = context.ch;
- context.ds.byte(155) = context.dl;
- context.ds.byte(156) = context.dh;
- context.al = context.ds.byte(153);
+ context.data.byte(153) = context.cl;
+ context.data.byte(154) = context.ch;
+ context.data.byte(155) = context.dl;
+ context.data.byte(156) = context.dh;
+ context.al = context.data.byte(153);
context._test(context.al, 64);
if (context.flags.z()) goto notnewdirect;
- context.al = context.ds.byte(154);
- context.ds.byte(189) = context.al;
+ context.al = context.data.byte(154);
+ context.data.byte(189) = context.al;
return;
notnewdirect:
context._test(context.al, 32);
if (context.flags.z()) goto notleave;
context.push(context.es);
context.push(context.bx);
- context._cmp(context.ds.byte(184), 2);
+ context._cmp(context.data.byte(184), 2);
if (!context.flags.z()) goto notlouis;
context.bl = 0;
context.push(context.bx);
@@ -2871,17 +2871,17 @@ notravmessage:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- context.al = context.ds.byte(133);
+ context.al = context.data.byte(133);
context._add(context.al, 4);
context._and(context.al, 7);
- context.ds.byte(135) = context.al;
+ context.data.byte(135) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
notlouis:
context.bx = context.pop();
context.es = context.pop();
- context.ds.byte(60) = 1;
+ context.data.byte(60) = 1;
return;
notleave:
context._test(context.al, 4);
@@ -2910,12 +2910,12 @@ notanup:
static void adjustdown(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.ds.byte(149), 10);
- context.al = context.ds.byte(154);
+ context._add(context.data.byte(149), 10);
+ context.al = context.data.byte(154);
context.cl = 16;
context._mul(context.cl);
context.ds.byte(context.bx+11) = context.al;
- context.ds.byte(186) = 1;
+ context.data.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2924,12 +2924,12 @@ static void adjustdown(Context & context) {
static void adjustup(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._sub(context.ds.byte(149), 10);
- context.al = context.ds.byte(154);
+ context._sub(context.data.byte(149), 10);
+ context.al = context.data.byte(154);
context.cl = 16;
context._mul(context.cl);
context.ds.byte(context.bx+11) = context.al;
- context.ds.byte(186) = 1;
+ context.data.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2938,13 +2938,13 @@ static void adjustup(Context & context) {
static void adjustleft(Context & context) {
context.push(context.es);
context.push(context.bx);
- context.ds.byte(153) = 0;
- context._sub(context.ds.byte(148), 11);
- context.al = context.ds.byte(154);
+ context.data.byte(153) = 0;
+ context._sub(context.data.byte(148), 11);
+ context.al = context.data.byte(154);
context.cl = 16;
context._mul(context.cl);
context.ds.byte(context.bx+10) = context.al;
- context.ds.byte(186) = 1;
+ context.data.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2953,24 +2953,24 @@ static void adjustleft(Context & context) {
static void adjustright(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.ds.byte(148), 11);
- context.al = context.ds.byte(154);
+ context._add(context.data.byte(148), 11);
+ context.al = context.data.byte(154);
context.cl = 16;
context._mul(context.cl);
context._sub(context.al, 2);
context.ds.byte(context.bx+10) = context.al;
- context.ds.byte(186) = 1;
+ context.data.byte(186) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
}
static void reminders(Context & context) {
- context._cmp(context.ds.byte(184), 24);
+ context._cmp(context.data.byte(184), 24);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.ds.byte(148), 44);
+ context._cmp(context.data.byte(148), 44);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.ds.byte(2), 0);
+ context._cmp(context.data.byte(2), 0);
if (!context.flags.z()) goto notfirst;
context.al = 'D';
context.ah = 'K';
@@ -2998,7 +2998,7 @@ static void reminders(Context & context) {
compare(context);
if (!context.flags.z()) goto forgotone;
havegotcard:
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
notfirst:
return;
forgotone:
@@ -3014,23 +3014,23 @@ notinedenslift:
}
static void initrain(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.bx = 1113;
checkmorerain:
context.al = context.ds.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto finishinitrain;
- context._cmp(context.al, context.ds.byte(184));
+ context._cmp(context.al, context.data.byte(184));
if (!context.flags.z()) goto checkrain;
context.al = context.ds.byte(context.bx+1);
- context._cmp(context.al, context.ds.byte(148));
+ context._cmp(context.al, context.data.byte(148));
if (!context.flags.z()) goto checkrain;
context.al = context.ds.byte(context.bx+2);
- context._cmp(context.al, context.ds.byte(149));
+ context._cmp(context.al, context.data.byte(149));
if (!context.flags.z()) goto checkrain;
context.al = context.ds.byte(context.bx+3);
- context.ds.byte(132) = context.al;
+ context.data.byte(132) = context.al;
goto dorain;
checkrain:
context._add(context.bx, 4);
@@ -3041,26 +3041,26 @@ initraintop:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.ds.byte(132));
+ context._cmp(context.al, context.data.byte(132));
if (!context.flags.c()) goto initraintop;
context._add(context.cl, context.al);
- context._cmp(context.cl, context.ds.byte(128));
+ context._cmp(context.cl, context.data.byte(128));
if (!context.flags.c()) goto initrainside;
context.push(context.cx);
splitintolines(context);
context.cx = context.pop();
goto initraintop;
initrainside:
- context.cl = context.ds.byte(128);
+ context.cl = context.data.byte(128);
context._sub(context.cl, 1);
initrainside2:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.ds.byte(132));
+ context._cmp(context.al, context.data.byte(132));
if (!context.flags.c()) goto initrainside2;
context._add(context.ch, context.al);
- context._cmp(context.ch, context.ds.byte(129));
+ context._cmp(context.ch, context.data.byte(129));
if (!context.flags.c()) goto finishinitrain;
context.push(context.cx);
splitintolines(context);
@@ -3081,7 +3081,7 @@ lookforlinestart:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.ds.byte(129));
+ context._cmp(context.ch, context.data.byte(129));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
foundlinestart:
@@ -3095,7 +3095,7 @@ lookforlineend:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto foundlineend;
- context._cmp(context.ch, context.ds.byte(129));
+ context._cmp(context.ch, context.data.byte(129));
if (!context.flags.c()) goto foundlineend;
context._add(context.bh, 1);
goto lookforlineend;
@@ -3114,7 +3114,7 @@ foundlineend:
context.cx = context.pop();
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.ds.byte(129));
+ context._cmp(context.ch, context.data.byte(129));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
endofthisline:
@@ -3125,9 +3125,9 @@ static void getblockofpixel(Context & context) {
context.push(context.cx);
context.push(context.es);
context.push(context.di);
- context.ax = context.ds.word(125);
+ context.ax = context.data.word(125);
context._add(context.cl, context.al);
- context.ax = context.ds.word(127);
+ context.ax = context.data.word(127);
context._add(context.ch, context.al);
checkone(context);
context._and(context.cl, 1);
@@ -3145,30 +3145,30 @@ failrain:
}
static void showrain(Context & context) {
- context.ds = context.ds.word(414);
+ context.ds = context.data.word(414);
context.si = 6*58;
context.ax = context.ds.word(context.si+2);
context.si = context.ax;
context._add(context.si, 2080);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
morerain:
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto finishrain;
context.al = context.ds.byte(context.bx+1);
context.ah = 0;
- context._add(context.ax, context.ds.word(119));
- context._add(context.ax, context.ds.word(127));
+ context._add(context.ax, context.data.word(119));
+ context._add(context.ax, context.data.word(127));
context.cx = 320;
context._mul(context.cx);
context.cl = context.ds.byte(context.bx);
context.ch = 0;
context._add(context.ax, context.cx);
- context._add(context.ax, context.ds.word(117));
- context._add(context.ax, context.ds.word(125));
+ context._add(context.ax, context.data.word(117));
+ context._add(context.ax, context.data.word(125));
context.di = context.ax;
context.cl = context.ds.byte(context.bx+2);
context.ch = 0;
@@ -3181,7 +3181,7 @@ morerain:
context._add(context.bx, 6);
context.push(context.si);
context._add(context.si, context.ax);
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.ah = 0;
context.dx = 320-2;
rainloop:
@@ -3199,20 +3199,20 @@ noplot:
context.si = context.pop();
goto morerain;
finishrain:
- context._cmp(context.ds.word(521), 0);
+ context._cmp(context.data.word(521), 0);
if (!context.flags.z()) goto nothunder;
- context._cmp(context.ds.byte(184), 2);
+ context._cmp(context.data.byte(184), 2);
if (!context.flags.z()) goto notlouisthund;
- context._cmp(context.ds.byte(45), 1);
+ context._cmp(context.data.byte(45), 1);
if (!context.flags.z()) goto nothunder;
notlouisthund:
- context._cmp(context.ds.byte(184), 55);
+ context._cmp(context.data.byte(184), 55);
if (context.flags.z()) goto nothunder;
randomnum1(context);
context._cmp(context.al, 1);
if (!context.flags.c()) goto nothunder;
context.al = 7;
- context._cmp(context.ds.byte(507), 6);
+ context._cmp(context.data.byte(507), 6);
if (context.flags.z()) goto isthunder1;
context.al = 4;
isthunder1:
@@ -3222,7 +3222,7 @@ nothunder:
}
static void backobject(Context & context) {
- context.ds = context.ds.word(428);
+ context.ds = context.data.word(428);
context.di = context.ds.word(context.bx+20);
context.al = context.ds.byte(context.bx+18);
context._cmp(context.al, 0);
@@ -3270,7 +3270,7 @@ finishback:
}
static void liftsprite(Context & context) {
- context.al = context.ds.byte(35);
+ context.al = context.data.byte(35);
context._cmp(context.al, 0);
if (context.flags.z()) goto liftclosed;
context._cmp(context.al, 1);
@@ -3289,7 +3289,7 @@ static void liftsprite(Context & context) {
context.ax = context.pop();
goto pokelift;
finishclose:
- context.ds.byte(35) = 0;
+ context.data.byte(35) = 0;
return;
openlift:
context.al = context.ds.byte(context.bx+19);
@@ -3313,46 +3313,46 @@ pokelift:
context.ds.byte(context.di+17) = context.al;
return;
endoflist:
- context.ds.byte(35) = 1;
+ context.data.byte(35) = 1;
return;
liftopen:
- context.al = context.ds.byte(36);
+ context.al = context.data.byte(36);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.ds.byte(40), 0);
+ context._cmp(context.data.byte(40), 0);
if (context.flags.z()) goto nocountclose;
- context._sub(context.ds.byte(40), 1);
- context._cmp(context.ds.byte(40), 0);
+ context._sub(context.data.byte(40), 1);
+ context._cmp(context.data.byte(40), 0);
if (!context.flags.z()) goto nocountclose;
- context.ds.byte(35) = 2;
+ context.data.byte(35) = 2;
nocountclose:
context.al = 12;
goto pokelift;
liftclosed:
- context.al = context.ds.byte(36);
+ context.al = context.data.byte(36);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.ds.byte(39), 0);
+ context._cmp(context.data.byte(39), 0);
if (context.flags.z()) goto nocountopen;
- context._sub(context.ds.byte(39), 1);
- context._cmp(context.ds.byte(39), 0);
+ context._sub(context.data.byte(39), 1);
+ context._cmp(context.data.byte(39), 0);
if (!context.flags.z()) goto nocountopen;
- context.ds.byte(35) = 3;
+ context.data.byte(35) = 3;
nocountopen:
context.al = 0;
goto pokelift;
}
static void liftnoise(Context & context) {
- context._cmp(context.ds.byte(184), 5);
+ context._cmp(context.data.byte(184), 5);
if (context.flags.z()) goto hissnoise;
- context._cmp(context.ds.byte(184), 21);
+ context._cmp(context.data.byte(184), 21);
if (context.flags.z()) goto hissnoise;
playchannel1(context);
return;
@@ -3400,52 +3400,52 @@ gotconst:
}
static void doorway(Context & context) {
- context.ds.byte(193) = -24;
- context.ds.byte(194) = 10;
- context.ds.byte(195) = -30;
- context.ds.byte(196) = 10;
+ context.data.byte(193) = -24;
+ context.data.byte(194) = 10;
+ context.data.byte(195) = -30;
+ context.data.byte(196) = 10;
dodoor(context);
return;
}
static void widedoor(Context & context) {
- context.ds.byte(193) = -24;
- context.ds.byte(194) = 24;
- context.ds.byte(195) = -30;
- context.ds.byte(196) = 24;
+ context.data.byte(193) = -24;
+ context.data.byte(194) = 24;
+ context.data.byte(195) = -30;
+ context.data.byte(196) = 24;
dodoor(context);
return;
}
static void dodoor(Context & context) {
- context.al = context.ds.byte(151);
- context.ah = context.ds.byte(152);
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
context.cl = context.ds.byte(context.bx+10);
context.ch = context.ds.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor;
context._sub(context.al, context.cl);
- context._cmp(context.al, context.ds.byte(193));
+ context._cmp(context.al, context.data.byte(193));
if (!context.flags.c()) goto upordown;
goto shutdoor;
rtofdoor:
context._sub(context.al, context.cl);
- context._cmp(context.al, context.ds.byte(194));
+ context._cmp(context.al, context.data.byte(194));
if (!context.flags.c()) goto shutdoor;
upordown:
context._cmp(context.ah, context.ch);
if (!context.flags.c()) goto botofdoor;
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.ds.byte(195));
+ context._cmp(context.ah, context.data.byte(195));
if (context.flags.c()) goto shutdoor;
goto opendoor;
botofdoor:
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.ds.byte(196));
+ context._cmp(context.ah, context.data.byte(196));
if (!context.flags.c()) goto shutdoor;
opendoor:
context.cl = context.ds.byte(context.bx+19);
- context._cmp(context.ds.byte(61), 1);
+ context._cmp(context.data.byte(61), 1);
if (!context.flags.z()) goto notthrough;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough;
@@ -3455,7 +3455,7 @@ notthrough:
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound2;
context.al = 0;
- context._cmp(context.ds.byte(184), 5);
+ context._cmp(context.data.byte(184), 5);
if (!context.flags.z()) goto nothoteldoor2;
context.al = 13;
nothoteldoor2:
@@ -3475,14 +3475,14 @@ atlast1:
context.di = context.pop();
context.ds.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
- context.ds.byte(61) = 1;
+ context.data.byte(61) = 1;
return;
shutdoor:
context.cl = context.ds.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.ds.byte(184), 5);
+ context._cmp(context.data.byte(184), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3502,14 +3502,14 @@ atlast2:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.ds.byte(61) = 0;
+ context.data.byte(61) = 0;
notnearly:
return;
}
static void lockeddoorway(Context & context) {
- context.al = context.ds.byte(151);
- context.ah = context.ds.byte(152);
+ context.al = context.data.byte(151);
+ context.ah = context.data.byte(152);
context.cl = context.ds.byte(context.bx+10);
context.ch = context.ds.byte(context.bx+11);
context._cmp(context.al, context.cl);
@@ -3534,9 +3534,9 @@ botofdoor2:
context._cmp(context.ah, 12);
if (!context.flags.c()) goto shutdoor2;
opendoor2:
- context._cmp(context.ds.byte(61), 1);
+ context._cmp(context.data.byte(61), 1);
if (context.flags.z()) goto mustbeopen;
- context._cmp(context.ds.byte(37), 1);
+ context._cmp(context.data.byte(37), 1);
if (context.flags.z()) goto shutdoor;
mustbeopen:
context.cl = context.ds.byte(context.bx+19);
@@ -3547,7 +3547,7 @@ mustbeopen:
notdoorsound4:
context._cmp(context.cl, 6);
if (!context.flags.z()) goto noturnonyet;
- context.al = context.ds.byte(38);
+ context.al = context.data.byte(38);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
@@ -3555,7 +3555,7 @@ notdoorsound4:
context.es = context.pop();
noturnonyet:
context.cl = context.ds.byte(context.bx+19);
- context._cmp(context.ds.byte(61), 1);
+ context._cmp(context.data.byte(61), 1);
if (!context.flags.z()) goto notthrough2;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough2;
@@ -3578,7 +3578,7 @@ atlast3:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto justshutting;
- context.ds.byte(61) = 1;
+ context.data.byte(61) = 1;
justshutting:
return;
shutdoor2:
@@ -3594,7 +3594,7 @@ notdoorsound3:
context.ds.byte(context.bx+19) = context.cl;
atlast4:
context.ch = 0;
- context.ds.byte(61) = 0;
+ context.data.byte(61) = 0;
context.push(context.di);
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
@@ -3603,13 +3603,13 @@ atlast4:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notlocky;
- context.al = context.ds.byte(38);
+ context.al = context.data.byte(38);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context.ds.byte(37) = 1;
+ context.data.byte(37) = 1;
notlocky:
return;
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
@@ -3618,7 +3618,7 @@ shutdoor:
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.ds.byte(184), 5);
+ context._cmp(context.data.byte(184), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3638,20 +3638,20 @@ atlast2:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.ds.byte(61) = 0;
+ context.data.byte(61) = 0;
notnearly:
return;
return;
}
static void updatepeople(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
- context.ds.word(18) = context.di;
+ context.data.word(18) = context.di;
context.cx = 12*5;
context.al = 255;
while(--context.cx) context._stosb();
- context._add(context.ds.word(138), 1);
+ context._add(context.data.word(138), 1);
context.es = context.cs;
context.bx = 537;
context.di = 1003;
@@ -3659,12 +3659,12 @@ updateloop:
context.al = context.ds.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto endupdate;
- context._cmp(context.al, context.ds.byte(184));
+ context._cmp(context.al, context.data.byte(184));
if (!context.flags.z()) goto notinthisroom;
context.cx = context.ds.word(context.bx+1);
- context._cmp(context.cl, context.ds.byte(148));
+ context._cmp(context.cl, context.data.byte(148));
if (!context.flags.z()) goto notinthisroom;
- context._cmp(context.ch, context.ds.byte(149));
+ context._cmp(context.ch, context.data.byte(149));
if (!context.flags.z()) goto notinthisroom;
context.push(context.di);
context.ax = context.ds.word(context.di);
@@ -3680,12 +3680,12 @@ endupdate:
static void getreelframeax(Context & context) {
context.push(context.ds);
- context.ds.word(160) = context.ax;
+ context.data.word(160) = context.ax;
findsource(context);
context.es = context.ds;
context.ds = context.pop();
- context.ax = context.ds.word(160);
- context._sub(context.ax, context.ds.word(244));
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
context._add(context.ax, context.ax);
context.cx = context.ax;
context._add(context.ax, context.ax);
@@ -3714,7 +3714,7 @@ retryreel:
context._cmp(context.al, 255);
if (context.flags.z()) goto normalreel;
dealwithspecial(context);
- context._add(context.ds.word(239), 1);
+ context._add(context.data.word(239), 1);
context.si = context.pop();
context.es = context.pop();
context._add(context.si, 40);
@@ -3742,7 +3742,7 @@ notplot:
}
static void soundonreels(Context & context) {
- context.bl = context.ds.byte(184);
+ context.bl = context.data.byte(184);
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
context._add(context.bx, 1254);
@@ -3752,11 +3752,11 @@ reelsoundloop:
context._cmp(context.al, 255);
if (context.flags.z()) goto endreelsound;
context.ax = context.ds.word(context.si+1);
- context._cmp(context.ax, context.ds.word(239));
+ context._cmp(context.ax, context.data.word(239));
if (!context.flags.z()) goto skipreelsound;
- context._cmp(context.ax, context.ds.word(351));
+ context._cmp(context.ax, context.data.word(351));
if (context.flags.z()) goto skipreelsound;
- context.ds.word(351) = context.ax;
+ context.data.word(351) = context.ax;
context.al = context.ds.byte(context.si);
context._cmp(context.al, 64);
if (context.flags.c()) { playchannel1(context); return; };
@@ -3773,26 +3773,26 @@ skipreelsound:
context._add(context.si, 3);
goto reelsoundloop;
endreelsound:
- context.ax = context.ds.word(351);
- context._cmp(context.ax, context.ds.word(239));
+ context.ax = context.data.word(351);
+ context._cmp(context.ax, context.data.word(239));
if (context.flags.z()) goto nochange2;
- context.ds.word(351) = -1;
+ context.data.word(351) = -1;
nochange2:
return;
}
static void reconstruct(Context & context) {
- context._cmp(context.ds.byte(130), 0);
+ context._cmp(context.data.byte(130), 0);
if (context.flags.z()) goto noneedtorecon;
- context.ds.byte(62) = 1;
+ context.data.byte(62) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
- context._cmp(context.ds.byte(184), 20);
+ context._cmp(context.data.byte(184), 20);
if (!context.flags.z()) goto notfudge;
undertextline(context);
notfudge:
- context.ds.byte(130) = 0;
+ context.data.byte(130) = 0;
noneedtorecon:
return;
}
@@ -3803,28 +3803,28 @@ static void dealwithspecial(Context & context) {
if (!context.flags.z()) goto notplset;
context.al = context.ah;
placesetobject(context);
- context.ds.byte(130) = 1;
+ context.data.byte(130) = 1;
return;
notplset:
context._cmp(context.al, 1);
if (!context.flags.z()) goto notremset;
context.al = context.ah;
removesetobject(context);
- context.ds.byte(130) = 1;
+ context.data.byte(130) = 1;
return;
notremset:
context._cmp(context.al, 2);
if (!context.flags.z()) goto notplfree;
context.al = context.ah;
placefreeobject(context);
- context.ds.byte(130) = 1;
+ context.data.byte(130) = 1;
return;
notplfree:
context._cmp(context.al, 3);
if (!context.flags.z()) goto notremfree;
context.al = context.ah;
removefreeobject(context);
- context.ds.byte(130) = 1;
+ context.data.byte(130) = 1;
return;
notremfree:
context._cmp(context.al, 4);
@@ -3834,14 +3834,14 @@ notremfree:
notryanoff:
context._cmp(context.al, 5);
if (!context.flags.z()) goto notryanon;
- context.ds.byte(135) = context.ah;
- context.ds.byte(133) = context.ah;
+ context.data.byte(135) = context.ah;
+ context.data.byte(133) = context.ah;
switchryanon(context);
return;
notryanon:
context._cmp(context.al, 6);
if (!context.flags.z()) goto notchangeloc;
- context.ds.byte(188) = context.ah;
+ context.data.byte(188) = context.ah;
return;
notchangeloc:
movemap(context);
@@ -3851,38 +3851,38 @@ notchangeloc:
static void movemap(Context & context) {
context._cmp(context.ah, 32);
if (!context.flags.z()) goto notmapup2;
- context._sub(context.ds.byte(149), 20);
- context.ds.byte(186) = 1;
+ context._sub(context.data.byte(149), 20);
+ context.data.byte(186) = 1;
return;
notmapup2:
context._cmp(context.ah, 16);
if (!context.flags.z()) goto notmapupspec;
- context._sub(context.ds.byte(149), 10);
- context.ds.byte(186) = 1;
+ context._sub(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
return;
notmapupspec:
context._cmp(context.ah, 8);
if (!context.flags.z()) goto notmapdownspec;
- context._add(context.ds.byte(149), 10);
- context.ds.byte(186) = 1;
+ context._add(context.data.byte(149), 10);
+ context.data.byte(186) = 1;
return;
notmapdownspec:
context._cmp(context.ah, 2);
if (!context.flags.z()) goto notmaprightspec;
- context._add(context.ds.byte(148), 11);
- context.ds.byte(186) = 1;
+ context._add(context.data.byte(148), 11);
+ context.data.byte(186) = 1;
return;
notmaprightspec:
- context._sub(context.ds.byte(148), 11);
- context.ds.byte(186) = 1;
+ context._sub(context.data.byte(148), 11);
+ context.data.byte(186) = 1;
return;
}
static void getreelstart(Context & context) {
- context.ax = context.ds.word(239);
+ context.ax = context.data.word(239);
context.cx = 40;
context._mul(context.cx);
- context.es = context.ds.word(450);
+ context.es = context.data.word(450);
context.si = context.ax;
context._add(context.si, 0+(36*144));
return;
@@ -3892,37 +3892,37 @@ static void showreelframe(Context & context) {
context.al = context.ds.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.ds.word(117));
+ context._add(context.di, context.data.word(117));
context.al = context.ds.byte(context.si+3);
context.bx = context.ax;
- context._add(context.bx, context.ds.word(119));
+ context._add(context.bx, context.data.word(119));
context.ax = context.ds.word(context.si);
- context.ds.word(160) = context.ax;
+ context.data.word(160) = context.ax;
findsource(context);
- context.ax = context.ds.word(160);
- context._sub(context.ax, context.ds.word(244));
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
context.ah = 8;
showframe(context);
return;
}
static void deleverything(Context & context) {
- context.al = context.ds.byte(129);
+ context.al = context.data.byte(129);
context.ah = 0;
- context._add(context.ax, context.ds.word(123));
+ context._add(context.ax, context.data.word(123));
context._cmp(context.ax, 182);
if (!context.flags.c()) goto bigroom;
maptopanel(context);
return;
bigroom:
- context._sub(context.ds.byte(129), 8);
+ context._sub(context.data.byte(129), 8);
maptopanel(context);
- context._add(context.ds.byte(129), 8);
+ context._add(context.data.byte(129), 8);
return;
}
static void dumpeverything(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
dumpevery1:
context.ax = context.ds.word(context.bx);
@@ -3941,8 +3941,8 @@ notskip1:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.ds.word(117));
- context._add(context.bx, context.ds.word(119));
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3964,8 +3964,8 @@ dumpevery2:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.ds.word(117));
- context._add(context.bx, context.ds.word(119));
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3979,7 +3979,7 @@ finishevery2:
static void allocatework(Context & context) {
context.bx = 0x1000;
allocatemem(context);
- context.ds.word(400) = context.ax;
+ context.data.word(400) = context.ax;
return;
}
@@ -4007,20 +4007,20 @@ static void loadpalfromiff(Context & context) {
context.dx = 2494;
openfile(context);
context.cx = 2000;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.dx = 0;
readfromfile(context);
closefile(context);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0x30;
context.cx = 768;
palloop:
context._lodsb();
context._shr(context.al, 1);
context._shr(context.al, 1);
- context._cmp(context.ds.byte(73), 1);
+ context._cmp(context.data.byte(73), 1);
if (!context.flags.z()) goto nought;
context._cmp(context.al, 0);
if (context.flags.z()) goto nought;
@@ -4051,7 +4051,7 @@ static void cls(Context & context) {
static void printundermon(Context & context) {
context.si = (320*43)+76;
context.di = context.si;
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context._add(context.si, 8*320);
context.dx = 0x0a000;
context.ds = context.dx;
@@ -4087,7 +4087,7 @@ static void worktoscreen(Context & context) {
context.si = 0;
context.di = 0;
context.cx = 25;
- context.ds = context.ds.word(400);
+ context.ds = context.data.word(400);
context.dx = 0x0a000;
context.es = context.dx;
dumpallloop:
@@ -4104,38 +4104,38 @@ dumpallloop:
}
static void paneltomap(Context & context) {
- context.di = context.ds.word(125);
- context._add(context.di, context.ds.word(117));
- context.bx = context.ds.word(127);
- context._add(context.bx, context.ds.word(119));
- context.ds = context.ds.word(402);
+ context.di = context.data.word(125);
+ context._add(context.di, context.data.word(117));
+ context.bx = context.data.word(127);
+ context._add(context.bx, context.data.word(119));
+ context.ds = context.data.word(402);
context.si = 0;
- context.cl = context.ds.byte(128);
- context.ch = context.ds.byte(129);
+ context.cl = context.data.byte(128);
+ context.ch = context.data.byte(129);
multiget(context);
return;
}
static void maptopanel(Context & context) {
- context.di = context.ds.word(125);
- context._add(context.di, context.ds.word(117));
- context.bx = context.ds.word(127);
- context._add(context.bx, context.ds.word(119));
- context.ds = context.ds.word(402);
+ context.di = context.data.word(125);
+ context._add(context.di, context.data.word(117));
+ context.bx = context.data.word(127);
+ context._add(context.bx, context.data.word(119));
+ context.ds = context.data.word(402);
context.si = 0;
- context.cl = context.ds.byte(128);
- context.ch = context.ds.byte(129);
+ context.cl = context.data.byte(128);
+ context.ch = context.data.byte(129);
multiput(context);
return;
}
static void dumpmap(Context & context) {
- context.di = context.ds.word(125);
- context._add(context.di, context.ds.word(117));
- context.bx = context.ds.word(127);
- context._add(context.bx, context.ds.word(119));
- context.cl = context.ds.byte(128);
- context.ch = context.ds.byte(129);
+ context.di = context.data.word(125);
+ context._add(context.di, context.data.word(117));
+ context.bx = context.data.word(127);
+ context._add(context.bx, context.data.word(119));
+ context.cl = context.data.byte(128);
+ context.ch = context.data.byte(129);
multidump(context);
return;
}
@@ -4151,7 +4151,7 @@ static void pixelcheckset(Context & context) {
context.al = context.ds.byte(context.bx+4);
getsetad(context);
context.al = context.ds.byte(context.bx+17);
- context.es = context.ds.word(444);
+ context.es = context.data.word(444);
context.bx = 0;
context.ah = 0;
context.cx = 6;
@@ -4183,25 +4183,25 @@ static void pixelcheckset(Context & context) {
static void createpanel(Context & context) {
context.di = 0;
context.bx = 8;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 8;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 0;
context.bx = 104;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 104;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.al = 0;
context.ah = 2;
showframe(context);
@@ -4212,13 +4212,13 @@ static void createpanel2(Context & context) {
createpanel(context);
context.di = 0;
context.bx = 0;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.al = 5;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 0;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.al = 5;
context.ah = 2;
showframe(context);
@@ -4227,7 +4227,7 @@ static void createpanel2(Context & context) {
static void clearwork(Context & context) {
context.ax = 0x0;
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.di = 0;
context.cx = (200*320)/64;
clearloop:
@@ -4268,24 +4268,24 @@ clearloop:
}
static void zoom(Context & context) {
- context._cmp(context.ds.word(21), 0);
+ context._cmp(context.data.word(21), 0);
if (!context.flags.z()) goto inwatching;
- context._cmp(context.ds.byte(8), 1);
+ context._cmp(context.data.byte(8), 1);
if (context.flags.z()) goto zoomswitch;
inwatching:
return;
zoomswitch:
- context._cmp(context.ds.byte(100), 199);
+ context._cmp(context.data.byte(100), 199);
if (context.flags.c()) goto zoomit;
cantzoom:
putunderzoom(context);
return;
zoomit:
- context.ax = context.ds.word(222);
+ context.ax = context.data.word(222);
context._sub(context.ax, 9);
context.cx = 320;
context._mul(context.cx);
- context._add(context.ax, context.ds.word(220));
+ context._add(context.ax, context.data.word(220));
context._sub(context.ax, 11);
context.si = context.ax;
context.ax = 132+4;
@@ -4293,8 +4293,8 @@ zoomit:
context._mul(context.cx);
context._add(context.ax, 8+5);
context.di = context.ax;
- context.es = context.ds.word(400);
- context.ds = context.ds.word(400);
+ context.es = context.data.word(400);
+ context.ds = context.data.word(400);
context.cx = 20;
zoomloop:
context.push(context.cx);
@@ -4310,7 +4310,7 @@ zoomloop2:
context.cx = context.pop();
if (--context.cx) goto zoomloop;
crosshair(context);
- context.ds.byte(75) = 1;
+ context.data.byte(75) = 1;
return;
}
@@ -4319,12 +4319,12 @@ static void delthisone(Context & context) {
context.push(context.ax);
context.al = context.ah;
context.ah = 0;
- context._add(context.ax, context.ds.word(119));
+ context._add(context.ax, context.data.word(119));
context.bx = 320;
context._mul(context.bx);
context.bx = context.pop();
context.bh = 0;
- context._add(context.bx, context.ds.word(117));
+ context._add(context.bx, context.data.word(117));
context._add(context.ax, context.bx);
context.di = context.ax;
context.ax = context.pop();
@@ -4337,8 +4337,8 @@ static void delthisone(Context & context) {
context.bh = 0;
context._add(context.ax, context.bx);
context.si = context.ax;
- context.es = context.ds.word(400);
- context.ds = context.ds.word(402);
+ context.es = context.data.word(400);
+ context.ds = context.data.word(402);
context.dl = context.cl;
context.dh = 0;
context.ax = 320;
@@ -4362,7 +4362,7 @@ static void multiget(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.es = context.ds;
context.ds = context.es;
context._xchg(context.di, context.si);
@@ -4406,7 +4406,7 @@ static void multiput(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.al = context.cl;
context.ah = 0;
context.dx = 320;
@@ -4445,7 +4445,7 @@ multiloop6:
static void multidump(Context & context) {
context.dx = 0x0a000;
context.es = context.dx;
- context.ds = context.ds.word(400);
+ context.ds = context.data.word(400);
context.ax = context.bx;
context.bx = 320;
context._mul(context.bx);
@@ -4727,17 +4727,17 @@ static void width160(Context & context) {
}
static void doblocks(Context & context) {
- context.es = context.ds.word(400);
- context.ax = context.ds.word(119);
+ context.es = context.data.word(400);
+ context.ax = context.data.word(119);
context.cx = 320;
context._mul(context.cx);
- context.di = context.ds.word(117);
+ context.di = context.data.word(117);
context._add(context.di, context.ax);
- context.al = context.ds.byte(149);
+ context.al = context.data.byte(149);
context.ah = 0;
context.bx = 66;
context._mul(context.bx);
- context.bl = context.ds.byte(148);
+ context.bl = context.data.byte(148);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -4750,9 +4750,9 @@ loop120:
loop124:
context.push(context.cx);
context.push(context.di);
- context.ds = context.ds.word(418);
+ context.ds = context.data.word(418);
context._lodsb();
- context.ds = context.ds.word(416);
+ context.ds = context.data.word(416);
context.push(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto zeroblock;
@@ -4896,9 +4896,9 @@ notdiffdest:
if (context.flags.z()) goto notprintlist;
context.push(context.ax);
context.ax = context.di;
- context._sub(context.ax, context.ds.word(117));
+ context._sub(context.ax, context.data.word(117));
context.push(context.bx);
- context._sub(context.bx, context.ds.word(119));
+ context._sub(context.bx, context.data.word(119));
context.ah = context.bl;
context.bx = context.pop();
context.ax = context.pop();
@@ -4906,7 +4906,7 @@ notprintlist:
context._test(context.ah, 4);
if (context.flags.z()) goto notflippedx;
context.dx = 320;
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.push(context.cx);
frameoutfx(context);
context.cx = context.pop();
@@ -4915,7 +4915,7 @@ notflippedx:
context._test(context.ah, 2);
if (context.flags.z()) goto notnomask;
context.dx = 320;
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.push(context.cx);
frameoutnm(context);
context.cx = context.pop();
@@ -4924,14 +4924,14 @@ notnomask:
context._test(context.ah, 32);
if (context.flags.z()) goto noeffects;
context.dx = 320;
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.push(context.cx);
frameoutbh(context);
context.cx = context.pop();
return;
noeffects:
context.dx = 320;
- context.es = context.ds.word(400);
+ context.es = context.data.word(400);
context.push(context.cx);
frameoutv(context);
context.cx = context.pop();
@@ -5095,9 +5095,9 @@ backtosolidfx:
}
static void transferinv(Context & context) {
- context.di = context.ds.word(12);
+ context.di = context.data.word(12);
context.push(context.di);
- context.al = context.ds.byte(10);
+ context.al = context.data.byte(10);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5105,12 +5105,12 @@ static void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.ds.byte(90);
+ context.al = context.data.byte(90);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5118,7 +5118,7 @@ static void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.ds.word(446);
+ context.ds = context.data.word(446);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
@@ -5139,33 +5139,33 @@ static void transferinv(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context.ds.word(context.bx+2) = context.ax;
- context._add(context.ds.word(12), context.cx);
+ context._add(context.data.word(12), context.cx);
return;
}
static void transfermap(Context & context) {
- context.di = context.ds.word(12);
+ context.di = context.data.word(12);
context.push(context.di);
- context.al = context.ds.byte(10);
+ context.al = context.data.byte(10);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.ds.byte(90);
+ context.al = context.data.byte(90);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.ds.word(446);
+ context.ds = context.data.word(446);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
@@ -5186,26 +5186,26 @@ static void transfermap(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context.ds.word(context.bx+2) = context.ax;
- context._add(context.ds.word(12), context.cx);
+ context._add(context.data.word(12), context.cx);
return;
}
static void dofade(Context & context) {
- context._cmp(context.ds.byte(344), 0);
+ context._cmp(context.data.byte(344), 0);
if (context.flags.z()) goto finishfade;
- context.cl = context.ds.byte(345);
+ context.cl = context.data.byte(345);
context.ch = 0;
- context.al = context.ds.byte(343);
+ context.al = context.data.byte(343);
context.ah = 0;
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
showgroup(context);
- context.al = context.ds.byte(345);
- context._add(context.al, context.ds.byte(343));
- context.ds.byte(343) = context.al;
+ context.al = context.data.byte(345);
+ context._add(context.al, context.data.byte(343));
+ context.data.byte(343) = context.al;
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishfade;
fadecalculation(context);
@@ -5214,7 +5214,7 @@ finishfade:
}
static void clearendpal(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 0;
@@ -5223,7 +5223,7 @@ static void clearendpal(Context & context) {
}
static void clearpalette(Context & context) {
- context.ds.byte(344) = 0;
+ context.data.byte(344) = 0;
clearstartpal(context);
dumpcurrent(context);
return;
@@ -5232,15 +5232,15 @@ static void clearpalette(Context & context) {
static void fadescreenup(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
return;
}
static void fadetowhite(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 63;
@@ -5251,15 +5251,15 @@ static void fadetowhite(Context & context) {
context._stosb();
context._stosb();
paltostartpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
return;
}
static void fadefromwhite(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768;
context.al = 63;
@@ -5270,20 +5270,20 @@ static void fadefromwhite(Context & context) {
context._stosb();
context._stosb();
paltoendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
return;
}
static void fadescreenups(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 64;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 64;
return;
}
@@ -5291,7 +5291,7 @@ static void fadescreendownhalf(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.cx = 768;
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
halfend:
context.al = context.ds.byte(context.bx);
@@ -5299,8 +5299,8 @@ halfend:
context.ds.byte(context.bx) = context.al;
context._add(context.bx, 1);
if (--context.cx) goto halfend;
- context.ds = context.ds.word(412);
- context.es = context.ds.word(412);
+ context.ds = context.data.word(412);
+ context.es = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
context.cx = 3*5;
@@ -5309,45 +5309,45 @@ halfend:
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
context.cx = 3*2;
while(--context.cx) context._movsb();
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 31;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 32;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 31;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 32;
return;
}
static void fadescreenuphalf(Context & context) {
endpaltostart(context);
paltoendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 31;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 32;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 31;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 32;
return;
}
static void fadescreendown(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
return;
}
static void fadescreendowns(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 64;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 64;
return;
}
static void clearstartpal(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 256;
wholeloop1:
@@ -5360,39 +5360,39 @@ wholeloop1:
}
static void showgun(Context & context) {
- context.ds.byte(348) = 0;
- context.ds.byte(347) = 0;
- context.ds.byte(349) = 0;
+ context.data.byte(348) = 0;
+ context.data.byte(347) = 0;
+ context.data.byte(349) = 0;
paltostartpal(context);
paltoendpal(context);
greyscalesum(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
context.cx = 130;
hangon(context);
endpaltostart(context);
clearendpal(context);
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
context.cx = 200;
hangon(context);
- context.ds.byte(531) = 34;
+ context.data.byte(531) = 34;
loadroomssample(context);
- context.ds.byte(386) = 0;
+ context.data.byte(386) = 0;
context.dx = 2364;
loadintotemp(context);
createpanel2(context);
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 0;
context.ah = 0;
context.di = 100;
context.bx = 4;
showframe(context);
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 1;
context.ah = 0;
context.di = 158;
@@ -5423,10 +5423,10 @@ static void rollem(Context & context) {
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
multiget(context);
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
context.si = 49*2;
context.ax = context.ds.word(context.si);
context.si = context.ax;
@@ -5435,7 +5435,7 @@ static void rollem(Context & context) {
endcredits21:
context.push(context.cx);
context.bx = 10;
- context.cx = context.ds.word(77);
+ context.cx = context.data.word(77);
endcredits22:
context.push(context.cx);
context.push(context.si);
@@ -5447,7 +5447,7 @@ endcredits22:
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
multiput(context);
vsync(context);
@@ -5466,7 +5466,7 @@ onelot2:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.ds.word(77));
+ context._add(context.bx, context.data.word(77));
context.cx = context.pop();
if (--context.cx) goto onelot2;
vsync(context);
@@ -5480,7 +5480,7 @@ onelot2:
context.di = context.pop();
context.si = context.pop();
context.cx = context.pop();
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto endearly2;
context._sub(context.bx, 1);
if (--context.cx) goto endcredits22;
@@ -5494,7 +5494,7 @@ looknext2:
if (context.flags.z()) goto gotnext2;
goto looknext2;
gotnext2:
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto endearly;
if (--context.cx) goto endcredits21;
context.cx = 120;
@@ -5507,10 +5507,10 @@ endearly:
}
static void fadecalculation(Context & context) {
- context._cmp(context.ds.byte(346), 0);
+ context._cmp(context.data.byte(346), 0);
if (context.flags.z()) goto nomorefading;
- context.bl = context.ds.byte(346);
- context.es = context.ds.word(412);
+ context.bl = context.data.byte(346);
+ context.es = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
@@ -5532,15 +5532,15 @@ gotthere:
context._add(context.si, 1);
context._add(context.di, 1);
if (--context.cx) goto fadecolloop;
- context._sub(context.ds.byte(346), 1);
+ context._sub(context.data.byte(346), 1);
return;
nomorefading:
- context.ds.byte(344) = 0;
+ context.data.byte(344) = 0;
return;
}
static void greyscalesum(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 256;
@@ -5569,19 +5569,19 @@ greysumloop2:
if (!context.flags.c()) goto greysumloop2;
context.bl = context.al;
context.al = context.bl;
- context.ah = context.ds.byte(348);
+ context.ah = context.data.byte(348);
context._cmp(context.al, 0);
context._add(context.al, context.ah);
noaddr:
context._stosb();
- context.ah = context.ds.byte(347);
+ context.ah = context.data.byte(347);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddg;
context._add(context.al, context.ah);
noaddg:
context._stosb();
- context.ah = context.ds.byte(349);
+ context.ah = context.data.byte(349);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddb;
@@ -5595,8 +5595,8 @@ noaddb:
}
static void paltostartpal(Context & context) {
- context.es = context.ds.word(412);
- context.ds = context.ds.word(412);
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5605,8 +5605,8 @@ static void paltostartpal(Context & context) {
}
static void endpaltostart(Context & context) {
- context.es = context.ds.word(412);
- context.ds = context.ds.word(412);
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5615,8 +5615,8 @@ static void endpaltostart(Context & context) {
}
static void startpaltoend(Context & context) {
- context.es = context.ds.word(412);
- context.ds = context.ds.word(412);
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5625,8 +5625,8 @@ static void startpaltoend(Context & context) {
}
static void paltoendpal(Context & context) {
- context.es = context.ds.word(412);
- context.ds = context.ds.word(412);
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5635,8 +5635,8 @@ static void paltoendpal(Context & context) {
}
static void allpalette(Context & context) {
- context.es = context.ds.word(412);
- context.ds = context.ds.word(412);
+ context.es = context.data.word(412);
+ context.ds = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5647,7 +5647,7 @@ static void allpalette(Context & context) {
static void dumpcurrent(Context & context) {
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
vsync(context);
context.al = 0;
context.cx = 128;
@@ -5662,7 +5662,7 @@ static void dumpcurrent(Context & context) {
static void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5670,10 +5670,10 @@ static void fadedownmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
context.cx = 64;
hangon(context);
return;
@@ -5682,7 +5682,7 @@ static void fadedownmon(Context & context) {
static void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5690,10 +5690,10 @@ static void fadeupmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5702,7 +5702,7 @@ static void fadeupmon(Context & context) {
static void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5710,10 +5710,10 @@ static void fadeupmonfirst(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
context.cx = 64;
hangon(context);
context.al = 26;
@@ -5725,7 +5725,7 @@ static void fadeupmonfirst(Context & context) {
static void fadeupyellows(Context & context) {
paltoendpal(context);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5733,10 +5733,10 @@ static void fadeupyellows(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.ds.byte(344) = 1;
- context.ds.byte(346) = 63;
- context.ds.byte(343) = 0;
- context.ds.byte(345) = 128;
+ context.data.byte(344) = 1;
+ context.data.byte(346) = 63;
+ context.data.byte(343) = 0;
+ context.data.byte(345) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5744,7 +5744,7 @@ static void fadeupyellows(Context & context) {
static void initialmoncols(Context & context) {
paltostartpal(context);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.cx = 3*9;
context.ax = 0;
@@ -5752,7 +5752,7 @@ static void initialmoncols(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.al = 230;
context.cx = 18;
@@ -5773,24 +5773,24 @@ static void endgame(Context & context) {
monkspeaking(context);
gettingshot(context);
getridoftemptext(context);
- context.ds.byte(387) = 7;
- context.ds.byte(388) = 1;
+ context.data.byte(387) = 7;
+ context.data.byte(388) = 1;
context.cx = 200;
hangon(context);
return;
}
static void monkspeaking(Context & context) {
- context.ds.byte(531) = 35;
+ context.data.byte(531) = 35;
loadroomssample(context);
context.dx = 2377;
loadintotemp(context);
clearwork(context);
showmonk(context);
worktoscreen(context);
- context.ds.byte(386) = 7;
- context.ds.byte(388) = -1;
- context.ds.byte(387) = 0;
+ context.data.byte(386) = 7;
+ context.data.byte(388) = -1;
+ context.data.byte(387) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
@@ -5803,7 +5803,7 @@ nextmonkspeak:
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
context.ax = context.ds.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
@@ -5829,8 +5829,8 @@ nextbit:
context._add(context.al, 1);
context._cmp(context.al, 44);
if (!context.flags.z()) goto nextmonkspeak;
- context.ds.byte(388) = 1;
- context.ds.byte(387) = 7;
+ context.data.byte(388) = 1;
+ context.data.byte(387) = 7;
fadescreendowns(context);
context.cx = 300;
hangon(context);
@@ -5843,18 +5843,18 @@ static void showmonk(Context & context) {
context.ah = 128;
context.di = 160;
context.bx = 72;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
showframe(context);
return;
}
static void gettingshot(Context & context) {
- context.ds.byte(188) = 55;
+ context.data.byte(188) = 55;
clearpalette(context);
loadintroroom(context);
fadescreenups(context);
- context.ds.byte(387) = 0;
- context.ds.byte(388) = -1;
+ context.data.byte(387) = 0;
+ context.data.byte(388) = -1;
runendseq(context);
clearbeforeload(context);
return;
@@ -5887,7 +5887,7 @@ hangonloope:
context.push(context.cx);
vsync(context);
context.cx = context.pop();
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto hangonearly;
if (--context.cx) goto hangonloope;
return;
@@ -5902,28 +5902,28 @@ static void intro(Context & context) {
loadtemptext(context);
loadpalfromiff(context);
setmode(context);
- context.ds.byte(188) = 50;
+ context.data.byte(188) = 50;
clearpalette(context);
loadintroroom(context);
- context.ds.byte(386) = 7;
- context.ds.byte(388) = -1;
- context.ds.byte(387) = 0;
+ context.data.byte(386) = 7;
+ context.data.byte(388) = -1;
+ context.data.byte(387) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
fadescreenups(context);
runintroseq(context);
clearbeforeload(context);
- context.ds.byte(188) = 52;
+ context.data.byte(188) = 52;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
- context.ds.byte(188) = 53;
+ context.data.byte(188) = 53;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
allpalette(context);
- context.ds.byte(188) = 54;
+ context.data.byte(188) = 54;
loadintroroom(context);
runintroseq(context);
getridoftemptext(context);
@@ -5932,14 +5932,14 @@ static void intro(Context & context) {
}
static void runintroseq(Context & context) {
- context.ds.byte(103) = 0;
+ context.data.byte(103) = 0;
moreintroseq:
vsync(context);
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
spriteupdate(context);
vsync(context);
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
deleverything(context);
printsprites(context);
@@ -5947,14 +5947,14 @@ moreintroseq:
afterintroroom(context);
usetimedtext(context);
vsync(context);
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.ds.byte(392), 1);
+ context._cmp(context.data.byte(392), 1);
if (context.flags.z()) goto earlyendrun;
- context._cmp(context.ds.byte(103), 1);
+ context._cmp(context.data.byte(103), 1);
if (!context.flags.z()) goto moreintroseq;
return;
earlyendrun:
@@ -5967,7 +5967,7 @@ earlyendrun:
static void runendseq(Context & context) {
atmospheres(context);
- context.ds.byte(103) = 0;
+ context.data.byte(103) = 0;
moreendseq:
vsync(context);
spriteupdate(context);
@@ -5981,23 +5981,23 @@ moreendseq:
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.ds.byte(103), 1);
+ context._cmp(context.data.byte(103), 1);
if (!context.flags.z()) goto moreendseq;
return;
}
static void loadintroroom(Context & context) {
- context.ds.byte(139) = 0;
- context.ds.byte(9) = 255;
+ context.data.byte(139) = 0;
+ context.data.byte(9) = 255;
loadroom(context);
- context.ds.word(121) = 72;
- context.ds.word(123) = 16;
+ context.data.word(121) = 72;
+ context.data.word(123) = 16;
clearsprites(context);
- context.ds.byte(61) = 0;
- context.ds.byte(142) = '0';
- context.ds.byte(105) = 0;
+ context.data.byte(61) = 0;
+ context.data.byte(142) = '0';
+ context.data.byte(105) = 0;
clearwork(context);
- context.ds.byte(62) = 1;
+ context.data.byte(62) = 1;
drawfloor(context);
reelsonscreen(context);
spriteupdate(context);
@@ -6007,9 +6007,9 @@ static void loadintroroom(Context & context) {
}
static void realcredits(Context & context) {
- context.ds.byte(531) = 33;
+ context.data.byte(531) = 33;
loadroomssample(context);
- context.ds.byte(386) = 0;
+ context.data.byte(386) = 0;
mode640x480(context);
context.cx = 35;
hangon(context);
@@ -6104,13 +6104,13 @@ static void printchar(Context & context) {
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.ds.word(71));
+ context._add(context.ax, context.data.word(71));
showframe(context);
context.ax = context.pop();
context.di = context.pop();
context.bx = context.pop();
context.si = context.pop();
- context._cmp(context.ds.byte(72), 0);
+ context._cmp(context.data.byte(72), 0);
if (!context.flags.z()) goto nokern;
kernchars(context);
nokern:
@@ -6146,9 +6146,9 @@ kernit:
}
static void printslow(Context & context) {
- context.ds.byte(231) = 1;
- context.ds.byte(234) = 3;
- context.ds = context.ds.word(404);
+ context.data.byte(231) = 1;
+ context.data.byte(234) = 3;
+ context.ds = context.data.word(404);
printloopslow6:
context.push(context.bx);
context.push(context.di);
@@ -6187,9 +6187,9 @@ printloopslow5:
context.push(context.es);
context.push(context.si);
modifychar(context);
- context.ds.word(71) = 91;
+ context.data.word(71) = 91;
printboth(context);
- context.ds.word(71) = 0;
+ context.data.word(71) = 0;
context.si = context.pop();
context.es = context.pop();
context.cx = context.pop();
@@ -6199,14 +6199,14 @@ printloopslow5:
waitframes(context);
context._cmp(context.ax, 0);
if (context.flags.z()) goto keepgoing;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (!context.flags.z()) goto finishslow2;
keepgoing:
waitframes(context);
noslow:
context._cmp(context.ax, 0);
if (context.flags.z()) goto afterslow;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (!context.flags.z()) goto finishslow2;
afterslow:
context.es = context.pop();
@@ -6250,7 +6250,7 @@ static void waitframes(Context & context) {
vsync(context);
dumppointer(context);
delpointer(context);
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context.ds = context.pop();
context.si = context.pop();
context.es = context.pop();
@@ -6277,8 +6277,8 @@ static void printboth(Context & context) {
}
static void printdirect(Context & context) {
- context.ds.word(84) = context.di;
- context.ds = context.ds.word(268);
+ context.data.word(84) = context.di;
+ context.ds = context.data.word(268);
printloop6:
context.push(context.bx);
context.push(context.di);
@@ -6296,14 +6296,14 @@ printloop5:
context.push(context.es);
modifychar(context);
printchar(context);
- context.ds.word(84) = context.di;
+ context.data.word(84) = context.di;
context.es = context.pop();
context.cx = context.pop();
if (--context.cx) goto printloop5;
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
- context._add(context.bx, context.ds.word(77));
+ context._add(context.bx, context.data.word(77));
goto printloop6;
finishdirct:
context.dx = context.pop();
@@ -6313,12 +6313,12 @@ finishdirct:
}
static void monprint(Context & context) {
- context.ds.byte(72) = 1;
+ context.data.byte(72) = 1;
context.si = context.bx;
context.dl = 166;
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
- context.ds = context.ds.word(406);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
printloop8:
context.push(context.bx);
context.push(context.di);
@@ -6347,9 +6347,9 @@ nottrigger:
context.push(context.es);
modifychar(context);
printchar(context);
- context.ds.word(312) = context.di;
- context.ds.word(314) = context.bx;
- context.ds.word(138) = 1;
+ context.data.word(312) = context.di;
+ context.data.word(314) = context.bx;
+ context.data.word(138) = 1;
printcurs(context);
vsync(context);
context.push(context.si);
@@ -6374,7 +6374,7 @@ finishmon2:
context.di = context.pop();
context.bx = context.pop();
scrollmonitor(context);
- context.ds.word(312) = context.di;
+ context.data.word(312) = context.di;
goto printloop8;
finishmon:
context.dx = context.pop();
@@ -6382,12 +6382,12 @@ finishmon:
context.bx = context.pop();
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger2;
- context.ds.byte(55) = context.ah;
+ context.data.byte(55) = context.ah;
nottrigger2:
- context.ds.word(312) = context.di;
+ context.data.word(312) = context.di;
scrollmonitor(context);
context.bx = context.si;
- context.ds.byte(72) = 0;
+ context.data.byte(72) = 0;
return;
}
@@ -6512,7 +6512,7 @@ getloop:
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.ds.word(71));
+ context._add(context.ax, context.data.word(71));
context._add(context.ax, context.ax);
context.si = context.ax;
context._add(context.ax, context.ax);
@@ -6590,11 +6590,11 @@ nomod:
}
static void fillryan(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32;
findallryan(context);
context.si = 0+(228*13)+32;
- context.al = context.ds.byte(19);
+ context.al = context.data.byte(19);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
@@ -6641,7 +6641,7 @@ static void fillopen(Context & context) {
lessthanapage:
context.al = 1;
context.push(context.ax);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13);
findallopen(context);
context.si = 0+(228*13);
@@ -6680,7 +6680,7 @@ static void findallryan(Context & context) {
while(--context.cx) context._stosw();
context.di = context.pop();
context.cl = 4;
- context.ds = context.ds.word(398);
+ context.ds = context.data.word(398);
context.bx = 0+2080+30000;
context.ch = 0;
findryanloop:
@@ -6711,9 +6711,9 @@ static void findallopen(Context & context) {
context.ax = 0x0ffff;
while(--context.cx) context._stosw();
context.di = context.pop();
- context.cl = context.ds.byte(110);
- context.dl = context.ds.byte(111);
- context.ds = context.ds.word(398);
+ context.cl = context.data.byte(110);
+ context.dl = context.data.byte(111);
+ context.ds = context.data.word(398);
context.bx = 0+2080+30000;
context.ch = 0;
findopen1:
@@ -6721,10 +6721,10 @@ findopen1:
if (!context.flags.z()) goto findopen2;
context._cmp(context.ds.byte(context.bx+2), context.dl);
if (!context.flags.z()) goto findopen2;
- context._cmp(context.ds.byte(111), 4);
+ context._cmp(context.data.byte(111), 4);
if (context.flags.z()) goto noloccheck;
context.al = context.ds.byte(context.bx+5);
- context._cmp(context.al, context.ds.byte(184));
+ context._cmp(context.al, context.data.byte(184));
if (!context.flags.z()) goto findopen2;
noloccheck:
context.al = context.ds.byte(context.bx+4);
@@ -6741,10 +6741,10 @@ findopen2:
context._add(context.ch, 1);
context._cmp(context.ch, 114);
if (!context.flags.z()) goto findopen1;
- context.cl = context.ds.byte(110);
- context.dl = context.ds.byte(111);
+ context.cl = context.data.byte(110);
+ context.dl = context.data.byte(111);
context.push(context.dx);
- context.ds = context.ds.word(426);
+ context.ds = context.data.word(426);
context.dx = context.pop();
context.bx = 0;
context.ch = 0;
@@ -6778,7 +6778,7 @@ static void obtoinv(Context & context) {
context.push(context.ax);
context.push(context.di);
context.push(context.bx);
- context.ds = context.ds.word(408);
+ context.ds = context.data.word(408);
context._sub(context.di, 2);
context._sub(context.bx, 1);
context.al = 10;
@@ -6792,10 +6792,10 @@ static void obtoinv(Context & context) {
context.push(context.bx);
context.push(context.di);
context.push(context.ax);
- context.ds = context.ds.word(398);
+ context.ds = context.data.word(398);
context._cmp(context.ah, 4);
if (context.flags.z()) goto isanextra;
- context.ds = context.ds.word(446);
+ context.ds = context.data.word(446);
isanextra:
context.cl = context.al;
context._add(context.al, context.al);
@@ -6813,7 +6813,7 @@ isanextra:
isitworn(context);
context.bx = context.pop();
if (!context.flags.z()) goto finishfill;
- context.ds = context.ds.word(408);
+ context.ds = context.data.word(408);
context._sub(context.di, 3);
context._sub(context.bx, 2);
context.al = 7;
@@ -6844,18 +6844,18 @@ static void makeworn(Context & context) {
}
static void examineob(Context & context) {
- context.ds.byte(234) = 0;
- context.ds.word(328) = 0;
+ context.data.byte(234) = 0;
+ context.data.word(328) = 0;
examineagain:
- context.ds.byte(237) = 0;
- context.ds.byte(108) = 0;
- context.ds.byte(110) = 255;
- context.ds.byte(111) = 255;
- context.ds.byte(104) = 0;
- context.al = context.ds.byte(100);
- context.ds.byte(102) = context.al;
- context.ds.byte(89) = 0;
- context.ds.byte(231) = 0;
+ context.data.byte(237) = 0;
+ context.data.byte(108) = 0;
+ context.data.byte(110) = 255;
+ context.data.byte(111) = 255;
+ context.data.byte(104) = 0;
+ context.al = context.data.byte(100);
+ context.data.byte(102) = context.al;
+ context.data.byte(89) = 0;
+ context.data.byte(231) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -6864,7 +6864,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -6876,41 +6876,41 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.ds.byte(103) = 0;
+ context.data.byte(103) = 0;
context.bx = 2494;
- context._cmp(context.ds.byte(104), 0);
+ context._cmp(context.data.byte(104), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.ds.byte(104), 1);
+ context._cmp(context.data.byte(104), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.ds.byte(108), 0);
+ context._cmp(context.data.byte(108), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.ds.byte(103), 0);
+ context._cmp(context.data.byte(103), 0);
if (context.flags.z()) goto waitexam;
- context.ds.byte(106) = 0;
- context._cmp(context.ds.word(21), 0);
+ context.data.byte(106) = 0;
+ context._cmp(context.data.word(21), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.ds.byte(188), 255);
+ context._cmp(context.data.byte(188), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.ds.byte(104) = 0;
- context.ds.byte(110) = 255;
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
return;
justgetback:
- context.ds.byte(104) = 0;
- context.ds.byte(110) = 255;
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
return;
}
static void makemainscreen(Context & context) {
createpanel(context);
- context.ds.byte(62) = 1;
+ context.data.byte(62) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
@@ -6918,16 +6918,16 @@ static void makemainscreen(Context & context) {
showicon(context);
getunderzoom(context);
undertextline(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
animpointer(context);
worktoscreenm(context);
- context.ds.byte(100) = 200;
- context.ds.byte(131) = 0;
+ context.data.byte(100) = 200;
+ context.data.byte(131) = 0;
return;
}
static void getbackfromob(Context & context) {
- context._cmp(context.ds.byte(106), 1);
+ context._cmp(context.data.byte(106), 1);
if (!context.flags.z()) goto notheldob;
blank(context);
return;
@@ -6937,25 +6937,25 @@ notheldob:
}
static void incryanpage(Context & context) {
- context._cmp(context.ds.byte(100), 222);
+ context._cmp(context.data.byte(100), 222);
if (context.flags.z()) goto alreadyincryan;
- context.ds.byte(100) = 222;
+ context.data.byte(100) = 222;
context.al = 31;
commandonly(context);
alreadyincryan:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto noincryan;
context._and(context.ax, 1);
if (!context.flags.z()) goto doincryan;
noincryan:
return;
doincryan:
- context.ax = context.ds.word(198);
+ context.ax = context.data.word(198);
context._sub(context.ax, 80+167);
- context.ds.byte(19) = -1;
+ context.data.byte(19) = -1;
findnewpage:
- context._add(context.ds.byte(19), 1);
+ context._add(context.data.byte(19), 1);
context._sub(context.ax, 18);
if (!context.flags.c()) goto findnewpage;
delpointer(context);
@@ -6968,32 +6968,32 @@ findnewpage:
}
static void openinv(Context & context) {
- context.ds.byte(104) = 1;
+ context.data.byte(104) = 1;
context.al = 61;
context.di = 80;
context.bx = 58-10;
context.dl = 240;
printmessage(context);
fillryan(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
return;
}
static void showryanpage(Context & context) {
- context.ds = context.ds.word(408);
+ context.ds = context.data.word(408);
context.di = 80+167;
context.bx = 58-12;
context.al = 12;
context.ah = 0;
showframe(context);
context.al = 13;
- context._add(context.al, context.ds.byte(19));
+ context._add(context.al, context.data.byte(19));
context.push(context.ax);
- context.al = context.ds.byte(19);
+ context.al = context.data.byte(19);
context.ah = 0;
context.cx = 18;
context._mul(context.cx);
- context.ds = context.ds.word(408);
+ context.ds = context.data.word(408);
context.di = 80+167;
context._add(context.di, context.ax);
context.bx = 58-12;
@@ -7004,8 +7004,8 @@ static void showryanpage(Context & context) {
}
static void openob(Context & context) {
- context.al = context.ds.byte(110);
- context.ah = context.ds.byte(111);
+ context.al = context.data.byte(110);
+ context.ah = context.data.byte(111);
context.di = 5674;
copyname(context);
context.di = 80;
@@ -7013,7 +7013,7 @@ static void openob(Context & context) {
context.al = 62;
context.dl = 240;
printmessage(context);
- context.di = context.ds.word(84);
+ context.di = context.data.word(84);
context._add(context.di, 5);
context.bx = 58+86;
context.es = context.cs;
@@ -7035,18 +7035,18 @@ static void openob(Context & context) {
}
static void obicons(Context & context) {
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
getanyad(context);
context._cmp(context.al, 255);
if (context.flags.z()) goto cantopenit;
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.di = 210;
context.bx = 1;
context.al = 4;
context.ah = 0;
showframe(context);
cantopenit:
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.di = 260;
context.bx = 1;
context.al = 1;
@@ -7056,7 +7056,7 @@ cantopenit:
}
static void examicon(Context & context) {
- context.ds = context.ds.word(410);
+ context.ds = context.data.word(410);
context.di = 254;
context.bx = 5;
context.al = 3;
@@ -7066,13 +7066,13 @@ static void examicon(Context & context) {
}
static void obpicture(Context & context) {
- context.al = context.ds.byte(99);
- context.ah = context.ds.byte(102);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
context._cmp(context.ah, 1);
if (context.flags.z()) goto setframe;
context._cmp(context.ah, 4);
if (context.flags.z()) goto exframe;
- context.ds = context.ds.word(446);
+ context.ds = context.data.word(446);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7085,7 +7085,7 @@ static void obpicture(Context & context) {
setframe:
return;
exframe:
- context.ds = context.ds.word(398);
+ context.ds = context.data.word(398);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7101,18 +7101,18 @@ static void describeob(Context & context) {
getobtextstart(context);
context.di = 33;
context.bx = 92;
- context._cmp(context.ds.byte(102), 1);
+ context._cmp(context.data.byte(102), 1);
if (!context.flags.z()) goto notsetd;
context.bx = 82;
notsetd:
context.dl = 241;
context.ah = 16;
- context.ds.word(71) = 91+91;
+ context.data.word(71) = 91+91;
printdirect(context);
- context.ds.word(71) = 0;
+ context.data.word(71) = 0;
context.di = 36;
context.bx = 104;
- context._cmp(context.ds.byte(102), 1);
+ context._cmp(context.data.byte(102), 1);
if (!context.flags.z()) goto notsetd2;
context.bx = 94;
notsetd2:
@@ -7129,16 +7129,16 @@ notsetd2:
static void additionaltext(Context & context) {
context._add(context.bx, 10);
context.push(context.bx);
- context.al = context.ds.byte(99);
- context.ah = context.ds.byte(102);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto emptycup;
- context.al = context.ds.byte(99);
- context.ah = context.ds.byte(102);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -7168,8 +7168,8 @@ fullcup:
}
static void obsthatdothings(Context & context) {
- context.al = context.ds.byte(99);
- context.ah = context.ds.byte(102);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -7190,21 +7190,21 @@ notlouiscard:
}
static void getobtextstart(Context & context) {
- context.es = context.ds.word(438);
+ context.es = context.data.word(438);
context.si = 0;
context.cx = 0+(82*2);
- context._cmp(context.ds.byte(102), 2);
+ context._cmp(context.data.byte(102), 2);
if (context.flags.z()) goto describe;
- context.es = context.ds.word(440);
+ context.es = context.data.word(440);
context.si = 0;
context.cx = 0+(130*2);
- context._cmp(context.ds.byte(102), 1);
+ context._cmp(context.data.byte(102), 1);
if (context.flags.z()) goto describe;
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.si = 0+2080+30000+(16*114);
context.cx = 0+2080+30000+(16*114)+((114+2)*2);
describe:
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.si, context.ax);
@@ -7218,7 +7218,7 @@ tryagain:
context.al = context.ds.byte(context.si);
context.cx = context.si;
context.si = context.pop();
- context._cmp(context.ds.byte(102), 1);
+ context._cmp(context.data.byte(102), 1);
if (!context.flags.z()) goto cantmakeoneup;
context._cmp(context.al, 0);
if (context.flags.z()) goto findsometext;
@@ -7283,31 +7283,31 @@ endofcolon:
}
static void inventory(Context & context) {
- context._cmp(context.ds.byte(56), 1);
+ context._cmp(context.data.byte(56), 1);
if (context.flags.z()) goto iswatchinv;
- context._cmp(context.ds.word(21), 0);
+ context._cmp(context.data.word(21), 0);
if (context.flags.z()) goto notwatchinv;
iswatchinv:
blank(context);
return;
notwatchinv:
- context._cmp(context.ds.byte(100), 239);
+ context._cmp(context.data.byte(100), 239);
if (context.flags.z()) goto alreadyopinv;
- context.ds.byte(100) = 239;
+ context.data.byte(100) = 239;
context.al = 32;
commandonly(context);
alreadyopinv:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto cantopinv;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopeninv;
cantopinv:
return;
doopeninv:
- context.ds.word(328) = 0;
- context.ds.byte(234) = 0;
- context.ds.byte(237) = 0;
+ context.data.word(328) = 0;
+ context.data.byte(234) = 0;
+ context.data.byte(237) = 0;
animpointer(context);
createpanel(context);
showpanel(context);
@@ -7315,26 +7315,26 @@ doopeninv:
showman(context);
showexit(context);
undertextline(context);
- context.ds.byte(106) = 0;
- context.ds.byte(104) = 2;
+ context.data.byte(106) = 0;
+ context.data.byte(104) = 2;
openinv(context);
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.ds.byte(110) = 255;
+ context.data.byte(110) = 255;
goto waitexam;
/*continuing to unbounded code: examineagain from examineob:3-66*/
examineagain:
- context.ds.byte(237) = 0;
- context.ds.byte(108) = 0;
- context.ds.byte(110) = 255;
- context.ds.byte(111) = 255;
- context.ds.byte(104) = 0;
- context.al = context.ds.byte(100);
- context.ds.byte(102) = context.al;
- context.ds.byte(89) = 0;
- context.ds.byte(231) = 0;
+ context.data.byte(237) = 0;
+ context.data.byte(108) = 0;
+ context.data.byte(110) = 255;
+ context.data.byte(111) = 255;
+ context.data.byte(104) = 0;
+ context.al = context.data.byte(100);
+ context.data.byte(102) = context.al;
+ context.data.byte(89) = 0;
+ context.data.byte(231) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -7343,7 +7343,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -7355,35 +7355,35 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.ds.byte(103) = 0;
+ context.data.byte(103) = 0;
context.bx = 2494;
- context._cmp(context.ds.byte(104), 0);
+ context._cmp(context.data.byte(104), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.ds.byte(104), 1);
+ context._cmp(context.data.byte(104), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.ds.byte(108), 0);
+ context._cmp(context.data.byte(108), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.ds.byte(103), 0);
+ context._cmp(context.data.byte(103), 0);
if (context.flags.z()) goto waitexam;
- context.ds.byte(106) = 0;
- context._cmp(context.ds.word(21), 0);
+ context.data.byte(106) = 0;
+ context._cmp(context.data.word(21), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.ds.byte(188), 255);
+ context._cmp(context.data.byte(188), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.ds.byte(104) = 0;
- context.ds.byte(110) = 255;
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
return;
justgetback:
- context.ds.byte(104) = 0;
- context.ds.byte(110) = 255;
+ context.data.byte(104) = 0;
+ context.data.byte(110) = 255;
return;
examlist:
invlist1:
@@ -7393,9 +7393,9 @@ withlist1:
}
static void setpickup(Context & context) {
- context._cmp(context.ds.byte(102), 1);
+ context._cmp(context.data.byte(102), 1);
if (context.flags.z()) goto cantpick;
- context._cmp(context.ds.byte(102), 3);
+ context._cmp(context.data.byte(102), 3);
if (context.flags.z()) goto cantpick;
getanyad(context);
context.al = context.ds.byte(context.bx+2);
@@ -7405,18 +7405,18 @@ cantpick:
blank(context);
return;
canpick:
- context._cmp(context.ds.byte(100), 209);
+ context._cmp(context.data.byte(100), 209);
if (context.flags.z()) goto alreadysp;
- context.ds.byte(100) = 209;
- context.bl = context.ds.byte(99);
- context.bh = context.ds.byte(102);
+ context.data.byte(100) = 209;
+ context.bl = context.data.byte(99);
+ context.bh = context.data.byte(102);
context.al = 33;
commandwithob(context);
alreadysp:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._cmp(context.ax, 1);
if (!context.flags.z()) goto nosetpick;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (!context.flags.z()) goto dosetpick;
nosetpick:
return;
@@ -7426,16 +7426,16 @@ dosetpick:
showman(context);
showexit(context);
examicon(context);
- context.ds.byte(106) = 1;
- context.ds.byte(104) = 2;
- context._cmp(context.ds.byte(102), 4);
+ context.data.byte(106) = 1;
+ context.data.byte(104) = 2;
+ context._cmp(context.data.byte(102), 4);
if (context.flags.z()) goto pickupexob;
- context.al = context.ds.byte(99);
- context.ds.byte(89) = context.al;
- context.ds.byte(110) = 255;
+ context.al = context.data.byte(99);
+ context.data.byte(89) = context.al;
+ context.data.byte(110) = 255;
transfertoex(context);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = 4;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = 4;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
@@ -7443,22 +7443,22 @@ dosetpick:
worktoscreenm(context);
return;
pickupexob:
- context.al = context.ds.byte(99);
- context.ds.byte(89) = context.al;
- context.ds.byte(110) = 255;
+ context.al = context.data.byte(99);
+ context.data.byte(89) = context.al;
+ context.data.byte(110) = 255;
openinv(context);
worktoscreenm(context);
return;
}
static void examinventory(Context & context) {
- context._cmp(context.ds.byte(100), 249);
+ context._cmp(context.data.byte(100), 249);
if (context.flags.z()) goto alreadyexinv;
- context.ds.byte(100) = 249;
+ context.data.byte(100) = 249;
context.al = 32;
commandonly(context);
alreadyexinv:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._and(context.ax, 1);
if (!context.flags.z()) goto doexinv;
return;
@@ -7468,8 +7468,8 @@ doexinv:
showman(context);
showexit(context);
examicon(context);
- context.ds.byte(106) = 0;
- context.ds.byte(104) = 2;
+ context.data.byte(106) = 0;
+ context.data.byte(104) = 2;
openinv(context);
worktoscreenm(context);
return;
@@ -7478,10 +7478,10 @@ doexinv:
static void reexfrominv(Context & context) {
findinvpos(context);
context.ax = context.ds.word(context.bx);
- context.ds.byte(100) = context.ah;
- context.ds.byte(99) = context.al;
- context.ds.byte(108) = 1;
- context.ds.byte(234) = 0;
+ context.data.byte(100) = context.ah;
+ context.data.byte(99) = context.al;
+ context.data.byte(108) = 1;
+ context.data.byte(234) = 0;
return;
}
@@ -7489,62 +7489,62 @@ static void reexfromopen(Context & context) {
return;
findopenpos(context);
context.ax = context.ds.word(context.bx);
- context.ds.byte(100) = context.ah;
- context.ds.byte(99) = context.al;
- context.ds.byte(108) = 1;
- context.ds.byte(234) = 0;
+ context.data.byte(100) = context.ah;
+ context.data.byte(99) = context.al;
+ context.data.byte(108) = 1;
+ context.data.byte(234) = 0;
return;
}
static void swapwithinv(Context & context) {
- context.al = context.ds.byte(89);
- context.ah = context.ds.byte(102);
- context._cmp(context.ax, context.ds.word(94));
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto difsub7;
- context._cmp(context.ds.byte(100), 243);
+ context._cmp(context.data.byte(100), 243);
if (context.flags.z()) goto alreadyswap1;
- context.ds.byte(100) = 243;
+ context.data.byte(100) = 243;
difsub7:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap1:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto cantswap1;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap1;
cantswap1:
return;
doswap1:
- context.ah = context.ds.byte(102);
- context.al = context.ds.byte(89);
+ context.ah = context.data.byte(102);
+ context.al = context.data.byte(89);
context.push(context.ax);
findinvpos(context);
context.ax = context.ds.word(context.bx);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
- context.bl = context.ds.byte(89);
- context.bh = context.ds.byte(102);
+ context.bl = context.data.byte(89);
+ context.bh = context.data.byte(102);
context.ax = context.pop();
- context.ds.byte(102) = context.ah;
- context.ds.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
context.push(context.bx);
findinvpos(context);
delpointer(context);
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
geteitherad(context);
context.ds.byte(context.bx+2) = 4;
context.ds.byte(context.bx+3) = 255;
- context.al = context.ds.byte(107);
+ context.al = context.data.byte(107);
context.ds.byte(context.bx+4) = context.al;
context.ax = context.pop();
- context.ds.byte(102) = context.ah;
- context.ds.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7554,21 +7554,21 @@ doswap1:
}
static void swapwithopen(Context & context) {
- context.al = context.ds.byte(89);
- context.ah = context.ds.byte(102);
- context._cmp(context.ax, context.ds.word(94));
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto difsub8;
- context._cmp(context.ds.byte(100), 242);
+ context._cmp(context.data.byte(100), 242);
if (context.flags.z()) goto alreadyswap2;
- context.ds.byte(100) = 242;
+ context.data.byte(100) = 242;
difsub8:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap2:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto cantswap2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap2;
@@ -7582,11 +7582,11 @@ doswap2:
return;
notwornswap:
delpointer(context);
- context.al = context.ds.byte(89);
- context._cmp(context.al, context.ds.byte(110));
+ context.al = context.data.byte(89);
+ context._cmp(context.al, context.data.byte(110));
if (!context.flags.z()) goto isntsame2;
- context.al = context.ds.byte(102);
- context._cmp(context.al, context.ds.byte(111));
+ context.al = context.data.byte(102);
+ context._cmp(context.al, context.data.byte(111));
if (!context.flags.z()) goto isntsame2;
errormessage1(context);
return;
@@ -7596,13 +7596,13 @@ isntsame2:
if (context.flags.z()) goto sizeok2;
return;
sizeok2:
- context.ah = context.ds.byte(102);
- context.al = context.ds.byte(89);
+ context.ah = context.data.byte(102);
+ context.al = context.data.byte(89);
context.push(context.ax);
findopenpos(context);
context.ax = context.ds.word(context.bx);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeswapex;
geteitherad(context);
@@ -7611,31 +7611,31 @@ sizeok2:
goto actuallyswap;
makeswapex:
transfertoex(context);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = 4;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = 4;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
actuallyswap:
- context.bl = context.ds.byte(89);
- context.bh = context.ds.byte(102);
+ context.bl = context.data.byte(89);
+ context.bh = context.data.byte(102);
context.ax = context.pop();
- context.ds.byte(102) = context.ah;
- context.ds.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
context.push(context.bx);
findopenpos(context);
geteitherad(context);
- context.al = context.ds.byte(111);
+ context.al = context.data.byte(111);
context.ds.byte(context.bx+2) = context.al;
- context.al = context.ds.byte(110);
+ context.al = context.data.byte(110);
context.ds.byte(context.bx+3) = context.al;
- context.al = context.ds.byte(107);
+ context.al = context.data.byte(107);
context.ds.byte(context.bx+4) = context.al;
- context.al = context.ds.byte(184);
+ context.al = context.data.byte(184);
context.ds.byte(context.bx+5) = context.al;
context.ax = context.pop();
- context.ds.byte(102) = context.ah;
- context.ds.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
fillopen(context);
fillryan(context);
undertextline(context);
@@ -7648,7 +7648,7 @@ actuallyswap:
}
static void intoinv(Context & context) {
- context._cmp(context.ds.byte(106), 0);
+ context._cmp(context.data.byte(106), 0);
if (!context.flags.z()) goto notout;
outofinv(context);
return;
@@ -7660,21 +7660,21 @@ notout:
swapwithinv(context);
return;
canplace1:
- context.al = context.ds.byte(89);
- context.ah = context.ds.byte(102);
- context._cmp(context.ax, context.ds.word(94));
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto difsub1;
- context._cmp(context.ds.byte(100), 220);
+ context._cmp(context.data.byte(100), 220);
if (context.flags.z()) goto alreadyplce;
- context.ds.byte(100) = 220;
+ context.data.byte(100) = 220;
difsub1:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplce:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto notletgo2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doplace;
@@ -7682,13 +7682,13 @@ notletgo2:
return;
doplace:
delpointer(context);
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
getexad(context);
context.ds.byte(context.bx+2) = 4;
context.ds.byte(context.bx+3) = 255;
- context.al = context.ds.byte(107);
+ context.al = context.data.byte(107);
context.ds.byte(context.bx+4) = context.al;
- context.ds.byte(106) = 0;
+ context.data.byte(106) = 0;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7699,9 +7699,9 @@ doplace:
}
static void deletetaken(Context & context) {
- context.es = context.ds.word(426);
- context.ah = context.ds.byte(184);
- context.ds = context.ds.word(398);
+ context.es = context.data.word(426);
+ context.ah = context.data.byte(184);
+ context.ds = context.data.word(398);
context.si = 0+2080+30000;
context.cx = 114;
takenloop:
@@ -7729,25 +7729,25 @@ static void outofinv(Context & context) {
blank(context);
return;
canpick2:
- context.bx = context.ds.word(202);
+ context.bx = context.data.word(202);
context._cmp(context.bx, 2);
if (!context.flags.z()) goto canpick2a;
reexfrominv(context);
return;
canpick2a:
- context._cmp(context.ax, context.ds.word(94));
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto difsub3;
- context._cmp(context.ds.byte(100), 221);
+ context._cmp(context.data.byte(100), 221);
if (context.flags.z()) goto alreadygrab;
- context.ds.byte(100) = 221;
+ context.data.byte(100) = 221;
difsub3:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrab:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto notletgo;
context._and(context.ax, 1);
if (!context.flags.z()) goto dograb;
@@ -7755,11 +7755,11 @@ notletgo:
return;
dograb:
delpointer(context);
- context.ds.byte(106) = 1;
+ context.data.byte(106) = 1;
findinvpos(context);
context.ax = context.ds.word(context.bx);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
getexad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
@@ -7777,7 +7777,7 @@ static void getfreead(Context & context) {
context.cl = 4;
context._shl(context.ax, context.cl);
context.bx = context.ax;
- context.es = context.ds.word(426);
+ context.es = context.data.word(426);
return;
}
@@ -7786,39 +7786,39 @@ static void getexad(Context & context) {
context.bx = 16;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context._add(context.bx, 0+2080+30000);
return;
}
static void geteitherad(Context & context) {
- context._cmp(context.ds.byte(102), 4);
+ context._cmp(context.data.byte(102), 4);
if (context.flags.z()) goto isinexlist;
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
getfreead(context);
return;
isinexlist:
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
getexad(context);
return;
}
static void getanyad(Context & context) {
- context._cmp(context.ds.byte(102), 4);
+ context._cmp(context.data.byte(102), 4);
if (context.flags.z()) goto isex;
- context._cmp(context.ds.byte(102), 2);
+ context._cmp(context.data.byte(102), 2);
if (context.flags.z()) goto isfree;
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
getsetad(context);
context.ax = context.ds.word(context.bx+4);
return;
isfree:
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
getfreead(context);
context.ax = context.ds.word(context.bx+7);
return;
isex:
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
getexad(context);
context.ax = context.ds.word(context.bx+7);
return;
@@ -7840,21 +7840,21 @@ isex3:
}
static void getopenedsize(Context & context) {
- context._cmp(context.ds.byte(111), 4);
+ context._cmp(context.data.byte(111), 4);
if (context.flags.z()) goto isex2;
- context._cmp(context.ds.byte(111), 2);
+ context._cmp(context.data.byte(111), 2);
if (context.flags.z()) goto isfree2;
- context.al = context.ds.byte(110);
+ context.al = context.data.byte(110);
getsetad(context);
context.ax = context.ds.word(context.bx+3);
return;
isfree2:
- context.al = context.ds.byte(110);
+ context.al = context.data.byte(110);
getfreead(context);
context.ax = context.ds.word(context.bx+7);
return;
isex2:
- context.al = context.ds.byte(110);
+ context.al = context.data.byte(110);
getexad(context);
context.ax = context.ds.word(context.bx+7);
return;
@@ -7865,40 +7865,40 @@ static void getsetad(Context & context) {
context.bx = 64;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.ds.word(428);
+ context.es = context.data.word(428);
return;
}
static void findinvpos(Context & context) {
- context.cx = context.ds.word(198);
+ context.cx = context.data.word(198);
context._sub(context.cx, 80);
context.bx = -1;
findinv1:
context._add(context.bx, 1);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv1;
- context.cx = context.ds.word(200);
+ context.cx = context.data.word(200);
context._sub(context.cx, 58);
context._sub(context.bx, 5);
findinv2:
context._add(context.bx, 5);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv2;
- context.al = context.ds.byte(19);
+ context.al = context.data.byte(19);
context.ah = 0;
context.cx = 10;
context._mul(context.cx);
context._add(context.bx, context.ax);
context.al = context.bl;
- context.ds.byte(107) = context.al;
+ context.data.byte(107) = context.al;
context._add(context.bx, context.bx);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context._add(context.bx, 0+(228*13)+32);
return;
}
static void findopenpos(Context & context) {
- context.cx = context.ds.word(198);
+ context.cx = context.data.word(198);
context._sub(context.cx, 80);
context.bx = -1;
findopenp1:
@@ -7906,26 +7906,26 @@ findopenp1:
context._sub(context.cx, 44);
if (!context.flags.c()) goto findopenp1;
context.al = context.bl;
- context.ds.byte(107) = context.al;
+ context.data.byte(107) = context.al;
context._add(context.bx, context.bx);
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context._add(context.bx, 0+(228*13));
return;
}
static void dropobject(Context & context) {
- context._cmp(context.ds.byte(100), 223);
+ context._cmp(context.data.byte(100), 223);
if (context.flags.z()) goto alreadydrop;
- context.ds.byte(100) = 223;
- context._cmp(context.ds.byte(106), 0);
+ context.data.byte(100) = 223;
+ context._cmp(context.data.byte(106), 0);
if (context.flags.z()) { blank(context); return; };
- context.bl = context.ds.byte(89);
- context.bh = context.ds.byte(102);
+ context.bl = context.data.byte(89);
+ context.bh = context.data.byte(102);
context.al = 37;
commandwithob(context);
alreadydrop:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nodrop;
context._and(context.ax, 1);
if (!context.flags.z()) goto dodrop;
@@ -7938,11 +7938,11 @@ dodrop:
wornerror(context);
return;
nowornerror:
- context._cmp(context.ds.byte(184), 47);
+ context._cmp(context.data.byte(184), 47);
if (context.flags.z()) goto nodrop2;
- context.cl = context.ds.byte(151);
+ context.cl = context.data.byte(151);
context._add(context.cl, 12);
- context.ch = context.ds.byte(152);
+ context.ch = context.data.byte(152);
context._add(context.ch, 12);
checkone(context);
context._cmp(context.cl, 2);
@@ -7951,14 +7951,14 @@ nodrop2:
droperror(context);
return;
nodroperror:
- context._cmp(context.ds.byte(128), 64);
+ context._cmp(context.data.byte(128), 64);
if (!context.flags.z()) goto notinlift;
- context._cmp(context.ds.byte(129), 64);
+ context._cmp(context.data.byte(129), 64);
if (!context.flags.z()) goto notinlift;
droperror(context);
return;
notinlift:
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
context.ah = 4;
context.cl = 'G';
context.ch = 'U';
@@ -7966,7 +7966,7 @@ notinlift:
context.dh = 'A';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
context.ah = 4;
context.cl = 'S';
context.ch = 'H';
@@ -7974,38 +7974,38 @@ notinlift:
context.dh = 'D';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.ds.byte(102) = 4;
- context.al = context.ds.byte(89);
+ context.data.byte(102) = 4;
+ context.al = context.data.byte(89);
getexad(context);
context.ds.byte(context.bx+2) = 0;
- context.al = context.ds.byte(151);
+ context.al = context.data.byte(151);
context._add(context.al, 4);
context.cl = 4;
context._shr(context.al, context.cl);
- context._add(context.al, context.ds.byte(148));
- context.ah = context.ds.byte(152);
+ context._add(context.al, context.data.byte(148));
+ context.ah = context.data.byte(152);
context._add(context.ah, 8);
context.cl = 4;
context._shr(context.ah, context.cl);
- context._add(context.ah, context.ds.byte(149));
+ context._add(context.ah, context.data.byte(149));
context.ds.byte(context.bx+3) = context.al;
context.ds.byte(context.bx+5) = context.ah;
- context.al = context.ds.byte(151);
+ context.al = context.data.byte(151);
context._add(context.al, 4);
context._and(context.al, 15);
- context.ah = context.ds.byte(152);
+ context.ah = context.data.byte(152);
context._add(context.ah, 8);
context._and(context.ah, 15);
context.ds.byte(context.bx+4) = context.al;
context.ds.byte(context.bx+6) = context.ah;
- context.ds.byte(106) = 0;
- context.al = context.ds.byte(184);
+ context.data.byte(106) = 0;
+ context.al = context.data.byte(184);
context.ds.byte(context.bx) = context.al;
return;
}
static void droperror(Context & context) {
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8018,13 +8018,13 @@ static void droperror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
worktoscreenm(context);
return;
}
static void cantdrop(Context & context) {
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8037,13 +8037,13 @@ static void cantdrop(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
worktoscreenm(context);
return;
}
static void wornerror(Context & context) {
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8056,17 +8056,17 @@ static void wornerror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
worktoscreenm(context);
return;
}
static void removeobfrominv(Context & context) {
- context._cmp(context.ds.byte(99), 100);
+ context._cmp(context.data.byte(99), 100);
if (context.flags.z()) goto obnotexist;
getanyad(context);
context.di = context.bx;
- context.cl = context.ds.byte(99);
+ context.cl = context.data.byte(99);
context.ch = 0;
deleteexobject(context);
obnotexist:
@@ -8074,33 +8074,33 @@ obnotexist:
}
static void selectopenob(Context & context) {
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
getanyad(context);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canopenit1;
blank(context);
return;
canopenit1:
- context._cmp(context.ds.byte(100), 224);
+ context._cmp(context.data.byte(100), 224);
if (context.flags.z()) goto alreadyopob;
- context.ds.byte(100) = 224;
- context.bl = context.ds.byte(99);
- context.bh = context.ds.byte(102);
+ context.data.byte(100) = 224;
+ context.bl = context.data.byte(99);
+ context.bh = context.data.byte(102);
context.al = 38;
commandwithob(context);
alreadyopob:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto noopenob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopenob;
noopenob:
return;
doopenob:
- context.al = context.ds.byte(99);
- context.ds.byte(110) = context.al;
- context.al = context.ds.byte(102);
- context.ds.byte(111) = context.al;
+ context.al = context.data.byte(99);
+ context.data.byte(110) = context.al;
+ context.al = context.data.byte(102);
+ context.data.byte(111) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -8117,9 +8117,9 @@ doopenob:
}
static void useopened(Context & context) {
- context._cmp(context.ds.byte(110), 255);
+ context._cmp(context.data.byte(110), 255);
if (context.flags.z()) goto cannotuseopen;
- context._cmp(context.ds.byte(106), 0);
+ context._cmp(context.data.byte(106), 0);
if (!context.flags.z()) goto notout2;
outofopen(context);
return;
@@ -8132,26 +8132,26 @@ notout2:
cannotuseopen:
return;
canplace3:
- context._cmp(context.ds.byte(106), 1);
+ context._cmp(context.data.byte(106), 1);
if (context.flags.z()) goto intoopen;
blank(context);
return;
intoopen:
- context.al = context.ds.byte(89);
- context.ah = context.ds.byte(102);
- context._cmp(context.ax, context.ds.word(94));
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto difsub2;
- context._cmp(context.ds.byte(100), 227);
+ context._cmp(context.data.byte(100), 227);
if (context.flags.z()) goto alreadyplc2;
- context.ds.byte(100) = 227;
+ context.data.byte(100) = 227;
difsub2:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplc2:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto notletgo3;
context._cmp(context.ax, 1);
if (context.flags.z()) goto doplace2;
@@ -8165,11 +8165,11 @@ doplace2:
return;
notworntoopen:
delpointer(context);
- context.al = context.ds.byte(89);
- context._cmp(context.al, context.ds.byte(110));
+ context.al = context.data.byte(89);
+ context._cmp(context.al, context.data.byte(110));
if (!context.flags.z()) goto isntsame;
- context.al = context.ds.byte(102);
- context._cmp(context.al, context.ds.byte(111));
+ context.al = context.data.byte(102);
+ context._cmp(context.al, context.data.byte(111));
if (!context.flags.z()) goto isntsame;
errormessage1(context);
return;
@@ -8179,16 +8179,16 @@ isntsame:
if (context.flags.z()) goto sizeok1;
return;
sizeok1:
- context.ds.byte(106) = 0;
- context.al = context.ds.byte(89);
+ context.data.byte(106) = 0;
+ context.al = context.data.byte(89);
geteitherad(context);
- context.al = context.ds.byte(111);
+ context.al = context.data.byte(111);
context.ds.byte(context.bx+2) = context.al;
- context.al = context.ds.byte(110);
+ context.al = context.data.byte(110);
context.ds.byte(context.bx+3) = context.al;
- context.al = context.ds.byte(107);
+ context.al = context.data.byte(107);
context.ds.byte(context.bx+4) = context.al;
- context.al = context.ds.byte(184);
+ context.al = context.data.byte(184);
context.ds.byte(context.bx+5) = context.al;
fillopen(context);
undertextline(context);
@@ -8225,7 +8225,7 @@ static void errormessage1(Context & context) {
}
static void errormessage2(Context & context) {
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8273,7 +8273,7 @@ static void errormessage3(Context & context) {
static void checkobjectsize(Context & context) {
getopenedsize(context);
context.push(context.ax);
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
geteitherad(context);
context.al = context.ds.byte(context.bx+9);
context.cx = context.pop();
@@ -8312,7 +8312,7 @@ sizeok:
}
static void outofopen(Context & context) {
- context._cmp(context.ds.byte(110), 255);
+ context._cmp(context.data.byte(110), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
context.ax = context.ds.word(context.bx);
@@ -8322,19 +8322,19 @@ cantuseopen:
blank(context);
return;
canpick4:
- context._cmp(context.ax, context.ds.word(94));
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto difsub4;
- context._cmp(context.ds.byte(100), 228);
+ context._cmp(context.data.byte(100), 228);
if (context.flags.z()) goto alreadygrb;
- context.ds.byte(100) = 228;
+ context.data.byte(100) = 228;
difsub4:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrb:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto notletgo4;
context._cmp(context.ax, 1);
if (context.flags.z()) goto dogrb;
@@ -8345,11 +8345,11 @@ notletgo4:
return;
dogrb:
delpointer(context);
- context.ds.byte(106) = 1;
+ context.data.byte(106) = 1;
findopenpos(context);
context.ax = context.ds.word(context.bx);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = context.ah;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeintoex;
geteitherad(context);
@@ -8358,8 +8358,8 @@ dogrb:
goto actuallyout;
makeintoex:
transfertoex(context);
- context.ds.byte(89) = context.al;
- context.ds.byte(102) = 4;
+ context.data.byte(89) = context.al;
+ context.data.byte(102) = 4;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
@@ -8377,37 +8377,37 @@ actuallyout:
static void transfertoex(Context & context) {
emergencypurge(context);
getexpos(context);
- context.al = context.ds.byte(10);
+ context.al = context.data.byte(10);
context.push(context.ax);
context.push(context.di);
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.ds.word(426);
+ context.ds = context.data.word(426);
context.si = context.ax;
context.cx = 8;
while(--context.cx) context._movsw();
context.di = context.pop();
- context.al = context.ds.byte(184);
+ context.al = context.data.byte(184);
context.ds.byte(context.di) = context.al;
context.ds.byte(context.di+11) = context.al;
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
context.ds.byte(context.di+1) = context.al;
context.ds.byte(context.di+2) = 4;
context.ds.byte(context.di+3) = 255;
- context.al = context.ds.byte(107);
+ context.al = context.data.byte(107);
context.ds.byte(context.di+4) = context.al;
- context.al = context.ds.byte(89);
- context.ds.byte(90) = context.al;
+ context.al = context.data.byte(89);
+ context.data.byte(90) = context.al;
transfermap(context);
transferinv(context);
transfertext(context);
- context.al = context.ds.byte(89);
+ context.al = context.data.byte(89);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.ds.word(426);
+ context.ds = context.data.word(426);
context.si = context.ax;
context.ds.byte(context.si+2) = 254;
pickupconts(context);
@@ -8419,10 +8419,10 @@ static void pickupconts(Context & context) {
context.al = context.ds.byte(context.si+7);
context._cmp(context.al, 255);
if (context.flags.z()) goto notopenable;
- context.al = context.ds.byte(89);
- context.ah = context.ds.byte(102);
- context.dl = context.ds.byte(10);
- context.es = context.ds.word(426);
+ context.al = context.data.byte(89);
+ context.ah = context.data.byte(102);
+ context.dl = context.data.byte(10);
+ context.es = context.data.word(426);
context.bx = 0;
context.cx = 0;
pickupcontloop:
@@ -8435,7 +8435,7 @@ pickupcontloop:
if (!context.flags.z()) goto notinsidethis;
context._cmp(context.ds.byte(context.bx+3), context.al);
if (!context.flags.z()) goto notinsidethis;
- context.ds.byte(90) = context.cl;
+ context.data.byte(90) = context.cl;
transfercontoex(context);
notinsidethis:
context.ax = context.pop();
@@ -8465,10 +8465,10 @@ static void transfercontoex(Context & context) {
while(--context.cx) context._movsw();
context.di = context.pop();
context.dx = context.pop();
- context.al = context.ds.byte(184);
+ context.al = context.data.byte(184);
context.ds.byte(context.di) = context.al;
context.ds.byte(context.di+11) = context.al;
- context.al = context.ds.byte(90);
+ context.al = context.data.byte(90);
context.ds.byte(context.di+1) = context.al;
context.ds.byte(context.di+3) = context.dl;
context.ds.byte(context.di+2) = 4;
@@ -8482,19 +8482,19 @@ static void transfercontoex(Context & context) {
}
static void transfertext(Context & context) {
- context.es = context.ds.word(398);
- context.al = context.ds.byte(10);
+ context.es = context.data.word(398);
+ context.al = context.data.byte(10);
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = 0+2080+30000+(16*114);
context._add(context.bx, context.ax);
- context.di = context.ds.word(14);
+ context.di = context.data.word(14);
context.ds.word(context.bx) = context.di;
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
- context.al = context.ds.byte(90);
+ context.al = context.data.byte(90);
context.ah = 0;
context._add(context.ax, context.ax);
- context.ds = context.ds.word(438);
+ context.ds = context.data.word(438);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+(82*2);
@@ -8503,14 +8503,14 @@ static void transfertext(Context & context) {
moretext:
context._lodsb();
context._stosb();
- context._add(context.ds.word(14), 1);
+ context._add(context.data.word(14), 1);
context._cmp(context.al, 0);
if (!context.flags.z()) goto moretext;
return;
}
static void getexpos(Context & context) {
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.al = 0;
context.di = 0+2080+30000;
tryanotherex:
@@ -8521,13 +8521,13 @@ tryanotherex:
context._cmp(context.al, 114);
if (!context.flags.z()) goto tryanotherex;
foundnewex:
- context.ds.byte(10) = context.al;
+ context.data.byte(10) = context.al;
return;
}
static void purgealocation(Context & context) {
context.push(context.ax);
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.di = 0+2080+30000;
context.bx = context.pop();
context.cx = 0;
@@ -8555,14 +8555,14 @@ dontpurge:
static void emergencypurge(Context & context) {
checkpurgeagain:
- context.ax = context.ds.word(12);
+ context.ax = context.data.word(12);
context._add(context.ax, 4000);
context._cmp(context.ax, 30000);
if (context.flags.c()) goto notnearframeend;
purgeanitem(context);
goto checkpurgeagain;
notnearframeend:
- context.ax = context.ds.word(14);
+ context.ax = context.data.word(14);
context._add(context.ax, 400);
context._cmp(context.ax, 18000);
if (context.flags.c()) goto notneartextend;
@@ -8573,9 +8573,9 @@ notneartextend:
}
static void purgeanitem(Context & context) {
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.di = 0+2080+30000;
- context.bl = context.ds.byte(184);
+ context.bl = context.data.byte(184);
context.cx = 0;
lookforpurge:
context.al = context.ds.byte(context.di+2);
@@ -8596,7 +8596,7 @@ cantpurge:
context._cmp(context.cx, 114);
if (!context.flags.z()) goto lookforpurge;
context.di = 0+2080+30000;
- context.bl = context.ds.byte(184);
+ context.bl = context.data.byte(184);
context.cx = 0;
lookforpurge2:
context.al = context.ds.byte(context.di+2);
@@ -8681,7 +8681,7 @@ static void deleteexframe(Context & context) {
context.ds = context.es;
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.ds.word(12), context.bx);
+ context._sub(context.data.word(12), context.bx);
context.si = context.pop();
context.cx = 114*3;
context.di = 0;
@@ -8722,7 +8722,7 @@ findlenextext:
context._sub(context.cx, context.bx);
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.ds.word(14), context.bx);
+ context._sub(context.data.word(14), context.bx);
context.si = context.pop();
context.cx = 114;
context.di = 0+2080+30000+(16*114);
@@ -8741,7 +8741,7 @@ beforethistext:
static void blockget(Context & context) {
context.ah = context.al;
context.al = 0;
- context.ds = context.ds.word(416);
+ context.ds = context.data.word(416);
context.si = 0+192;
context._add(context.si, context.ax);
return;
@@ -8759,7 +8759,7 @@ static void drawfloor(Context & context) {
showallex(context);
paneltomap(context);
initrain(context);
- context.ds.byte(62) = 0;
+ context.data.byte(62) = 0;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -8776,8 +8776,8 @@ static void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.ds.word(121));
- context.ds.word(117) = context.ax;
+ context._add(context.ax, context.data.word(121));
+ context.data.word(117) = context.ax;
context.dx = context.pop();
context.cx = context.pop();
context.al = 10;
@@ -8787,13 +8787,13 @@ static void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.ds.word(123));
- context.ds.word(119) = context.ax;
+ context._add(context.ax, context.data.word(123));
+ context.data.word(119) = context.ax;
return;
}
static void getdimension(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32);
context.ch = 0;
dimloop1:
@@ -8845,14 +8845,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.ds.word(125) = context.ax;
+ context.data.word(125) = context.ax;
context.al = context.ch;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.ds.word(127) = context.ax;
+ context.data.word(127) = context.ax;
context._sub(context.dl, context.cl);
context._sub(context.dh, context.ch);
context.al = context.dl;
@@ -8861,14 +8861,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.ds.byte(128) = context.al;
+ context.data.byte(128) = context.al;
context.al = context.dh;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.ds.byte(129) = context.al;
+ context.data.byte(129) = context.al;
return;
}
@@ -8903,13 +8903,13 @@ gotlength:
}
static void drawflags(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.di = 0+(228*13)+32+60+(32*32);
- context.al = context.ds.byte(149);
+ context.al = context.data.byte(149);
context.ah = 0;
context.cx = 66;
context._mul(context.cx);
- context.bl = context.ds.byte(148);
+ context.bl = context.data.byte(148);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -8919,9 +8919,9 @@ _tmp28:
context.push(context.cx);
context.cx = 11;
_tmp28a:
- context.ds = context.ds.word(418);
+ context.ds = context.data.word(418);
context._lodsb();
- context.ds = context.ds.word(416);
+ context.ds = context.data.word(416);
context.push(context.si);
context.push(context.ax);
context.ah = 0;
@@ -8940,9 +8940,9 @@ _tmp28a:
}
static void eraseoldobs(Context & context) {
- context._cmp(context.ds.byte(62), 0);
+ context._cmp(context.data.byte(62), 0);
if (context.flags.z()) goto donterase;
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
oberase:
@@ -8965,21 +8965,21 @@ donterase:
}
static void showallobs(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32);
- context.ds.word(18) = context.bx;
+ context.data.word(18) = context.bx;
context.di = context.bx;
context.cx = 128*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.ds.word(444);
- context.ds.word(166) = context.es;
+ context.es = context.data.word(444);
+ context.data.word(166) = context.es;
context.ax = 0;
- context.ds.word(164) = context.ax;
+ context.data.word(164) = context.ax;
context.ax = 0+2080;
- context.ds.word(162) = context.ax;
- context.ds.byte(181) = 0;
- context.ds = context.ds.word(428);
+ context.data.word(162) = context.ax;
+ context.data.byte(181) = 0;
+ context.ds = context.data.word(428);
context.si = 0;
context.cx = 128;
showobsloop:
@@ -8987,14 +8987,14 @@ showobsloop:
context.push(context.si);
context.push(context.si);
context._add(context.si, 58);
- context.es = context.ds.word(428);
+ context.es = context.data.word(428);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankframe;
context.al = context.ds.byte(context.si+18);
context.ah = 0;
- context.ds.word(160) = context.ax;
+ context.data.word(160) = context.ax;
context._cmp(context.al, 255);
if (context.flags.z()) goto blankframe;
context.push(context.es);
@@ -9011,31 +9011,31 @@ showobsloop:
if (context.flags.z()) goto animating;
context._cmp(context.ds.byte(context.si+5), 6);
if (context.flags.z()) goto animating;
- context.ax = context.ds.word(160);
+ context.ax = context.data.word(160);
context.ah = 0;
- context._add(context.di, context.ds.word(117));
- context._add(context.bx, context.ds.word(119));
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
showframe(context);
goto drawnsetob;
animating:
makebackob(context);
drawnsetob:
- context.si = context.ds.word(18);
- context.es = context.ds.word(412);
- context.al = context.ds.byte(179);
- context.ah = context.ds.byte(180);
+ context.si = context.data.word(18);
+ context.es = context.data.word(412);
+ context.al = context.data.byte(179);
+ context.ah = context.data.byte(180);
context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.ds.word(176);
+ context.ax = context.data.word(176);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.ds.word(context.si+2) = context.ax;
- context.al = context.ds.byte(181);
+ context.al = context.data.byte(181);
context.ds.byte(context.si+4) = context.al;
context._add(context.si, 5);
- context.ds.word(18) = context.si;
+ context.data.word(18) = context.si;
blankframe:
- context._add(context.ds.byte(181), 1);
+ context._add(context.data.byte(181), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 64);
@@ -9047,19 +9047,19 @@ finishedsetobs:
}
static void makebackob(Context & context) {
- context._cmp(context.ds.byte(62), 0);
+ context._cmp(context.data.byte(62), 0);
if (context.flags.z()) goto nomake;
context.al = context.ds.byte(context.si+5);
context.ah = context.ds.byte(context.si+8);
context.push(context.si);
context.push(context.ax);
context.push(context.si);
- context.ax = context.ds.word(168);
- context.bx = context.ds.word(170);
+ context.ax = context.data.word(168);
+ context.bx = context.data.word(170);
context.ah = context.bl;
context.si = context.ax;
context.cx = 49520;
- context.dx = context.ds.word(444);
+ context.dx = context.data.word(444);
context.di = 0;
makesprite(context);
context.ax = context.pop();
@@ -9080,61 +9080,61 @@ nomake:
}
static void showallfree(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
- context.ds.word(18) = context.bx;
+ context.data.word(18) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
context.cx = 80*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.ds.word(446);
- context.ds.word(166) = context.es;
+ context.es = context.data.word(446);
+ context.data.word(166) = context.es;
context.ax = 0;
- context.ds.word(164) = context.ax;
+ context.data.word(164) = context.ax;
context.ax = 0+2080;
- context.ds.word(162) = context.ax;
+ context.data.word(162) = context.ax;
context.al = 0;
- context.ds.byte(158) = context.al;
- context.ds = context.ds.word(426);
+ context.data.byte(158) = context.al;
+ context.ds = context.data.word(426);
context.si = 2;
context.cx = 0;
loop127:
context.push(context.cx);
context.push(context.si);
context.push(context.si);
- context.es = context.ds.word(426);
+ context.es = context.data.word(426);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto over138;
- context.al = context.ds.byte(158);
+ context.al = context.data.byte(158);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.ds.word(160) = context.ax;
+ context.data.word(160) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.ds.word(402);
- context.ds = context.ds.word(166);
+ context.es = context.data.word(402);
+ context.ds = context.data.word(166);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto over138;
- context.ax = context.ds.word(160);
+ context.ax = context.data.word(160);
context.ah = 0;
- context._add(context.di, context.ds.word(117));
- context._add(context.bx, context.ds.word(119));
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
showframe(context);
- context.si = context.ds.word(18);
- context.es = context.ds.word(412);
- context.al = context.ds.byte(179);
- context.ah = context.ds.byte(180);
+ context.si = context.data.word(18);
+ context.es = context.data.word(412);
+ context.al = context.data.byte(179);
+ context.ah = context.data.byte(180);
context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.ds.word(176);
+ context.ax = context.data.word(176);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.ds.word(context.si+2) = context.ax;
@@ -9144,9 +9144,9 @@ loop127:
context.push(context.ax);
context.ds.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.ds.word(18) = context.si;
+ context.data.word(18) = context.si;
over138:
- context._add(context.ds.byte(158), 1);
+ context._add(context.data.byte(158), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9159,66 +9159,66 @@ finfree:
}
static void showallex(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
- context.ds.word(18) = context.bx;
+ context.data.word(18) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
context.cx = 100*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.ds.word(398);
- context.ds.word(166) = context.es;
+ context.es = context.data.word(398);
+ context.data.word(166) = context.es;
context.ax = 0;
- context.ds.word(164) = context.ax;
+ context.data.word(164) = context.ax;
context.ax = 0+2080;
- context.ds.word(162) = context.ax;
- context.ds.byte(157) = 0;
+ context.data.word(162) = context.ax;
+ context.data.byte(157) = 0;
context.si = 0+2080+30000+2;
context.cx = 0;
exloop:
context.push(context.cx);
context.push(context.si);
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.push(context.si);
context.ch = 0;
context._cmp(context.ds.byte(context.si), 255);
if (context.flags.z()) goto notinroom;
context.al = context.ds.byte(context.si-2);
- context._cmp(context.al, context.ds.byte(184));
+ context._cmp(context.al, context.data.byte(184));
if (!context.flags.z()) goto notinroom;
getmapad(context);
notinroom:
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankex;
- context.al = context.ds.byte(157);
+ context.al = context.data.byte(157);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.ds.word(160) = context.ax;
+ context.data.word(160) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.ds.word(402);
- context.ds = context.ds.word(166);
+ context.es = context.data.word(402);
+ context.ds = context.data.word(166);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto blankex;
- context.ax = context.ds.word(160);
+ context.ax = context.data.word(160);
context.ah = 0;
- context._add(context.di, context.ds.word(117));
- context._add(context.bx, context.ds.word(119));
+ context._add(context.di, context.data.word(117));
+ context._add(context.bx, context.data.word(119));
showframe(context);
- context.si = context.ds.word(18);
- context.es = context.ds.word(412);
- context.al = context.ds.byte(179);
- context.ah = context.ds.byte(180);
+ context.si = context.data.word(18);
+ context.es = context.data.word(412);
+ context.al = context.data.byte(179);
+ context.ah = context.data.byte(180);
context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.ds.word(176);
+ context.ax = context.data.word(176);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.ds.word(context.si+2) = context.ax;
@@ -9228,9 +9228,9 @@ notinroom:
context.push(context.ax);
context.ds.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.ds.word(18) = context.si;
+ context.data.word(18) = context.si;
blankex:
- context._add(context.ds.byte(157), 1);
+ context._add(context.data.byte(157), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9243,11 +9243,11 @@ finex:
}
static void calcfrframe(Context & context) {
- context.dx = context.ds.word(166);
- context.ax = context.ds.word(162);
+ context.dx = context.data.word(166);
+ context.ax = context.data.word(162);
context.push(context.ax);
- context.cx = context.ds.word(164);
- context.ax = context.ds.word(160);
+ context.cx = context.data.word(164);
+ context.ax = context.data.word(160);
context.ds = context.dx;
context.bx = 6;
context._mul(context.bx);
@@ -9259,33 +9259,33 @@ static void calcfrframe(Context & context) {
context.bx = context.pop();
context.push(context.dx);
context._add(context.ax, context.bx);
- context.ds.word(178) = context.ax;
- context.ds.word(176) = context.cx;
+ context.data.word(178) = context.ax;
+ context.data.word(176) = context.cx;
context.ax = context.pop();
context.push(context.ax);
context.ah = 0;
- context.ds.word(172) = context.ax;
+ context.data.word(172) = context.ax;
context.ax = context.pop();
context.al = context.ah;
context.ah = 0;
- context.ds.word(174) = context.ax;
+ context.data.word(174) = context.ax;
return;
nullframe:
context.ax = context.pop();
context.cx = 0;
- context.ds.word(176) = context.cx;
+ context.data.word(176) = context.cx;
return;
}
static void finalframe(Context & context) {
- context.ax = context.ds.word(170);
- context._add(context.ax, context.ds.word(174));
- context.bx = context.ds.word(168);
- context._add(context.bx, context.ds.word(172));
- context.ds.byte(179) = context.bl;
- context.ds.byte(180) = context.al;
- context.di = context.ds.word(168);
- context.bx = context.ds.word(170);
+ context.ax = context.data.word(170);
+ context._add(context.ax, context.data.word(174));
+ context.bx = context.data.word(168);
+ context._add(context.bx, context.data.word(172));
+ context.data.byte(179) = context.bl;
+ context.data.byte(180) = context.al;
+ context.di = context.data.word(168);
+ context.bx = context.data.word(170);
return;
}
@@ -9305,11 +9305,11 @@ static void getmapad(Context & context) {
getxad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.ds.word(168) = context.ax;
+ context.data.word(168) = context.ax;
getyad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.ds.word(170) = context.ax;
+ context.data.word(170) = context.ax;
context.ch = 1;
over146:
return;
@@ -9324,7 +9324,7 @@ static void getxad(Context & context) {
context._add(context.si, 1);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto over148;
- context._sub(context.al, context.ds.byte(148));
+ context._sub(context.al, context.data.byte(148));
if (context.flags.c()) goto over148;
context._cmp(context.al, 11);
if (!context.flags.c()) goto over148;
@@ -9344,7 +9344,7 @@ static void getyad(Context & context) {
context._add(context.si, 1);
context.ah = context.ds.byte(context.si);
context._add(context.si, 1);
- context._sub(context.al, context.ds.byte(149));
+ context._sub(context.al, context.data.byte(149));
if (context.flags.c()) goto over147;
context._cmp(context.al, 10);
if (!context.flags.c()) goto over147;
@@ -9360,40 +9360,40 @@ over147:
}
static void autolook(Context & context) {
- context.ax = context.ds.word(198);
- context._cmp(context.ax, context.ds.word(214));
+ context.ax = context.data.word(198);
+ context._cmp(context.ax, context.data.word(214));
if (!context.flags.z()) goto diffmouse;
- context.ax = context.ds.word(200);
- context._cmp(context.ax, context.ds.word(216));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(216));
if (!context.flags.z()) goto diffmouse;
- context._sub(context.ds.word(98), 1);
- context._cmp(context.ds.word(98), 0);
+ context._sub(context.data.word(98), 1);
+ context._cmp(context.data.word(98), 0);
if (!context.flags.z()) goto noautolook;
- context._cmp(context.ds.word(21), 0);
+ context._cmp(context.data.word(21), 0);
if (!context.flags.z()) goto noautolook;
dolook(context);
noautolook:
return;
diffmouse:
- context.ds.word(98) = 1000;
+ context.data.word(98) = 1000;
return;
}
static void look(Context & context) {
- context._cmp(context.ds.word(21), 0);
+ context._cmp(context.data.word(21), 0);
if (!context.flags.z()) { blank(context); return; };
- context._cmp(context.ds.byte(234), 2);
+ context._cmp(context.data.byte(234), 2);
if (context.flags.z()) { blank(context); return; };
- context._cmp(context.ds.byte(100), 241);
+ context._cmp(context.data.byte(100), 241);
if (context.flags.z()) goto alreadylook;
- context.ds.byte(100) = 241;
+ context.data.byte(100) = 241;
context.al = 25;
commandonly(context);
alreadylook:
- context._cmp(context.ds.word(202), 1);
+ context._cmp(context.data.word(202), 1);
if (!context.flags.z()) goto nolook;
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nolook;
dolook(context);
nolook:
@@ -9405,19 +9405,19 @@ static void dolook(Context & context) {
showicon(context);
undertextline(context);
worktoscreenm(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
dumptextline(context);
- context.bl = context.ds.byte(185);
+ context.bl = context.data.byte(185);
context._and(context.bl, 31);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.ds.word(436);
+ context.es = context.data.word(436);
context._add(context.bx, 0);
context.si = context.ds.word(context.bx);
context._add(context.si, 0+(38*2));
findnextcolon(context);
context.di = 66;
- context._cmp(context.ds.byte(184), 50);
+ context._cmp(context.data.byte(184), 50);
if (context.flags.c()) goto notdream3;
context.di = 40;
notdream3:
@@ -9429,17 +9429,17 @@ notdream3:
context.cx = 400;
hangonp(context);
afterlook:
- context.ds.byte(234) = 0;
- context.ds.byte(100) = 0;
+ context.data.byte(234) = 0;
+ context.data.byte(100) = 0;
redrawmainscrn(context);
worktoscreenm(context);
return;
}
static void redrawmainscrn(Context & context) {
- context.ds.word(328) = 0;
+ context.data.word(328) = 0;
createpanel(context);
- context.ds.byte(62) = 0;
+ context.data.byte(62) = 0;
drawfloor(context);
printsprites(context);
reelsonscreen(context);
@@ -9447,40 +9447,40 @@ static void redrawmainscrn(Context & context) {
getunderzoom(context);
undertextline(context);
readmouse(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
return;
}
static void getback1(Context & context) {
- context._cmp(context.ds.byte(106), 0);
+ context._cmp(context.data.byte(106), 0);
if (context.flags.z()) goto notgotobject;
blank(context);
return;
notgotobject:
- context._cmp(context.ds.byte(100), 202);
+ context._cmp(context.data.byte(100), 202);
if (context.flags.z()) goto alreadyget;
- context.ds.byte(100) = 202;
+ context.data.byte(100) = 202;
context.al = 26;
commandonly(context);
alreadyget:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nogetback;
context._and(context.ax, 1);
if (!context.flags.z()) goto dogetback;
nogetback:
return;
dogetback:
- context.ds.byte(103) = 1;
- context.ds.byte(106) = 0;
+ context.data.byte(103) = 1;
+ context.data.byte(106) = 0;
return;
}
static void talk(Context & context) {
- context.ds.byte(246) = 0;
- context.ds.byte(237) = 0;
- context.al = context.ds.byte(99);
- context.ds.byte(247) = context.al;
+ context.data.byte(246) = 0;
+ context.data.byte(237) = 0;
+ context.al = context.data.byte(99);
+ context.data.byte(247) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -9488,7 +9488,7 @@ static void talk(Context & context) {
undertextline(context);
convicons(context);
starttalk(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -9500,15 +9500,15 @@ waittalk:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.ds.byte(103) = 0;
+ context.data.byte(103) = 0;
context.bx = 2660;
checkcoords(context);
- context._cmp(context.ds.byte(103), 0);
+ context._cmp(context.data.byte(103), 0);
if (context.flags.z()) goto waittalk;
finishtalk:
- context.bx = context.ds.word(249);
+ context.bx = context.data.word(249);
context.es = context.cs;
- context._cmp(context.ds.byte(246), 4);
+ context._cmp(context.data.byte(246), 4);
if (context.flags.c()) goto notnexttalk;
context.al = context.ds.byte(context.bx+7);
context._or(context.al, 128);
@@ -9516,25 +9516,25 @@ finishtalk:
notnexttalk:
redrawmainscrn(context);
worktoscreenm(context);
- context._cmp(context.ds.byte(383), 1);
+ context._cmp(context.data.byte(383), 1);
if (!context.flags.z()) goto nospeech;
cancelch1(context);
- context.ds.byte(388) = -1;
- context.ds.byte(387) = 0;
+ context.data.byte(388) = -1;
+ context.data.byte(387) = 0;
nospeech:
return;
}
static void convicons(Context & context) {
- context.al = context.ds.byte(247);
+ context.al = context.data.byte(247);
context._and(context.al, 127);
getpersframe(context);
context.di = 234;
context.bx = 2;
- context.ds.word(160) = context.ax;
+ context.data.word(160) = context.ax;
findsource(context);
- context.ax = context.ds.word(160);
- context._sub(context.ax, context.ds.word(244));
+ context.ax = context.data.word(160);
+ context._sub(context.ax, context.data.word(244));
context.ah = 0;
showframe(context);
return;
@@ -9544,25 +9544,25 @@ static void getpersframe(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
- context.es = context.ds.word(448);
+ context.es = context.data.word(448);
context._add(context.bx, 0);
context.ax = context.ds.word(context.bx);
return;
}
static void starttalk(Context & context) {
- context.ds.byte(245) = 0;
- context.al = context.ds.byte(247);
+ context.data.byte(245) = 0;
+ context.al = context.data.byte(247);
context._and(context.al, 127);
getpersontext(context);
- context.ds.word(71) = 91+91;
+ context.data.word(71) = 91+91;
context.di = 66;
context.bx = 64;
context.dl = 241;
context.al = 0;
context.ah = 79;
printdirect(context);
- context.ds.word(71) = 0;
+ context.data.word(71) = 0;
context.di = 66;
context.bx = 80;
context.dl = 241;
@@ -9578,7 +9578,7 @@ static void getpersontext(Context & context) {
context.cx = 64*2;
context._mul(context.cx);
context.si = context.ax;
- context.es = context.ds.word(448);
+ context.es = context.data.word(448);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.ds.word(context.si);
@@ -9588,30 +9588,30 @@ static void getpersontext(Context & context) {
}
static void moretalk(Context & context) {
- context._cmp(context.ds.byte(245), 0);
+ context._cmp(context.data.byte(245), 0);
if (context.flags.z()) goto canmore;
redes(context);
return;
canmore:
- context._cmp(context.ds.byte(100), 215);
+ context._cmp(context.data.byte(100), 215);
if (context.flags.z()) goto alreadymore;
- context.ds.byte(100) = 215;
+ context.data.byte(100) = 215;
context.al = 49;
commandonly(context);
alreadymore:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nomore;
context._and(context.ax, 1);
if (!context.flags.z()) goto domoretalk;
nomore:
return;
domoretalk:
- context.ds.byte(245) = 2;
- context.ds.byte(246) = 4;
- context._cmp(context.ds.byte(247), 100);
+ context.data.byte(245) = 2;
+ context.data.byte(246) = 4;
+ context._cmp(context.data.byte(247), 100);
if (context.flags.c()) goto notsecondpart;
- context.ds.byte(246) = 48;
+ context.data.byte(246) = 48;
notsecondpart:
dosometalk(context);
return;
@@ -9619,19 +9619,19 @@ notsecondpart:
static void dosometalk(Context & context) {
watchtalk:
- context.al = context.ds.byte(246);
- context.al = context.ds.byte(247);
+ context.al = context.data.byte(246);
+ context.al = context.data.byte(247);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.ds.byte(246);
+ context.al = context.data.byte(246);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.ds.word(448);
+ context.es = context.data.word(448);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.ds.word(context.si);
@@ -9654,24 +9654,24 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.ds.byte(234) = 3;
+ context.data.byte(234) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
- context._add(context.ds.byte(246), 1);
- context.al = context.ds.byte(246);
- context.al = context.ds.byte(247);
+ context._add(context.data.byte(246), 1);
+ context.al = context.data.byte(246);
+ context.al = context.data.byte(247);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.ds.byte(246);
+ context.al = context.data.byte(246);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.ds.word(448);
+ context.es = context.data.word(448);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.ds.word(context.si);
@@ -9698,20 +9698,20 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.ds.byte(234) = 3;
+ context.data.byte(234) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
skiptalk:
- context._add(context.ds.byte(246), 1);
+ context._add(context.data.byte(246), 1);
goto watchtalk;
endwatchtalk:
- context.ds.byte(234) = 0;
+ context.data.byte(234) = 0;
return;
}
static void hangonpq(Context & context) {
- context.ds.byte(103) = 0;
+ context.data.byte(103) = 0;
context.bx = 0;
hangloopq:
context.push(context.cx);
@@ -9727,48 +9727,48 @@ hangloopq:
checkcoords(context);
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.ds.byte(103), 1);
+ context._cmp(context.data.byte(103), 1);
if (context.flags.z()) goto quitconv;
- context._cmp(context.ds.byte(383), 1);
+ context._cmp(context.data.byte(383), 1);
if (!context.flags.z()) goto notspeaking;
- context._cmp(context.ds.byte(515), 255);
+ context._cmp(context.data.byte(515), 255);
if (!context.flags.z()) goto notspeaking;
context._add(context.bx, 1);
context._cmp(context.bx, 40);
if (context.flags.z()) goto finishconv;
notspeaking:
- context._cmp(context.ds.word(202), 0);
+ context._cmp(context.data.word(202), 0);
if (context.flags.z()) goto hangloopq;
- context._cmp(context.ds.word(212), 0);
+ context._cmp(context.data.word(212), 0);
if (!context.flags.z()) goto hangloopq;
finishconv:
delpointer(context);
- context.ds.byte(234) = 0;
+ context.data.byte(234) = 0;
return;
quitconv:
delpointer(context);
- context.ds.byte(234) = 0;
+ context.data.byte(234) = 0;
context.ax = context.pop();
cancelch1(context);
return;
}
static void redes(Context & context) {
- context._cmp(context.ds.byte(515), 255);
+ context._cmp(context.data.byte(515), 255);
if (!context.flags.z()) goto cantredes;
- context._cmp(context.ds.byte(245), 2);
+ context._cmp(context.data.byte(245), 2);
if (context.flags.z()) goto canredes;
cantredes:
blank(context);
return;
canredes:
- context._cmp(context.ds.byte(100), 217);
+ context._cmp(context.data.byte(100), 217);
if (context.flags.z()) goto alreadyreds;
- context.ds.byte(100) = 217;
+ context.data.byte(100) = 217;
context.al = 50;
commandonly(context);
alreadyreds:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._and(context.ax, 1);
if (!context.flags.z()) goto doredes;
return;
@@ -9788,27 +9788,27 @@ doredes:
}
static void newplace(Context & context) {
- context._cmp(context.ds.byte(60), 1);
+ context._cmp(context.data.byte(60), 1);
if (context.flags.z()) goto istravel;
- context._cmp(context.ds.byte(189), -1);
+ context._cmp(context.data.byte(189), -1);
if (!context.flags.z()) goto isautoloc;
return;
isautoloc:
- context.al = context.ds.byte(189);
- context.ds.byte(188) = context.al;
- context.ds.byte(189) = -1;
+ context.al = context.data.byte(189);
+ context.data.byte(188) = context.al;
+ context.data.byte(189) = -1;
return;
istravel:
- context.ds.byte(60) = 0;
+ context.data.byte(60) = 0;
selectlocation(context);
return;
}
static void selectlocation(Context & context) {
- context.ds.byte(237) = 0;
+ context.data.byte(237) = 0;
clearbeforeload(context);
- context.ds.byte(103) = 0;
- context.ds.byte(231) = 22;
+ context.data.byte(103) = 0;
+ context.data.byte(231) = 22;
readcitypic(context);
showcity(context);
getridoftemp(context);
@@ -9820,15 +9820,15 @@ static void selectlocation(Context & context) {
showexit(context);
locationpic(context);
undertextline(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
readmouse(context);
- context.ds.byte(231) = 0;
+ context.data.byte(231) = 0;
showpointer(context);
worktoscreen(context);
context.al = 9;
context.ah = 255;
playchannel0(context);
- context.ds.byte(188) = 255;
+ context.data.byte(188) = 255;
select:
delpointer(context);
readmouse(context);
@@ -9836,42 +9836,42 @@ select:
vsync(context);
dumppointer(context);
dumptextline(context);
- context._cmp(context.ds.byte(103), 1);
+ context._cmp(context.data.byte(103), 1);
if (context.flags.z()) goto quittravel;
context.bx = 2714;
checkcoords(context);
- context._cmp(context.ds.byte(188), 255);
+ context._cmp(context.data.byte(188), 255);
if (context.flags.z()) goto select;
- context.al = context.ds.byte(188);
- context._cmp(context.al, context.ds.byte(9));
+ context.al = context.data.byte(188);
+ context._cmp(context.al, context.data.byte(9));
if (context.flags.z()) goto quittravel;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.ds.word(456);
+ context.es = context.data.word(456);
deallocatemem(context);
return;
quittravel:
- context.al = context.ds.byte(184);
- context.ds.byte(188) = context.al;
- context.ds.byte(103) = 0;
+ context.al = context.data.byte(184);
+ context.data.byte(188) = context.al;
+ context.data.byte(103) = 0;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.ds.word(456);
+ context.es = context.data.word(456);
deallocatemem(context);
return;
}
static void showcity(Context & context) {
clearwork(context);
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.di = 57;
context.bx = 32;
context.al = 0;
context.ah = 0;
showframe(context);
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.di = 120+57;
context.bx = 32;
context.al = 1;
@@ -9881,25 +9881,25 @@ static void showcity(Context & context) {
}
static void lookatplace(Context & context) {
- context._cmp(context.ds.byte(100), 224);
+ context._cmp(context.data.byte(100), 224);
if (context.flags.z()) goto alreadyinfo;
- context.ds.byte(100) = 224;
+ context.data.byte(100) = 224;
context.al = 27;
commandonly(context);
alreadyinfo:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto noinfo;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto noinfo;
- context.bl = context.ds.byte(183);
+ context.bl = context.data.byte(183);
context._cmp(context.bl, 15);
if (!context.flags.c()) goto noinfo;
context.push(context.bx);
delpointer(context);
deltextline(context);
getundercentre(context);
- context.ds = context.ds.word(462);
+ context.ds = context.data.word(462);
context.al = 0;
context.ah = 0;
context.di = 60;
@@ -9918,7 +9918,7 @@ alreadyinfo:
context.bx = context.pop();
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.ds.word(456);
+ context.es = context.data.word(456);
context.si = context.ds.word(context.bx);
context._add(context.si, 66*2);
findnextcolon(context);
@@ -9932,8 +9932,8 @@ alreadyinfo:
context.cx = 500;
hangonp(context);
afterinfo:
- context.ds.byte(234) = 0;
- context.ds.byte(231) = 0;
+ context.data.byte(234) = 0;
+ context.data.byte(231) = 0;
putundercentre(context);
worktoscreenm(context);
noinfo:
@@ -9943,7 +9943,7 @@ noinfo:
static void getundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9954,7 +9954,7 @@ static void getundercentre(Context & context) {
static void putundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9970,12 +9970,12 @@ static void locationpic(Context & context) {
context.di = 0;
context._cmp(context.al, 6);
if (!context.flags.c()) goto secondlot;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context._add(context.al, 4);
goto gotgraphic;
secondlot:
context._sub(context.al, 6);
- context.ds = context.ds.word(460);
+ context.ds = context.data.word(460);
gotgraphic:
context._add(context.di, 104);
context.bx = 138+14;
@@ -9983,20 +9983,20 @@ gotgraphic:
showframe(context);
context.si = context.pop();
context.es = context.pop();
- context.al = context.ds.byte(183);
- context._cmp(context.al, context.ds.byte(184));
+ context.al = context.data.byte(183);
+ context._cmp(context.al, context.data.byte(184));
if (!context.flags.z()) goto notinthisone;
context.al = 3;
context.di = 104;
context.bx = 140+14;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.ah = 0;
showframe(context);
notinthisone:
- context.bl = context.ds.byte(183);
+ context.bl = context.data.byte(183);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.ds.word(456);
+ context.es = context.data.word(456);
context.si = context.ds.word(context.bx);
context._add(context.si, 66*2);
context.di = 50;
@@ -10009,7 +10009,7 @@ notinthisone:
}
static void getdestinfo(Context & context) {
- context.al = context.ds.byte(183);
+ context.al = context.data.byte(183);
context.ah = 0;
context.push(context.ax);
context.dx = context.ds;
@@ -10030,19 +10030,19 @@ static void getdestinfo(Context & context) {
static void showarrows(Context & context) {
context.di = 116-12;
context.bx = 16;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 0;
context.ah = 0;
showframe(context);
context.di = 226+12;
context.bx = 16;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 280;
context.bx = 14;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 2;
context.ah = 0;
showframe(context);
@@ -10051,27 +10051,27 @@ static void showarrows(Context & context) {
static void nextdest(Context & context) {
duok:
- context._cmp(context.ds.byte(100), 218);
+ context._cmp(context.data.byte(100), 218);
if (context.flags.z()) goto alreadydu;
- context.ds.byte(100) = 218;
+ context.data.byte(100) = 218;
context.al = 28;
commandonly(context);
alreadydu:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto nodu;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nodu;
searchdestup:
- context._add(context.ds.byte(183), 1);
- context._cmp(context.ds.byte(183), 15);
+ context._add(context.data.byte(183), 1);
+ context._cmp(context.data.byte(183), 15);
if (!context.flags.z()) goto notlastdest;
- context.ds.byte(183) = 0;
+ context.data.byte(183) = 0;
notlastdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestup;
- context.ds.byte(109) = 1;
+ context.data.byte(109) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10089,27 +10089,27 @@ nodu:
static void lastdest(Context & context) {
ddok:
- context._cmp(context.ds.byte(100), 219);
+ context._cmp(context.data.byte(100), 219);
if (context.flags.z()) goto alreadydd;
- context.ds.byte(100) = 219;
+ context.data.byte(100) = 219;
context.al = 29;
commandonly(context);
alreadydd:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto nodd;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nodd;
searchdestdown:
- context._sub(context.ds.byte(183), 1);
- context._cmp(context.ds.byte(183), -1);
+ context._sub(context.data.byte(183), 1);
+ context._cmp(context.data.byte(183), -1);
if (!context.flags.z()) goto notfirstdest;
- context.ds.byte(183) = 15;
+ context.data.byte(183) = 15;
notfirstdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestdown;
- context.ds.byte(109) = 1;
+ context.data.byte(109) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10126,20 +10126,20 @@ nodd:
}
static void destselect(Context & context) {
- context._cmp(context.ds.byte(100), 222);
+ context._cmp(context.data.byte(100), 222);
if (context.flags.z()) goto alreadytrav;
- context.ds.byte(100) = 222;
+ context.data.byte(100) = 222;
context.al = 30;
commandonly(context);
alreadytrav:
- context.ax = context.ds.word(202);
+ context.ax = context.data.word(202);
context._and(context.ax, 1);
if (context.flags.z()) goto notrav;
- context._cmp(context.ax, context.ds.word(212));
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto notrav;
getdestinfo(context);
- context.al = context.ds.byte(183);
- context.ds.byte(188) = context.al;
+ context.al = context.data.byte(183);
+ context.data.byte(188) = context.al;
notrav:
return;
}
@@ -10228,7 +10228,7 @@ static void readcitypic(Context & context) {
}
static void usemon(Context & context) {
- context.ds.byte(55) = 0;
+ context.data.byte(55) = 0;
context.es = context.cs;
context.di = 2895+1;
context.cx = 12;
@@ -10267,8 +10267,8 @@ keyloop:
turnonpower(context);
fadeupyellows(context);
fadeupmonfirst(context);
- context.ds.word(318) = 76;
- context.ds.word(320) = 141;
+ context.data.word(318) = 76;
+ context.data.word(320) = 141;
context.al = 1;
monmessage(context);
context.cx = 120;
@@ -10283,34 +10283,34 @@ keyloop:
hangoncurs(context);
printlogo(context);
scrollmonitor(context);
- context.ds.word(394) = 0;
- context.ds.word(396) = 0;
+ context.data.word(394) = 0;
+ context.data.word(396) = 0;
moreinput:
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.ds.word(318) = context.di;
- context.ds.word(320) = context.bx;
+ context.data.word(318) = context.di;
+ context.data.word(320) = context.bx;
execcommand(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto moreinput;
endmon:
getridoftemp(context);
getridoftempcharset(context);
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
deallocatemem(context);
- context.es = context.ds.word(468);
+ context.es = context.data.word(468);
deallocatemem(context);
- context.es = context.ds.word(470);
+ context.es = context.data.word(470);
deallocatemem(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
context.al = 26;
playchannel1(context);
- context.ds.byte(131) = 0;
+ context.data.byte(131) = 0;
restoreall(context);
redrawmainscrn(context);
worktoscreenm(context);
@@ -10320,25 +10320,25 @@ endmon:
static void printoutermon(Context & context) {
context.di = 40;
context.bx = 32;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 264;
context.bx = 32;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 2;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 12;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 3;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 164;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 4;
context.ah = 0;
showframe(context);
@@ -10346,7 +10346,7 @@ static void printoutermon(Context & context) {
}
static void loadpersonal(Context & context) {
- context.al = context.ds.byte(9);
+ context.al = context.data.byte(9);
context.dx = 2065;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundpersonal;
@@ -10363,7 +10363,7 @@ foundpersonal:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.ds.word(466) = context.ax;
+ context.data.word(466) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10373,7 +10373,7 @@ foundpersonal:
}
static void loadnews(Context & context) {
- context.al = context.ds.byte(34);
+ context.al = context.data.byte(34);
context.dx = 2091;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundnews;
@@ -10392,7 +10392,7 @@ foundnews:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.ds.word(468) = context.ax;
+ context.data.word(468) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10424,7 +10424,7 @@ gotcart:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.ds.word(470) = context.ax;
+ context.data.word(470) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10490,7 +10490,7 @@ chosenaccess:
static void powerlighton(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 6;
context.ah = 0;
context.push(context.di);
@@ -10507,7 +10507,7 @@ static void powerlighton(Context & context) {
static void powerlightoff(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 5;
context.ah = 0;
context.push(context.di);
@@ -10524,7 +10524,7 @@ static void powerlightoff(Context & context) {
static void accesslighton(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 8;
context.ah = 0;
context.push(context.di);
@@ -10541,7 +10541,7 @@ static void accesslighton(Context & context) {
static void accesslightoff(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 7;
context.ah = 0;
context.push(context.di);
@@ -10558,7 +10558,7 @@ static void accesslightoff(Context & context) {
static void locklighton(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 10;
context.ah = 0;
context.push(context.di);
@@ -10575,7 +10575,7 @@ static void locklighton(Context & context) {
static void locklightoff(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 9;
context.ah = 0;
context.push(context.di);
@@ -10595,50 +10595,50 @@ static void input(Context & context) {
context.cx = 64;
context.al = 0;
while(--context.cx) context._stosb();
- context.ds.word(316) = 0;
+ context.data.word(316) = 0;
context.al = '>';
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
- context.ds = context.ds.word(406);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
context.ah = 0;
printchar(context);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
context.cl = 6;
context.ch = 8;
multidump(context);
- context._add(context.ds.word(318), 6);
- context.ax = context.ds.word(318);
- context.ds.word(312) = context.ax;
- context.ax = context.ds.word(320);
- context.ds.word(314) = context.ax;
+ context._add(context.data.word(318), 6);
+ context.ax = context.data.word(318);
+ context.data.word(312) = context.ax;
+ context.ax = context.data.word(320);
+ context.data.word(314) = context.ax;
waitkey:
printcurs(context);
vsync(context);
delcurs(context);
readkey(context);
- context.al = context.ds.byte(142);
+ context.al = context.data.byte(142);
context._cmp(context.al, 0);
if (context.flags.z()) goto waitkey;
context._cmp(context.al, 13);
if (context.flags.z()) goto endofinput;
context._cmp(context.al, 8);
if (!context.flags.z()) goto notdel;
- context._cmp(context.ds.word(316), 0);
+ context._cmp(context.data.word(316), 0);
if (context.flags.z()) goto waitkey;
delchar(context);
goto waitkey;
notdel:
- context._cmp(context.ds.word(316), 28);
+ context._cmp(context.data.word(316), 28);
if (context.flags.z()) goto waitkey;
- context._cmp(context.ds.byte(142), 32);
+ context._cmp(context.data.byte(142), 32);
if (!context.flags.z()) goto notleadingspace;
- context._cmp(context.ds.word(316), 0);
+ context._cmp(context.data.word(316), 0);
if (context.flags.z()) goto waitkey;
notleadingspace:
makecaps(context);
context.es = context.cs;
- context.si = context.ds.word(316);
+ context.si = context.data.word(316);
context._add(context.si, context.si);
context._add(context.si, 7944);
context.ds.byte(context.si) = context.al;
@@ -10647,10 +10647,10 @@ notleadingspace:
context.push(context.ax);
context.push(context.es);
context.push(context.si);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
- context.ds = context.ds.word(402);
- context.ax = context.ds.word(316);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(402);
+ context.ax = context.data.word(316);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
@@ -10661,18 +10661,18 @@ notleadingspace:
context.ax = context.pop();
context.push(context.es);
context.push(context.si);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
- context.ds = context.ds.word(406);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(406);
context.ah = 0;
printchar(context);
context.si = context.pop();
context.es = context.pop();
context.ds.byte(context.si+1) = context.cl;
context.ch = 0;
- context._add(context.ds.word(318), context.cx);
- context._add(context.ds.word(316), 1);
- context._add(context.ds.word(312), context.cx);
+ context._add(context.data.word(318), context.cx);
+ context._add(context.data.word(316), 1);
+ context._add(context.data.word(312), context.cx);
goto waitkey;
endofinput:
return;
@@ -10687,27 +10687,27 @@ notupperc:
}
static void delchar(Context & context) {
- context._sub(context.ds.word(316), 1);
- context.si = context.ds.word(316);
+ context._sub(context.data.word(316), 1);
+ context.si = context.data.word(316);
context._add(context.si, context.si);
context.es = context.cs;
context._add(context.si, 7944);
context.ds.byte(context.si) = 0;
context.al = context.ds.byte(context.si+1);
context.ah = 0;
- context._sub(context.ds.word(318), context.ax);
- context._sub(context.ds.word(312), context.ax);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
- context.ds = context.ds.word(402);
- context.ax = context.ds.word(316);
+ context._sub(context.data.word(318), context.ax);
+ context._sub(context.data.word(312), context.ax);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
+ context.ds = context.data.word(402);
+ context.ax = context.data.word(316);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
context.ch = 8;
multiput(context);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
context.cl = context.al;
context.ch = 8;
multidump(context);
@@ -10803,7 +10803,7 @@ static void dircom(Context & context) {
dirfile(context);
return;
dirroot:
- context.ds.byte(269) = 0;
+ context.data.byte(269) = 0;
context.ds = context.cs;
context.si = 2885;
context._add(context.si, 1);
@@ -10816,11 +10816,11 @@ dirroot:
scrollmonitor(context);
context.al = 9;
monmessage(context);
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
searchforfiles(context);
- context.es = context.ds.word(468);
+ context.es = context.data.word(468);
searchforfiles(context);
- context.es = context.ds.word(470);
+ context.es = context.data.word(470);
searchforfiles(context);
scrollmonitor(context);
return;
@@ -10889,15 +10889,15 @@ notyetassigned:
scrollmonitor(context);
context.al = 15;
monmessage(context);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.ds.word(318) = context.di;
- context.ds.word(320) = context.bx;
+ context.data.word(318) = context.di;
+ context.data.word(320) = context.bx;
context.bx = context.pop();
context.es = context.pop();
context.push(context.es);
@@ -10972,22 +10972,22 @@ static void read(Context & context) {
okcom:
context.es = context.cs;
context.di = 2895;
- context.ax = context.ds.word(466);
- context.ds.word(324) = context.ax;
+ context.ax = context.data.word(466);
+ context.data.word(324) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.ds.word(468);
- context.ds.word(324) = context.ax;
+ context.ax = context.data.word(468);
+ context.data.word(324) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.ds.word(470);
- context.ds.word(324) = context.ax;
+ context.ax = context.data.word(470);
+ context.data.word(324) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
@@ -11004,12 +11004,12 @@ foundfile2:
keyok1:
context.es = context.cs;
context.di = 2883;
- context.ds = context.ds.word(324);
+ context.ds = context.data.word(324);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto findtopictext;
- context.al = context.ds.byte(270);
- context.ds.byte(269) = context.al;
+ context.al = context.data.byte(270);
+ context.data.byte(269) = context.al;
context.al = 11;
monmessage(context);
return;
@@ -11048,7 +11048,7 @@ static void dirfile(Context & context) {
context.ds.byte(context.di) = context.al;
context.push(context.es);
context.push(context.di);
- context.ds = context.ds.word(466);
+ context.ds = context.data.word(466);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11057,7 +11057,7 @@ static void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.ds.word(468);
+ context.ds = context.data.word(468);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11066,7 +11066,7 @@ static void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.ds.word(470);
+ context.ds = context.data.word(470);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11118,15 +11118,15 @@ static void getkeyandlogo(Context & context) {
context._add(context.bx, 1);
context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
- context.ds.byte(271) = context.al;
+ context.data.byte(271) = context.al;
context._add(context.bx, 2);
context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
- context.ds.byte(276) = context.al;
+ context.data.byte(276) = context.al;
context._add(context.bx, 1);
context.push(context.es);
context.push(context.bx);
- context.al = context.ds.byte(276);
+ context.al = context.data.byte(276);
context.ah = 0;
context.cx = 26;
context._mul(context.cx);
@@ -11152,8 +11152,8 @@ static void getkeyandlogo(Context & context) {
keyok:
context.bx = context.pop();
context.es = context.pop();
- context.al = context.ds.byte(271);
- context.ds.byte(269) = context.al;
+ context.al = context.data.byte(271);
+ context.data.byte(269) = context.al;
context.al = 0;
return;
}
@@ -11240,10 +11240,10 @@ static void scrollmonitor(Context & context) {
context.push(context.es);
context.push(context.ds);
printlogo(context);
- context.di = context.ds.word(318);
- context.bx = context.ds.word(320);
+ context.di = context.data.word(318);
+ context.bx = context.data.word(320);
printundermon(context);
- context.ax = context.ds.word(320);
+ context.ax = context.data.word(320);
worktoscreen(context);
context.al = 25;
playchannel1(context);
@@ -11259,11 +11259,11 @@ static void scrollmonitor(Context & context) {
}
static void lockmon(Context & context) {
- context._cmp(context.ds.byte(392), 57);
+ context._cmp(context.data.byte(392), 57);
if (!context.flags.z()) goto notlock;
locklighton(context);
lockloop:
- context._cmp(context.ds.byte(392), 57);
+ context._cmp(context.data.byte(392), 57);
if (context.flags.z()) goto lockloop;
locklightoff(context);
notlock:
@@ -11271,10 +11271,10 @@ notlock:
}
static void monitorlogo(Context & context) {
- context.al = context.ds.byte(269);
- context._cmp(context.al, context.ds.byte(270));
+ context.al = context.data.byte(269);
+ context._cmp(context.al, context.data.byte(270));
if (context.flags.z()) goto notnewlogo;
- context.ds.byte(270) = context.al;
+ context.data.byte(270) = context.al;
printlogo(context);
printundermon(context);
worktoscreen(context);
@@ -11293,7 +11293,7 @@ notnewlogo:
static void printlogo(Context & context) {
context.di = 56;
context.bx = 32;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 0;
context.ah = 0;
showframe(context);
@@ -11312,7 +11312,7 @@ curfileloop:
context._add(context.si, 1);
context.push(context.si);
modifychar(context);
- context.ds = context.ds.word(406);
+ context.ds = context.data.word(406);
context.ah = 0;
printchar(context);
context.si = context.pop();
@@ -11322,7 +11322,7 @@ finishfile:
}
static void monmessage(Context & context) {
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
context.bx = 66*2;
context.cl = context.al;
context.ch = 0;
@@ -11337,7 +11337,7 @@ monmessageloop:
}
static void processtrigger(Context & context) {
- context._cmp(context.ds.byte(55), '1');
+ context._cmp(context.data.byte(55), '1');
if (!context.flags.z()) goto notfirsttrigger;
context.al = 8;
setlocation(context);
@@ -11345,7 +11345,7 @@ static void processtrigger(Context & context) {
triggermessage(context);
return;
notfirsttrigger:
- context._cmp(context.ds.byte(55), '2');
+ context._cmp(context.data.byte(55), '2');
if (!context.flags.z()) goto notsecondtrigger;
context.al = 9;
setlocation(context);
@@ -11353,7 +11353,7 @@ notfirsttrigger:
triggermessage(context);
return;
notsecondtrigger:
- context._cmp(context.ds.byte(55), '3');
+ context._cmp(context.data.byte(55), '3');
if (!context.flags.z()) goto notthirdtrigger;
context.al = 2;
setlocation(context);
@@ -11369,7 +11369,7 @@ static void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
multiget(context);
context.ax = context.pop();
@@ -11388,11 +11388,11 @@ static void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.ds.word(402);
+ context.ds = context.data.word(402);
context.si = 0;
multiput(context);
worktoscreen(context);
- context.ds.byte(55) = 0;
+ context.data.byte(55) = 0;
return;
}
@@ -11403,13 +11403,13 @@ static void printcurs(Context & context) {
context.push(context.dx);
context.push(context.bx);
context.push(context.es);
- context.di = context.ds.word(312);
- context.bx = context.ds.word(314);
+ context.di = context.data.word(312);
+ context.bx = context.data.word(314);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
context.ch = 11;
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context.si = 0;
context.push(context.di);
context.push(context.bx);
@@ -11418,14 +11418,14 @@ static void printcurs(Context & context) {
context.di = context.pop();
context.push(context.bx);
context.push(context.di);
- context._add(context.ds.word(138), 1);
- context.ax = context.ds.word(138);
+ context._add(context.data.word(138), 1);
+ context.ax = context.data.word(138);
context._and(context.al, 16);
if (!context.flags.z()) goto flashcurs;
context.al = '/';
context._sub(context.al, 32);
context.ah = 0;
- context.ds = context.ds.word(406);
+ context.ds = context.data.word(406);
showframe(context);
flashcurs:
context.di = context.pop();
@@ -11450,8 +11450,8 @@ static void delcurs(Context & context) {
context.push(context.ds);
context.push(context.dx);
context.push(context.si);
- context.di = context.ds.word(312);
- context.bx = context.ds.word(314);
+ context.di = context.data.word(312);
+ context.bx = context.data.word(314);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
@@ -11459,7 +11459,7 @@ static void delcurs(Context & context) {
context.push(context.di);
context.push(context.bx);
context.push(context.cx);
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context.si = 0;
multiput(context);
context.cx = context.pop();
@@ -11477,17 +11477,17 @@ finishcurdel:
}
static void useobject(Context & context) {
- context.ds.byte(95) = 255;
- context._cmp(context.ds.byte(100), 229);
+ context.data.byte(95) = 255;
+ context._cmp(context.data.byte(100), 229);
if (context.flags.z()) goto alreadyuse;
- context.ds.byte(100) = 229;
- context.bl = context.ds.byte(99);
- context.bh = context.ds.byte(102);
+ context.data.byte(100) = 229;
+ context.bl = context.data.byte(99);
+ context.bh = context.data.byte(102);
context.al = 51;
commandwithob(context);
alreadyuse:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto nouse;
context._and(context.ax, 1);
if (!context.flags.z()) goto douse;
@@ -11499,13 +11499,13 @@ douse:
}
static void useroutine(Context & context) {
- context._cmp(context.ds.byte(184), 50);
+ context._cmp(context.data.byte(184), 50);
if (context.flags.c()) goto nodream7;
- context._cmp(context.ds.byte(232), 0);
+ context._cmp(context.data.byte(232), 0);
if (!context.flags.z()) goto powerok;
return;
powerok:
- context.ds.byte(232) = 0;
+ context.data.byte(232) = 0;
nodream7:
getanyad(context);
context.dx = context.ds;
@@ -11569,7 +11569,7 @@ cantuse2:
context.cx = 50;
hangonp(context);
putbackobstuff(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
return;
}
@@ -11582,21 +11582,21 @@ static void wheelsound(Context & context) {
}
static void runtap(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto tapwith;
withwhat(context);
return;
tapwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcupfromtap;
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11609,7 +11609,7 @@ tapwith:
putbackobstuff(context);
return;
fillcupfromtap:
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+15) = 'F'-'A';
context.al = 8;
@@ -11636,9 +11636,9 @@ static void playguitar(Context & context) {
}
static void hotelcontrol(Context & context) {
- context._cmp(context.ds.byte(184), 21);
+ context._cmp(context.data.byte(184), 21);
if (!context.flags.z()) goto notrightcont;
- context._cmp(context.ds.byte(148), 33);
+ context._cmp(context.data.byte(148), 33);
if (!context.flags.z()) goto notrightcont;
showfirstuse(context);
putbackobstuff(context);
@@ -11658,14 +11658,14 @@ static void hotelbell(Context & context) {
}
static void opentomb(Context & context) {
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showfirstuse(context);
- context.ds.word(21) = 35*2;
- context.ds.word(23) = 1;
- context.ds.word(25) = 33;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 35*2;
+ context.data.word(23) = 1;
+ context.data.word(25) = 33;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -11673,7 +11673,7 @@ static void usetrainer(Context & context) {
getanyad(context);
context._cmp(context.ds.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
makeworn(context);
showseconduse(context);
putbackobstuff(context);
@@ -11703,21 +11703,21 @@ static void nothelderror(Context & context) {
}
static void usepipe(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto pipewith;
withwhat(context);
return;
pipewith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcup;
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11734,7 +11734,7 @@ fillcup:
context.al = 36;
showpuztext(context);
putbackobstuff(context);
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+15) = 'F'-'A';
return;
@@ -11747,35 +11747,35 @@ alreadyfull:
}
static void usefullcart(Context & context) {
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
context.al = 2;
- context.ah = context.ds.byte(185);
+ context.ah = context.data.byte(185);
context._add(context.ah, 6);
turnanypathon(context);
- context.ds.byte(475) = 4;
- context.ds.byte(133) = 4;
- context.ds.byte(135) = 4;
- context.ds.byte(477) = 4;
+ context.data.byte(475) = 4;
+ context.data.byte(133) = 4;
+ context.data.byte(135) = 4;
+ context.data.byte(477) = 4;
findxyfrompath(context);
- context.ds.byte(187) = 1;
+ context.data.byte(187) = 1;
showfirstuse(context);
- context.ds.word(21) = 72*2;
- context.ds.word(23) = 58;
- context.ds.word(25) = 142;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 72*2;
+ context.data.word(23) = 58;
+ context.data.word(25) = 142;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
static void useplinth(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto plinthwith;
withwhat(context);
return;
plinthwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'D';
context.ch = 'K';
context.dl = 'E';
@@ -11786,16 +11786,16 @@ plinthwith:
putbackobstuff(context);
return;
isrightkey:
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showseconduse(context);
- context.ds.word(21) = 220;
- context.ds.word(23) = 0;
- context.ds.word(25) = 104;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
- context.al = context.ds.byte(67);
- context.ds.byte(188) = context.al;
+ context.data.word(21) = 220;
+ context.data.word(23) = 0;
+ context.data.word(25) = 104;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.al = context.data.byte(67);
+ context.data.byte(188) = context.al;
return;
}
@@ -11803,63 +11803,63 @@ static void chewy(Context & context) {
showfirstuse(context);
getanyad(context);
context.ds.byte(context.bx+2) = 255;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
static void useladder(Context & context) {
showfirstuse(context);
- context._sub(context.ds.byte(148), 11);
+ context._sub(context.data.byte(148), 11);
findroominloc(context);
- context.ds.byte(133) = 6;
- context.ds.byte(135) = 6;
- context.ds.byte(475) = 0;
- context.ds.byte(478) = 0;
- context.ds.byte(477) = 0;
+ context.data.byte(133) = 6;
+ context.data.byte(135) = 6;
+ context.data.byte(475) = 0;
+ context.data.byte(478) = 0;
+ context.data.byte(477) = 0;
findxyfrompath(context);
- context.ds.byte(187) = 1;
- context.ds.byte(103) = 1;
+ context.data.byte(187) = 1;
+ context.data.byte(103) = 1;
return;
}
static void useladderb(Context & context) {
showfirstuse(context);
- context._add(context.ds.byte(148), 11);
+ context._add(context.data.byte(148), 11);
findroominloc(context);
- context.ds.byte(133) = 2;
- context.ds.byte(135) = 2;
- context.ds.byte(475) = 1;
- context.ds.byte(478) = 1;
- context.ds.byte(477) = 1;
+ context.data.byte(133) = 2;
+ context.data.byte(135) = 2;
+ context.data.byte(475) = 1;
+ context.data.byte(478) = 1;
+ context.data.byte(477) = 1;
findxyfrompath(context);
- context.ds.byte(187) = 1;
- context.ds.byte(103) = 1;
+ context.data.byte(187) = 1;
+ context.data.byte(103) = 1;
return;
}
static void slabdoora(Context & context) {
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 13;
- context._cmp(context.ds.byte(66), 3);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 13;
+ context._cmp(context.data.byte(66), 3);
if (!context.flags.z()) goto slabawrong;
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 60;
- context.ds.word(25) = 42;
- context.ds.byte(188) = 47;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 42;
+ context.data.byte(188) = 47;
return;
slabawrong:
- context.ds.word(21) = 40;
- context.ds.word(25) = 34;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 40;
+ context.data.word(25) = 34;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void slabdoorb(Context & context) {
- context._cmp(context.ds.byte(66), 1);
+ context._cmp(context.data.byte(66), 1);
if (!context.flags.z()) goto slabbwrong;
context.al = 'S';
context.ah = 'H';
@@ -11874,120 +11874,120 @@ static void slabdoorb(Context & context) {
return;
gotcrystal:
showfirstuse(context);
- context._add(context.ds.byte(2), 1);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 44;
- context.ds.word(21) = 60;
- context.ds.word(25) = 71;
- context.ds.byte(188) = 47;
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 44;
+ context.data.word(21) = 60;
+ context.data.word(25) = 71;
+ context.data.byte(188) = 47;
return;
slabbwrong:
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 44;
- context.ds.word(21) = 40;
- context.ds.word(25) = 63;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 44;
+ context.data.word(21) = 40;
+ context.data.word(25) = 63;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void slabdoord(Context & context) {
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 75;
- context._cmp(context.ds.byte(66), 0);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 75;
+ context._cmp(context.data.byte(66), 0);
if (!context.flags.z()) goto slabcwrong;
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 60;
- context.ds.word(25) = 102;
- context.ds.byte(188) = 47;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 102;
+ context.data.byte(188) = 47;
return;
slabcwrong:
- context.ds.word(21) = 40;
- context.ds.word(25) = 94;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 40;
+ context.data.word(25) = 94;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void slabdoorc(Context & context) {
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 108;
- context._cmp(context.ds.byte(66), 4);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 108;
+ context._cmp(context.data.byte(66), 4);
if (!context.flags.z()) goto slabdwrong;
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 60;
- context.ds.word(25) = 135;
- context.ds.byte(188) = 47;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 135;
+ context.data.byte(188) = 47;
return;
slabdwrong:
- context.ds.word(21) = 40;
- context.ds.word(25) = 127;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 40;
+ context.data.word(25) = 127;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void slabdoore(Context & context) {
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 141;
- context._cmp(context.ds.byte(66), 5);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 141;
+ context._cmp(context.data.byte(66), 5);
if (!context.flags.z()) goto slabewrong;
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 60;
- context.ds.word(25) = 168;
- context.ds.byte(188) = 47;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 168;
+ context.data.byte(188) = 47;
return;
slabewrong:
- context.ds.word(21) = 40;
- context.ds.word(25) = 160;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 40;
+ context.data.word(25) = 160;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void slabdoorf(Context & context) {
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(23) = 171;
- context._cmp(context.ds.byte(66), 2);
+ context.data.byte(103) = 1;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(23) = 171;
+ context._cmp(context.data.byte(66), 2);
if (!context.flags.z()) goto slabfwrong;
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 60;
- context.ds.word(25) = 197;
- context.ds.byte(188) = 47;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 60;
+ context.data.word(25) = 197;
+ context.data.byte(188) = 47;
return;
slabfwrong:
- context.ds.word(21) = 40;
- context.ds.word(25) = 189;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 40;
+ context.data.word(25) = 189;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void useslab(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto slabwith;
withwhat(context);
return;
slabwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'J';
context.ch = 'E';
context.dl = 'W';
@@ -12000,10 +12000,10 @@ slabwith:
putbackobstuff(context);
return;
nextslab:
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+2) = 0;
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
@@ -12015,26 +12015,26 @@ nextslab:
if (!context.flags.z()) goto notlastslab;
context.al = 0;
turnpathon(context);
- context.ds.word(21) = 22;
- context.ds.word(23) = 35;
- context.ds.word(25) = 48;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 22;
+ context.data.word(23) = 35;
+ context.data.word(25) = 48;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
notlastslab:
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showfirstuse(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
static void usecart(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto cartwith;
withwhat(context);
return;
cartwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'R';
context.ch = 'O';
context.dl = 'C';
@@ -12047,31 +12047,31 @@ cartwith:
putbackobstuff(context);
return;
nextcart:
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+2) = 0;
- context.al = context.ds.byte(99);
+ context.al = context.data.byte(99);
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
context._add(context.al, 1);
placesetobject(context);
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
context.al = 17;
playchannel1(context);
showfirstuse(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
static void useclearbox(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto clearboxwith;
withwhat(context);
return;
clearboxwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'R';
context.ch = 'A';
context.dl = 'I';
@@ -12084,57 +12084,57 @@ clearboxwith:
putbackobstuff(context);
return;
openbox:
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showfirstuse(context);
- context.ds.word(21) = 80;
- context.ds.word(23) = 67;
- context.ds.word(25) = 105;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 80;
+ context.data.word(23) = 67;
+ context.data.word(25) = 105;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
static void usecoveredbox(Context & context) {
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showfirstuse(context);
- context.ds.word(21) = 50;
- context.ds.word(23) = 41;
- context.ds.word(25) = 66;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 50;
+ context.data.word(23) = 41;
+ context.data.word(25) = 66;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
static void userailing(Context & context) {
showfirstuse(context);
- context.ds.word(21) = 80;
- context.ds.word(23) = 0;
- context.ds.word(25) = 30;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
- context.ds.byte(56) = 4;
+ context.data.word(21) = 80;
+ context.data.word(23) = 0;
+ context.data.word(25) = 30;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.data.byte(56) = 4;
return;
}
static void useopenbox(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto openboxwith;
withwhat(context);
return;
openboxwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'F';
compare(context);
if (context.flags.z()) goto destoryopenbox;
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -12144,21 +12144,21 @@ openboxwith:
showfirstuse(context);
return;
destoryopenbox:
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
context.cx = 300;
context.al = 37;
showpuztext(context);
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+15) = 'E'-'A';
- context.ds.word(21) = 140;
- context.ds.word(23) = 105;
- context.ds.word(25) = 181;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 140;
+ context.data.word(23) = 105;
+ context.data.word(25) = 181;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
context.al = 4;
turnpathon(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
openboxwrong:
context.cx = 300;
@@ -12169,11 +12169,11 @@ openboxwrong:
}
static void wearwatch(Context & context) {
- context._cmp(context.ds.byte(3), 1);
+ context._cmp(context.data.byte(3), 1);
if (context.flags.z()) goto wearingwatch;
showfirstuse(context);
- context.ds.byte(3) = 1;
- context.ds.byte(103) = 1;
+ context.data.byte(3) = 1;
+ context.data.byte(103) = 1;
getanyad(context);
makeworn(context);
return;
@@ -12184,11 +12184,11 @@ wearingwatch:
}
static void wearshades(Context & context) {
- context._cmp(context.ds.byte(4), 1);
+ context._cmp(context.data.byte(4), 1);
if (context.flags.z()) goto wearingshades;
- context.ds.byte(4) = 1;
+ context.data.byte(4) = 1;
showfirstuse(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
getanyad(context);
makeworn(context);
return;
@@ -12199,17 +12199,17 @@ wearingshades:
}
static void sitdowninbar(Context & context) {
- context._cmp(context.ds.byte(32), -1);
+ context._cmp(context.data.byte(32), -1);
if (!context.flags.z()) goto satdown;
showfirstuse(context);
- context.ds.word(21) = 50;
- context.ds.word(23) = 55;
- context.ds.word(25) = 71;
- context.ds.word(29) = 73;
- context.ds.word(31) = 83;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 50;
+ context.data.word(23) = 55;
+ context.data.word(25) = 71;
+ context.data.word(29) = 73;
+ context.data.word(31) = 83;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
satdown:
showseconduse(context);
@@ -12219,23 +12219,23 @@ satdown:
static void usechurchhole(Context & context) {
showfirstuse(context);
- context.ds.byte(103) = 1;
- context.ds.word(21) = 28;
- context.ds.word(23) = 13;
- context.ds.word(25) = 26;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context.data.word(21) = 28;
+ context.data.word(23) = 13;
+ context.data.word(25) = 26;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
return;
}
static void usehole(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto holewith;
withwhat(context);
return;
holewith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'H';
context.ch = 'N';
context.dl = 'D';
@@ -12251,11 +12251,11 @@ righthand:
showfirstuse(context);
context.al = 86;
removesetobject(context);
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+2) = 255;
- context.ds.byte(47) = 1;
- context.ds.byte(103) = 1;
+ context.data.byte(47) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12274,43 +12274,43 @@ static void usealtar(Context & context) {
findexobject(context);
context._cmp(context.al, 114);
if (context.flags.z()) goto thingsonaltar;
- context._cmp(context.ds.byte(47), 1);
+ context._cmp(context.data.byte(47), 1);
if (context.flags.z()) goto movealtar;
context.cx = 300;
context.al = 23;
showpuztext(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
movealtar:
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showseconduse(context);
- context.ds.word(21) = 160;
- context.ds.word(23) = 81;
- context.ds.word(25) = 174;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
+ context.data.word(21) = 160;
+ context.data.word(23) = 81;
+ context.data.word(25) = 174;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
context.al = 47;
context.bl = 52;
context.bh = 76;
context.cx = 32;
context.dx = 98;
setuptimeduse(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
thingsonaltar:
showfirstuse(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
static void opentvdoor(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto tvdoorwith;
withwhat(context);
return;
tvdoorwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'U';
context.ch = 'L';
context.dl = 'O';
@@ -12324,8 +12324,8 @@ tvdoorwith:
return;
keyontv:
showfirstuse(context);
- context.ds.byte(37) = 0;
- context.ds.byte(103) = 1;
+ context.data.byte(37) = 0;
+ context.data.byte(103) = 1;
return;
}
@@ -12333,7 +12333,7 @@ static void usedryer(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12343,7 +12343,7 @@ static void openlouis(Context & context) {
context.cl = 3;
context.ch = 8;
entercode(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12362,17 +12362,17 @@ static void openyourneighbour(Context & context) {
context.cl = 255;
context.ch = 255;
entercode(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
static void usewindow(Context & context) {
- context._cmp(context.ds.byte(475), 6);
+ context._cmp(context.data.byte(475), 6);
if (!context.flags.z()) goto notonbalc;
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showfirstuse(context);
- context.ds.byte(188) = 29;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 29;
+ context.data.byte(103) = 1;
return;
notonbalc:
showseconduse(context);
@@ -12396,19 +12396,19 @@ static void usebalcony(Context & context) {
turnpathoff(context);
context.al = 5;
turnpathoff(context);
- context._add(context.ds.byte(2), 1);
- context.ds.byte(475) = 6;
- context.ds.byte(478) = 6;
- context.ds.byte(477) = 6;
+ context._add(context.data.byte(2), 1);
+ context.data.byte(475) = 6;
+ context.data.byte(478) = 6;
+ context.data.byte(477) = 6;
findxyfrompath(context);
switchryanoff(context);
- context.ds.byte(187) = 1;
- context.ds.word(21) = 30*2;
- context.ds.word(23) = 183;
- context.ds.word(25) = 212;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.byte(187) = 1;
+ context.data.word(21) = 30*2;
+ context.data.word(23) = 183;
+ context.data.word(25) = 212;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12418,7 +12418,7 @@ static void openryan(Context & context) {
context.cl = 0;
context.ch = 6;
entercode(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12428,7 +12428,7 @@ static void openpoolboss(Context & context) {
context.cl = 2;
context.ch = 2;
entercode(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12438,7 +12438,7 @@ static void openeden(Context & context) {
context.cl = 6;
context.ch = 5;
entercode(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12448,7 +12448,7 @@ static void opensarters(Context & context) {
context.cl = 3;
context.ch = 3;
entercode(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12476,13 +12476,13 @@ static void drawitall(Context & context) {
}
static void openhoteldoor(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto hoteldoorwith;
withwhat(context);
return;
hoteldoorwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
@@ -12498,19 +12498,19 @@ keyonhotel1:
context.al = 16;
playchannel1(context);
showfirstuse(context);
- context.ds.byte(37) = 0;
- context.ds.byte(103) = 1;
+ context.data.byte(37) = 0;
+ context.data.byte(103) = 1;
return;
}
static void openhoteldoor2(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto hoteldoorwith2;
withwhat(context);
return;
hoteldoorwith2:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
@@ -12531,13 +12531,13 @@ keyonhotel2:
}
static void grafittidoor(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto grafwith;
withwhat(context);
return;
grafwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'A';
context.ch = 'P';
context.dl = 'E';
@@ -12556,16 +12556,16 @@ dograf:
}
static void trapdoor(Context & context) {
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
showfirstuse(context);
switchryanoff(context);
- context.ds.word(21) = 20*2;
- context.ds.word(23) = 181;
- context.ds.word(25) = 197;
- context.ds.byte(188) = 26;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 20*2;
+ context.data.word(23) = 181;
+ context.data.word(25) = 197;
+ context.data.byte(188) = 26;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12573,10 +12573,10 @@ static void callhotellift(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
- context.ds.byte(39) = 8;
- context.ds.byte(103) = 1;
- context.ds.byte(478) = 5;
- context.ds.byte(477) = 5;
+ context.data.byte(39) = 8;
+ context.data.byte(103) = 1;
+ context.data.byte(478) = 5;
+ context.data.byte(477) = 5;
autosetwalk(context);
context.al = 4;
turnpathon(context);
@@ -12585,19 +12585,19 @@ static void callhotellift(Context & context) {
static void calledenslift(Context & context) {
showfirstuse(context);
- context.ds.byte(39) = 8;
- context.ds.byte(103) = 1;
+ context.data.byte(39) = 8;
+ context.data.byte(103) = 1;
context.al = 2;
turnpathon(context);
return;
}
static void calledensdlift(Context & context) {
- context._cmp(context.ds.byte(35), 1);
+ context._cmp(context.data.byte(35), 1);
if (context.flags.z()) goto edensdhere;
showfirstuse(context);
- context.ds.byte(39) = 8;
- context.ds.byte(103) = 1;
+ context.data.byte(39) = 8;
+ context.data.byte(103) = 1;
context.al = 2;
turnpathon(context);
return;
@@ -12608,13 +12608,13 @@ edensdhere:
}
static void usepoolreader(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto poolwith;
withwhat(context);
return;
poolwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -12627,7 +12627,7 @@ poolwith:
putbackobstuff(context);
return;
openpool:
- context._cmp(context.ds.byte(48), 1);
+ context._cmp(context.data.byte(48), 1);
if (context.flags.z()) goto canopenpool;
showseconduse(context);
putbackobstuff(context);
@@ -12636,19 +12636,19 @@ canopenpool:
context.al = 17;
playchannel1(context);
showfirstuse(context);
- context.ds.byte(39) = 6;
- context.ds.byte(103) = 1;
+ context.data.byte(39) = 6;
+ context.data.byte(103) = 1;
return;
}
static void uselighter(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotlighterwith;
withwhat(context);
return;
gotlighterwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'S';
context.ch = 'M';
context.dl = 'K';
@@ -12662,10 +12662,10 @@ cigarette:
context.cx = 300;
context.al = 9;
showpuztext(context);
- context.al = context.ds.byte(95);
+ context.al = context.data.byte(95);
getexad(context);
context.ds.byte(context.bx+2) = 255;
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -12681,13 +12681,13 @@ static void showseconduse(Context & context) {
}
static void usecardreader1(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotreader1with;
withwhat(context);
return;
gotreader1with:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12700,9 +12700,9 @@ gotreader1with:
putbackobstuff(context);
return;
correctcard:
- context._cmp(context.ds.byte(49), 0);
+ context._cmp(context.data.byte(49), 0);
if (context.flags.z()) goto notyet;
- context._cmp(context.ds.word(16), 0);
+ context._cmp(context.data.word(16), 0);
if (context.flags.z()) goto getscash;
context.cx = 300;
context.al = 17;
@@ -12715,9 +12715,9 @@ getscash:
context.cx = 300;
context.al = 18;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
- context.ds.word(16) = 12432;
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.data.word(16) = 12432;
+ context.data.byte(103) = 1;
return;
notyet:
showfirstuse(context);
@@ -12726,13 +12726,13 @@ notyet:
}
static void usecardreader2(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotreader2with;
withwhat(context);
return;
gotreader2with:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12745,11 +12745,11 @@ gotreader2with:
putbackobstuff(context);
return;
correctcard2:
- context._cmp(context.ds.byte(50), 0);
+ context._cmp(context.data.byte(50), 0);
if (context.flags.z()) goto notyetboss;
- context._cmp(context.ds.word(16), 0);
+ context._cmp(context.data.word(16), 0);
if (context.flags.z()) goto nocash;
- context._cmp(context.ds.byte(46), 2);
+ context._cmp(context.data.byte(46), 2);
if (context.flags.z()) goto alreadygotnew;
context.al = 18;
playchannel1(context);
@@ -12758,10 +12758,10 @@ correctcard2:
showpuztext(context);
context.al = 94;
placesetobject(context);
- context.ds.byte(46) = 1;
- context._sub(context.ds.word(16), 2000);
- context._add(context.ds.byte(2), 1);
- context.ds.byte(103) = 1;
+ context.data.byte(46) = 1;
+ context._sub(context.data.word(16), 2000);
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
return;
nocash:
context.cx = 300;
@@ -12782,13 +12782,13 @@ notyetboss:
}
static void usecardreader3(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotreader3with;
withwhat(context);
return;
gotreader3with:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12801,19 +12801,19 @@ gotreader3with:
putbackobstuff(context);
return;
rightcard:
- context._cmp(context.ds.byte(51), 0);
+ context._cmp(context.data.byte(51), 0);
if (context.flags.z()) goto notyetrecep;
- context._cmp(context.ds.byte(52), 0);
+ context._cmp(context.data.byte(52), 0);
if (!context.flags.z()) goto alreadyusedit;
context.al = 16;
playchannel1(context);
context.cx = 300;
context.al = 25;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
- context._sub(context.ds.word(16), 8300);
- context.ds.byte(52) = 1;
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context._sub(context.data.word(16), 8300);
+ context.data.byte(52) = 1;
+ context.data.byte(103) = 1;
return;
alreadyusedit:
context.cx = 300;
@@ -12836,11 +12836,11 @@ static void usecashcard(Context & context) {
showman(context);
context.di = 114;
context.bx = 120-3;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 39;
context.ah = 0;
showframe(context);
- context.ax = context.ds.word(16);
+ context.ax = context.data.word(16);
moneypoke(context);
getobtextstart(context);
nextcolon(context);
@@ -12855,7 +12855,7 @@ static void usecashcard(Context & context) {
context.bx = 155;
context.es = context.cs;
context.si = 3385;
- context.ds.word(71) = 91*2+75;
+ context.data.word(71) = 91*2+75;
context.al = 0;
context.ah = 0;
context.dl = 240;
@@ -12864,12 +12864,12 @@ static void usecashcard(Context & context) {
context.bx = 155;
context.es = context.cs;
context.si = 3390;
- context.ds.word(71) = 91*2+85;
+ context.data.word(71) = 91*2+85;
context.al = 0;
context.ah = 0;
context.dl = 240;
printdirect(context);
- context.ds.word(71) = 0;
+ context.data.word(71) = 0;
worktoscreenm(context);
context.cx = 400;
hangonp(context);
@@ -12880,13 +12880,13 @@ static void usecashcard(Context & context) {
}
static void lookatcard(Context & context) {
- context.ds.byte(131) = 1;
+ context.data.byte(131) = 1;
getridofreels(context);
loadkeypad(context);
createpanel2(context);
context.di = 160;
context.bx = 80;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 42;
context.ah = 128;
showframe(context);
@@ -12908,7 +12908,7 @@ static void lookatcard(Context & context) {
createpanel2(context);
context.di = 160;
context.bx = 80;
- context.ds = context.ds.word(458);
+ context.ds = context.data.word(458);
context.al = 42;
context.ah = 128;
showframe(context);
@@ -12923,7 +12923,7 @@ static void lookatcard(Context & context) {
worktoscreenm(context);
context.cx = 200;
hangonw(context);
- context.ds.byte(131) = 0;
+ context.data.byte(131) = 0;
getridoftemp(context);
restorereels(context);
putbackobstuff(context);
@@ -12970,31 +12970,31 @@ numberpoke3:
}
static void usecontrol(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotcontrolwith;
withwhat(context);
return;
gotcontrolwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
context.dh = 'A';
compare(context);
if (context.flags.z()) goto rightkey;
- context._cmp(context.ds.byte(184), 21);
+ context._cmp(context.data.byte(184), 21);
if (!context.flags.z()) goto balls;
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'K';
context.ch = 'N';
context.dl = 'F';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto jimmycontrols;
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13008,26 +13008,26 @@ balls:
rightkey:
context.al = 16;
playchannel1(context);
- context._cmp(context.ds.byte(9), 21);
+ context._cmp(context.data.byte(9), 21);
if (context.flags.z()) goto goingdown;
context.cx = 300;
context.al = 0;
showpuztext(context);
- context.ds.byte(188) = 21;
- context.ds.byte(40) = 8;
- context.ds.byte(39) = 0;
- context.ds.word(21) = 80;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 21;
+ context.data.byte(40) = 8;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
return;
goingdown:
context.cx = 300;
context.al = 3;
showpuztext(context);
- context.ds.byte(188) = 30;
- context.ds.byte(40) = 8;
- context.ds.byte(39) = 0;
- context.ds.word(21) = 80;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 30;
+ context.data.byte(40) = 8;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
return;
jimmycontrols:
context.al = 50;
@@ -13047,41 +13047,41 @@ jimmycontrols:
context.cx = 300;
context.al = 10;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
return;
axeoncontrols:
context.cx = 300;
context.al = 16;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
+ context._add(context.data.byte(2), 1);
putbackobstuff(context);
return;
}
static void usehatch(Context & context) {
showfirstuse(context);
- context.ds.byte(188) = 40;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 40;
+ context.data.byte(103) = 1;
return;
}
static void usewire(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotwirewith;
withwhat(context);
return;
gotwirewith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'K';
context.ch = 'N';
context.dl = 'F';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto wireknife;
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13107,8 +13107,8 @@ wireknife:
context.cx = 300;
context.al = 11;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.data.byte(103) = 1;
return;
}
@@ -13124,21 +13124,21 @@ static void usehandle(Context & context) {
context.cx = 300;
context.al = 12;
showpuztext(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
havecutwire:
context.cx = 300;
context.al = 13;
showpuztext(context);
- context.ds.byte(188) = 22;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 22;
+ context.data.byte(103) = 1;
return;
}
static void useelevator1(Context & context) {
showfirstuse(context);
selectlocation(context);
- context.ds.byte(103) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -13154,47 +13154,47 @@ static void showfirstuse(Context & context) {
static void useelevator3(Context & context) {
showfirstuse(context);
- context.ds.byte(40) = 20;
- context.ds.byte(188) = 34;
- context.ds.word(23) = 46;
- context.ds.word(25) = 63;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.word(21) = 80;
- context.ds.byte(103) = 1;
+ context.data.byte(40) = 20;
+ context.data.byte(188) = 34;
+ context.data.word(23) = 46;
+ context.data.word(25) = 63;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
return;
}
static void useelevator4(Context & context) {
showfirstuse(context);
- context.ds.word(23) = 0;
- context.ds.word(25) = 11;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(40) = 20;
- context.ds.word(21) = 80;
- context.ds.byte(103) = 1;
- context.ds.byte(188) = 24;
+ context.data.word(23) = 0;
+ context.data.word(25) = 11;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(40) = 20;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
+ context.data.byte(188) = 24;
return;
}
static void useelevator2(Context & context) {
- context._cmp(context.ds.byte(9), 23);
+ context._cmp(context.data.byte(9), 23);
if (context.flags.z()) goto inpoolhall;
showfirstuse(context);
- context.ds.byte(188) = 23;
- context.ds.byte(40) = 20;
- context.ds.byte(39) = 0;
- context.ds.word(21) = 80;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 23;
+ context.data.byte(40) = 20;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
return;
inpoolhall:
showfirstuse(context);
- context.ds.byte(188) = 31;
- context.ds.byte(40) = 20;
- context.ds.byte(39) = 0;
- context.ds.word(21) = 80;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 31;
+ context.data.byte(40) = 20;
+ context.data.byte(39) = 0;
+ context.data.word(21) = 80;
+ context.data.byte(103) = 1;
return;
}
@@ -13203,20 +13203,20 @@ static void useelevator5(Context & context) {
placesetobject(context);
context.al = 0;
removesetobject(context);
- context.ds.byte(188) = 20;
- context.ds.word(21) = 80;
- context.ds.byte(35) = 1;
- context.ds.byte(40) = 8;
- context.ds.byte(103) = 1;
+ context.data.byte(188) = 20;
+ context.data.word(21) = 80;
+ context.data.byte(35) = 1;
+ context.data.byte(40) = 8;
+ context.data.byte(103) = 1;
return;
}
static void usekey(Context & context) {
- context._cmp(context.ds.byte(9), 5);
+ context._cmp(context.data.byte(9), 5);
if (context.flags.z()) goto usekey1;
- context._cmp(context.ds.byte(9), 30);
+ context._cmp(context.data.byte(9), 30);
if (context.flags.z()) goto usekey1;
- context._cmp(context.ds.byte(9), 21);
+ context._cmp(context.data.byte(9), 21);
if (context.flags.z()) goto usekey2;
context.cx = 200;
context.al = 1;
@@ -13224,25 +13224,25 @@ static void usekey(Context & context) {
putbackobstuff(context);
return;
usekey1:
- context._cmp(context.ds.byte(148), 22);
+ context._cmp(context.data.byte(148), 22);
if (!context.flags.z()) goto wrongroom1;
- context._cmp(context.ds.byte(149), 10);
+ context._cmp(context.data.byte(149), 10);
if (!context.flags.z()) goto wrongroom1;
context.cx = 300;
context.al = 0;
showpuztext(context);
- context.ds.byte(40) = 100;
- context.ds.byte(103) = 1;
+ context.data.byte(40) = 100;
+ context.data.byte(103) = 1;
return;
usekey2:
- context._cmp(context.ds.byte(148), 11);
+ context._cmp(context.data.byte(148), 11);
if (!context.flags.z()) goto wrongroom1;
- context._cmp(context.ds.byte(149), 10);
+ context._cmp(context.data.byte(149), 10);
if (!context.flags.z()) goto wrongroom1;
context.cx = 300;
context.al = 3;
showpuztext(context);
- context.ds.byte(188) = 30;
+ context.data.byte(188) = 30;
context.al = 2;
fadescreendown(context);
showfirstuse(context);
@@ -13257,7 +13257,7 @@ wrongroom1:
}
static void usestereo(Context & context) {
- context._cmp(context.ds.byte(9), 0);
+ context._cmp(context.data.byte(9), 0);
if (context.flags.z()) goto stereook;
context.cx = 400;
context.al = 4;
@@ -13265,9 +13265,9 @@ static void usestereo(Context & context) {
putbackobstuff(context);
return;
stereook:
- context._cmp(context.ds.byte(148), 11);
+ context._cmp(context.data.byte(148), 11);
if (!context.flags.z()) goto stereonotok;
- context._cmp(context.ds.byte(149), 0);
+ context._cmp(context.data.byte(149), 0);
if (context.flags.z()) goto stereook2;
stereonotok:
context.cx = 400;
@@ -13314,8 +13314,8 @@ stereoon:
}
static void usecooker(Context & context) {
- context.al = context.ds.byte(99);
- context.ah = context.ds.byte(102);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
checkinside(context);
context._cmp(context.cl, 114);
if (!context.flags.z()) goto foodinside;
@@ -13329,14 +13329,14 @@ foodinside:
}
static void useaxe(Context & context) {
- context._cmp(context.ds.byte(184), 22);
+ context._cmp(context.data.byte(184), 22);
if (!context.flags.z()) goto notinpool;
- context._cmp(context.ds.byte(149), 10);
+ context._cmp(context.data.byte(149), 10);
if (context.flags.z()) goto axeondoor;
showseconduse(context);
- context._add(context.ds.byte(2), 1);
- context.ds.byte(65) = 2;
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.data.byte(65) = 2;
+ context.data.byte(103) = 1;
removeobfrominv(context);
return;
notinpool:
@@ -13347,25 +13347,25 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 46*2;
- context.ds.word(23) = 31;
- context.ds.word(25) = 77;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 46*2;
+ context.data.word(23) = 31;
+ context.data.word(25) = 77;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
return;
}
static void useelvdoor(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gotdoorwith;
withwhat(context);
return;
gotdoorwith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13381,13 +13381,13 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.ds.byte(2), 1);
- context.ds.word(21) = 46*2;
- context.ds.word(23) = 31;
- context.ds.word(25) = 77;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
+ context.data.word(21) = 46*2;
+ context.data.word(23) = 31;
+ context.data.word(25) = 77;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
@@ -13396,8 +13396,8 @@ static void withwhat(Context & context) {
showpanel(context);
showman(context);
showexit(context);
- context.al = context.ds.byte(99);
- context.ah = context.ds.byte(102);
+ context.al = context.data.byte(99);
+ context.ah = context.data.byte(102);
context.es = context.cs;
context.di = 5674;
copyname(context);
@@ -13407,7 +13407,7 @@ static void withwhat(Context & context) {
context.al = 63;
context.ah = 2;
printmessage2(context);
- context.di = context.ds.word(84);
+ context.di = context.data.word(84);
context._add(context.di, 5);
context.bx = 21;
context.es = context.cs;
@@ -13416,7 +13416,7 @@ static void withwhat(Context & context) {
context.al = 0;
context.ah = 0;
printdirect(context);
- context.di = context.ds.word(84);
+ context.di = context.data.word(84);
context._add(context.di, 5);
context.bx = 21;
context.dl = 200;
@@ -13424,12 +13424,12 @@ static void withwhat(Context & context) {
context.ah = 3;
printmessage2(context);
fillryan(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.ds.byte(104) = 2;
+ context.data.byte(104) = 2;
return;
}
@@ -13441,21 +13441,21 @@ static void selectob(Context & context) {
blank(context);
return;
canselectob:
- context.ds.byte(95) = context.al;
- context.ds.byte(96) = context.ah;
- context._cmp(context.ax, context.ds.word(94));
+ context.data.byte(95) = context.al;
+ context.data.byte(96) = context.ah;
+ context._cmp(context.ax, context.data.word(94));
if (!context.flags.z()) goto diffsub3;
- context._cmp(context.ds.byte(100), 221);
+ context._cmp(context.data.byte(100), 221);
if (context.flags.z()) goto alreadyselob;
- context.ds.byte(100) = 221;
+ context.data.byte(100) = 221;
diffsub3:
- context.ds.word(94) = context.ax;
+ context.data.word(94) = context.ax;
context.bx = context.ax;
context.al = 0;
commandwithob(context);
alreadyselob:
- context.ax = context.ds.word(202);
- context._cmp(context.ax, context.ds.word(212));
+ context.ax = context.data.word(202);
+ context._cmp(context.ax, context.data.word(212));
if (context.flags.z()) goto notselob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doselob;
@@ -13463,7 +13463,7 @@ notselob:
return;
doselob:
delpointer(context);
- context.ds.byte(104) = 0;
+ context.data.byte(104) = 0;
useroutine(context);
return;
}
@@ -13490,7 +13490,7 @@ static void findsetobject(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.ds.word(428);
+ context.es = context.data.word(428);
context.bx = 0;
context.dl = 0;
findsetloop:
@@ -13518,7 +13518,7 @@ static void findexobject(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.bx = 0+2080+30000;
context.dl = 0;
findexloop:
@@ -13546,7 +13546,7 @@ static void isryanholding(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.bx = 0+2080+30000;
context.dl = 0;
searchinv:
@@ -13574,7 +13574,7 @@ nofindininv:
}
static void checkinside(Context & context) {
- context.es = context.ds.word(398);
+ context.es = context.data.word(398);
context.bx = 0+2080+30000;
context.cl = 0;
insideloop:
@@ -13620,7 +13620,7 @@ static void putbackobstuff(Context & context) {
obpicture(context);
describeob(context);
undertextline(context);
- context.ds.byte(100) = 255;
+ context.data.byte(100) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -13655,7 +13655,7 @@ static void findpuztext(Context & context) {
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.ds.word(454);
+ context.es = context.data.word(454);
context.ax = context.ds.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
@@ -13725,8 +13725,8 @@ static void removefreeobject(Context & context) {
static void findormake(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
context.push(context.ax);
- context.es = context.ds.word(412);
- context.ah = context.ds.byte(184);
+ context.es = context.data.word(412);
+ context.ah = context.data.byte(184);
changeloop:
context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto haventfound;
@@ -13749,17 +13749,17 @@ haventfound:
}
static void switchryanon(Context & context) {
- context.ds.byte(63) = 255;
+ context.data.byte(63) = 255;
return;
}
static void switchryanoff(Context & context) {
- context.ds.byte(63) = 1;
+ context.data.byte(63) = 1;
return;
}
static void setallchanges(Context & context) {
- context.es = context.ds.word(412);
+ context.es = context.data.word(412);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
setallloop:
context.ax = context.ds.word(context.bx);
@@ -13767,7 +13767,7 @@ setallloop:
if (context.flags.z()) goto endsetloop;
context.cx = context.ds.word(context.bx+2);
context._add(context.bx, 4);
- context._cmp(context.ah, context.ds.byte(184));
+ context._cmp(context.ah, context.data.byte(184));
if (!context.flags.z()) goto setallloop;
context.push(context.es);
context.push(context.bx);
@@ -13799,7 +13799,7 @@ path:
context.bx = context.pop();
context._add(context.bx, context.ax);
context._add(context.bx, 0);
- context.es = context.ds.word(450);
+ context.es = context.data.word(450);
context.cx = context.pop();
context.ds.byte(context.bx+6) = context.cl;
nopath:
@@ -13822,20 +13822,20 @@ beenpickedup:
}
static void autoappear(Context & context) {
- context._cmp(context.ds.byte(9), 32);
+ context._cmp(context.data.byte(9), 32);
if (!context.flags.z()) goto notinalley;
context.al = 5;
resetlocation(context);
context.al = 10;
setlocation(context);
- context.ds.byte(183) = 10;
+ context.data.byte(183) = 10;
return;
notinalley:
- context._cmp(context.ds.byte(184), 24);
+ context._cmp(context.data.byte(184), 24);
if (!context.flags.z()) goto notinedens;
- context._cmp(context.ds.byte(42), 1);
+ context._cmp(context.data.byte(42), 1);
if (!context.flags.z()) goto edenspart2;
- context._add(context.ds.byte(42), 1);
+ context._add(context.data.byte(42), 1);
context.al = 44;
placesetobject(context);
context.al = 18;
@@ -13854,7 +13854,7 @@ notinalley:
removesetobject(context);
return;
edenspart2:
- context._cmp(context.ds.byte(43), 1);
+ context._cmp(context.data.byte(43), 1);
if (!context.flags.z()) goto notedens2;
context.al = 44;
removesetobject(context);
@@ -13862,23 +13862,23 @@ edenspart2:
removesetobject(context);
context.al = 55;
placesetobject(context);
- context._add(context.ds.byte(43), 1);
+ context._add(context.data.byte(43), 1);
notedens2:
return;
notinedens:
- context._cmp(context.ds.byte(184), 25);
+ context._cmp(context.data.byte(184), 25);
if (!context.flags.z()) goto notonsartroof;
- context.ds.byte(34) = 3;
+ context.data.byte(34) = 3;
context.al = 6;
resetlocation(context);
context.al = 11;
setlocation(context);
- context.ds.byte(183) = 11;
+ context.data.byte(183) = 11;
return;
notonsartroof:
- context._cmp(context.ds.byte(184), 2);
+ context._cmp(context.data.byte(184), 2);
if (!context.flags.z()) goto notinlouiss;
- context._cmp(context.ds.byte(41), 0);
+ context._cmp(context.data.byte(41), 0);
if (context.flags.z()) goto notinlouiss;
context.al = 23;
placesetobject(context);
@@ -13887,153 +13887,153 @@ notinlouiss:
}
static void getundertimed(Context & context) {
- context.al = context.ds.byte(335);
+ context.al = context.data.byte(335);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.ds.byte(336);
+ context.al = context.data.byte(336);
context.ah = 0;
context.di = context.ax;
context.ch = 30;
context.cl = 240;
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
multiget(context);
return;
}
static void putundertimed(Context & context) {
- context.al = context.ds.byte(335);
+ context.al = context.data.byte(335);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.ds.byte(336);
+ context.al = context.data.byte(336);
context.ah = 0;
context.di = context.ax;
context.ch = 30;
context.cl = 240;
- context.ds = context.ds.word(412);
+ context.ds = context.data.word(412);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
multiput(context);
return;
}
static void dumptimedtext(Context & context) {
- context._cmp(context.ds.byte(337), 1);
+ context._cmp(context.data.byte(337), 1);
if (!context.flags.z()) goto nodumptimed;
- context.al = context.ds.byte(335);
+ context.al = context.data.byte(335);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.ds.byte(336);
+ context.al = context.data.byte(336);
context.ah = 0;
context.di = context.ax;
context.cl = 240;
context.ch = 30;
multidump(context);
- context.ds.byte(337) = 0;
+ context.data.byte(337) = 0;
nodumptimed:
return;
}
static void setuptimeduse(Context & context) {
- context._cmp(context.ds.word(328), 0);
+ context._cmp(context.data.word(328), 0);
if (!context.flags.z()) goto cantsetup;
- context.ds.byte(335) = context.bh;
- context.ds.byte(336) = context.bl;
- context.ds.word(330) = context.cx;
+ context.data.byte(335) = context.bh;
+ context.data.byte(336) = context.bl;
+ context.data.word(330) = context.cx;
context._add(context.dx, context.cx);
- context.ds.word(328) = context.dx;
+ context.data.word(328) = context.dx;
context.bl = context.al;
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.ds.word(454);
+ context.es = context.data.word(454);
context.cx = 66*2;
context.ax = context.ds.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
- context.ds.word(332) = context.es;
- context.ds.word(334) = context.bx;
+ context.data.word(332) = context.es;
+ context.data.word(334) = context.bx;
cantsetup:
return;
}
static void setuptimedtemp(Context & context) {
- context._cmp(context.ds.word(328), 0);
+ context._cmp(context.data.word(328), 0);
if (!context.flags.z()) goto cantsetup2;
- context.ds.byte(335) = context.bh;
- context.ds.byte(336) = context.bl;
- context.ds.word(330) = context.cx;
+ context.data.byte(335) = context.bh;
+ context.data.byte(336) = context.bl;
+ context.data.word(330) = context.cx;
context._add(context.dx, context.cx);
- context.ds.word(328) = context.dx;
+ context.data.word(328) = context.dx;
context.bl = context.al;
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.ds.word(466);
+ context.es = context.data.word(466);
context.cx = 66*2;
context.ax = context.ds.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
- context.ds.word(332) = context.es;
- context.ds.word(334) = context.bx;
+ context.data.word(332) = context.es;
+ context.data.word(334) = context.bx;
cantsetup2:
return;
}
static void usetimedtext(Context & context) {
- context._cmp(context.ds.word(328), 0);
+ context._cmp(context.data.word(328), 0);
if (context.flags.z()) goto notext;
- context._sub(context.ds.word(328), 1);
- context._cmp(context.ds.word(328), 0);
+ context._sub(context.data.word(328), 1);
+ context._cmp(context.data.word(328), 0);
if (context.flags.z()) goto deltimedtext;
- context.ax = context.ds.word(328);
- context._cmp(context.ax, context.ds.word(330));
+ context.ax = context.data.word(328);
+ context._cmp(context.ax, context.data.word(330));
if (context.flags.z()) goto firsttimed;
if (!context.flags.c()) goto notext;
goto notfirsttimed;
firsttimed:
getundertimed(context);
notfirsttimed:
- context.bl = context.ds.byte(335);
+ context.bl = context.data.byte(335);
context.bh = 0;
- context.al = context.ds.byte(336);
+ context.al = context.data.byte(336);
context.ah = 0;
context.di = context.ax;
- context.es = context.ds.word(332);
- context.si = context.ds.word(334);
+ context.es = context.data.word(332);
+ context.si = context.data.word(334);
context.dl = 237;
context.ah = 0;
printdirect(context);
- context.ds.byte(337) = 1;
+ context.data.byte(337) = 1;
notext:
return;
deltimedtext:
putundertimed(context);
- context.ds.byte(337) = 1;
+ context.data.byte(337) = 1;
return;
}
static void edenscdplayer(Context & context) {
showfirstuse(context);
- context.ds.word(21) = 18*2;
- context.ds.word(23) = 25;
- context.ds.word(25) = 42;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 18*2;
+ context.data.word(23) = 25;
+ context.data.word(25) = 42;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
return;
}
static void usewall(Context & context) {
showfirstuse(context);
- context._cmp(context.ds.byte(475), 3);
+ context._cmp(context.data.byte(475), 3);
if (context.flags.z()) goto gobackover;
- context.ds.word(21) = 30*2;
- context.ds.word(23) = 2;
- context.ds.word(25) = 31;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 30*2;
+ context.data.word(23) = 2;
+ context.data.word(25) = 31;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
context.al = 3;
turnpathon(context);
context.al = 4;
@@ -14046,19 +14046,19 @@ static void usewall(Context & context) {
turnpathoff(context);
context.al = 5;
turnpathoff(context);
- context.ds.byte(475) = 3;
- context.ds.byte(477) = 3;
+ context.data.byte(475) = 3;
+ context.data.byte(477) = 3;
findxyfrompath(context);
- context.ds.byte(187) = 1;
+ context.data.byte(187) = 1;
switchryanoff(context);
return;
gobackover:
- context.ds.word(21) = 30*2;
- context.ds.word(23) = 34;
- context.ds.word(25) = 60;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
+ context.data.word(21) = 30*2;
+ context.data.word(23) = 34;
+ context.data.word(25) = 60;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
context.al = 3;
turnpathoff(context);
context.al = 4;
@@ -14071,22 +14071,22 @@ gobackover:
turnpathon(context);
context.al = 5;
turnpathon(context);
- context.ds.byte(475) = 5;
- context.ds.byte(477) = 5;
+ context.data.byte(475) = 5;
+ context.data.byte(477) = 5;
findxyfrompath(context);
- context.ds.byte(187) = 1;
+ context.data.byte(187) = 1;
switchryanoff(context);
return;
}
static void usechurchgate(Context & context) {
- context._cmp(context.ds.byte(95), 255);
+ context._cmp(context.data.byte(95), 255);
if (!context.flags.z()) goto gatewith;
withwhat(context);
return;
gatewith:
- context.al = context.ds.byte(95);
- context.ah = context.ds.byte(96);
+ context.al = context.data.byte(95);
+ context.ah = context.data.byte(96);
context.cl = 'C';
context.ch = 'U';
context.dl = 'T';
@@ -14100,16 +14100,16 @@ gatewith:
return;
cutgate:
showfirstuse(context);
- context.ds.word(21) = 64*2;
- context.ds.word(23) = 4;
- context.ds.word(25) = 70;
- context.ds.byte(27) = 1;
- context.ds.byte(26) = 1;
- context.ds.byte(103) = 1;
- context._add(context.ds.byte(2), 1);
+ context.data.word(21) = 64*2;
+ context.data.word(23) = 4;
+ context.data.word(25) = 70;
+ context.data.byte(27) = 1;
+ context.data.byte(26) = 1;
+ context.data.byte(103) = 1;
+ context._add(context.data.byte(2), 1);
context.al = 3;
turnpathon(context);
- context._cmp(context.ds.byte(44), 0);
+ context._cmp(context.data.byte(44), 0);
if (context.flags.z()) goto notopenchurch;
context.al = 2;
turnpathon(context);
@@ -14118,153 +14118,153 @@ notopenchurch:
}
static void usegun(Context & context) {
- context._cmp(context.ds.byte(102), 4);
+ context._cmp(context.data.byte(102), 4);
if (context.flags.z()) goto istakengun;
Commit: 1494cdb29597369dcaee6dbbd146f63f916af9c0
https://github.com/scummvm/scummvm/commit/1494cdb29597369dcaee6dbbd146f63f916af9c0
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:07-07:00
Commit Message:
DREAMWEB: added openfile stub
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 19e5b29..2e4be71 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -191,7 +191,12 @@ void openfilenocheck(Context &context) {
}
void openfile(Context &context) {
- ::error("openfile");
+ uint16 name_ptr = context.dx;
+ Common::String name;
+ uint8 c;
+ while((c = context.data.byte(name_ptr++)) != 0)
+ name += (char)c;
+ debug(1, "opening file: %s", name.c_str());
}
void createfile(Context &context) {
@@ -357,7 +362,7 @@ void dosreturn(Context &context) {
}
void set16colpalette(Context &context) {
- ::error("set16colpalette");
+ warning("set16colpalette: STUB");
}
void mode640x480(Context &context) {
@@ -365,7 +370,7 @@ void mode640x480(Context &context) {
}
void showgroup(Context &context) {
- ::error("showgroup");
+ warning("vsync: STUB");
}
void fadedos(Context &context) {
@@ -377,7 +382,8 @@ void doshake(Context &context) {
}
void vsync(Context &context) {
- ::error("vsync");
+ //engine()->waitForVSync();
+ warning("vsync: STUB");
}
void setmode(Context &context) {
Commit: 9a1575b9d560ff7ffa5056081072e3b049c0c2c5
https://github.com/scummvm/scummvm/commit/9a1575b9d560ff7ffa5056081072e3b049c0c2c5
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:11-07:00
Commit Message:
DREAMWEB: implemented openfile
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 2e4be71..fab9955 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -133,6 +133,15 @@ Common::Error DreamWebEngine::run() {
return Common::kNoError;
}
+void DreamWebEngine::openFile(const Common::String &name) {
+ if (_file.isOpen()) {
+ _file.close();
+ }
+ if (!_file.open(name))
+ error("cannot open file %s", name.c_str());
+}
+
+
} // End of namespace DreamWeb
@@ -194,9 +203,11 @@ void openfile(Context &context) {
uint16 name_ptr = context.dx;
Common::String name;
uint8 c;
- while((c = context.data.byte(name_ptr++)) != 0)
+ while((c = context.cs.byte(name_ptr++)) != 0)
name += (char)c;
debug(1, "opening file: %s", name.c_str());
+ context.cs.word(kHandle) = 1; //only one handle
+ context.flags._c = false;
}
void createfile(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 96aa61a..8669aad 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -26,10 +26,11 @@
#ifndef DREAMWEB_H
#define DREAMWEB_H
-#include "common/scummsys.h"
+#include "common/error.h"
+#include "common/file.h"
#include "common/random.h"
#include "common/rect.h"
-#include "common/error.h"
+#include "common/scummsys.h"
#include "engines/engine.h"
#include "dreamweb/console.h"
@@ -76,10 +77,14 @@ public:
//dreamgen public api:
uint8 randomNumber() { return _rnd.getRandomNumber(255); }
+ void openFile(const Common::String &name);
+
private:
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
Common::Point _mouse;
+
+ Common::File _file;
};
} // End of namespace DreamWeb
Commit: 858a898aa7aef678c9c486c8c18788ade47f8aea
https://github.com/scummvm/scummvm/commit/858a898aa7aef678c9c486c8c18788ade47f8aea
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:15-07:00
Commit Message:
DREAMWEB: added readfile
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fab9955..fed8a80 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -141,6 +141,12 @@ void DreamWebEngine::openFile(const Common::String &name) {
error("cannot open file %s", name.c_str());
}
+void DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
+ //if (!_file.isOpen())
+ // error("file was not opened");
+ _file.read(dst, size);
+}
+
} // End of namespace DreamWeb
@@ -184,7 +190,11 @@ void setkeyboardint(Context &context) {
}
void readfromfile(Context &context) {
- ::error("readfromfile");
+ uint16 dst_offset = context.dx;
+ uint16 size = context.bx;
+ debug(1, "readfromfile(ds:%u, %u)", dst_offset, size);
+ engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
+ context.flags._c = false; //fixme: add return args
}
void closefile(Context &context) {
@@ -206,6 +216,7 @@ void openfile(Context &context) {
while((c = context.cs.byte(name_ptr++)) != 0)
name += (char)c;
debug(1, "opening file: %s", name.c_str());
+ engine()->openFile(name);
context.cs.word(kHandle) = 1; //only one handle
context.flags._c = false;
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 8669aad..cba1b00 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -78,6 +78,7 @@ public:
uint8 randomNumber() { return _rnd.getRandomNumber(255); }
void openFile(const Common::String &name);
+ void readFromFile(uint8 *dst, unsigned size);
private:
const DreamWebGameDescription *_gameDescription;
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index d1c6511..d55f947 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -98,6 +98,11 @@ struct Segment {
inline WordRef word(unsigned index) {
return WordRef(data, index);
}
+
+ inline uint8* ptr(unsigned index, unsigned size) {
+ assert(index + size <= data.size());
+ return data.begin() + index;
+ }
};
class Context;
@@ -137,6 +142,11 @@ public:
assert(_segment != 0);
_segment->assign(b, e);
}
+
+ inline uint8* ptr(unsigned index, unsigned size) {
+ assert(_segment != 0);
+ return _segment->ptr(index, size);
+ }
};
struct Flags {
Commit: ab41fb783de0323e333623411f7915eb110e6fac
https://github.com/scummvm/scummvm/commit/ab41fb783de0323e333623411f7915eb110e6fac
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:19-07:00
Commit Message:
DREAMWEB: fixed equ expanding
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 1e77893..36bc192 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -52,7 +52,7 @@ namespace %s {
g = self.context.get_global(name)
if isinstance(g, op.const):
- value = self.expand(g.value)
+ value = self.expand_equ(g.value)
elif isinstance(g, proc.proc):
if self.indirection != -1:
raise Exception("invalid proc label usage")
@@ -101,6 +101,19 @@ namespace %s {
return 0
+ def expand_equ_cb(self, match):
+ name = match.group(0).lower()
+ g = self.context.get_global(name)
+ if isinstance(g, op.const):
+ return g.value
+ return str(g.offset)
+
+ def expand_equ(self, expr):
+ n = 1
+ while n > 0:
+ expr, n = re.subn(r'\b[a-zA-Z_][a-zA-Z0-9_]+\b', self.expand_equ_cb, expr)
+ return expr
+
def expand(self, expr, def_size = 0):
#print "EXPAND \"%s\"" %expr
size = self.get_size(expr) if def_size == 0 else def_size
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index ef05c31..c5b349f 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -16519,7 +16519,7 @@ static void makeheader(Context & context) {
context.di = 5952;
context.ax = 17;
storeit(context);
- context.ax = 68-context.data.byte(1);
+ context.ax = 68-1;
storeit(context);
context.ax = 0+2080+30000+(16*114)+((114+2)*2)+18000;
storeit(context);
@@ -16527,7 +16527,7 @@ static void makeheader(Context & context) {
storeit(context);
context.ax = 48;
storeit(context);
- context.ax = 991-context.data.byte(537);
+ context.ax = 991-537;
storeit(context);
return;
}
@@ -17313,7 +17313,7 @@ static void allocatebuffers(Context & context) {
allocatemem(context);
context.data.word(418) = context.ax;
trysoundalloc(context);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-context.data.byte(537)+68-context.data.byte(1)/16;
+ context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-537+68-1/16;
allocatemem(context);
context.data.word(412) = context.ax;
trysoundalloc(context);
@@ -17340,7 +17340,7 @@ static void allocatebuffers(Context & context) {
static void clearbuffers(Context & context) {
context.es = context.data.word(412);
- context.cx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-context.data.byte(537)+68-context.data.byte(1)/2;
+ context.cx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-537+68-1/2;
context.ax = 0;
context.di = 0;
while(--context.cx) context._stosw();
@@ -17353,13 +17353,13 @@ static void clearbuffers(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64);
context.ds = context.cs;
context.si = 537;
- context.cx = 991-context.data.byte(537);
+ context.cx = 991-537;
while(--context.cx) context._movsb();
context.es = context.data.word(412);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-context.data.byte(537);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-537;
context.ds = context.cs;
context.si = 1;
- context.cx = 68-context.data.byte(1);
+ context.cx = 68-1;
while(--context.cx) context._movsb();
clearchanges(context);
return;
@@ -17375,13 +17375,13 @@ static void clearchanges(Context & context) {
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64);
context.es = context.cs;
context.di = 537;
- context.cx = 991-context.data.byte(537);
+ context.cx = 991-537;
while(--context.cx) context._movsb();
context.ds = context.data.word(412);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-context.data.byte(537);
+ context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-537;
context.es = context.cs;
context.di = 1;
- context.cx = 68-context.data.byte(1);
+ context.cx = 68-1;
while(--context.cx) context._movsb();
context.data.byte(10) = 0;
context.data.word(12) = 0;
@@ -20605,7 +20605,7 @@ static void getroomdata(Context & context) {
static void readheader(Context & context) {
context.ds = context.cs;
context.dx = 5881;
- context.cx = 5958-context.data.byte(5881);
+ context.cx = 5958-5881;
readfromfile(context);
context.es = context.cs;
context.di = 5952;
Commit: 6a33ce30f2041743624bcc115c4d74be6c57b033
https://github.com/scummvm/scummvm/commit/6a33ce30f2041743624bcc115c4d74be6c57b033
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:23-07:00
Commit Message:
DREAMWEB: added close file
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fed8a80..6938423 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -147,6 +147,10 @@ void DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
_file.read(dst, size);
}
+void DreamWebEngine::closeFile() {
+ _file.close();
+}
+
} // End of namespace DreamWeb
@@ -198,7 +202,7 @@ void readfromfile(Context &context) {
}
void closefile(Context &context) {
- ::error("closefile");
+ engine()->closeFile();
}
void openforsave(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index cba1b00..03db193 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -79,6 +79,7 @@ public:
void openFile(const Common::String &name);
void readFromFile(uint8 *dst, unsigned size);
+ void closeFile();
private:
const DreamWebGameDescription *_gameDescription;
Commit: 08e2316d875443ce820590004daba0e526e93204
https://github.com/scummvm/scummvm/commit/08e2316d875443ce820590004daba0e526e93204
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:27-07:00
Commit Message:
DREAMWEB: more stubs
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 6938423..f68818f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -327,19 +327,20 @@ void interupttest(Context &context) {
}
void disablesoundint(Context &context) {
- ::error("disablesoundint");
+ warning("disablesoundint: STUB");
}
void enablesoundint(Context &context) {
- ::error("enablesoundint");
+ warning("enablesoundint: STUB");
}
void checksoundint(Context &context) {
- ::error("checksoundint");
+ context.data.byte(kTestresult) = 1;
+ warning("checksoundint: STUB");
}
void setsoundoff(Context &context) {
- ::error("setsoundoff");
+ warning("setsoundoff: STUB");
}
@@ -348,7 +349,10 @@ void loadsecondsample(Context &context) {
}
void loadsample(Context &context) {
- ::error("loadsample");
+ warning("loadsample: STUB");
+ openfile(context);
+ closefile(context);
+ //readheader(context); //add exports to tasm recompiler
}
void loadspeech(Context &context) {
@@ -356,7 +360,8 @@ void loadspeech(Context &context) {
}
void scanfornames(Context &context) {
- ::error("scanfornames");
+ warning("scanfornames: STUB");
+ context.ch = 0;
}
void saveseg(Context &context) {
Commit: 7e56cc2d91a662694816dea0be69af4a013a7ea9
https://github.com/scummvm/scummvm/commit/7e56cc2d91a662694816dea0be69af4a013a7ea9
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:30-07:00
Commit Message:
DREAMWEB: added video segment
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index d55f947..4a928ea 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -182,7 +182,7 @@ class Context {
SegmentMap _segments;
public:
- enum { kDefaultDataSegment = 0x1000 };
+ enum { kDefaultDataSegment = 0x1000, kVideoSegment = 0xa000 };
Register ax, dx, bx, cx, si, di;
LowPartOfRegister al;
@@ -194,16 +194,20 @@ public:
LowPartOfRegister dl;
HighPartOfRegister dh;
- SegmentRef cs, ds, es, data;
+ SegmentRef cs, ds, es, data, video;
//data == fake segment register always pointing to data segment
Flags flags;
- inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx), cs(this), ds(this), es(this), data(this) {
+ inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx),
+ cs(this), ds(this), es(this), data(this), video(this) {
_segments[kDefaultDataSegment] = Segment();
+ _segments[kVideoSegment].data.resize(0x10000);
+
cs.reset(kDefaultDataSegment);
ds.reset(kDefaultDataSegment);
es.reset(kDefaultDataSegment);
data.reset(kDefaultDataSegment);
+ video.reset(kVideoSegment);
}
SegmentRef getSegment(uint16 value) {
Commit: 59f8d31132783439fed8a8475f17304faa8deb03
https://github.com/scummvm/scummvm/commit/59f8d31132783439fed8a8475f17304faa8deb03
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:34-07:00
Commit Message:
DREAMWEB: fixed offsets shifting for db/dw
Changed paths:
devtools/tasmrecover/tasm/parser.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index 3eb553f..2391aa4 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -222,8 +222,9 @@ class parser:
self.set_global(cmd0, op.const(self.fix_dollar(v)))
elif cmd1 == 'db' or cmd1 == 'dw' or cmd1 == 'dd':
binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd1[1]]
+ offset = len(self.binary_data)
self.binary_data += self.compact_data(binary_width, lex.parse_args(" ".join(cmd[2:])))
- self.set_global(cmd0.lower(), op.var(binary_width, len(self.binary_data)))
+ self.set_global(cmd0.lower(), op.var(binary_width, offset))
continue
elif cmd1 == 'proc':
name = cmd0.lower()
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index c5b349f..54de5a9 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -514,9 +514,9 @@ nofog:
static void receptionist(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
- context._cmp(context.data.byte(52), 1);
+ context._cmp(context.data.byte(51), 1);
if (!context.flags.z()) goto notsetcard;
- context._add(context.data.byte(52), 1);
+ context._add(context.data.byte(51), 1);
context.ds.byte(context.bx+7) = 1;
context.ds.word(context.bx+3) = 64;
notsetcard:
@@ -548,13 +548,13 @@ gotrecep:
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedrecep;
- context.data.byte(51) = 1;
+ context.data.byte(50) = 1;
nottalkedrecep:
return;
}
static void smokebloke(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(40), 0);
if (!context.flags.z()) goto notspokento;
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
@@ -594,7 +594,7 @@ static void attendant(Context & context) {
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalked;
- context.data.byte(48) = 1;
+ context.data.byte(47) = 1;
nottalked:
return;
}
@@ -609,7 +609,7 @@ static void manasleep(Context & context) {
}
static void eden(Context & context) {
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
addtopeoplelist(context);
@@ -618,9 +618,9 @@ notinbed:
}
static void edeninbath(Context & context) {
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.data.byte(41), 0);
if (context.flags.z()) goto notinbed;
- context._cmp(context.data.byte(43), 0);
+ context._cmp(context.data.byte(42), 0);
if (!context.flags.z()) goto notinbath;
showgamereel(context);
addtopeoplelist(context);
@@ -645,7 +645,7 @@ static void femalefan(Context & context) {
}
static void louis(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(40), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
addtopeoplelist(context);
@@ -654,7 +654,7 @@ notlouis1:
}
static void louischair(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(40), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
if (!context.flags.z()) goto notlouisanim;
@@ -742,7 +742,7 @@ notsmoket2:
context._add(context.ds.word(context.bx+3), 1);
gotsmoket:
showgamereel(context);
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.data.byte(45), 1);
if (!context.flags.z()) goto notgotgun;
context.ds.byte(context.bx+7) = 9;
notgotgun:
@@ -763,7 +763,7 @@ static void barwoman(Context & context) {
}
static void interviewer(Context & context) {
- context._cmp(context.data.word(23), 68);
+ context._cmp(context.data.word(21), 68);
if (!context.flags.z()) goto notgeneralstart;
context._add(context.ds.word(context.bx+3), 1);
notgeneralstart:
@@ -782,13 +782,13 @@ talking:
static void soldier1(Context & context) {
context._cmp(context.ds.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
- context.data.word(21) = 10;
+ context.data.word(19) = 10;
context._cmp(context.ds.word(context.bx+3), 30);
if (!context.flags.z()) goto notaftersshot;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 40);
if (!context.flags.z()) goto gotsoldframe;
- context.data.byte(56) = 2;
+ context.data.byte(55) = 2;
goto gotsoldframe;
notaftersshot:
checkspeed(context);
@@ -796,16 +796,16 @@ notaftersshot:
context._add(context.ds.word(context.bx+3), 1);
goto gotsoldframe;
soldierwait:
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(64), 1);
if (!context.flags.z()) goto gotsoldframe;
- context.data.word(21) = 10;
- context._cmp(context.data.byte(475), 2);
+ context.data.word(19) = 10;
+ context._cmp(context.data.byte(474), 2);
if (!context.flags.z()) goto gotsoldframe;
- context._cmp(context.data.byte(133), 4);
+ context._cmp(context.data.byte(132), 4);
if (!context.flags.z()) goto gotsoldframe;
context._add(context.ds.word(context.bx+3), 1);
- context.data.byte(65) = -1;
- context.data.byte(64) = 0;
+ context.data.byte(64) = -1;
+ context.data.byte(63) = 0;
gotsoldframe:
showgamereel(context);
addtopeoplelist(context);
@@ -824,22 +824,22 @@ static void rockstar(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 118);
if (!context.flags.z()) goto notbeforedead;
- context.data.byte(56) = 2;
+ context.data.byte(55) = 2;
goto gotrockframe;
notbeforedead:
context._cmp(context.ax, 79);
if (!context.flags.z()) goto gotrockframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(64), 1);
if (!context.flags.z()) goto notgunonrock;
- context.data.byte(65) = -1;
+ context.data.byte(64) = -1;
context.ax = 123;
goto gotrockframe;
notgunonrock:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 40);
if (!context.flags.z()) goto gotrockframe;
- context.data.byte(64) = 0;
+ context.data.byte(63) = 0;
context.ax = 79;
gotrockframe:
context.ds.word(context.bx+3) = context.ax;
@@ -848,17 +848,17 @@ rockspeed:
context._cmp(context.ds.word(context.bx+3), 78);
if (!context.flags.z()) goto notalkrock;
addtopeoplelist(context);
- context.data.byte(234) = 2;
- context.data.word(21) = 0;
+ context.data.byte(233) = 2;
+ context.data.word(19) = 0;
return;
notalkrock:
- context.data.word(21) = 2;
- context.data.byte(234) = 0;
- context.al = context.data.byte(149);
+ context.data.word(19) = 2;
+ context.data.byte(233) = 0;
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+2) = context.al;
return;
rockcombatend:
- context.data.byte(188) = 45;
+ context.data.byte(187) = 45;
showgamereel(context);
return;
}
@@ -873,10 +873,10 @@ static void helicopter(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 53);
if (!context.flags.z()) goto notbeforehdead;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 8);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 8);
if (context.flags.c()) goto waitabit;
- context.data.byte(56) = 2;
+ context.data.byte(55) = 2;
waitabit:
context.ax = 49;
goto gotheliframe;
@@ -884,39 +884,39 @@ notbeforehdead:
context._cmp(context.ax, 9);
if (!context.flags.z()) goto gotheliframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(64), 1);
if (!context.flags.z()) goto notgunonheli;
- context.data.byte(65) = -1;
+ context.data.byte(64) = -1;
context.ax = 55;
goto gotheliframe;
notgunonheli:
context.ax = 5;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 20);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 20);
if (!context.flags.z()) goto gotheliframe;
- context.data.byte(64) = 0;
+ context.data.byte(63) = 0;
context.ax = 9;
gotheliframe:
context.ds.word(context.bx+3) = context.ax;
helispeed:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(147);
context.ds.byte(context.bx+1) = context.al;
helicombatend:
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 9);
if (!context.flags.c()) goto notwaitingheli;
- context._cmp(context.data.byte(64), 7);
+ context._cmp(context.data.byte(63), 7);
if (context.flags.c()) goto notwaitingheli;
- context.data.byte(234) = 2;
- context.data.word(21) = 0;
+ context.data.byte(233) = 2;
+ context.data.word(19) = 0;
return;
notwaitingheli:
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.data.byte(233) = 0;
+ context.data.word(19) = 2;
return;
heliwon:
- context.data.byte(234) = 0;
+ context.data.byte(233) = 0;
return;
}
@@ -928,14 +928,14 @@ static void mugger(Context & context) {
if (context.flags.z()) goto endmugger2;
context._cmp(context.ax, 2);
if (!context.flags.z()) goto havesetwatch;
- context.data.word(21) = 175*2;
+ context.data.word(19) = 175*2;
havesetwatch:
checkspeed(context);
if (!context.flags.z()) goto notmugger;
context._add(context.ds.word(context.bx+3), 1);
notmugger:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(147);
context.ds.byte(context.bx+1) = context.al;
return;
endmugger1:
@@ -958,25 +958,25 @@ endmugger1:
context.push(context.es);
context.push(context.bx);
context.ds.word(context.bx+3) = 140;
- context.data.byte(475) = 2;
- context.data.byte(477) = 2;
+ context.data.byte(474) = 2;
+ context.data.byte(476) = 2;
findxyfrompath(context);
- context.data.byte(187) = 1;
+ context.data.byte(186) = 1;
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'A';
findexobject(context);
- context.data.byte(99) = context.al;
- context.data.byte(102) = 4;
+ context.data.byte(98) = context.al;
+ context.data.byte(101) = 4;
removeobfrominv(context);
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'B';
findexobject(context);
- context.data.byte(99) = context.al;
- context.data.byte(102) = 4;
+ context.data.byte(98) = context.al;
+ context.data.byte(101) = 4;
removeobfrominv(context);
makemainscreen(context);
context.al = 48;
@@ -985,7 +985,7 @@ endmugger1:
context.cx = 70;
context.dx = 10;
setuptimeduse(context);
- context.data.byte(45) = 1;
+ context.data.byte(44) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -1000,8 +1000,8 @@ static void aide(Context & context) {
}
static void businessman(Context & context) {
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.data.byte(233) = 0;
+ context.data.word(19) = 2;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 2);
if (!context.flags.z()) goto notfirstbiz;
@@ -1028,23 +1028,23 @@ notfirstbiz:
context._add(context.ax, 1);
context._cmp(context.ax, 48);
if (!context.flags.z()) goto notbeforedeadb;
- context.data.byte(56) = 2;
+ context.data.byte(55) = 2;
goto gotbusframe;
notbeforedeadb:
context._cmp(context.ax, 15);
if (!context.flags.z()) goto buscombatwon;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 3);
+ context._cmp(context.data.byte(64), 3);
if (!context.flags.z()) goto notshieldonbus;
- context.data.byte(65) = -1;
- context.data.byte(64) = 0;
+ context.data.byte(64) = -1;
+ context.data.byte(63) = 0;
context.ax = 51;
goto gotbusframe;
notshieldonbus:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 20);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 20);
if (!context.flags.z()) goto gotbusframe;
- context.data.byte(64) = 0;
+ context.data.byte(63) = 0;
context.ax = 15;
goto gotbusframe;
buscombatwon:
@@ -1060,10 +1060,10 @@ buscombatwon:
turnpathon(context);
context.al = 3;
turnpathoff(context);
- context.data.byte(475) = 5;
- context.data.byte(477) = 5;
+ context.data.byte(474) = 5;
+ context.data.byte(476) = 5;
findxyfrompath(context);
- context.data.byte(187) = 1;
+ context.data.byte(186) = 1;
context.es = context.pop();
context.bx = context.pop();
context.ax = 92;
@@ -1072,19 +1072,19 @@ gotbusframe:
context.ds.word(context.bx+3) = context.ax;
busspeed:
showgamereel(context);
- context.al = context.data.byte(149);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+2) = context.al;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 14);
if (!context.flags.z()) goto buscombatend;
- context.data.word(21) = 0;
- context.data.byte(234) = 2;
+ context.data.word(19) = 0;
+ context.data.byte(233) = 2;
return;
buscombatend:
return;
buscombatwonend:
- context.data.byte(234) = 0;
- context.data.word(21) = 0;
+ context.data.byte(233) = 0;
+ context.data.word(19) = 0;
return;
}
@@ -1108,32 +1108,32 @@ notfirstpool:
context._cmp(context.ax, 122);
if (!context.flags.z()) goto notendguard1;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 2);
+ context._cmp(context.data.byte(64), 2);
if (!context.flags.z()) goto notaxeonpool;
- context.data.byte(65) = -1;
+ context.data.byte(64) = -1;
context.ax = 122;
goto gotguardframe;
notaxeonpool:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 40);
if (!context.flags.z()) goto gotguardframe;
- context.data.byte(64) = 0;
+ context.data.byte(63) = 0;
context.ax = 195;
goto gotguardframe;
notendguard1:
context._cmp(context.ax, 147);
if (!context.flags.z()) goto gotguardframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(64), 1);
if (!context.flags.z()) goto notgunonpool;
- context.data.byte(65) = -1;
+ context.data.byte(64) = -1;
context.ax = 147;
goto gotguardframe;
notgunonpool:
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 40);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 40);
if (!context.flags.z()) goto gotguardframe;
- context.data.byte(64) = 0;
+ context.data.byte(63) = 0;
context.ax = 220;
gotguardframe:
context.ds.word(context.bx+3) = context.ax;
@@ -1144,16 +1144,16 @@ guardspeed:
if (context.flags.z()) goto iswaitingpool;
context._cmp(context.ax, 146);
if (context.flags.z()) goto iswaitingpool;
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.data.byte(233) = 0;
+ context.data.word(19) = 2;
return;
iswaitingpool:
- context.data.byte(234) = 2;
- context.data.word(21) = 0;
+ context.data.byte(233) = 2;
+ context.data.word(19) = 0;
return;
combatover1:
- context.data.word(21) = 0;
- context.data.byte(234) = 0;
+ context.data.word(19) = 0;
+ context.data.byte(233) = 0;
context.al = 0;
turnpathon(context);
context.al = 1;
@@ -1161,13 +1161,13 @@ combatover1:
return;
combatover2:
showgamereel(context);
- context.data.word(21) = 2;
- context.data.byte(234) = 0;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 100);
+ context.data.word(19) = 2;
+ context.data.byte(233) = 0;
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 100);
if (context.flags.c()) goto doneover2;
- context.data.word(21) = 0;
- context.data.byte(56) = 2;
+ context.data.word(19) = 0;
+ context.data.byte(55) = 2;
doneover2:
return;
}
@@ -1179,20 +1179,20 @@ static void security(Context & context) {
if (!context.flags.z()) goto notaftersec;
return;
notaftersec:
- context.data.word(21) = 10;
+ context.data.word(19) = 10;
checkspeed(context);
if (!context.flags.z()) goto gotsecurframe;
context._add(context.ds.word(context.bx+3), 1);
goto gotsecurframe;
securwait:
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(64), 1);
if (!context.flags.z()) goto gotsecurframe;
- context.data.word(21) = 10;
- context._cmp(context.data.byte(475), 9);
+ context.data.word(19) = 10;
+ context._cmp(context.data.byte(474), 9);
if (!context.flags.z()) goto gotsecurframe;
- context._cmp(context.data.byte(133), 0);
+ context._cmp(context.data.byte(132), 0);
if (!context.flags.z()) goto gotsecurframe;
- context.data.byte(65) = -1;
+ context.data.byte(64) = -1;
context._add(context.ds.word(context.bx+3), 1);
gotsecurframe:
showgamereel(context);
@@ -1206,13 +1206,13 @@ static void heavy(Context & context) {
context.ds.byte(context.bx+7) = context.al;
context._cmp(context.ds.word(context.bx+3), 43);
if (context.flags.z()) goto heavywait;
- context.data.word(21) = 10;
+ context.data.word(19) = 10;
context._cmp(context.ds.word(context.bx+3), 70);
if (!context.flags.z()) goto notafterhshot;
- context._add(context.data.byte(64), 1);
- context._cmp(context.data.byte(64), 80);
+ context._add(context.data.byte(63), 1);
+ context._cmp(context.data.byte(63), 80);
if (!context.flags.z()) goto gotheavyframe;
- context.data.byte(56) = 2;
+ context.data.byte(55) = 2;
goto gotheavyframe;
notafterhshot:
checkspeed(context);
@@ -1220,15 +1220,15 @@ notafterhshot:
context._add(context.ds.word(context.bx+3), 1);
goto gotheavyframe;
heavywait:
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(64), 1);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.data.byte(475), 5);
+ context._cmp(context.data.byte(474), 5);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.data.byte(133), 4);
+ context._cmp(context.data.byte(132), 4);
if (!context.flags.z()) goto gotheavyframe;
- context.data.byte(65) = -1;
+ context.data.byte(64) = -1;
context._add(context.ds.word(context.bx+3), 1);
- context.data.byte(64) = 0;
+ context.data.byte(63) = 0;
gotheavyframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1247,11 +1247,11 @@ static void bossman(Context & context) {
context._cmp(context.ax, 41);
if (!context.flags.z()) goto gotallboss;
context.ax = 0;
- context._add(context.data.byte(46), 1);
+ context._add(context.data.byte(45), 1);
context.ds.byte(context.bx+7) = 10;
goto gotallboss;
firstdes:
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.data.byte(45), 1);
if (context.flags.z()) goto gotallboss;
context.push(context.ax);
randomnumber(context);
@@ -1262,7 +1262,7 @@ firstdes:
context.ax = 0;
goto gotallboss;
secdes:
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.data.byte(45), 1);
if (context.flags.z()) goto gotallboss;
context.ax = 0;
gotallboss:
@@ -1273,7 +1273,7 @@ notboss:
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedboss;
- context.data.byte(50) = 1;
+ context.data.byte(49) = 1;
nottalkedboss:
return;
}
@@ -1317,16 +1317,16 @@ cantdrip2:
}
static void keeper(Context & context) {
- context._cmp(context.data.byte(54), 0);
+ context._cmp(context.data.byte(53), 0);
if (!context.flags.z()) goto notwaiting;
- context._cmp(context.data.word(23), 190);
+ context._cmp(context.data.word(21), 190);
if (context.flags.c()) goto waiting;
- context._add(context.data.byte(54), 1);
+ context._add(context.data.byte(53), 1);
context.ah = context.ds.byte(context.bx+7);
context._and(context.ah, 127);
- context._cmp(context.ah, context.data.byte(66));
+ context._cmp(context.ah, context.data.byte(65));
if (context.flags.z()) goto notdiff;
- context.al = context.data.byte(66);
+ context.al = context.data.byte(65);
context.ds.byte(context.bx+7) = context.al;
notdiff:
return;
@@ -1379,16 +1379,16 @@ gotintrom1:
context.ds.word(context.bx+3) = context.ax;
context._cmp(context.ax, 121);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(139), 1);
+ context._add(context.data.byte(138), 1);
context.push(context.es);
context.push(context.bx);
intro1text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(139), 8);
+ context._cmp(context.data.byte(138), 8);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._add(context.data.byte(148), 10);
+ context.data.byte(185) = 1;
introm1fin:
showgamereel(context);
return;
@@ -1446,7 +1446,7 @@ notbang:
slowgates:
context._cmp(context.ax, 120);
if (!context.flags.z()) goto gotgates;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
context.ax = 119;
gotgates:
context.ds.word(context.bx+3) = context.ax;
@@ -1482,12 +1482,12 @@ static void intromagic3(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 218);
if (!context.flags.z()) goto gotintrom3;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
gotintrom3:
context.ds.word(context.bx+3) = context.ax;
introm3fin:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(147);
context.ds.byte(context.bx+1) = context.al;
return;
}
@@ -1499,15 +1499,15 @@ static void intromonks1(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 80);
if (!context.flags.z()) goto notendmonk1;
- context._add(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._add(context.data.byte(148), 10);
+ context.data.byte(185) = 1;
showgamereel(context);
return;
notendmonk1:
context._cmp(context.ax, 30);
if (!context.flags.z()) goto gotintromonk1;
- context._sub(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._sub(context.data.byte(148), 10);
+ context.data.byte(185) = 1;
context.ax = 51;
gotintromonk1:
context.ds.word(context.bx+3) = context.ax;
@@ -1531,7 +1531,7 @@ waitstep:
context.ds.byte(context.bx+6) = -20;
intromonk1fin:
showgamereel(context);
- context.al = context.data.byte(149);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+2) = context.al;
return;
}
@@ -1543,13 +1543,13 @@ static void intromonks2(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 87);
if (!context.flags.z()) goto nottalk1;
- context._add(context.data.byte(139), 1);
+ context._add(context.data.byte(138), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(139), 19);
+ context._cmp(context.data.byte(138), 19);
if (!context.flags.z()) goto notlasttalk1;
context.ax = 87;
goto gotintromonk2;
@@ -1559,13 +1559,13 @@ notlasttalk1:
nottalk1:
context._cmp(context.ax, 110);
if (!context.flags.z()) goto notraisearm;
- context._add(context.data.byte(139), 1);
+ context._add(context.data.byte(138), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(139), 35);
+ context._cmp(context.data.byte(138), 35);
if (!context.flags.z()) goto notlastraise;
context.ax = 111;
goto gotintromonk2;
@@ -1575,7 +1575,7 @@ notlastraise:
notraisearm:
context._cmp(context.ax, 176);
if (!context.flags.z()) goto notendmonk2;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
goto gotintromonk2;
notendmonk2:
context._cmp(context.ax, 125);
@@ -1593,7 +1593,7 @@ static void handclap(Context & context) {
}
static void monks2text(Context & context) {
- context._cmp(context.data.byte(139), 1);
+ context._cmp(context.data.byte(138), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
context.bl = 36;
@@ -1601,7 +1601,7 @@ static void monks2text(Context & context) {
context.cx = 100;
goto gotmonks2text;
notmonk2text1:
- context._cmp(context.data.byte(139), 4);
+ context._cmp(context.data.byte(138), 4);
if (!context.flags.z()) goto notmonk2text2;
context.al = 9;
context.bl = 36;
@@ -1609,7 +1609,7 @@ notmonk2text1:
context.cx = 100;
goto gotmonks2text;
notmonk2text2:
- context._cmp(context.data.byte(139), 7);
+ context._cmp(context.data.byte(138), 7);
if (!context.flags.z()) goto notmonk2text3;
context.al = 10;
context.bl = 36;
@@ -1617,7 +1617,7 @@ notmonk2text2:
context.cx = 100;
goto gotmonks2text;
notmonk2text3:
- context._cmp(context.data.byte(139), 10);
+ context._cmp(context.data.byte(138), 10);
if (!context.flags.z()) goto notmonk2text4;
context.al = 11;
context.bl = 0;
@@ -1625,7 +1625,7 @@ notmonk2text3:
context.cx = 100;
goto gotmonks2text;
notmonk2text4:
- context._cmp(context.data.byte(139), 13);
+ context._cmp(context.data.byte(138), 13);
if (!context.flags.z()) goto notmonk2text5;
context.al = 12;
context.bl = 0;
@@ -1633,7 +1633,7 @@ notmonk2text4:
context.cx = 100;
goto gotmonks2text;
notmonk2text5:
- context._cmp(context.data.byte(139), 16);
+ context._cmp(context.data.byte(138), 16);
if (!context.flags.z()) goto notmonk2text6;
context.al = 13;
context.bl = 0;
@@ -1641,7 +1641,7 @@ notmonk2text5:
context.cx = 100;
goto gotmonks2text;
notmonk2text6:
- context._cmp(context.data.byte(139), 19);
+ context._cmp(context.data.byte(138), 19);
if (!context.flags.z()) goto notmonk2text7;
context.al = 14;
context.bl = 36;
@@ -1651,7 +1651,7 @@ notmonk2text6:
context.ah = 82;
{ setuptimedtemp(context); return; };
notmonk2text7:
- context._cmp(context.data.byte(139), 22);
+ context._cmp(context.data.byte(138), 22);
if (!context.flags.z()) goto notmonk2text8;
context.al = 15;
context.bl = 36;
@@ -1659,7 +1659,7 @@ notmonk2text7:
context.cx = 100;
goto gotmonks2text;
notmonk2text8:
- context._cmp(context.data.byte(139), 25);
+ context._cmp(context.data.byte(138), 25);
if (!context.flags.z()) goto notmonk2text9;
context.al = 16;
context.bl = 36;
@@ -1667,7 +1667,7 @@ notmonk2text8:
context.cx = 100;
goto gotmonks2text;
notmonk2text9:
- context._cmp(context.data.byte(139), 28);
+ context._cmp(context.data.byte(138), 28);
if (!context.flags.z()) goto notmonk2text10;
context.al = 17;
context.bl = 36;
@@ -1675,7 +1675,7 @@ notmonk2text9:
context.cx = 100;
goto gotmonks2text;
notmonk2text10:
- context._cmp(context.data.byte(139), 31);
+ context._cmp(context.data.byte(138), 31);
if (!context.flags.z()) goto notmonk2text11;
context.al = 18;
context.bl = 36;
@@ -1693,7 +1693,7 @@ gotmonks2text:
}
static void intro1text(Context & context) {
- context._cmp(context.data.byte(139), 2);
+ context._cmp(context.data.byte(138), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
context.bl = 34;
@@ -1701,7 +1701,7 @@ static void intro1text(Context & context) {
context.cx = 90;
goto gotintro1text;
notintro1text1:
- context._cmp(context.data.byte(139), 4);
+ context._cmp(context.data.byte(138), 4);
if (!context.flags.z()) goto notintro1text2;
context.al = 41;
context.bl = 34;
@@ -1709,7 +1709,7 @@ notintro1text1:
context.cx = 90;
goto gotintro1text;
notintro1text2:
- context._cmp(context.data.byte(139), 6);
+ context._cmp(context.data.byte(138), 6);
if (!context.flags.z()) goto notintro1text3;
context.al = 42;
context.bl = 34;
@@ -1783,16 +1783,16 @@ static void monkandryan(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 83);
if (!context.flags.z()) goto gotmonkryan;
- context._add(context.data.byte(139), 1);
+ context._add(context.data.byte(138), 1);
context.push(context.es);
context.push(context.bx);
textformonk(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 77;
- context._cmp(context.data.byte(139), 57);
+ context._cmp(context.data.byte(138), 57);
if (!context.flags.z()) goto gotmonkryan;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
gotmonkryan:
context.ds.word(context.bx+3) = context.ax;
@@ -1808,9 +1808,9 @@ static void endgameseq(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 51);
if (!context.flags.z()) goto gotendseq;
- context._cmp(context.data.byte(139), 140);
+ context._cmp(context.data.byte(138), 140);
if (context.flags.z()) goto gotendseq;
- context._add(context.data.byte(139), 1);
+ context._add(context.data.byte(138), 1);
context.push(context.es);
context.push(context.bx);
textforend(context);
@@ -1836,18 +1836,18 @@ notfadedown:
context.push(context.bx);
context.push(context.ax);
fadescreendowns(context);
- context.data.byte(387) = 7;
- context.data.byte(388) = 1;
+ context.data.byte(386) = 7;
+ context.data.byte(387) = 1;
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
notfadeend:
context._cmp(context.ax, 340);
if (!context.flags.z()) goto notendseq;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
notendseq:
showgamereel(context);
- context.al = context.data.byte(149);
+ context.al = context.data.byte(148);
context.ds.byte(context.bx+2) = context.al;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 145);
@@ -1862,17 +1862,17 @@ static void rollendcredits(Context & context) {
context.al = 16;
context.ah = 255;
playchannel0(context);
- context.data.byte(386) = 7;
- context.data.byte(387) = 0;
- context.data.byte(388) = -1;
+ context.data.byte(385) = 7;
+ context.data.byte(386) = 0;
+ context.data.byte(387) = -1;
context.cl = 160;
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
multiget(context);
- context.es = context.data.word(466);
+ context.es = context.data.word(464);
context.si = 3*2;
context.ax = context.ds.word(context.si);
context.si = context.ax;
@@ -1881,7 +1881,7 @@ static void rollendcredits(Context & context) {
endcredits1:
context.push(context.cx);
context.bx = 10;
- context.cx = context.data.word(77);
+ context.cx = context.data.word(75);
endcredits2:
context.push(context.cx);
context.push(context.si);
@@ -1893,7 +1893,7 @@ endcredits2:
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
multiput(context);
vsync(context);
@@ -1912,7 +1912,7 @@ onelot:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.data.word(77));
+ context._add(context.bx, context.data.word(75));
context.cx = context.pop();
if (--context.cx) goto onelot;
vsync(context);
@@ -1949,8 +1949,8 @@ gotnext:
static void priest(Context & context) {
context._cmp(context.ds.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
- context.data.byte(234) = 0;
- context.data.word(21) = 2;
+ context.data.byte(233) = 0;
+ context.data.word(19) = 2;
checkspeed(context);
if (!context.flags.z()) goto priestwait;
context._add(context.ds.word(context.bx+3), 1);
@@ -1978,7 +1978,7 @@ notendtelly:
}
static void madman(Context & context) {
- context.data.word(21) = 2;
+ context.data.word(19) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
context.ax = context.ds.word(context.bx+3);
@@ -1989,35 +1989,35 @@ static void madman(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.ax);
- context.dx = 2260;
+ context.dx = 2247;
loadtemptext(context);
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(64) = -1;
- context.data.byte(69) = 0;
+ context.data.byte(63) = -1;
+ context.data.byte(68) = 0;
notfirstmad:
context._add(context.ax, 1);
context._cmp(context.ax, 294);
if (context.flags.z()) goto madmanspoken;
context._cmp(context.ax, 66);
if (!context.flags.z()) goto nomadspeak;
- context._add(context.data.byte(64), 1);
+ context._add(context.data.byte(63), 1);
context.push(context.es);
context.push(context.bx);
madmantext(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 53;
- context._cmp(context.data.byte(64), 62);
+ context._cmp(context.data.byte(63), 62);
if (context.flags.c()) goto nomadspeak;
- context._cmp(context.data.byte(64), 68);
+ context._cmp(context.data.byte(63), 68);
if (context.flags.z()) goto killryan;
- context._cmp(context.data.byte(65), 8);
+ context._cmp(context.data.byte(64), 8);
if (!context.flags.z()) goto nomadspeak;
- context.data.byte(64) = 70;
- context.data.byte(65) = -1;
- context.data.byte(53) = 1;
+ context.data.byte(63) = 70;
+ context.data.byte(64) = -1;
+ context.data.byte(52) = 1;
context.ax = 67;
goto nomadspeak;
killryan:
@@ -2026,14 +2026,14 @@ nomadspeak:
context.ds.word(context.bx+3) = context.ax;
nomadspeed:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(147);
context.ds.byte(context.bx+1) = context.al;
madmode(context);
return;
madmanspoken:
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(390), 1);
if (context.flags.z()) goto alreadywon;
- context.data.byte(391) = 1;
+ context.data.byte(390) = 1;
context.push(context.es);
context.push(context.bx);
getridoftemptext(context);
@@ -2042,18 +2042,18 @@ madmanspoken:
alreadywon:
return;
ryansded:
- context.data.byte(56) = 2;
+ context.data.byte(55) = 2;
showgamereel(context);
return;
}
static void madmantext(Context & context) {
- context._cmp(context.data.byte(64), 61);
+ context._cmp(context.data.byte(63), 61);
if (!context.flags.c()) goto nomadtext;
- context.al = context.data.byte(64);
+ context.al = context.data.byte(63);
context._and(context.al, 3);
if (!context.flags.z()) goto nomadtext;
- context.al = context.data.byte(64);
+ context.al = context.data.byte(63);
context._shr(context.al, 1);
context._shr(context.al, 1);
context._add(context.al, 47);
@@ -2068,13 +2068,13 @@ nomadtext:
}
static void madmode(Context & context) {
- context.data.word(21) = 2;
- context.data.byte(234) = 0;
- context._cmp(context.data.byte(64), 63);
+ context.data.word(19) = 2;
+ context.data.byte(233) = 0;
+ context._cmp(context.data.byte(63), 63);
if (context.flags.c()) goto iswatchmad;
- context._cmp(context.data.byte(64), 68);
+ context._cmp(context.data.byte(63), 68);
if (!context.flags.c()) goto iswatchmad;
- context.data.byte(234) = 2;
+ context.data.byte(233) = 2;
iswatchmad:
return;
}
@@ -2100,7 +2100,7 @@ nopriesttext:
}
static void textforend(Context & context) {
- context._cmp(context.data.byte(139), 20);
+ context._cmp(context.data.byte(138), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
context.bl = 34;
@@ -2108,7 +2108,7 @@ static void textforend(Context & context) {
context.cx = 60;
goto gotendtext;
notendtext1:
- context._cmp(context.data.byte(139), 65);
+ context._cmp(context.data.byte(138), 65);
if (!context.flags.z()) goto notendtext2;
context.al = 1;
context.bl = 34;
@@ -2116,7 +2116,7 @@ notendtext1:
context.cx = 60;
goto gotendtext;
notendtext2:
- context._cmp(context.data.byte(139), 110);
+ context._cmp(context.data.byte(138), 110);
if (!context.flags.z()) goto notendtext3;
context.al = 2;
context.bl = 34;
@@ -2133,7 +2133,7 @@ gotendtext:
}
static void textformonk(Context & context) {
- context._cmp(context.data.byte(139), 1);
+ context._cmp(context.data.byte(138), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
context.bl = 68;
@@ -2141,7 +2141,7 @@ static void textformonk(Context & context) {
context.cx = 120;
goto gotmonktext;
notmonktext1:
- context._cmp(context.data.byte(139), 5);
+ context._cmp(context.data.byte(138), 5);
if (!context.flags.z()) goto notmonktext2;
context.al = 20;
context.bl = 68;
@@ -2149,7 +2149,7 @@ notmonktext1:
context.cx = 120;
goto gotmonktext;
notmonktext2:
- context._cmp(context.data.byte(139), 9);
+ context._cmp(context.data.byte(138), 9);
if (!context.flags.z()) goto notmonktext3;
context.al = 21;
context.bl = 48;
@@ -2157,7 +2157,7 @@ notmonktext2:
context.cx = 120;
goto gotmonktext;
notmonktext3:
- context._cmp(context.data.byte(139), 13);
+ context._cmp(context.data.byte(138), 13);
if (!context.flags.z()) goto notmonktext4;
context.al = 22;
context.bl = 68;
@@ -2165,7 +2165,7 @@ notmonktext3:
context.cx = 120;
goto gotmonktext;
notmonktext4:
- context._cmp(context.data.byte(139), 17);
+ context._cmp(context.data.byte(138), 17);
if (!context.flags.z()) goto notmonktext5;
context.al = 23;
context.bl = 68;
@@ -2173,7 +2173,7 @@ notmonktext4:
context.cx = 120;
goto gotmonktext;
notmonktext5:
- context._cmp(context.data.byte(139), 21);
+ context._cmp(context.data.byte(138), 21);
if (!context.flags.z()) goto notmonktext6;
context.al = 24;
context.bl = 68;
@@ -2181,7 +2181,7 @@ notmonktext5:
context.cx = 120;
goto gotmonktext;
notmonktext6:
- context._cmp(context.data.byte(139), 25);
+ context._cmp(context.data.byte(138), 25);
if (!context.flags.z()) goto notmonktext7;
context.al = 25;
context.bl = 68;
@@ -2189,7 +2189,7 @@ notmonktext6:
context.cx = 120;
goto gotmonktext;
notmonktext7:
- context._cmp(context.data.byte(139), 29);
+ context._cmp(context.data.byte(138), 29);
if (!context.flags.z()) goto notmonktext8;
context.al = 26;
context.bl = 68;
@@ -2197,7 +2197,7 @@ notmonktext7:
context.cx = 120;
goto gotmonktext;
notmonktext8:
- context._cmp(context.data.byte(139), 33);
+ context._cmp(context.data.byte(138), 33);
if (!context.flags.z()) goto notmonktext9;
context.al = 27;
context.bl = 68;
@@ -2205,7 +2205,7 @@ notmonktext8:
context.cx = 120;
goto gotmonktext;
notmonktext9:
- context._cmp(context.data.byte(139), 37);
+ context._cmp(context.data.byte(138), 37);
if (!context.flags.z()) goto notmonktext10;
context.al = 28;
context.bl = 68;
@@ -2213,7 +2213,7 @@ notmonktext9:
context.cx = 120;
goto gotmonktext;
notmonktext10:
- context._cmp(context.data.byte(139), 41);
+ context._cmp(context.data.byte(138), 41);
if (!context.flags.z()) goto notmonktext11;
context.al = 29;
context.bl = 68;
@@ -2221,7 +2221,7 @@ notmonktext10:
context.cx = 120;
goto gotmonktext;
notmonktext11:
- context._cmp(context.data.byte(139), 45);
+ context._cmp(context.data.byte(138), 45);
if (!context.flags.z()) goto notmonktext12;
context.al = 30;
context.bl = 68;
@@ -2229,7 +2229,7 @@ notmonktext11:
context.cx = 120;
goto gotmonktext;
notmonktext12:
- context._cmp(context.data.byte(139), 49);
+ context._cmp(context.data.byte(138), 49);
if (!context.flags.z()) goto notmonktext13;
context.al = 31;
context.bl = 68;
@@ -2237,7 +2237,7 @@ notmonktext12:
context.cx = 220;
goto gotmonktext;
notmonktext13:
- context._cmp(context.data.byte(139), 53);
+ context._cmp(context.data.byte(138), 53);
if (!context.flags.z()) goto notendtitles;
fadescreendowns(context);
notendtitles:
@@ -2251,7 +2251,7 @@ oktalk:
}
static void drunk(Context & context) {
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto trampgone;
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
@@ -2321,7 +2321,7 @@ nocopper:
}
static void sparky(Context & context) {
- context._cmp(context.data.word(16), 0);
+ context._cmp(context.data.word(14), 0);
if (context.flags.z()) goto animsparky;
context.ds.byte(context.bx+7) = 3;
goto animsparky;
@@ -2348,7 +2348,7 @@ finishsparky:
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedsparky;
- context.data.byte(49) = 1;
+ context.data.byte(48) = 1;
nottalkedsparky:
return;
}
@@ -2364,9 +2364,9 @@ notrainyet:
randomnumber(context);
context._cmp(context.al, 253);
if (context.flags.c()) goto notrainatall;
- context._cmp(context.data.byte(475), 5);
+ context._cmp(context.data.byte(474), 5);
if (!context.flags.z()) goto notrainatall;
- context._cmp(context.data.byte(477), 5);
+ context._cmp(context.data.byte(476), 5);
if (!context.flags.z()) goto notrainatall;
context.ax = 5;
gottrainframe:
@@ -2382,15 +2382,15 @@ static void addtopeoplelist(Context & context) {
context.push(context.bx);
context.cl = context.ds.byte(context.bx+7);
context.ax = context.ds.word(context.bx+3);
- context.bx = context.data.word(18);
- context.es = context.data.word(412);
+ context.bx = context.data.word(16);
+ context.es = context.data.word(410);
context.ds.word(context.bx) = context.ax;
context.ax = context.pop();
context.ds.word(context.bx+2) = context.ax;
context.ds.byte(context.bx+4) = context.cl;
context.bx = context.pop();
context.es = context.pop();
- context._add(context.data.word(18), 5);
+ context._add(context.data.word(16), 5);
return;
}
@@ -2398,20 +2398,20 @@ static void showgamereel(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
- context.data.word(239) = context.ax;
+ context.data.word(237) = context.ax;
context.push(context.es);
context.push(context.bx);
plotreel(context);
context.bx = context.pop();
context.es = context.pop();
- context.ax = context.data.word(239);
+ context.ax = context.data.word(237);
context.ds.word(context.bx+3) = context.ax;
noshow:
return;
}
static void checkspeed(Context & context) {
- context._cmp(context.data.byte(65), -1);
+ context._cmp(context.data.byte(64), -1);
if (!context.flags.z()) goto forcenext;
context._add(context.ds.byte(context.bx+6), 1);
context.al = context.ds.byte(context.bx+6);
@@ -2428,7 +2428,7 @@ forcenext:
}
static void clearsprites(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = 255;
context.cx = 32*16;
@@ -2437,7 +2437,7 @@ static void clearsprites(Context & context) {
}
static void makesprite(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
_tmp17:
context._cmp(context.ds.byte(context.bx+15), 255);
@@ -2464,11 +2464,11 @@ static void delsprite(Context & context) {
}
static void spriteupdate(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
- context.al = context.data.byte(63);
+ context.al = context.data.byte(62);
context.ds.byte(context.bx+31) = context.al;
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
_tmp18:
@@ -2487,7 +2487,7 @@ _tmp18:
_tmp18a:
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(186), 1);
+ context._cmp(context.data.byte(185), 1);
if (context.flags.z()) goto _tmp18b;
context._add(context.bx, 32);
if (--context.cx) goto _tmp18;
@@ -2496,11 +2496,11 @@ _tmp18b:
}
static void printsprites(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.cx = 0;
priorityloop:
context.push(context.cx);
- context.data.byte(182) = context.cl;
+ context.data.byte(181) = context.cl;
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
prtspriteloop:
@@ -2509,7 +2509,7 @@ prtspriteloop:
context.ax = context.ds.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto skipsprite;
- context.al = context.data.byte(182);
+ context.al = context.data.byte(181);
context._cmp(context.al, context.ds.byte(context.bx+23));
if (!context.flags.z()) goto skipsprite;
context._cmp(context.ds.byte(context.bx+31), 1);
@@ -2539,7 +2539,7 @@ static void printasprite(Context & context) {
context.ah = 255;
notnegative1:
context.bx = context.ax;
- context._add(context.bx, context.data.word(119));
+ context._add(context.bx, context.data.word(117));
context.al = context.ds.byte(context.si+10);
context.ah = 0;
context._cmp(context.al, 220);
@@ -2547,14 +2547,14 @@ notnegative1:
context.ah = 255;
notnegative2:
context.di = context.ax;
- context._add(context.di, context.data.word(117));
+ context._add(context.di, context.data.word(115));
context.al = context.ds.byte(context.si+15);
context.ah = 0;
context._cmp(context.ds.byte(context.si+30), 0);
if (context.flags.z()) goto steadyframe;
context.ah = 8;
steadyframe:
- context._cmp(context.data.byte(182), 6);
+ context._cmp(context.data.byte(181), 6);
if (!context.flags.z()) goto notquickp;
notquickp:
showframe(context);
@@ -2589,7 +2589,7 @@ static void checkone(Context & context) {
context.cx = 3;
context._mul(context.cx);
context.si = context.ax;
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context._add(context.si, 0+(228*13)+32+60+(32*32));
context._lodsw();
context.cx = context.ax;
@@ -2599,30 +2599,30 @@ static void checkone(Context & context) {
}
static void findsource(Context & context) {
- context.ax = context.data.word(160);
+ context.ax = context.data.word(158);
context._cmp(context.ax, 160);
if (!context.flags.c()) goto over1000;
- context.ds = context.data.word(430);
- context.data.word(244) = 0;
+ context.ds = context.data.word(428);
+ context.data.word(242) = 0;
return;
over1000:
context._cmp(context.ax, 320);
if (!context.flags.c()) goto over1001;
- context.ds = context.data.word(432);
- context.data.word(244) = 160;
+ context.ds = context.data.word(430);
+ context.data.word(242) = 160;
return;
over1001:
- context.ds = context.data.word(434);
- context.data.word(244) = 320;
+ context.ds = context.data.word(432);
+ context.data.word(242) = 320;
return;
}
static void initman(Context & context) {
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
+ context.al = context.data.byte(150);
+ context.ah = context.data.byte(151);
context.si = context.ax;
context.cx = 49464;
- context.dx = context.data.word(414);
+ context.dx = context.data.word(412);
context.di = 0;
makesprite(context);
context.ds.byte(context.bx+23) = 4;
@@ -2632,11 +2632,11 @@ static void initman(Context & context) {
}
static void mainman(Context & context) {
- context._cmp(context.data.byte(187), 1);
+ context._cmp(context.data.byte(186), 1);
if (!context.flags.z()) goto notinnewroom;
- context.data.byte(187) = 0;
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
+ context.data.byte(186) = 0;
+ context.al = context.data.byte(150);
+ context.ah = context.data.byte(151);
context.ds.word(context.bx+10) = context.ax;
context.ds.byte(context.bx+29) = 0;
goto executewalk;
@@ -2647,24 +2647,24 @@ notinnewroom:
return;
executewalk:
context.ds.byte(context.bx+22) = 0;
- context.al = context.data.byte(135);
- context._cmp(context.al, context.data.byte(133));
+ context.al = context.data.byte(134);
+ context._cmp(context.al, context.data.byte(132));
if (context.flags.z()) goto facingok;
aboutturn(context);
goto notwalk;
facingok:
- context._cmp(context.data.byte(136), 0);
+ context._cmp(context.data.byte(135), 0);
if (context.flags.z()) goto alreadyturned;
- context._cmp(context.data.byte(492), 254);
+ context._cmp(context.data.byte(491), 254);
if (!context.flags.z()) goto alreadyturned;
- context.data.byte(473) = 1;
- context.al = context.data.byte(133);
- context._cmp(context.al, context.data.byte(134));
+ context.data.byte(472) = 1;
+ context.al = context.data.byte(132);
+ context._cmp(context.al, context.data.byte(133));
if (!context.flags.z()) goto alreadyturned;
checkforexit(context);
alreadyturned:
- context.data.byte(136) = 0;
- context._cmp(context.data.byte(492), 254);
+ context.data.byte(135) = 0;
+ context._cmp(context.data.byte(491), 254);
if (!context.flags.z()) goto walkman;
context.ds.byte(context.bx+29) = 0;
goto notwalk;
@@ -2677,9 +2677,9 @@ walkman:
notanimend1:
context.ds.byte(context.bx+29) = context.al;
walking(context);
- context._cmp(context.data.byte(492), 254);
+ context._cmp(context.data.byte(491), 254);
if (context.flags.z()) goto afterwalk;
- context.al = context.data.byte(133);
+ context.al = context.data.byte(132);
context._and(context.al, 1);
if (context.flags.z()) goto isdouble;
context.al = context.ds.byte(context.bx+29);
@@ -2690,18 +2690,18 @@ notanimend1:
isdouble:
walking(context);
afterwalk:
- context._cmp(context.data.byte(492), 254);
+ context._cmp(context.data.byte(491), 254);
if (!context.flags.z()) goto notwalk;
- context.al = context.data.byte(135);
- context._cmp(context.al, context.data.byte(133));
+ context.al = context.data.byte(134);
+ context._cmp(context.al, context.data.byte(132));
if (!context.flags.z()) goto notwalk;
- context.data.byte(473) = 1;
- context.al = context.data.byte(133);
- context._cmp(context.al, context.data.byte(134));
+ context.data.byte(472) = 1;
+ context.al = context.data.byte(132);
+ context._cmp(context.al, context.data.byte(133));
if (!context.flags.z()) goto notwalk;
checkforexit(context);
notwalk:
- context.al = context.data.byte(133);
+ context.al = context.data.byte(132);
context.ah = 0;
context.di = 1105;
context._add(context.di, context.ax);
@@ -2709,18 +2709,18 @@ notwalk:
context._add(context.al, context.ds.byte(context.bx+29));
context.ds.byte(context.bx+15) = context.al;
context.ax = context.ds.word(context.bx+10);
- context.data.byte(151) = context.al;
- context.data.byte(152) = context.ah;
+ context.data.byte(150) = context.al;
+ context.data.byte(151) = context.ah;
return;
}
static void aboutturn(Context & context) {
- context._cmp(context.data.byte(136), 1);
+ context._cmp(context.data.byte(135), 1);
if (context.flags.z()) goto incdir;
- context._cmp(context.data.byte(136), -1);
+ context._cmp(context.data.byte(135), -1);
if (context.flags.z()) goto decdir;
- context.al = context.data.byte(133);
- context._sub(context.al, context.data.byte(135));
+ context.al = context.data.byte(132);
+ context._sub(context.al, context.data.byte(134));
if (!context.flags.c()) goto higher;
context._neg(context.al);
context._cmp(context.al, 4);
@@ -2731,37 +2731,37 @@ higher:
if (!context.flags.c()) goto incdir;
goto decdir;
incdir:
- context.data.byte(136) = 1;
- context.al = context.data.byte(133);
+ context.data.byte(135) = 1;
+ context.al = context.data.byte(132);
context._add(context.al, 1);
context._and(context.al, 7);
- context.data.byte(133) = context.al;
+ context.data.byte(132) = context.al;
context.ds.byte(context.bx+29) = 0;
return;
decdir:
- context.data.byte(136) = -1;
- context.al = context.data.byte(133);
+ context.data.byte(135) = -1;
+ context.al = context.data.byte(132);
context._sub(context.al, 1);
context._and(context.al, 7);
- context.data.byte(133) = context.al;
+ context.data.byte(132) = context.al;
context.ds.byte(context.bx+29) = 0;
return;
}
static void walking(Context & context) {
- context._cmp(context.data.byte(493), 0);
+ context._cmp(context.data.byte(492), 0);
if (context.flags.z()) goto normalwalk;
- context.al = context.data.byte(492);
+ context.al = context.data.byte(491);
context._sub(context.al, 1);
- context.data.byte(492) = context.al;
+ context.data.byte(491) = context.al;
context._cmp(context.al, 200);
if (!context.flags.c()) goto endofline;
goto continuewalk;
normalwalk:
- context.al = context.data.byte(492);
+ context.al = context.data.byte(491);
context._add(context.al, 1);
- context.data.byte(492) = context.al;
- context._cmp(context.al, context.data.byte(494));
+ context.data.byte(491) = context.al;
+ context._cmp(context.al, context.data.byte(493));
if (!context.flags.c()) goto endofline;
continuewalk:
context.ah = 0;
@@ -2770,7 +2770,7 @@ continuewalk:
context.push(context.bx);
context.dx = context.ds;
context.es = context.dx;
- context.bx = 8344;
+ context.bx = 7944;
context._add(context.bx, context.ax);
context.ax = context.ds.word(context.bx);
context.bx = context.pop();
@@ -2779,13 +2779,13 @@ stillline:
context.ds.word(context.bx+10) = context.ax;
return;
endofline:
- context.data.byte(492) = 254;
- context.al = context.data.byte(478);
- context.data.byte(475) = context.al;
- context._cmp(context.al, context.data.byte(477));
- if (context.flags.z()) goto finishedwalk;
+ context.data.byte(491) = 254;
context.al = context.data.byte(477);
- context.data.byte(478) = context.al;
+ context.data.byte(474) = context.al;
+ context._cmp(context.al, context.data.byte(476));
+ if (context.flags.z()) goto finishedwalk;
+ context.al = context.data.byte(476);
+ context.data.byte(477) = context.al;
context.push(context.es);
context.push(context.bx);
autosetwalk(context);
@@ -2801,42 +2801,42 @@ static void facerightway(Context & context) {
context.push(context.es);
context.push(context.bx);
getroomspaths(context);
- context.al = context.data.byte(475);
+ context.al = context.data.byte(474);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = context.ds.byte(context.bx+7);
- context.data.byte(135) = context.al;
context.data.byte(134) = context.al;
+ context.data.byte(133) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
}
static void checkforexit(Context & context) {
- context.cl = context.data.byte(151);
+ context.cl = context.data.byte(150);
context._add(context.cl, 12);
- context.ch = context.data.byte(152);
+ context.ch = context.data.byte(151);
context._add(context.ch, 12);
checkone(context);
- context.data.byte(153) = context.cl;
- context.data.byte(154) = context.ch;
- context.data.byte(155) = context.dl;
- context.data.byte(156) = context.dh;
- context.al = context.data.byte(153);
+ context.data.byte(152) = context.cl;
+ context.data.byte(153) = context.ch;
+ context.data.byte(154) = context.dl;
+ context.data.byte(155) = context.dh;
+ context.al = context.data.byte(152);
context._test(context.al, 64);
if (context.flags.z()) goto notnewdirect;
- context.al = context.data.byte(154);
- context.data.byte(189) = context.al;
+ context.al = context.data.byte(153);
+ context.data.byte(188) = context.al;
return;
notnewdirect:
context._test(context.al, 32);
if (context.flags.z()) goto notleave;
context.push(context.es);
context.push(context.bx);
- context._cmp(context.data.byte(184), 2);
+ context._cmp(context.data.byte(183), 2);
if (!context.flags.z()) goto notlouis;
context.bl = 0;
context.push(context.bx);
@@ -2871,17 +2871,17 @@ notravmessage:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- context.al = context.data.byte(133);
+ context.al = context.data.byte(132);
context._add(context.al, 4);
context._and(context.al, 7);
- context.data.byte(135) = context.al;
+ context.data.byte(134) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
notlouis:
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(60) = 1;
+ context.data.byte(59) = 1;
return;
notleave:
context._test(context.al, 4);
@@ -2910,12 +2910,12 @@ notanup:
static void adjustdown(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.data.byte(149), 10);
- context.al = context.data.byte(154);
+ context._add(context.data.byte(148), 10);
+ context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
context.ds.byte(context.bx+11) = context.al;
- context.data.byte(186) = 1;
+ context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2924,12 +2924,12 @@ static void adjustdown(Context & context) {
static void adjustup(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._sub(context.data.byte(149), 10);
- context.al = context.data.byte(154);
+ context._sub(context.data.byte(148), 10);
+ context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
context.ds.byte(context.bx+11) = context.al;
- context.data.byte(186) = 1;
+ context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2938,13 +2938,13 @@ static void adjustup(Context & context) {
static void adjustleft(Context & context) {
context.push(context.es);
context.push(context.bx);
- context.data.byte(153) = 0;
- context._sub(context.data.byte(148), 11);
- context.al = context.data.byte(154);
+ context.data.byte(152) = 0;
+ context._sub(context.data.byte(147), 11);
+ context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
context.ds.byte(context.bx+10) = context.al;
- context.data.byte(186) = 1;
+ context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2953,24 +2953,24 @@ static void adjustleft(Context & context) {
static void adjustright(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.data.byte(148), 11);
- context.al = context.data.byte(154);
+ context._add(context.data.byte(147), 11);
+ context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
context._sub(context.al, 2);
context.ds.byte(context.bx+10) = context.al;
- context.data.byte(186) = 1;
+ context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
}
static void reminders(Context & context) {
- context._cmp(context.data.byte(184), 24);
+ context._cmp(context.data.byte(183), 24);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.data.byte(148), 44);
+ context._cmp(context.data.byte(147), 44);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.data.byte(2), 0);
+ context._cmp(context.data.byte(1), 0);
if (!context.flags.z()) goto notfirst;
context.al = 'D';
context.ah = 'K';
@@ -2998,7 +2998,7 @@ static void reminders(Context & context) {
compare(context);
if (!context.flags.z()) goto forgotone;
havegotcard:
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
notfirst:
return;
forgotone:
@@ -3014,23 +3014,23 @@ notinedenslift:
}
static void initrain(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.bx = 1113;
checkmorerain:
context.al = context.ds.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto finishinitrain;
- context._cmp(context.al, context.data.byte(184));
+ context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto checkrain;
context.al = context.ds.byte(context.bx+1);
- context._cmp(context.al, context.data.byte(148));
+ context._cmp(context.al, context.data.byte(147));
if (!context.flags.z()) goto checkrain;
context.al = context.ds.byte(context.bx+2);
- context._cmp(context.al, context.data.byte(149));
+ context._cmp(context.al, context.data.byte(148));
if (!context.flags.z()) goto checkrain;
context.al = context.ds.byte(context.bx+3);
- context.data.byte(132) = context.al;
+ context.data.byte(131) = context.al;
goto dorain;
checkrain:
context._add(context.bx, 4);
@@ -3041,26 +3041,26 @@ initraintop:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.data.byte(132));
+ context._cmp(context.al, context.data.byte(131));
if (!context.flags.c()) goto initraintop;
context._add(context.cl, context.al);
- context._cmp(context.cl, context.data.byte(128));
+ context._cmp(context.cl, context.data.byte(127));
if (!context.flags.c()) goto initrainside;
context.push(context.cx);
splitintolines(context);
context.cx = context.pop();
goto initraintop;
initrainside:
- context.cl = context.data.byte(128);
+ context.cl = context.data.byte(127);
context._sub(context.cl, 1);
initrainside2:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.data.byte(132));
+ context._cmp(context.al, context.data.byte(131));
if (!context.flags.c()) goto initrainside2;
context._add(context.ch, context.al);
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.data.byte(128));
if (!context.flags.c()) goto finishinitrain;
context.push(context.cx);
splitintolines(context);
@@ -3081,7 +3081,7 @@ lookforlinestart:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.data.byte(128));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
foundlinestart:
@@ -3095,7 +3095,7 @@ lookforlineend:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto foundlineend;
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.data.byte(128));
if (!context.flags.c()) goto foundlineend;
context._add(context.bh, 1);
goto lookforlineend;
@@ -3114,7 +3114,7 @@ foundlineend:
context.cx = context.pop();
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.data.byte(129));
+ context._cmp(context.ch, context.data.byte(128));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
endofthisline:
@@ -3125,9 +3125,9 @@ static void getblockofpixel(Context & context) {
context.push(context.cx);
context.push(context.es);
context.push(context.di);
- context.ax = context.data.word(125);
+ context.ax = context.data.word(123);
context._add(context.cl, context.al);
- context.ax = context.data.word(127);
+ context.ax = context.data.word(125);
context._add(context.ch, context.al);
checkone(context);
context._and(context.cl, 1);
@@ -3145,30 +3145,30 @@ failrain:
}
static void showrain(Context & context) {
- context.ds = context.data.word(414);
+ context.ds = context.data.word(412);
context.si = 6*58;
context.ax = context.ds.word(context.si+2);
context.si = context.ax;
context._add(context.si, 2080);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
morerain:
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto finishrain;
context.al = context.ds.byte(context.bx+1);
context.ah = 0;
- context._add(context.ax, context.data.word(119));
- context._add(context.ax, context.data.word(127));
+ context._add(context.ax, context.data.word(117));
+ context._add(context.ax, context.data.word(125));
context.cx = 320;
context._mul(context.cx);
context.cl = context.ds.byte(context.bx);
context.ch = 0;
context._add(context.ax, context.cx);
- context._add(context.ax, context.data.word(117));
- context._add(context.ax, context.data.word(125));
+ context._add(context.ax, context.data.word(115));
+ context._add(context.ax, context.data.word(123));
context.di = context.ax;
context.cl = context.ds.byte(context.bx+2);
context.ch = 0;
@@ -3181,7 +3181,7 @@ morerain:
context._add(context.bx, 6);
context.push(context.si);
context._add(context.si, context.ax);
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.ah = 0;
context.dx = 320-2;
rainloop:
@@ -3199,20 +3199,20 @@ noplot:
context.si = context.pop();
goto morerain;
finishrain:
- context._cmp(context.data.word(521), 0);
+ context._cmp(context.data.word(519), 0);
if (!context.flags.z()) goto nothunder;
- context._cmp(context.data.byte(184), 2);
+ context._cmp(context.data.byte(183), 2);
if (!context.flags.z()) goto notlouisthund;
- context._cmp(context.data.byte(45), 1);
+ context._cmp(context.data.byte(44), 1);
if (!context.flags.z()) goto nothunder;
notlouisthund:
- context._cmp(context.data.byte(184), 55);
+ context._cmp(context.data.byte(183), 55);
if (context.flags.z()) goto nothunder;
randomnum1(context);
context._cmp(context.al, 1);
if (!context.flags.c()) goto nothunder;
context.al = 7;
- context._cmp(context.data.byte(507), 6);
+ context._cmp(context.data.byte(506), 6);
if (context.flags.z()) goto isthunder1;
context.al = 4;
isthunder1:
@@ -3222,7 +3222,7 @@ nothunder:
}
static void backobject(Context & context) {
- context.ds = context.data.word(428);
+ context.ds = context.data.word(426);
context.di = context.ds.word(context.bx+20);
context.al = context.ds.byte(context.bx+18);
context._cmp(context.al, 0);
@@ -3270,7 +3270,7 @@ finishback:
}
static void liftsprite(Context & context) {
- context.al = context.data.byte(35);
+ context.al = context.data.byte(34);
context._cmp(context.al, 0);
if (context.flags.z()) goto liftclosed;
context._cmp(context.al, 1);
@@ -3289,7 +3289,7 @@ static void liftsprite(Context & context) {
context.ax = context.pop();
goto pokelift;
finishclose:
- context.data.byte(35) = 0;
+ context.data.byte(34) = 0;
return;
openlift:
context.al = context.ds.byte(context.bx+19);
@@ -3313,46 +3313,46 @@ pokelift:
context.ds.byte(context.di+17) = context.al;
return;
endoflist:
- context.data.byte(35) = 1;
+ context.data.byte(34) = 1;
return;
liftopen:
- context.al = context.data.byte(36);
+ context.al = context.data.byte(35);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(40), 0);
+ context._cmp(context.data.byte(39), 0);
if (context.flags.z()) goto nocountclose;
- context._sub(context.data.byte(40), 1);
- context._cmp(context.data.byte(40), 0);
+ context._sub(context.data.byte(39), 1);
+ context._cmp(context.data.byte(39), 0);
if (!context.flags.z()) goto nocountclose;
- context.data.byte(35) = 2;
+ context.data.byte(34) = 2;
nocountclose:
context.al = 12;
goto pokelift;
liftclosed:
- context.al = context.data.byte(36);
+ context.al = context.data.byte(35);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(39), 0);
+ context._cmp(context.data.byte(38), 0);
if (context.flags.z()) goto nocountopen;
- context._sub(context.data.byte(39), 1);
- context._cmp(context.data.byte(39), 0);
+ context._sub(context.data.byte(38), 1);
+ context._cmp(context.data.byte(38), 0);
if (!context.flags.z()) goto nocountopen;
- context.data.byte(35) = 3;
+ context.data.byte(34) = 3;
nocountopen:
context.al = 0;
goto pokelift;
}
static void liftnoise(Context & context) {
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.data.byte(183), 5);
if (context.flags.z()) goto hissnoise;
- context._cmp(context.data.byte(184), 21);
+ context._cmp(context.data.byte(183), 21);
if (context.flags.z()) goto hissnoise;
playchannel1(context);
return;
@@ -3400,52 +3400,52 @@ gotconst:
}
static void doorway(Context & context) {
- context.data.byte(193) = -24;
- context.data.byte(194) = 10;
- context.data.byte(195) = -30;
- context.data.byte(196) = 10;
+ context.data.byte(192) = -24;
+ context.data.byte(193) = 10;
+ context.data.byte(194) = -30;
+ context.data.byte(195) = 10;
dodoor(context);
return;
}
static void widedoor(Context & context) {
- context.data.byte(193) = -24;
- context.data.byte(194) = 24;
- context.data.byte(195) = -30;
- context.data.byte(196) = 24;
+ context.data.byte(192) = -24;
+ context.data.byte(193) = 24;
+ context.data.byte(194) = -30;
+ context.data.byte(195) = 24;
dodoor(context);
return;
}
static void dodoor(Context & context) {
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
+ context.al = context.data.byte(150);
+ context.ah = context.data.byte(151);
context.cl = context.ds.byte(context.bx+10);
context.ch = context.ds.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor;
context._sub(context.al, context.cl);
- context._cmp(context.al, context.data.byte(193));
+ context._cmp(context.al, context.data.byte(192));
if (!context.flags.c()) goto upordown;
goto shutdoor;
rtofdoor:
context._sub(context.al, context.cl);
- context._cmp(context.al, context.data.byte(194));
+ context._cmp(context.al, context.data.byte(193));
if (!context.flags.c()) goto shutdoor;
upordown:
context._cmp(context.ah, context.ch);
if (!context.flags.c()) goto botofdoor;
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.data.byte(195));
+ context._cmp(context.ah, context.data.byte(194));
if (context.flags.c()) goto shutdoor;
goto opendoor;
botofdoor:
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.data.byte(196));
+ context._cmp(context.ah, context.data.byte(195));
if (!context.flags.c()) goto shutdoor;
opendoor:
context.cl = context.ds.byte(context.bx+19);
- context._cmp(context.data.byte(61), 1);
+ context._cmp(context.data.byte(60), 1);
if (!context.flags.z()) goto notthrough;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough;
@@ -3455,7 +3455,7 @@ notthrough:
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound2;
context.al = 0;
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.data.byte(183), 5);
if (!context.flags.z()) goto nothoteldoor2;
context.al = 13;
nothoteldoor2:
@@ -3475,14 +3475,14 @@ atlast1:
context.di = context.pop();
context.ds.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
- context.data.byte(61) = 1;
+ context.data.byte(60) = 1;
return;
shutdoor:
context.cl = context.ds.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.data.byte(183), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3502,14 +3502,14 @@ atlast2:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.data.byte(61) = 0;
+ context.data.byte(60) = 0;
notnearly:
return;
}
static void lockeddoorway(Context & context) {
- context.al = context.data.byte(151);
- context.ah = context.data.byte(152);
+ context.al = context.data.byte(150);
+ context.ah = context.data.byte(151);
context.cl = context.ds.byte(context.bx+10);
context.ch = context.ds.byte(context.bx+11);
context._cmp(context.al, context.cl);
@@ -3534,9 +3534,9 @@ botofdoor2:
context._cmp(context.ah, 12);
if (!context.flags.c()) goto shutdoor2;
opendoor2:
- context._cmp(context.data.byte(61), 1);
+ context._cmp(context.data.byte(60), 1);
if (context.flags.z()) goto mustbeopen;
- context._cmp(context.data.byte(37), 1);
+ context._cmp(context.data.byte(36), 1);
if (context.flags.z()) goto shutdoor;
mustbeopen:
context.cl = context.ds.byte(context.bx+19);
@@ -3547,7 +3547,7 @@ mustbeopen:
notdoorsound4:
context._cmp(context.cl, 6);
if (!context.flags.z()) goto noturnonyet;
- context.al = context.data.byte(38);
+ context.al = context.data.byte(37);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
@@ -3555,7 +3555,7 @@ notdoorsound4:
context.es = context.pop();
noturnonyet:
context.cl = context.ds.byte(context.bx+19);
- context._cmp(context.data.byte(61), 1);
+ context._cmp(context.data.byte(60), 1);
if (!context.flags.z()) goto notthrough2;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough2;
@@ -3578,7 +3578,7 @@ atlast3:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto justshutting;
- context.data.byte(61) = 1;
+ context.data.byte(60) = 1;
justshutting:
return;
shutdoor2:
@@ -3594,7 +3594,7 @@ notdoorsound3:
context.ds.byte(context.bx+19) = context.cl;
atlast4:
context.ch = 0;
- context.data.byte(61) = 0;
+ context.data.byte(60) = 0;
context.push(context.di);
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
@@ -3603,13 +3603,13 @@ atlast4:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notlocky;
- context.al = context.data.byte(38);
+ context.al = context.data.byte(37);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(37) = 1;
+ context.data.byte(36) = 1;
notlocky:
return;
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
@@ -3618,7 +3618,7 @@ shutdoor:
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.data.byte(184), 5);
+ context._cmp(context.data.byte(183), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3638,33 +3638,33 @@ atlast2:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.data.byte(61) = 0;
+ context.data.byte(60) = 0;
notnearly:
return;
return;
}
static void updatepeople(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
- context.data.word(18) = context.di;
+ context.data.word(16) = context.di;
context.cx = 12*5;
context.al = 255;
while(--context.cx) context._stosb();
- context._add(context.data.word(138), 1);
+ context._add(context.data.word(136), 1);
context.es = context.cs;
- context.bx = 537;
- context.di = 1003;
+ context.bx = 534;
+ context.di = 991;
updateloop:
context.al = context.ds.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto endupdate;
- context._cmp(context.al, context.data.byte(184));
+ context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto notinthisroom;
context.cx = context.ds.word(context.bx+1);
- context._cmp(context.cl, context.data.byte(148));
+ context._cmp(context.cl, context.data.byte(147));
if (!context.flags.z()) goto notinthisroom;
- context._cmp(context.ch, context.data.byte(149));
+ context._cmp(context.ch, context.data.byte(148));
if (!context.flags.z()) goto notinthisroom;
context.push(context.di);
context.ax = context.ds.word(context.di);
@@ -3680,12 +3680,12 @@ endupdate:
static void getreelframeax(Context & context) {
context.push(context.ds);
- context.data.word(160) = context.ax;
+ context.data.word(158) = context.ax;
findsource(context);
context.es = context.ds;
context.ds = context.pop();
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
+ context.ax = context.data.word(158);
+ context._sub(context.ax, context.data.word(242));
context._add(context.ax, context.ax);
context.cx = context.ax;
context._add(context.ax, context.ax);
@@ -3714,7 +3714,7 @@ retryreel:
context._cmp(context.al, 255);
if (context.flags.z()) goto normalreel;
dealwithspecial(context);
- context._add(context.data.word(239), 1);
+ context._add(context.data.word(237), 1);
context.si = context.pop();
context.es = context.pop();
context._add(context.si, 40);
@@ -3742,21 +3742,21 @@ notplot:
}
static void soundonreels(Context & context) {
- context.bl = context.data.byte(184);
+ context.bl = context.data.byte(183);
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
- context._add(context.bx, 1254);
+ context._add(context.bx, 1214);
context.si = context.ds.word(context.bx);
reelsoundloop:
context.al = context.ds.byte(context.si);
context._cmp(context.al, 255);
if (context.flags.z()) goto endreelsound;
context.ax = context.ds.word(context.si+1);
- context._cmp(context.ax, context.data.word(239));
+ context._cmp(context.ax, context.data.word(237));
if (!context.flags.z()) goto skipreelsound;
- context._cmp(context.ax, context.data.word(351));
+ context._cmp(context.ax, context.data.word(349));
if (context.flags.z()) goto skipreelsound;
- context.data.word(351) = context.ax;
+ context.data.word(349) = context.ax;
context.al = context.ds.byte(context.si);
context._cmp(context.al, 64);
if (context.flags.c()) { playchannel1(context); return; };
@@ -3773,26 +3773,26 @@ skipreelsound:
context._add(context.si, 3);
goto reelsoundloop;
endreelsound:
- context.ax = context.data.word(351);
- context._cmp(context.ax, context.data.word(239));
+ context.ax = context.data.word(349);
+ context._cmp(context.ax, context.data.word(237));
if (context.flags.z()) goto nochange2;
- context.data.word(351) = -1;
+ context.data.word(349) = -1;
nochange2:
return;
}
static void reconstruct(Context & context) {
- context._cmp(context.data.byte(130), 0);
+ context._cmp(context.data.byte(129), 0);
if (context.flags.z()) goto noneedtorecon;
- context.data.byte(62) = 1;
+ context.data.byte(61) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
- context._cmp(context.data.byte(184), 20);
+ context._cmp(context.data.byte(183), 20);
if (!context.flags.z()) goto notfudge;
undertextline(context);
notfudge:
- context.data.byte(130) = 0;
+ context.data.byte(129) = 0;
noneedtorecon:
return;
}
@@ -3803,28 +3803,28 @@ static void dealwithspecial(Context & context) {
if (!context.flags.z()) goto notplset;
context.al = context.ah;
placesetobject(context);
- context.data.byte(130) = 1;
+ context.data.byte(129) = 1;
return;
notplset:
context._cmp(context.al, 1);
if (!context.flags.z()) goto notremset;
context.al = context.ah;
removesetobject(context);
- context.data.byte(130) = 1;
+ context.data.byte(129) = 1;
return;
notremset:
context._cmp(context.al, 2);
if (!context.flags.z()) goto notplfree;
context.al = context.ah;
placefreeobject(context);
- context.data.byte(130) = 1;
+ context.data.byte(129) = 1;
return;
notplfree:
context._cmp(context.al, 3);
if (!context.flags.z()) goto notremfree;
context.al = context.ah;
removefreeobject(context);
- context.data.byte(130) = 1;
+ context.data.byte(129) = 1;
return;
notremfree:
context._cmp(context.al, 4);
@@ -3834,14 +3834,14 @@ notremfree:
notryanoff:
context._cmp(context.al, 5);
if (!context.flags.z()) goto notryanon;
- context.data.byte(135) = context.ah;
- context.data.byte(133) = context.ah;
+ context.data.byte(134) = context.ah;
+ context.data.byte(132) = context.ah;
switchryanon(context);
return;
notryanon:
context._cmp(context.al, 6);
if (!context.flags.z()) goto notchangeloc;
- context.data.byte(188) = context.ah;
+ context.data.byte(187) = context.ah;
return;
notchangeloc:
movemap(context);
@@ -3851,38 +3851,38 @@ notchangeloc:
static void movemap(Context & context) {
context._cmp(context.ah, 32);
if (!context.flags.z()) goto notmapup2;
- context._sub(context.data.byte(149), 20);
- context.data.byte(186) = 1;
+ context._sub(context.data.byte(148), 20);
+ context.data.byte(185) = 1;
return;
notmapup2:
context._cmp(context.ah, 16);
if (!context.flags.z()) goto notmapupspec;
- context._sub(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._sub(context.data.byte(148), 10);
+ context.data.byte(185) = 1;
return;
notmapupspec:
context._cmp(context.ah, 8);
if (!context.flags.z()) goto notmapdownspec;
- context._add(context.data.byte(149), 10);
- context.data.byte(186) = 1;
+ context._add(context.data.byte(148), 10);
+ context.data.byte(185) = 1;
return;
notmapdownspec:
context._cmp(context.ah, 2);
if (!context.flags.z()) goto notmaprightspec;
- context._add(context.data.byte(148), 11);
- context.data.byte(186) = 1;
+ context._add(context.data.byte(147), 11);
+ context.data.byte(185) = 1;
return;
notmaprightspec:
- context._sub(context.data.byte(148), 11);
- context.data.byte(186) = 1;
+ context._sub(context.data.byte(147), 11);
+ context.data.byte(185) = 1;
return;
}
static void getreelstart(Context & context) {
- context.ax = context.data.word(239);
+ context.ax = context.data.word(237);
context.cx = 40;
context._mul(context.cx);
- context.es = context.data.word(450);
+ context.es = context.data.word(448);
context.si = context.ax;
context._add(context.si, 0+(36*144));
return;
@@ -3892,37 +3892,37 @@ static void showreelframe(Context & context) {
context.al = context.ds.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(117));
+ context._add(context.di, context.data.word(115));
context.al = context.ds.byte(context.si+3);
context.bx = context.ax;
- context._add(context.bx, context.data.word(119));
+ context._add(context.bx, context.data.word(117));
context.ax = context.ds.word(context.si);
- context.data.word(160) = context.ax;
+ context.data.word(158) = context.ax;
findsource(context);
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
+ context.ax = context.data.word(158);
+ context._sub(context.ax, context.data.word(242));
context.ah = 8;
showframe(context);
return;
}
static void deleverything(Context & context) {
- context.al = context.data.byte(129);
+ context.al = context.data.byte(128);
context.ah = 0;
- context._add(context.ax, context.data.word(123));
+ context._add(context.ax, context.data.word(121));
context._cmp(context.ax, 182);
if (!context.flags.c()) goto bigroom;
maptopanel(context);
return;
bigroom:
- context._sub(context.data.byte(129), 8);
+ context._sub(context.data.byte(128), 8);
maptopanel(context);
- context._add(context.data.byte(129), 8);
+ context._add(context.data.byte(128), 8);
return;
}
static void dumpeverything(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
dumpevery1:
context.ax = context.ds.word(context.bx);
@@ -3941,8 +3941,8 @@ notskip1:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.data.word(115));
+ context._add(context.bx, context.data.word(117));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3964,8 +3964,8 @@ dumpevery2:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.data.word(115));
+ context._add(context.bx, context.data.word(117));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3979,7 +3979,7 @@ finishevery2:
static void allocatework(Context & context) {
context.bx = 0x1000;
allocatemem(context);
- context.data.word(400) = context.ax;
+ context.data.word(398) = context.ax;
return;
}
@@ -4004,23 +4004,23 @@ notendblock:
}
static void loadpalfromiff(Context & context) {
- context.dx = 2494;
+ context.dx = 2481;
openfile(context);
context.cx = 2000;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.dx = 0;
readfromfile(context);
closefile(context);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0x30;
context.cx = 768;
palloop:
context._lodsb();
context._shr(context.al, 1);
context._shr(context.al, 1);
- context._cmp(context.data.byte(73), 1);
+ context._cmp(context.data.byte(72), 1);
if (!context.flags.z()) goto nought;
context._cmp(context.al, 0);
if (context.flags.z()) goto nought;
@@ -4051,7 +4051,7 @@ static void cls(Context & context) {
static void printundermon(Context & context) {
context.si = (320*43)+76;
context.di = context.si;
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context._add(context.si, 8*320);
context.dx = 0x0a000;
context.ds = context.dx;
@@ -4087,7 +4087,7 @@ static void worktoscreen(Context & context) {
context.si = 0;
context.di = 0;
context.cx = 25;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(398);
context.dx = 0x0a000;
context.es = context.dx;
dumpallloop:
@@ -4104,38 +4104,38 @@ dumpallloop:
}
static void paneltomap(Context & context) {
- context.di = context.data.word(125);
- context._add(context.di, context.data.word(117));
- context.bx = context.data.word(127);
- context._add(context.bx, context.data.word(119));
- context.ds = context.data.word(402);
+ context.di = context.data.word(123);
+ context._add(context.di, context.data.word(115));
+ context.bx = context.data.word(125);
+ context._add(context.bx, context.data.word(117));
+ context.ds = context.data.word(400);
context.si = 0;
- context.cl = context.data.byte(128);
- context.ch = context.data.byte(129);
+ context.cl = context.data.byte(127);
+ context.ch = context.data.byte(128);
multiget(context);
return;
}
static void maptopanel(Context & context) {
- context.di = context.data.word(125);
- context._add(context.di, context.data.word(117));
- context.bx = context.data.word(127);
- context._add(context.bx, context.data.word(119));
- context.ds = context.data.word(402);
+ context.di = context.data.word(123);
+ context._add(context.di, context.data.word(115));
+ context.bx = context.data.word(125);
+ context._add(context.bx, context.data.word(117));
+ context.ds = context.data.word(400);
context.si = 0;
- context.cl = context.data.byte(128);
- context.ch = context.data.byte(129);
+ context.cl = context.data.byte(127);
+ context.ch = context.data.byte(128);
multiput(context);
return;
}
static void dumpmap(Context & context) {
- context.di = context.data.word(125);
- context._add(context.di, context.data.word(117));
- context.bx = context.data.word(127);
- context._add(context.bx, context.data.word(119));
- context.cl = context.data.byte(128);
- context.ch = context.data.byte(129);
+ context.di = context.data.word(123);
+ context._add(context.di, context.data.word(115));
+ context.bx = context.data.word(125);
+ context._add(context.bx, context.data.word(117));
+ context.cl = context.data.byte(127);
+ context.ch = context.data.byte(128);
multidump(context);
return;
}
@@ -4151,7 +4151,7 @@ static void pixelcheckset(Context & context) {
context.al = context.ds.byte(context.bx+4);
getsetad(context);
context.al = context.ds.byte(context.bx+17);
- context.es = context.data.word(444);
+ context.es = context.data.word(442);
context.bx = 0;
context.ah = 0;
context.cx = 6;
@@ -4183,25 +4183,25 @@ static void pixelcheckset(Context & context) {
static void createpanel(Context & context) {
context.di = 0;
context.bx = 8;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 8;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 0;
context.bx = 104;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 104;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.al = 0;
context.ah = 2;
showframe(context);
@@ -4212,13 +4212,13 @@ static void createpanel2(Context & context) {
createpanel(context);
context.di = 0;
context.bx = 0;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.al = 5;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 0;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.al = 5;
context.ah = 2;
showframe(context);
@@ -4227,7 +4227,7 @@ static void createpanel2(Context & context) {
static void clearwork(Context & context) {
context.ax = 0x0;
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.di = 0;
context.cx = (200*320)/64;
clearloop:
@@ -4268,24 +4268,24 @@ clearloop:
}
static void zoom(Context & context) {
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.data.word(19), 0);
if (!context.flags.z()) goto inwatching;
- context._cmp(context.data.byte(8), 1);
+ context._cmp(context.data.byte(7), 1);
if (context.flags.z()) goto zoomswitch;
inwatching:
return;
zoomswitch:
- context._cmp(context.data.byte(100), 199);
+ context._cmp(context.data.byte(99), 199);
if (context.flags.c()) goto zoomit;
cantzoom:
putunderzoom(context);
return;
zoomit:
- context.ax = context.data.word(222);
+ context.ax = context.data.word(220);
context._sub(context.ax, 9);
context.cx = 320;
context._mul(context.cx);
- context._add(context.ax, context.data.word(220));
+ context._add(context.ax, context.data.word(218));
context._sub(context.ax, 11);
context.si = context.ax;
context.ax = 132+4;
@@ -4293,8 +4293,8 @@ zoomit:
context._mul(context.cx);
context._add(context.ax, 8+5);
context.di = context.ax;
- context.es = context.data.word(400);
- context.ds = context.data.word(400);
+ context.es = context.data.word(398);
+ context.ds = context.data.word(398);
context.cx = 20;
zoomloop:
context.push(context.cx);
@@ -4310,7 +4310,7 @@ zoomloop2:
context.cx = context.pop();
if (--context.cx) goto zoomloop;
crosshair(context);
- context.data.byte(75) = 1;
+ context.data.byte(74) = 1;
return;
}
@@ -4319,12 +4319,12 @@ static void delthisone(Context & context) {
context.push(context.ax);
context.al = context.ah;
context.ah = 0;
- context._add(context.ax, context.data.word(119));
+ context._add(context.ax, context.data.word(117));
context.bx = 320;
context._mul(context.bx);
context.bx = context.pop();
context.bh = 0;
- context._add(context.bx, context.data.word(117));
+ context._add(context.bx, context.data.word(115));
context._add(context.ax, context.bx);
context.di = context.ax;
context.ax = context.pop();
@@ -4337,8 +4337,8 @@ static void delthisone(Context & context) {
context.bh = 0;
context._add(context.ax, context.bx);
context.si = context.ax;
- context.es = context.data.word(400);
- context.ds = context.data.word(402);
+ context.es = context.data.word(398);
+ context.ds = context.data.word(400);
context.dl = context.cl;
context.dh = 0;
context.ax = 320;
@@ -4362,7 +4362,7 @@ static void multiget(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.es = context.ds;
context.ds = context.es;
context._xchg(context.di, context.si);
@@ -4406,7 +4406,7 @@ static void multiput(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.al = context.cl;
context.ah = 0;
context.dx = 320;
@@ -4445,7 +4445,7 @@ multiloop6:
static void multidump(Context & context) {
context.dx = 0x0a000;
context.es = context.dx;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(398);
context.ax = context.bx;
context.bx = 320;
context._mul(context.bx);
@@ -4727,17 +4727,17 @@ static void width160(Context & context) {
}
static void doblocks(Context & context) {
- context.es = context.data.word(400);
- context.ax = context.data.word(119);
+ context.es = context.data.word(398);
+ context.ax = context.data.word(117);
context.cx = 320;
context._mul(context.cx);
- context.di = context.data.word(117);
+ context.di = context.data.word(115);
context._add(context.di, context.ax);
- context.al = context.data.byte(149);
+ context.al = context.data.byte(148);
context.ah = 0;
context.bx = 66;
context._mul(context.bx);
- context.bl = context.data.byte(148);
+ context.bl = context.data.byte(147);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -4750,9 +4750,9 @@ loop120:
loop124:
context.push(context.cx);
context.push(context.di);
- context.ds = context.data.word(418);
- context._lodsb();
context.ds = context.data.word(416);
+ context._lodsb();
+ context.ds = context.data.word(414);
context.push(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto zeroblock;
@@ -4896,9 +4896,9 @@ notdiffdest:
if (context.flags.z()) goto notprintlist;
context.push(context.ax);
context.ax = context.di;
- context._sub(context.ax, context.data.word(117));
+ context._sub(context.ax, context.data.word(115));
context.push(context.bx);
- context._sub(context.bx, context.data.word(119));
+ context._sub(context.bx, context.data.word(117));
context.ah = context.bl;
context.bx = context.pop();
context.ax = context.pop();
@@ -4906,7 +4906,7 @@ notprintlist:
context._test(context.ah, 4);
if (context.flags.z()) goto notflippedx;
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.push(context.cx);
frameoutfx(context);
context.cx = context.pop();
@@ -4915,7 +4915,7 @@ notflippedx:
context._test(context.ah, 2);
if (context.flags.z()) goto notnomask;
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.push(context.cx);
frameoutnm(context);
context.cx = context.pop();
@@ -4924,14 +4924,14 @@ notnomask:
context._test(context.ah, 32);
if (context.flags.z()) goto noeffects;
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.push(context.cx);
frameoutbh(context);
context.cx = context.pop();
return;
noeffects:
context.dx = 320;
- context.es = context.data.word(400);
+ context.es = context.data.word(398);
context.push(context.cx);
frameoutv(context);
context.cx = context.pop();
@@ -5095,9 +5095,9 @@ backtosolidfx:
}
static void transferinv(Context & context) {
- context.di = context.data.word(12);
+ context.di = context.data.word(10);
context.push(context.di);
- context.al = context.data.byte(10);
+ context.al = context.data.byte(9);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5105,12 +5105,12 @@ static void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.data.byte(90);
+ context.al = context.data.byte(89);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5118,7 +5118,7 @@ static void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.data.word(446);
+ context.ds = context.data.word(444);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
@@ -5139,33 +5139,33 @@ static void transferinv(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context.ds.word(context.bx+2) = context.ax;
- context._add(context.data.word(12), context.cx);
+ context._add(context.data.word(10), context.cx);
return;
}
static void transfermap(Context & context) {
- context.di = context.data.word(12);
+ context.di = context.data.word(10);
context.push(context.di);
- context.al = context.data.byte(10);
+ context.al = context.data.byte(9);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.data.byte(90);
+ context.al = context.data.byte(89);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.data.word(446);
+ context.ds = context.data.word(444);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
@@ -5186,26 +5186,26 @@ static void transfermap(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context.ds.word(context.bx+2) = context.ax;
- context._add(context.data.word(12), context.cx);
+ context._add(context.data.word(10), context.cx);
return;
}
static void dofade(Context & context) {
- context._cmp(context.data.byte(344), 0);
+ context._cmp(context.data.byte(343), 0);
if (context.flags.z()) goto finishfade;
- context.cl = context.data.byte(345);
+ context.cl = context.data.byte(344);
context.ch = 0;
- context.al = context.data.byte(343);
+ context.al = context.data.byte(342);
context.ah = 0;
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
showgroup(context);
- context.al = context.data.byte(345);
- context._add(context.al, context.data.byte(343));
- context.data.byte(343) = context.al;
+ context.al = context.data.byte(344);
+ context._add(context.al, context.data.byte(342));
+ context.data.byte(342) = context.al;
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishfade;
fadecalculation(context);
@@ -5214,7 +5214,7 @@ finishfade:
}
static void clearendpal(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 0;
@@ -5223,7 +5223,7 @@ static void clearendpal(Context & context) {
}
static void clearpalette(Context & context) {
- context.data.byte(344) = 0;
+ context.data.byte(343) = 0;
clearstartpal(context);
dumpcurrent(context);
return;
@@ -5232,15 +5232,15 @@ static void clearpalette(Context & context) {
static void fadescreenup(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
return;
}
static void fadetowhite(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 63;
@@ -5251,15 +5251,15 @@ static void fadetowhite(Context & context) {
context._stosb();
context._stosb();
paltostartpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
return;
}
static void fadefromwhite(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768;
context.al = 63;
@@ -5270,20 +5270,20 @@ static void fadefromwhite(Context & context) {
context._stosb();
context._stosb();
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
return;
}
static void fadescreenups(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 64;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 64;
return;
}
@@ -5291,7 +5291,7 @@ static void fadescreendownhalf(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.cx = 768;
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
halfend:
context.al = context.ds.byte(context.bx);
@@ -5299,8 +5299,8 @@ halfend:
context.ds.byte(context.bx) = context.al;
context._add(context.bx, 1);
if (--context.cx) goto halfend;
- context.ds = context.data.word(412);
- context.es = context.data.word(412);
+ context.ds = context.data.word(410);
+ context.es = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
context.cx = 3*5;
@@ -5309,45 +5309,45 @@ halfend:
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
context.cx = 3*2;
while(--context.cx) context._movsb();
- context.data.byte(344) = 1;
- context.data.byte(346) = 31;
- context.data.byte(343) = 0;
- context.data.byte(345) = 32;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 31;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 32;
return;
}
static void fadescreenuphalf(Context & context) {
endpaltostart(context);
paltoendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 31;
- context.data.byte(343) = 0;
- context.data.byte(345) = 32;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 31;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 32;
return;
}
static void fadescreendown(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
return;
}
static void fadescreendowns(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 64;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 64;
return;
}
static void clearstartpal(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 256;
wholeloop1:
@@ -5360,39 +5360,39 @@ wholeloop1:
}
static void showgun(Context & context) {
- context.data.byte(348) = 0;
context.data.byte(347) = 0;
- context.data.byte(349) = 0;
+ context.data.byte(346) = 0;
+ context.data.byte(348) = 0;
paltostartpal(context);
paltoendpal(context);
greyscalesum(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
context.cx = 130;
hangon(context);
endpaltostart(context);
clearendpal(context);
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
context.cx = 200;
hangon(context);
- context.data.byte(531) = 34;
+ context.data.byte(530) = 34;
loadroomssample(context);
- context.data.byte(386) = 0;
- context.dx = 2364;
+ context.data.byte(385) = 0;
+ context.dx = 2351;
loadintotemp(context);
createpanel2(context);
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 0;
context.ah = 0;
context.di = 100;
context.bx = 4;
showframe(context);
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 1;
context.ah = 0;
context.di = 158;
@@ -5406,7 +5406,7 @@ static void showgun(Context & context) {
context.al = 12;
context.ah = 0;
playchannel0(context);
- context.dx = 2273;
+ context.dx = 2260;
loadtemptext(context);
rollendcredits2(context);
getridoftemptext(context);
@@ -5423,10 +5423,10 @@ static void rollem(Context & context) {
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
multiget(context);
- context.es = context.data.word(466);
+ context.es = context.data.word(464);
context.si = 49*2;
context.ax = context.ds.word(context.si);
context.si = context.ax;
@@ -5435,7 +5435,7 @@ static void rollem(Context & context) {
endcredits21:
context.push(context.cx);
context.bx = 10;
- context.cx = context.data.word(77);
+ context.cx = context.data.word(75);
endcredits22:
context.push(context.cx);
context.push(context.si);
@@ -5447,7 +5447,7 @@ endcredits22:
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
multiput(context);
vsync(context);
@@ -5466,7 +5466,7 @@ onelot2:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.data.word(77));
+ context._add(context.bx, context.data.word(75));
context.cx = context.pop();
if (--context.cx) goto onelot2;
vsync(context);
@@ -5480,7 +5480,7 @@ onelot2:
context.di = context.pop();
context.si = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto endearly2;
context._sub(context.bx, 1);
if (--context.cx) goto endcredits22;
@@ -5494,7 +5494,7 @@ looknext2:
if (context.flags.z()) goto gotnext2;
goto looknext2;
gotnext2:
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto endearly;
if (--context.cx) goto endcredits21;
context.cx = 120;
@@ -5507,10 +5507,10 @@ endearly:
}
static void fadecalculation(Context & context) {
- context._cmp(context.data.byte(346), 0);
+ context._cmp(context.data.byte(345), 0);
if (context.flags.z()) goto nomorefading;
- context.bl = context.data.byte(346);
- context.es = context.data.word(412);
+ context.bl = context.data.byte(345);
+ context.es = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
@@ -5532,15 +5532,15 @@ gotthere:
context._add(context.si, 1);
context._add(context.di, 1);
if (--context.cx) goto fadecolloop;
- context._sub(context.data.byte(346), 1);
+ context._sub(context.data.byte(345), 1);
return;
nomorefading:
- context.data.byte(344) = 0;
+ context.data.byte(343) = 0;
return;
}
static void greyscalesum(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 256;
@@ -5569,19 +5569,19 @@ greysumloop2:
if (!context.flags.c()) goto greysumloop2;
context.bl = context.al;
context.al = context.bl;
- context.ah = context.data.byte(348);
+ context.ah = context.data.byte(347);
context._cmp(context.al, 0);
context._add(context.al, context.ah);
noaddr:
context._stosb();
- context.ah = context.data.byte(347);
+ context.ah = context.data.byte(346);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddg;
context._add(context.al, context.ah);
noaddg:
context._stosb();
- context.ah = context.data.byte(349);
+ context.ah = context.data.byte(348);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddb;
@@ -5595,8 +5595,8 @@ noaddb:
}
static void paltostartpal(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.data.word(410);
+ context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5605,8 +5605,8 @@ static void paltostartpal(Context & context) {
}
static void endpaltostart(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.data.word(410);
+ context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5615,8 +5615,8 @@ static void endpaltostart(Context & context) {
}
static void startpaltoend(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.data.word(410);
+ context.ds = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5625,8 +5625,8 @@ static void startpaltoend(Context & context) {
}
static void paltoendpal(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.data.word(410);
+ context.ds = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5635,8 +5635,8 @@ static void paltoendpal(Context & context) {
}
static void allpalette(Context & context) {
- context.es = context.data.word(412);
- context.ds = context.data.word(412);
+ context.es = context.data.word(410);
+ context.ds = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5647,7 +5647,7 @@ static void allpalette(Context & context) {
static void dumpcurrent(Context & context) {
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
vsync(context);
context.al = 0;
context.cx = 128;
@@ -5662,7 +5662,7 @@ static void dumpcurrent(Context & context) {
static void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5670,10 +5670,10 @@ static void fadedownmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
context.cx = 64;
hangon(context);
return;
@@ -5682,7 +5682,7 @@ static void fadedownmon(Context & context) {
static void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5690,10 +5690,10 @@ static void fadeupmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5702,7 +5702,7 @@ static void fadeupmon(Context & context) {
static void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5710,10 +5710,10 @@ static void fadeupmonfirst(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
context.cx = 64;
hangon(context);
context.al = 26;
@@ -5725,7 +5725,7 @@ static void fadeupmonfirst(Context & context) {
static void fadeupyellows(Context & context) {
paltoendpal(context);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5733,10 +5733,10 @@ static void fadeupyellows(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.data.byte(344) = 1;
- context.data.byte(346) = 63;
- context.data.byte(343) = 0;
- context.data.byte(345) = 128;
+ context.data.byte(343) = 1;
+ context.data.byte(345) = 63;
+ context.data.byte(342) = 0;
+ context.data.byte(344) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5744,7 +5744,7 @@ static void fadeupyellows(Context & context) {
static void initialmoncols(Context & context) {
paltostartpal(context);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.cx = 3*9;
context.ax = 0;
@@ -5752,7 +5752,7 @@ static void initialmoncols(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.al = 230;
context.cx = 18;
@@ -5768,29 +5768,29 @@ static void titles(Context & context) {
}
static void endgame(Context & context) {
- context.dx = 2273;
+ context.dx = 2260;
loadtemptext(context);
monkspeaking(context);
gettingshot(context);
getridoftemptext(context);
- context.data.byte(387) = 7;
- context.data.byte(388) = 1;
+ context.data.byte(386) = 7;
+ context.data.byte(387) = 1;
context.cx = 200;
hangon(context);
return;
}
static void monkspeaking(Context & context) {
- context.data.byte(531) = 35;
+ context.data.byte(530) = 35;
loadroomssample(context);
- context.dx = 2377;
+ context.dx = 2364;
loadintotemp(context);
clearwork(context);
showmonk(context);
worktoscreen(context);
- context.data.byte(386) = 7;
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
+ context.data.byte(385) = 7;
+ context.data.byte(387) = -1;
+ context.data.byte(386) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
@@ -5803,7 +5803,7 @@ nextmonkspeak:
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.data.word(466);
+ context.es = context.data.word(464);
context.ax = context.ds.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
@@ -5829,8 +5829,8 @@ nextbit:
context._add(context.al, 1);
context._cmp(context.al, 44);
if (!context.flags.z()) goto nextmonkspeak;
- context.data.byte(388) = 1;
- context.data.byte(387) = 7;
+ context.data.byte(387) = 1;
+ context.data.byte(386) = 7;
fadescreendowns(context);
context.cx = 300;
hangon(context);
@@ -5843,18 +5843,18 @@ static void showmonk(Context & context) {
context.ah = 128;
context.di = 160;
context.bx = 72;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
showframe(context);
return;
}
static void gettingshot(Context & context) {
- context.data.byte(188) = 55;
+ context.data.byte(187) = 55;
clearpalette(context);
loadintroroom(context);
fadescreenups(context);
- context.data.byte(387) = 0;
- context.data.byte(388) = -1;
+ context.data.byte(386) = 0;
+ context.data.byte(387) = -1;
runendseq(context);
clearbeforeload(context);
return;
@@ -5868,7 +5868,7 @@ static void credits(Context & context) {
static void biblequote(Context & context) {
mode640x480(context);
- context.dx = 2390;
+ context.dx = 2377;
showpcx(context);
fadescreenups(context);
context.cx = 80;
@@ -5887,7 +5887,7 @@ hangonloope:
context.push(context.cx);
vsync(context);
context.cx = context.pop();
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto hangonearly;
if (--context.cx) goto hangonloope;
return;
@@ -5898,32 +5898,32 @@ hangonearly:
}
static void intro(Context & context) {
- context.dx = 2260;
+ context.dx = 2247;
loadtemptext(context);
loadpalfromiff(context);
setmode(context);
- context.data.byte(188) = 50;
+ context.data.byte(187) = 50;
clearpalette(context);
loadintroroom(context);
- context.data.byte(386) = 7;
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
+ context.data.byte(385) = 7;
+ context.data.byte(387) = -1;
+ context.data.byte(386) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
fadescreenups(context);
runintroseq(context);
clearbeforeload(context);
- context.data.byte(188) = 52;
+ context.data.byte(187) = 52;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
- context.data.byte(188) = 53;
+ context.data.byte(187) = 53;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
allpalette(context);
- context.data.byte(188) = 54;
+ context.data.byte(187) = 54;
loadintroroom(context);
runintroseq(context);
getridoftemptext(context);
@@ -5932,14 +5932,14 @@ static void intro(Context & context) {
}
static void runintroseq(Context & context) {
- context.data.byte(103) = 0;
+ context.data.byte(102) = 0;
moreintroseq:
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto earlyendrun;
spriteupdate(context);
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto earlyendrun;
deleverything(context);
printsprites(context);
@@ -5947,14 +5947,14 @@ moreintroseq:
afterintroroom(context);
usetimedtext(context);
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto earlyendrun;
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.data.byte(392), 1);
+ context._cmp(context.data.byte(391), 1);
if (context.flags.z()) goto earlyendrun;
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.data.byte(102), 1);
if (!context.flags.z()) goto moreintroseq;
return;
earlyendrun:
@@ -5967,7 +5967,7 @@ earlyendrun:
static void runendseq(Context & context) {
atmospheres(context);
- context.data.byte(103) = 0;
+ context.data.byte(102) = 0;
moreendseq:
vsync(context);
spriteupdate(context);
@@ -5981,23 +5981,23 @@ moreendseq:
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.data.byte(102), 1);
if (!context.flags.z()) goto moreendseq;
return;
}
static void loadintroroom(Context & context) {
- context.data.byte(139) = 0;
- context.data.byte(9) = 255;
+ context.data.byte(138) = 0;
+ context.data.byte(8) = 255;
loadroom(context);
- context.data.word(121) = 72;
- context.data.word(123) = 16;
+ context.data.word(119) = 72;
+ context.data.word(121) = 16;
clearsprites(context);
- context.data.byte(61) = 0;
- context.data.byte(142) = '0';
- context.data.byte(105) = 0;
+ context.data.byte(60) = 0;
+ context.data.byte(141) = '0';
+ context.data.byte(104) = 0;
clearwork(context);
- context.data.byte(62) = 1;
+ context.data.byte(61) = 1;
drawfloor(context);
reelsonscreen(context);
spriteupdate(context);
@@ -6007,13 +6007,13 @@ static void loadintroroom(Context & context) {
}
static void realcredits(Context & context) {
- context.data.byte(531) = 33;
+ context.data.byte(530) = 33;
loadroomssample(context);
- context.data.byte(386) = 0;
+ context.data.byte(385) = 0;
mode640x480(context);
context.cx = 35;
hangon(context);
- context.dx = 2403;
+ context.dx = 2390;
showpcx(context);
context.al = 12;
context.ah = 0;
@@ -6026,7 +6026,7 @@ static void realcredits(Context & context) {
fadescreendowns(context);
context.cx = 256;
hangone(context);
- context.dx = 2416;
+ context.dx = 2403;
showpcx(context);
context.al = 12;
context.ah = 0;
@@ -6039,7 +6039,7 @@ static void realcredits(Context & context) {
fadescreendowns(context);
context.cx = 256;
hangone(context);
- context.dx = 2429;
+ context.dx = 2416;
showpcx(context);
context.al = 12;
context.ah = 0;
@@ -6052,7 +6052,7 @@ static void realcredits(Context & context) {
fadescreendowns(context);
context.cx = 256;
hangone(context);
- context.dx = 2442;
+ context.dx = 2429;
showpcx(context);
context.al = 12;
context.ah = 0;
@@ -6065,7 +6065,7 @@ static void realcredits(Context & context) {
fadescreendowns(context);
context.cx = 256;
hangone(context);
- context.dx = 2455;
+ context.dx = 2442;
showpcx(context);
context.al = 12;
context.ah = 0;
@@ -6078,7 +6078,7 @@ static void realcredits(Context & context) {
fadescreendowns(context);
context.cx = 256;
hangone(context);
- context.dx = 2468;
+ context.dx = 2455;
showpcx(context);
fadescreenups(context);
context.cx = 60;
@@ -6104,13 +6104,13 @@ static void printchar(Context & context) {
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.data.word(71));
+ context._add(context.ax, context.data.word(69));
showframe(context);
context.ax = context.pop();
context.di = context.pop();
context.bx = context.pop();
context.si = context.pop();
- context._cmp(context.data.byte(72), 0);
+ context._cmp(context.data.byte(71), 0);
if (!context.flags.z()) goto nokern;
kernchars(context);
nokern:
@@ -6146,9 +6146,9 @@ kernit:
}
static void printslow(Context & context) {
- context.data.byte(231) = 1;
- context.data.byte(234) = 3;
- context.ds = context.data.word(404);
+ context.data.byte(230) = 1;
+ context.data.byte(233) = 3;
+ context.ds = context.data.word(402);
printloopslow6:
context.push(context.bx);
context.push(context.di);
@@ -6187,9 +6187,9 @@ printloopslow5:
context.push(context.es);
context.push(context.si);
modifychar(context);
- context.data.word(71) = 91;
+ context.data.word(69) = 91;
printboth(context);
- context.data.word(71) = 0;
+ context.data.word(69) = 0;
context.si = context.pop();
context.es = context.pop();
context.cx = context.pop();
@@ -6199,14 +6199,14 @@ printloopslow5:
waitframes(context);
context._cmp(context.ax, 0);
if (context.flags.z()) goto keepgoing;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (!context.flags.z()) goto finishslow2;
keepgoing:
waitframes(context);
noslow:
context._cmp(context.ax, 0);
if (context.flags.z()) goto afterslow;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (!context.flags.z()) goto finishslow2;
afterslow:
context.es = context.pop();
@@ -6250,7 +6250,7 @@ static void waitframes(Context & context) {
vsync(context);
dumppointer(context);
delpointer(context);
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context.ds = context.pop();
context.si = context.pop();
context.es = context.pop();
@@ -6277,8 +6277,8 @@ static void printboth(Context & context) {
}
static void printdirect(Context & context) {
- context.data.word(84) = context.di;
- context.ds = context.data.word(268);
+ context.data.word(82) = context.di;
+ context.ds = context.data.word(266);
printloop6:
context.push(context.bx);
context.push(context.di);
@@ -6296,14 +6296,14 @@ printloop5:
context.push(context.es);
modifychar(context);
printchar(context);
- context.data.word(84) = context.di;
+ context.data.word(82) = context.di;
context.es = context.pop();
context.cx = context.pop();
if (--context.cx) goto printloop5;
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
- context._add(context.bx, context.data.word(77));
+ context._add(context.bx, context.data.word(75));
goto printloop6;
finishdirct:
context.dx = context.pop();
@@ -6313,12 +6313,12 @@ finishdirct:
}
static void monprint(Context & context) {
- context.data.byte(72) = 1;
+ context.data.byte(71) = 1;
context.si = context.bx;
context.dl = 166;
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
+ context.ds = context.data.word(404);
printloop8:
context.push(context.bx);
context.push(context.di);
@@ -6347,9 +6347,9 @@ nottrigger:
context.push(context.es);
modifychar(context);
printchar(context);
- context.data.word(312) = context.di;
- context.data.word(314) = context.bx;
- context.data.word(138) = 1;
+ context.data.word(310) = context.di;
+ context.data.word(312) = context.bx;
+ context.data.word(136) = 1;
printcurs(context);
vsync(context);
context.push(context.si);
@@ -6374,7 +6374,7 @@ finishmon2:
context.di = context.pop();
context.bx = context.pop();
scrollmonitor(context);
- context.data.word(312) = context.di;
+ context.data.word(310) = context.di;
goto printloop8;
finishmon:
context.dx = context.pop();
@@ -6382,12 +6382,12 @@ finishmon:
context.bx = context.pop();
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger2;
- context.data.byte(55) = context.ah;
+ context.data.byte(54) = context.ah;
nottrigger2:
- context.data.word(312) = context.di;
+ context.data.word(310) = context.di;
scrollmonitor(context);
context.bx = context.si;
- context.data.byte(72) = 0;
+ context.data.byte(71) = 0;
return;
}
@@ -6512,7 +6512,7 @@ getloop:
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.data.word(71));
+ context._add(context.ax, context.data.word(69));
context._add(context.ax, context.ax);
context.si = context.ax;
context._add(context.ax, context.ax);
@@ -6590,11 +6590,11 @@ nomod:
}
static void fillryan(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32;
findallryan(context);
context.si = 0+(228*13)+32;
- context.al = context.data.byte(19);
+ context.al = context.data.byte(18);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
@@ -6641,7 +6641,7 @@ static void fillopen(Context & context) {
lessthanapage:
context.al = 1;
context.push(context.ax);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13);
findallopen(context);
context.si = 0+(228*13);
@@ -6680,7 +6680,7 @@ static void findallryan(Context & context) {
while(--context.cx) context._stosw();
context.di = context.pop();
context.cl = 4;
- context.ds = context.data.word(398);
+ context.ds = context.data.word(396);
context.bx = 0+2080+30000;
context.ch = 0;
findryanloop:
@@ -6711,9 +6711,9 @@ static void findallopen(Context & context) {
context.ax = 0x0ffff;
while(--context.cx) context._stosw();
context.di = context.pop();
- context.cl = context.data.byte(110);
- context.dl = context.data.byte(111);
- context.ds = context.data.word(398);
+ context.cl = context.data.byte(109);
+ context.dl = context.data.byte(110);
+ context.ds = context.data.word(396);
context.bx = 0+2080+30000;
context.ch = 0;
findopen1:
@@ -6721,10 +6721,10 @@ findopen1:
if (!context.flags.z()) goto findopen2;
context._cmp(context.ds.byte(context.bx+2), context.dl);
if (!context.flags.z()) goto findopen2;
- context._cmp(context.data.byte(111), 4);
+ context._cmp(context.data.byte(110), 4);
if (context.flags.z()) goto noloccheck;
context.al = context.ds.byte(context.bx+5);
- context._cmp(context.al, context.data.byte(184));
+ context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto findopen2;
noloccheck:
context.al = context.ds.byte(context.bx+4);
@@ -6741,10 +6741,10 @@ findopen2:
context._add(context.ch, 1);
context._cmp(context.ch, 114);
if (!context.flags.z()) goto findopen1;
- context.cl = context.data.byte(110);
- context.dl = context.data.byte(111);
+ context.cl = context.data.byte(109);
+ context.dl = context.data.byte(110);
context.push(context.dx);
- context.ds = context.data.word(426);
+ context.ds = context.data.word(424);
context.dx = context.pop();
context.bx = 0;
context.ch = 0;
@@ -6778,7 +6778,7 @@ static void obtoinv(Context & context) {
context.push(context.ax);
context.push(context.di);
context.push(context.bx);
- context.ds = context.data.word(408);
+ context.ds = context.data.word(406);
context._sub(context.di, 2);
context._sub(context.bx, 1);
context.al = 10;
@@ -6792,10 +6792,10 @@ static void obtoinv(Context & context) {
context.push(context.bx);
context.push(context.di);
context.push(context.ax);
- context.ds = context.data.word(398);
+ context.ds = context.data.word(396);
context._cmp(context.ah, 4);
if (context.flags.z()) goto isanextra;
- context.ds = context.data.word(446);
+ context.ds = context.data.word(444);
isanextra:
context.cl = context.al;
context._add(context.al, context.al);
@@ -6813,7 +6813,7 @@ isanextra:
isitworn(context);
context.bx = context.pop();
if (!context.flags.z()) goto finishfill;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(406);
context._sub(context.di, 3);
context._sub(context.bx, 2);
context.al = 7;
@@ -6844,18 +6844,18 @@ static void makeworn(Context & context) {
}
static void examineob(Context & context) {
- context.data.byte(234) = 0;
- context.data.word(328) = 0;
+ context.data.byte(233) = 0;
+ context.data.word(326) = 0;
examineagain:
- context.data.byte(237) = 0;
- context.data.byte(108) = 0;
+ context.data.byte(236) = 0;
+ context.data.byte(107) = 0;
+ context.data.byte(109) = 255;
context.data.byte(110) = 255;
- context.data.byte(111) = 255;
- context.data.byte(104) = 0;
- context.al = context.data.byte(100);
- context.data.byte(102) = context.al;
- context.data.byte(89) = 0;
- context.data.byte(231) = 0;
+ context.data.byte(103) = 0;
+ context.al = context.data.byte(99);
+ context.data.byte(101) = context.al;
+ context.data.byte(88) = 0;
+ context.data.byte(230) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -6864,7 +6864,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -6876,41 +6876,41 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.data.byte(103) = 0;
+ context.data.byte(102) = 0;
context.bx = 2494;
- context._cmp(context.data.byte(104), 0);
+ context._cmp(context.data.byte(103), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.data.byte(104), 1);
+ context._cmp(context.data.byte(103), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.data.byte(108), 0);
+ context._cmp(context.data.byte(107), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.data.byte(102), 0);
if (context.flags.z()) goto waitexam;
- context.data.byte(106) = 0;
- context._cmp(context.data.word(21), 0);
+ context.data.byte(105) = 0;
+ context._cmp(context.data.word(19), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(188), 255);
+ context._cmp(context.data.byte(187), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.data.byte(103) = 0;
+ context.data.byte(109) = 255;
return;
justgetback:
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.data.byte(103) = 0;
+ context.data.byte(109) = 255;
return;
}
static void makemainscreen(Context & context) {
createpanel(context);
- context.data.byte(62) = 1;
+ context.data.byte(61) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
@@ -6918,16 +6918,16 @@ static void makemainscreen(Context & context) {
showicon(context);
getunderzoom(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
animpointer(context);
worktoscreenm(context);
- context.data.byte(100) = 200;
- context.data.byte(131) = 0;
+ context.data.byte(99) = 200;
+ context.data.byte(130) = 0;
return;
}
static void getbackfromob(Context & context) {
- context._cmp(context.data.byte(106), 1);
+ context._cmp(context.data.byte(105), 1);
if (!context.flags.z()) goto notheldob;
blank(context);
return;
@@ -6937,25 +6937,25 @@ notheldob:
}
static void incryanpage(Context & context) {
- context._cmp(context.data.byte(100), 222);
+ context._cmp(context.data.byte(99), 222);
if (context.flags.z()) goto alreadyincryan;
- context.data.byte(100) = 222;
+ context.data.byte(99) = 222;
context.al = 31;
commandonly(context);
alreadyincryan:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto noincryan;
context._and(context.ax, 1);
if (!context.flags.z()) goto doincryan;
noincryan:
return;
doincryan:
- context.ax = context.data.word(198);
+ context.ax = context.data.word(196);
context._sub(context.ax, 80+167);
- context.data.byte(19) = -1;
+ context.data.byte(18) = -1;
findnewpage:
- context._add(context.data.byte(19), 1);
+ context._add(context.data.byte(18), 1);
context._sub(context.ax, 18);
if (!context.flags.c()) goto findnewpage;
delpointer(context);
@@ -6968,32 +6968,32 @@ findnewpage:
}
static void openinv(Context & context) {
- context.data.byte(104) = 1;
+ context.data.byte(103) = 1;
context.al = 61;
context.di = 80;
context.bx = 58-10;
context.dl = 240;
printmessage(context);
fillryan(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
return;
}
static void showryanpage(Context & context) {
- context.ds = context.data.word(408);
+ context.ds = context.data.word(406);
context.di = 80+167;
context.bx = 58-12;
context.al = 12;
context.ah = 0;
showframe(context);
context.al = 13;
- context._add(context.al, context.data.byte(19));
+ context._add(context.al, context.data.byte(18));
context.push(context.ax);
- context.al = context.data.byte(19);
+ context.al = context.data.byte(18);
context.ah = 0;
context.cx = 18;
context._mul(context.cx);
- context.ds = context.data.word(408);
+ context.ds = context.data.word(406);
context.di = 80+167;
context._add(context.di, context.ax);
context.bx = 58-12;
@@ -7004,8 +7004,8 @@ static void showryanpage(Context & context) {
}
static void openob(Context & context) {
- context.al = context.data.byte(110);
- context.ah = context.data.byte(111);
+ context.al = context.data.byte(109);
+ context.ah = context.data.byte(110);
context.di = 5674;
copyname(context);
context.di = 80;
@@ -7013,7 +7013,7 @@ static void openob(Context & context) {
context.al = 62;
context.dl = 240;
printmessage(context);
- context.di = context.data.word(84);
+ context.di = context.data.word(82);
context._add(context.di, 5);
context.bx = 58+86;
context.es = context.cs;
@@ -7035,18 +7035,18 @@ static void openob(Context & context) {
}
static void obicons(Context & context) {
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
getanyad(context);
context._cmp(context.al, 255);
if (context.flags.z()) goto cantopenit;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.di = 210;
context.bx = 1;
context.al = 4;
context.ah = 0;
showframe(context);
cantopenit:
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.di = 260;
context.bx = 1;
context.al = 1;
@@ -7056,7 +7056,7 @@ cantopenit:
}
static void examicon(Context & context) {
- context.ds = context.data.word(410);
+ context.ds = context.data.word(408);
context.di = 254;
context.bx = 5;
context.al = 3;
@@ -7066,13 +7066,13 @@ static void examicon(Context & context) {
}
static void obpicture(Context & context) {
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.data.byte(98);
+ context.ah = context.data.byte(101);
context._cmp(context.ah, 1);
if (context.flags.z()) goto setframe;
context._cmp(context.ah, 4);
if (context.flags.z()) goto exframe;
- context.ds = context.data.word(446);
+ context.ds = context.data.word(444);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7085,7 +7085,7 @@ static void obpicture(Context & context) {
setframe:
return;
exframe:
- context.ds = context.data.word(398);
+ context.ds = context.data.word(396);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7101,18 +7101,18 @@ static void describeob(Context & context) {
getobtextstart(context);
context.di = 33;
context.bx = 92;
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(101), 1);
if (!context.flags.z()) goto notsetd;
context.bx = 82;
notsetd:
context.dl = 241;
context.ah = 16;
- context.data.word(71) = 91+91;
+ context.data.word(69) = 91+91;
printdirect(context);
- context.data.word(71) = 0;
+ context.data.word(69) = 0;
context.di = 36;
context.bx = 104;
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(101), 1);
if (!context.flags.z()) goto notsetd2;
context.bx = 94;
notsetd2:
@@ -7129,16 +7129,16 @@ notsetd2:
static void additionaltext(Context & context) {
context._add(context.bx, 10);
context.push(context.bx);
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.data.byte(98);
+ context.ah = context.data.byte(101);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto emptycup;
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.data.byte(98);
+ context.ah = context.data.byte(101);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -7168,8 +7168,8 @@ fullcup:
}
static void obsthatdothings(Context & context) {
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.data.byte(98);
+ context.ah = context.data.byte(101);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -7190,21 +7190,21 @@ notlouiscard:
}
static void getobtextstart(Context & context) {
- context.es = context.data.word(438);
+ context.es = context.data.word(436);
context.si = 0;
context.cx = 0+(82*2);
- context._cmp(context.data.byte(102), 2);
+ context._cmp(context.data.byte(101), 2);
if (context.flags.z()) goto describe;
- context.es = context.data.word(440);
+ context.es = context.data.word(438);
context.si = 0;
context.cx = 0+(130*2);
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(101), 1);
if (context.flags.z()) goto describe;
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.si = 0+2080+30000+(16*114);
context.cx = 0+2080+30000+(16*114)+((114+2)*2);
describe:
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.si, context.ax);
@@ -7218,7 +7218,7 @@ tryagain:
context.al = context.ds.byte(context.si);
context.cx = context.si;
context.si = context.pop();
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(101), 1);
if (!context.flags.z()) goto cantmakeoneup;
context._cmp(context.al, 0);
if (context.flags.z()) goto findsometext;
@@ -7283,31 +7283,31 @@ endofcolon:
}
static void inventory(Context & context) {
- context._cmp(context.data.byte(56), 1);
+ context._cmp(context.data.byte(55), 1);
if (context.flags.z()) goto iswatchinv;
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.data.word(19), 0);
if (context.flags.z()) goto notwatchinv;
iswatchinv:
blank(context);
return;
notwatchinv:
- context._cmp(context.data.byte(100), 239);
+ context._cmp(context.data.byte(99), 239);
if (context.flags.z()) goto alreadyopinv;
- context.data.byte(100) = 239;
+ context.data.byte(99) = 239;
context.al = 32;
commandonly(context);
alreadyopinv:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto cantopinv;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopeninv;
cantopinv:
return;
doopeninv:
- context.data.word(328) = 0;
- context.data.byte(234) = 0;
- context.data.byte(237) = 0;
+ context.data.word(326) = 0;
+ context.data.byte(233) = 0;
+ context.data.byte(236) = 0;
animpointer(context);
createpanel(context);
showpanel(context);
@@ -7315,26 +7315,26 @@ doopeninv:
showman(context);
showexit(context);
undertextline(context);
- context.data.byte(106) = 0;
- context.data.byte(104) = 2;
+ context.data.byte(105) = 0;
+ context.data.byte(103) = 2;
openinv(context);
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.data.byte(110) = 255;
+ context.data.byte(109) = 255;
goto waitexam;
/*continuing to unbounded code: examineagain from examineob:3-66*/
examineagain:
- context.data.byte(237) = 0;
- context.data.byte(108) = 0;
+ context.data.byte(236) = 0;
+ context.data.byte(107) = 0;
+ context.data.byte(109) = 255;
context.data.byte(110) = 255;
- context.data.byte(111) = 255;
- context.data.byte(104) = 0;
- context.al = context.data.byte(100);
- context.data.byte(102) = context.al;
- context.data.byte(89) = 0;
- context.data.byte(231) = 0;
+ context.data.byte(103) = 0;
+ context.al = context.data.byte(99);
+ context.data.byte(101) = context.al;
+ context.data.byte(88) = 0;
+ context.data.byte(230) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -7343,7 +7343,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -7355,35 +7355,35 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.data.byte(103) = 0;
+ context.data.byte(102) = 0;
context.bx = 2494;
- context._cmp(context.data.byte(104), 0);
+ context._cmp(context.data.byte(103), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.data.byte(104), 1);
+ context._cmp(context.data.byte(103), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.data.byte(108), 0);
+ context._cmp(context.data.byte(107), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.data.byte(102), 0);
if (context.flags.z()) goto waitexam;
- context.data.byte(106) = 0;
- context._cmp(context.data.word(21), 0);
+ context.data.byte(105) = 0;
+ context._cmp(context.data.word(19), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(188), 255);
+ context._cmp(context.data.byte(187), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.data.byte(103) = 0;
+ context.data.byte(109) = 255;
return;
justgetback:
- context.data.byte(104) = 0;
- context.data.byte(110) = 255;
+ context.data.byte(103) = 0;
+ context.data.byte(109) = 255;
return;
examlist:
invlist1:
@@ -7393,9 +7393,9 @@ withlist1:
}
static void setpickup(Context & context) {
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(101), 1);
if (context.flags.z()) goto cantpick;
- context._cmp(context.data.byte(102), 3);
+ context._cmp(context.data.byte(101), 3);
if (context.flags.z()) goto cantpick;
getanyad(context);
context.al = context.ds.byte(context.bx+2);
@@ -7405,18 +7405,18 @@ cantpick:
blank(context);
return;
canpick:
- context._cmp(context.data.byte(100), 209);
+ context._cmp(context.data.byte(99), 209);
if (context.flags.z()) goto alreadysp;
- context.data.byte(100) = 209;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
+ context.data.byte(99) = 209;
+ context.bl = context.data.byte(98);
+ context.bh = context.data.byte(101);
context.al = 33;
commandwithob(context);
alreadysp:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._cmp(context.ax, 1);
if (!context.flags.z()) goto nosetpick;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (!context.flags.z()) goto dosetpick;
nosetpick:
return;
@@ -7426,16 +7426,16 @@ dosetpick:
showman(context);
showexit(context);
examicon(context);
- context.data.byte(106) = 1;
- context.data.byte(104) = 2;
- context._cmp(context.data.byte(102), 4);
+ context.data.byte(105) = 1;
+ context.data.byte(103) = 2;
+ context._cmp(context.data.byte(101), 4);
if (context.flags.z()) goto pickupexob;
- context.al = context.data.byte(99);
- context.data.byte(89) = context.al;
- context.data.byte(110) = 255;
+ context.al = context.data.byte(98);
+ context.data.byte(88) = context.al;
+ context.data.byte(109) = 255;
transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = 4;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
@@ -7443,22 +7443,22 @@ dosetpick:
worktoscreenm(context);
return;
pickupexob:
- context.al = context.data.byte(99);
- context.data.byte(89) = context.al;
- context.data.byte(110) = 255;
+ context.al = context.data.byte(98);
+ context.data.byte(88) = context.al;
+ context.data.byte(109) = 255;
openinv(context);
worktoscreenm(context);
return;
}
static void examinventory(Context & context) {
- context._cmp(context.data.byte(100), 249);
+ context._cmp(context.data.byte(99), 249);
if (context.flags.z()) goto alreadyexinv;
- context.data.byte(100) = 249;
+ context.data.byte(99) = 249;
context.al = 32;
commandonly(context);
alreadyexinv:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._and(context.ax, 1);
if (!context.flags.z()) goto doexinv;
return;
@@ -7468,8 +7468,8 @@ doexinv:
showman(context);
showexit(context);
examicon(context);
- context.data.byte(106) = 0;
- context.data.byte(104) = 2;
+ context.data.byte(105) = 0;
+ context.data.byte(103) = 2;
openinv(context);
worktoscreenm(context);
return;
@@ -7478,10 +7478,10 @@ doexinv:
static void reexfrominv(Context & context) {
findinvpos(context);
context.ax = context.ds.word(context.bx);
- context.data.byte(100) = context.ah;
- context.data.byte(99) = context.al;
- context.data.byte(108) = 1;
- context.data.byte(234) = 0;
+ context.data.byte(99) = context.ah;
+ context.data.byte(98) = context.al;
+ context.data.byte(107) = 1;
+ context.data.byte(233) = 0;
return;
}
@@ -7489,62 +7489,62 @@ static void reexfromopen(Context & context) {
return;
findopenpos(context);
context.ax = context.ds.word(context.bx);
- context.data.byte(100) = context.ah;
- context.data.byte(99) = context.al;
- context.data.byte(108) = 1;
- context.data.byte(234) = 0;
+ context.data.byte(99) = context.ah;
+ context.data.byte(98) = context.al;
+ context.data.byte(107) = 1;
+ context.data.byte(233) = 0;
return;
}
static void swapwithinv(Context & context) {
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.data.byte(88);
+ context.ah = context.data.byte(101);
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto difsub7;
- context._cmp(context.data.byte(100), 243);
+ context._cmp(context.data.byte(99), 243);
if (context.flags.z()) goto alreadyswap1;
- context.data.byte(100) = 243;
+ context.data.byte(99) = 243;
difsub7:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap1:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto cantswap1;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap1;
cantswap1:
return;
doswap1:
- context.ah = context.data.byte(102);
- context.al = context.data.byte(89);
+ context.ah = context.data.byte(101);
+ context.al = context.data.byte(88);
context.push(context.ax);
findinvpos(context);
context.ax = context.ds.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = context.ah;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
+ context.bl = context.data.byte(88);
+ context.bh = context.data.byte(101);
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.data.byte(101) = context.ah;
+ context.data.byte(88) = context.al;
context.push(context.bx);
findinvpos(context);
delpointer(context);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
geteitherad(context);
context.ds.byte(context.bx+2) = 4;
context.ds.byte(context.bx+3) = 255;
- context.al = context.data.byte(107);
+ context.al = context.data.byte(106);
context.ds.byte(context.bx+4) = context.al;
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.data.byte(101) = context.ah;
+ context.data.byte(88) = context.al;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7554,21 +7554,21 @@ doswap1:
}
static void swapwithopen(Context & context) {
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.data.byte(88);
+ context.ah = context.data.byte(101);
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto difsub8;
- context._cmp(context.data.byte(100), 242);
+ context._cmp(context.data.byte(99), 242);
if (context.flags.z()) goto alreadyswap2;
- context.data.byte(100) = 242;
+ context.data.byte(99) = 242;
difsub8:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap2:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto cantswap2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap2;
@@ -7582,11 +7582,11 @@ doswap2:
return;
notwornswap:
delpointer(context);
- context.al = context.data.byte(89);
- context._cmp(context.al, context.data.byte(110));
+ context.al = context.data.byte(88);
+ context._cmp(context.al, context.data.byte(109));
if (!context.flags.z()) goto isntsame2;
- context.al = context.data.byte(102);
- context._cmp(context.al, context.data.byte(111));
+ context.al = context.data.byte(101);
+ context._cmp(context.al, context.data.byte(110));
if (!context.flags.z()) goto isntsame2;
errormessage1(context);
return;
@@ -7596,13 +7596,13 @@ isntsame2:
if (context.flags.z()) goto sizeok2;
return;
sizeok2:
- context.ah = context.data.byte(102);
- context.al = context.data.byte(89);
+ context.ah = context.data.byte(101);
+ context.al = context.data.byte(88);
context.push(context.ax);
findopenpos(context);
context.ax = context.ds.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeswapex;
geteitherad(context);
@@ -7611,31 +7611,31 @@ sizeok2:
goto actuallyswap;
makeswapex:
transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = 4;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
actuallyswap:
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
+ context.bl = context.data.byte(88);
+ context.bh = context.data.byte(101);
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.data.byte(101) = context.ah;
+ context.data.byte(88) = context.al;
context.push(context.bx);
findopenpos(context);
geteitherad(context);
- context.al = context.data.byte(111);
- context.ds.byte(context.bx+2) = context.al;
context.al = context.data.byte(110);
+ context.ds.byte(context.bx+2) = context.al;
+ context.al = context.data.byte(109);
context.ds.byte(context.bx+3) = context.al;
- context.al = context.data.byte(107);
+ context.al = context.data.byte(106);
context.ds.byte(context.bx+4) = context.al;
- context.al = context.data.byte(184);
+ context.al = context.data.byte(183);
context.ds.byte(context.bx+5) = context.al;
context.ax = context.pop();
- context.data.byte(102) = context.ah;
- context.data.byte(89) = context.al;
+ context.data.byte(101) = context.ah;
+ context.data.byte(88) = context.al;
fillopen(context);
fillryan(context);
undertextline(context);
@@ -7648,7 +7648,7 @@ actuallyswap:
}
static void intoinv(Context & context) {
- context._cmp(context.data.byte(106), 0);
+ context._cmp(context.data.byte(105), 0);
if (!context.flags.z()) goto notout;
outofinv(context);
return;
@@ -7660,21 +7660,21 @@ notout:
swapwithinv(context);
return;
canplace1:
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.data.byte(88);
+ context.ah = context.data.byte(101);
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto difsub1;
- context._cmp(context.data.byte(100), 220);
+ context._cmp(context.data.byte(99), 220);
if (context.flags.z()) goto alreadyplce;
- context.data.byte(100) = 220;
+ context.data.byte(99) = 220;
difsub1:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplce:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto notletgo2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doplace;
@@ -7682,13 +7682,13 @@ notletgo2:
return;
doplace:
delpointer(context);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
getexad(context);
context.ds.byte(context.bx+2) = 4;
context.ds.byte(context.bx+3) = 255;
- context.al = context.data.byte(107);
+ context.al = context.data.byte(106);
context.ds.byte(context.bx+4) = context.al;
- context.data.byte(106) = 0;
+ context.data.byte(105) = 0;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7699,9 +7699,9 @@ doplace:
}
static void deletetaken(Context & context) {
- context.es = context.data.word(426);
- context.ah = context.data.byte(184);
- context.ds = context.data.word(398);
+ context.es = context.data.word(424);
+ context.ah = context.data.byte(183);
+ context.ds = context.data.word(396);
context.si = 0+2080+30000;
context.cx = 114;
takenloop:
@@ -7729,25 +7729,25 @@ static void outofinv(Context & context) {
blank(context);
return;
canpick2:
- context.bx = context.data.word(202);
+ context.bx = context.data.word(200);
context._cmp(context.bx, 2);
if (!context.flags.z()) goto canpick2a;
reexfrominv(context);
return;
canpick2a:
- context._cmp(context.ax, context.data.word(94));
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto difsub3;
- context._cmp(context.data.byte(100), 221);
+ context._cmp(context.data.byte(99), 221);
if (context.flags.z()) goto alreadygrab;
- context.data.byte(100) = 221;
+ context.data.byte(99) = 221;
difsub3:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrab:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto notletgo;
context._and(context.ax, 1);
if (!context.flags.z()) goto dograb;
@@ -7755,11 +7755,11 @@ notletgo:
return;
dograb:
delpointer(context);
- context.data.byte(106) = 1;
+ context.data.byte(105) = 1;
findinvpos(context);
context.ax = context.ds.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = context.ah;
getexad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
@@ -7777,7 +7777,7 @@ static void getfreead(Context & context) {
context.cl = 4;
context._shl(context.ax, context.cl);
context.bx = context.ax;
- context.es = context.data.word(426);
+ context.es = context.data.word(424);
return;
}
@@ -7786,39 +7786,39 @@ static void getexad(Context & context) {
context.bx = 16;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context._add(context.bx, 0+2080+30000);
return;
}
static void geteitherad(Context & context) {
- context._cmp(context.data.byte(102), 4);
+ context._cmp(context.data.byte(101), 4);
if (context.flags.z()) goto isinexlist;
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
getfreead(context);
return;
isinexlist:
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
getexad(context);
return;
}
static void getanyad(Context & context) {
- context._cmp(context.data.byte(102), 4);
+ context._cmp(context.data.byte(101), 4);
if (context.flags.z()) goto isex;
- context._cmp(context.data.byte(102), 2);
+ context._cmp(context.data.byte(101), 2);
if (context.flags.z()) goto isfree;
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
getsetad(context);
context.ax = context.ds.word(context.bx+4);
return;
isfree:
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
getfreead(context);
context.ax = context.ds.word(context.bx+7);
return;
isex:
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
getexad(context);
context.ax = context.ds.word(context.bx+7);
return;
@@ -7840,21 +7840,21 @@ isex3:
}
static void getopenedsize(Context & context) {
- context._cmp(context.data.byte(111), 4);
+ context._cmp(context.data.byte(110), 4);
if (context.flags.z()) goto isex2;
- context._cmp(context.data.byte(111), 2);
+ context._cmp(context.data.byte(110), 2);
if (context.flags.z()) goto isfree2;
- context.al = context.data.byte(110);
+ context.al = context.data.byte(109);
getsetad(context);
context.ax = context.ds.word(context.bx+3);
return;
isfree2:
- context.al = context.data.byte(110);
+ context.al = context.data.byte(109);
getfreead(context);
context.ax = context.ds.word(context.bx+7);
return;
isex2:
- context.al = context.data.byte(110);
+ context.al = context.data.byte(109);
getexad(context);
context.ax = context.ds.word(context.bx+7);
return;
@@ -7865,40 +7865,40 @@ static void getsetad(Context & context) {
context.bx = 64;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.data.word(428);
+ context.es = context.data.word(426);
return;
}
static void findinvpos(Context & context) {
- context.cx = context.data.word(198);
+ context.cx = context.data.word(196);
context._sub(context.cx, 80);
context.bx = -1;
findinv1:
context._add(context.bx, 1);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv1;
- context.cx = context.data.word(200);
+ context.cx = context.data.word(198);
context._sub(context.cx, 58);
context._sub(context.bx, 5);
findinv2:
context._add(context.bx, 5);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv2;
- context.al = context.data.byte(19);
+ context.al = context.data.byte(18);
context.ah = 0;
context.cx = 10;
context._mul(context.cx);
context._add(context.bx, context.ax);
context.al = context.bl;
- context.data.byte(107) = context.al;
+ context.data.byte(106) = context.al;
context._add(context.bx, context.bx);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context._add(context.bx, 0+(228*13)+32);
return;
}
static void findopenpos(Context & context) {
- context.cx = context.data.word(198);
+ context.cx = context.data.word(196);
context._sub(context.cx, 80);
context.bx = -1;
findopenp1:
@@ -7906,26 +7906,26 @@ findopenp1:
context._sub(context.cx, 44);
if (!context.flags.c()) goto findopenp1;
context.al = context.bl;
- context.data.byte(107) = context.al;
+ context.data.byte(106) = context.al;
context._add(context.bx, context.bx);
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context._add(context.bx, 0+(228*13));
return;
}
static void dropobject(Context & context) {
- context._cmp(context.data.byte(100), 223);
+ context._cmp(context.data.byte(99), 223);
if (context.flags.z()) goto alreadydrop;
- context.data.byte(100) = 223;
- context._cmp(context.data.byte(106), 0);
+ context.data.byte(99) = 223;
+ context._cmp(context.data.byte(105), 0);
if (context.flags.z()) { blank(context); return; };
- context.bl = context.data.byte(89);
- context.bh = context.data.byte(102);
+ context.bl = context.data.byte(88);
+ context.bh = context.data.byte(101);
context.al = 37;
commandwithob(context);
alreadydrop:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nodrop;
context._and(context.ax, 1);
if (!context.flags.z()) goto dodrop;
@@ -7938,11 +7938,11 @@ dodrop:
wornerror(context);
return;
nowornerror:
- context._cmp(context.data.byte(184), 47);
+ context._cmp(context.data.byte(183), 47);
if (context.flags.z()) goto nodrop2;
- context.cl = context.data.byte(151);
+ context.cl = context.data.byte(150);
context._add(context.cl, 12);
- context.ch = context.data.byte(152);
+ context.ch = context.data.byte(151);
context._add(context.ch, 12);
checkone(context);
context._cmp(context.cl, 2);
@@ -7951,14 +7951,14 @@ nodrop2:
droperror(context);
return;
nodroperror:
- context._cmp(context.data.byte(128), 64);
+ context._cmp(context.data.byte(127), 64);
if (!context.flags.z()) goto notinlift;
- context._cmp(context.data.byte(129), 64);
+ context._cmp(context.data.byte(128), 64);
if (!context.flags.z()) goto notinlift;
droperror(context);
return;
notinlift:
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
context.ah = 4;
context.cl = 'G';
context.ch = 'U';
@@ -7966,7 +7966,7 @@ notinlift:
context.dh = 'A';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
context.ah = 4;
context.cl = 'S';
context.ch = 'H';
@@ -7974,38 +7974,38 @@ notinlift:
context.dh = 'D';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.data.byte(102) = 4;
- context.al = context.data.byte(89);
+ context.data.byte(101) = 4;
+ context.al = context.data.byte(88);
getexad(context);
context.ds.byte(context.bx+2) = 0;
- context.al = context.data.byte(151);
+ context.al = context.data.byte(150);
context._add(context.al, 4);
context.cl = 4;
context._shr(context.al, context.cl);
- context._add(context.al, context.data.byte(148));
- context.ah = context.data.byte(152);
+ context._add(context.al, context.data.byte(147));
+ context.ah = context.data.byte(151);
context._add(context.ah, 8);
context.cl = 4;
context._shr(context.ah, context.cl);
- context._add(context.ah, context.data.byte(149));
+ context._add(context.ah, context.data.byte(148));
context.ds.byte(context.bx+3) = context.al;
context.ds.byte(context.bx+5) = context.ah;
- context.al = context.data.byte(151);
+ context.al = context.data.byte(150);
context._add(context.al, 4);
context._and(context.al, 15);
- context.ah = context.data.byte(152);
+ context.ah = context.data.byte(151);
context._add(context.ah, 8);
context._and(context.ah, 15);
context.ds.byte(context.bx+4) = context.al;
context.ds.byte(context.bx+6) = context.ah;
- context.data.byte(106) = 0;
- context.al = context.data.byte(184);
+ context.data.byte(105) = 0;
+ context.al = context.data.byte(183);
context.ds.byte(context.bx) = context.al;
return;
}
static void droperror(Context & context) {
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8018,13 +8018,13 @@ static void droperror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
worktoscreenm(context);
return;
}
static void cantdrop(Context & context) {
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8037,13 +8037,13 @@ static void cantdrop(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
worktoscreenm(context);
return;
}
static void wornerror(Context & context) {
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8056,17 +8056,17 @@ static void wornerror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
worktoscreenm(context);
return;
}
static void removeobfrominv(Context & context) {
- context._cmp(context.data.byte(99), 100);
+ context._cmp(context.data.byte(98), 100);
if (context.flags.z()) goto obnotexist;
getanyad(context);
context.di = context.bx;
- context.cl = context.data.byte(99);
+ context.cl = context.data.byte(98);
context.ch = 0;
deleteexobject(context);
obnotexist:
@@ -8074,33 +8074,33 @@ obnotexist:
}
static void selectopenob(Context & context) {
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
getanyad(context);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canopenit1;
blank(context);
return;
canopenit1:
- context._cmp(context.data.byte(100), 224);
+ context._cmp(context.data.byte(99), 224);
if (context.flags.z()) goto alreadyopob;
- context.data.byte(100) = 224;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
+ context.data.byte(99) = 224;
+ context.bl = context.data.byte(98);
+ context.bh = context.data.byte(101);
context.al = 38;
commandwithob(context);
alreadyopob:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto noopenob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopenob;
noopenob:
return;
doopenob:
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
+ context.data.byte(109) = context.al;
+ context.al = context.data.byte(101);
context.data.byte(110) = context.al;
- context.al = context.data.byte(102);
- context.data.byte(111) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -8117,9 +8117,9 @@ doopenob:
}
static void useopened(Context & context) {
- context._cmp(context.data.byte(110), 255);
+ context._cmp(context.data.byte(109), 255);
if (context.flags.z()) goto cannotuseopen;
- context._cmp(context.data.byte(106), 0);
+ context._cmp(context.data.byte(105), 0);
if (!context.flags.z()) goto notout2;
outofopen(context);
return;
@@ -8132,26 +8132,26 @@ notout2:
cannotuseopen:
return;
canplace3:
- context._cmp(context.data.byte(106), 1);
+ context._cmp(context.data.byte(105), 1);
if (context.flags.z()) goto intoopen;
blank(context);
return;
intoopen:
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context._cmp(context.ax, context.data.word(94));
+ context.al = context.data.byte(88);
+ context.ah = context.data.byte(101);
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto difsub2;
- context._cmp(context.data.byte(100), 227);
+ context._cmp(context.data.byte(99), 227);
if (context.flags.z()) goto alreadyplc2;
- context.data.byte(100) = 227;
+ context.data.byte(99) = 227;
difsub2:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplc2:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto notletgo3;
context._cmp(context.ax, 1);
if (context.flags.z()) goto doplace2;
@@ -8165,11 +8165,11 @@ doplace2:
return;
notworntoopen:
delpointer(context);
- context.al = context.data.byte(89);
- context._cmp(context.al, context.data.byte(110));
+ context.al = context.data.byte(88);
+ context._cmp(context.al, context.data.byte(109));
if (!context.flags.z()) goto isntsame;
- context.al = context.data.byte(102);
- context._cmp(context.al, context.data.byte(111));
+ context.al = context.data.byte(101);
+ context._cmp(context.al, context.data.byte(110));
if (!context.flags.z()) goto isntsame;
errormessage1(context);
return;
@@ -8179,16 +8179,16 @@ isntsame:
if (context.flags.z()) goto sizeok1;
return;
sizeok1:
- context.data.byte(106) = 0;
- context.al = context.data.byte(89);
+ context.data.byte(105) = 0;
+ context.al = context.data.byte(88);
geteitherad(context);
- context.al = context.data.byte(111);
- context.ds.byte(context.bx+2) = context.al;
context.al = context.data.byte(110);
+ context.ds.byte(context.bx+2) = context.al;
+ context.al = context.data.byte(109);
context.ds.byte(context.bx+3) = context.al;
- context.al = context.data.byte(107);
+ context.al = context.data.byte(106);
context.ds.byte(context.bx+4) = context.al;
- context.al = context.data.byte(184);
+ context.al = context.data.byte(183);
context.ds.byte(context.bx+5) = context.al;
fillopen(context);
undertextline(context);
@@ -8225,7 +8225,7 @@ static void errormessage1(Context & context) {
}
static void errormessage2(Context & context) {
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8273,7 +8273,7 @@ static void errormessage3(Context & context) {
static void checkobjectsize(Context & context) {
getopenedsize(context);
context.push(context.ax);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
geteitherad(context);
context.al = context.ds.byte(context.bx+9);
context.cx = context.pop();
@@ -8312,7 +8312,7 @@ sizeok:
}
static void outofopen(Context & context) {
- context._cmp(context.data.byte(110), 255);
+ context._cmp(context.data.byte(109), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
context.ax = context.ds.word(context.bx);
@@ -8322,19 +8322,19 @@ cantuseopen:
blank(context);
return;
canpick4:
- context._cmp(context.ax, context.data.word(94));
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto difsub4;
- context._cmp(context.data.byte(100), 228);
+ context._cmp(context.data.byte(99), 228);
if (context.flags.z()) goto alreadygrb;
- context.data.byte(100) = 228;
+ context.data.byte(99) = 228;
difsub4:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrb:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto notletgo4;
context._cmp(context.ax, 1);
if (context.flags.z()) goto dogrb;
@@ -8345,11 +8345,11 @@ notletgo4:
return;
dogrb:
delpointer(context);
- context.data.byte(106) = 1;
+ context.data.byte(105) = 1;
findopenpos(context);
context.ax = context.ds.word(context.bx);
- context.data.byte(89) = context.al;
- context.data.byte(102) = context.ah;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeintoex;
geteitherad(context);
@@ -8358,8 +8358,8 @@ dogrb:
goto actuallyout;
makeintoex:
transfertoex(context);
- context.data.byte(89) = context.al;
- context.data.byte(102) = 4;
+ context.data.byte(88) = context.al;
+ context.data.byte(101) = 4;
geteitherad(context);
context.ds.byte(context.bx+2) = 20;
context.ds.byte(context.bx+3) = 255;
@@ -8377,37 +8377,37 @@ actuallyout:
static void transfertoex(Context & context) {
emergencypurge(context);
getexpos(context);
- context.al = context.data.byte(10);
+ context.al = context.data.byte(9);
context.push(context.ax);
context.push(context.di);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.data.word(426);
+ context.ds = context.data.word(424);
context.si = context.ax;
context.cx = 8;
while(--context.cx) context._movsw();
context.di = context.pop();
- context.al = context.data.byte(184);
+ context.al = context.data.byte(183);
context.ds.byte(context.di) = context.al;
context.ds.byte(context.di+11) = context.al;
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
context.ds.byte(context.di+1) = context.al;
context.ds.byte(context.di+2) = 4;
context.ds.byte(context.di+3) = 255;
- context.al = context.data.byte(107);
+ context.al = context.data.byte(106);
context.ds.byte(context.di+4) = context.al;
- context.al = context.data.byte(89);
- context.data.byte(90) = context.al;
+ context.al = context.data.byte(88);
+ context.data.byte(89) = context.al;
transfermap(context);
transferinv(context);
transfertext(context);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(88);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.data.word(426);
+ context.ds = context.data.word(424);
context.si = context.ax;
context.ds.byte(context.si+2) = 254;
pickupconts(context);
@@ -8419,10 +8419,10 @@ static void pickupconts(Context & context) {
context.al = context.ds.byte(context.si+7);
context._cmp(context.al, 255);
if (context.flags.z()) goto notopenable;
- context.al = context.data.byte(89);
- context.ah = context.data.byte(102);
- context.dl = context.data.byte(10);
- context.es = context.data.word(426);
+ context.al = context.data.byte(88);
+ context.ah = context.data.byte(101);
+ context.dl = context.data.byte(9);
+ context.es = context.data.word(424);
context.bx = 0;
context.cx = 0;
pickupcontloop:
@@ -8435,7 +8435,7 @@ pickupcontloop:
if (!context.flags.z()) goto notinsidethis;
context._cmp(context.ds.byte(context.bx+3), context.al);
if (!context.flags.z()) goto notinsidethis;
- context.data.byte(90) = context.cl;
+ context.data.byte(89) = context.cl;
transfercontoex(context);
notinsidethis:
context.ax = context.pop();
@@ -8465,10 +8465,10 @@ static void transfercontoex(Context & context) {
while(--context.cx) context._movsw();
context.di = context.pop();
context.dx = context.pop();
- context.al = context.data.byte(184);
+ context.al = context.data.byte(183);
context.ds.byte(context.di) = context.al;
context.ds.byte(context.di+11) = context.al;
- context.al = context.data.byte(90);
+ context.al = context.data.byte(89);
context.ds.byte(context.di+1) = context.al;
context.ds.byte(context.di+3) = context.dl;
context.ds.byte(context.di+2) = 4;
@@ -8482,19 +8482,19 @@ static void transfercontoex(Context & context) {
}
static void transfertext(Context & context) {
- context.es = context.data.word(398);
- context.al = context.data.byte(10);
+ context.es = context.data.word(396);
+ context.al = context.data.byte(9);
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = 0+2080+30000+(16*114);
context._add(context.bx, context.ax);
- context.di = context.data.word(14);
+ context.di = context.data.word(12);
context.ds.word(context.bx) = context.di;
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
- context.al = context.data.byte(90);
+ context.al = context.data.byte(89);
context.ah = 0;
context._add(context.ax, context.ax);
- context.ds = context.data.word(438);
+ context.ds = context.data.word(436);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+(82*2);
@@ -8503,14 +8503,14 @@ static void transfertext(Context & context) {
moretext:
context._lodsb();
context._stosb();
- context._add(context.data.word(14), 1);
+ context._add(context.data.word(12), 1);
context._cmp(context.al, 0);
if (!context.flags.z()) goto moretext;
return;
}
static void getexpos(Context & context) {
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.al = 0;
context.di = 0+2080+30000;
tryanotherex:
@@ -8521,13 +8521,13 @@ tryanotherex:
context._cmp(context.al, 114);
if (!context.flags.z()) goto tryanotherex;
foundnewex:
- context.data.byte(10) = context.al;
+ context.data.byte(9) = context.al;
return;
}
static void purgealocation(Context & context) {
context.push(context.ax);
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.di = 0+2080+30000;
context.bx = context.pop();
context.cx = 0;
@@ -8555,14 +8555,14 @@ dontpurge:
static void emergencypurge(Context & context) {
checkpurgeagain:
- context.ax = context.data.word(12);
+ context.ax = context.data.word(10);
context._add(context.ax, 4000);
context._cmp(context.ax, 30000);
if (context.flags.c()) goto notnearframeend;
purgeanitem(context);
goto checkpurgeagain;
notnearframeend:
- context.ax = context.data.word(14);
+ context.ax = context.data.word(12);
context._add(context.ax, 400);
context._cmp(context.ax, 18000);
if (context.flags.c()) goto notneartextend;
@@ -8573,9 +8573,9 @@ notneartextend:
}
static void purgeanitem(Context & context) {
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.di = 0+2080+30000;
- context.bl = context.data.byte(184);
+ context.bl = context.data.byte(183);
context.cx = 0;
lookforpurge:
context.al = context.ds.byte(context.di+2);
@@ -8596,7 +8596,7 @@ cantpurge:
context._cmp(context.cx, 114);
if (!context.flags.z()) goto lookforpurge;
context.di = 0+2080+30000;
- context.bl = context.data.byte(184);
+ context.bl = context.data.byte(183);
context.cx = 0;
lookforpurge2:
context.al = context.ds.byte(context.di+2);
@@ -8681,7 +8681,7 @@ static void deleteexframe(Context & context) {
context.ds = context.es;
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.data.word(12), context.bx);
+ context._sub(context.data.word(10), context.bx);
context.si = context.pop();
context.cx = 114*3;
context.di = 0;
@@ -8722,7 +8722,7 @@ findlenextext:
context._sub(context.cx, context.bx);
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.data.word(14), context.bx);
+ context._sub(context.data.word(12), context.bx);
context.si = context.pop();
context.cx = 114;
context.di = 0+2080+30000+(16*114);
@@ -8741,7 +8741,7 @@ beforethistext:
static void blockget(Context & context) {
context.ah = context.al;
context.al = 0;
- context.ds = context.data.word(416);
+ context.ds = context.data.word(414);
context.si = 0+192;
context._add(context.si, context.ax);
return;
@@ -8759,7 +8759,7 @@ static void drawfloor(Context & context) {
showallex(context);
paneltomap(context);
initrain(context);
- context.data.byte(62) = 0;
+ context.data.byte(61) = 0;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -8776,8 +8776,8 @@ static void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.data.word(121));
- context.data.word(117) = context.ax;
+ context._add(context.ax, context.data.word(119));
+ context.data.word(115) = context.ax;
context.dx = context.pop();
context.cx = context.pop();
context.al = 10;
@@ -8787,13 +8787,13 @@ static void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.data.word(123));
- context.data.word(119) = context.ax;
+ context._add(context.ax, context.data.word(121));
+ context.data.word(117) = context.ax;
return;
}
static void getdimension(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32);
context.ch = 0;
dimloop1:
@@ -8845,14 +8845,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.word(125) = context.ax;
+ context.data.word(123) = context.ax;
context.al = context.ch;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.word(127) = context.ax;
+ context.data.word(125) = context.ax;
context._sub(context.dl, context.cl);
context._sub(context.dh, context.ch);
context.al = context.dl;
@@ -8861,14 +8861,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.byte(128) = context.al;
+ context.data.byte(127) = context.al;
context.al = context.dh;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.byte(129) = context.al;
+ context.data.byte(128) = context.al;
return;
}
@@ -8903,13 +8903,13 @@ gotlength:
}
static void drawflags(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32);
- context.al = context.data.byte(149);
+ context.al = context.data.byte(148);
context.ah = 0;
context.cx = 66;
context._mul(context.cx);
- context.bl = context.data.byte(148);
+ context.bl = context.data.byte(147);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -8919,9 +8919,9 @@ _tmp28:
context.push(context.cx);
context.cx = 11;
_tmp28a:
- context.ds = context.data.word(418);
- context._lodsb();
context.ds = context.data.word(416);
+ context._lodsb();
+ context.ds = context.data.word(414);
context.push(context.si);
context.push(context.ax);
context.ah = 0;
@@ -8940,9 +8940,9 @@ _tmp28a:
}
static void eraseoldobs(Context & context) {
- context._cmp(context.data.byte(62), 0);
+ context._cmp(context.data.byte(61), 0);
if (context.flags.z()) goto donterase;
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
oberase:
@@ -8965,21 +8965,21 @@ donterase:
}
static void showallobs(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32);
- context.data.word(18) = context.bx;
+ context.data.word(16) = context.bx;
context.di = context.bx;
context.cx = 128*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(444);
- context.data.word(166) = context.es;
+ context.es = context.data.word(442);
+ context.data.word(164) = context.es;
context.ax = 0;
- context.data.word(164) = context.ax;
- context.ax = 0+2080;
context.data.word(162) = context.ax;
- context.data.byte(181) = 0;
- context.ds = context.data.word(428);
+ context.ax = 0+2080;
+ context.data.word(160) = context.ax;
+ context.data.byte(180) = 0;
+ context.ds = context.data.word(426);
context.si = 0;
context.cx = 128;
showobsloop:
@@ -8987,14 +8987,14 @@ showobsloop:
context.push(context.si);
context.push(context.si);
context._add(context.si, 58);
- context.es = context.data.word(428);
+ context.es = context.data.word(426);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankframe;
context.al = context.ds.byte(context.si+18);
context.ah = 0;
- context.data.word(160) = context.ax;
+ context.data.word(158) = context.ax;
context._cmp(context.al, 255);
if (context.flags.z()) goto blankframe;
context.push(context.es);
@@ -9011,31 +9011,31 @@ showobsloop:
if (context.flags.z()) goto animating;
context._cmp(context.ds.byte(context.si+5), 6);
if (context.flags.z()) goto animating;
- context.ax = context.data.word(160);
+ context.ax = context.data.word(158);
context.ah = 0;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.data.word(115));
+ context._add(context.bx, context.data.word(117));
showframe(context);
goto drawnsetob;
animating:
makebackob(context);
drawnsetob:
- context.si = context.data.word(18);
- context.es = context.data.word(412);
- context.al = context.data.byte(179);
- context.ah = context.data.byte(180);
+ context.si = context.data.word(16);
+ context.es = context.data.word(410);
+ context.al = context.data.byte(178);
+ context.ah = context.data.byte(179);
context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(176);
+ context.ax = context.data.word(174);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.ds.word(context.si+2) = context.ax;
- context.al = context.data.byte(181);
+ context.al = context.data.byte(180);
context.ds.byte(context.si+4) = context.al;
context._add(context.si, 5);
- context.data.word(18) = context.si;
+ context.data.word(16) = context.si;
blankframe:
- context._add(context.data.byte(181), 1);
+ context._add(context.data.byte(180), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 64);
@@ -9047,19 +9047,19 @@ finishedsetobs:
}
static void makebackob(Context & context) {
- context._cmp(context.data.byte(62), 0);
+ context._cmp(context.data.byte(61), 0);
if (context.flags.z()) goto nomake;
context.al = context.ds.byte(context.si+5);
context.ah = context.ds.byte(context.si+8);
context.push(context.si);
context.push(context.ax);
context.push(context.si);
- context.ax = context.data.word(168);
- context.bx = context.data.word(170);
+ context.ax = context.data.word(166);
+ context.bx = context.data.word(168);
context.ah = context.bl;
context.si = context.ax;
context.cx = 49520;
- context.dx = context.data.word(444);
+ context.dx = context.data.word(442);
context.di = 0;
makesprite(context);
context.ax = context.pop();
@@ -9080,61 +9080,61 @@ nomake:
}
static void showallfree(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
- context.data.word(18) = context.bx;
+ context.data.word(16) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
context.cx = 80*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(446);
- context.data.word(166) = context.es;
+ context.es = context.data.word(444);
+ context.data.word(164) = context.es;
context.ax = 0;
- context.data.word(164) = context.ax;
- context.ax = 0+2080;
context.data.word(162) = context.ax;
+ context.ax = 0+2080;
+ context.data.word(160) = context.ax;
context.al = 0;
- context.data.byte(158) = context.al;
- context.ds = context.data.word(426);
+ context.data.byte(157) = context.al;
+ context.ds = context.data.word(424);
context.si = 2;
context.cx = 0;
loop127:
context.push(context.cx);
context.push(context.si);
context.push(context.si);
- context.es = context.data.word(426);
+ context.es = context.data.word(424);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto over138;
- context.al = context.data.byte(158);
+ context.al = context.data.byte(157);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.data.word(160) = context.ax;
+ context.data.word(158) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.data.word(402);
- context.ds = context.data.word(166);
+ context.es = context.data.word(400);
+ context.ds = context.data.word(164);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto over138;
- context.ax = context.data.word(160);
+ context.ax = context.data.word(158);
context.ah = 0;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.data.word(115));
+ context._add(context.bx, context.data.word(117));
showframe(context);
- context.si = context.data.word(18);
- context.es = context.data.word(412);
- context.al = context.data.byte(179);
- context.ah = context.data.byte(180);
+ context.si = context.data.word(16);
+ context.es = context.data.word(410);
+ context.al = context.data.byte(178);
+ context.ah = context.data.byte(179);
context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(176);
+ context.ax = context.data.word(174);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.ds.word(context.si+2) = context.ax;
@@ -9144,9 +9144,9 @@ loop127:
context.push(context.ax);
context.ds.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.data.word(18) = context.si;
+ context.data.word(16) = context.si;
over138:
- context._add(context.data.byte(158), 1);
+ context._add(context.data.byte(157), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9159,66 +9159,66 @@ finfree:
}
static void showallex(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
- context.data.word(18) = context.bx;
+ context.data.word(16) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
context.cx = 100*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(398);
- context.data.word(166) = context.es;
+ context.es = context.data.word(396);
+ context.data.word(164) = context.es;
context.ax = 0;
- context.data.word(164) = context.ax;
- context.ax = 0+2080;
context.data.word(162) = context.ax;
- context.data.byte(157) = 0;
+ context.ax = 0+2080;
+ context.data.word(160) = context.ax;
+ context.data.byte(156) = 0;
context.si = 0+2080+30000+2;
context.cx = 0;
exloop:
context.push(context.cx);
context.push(context.si);
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.push(context.si);
context.ch = 0;
context._cmp(context.ds.byte(context.si), 255);
if (context.flags.z()) goto notinroom;
context.al = context.ds.byte(context.si-2);
- context._cmp(context.al, context.data.byte(184));
+ context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto notinroom;
getmapad(context);
notinroom:
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankex;
- context.al = context.data.byte(157);
+ context.al = context.data.byte(156);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.data.word(160) = context.ax;
+ context.data.word(158) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.data.word(402);
- context.ds = context.data.word(166);
+ context.es = context.data.word(400);
+ context.ds = context.data.word(164);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto blankex;
- context.ax = context.data.word(160);
+ context.ax = context.data.word(158);
context.ah = 0;
- context._add(context.di, context.data.word(117));
- context._add(context.bx, context.data.word(119));
+ context._add(context.di, context.data.word(115));
+ context._add(context.bx, context.data.word(117));
showframe(context);
- context.si = context.data.word(18);
- context.es = context.data.word(412);
- context.al = context.data.byte(179);
- context.ah = context.data.byte(180);
+ context.si = context.data.word(16);
+ context.es = context.data.word(410);
+ context.al = context.data.byte(178);
+ context.ah = context.data.byte(179);
context.ds.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(176);
+ context.ax = context.data.word(174);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.ds.word(context.si+2) = context.ax;
@@ -9228,9 +9228,9 @@ notinroom:
context.push(context.ax);
context.ds.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.data.word(18) = context.si;
+ context.data.word(16) = context.si;
blankex:
- context._add(context.data.byte(157), 1);
+ context._add(context.data.byte(156), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9243,11 +9243,11 @@ finex:
}
static void calcfrframe(Context & context) {
- context.dx = context.data.word(166);
- context.ax = context.data.word(162);
- context.push(context.ax);
- context.cx = context.data.word(164);
+ context.dx = context.data.word(164);
context.ax = context.data.word(160);
+ context.push(context.ax);
+ context.cx = context.data.word(162);
+ context.ax = context.data.word(158);
context.ds = context.dx;
context.bx = 6;
context._mul(context.bx);
@@ -9259,33 +9259,33 @@ static void calcfrframe(Context & context) {
context.bx = context.pop();
context.push(context.dx);
context._add(context.ax, context.bx);
- context.data.word(178) = context.ax;
- context.data.word(176) = context.cx;
+ context.data.word(176) = context.ax;
+ context.data.word(174) = context.cx;
context.ax = context.pop();
context.push(context.ax);
context.ah = 0;
- context.data.word(172) = context.ax;
+ context.data.word(170) = context.ax;
context.ax = context.pop();
context.al = context.ah;
context.ah = 0;
- context.data.word(174) = context.ax;
+ context.data.word(172) = context.ax;
return;
nullframe:
context.ax = context.pop();
context.cx = 0;
- context.data.word(176) = context.cx;
+ context.data.word(174) = context.cx;
return;
}
static void finalframe(Context & context) {
- context.ax = context.data.word(170);
- context._add(context.ax, context.data.word(174));
+ context.ax = context.data.word(168);
+ context._add(context.ax, context.data.word(172));
+ context.bx = context.data.word(166);
+ context._add(context.bx, context.data.word(170));
+ context.data.byte(178) = context.bl;
+ context.data.byte(179) = context.al;
+ context.di = context.data.word(166);
context.bx = context.data.word(168);
- context._add(context.bx, context.data.word(172));
- context.data.byte(179) = context.bl;
- context.data.byte(180) = context.al;
- context.di = context.data.word(168);
- context.bx = context.data.word(170);
return;
}
@@ -9305,11 +9305,11 @@ static void getmapad(Context & context) {
getxad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.data.word(168) = context.ax;
+ context.data.word(166) = context.ax;
getyad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.data.word(170) = context.ax;
+ context.data.word(168) = context.ax;
context.ch = 1;
over146:
return;
@@ -9324,7 +9324,7 @@ static void getxad(Context & context) {
context._add(context.si, 1);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto over148;
- context._sub(context.al, context.data.byte(148));
+ context._sub(context.al, context.data.byte(147));
if (context.flags.c()) goto over148;
context._cmp(context.al, 11);
if (!context.flags.c()) goto over148;
@@ -9344,7 +9344,7 @@ static void getyad(Context & context) {
context._add(context.si, 1);
context.ah = context.ds.byte(context.si);
context._add(context.si, 1);
- context._sub(context.al, context.data.byte(149));
+ context._sub(context.al, context.data.byte(148));
if (context.flags.c()) goto over147;
context._cmp(context.al, 10);
if (!context.flags.c()) goto over147;
@@ -9360,40 +9360,40 @@ over147:
}
static void autolook(Context & context) {
+ context.ax = context.data.word(196);
+ context._cmp(context.ax, context.data.word(212));
+ if (!context.flags.z()) goto diffmouse;
context.ax = context.data.word(198);
context._cmp(context.ax, context.data.word(214));
if (!context.flags.z()) goto diffmouse;
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(216));
- if (!context.flags.z()) goto diffmouse;
- context._sub(context.data.word(98), 1);
- context._cmp(context.data.word(98), 0);
+ context._sub(context.data.word(96), 1);
+ context._cmp(context.data.word(96), 0);
if (!context.flags.z()) goto noautolook;
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.data.word(19), 0);
if (!context.flags.z()) goto noautolook;
dolook(context);
noautolook:
return;
diffmouse:
- context.data.word(98) = 1000;
+ context.data.word(96) = 1000;
return;
}
static void look(Context & context) {
- context._cmp(context.data.word(21), 0);
+ context._cmp(context.data.word(19), 0);
if (!context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(234), 2);
+ context._cmp(context.data.byte(233), 2);
if (context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(100), 241);
+ context._cmp(context.data.byte(99), 241);
if (context.flags.z()) goto alreadylook;
- context.data.byte(100) = 241;
+ context.data.byte(99) = 241;
context.al = 25;
commandonly(context);
alreadylook:
- context._cmp(context.data.word(202), 1);
+ context._cmp(context.data.word(200), 1);
if (!context.flags.z()) goto nolook;
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nolook;
dolook(context);
nolook:
@@ -9405,19 +9405,19 @@ static void dolook(Context & context) {
showicon(context);
undertextline(context);
worktoscreenm(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
dumptextline(context);
- context.bl = context.data.byte(185);
+ context.bl = context.data.byte(184);
context._and(context.bl, 31);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(436);
+ context.es = context.data.word(434);
context._add(context.bx, 0);
context.si = context.ds.word(context.bx);
context._add(context.si, 0+(38*2));
findnextcolon(context);
context.di = 66;
- context._cmp(context.data.byte(184), 50);
+ context._cmp(context.data.byte(183), 50);
if (context.flags.c()) goto notdream3;
context.di = 40;
notdream3:
@@ -9429,17 +9429,17 @@ notdream3:
context.cx = 400;
hangonp(context);
afterlook:
- context.data.byte(234) = 0;
- context.data.byte(100) = 0;
+ context.data.byte(233) = 0;
+ context.data.byte(99) = 0;
redrawmainscrn(context);
worktoscreenm(context);
return;
}
static void redrawmainscrn(Context & context) {
- context.data.word(328) = 0;
+ context.data.word(326) = 0;
createpanel(context);
- context.data.byte(62) = 0;
+ context.data.byte(61) = 0;
drawfloor(context);
printsprites(context);
reelsonscreen(context);
@@ -9447,40 +9447,40 @@ static void redrawmainscrn(Context & context) {
getunderzoom(context);
undertextline(context);
readmouse(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
return;
}
static void getback1(Context & context) {
- context._cmp(context.data.byte(106), 0);
+ context._cmp(context.data.byte(105), 0);
if (context.flags.z()) goto notgotobject;
blank(context);
return;
notgotobject:
- context._cmp(context.data.byte(100), 202);
+ context._cmp(context.data.byte(99), 202);
if (context.flags.z()) goto alreadyget;
- context.data.byte(100) = 202;
+ context.data.byte(99) = 202;
context.al = 26;
commandonly(context);
alreadyget:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nogetback;
context._and(context.ax, 1);
if (!context.flags.z()) goto dogetback;
nogetback:
return;
dogetback:
- context.data.byte(103) = 1;
- context.data.byte(106) = 0;
+ context.data.byte(102) = 1;
+ context.data.byte(105) = 0;
return;
}
static void talk(Context & context) {
- context.data.byte(246) = 0;
- context.data.byte(237) = 0;
- context.al = context.data.byte(99);
- context.data.byte(247) = context.al;
+ context.data.byte(245) = 0;
+ context.data.byte(236) = 0;
+ context.al = context.data.byte(98);
+ context.data.byte(246) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -9488,7 +9488,7 @@ static void talk(Context & context) {
undertextline(context);
convicons(context);
starttalk(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -9500,15 +9500,15 @@ waittalk:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.data.byte(103) = 0;
+ context.data.byte(102) = 0;
context.bx = 2660;
checkcoords(context);
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.data.byte(102), 0);
if (context.flags.z()) goto waittalk;
finishtalk:
- context.bx = context.data.word(249);
+ context.bx = context.data.word(247);
context.es = context.cs;
- context._cmp(context.data.byte(246), 4);
+ context._cmp(context.data.byte(245), 4);
if (context.flags.c()) goto notnexttalk;
context.al = context.ds.byte(context.bx+7);
context._or(context.al, 128);
@@ -9516,25 +9516,25 @@ finishtalk:
notnexttalk:
redrawmainscrn(context);
worktoscreenm(context);
- context._cmp(context.data.byte(383), 1);
+ context._cmp(context.data.byte(382), 1);
if (!context.flags.z()) goto nospeech;
cancelch1(context);
- context.data.byte(388) = -1;
- context.data.byte(387) = 0;
+ context.data.byte(387) = -1;
+ context.data.byte(386) = 0;
nospeech:
return;
}
static void convicons(Context & context) {
- context.al = context.data.byte(247);
+ context.al = context.data.byte(246);
context._and(context.al, 127);
getpersframe(context);
context.di = 234;
context.bx = 2;
- context.data.word(160) = context.ax;
+ context.data.word(158) = context.ax;
findsource(context);
- context.ax = context.data.word(160);
- context._sub(context.ax, context.data.word(244));
+ context.ax = context.data.word(158);
+ context._sub(context.ax, context.data.word(242));
context.ah = 0;
showframe(context);
return;
@@ -9544,25 +9544,25 @@ static void getpersframe(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
- context.es = context.data.word(448);
+ context.es = context.data.word(446);
context._add(context.bx, 0);
context.ax = context.ds.word(context.bx);
return;
}
static void starttalk(Context & context) {
- context.data.byte(245) = 0;
- context.al = context.data.byte(247);
+ context.data.byte(244) = 0;
+ context.al = context.data.byte(246);
context._and(context.al, 127);
getpersontext(context);
- context.data.word(71) = 91+91;
+ context.data.word(69) = 91+91;
context.di = 66;
context.bx = 64;
context.dl = 241;
context.al = 0;
context.ah = 79;
printdirect(context);
- context.data.word(71) = 0;
+ context.data.word(69) = 0;
context.di = 66;
context.bx = 80;
context.dl = 241;
@@ -9578,7 +9578,7 @@ static void getpersontext(Context & context) {
context.cx = 64*2;
context._mul(context.cx);
context.si = context.ax;
- context.es = context.data.word(448);
+ context.es = context.data.word(446);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.ds.word(context.si);
@@ -9588,30 +9588,30 @@ static void getpersontext(Context & context) {
}
static void moretalk(Context & context) {
- context._cmp(context.data.byte(245), 0);
+ context._cmp(context.data.byte(244), 0);
if (context.flags.z()) goto canmore;
redes(context);
return;
canmore:
- context._cmp(context.data.byte(100), 215);
+ context._cmp(context.data.byte(99), 215);
if (context.flags.z()) goto alreadymore;
- context.data.byte(100) = 215;
+ context.data.byte(99) = 215;
context.al = 49;
commandonly(context);
alreadymore:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nomore;
context._and(context.ax, 1);
if (!context.flags.z()) goto domoretalk;
nomore:
return;
domoretalk:
- context.data.byte(245) = 2;
- context.data.byte(246) = 4;
- context._cmp(context.data.byte(247), 100);
+ context.data.byte(244) = 2;
+ context.data.byte(245) = 4;
+ context._cmp(context.data.byte(246), 100);
if (context.flags.c()) goto notsecondpart;
- context.data.byte(246) = 48;
+ context.data.byte(245) = 48;
notsecondpart:
dosometalk(context);
return;
@@ -9619,19 +9619,19 @@ notsecondpart:
static void dosometalk(Context & context) {
watchtalk:
+ context.al = context.data.byte(245);
context.al = context.data.byte(246);
- context.al = context.data.byte(247);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.data.byte(246);
+ context.al = context.data.byte(245);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.data.word(448);
+ context.es = context.data.word(446);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.ds.word(context.si);
@@ -9654,24 +9654,24 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.data.byte(234) = 3;
+ context.data.byte(233) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
- context._add(context.data.byte(246), 1);
+ context._add(context.data.byte(245), 1);
+ context.al = context.data.byte(245);
context.al = context.data.byte(246);
- context.al = context.data.byte(247);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.data.byte(246);
+ context.al = context.data.byte(245);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.data.word(448);
+ context.es = context.data.word(446);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.ds.word(context.si);
@@ -9698,20 +9698,20 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.data.byte(234) = 3;
+ context.data.byte(233) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
skiptalk:
- context._add(context.data.byte(246), 1);
+ context._add(context.data.byte(245), 1);
goto watchtalk;
endwatchtalk:
- context.data.byte(234) = 0;
+ context.data.byte(233) = 0;
return;
}
static void hangonpq(Context & context) {
- context.data.byte(103) = 0;
+ context.data.byte(102) = 0;
context.bx = 0;
hangloopq:
context.push(context.cx);
@@ -9727,48 +9727,48 @@ hangloopq:
checkcoords(context);
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.data.byte(102), 1);
if (context.flags.z()) goto quitconv;
- context._cmp(context.data.byte(383), 1);
+ context._cmp(context.data.byte(382), 1);
if (!context.flags.z()) goto notspeaking;
- context._cmp(context.data.byte(515), 255);
+ context._cmp(context.data.byte(514), 255);
if (!context.flags.z()) goto notspeaking;
context._add(context.bx, 1);
context._cmp(context.bx, 40);
if (context.flags.z()) goto finishconv;
notspeaking:
- context._cmp(context.data.word(202), 0);
+ context._cmp(context.data.word(200), 0);
if (context.flags.z()) goto hangloopq;
- context._cmp(context.data.word(212), 0);
+ context._cmp(context.data.word(210), 0);
if (!context.flags.z()) goto hangloopq;
finishconv:
delpointer(context);
- context.data.byte(234) = 0;
+ context.data.byte(233) = 0;
return;
quitconv:
delpointer(context);
- context.data.byte(234) = 0;
+ context.data.byte(233) = 0;
context.ax = context.pop();
cancelch1(context);
return;
}
static void redes(Context & context) {
- context._cmp(context.data.byte(515), 255);
+ context._cmp(context.data.byte(514), 255);
if (!context.flags.z()) goto cantredes;
- context._cmp(context.data.byte(245), 2);
+ context._cmp(context.data.byte(244), 2);
if (context.flags.z()) goto canredes;
cantredes:
blank(context);
return;
canredes:
- context._cmp(context.data.byte(100), 217);
+ context._cmp(context.data.byte(99), 217);
if (context.flags.z()) goto alreadyreds;
- context.data.byte(100) = 217;
+ context.data.byte(99) = 217;
context.al = 50;
commandonly(context);
alreadyreds:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._and(context.ax, 1);
if (!context.flags.z()) goto doredes;
return;
@@ -9788,27 +9788,27 @@ doredes:
}
static void newplace(Context & context) {
- context._cmp(context.data.byte(60), 1);
+ context._cmp(context.data.byte(59), 1);
if (context.flags.z()) goto istravel;
- context._cmp(context.data.byte(189), -1);
+ context._cmp(context.data.byte(188), -1);
if (!context.flags.z()) goto isautoloc;
return;
isautoloc:
- context.al = context.data.byte(189);
- context.data.byte(188) = context.al;
- context.data.byte(189) = -1;
+ context.al = context.data.byte(188);
+ context.data.byte(187) = context.al;
+ context.data.byte(188) = -1;
return;
istravel:
- context.data.byte(60) = 0;
+ context.data.byte(59) = 0;
selectlocation(context);
return;
}
static void selectlocation(Context & context) {
- context.data.byte(237) = 0;
+ context.data.byte(236) = 0;
clearbeforeload(context);
- context.data.byte(103) = 0;
- context.data.byte(231) = 22;
+ context.data.byte(102) = 0;
+ context.data.byte(230) = 22;
readcitypic(context);
showcity(context);
getridoftemp(context);
@@ -9820,15 +9820,15 @@ static void selectlocation(Context & context) {
showexit(context);
locationpic(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
readmouse(context);
- context.data.byte(231) = 0;
+ context.data.byte(230) = 0;
showpointer(context);
worktoscreen(context);
context.al = 9;
context.ah = 255;
playchannel0(context);
- context.data.byte(188) = 255;
+ context.data.byte(187) = 255;
select:
delpointer(context);
readmouse(context);
@@ -9836,42 +9836,42 @@ select:
vsync(context);
dumppointer(context);
dumptextline(context);
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.data.byte(102), 1);
if (context.flags.z()) goto quittravel;
context.bx = 2714;
checkcoords(context);
- context._cmp(context.data.byte(188), 255);
+ context._cmp(context.data.byte(187), 255);
if (context.flags.z()) goto select;
- context.al = context.data.byte(188);
- context._cmp(context.al, context.data.byte(9));
+ context.al = context.data.byte(187);
+ context._cmp(context.al, context.data.byte(8));
if (context.flags.z()) goto quittravel;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.data.word(456);
+ context.es = context.data.word(454);
deallocatemem(context);
return;
quittravel:
- context.al = context.data.byte(184);
- context.data.byte(188) = context.al;
- context.data.byte(103) = 0;
+ context.al = context.data.byte(183);
+ context.data.byte(187) = context.al;
+ context.data.byte(102) = 0;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.data.word(456);
+ context.es = context.data.word(454);
deallocatemem(context);
return;
}
static void showcity(Context & context) {
clearwork(context);
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.di = 57;
context.bx = 32;
context.al = 0;
context.ah = 0;
showframe(context);
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.di = 120+57;
context.bx = 32;
context.al = 1;
@@ -9881,25 +9881,25 @@ static void showcity(Context & context) {
}
static void lookatplace(Context & context) {
- context._cmp(context.data.byte(100), 224);
+ context._cmp(context.data.byte(99), 224);
if (context.flags.z()) goto alreadyinfo;
- context.data.byte(100) = 224;
+ context.data.byte(99) = 224;
context.al = 27;
commandonly(context);
alreadyinfo:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._and(context.ax, 1);
if (context.flags.z()) goto noinfo;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto noinfo;
- context.bl = context.data.byte(183);
+ context.bl = context.data.byte(182);
context._cmp(context.bl, 15);
if (!context.flags.c()) goto noinfo;
context.push(context.bx);
delpointer(context);
deltextline(context);
getundercentre(context);
- context.ds = context.data.word(462);
+ context.ds = context.data.word(460);
context.al = 0;
context.ah = 0;
context.di = 60;
@@ -9918,7 +9918,7 @@ alreadyinfo:
context.bx = context.pop();
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(456);
+ context.es = context.data.word(454);
context.si = context.ds.word(context.bx);
context._add(context.si, 66*2);
findnextcolon(context);
@@ -9932,8 +9932,8 @@ alreadyinfo:
context.cx = 500;
hangonp(context);
afterinfo:
- context.data.byte(234) = 0;
- context.data.byte(231) = 0;
+ context.data.byte(233) = 0;
+ context.data.byte(230) = 0;
putundercentre(context);
worktoscreenm(context);
noinfo:
@@ -9943,7 +9943,7 @@ noinfo:
static void getundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9954,7 +9954,7 @@ static void getundercentre(Context & context) {
static void putundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9970,12 +9970,12 @@ static void locationpic(Context & context) {
context.di = 0;
context._cmp(context.al, 6);
if (!context.flags.c()) goto secondlot;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context._add(context.al, 4);
goto gotgraphic;
secondlot:
context._sub(context.al, 6);
- context.ds = context.data.word(460);
+ context.ds = context.data.word(458);
gotgraphic:
context._add(context.di, 104);
context.bx = 138+14;
@@ -9983,20 +9983,20 @@ gotgraphic:
showframe(context);
context.si = context.pop();
context.es = context.pop();
- context.al = context.data.byte(183);
- context._cmp(context.al, context.data.byte(184));
+ context.al = context.data.byte(182);
+ context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto notinthisone;
context.al = 3;
context.di = 104;
context.bx = 140+14;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.ah = 0;
showframe(context);
notinthisone:
- context.bl = context.data.byte(183);
+ context.bl = context.data.byte(182);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(456);
+ context.es = context.data.word(454);
context.si = context.ds.word(context.bx);
context._add(context.si, 66*2);
context.di = 50;
@@ -10009,19 +10009,19 @@ notinthisone:
}
static void getdestinfo(Context & context) {
- context.al = context.data.byte(183);
+ context.al = context.data.byte(182);
context.ah = 0;
context.push(context.ax);
context.dx = context.ds;
context.es = context.dx;
- context.si = 7798;
+ context.si = 7782;
context._add(context.si, context.ax);
context.cl = context.ds.byte(context.si);
context.ax = context.pop();
context.push(context.cx);
context.dx = context.ds;
context.es = context.dx;
- context.si = 7813;
+ context.si = 7798;
context._add(context.si, context.ax);
context.ax = context.pop();
return;
@@ -10030,19 +10030,19 @@ static void getdestinfo(Context & context) {
static void showarrows(Context & context) {
context.di = 116-12;
context.bx = 16;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 0;
context.ah = 0;
showframe(context);
context.di = 226+12;
context.bx = 16;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 280;
context.bx = 14;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 2;
context.ah = 0;
showframe(context);
@@ -10051,27 +10051,27 @@ static void showarrows(Context & context) {
static void nextdest(Context & context) {
duok:
- context._cmp(context.data.byte(100), 218);
+ context._cmp(context.data.byte(99), 218);
if (context.flags.z()) goto alreadydu;
- context.data.byte(100) = 218;
+ context.data.byte(99) = 218;
context.al = 28;
commandonly(context);
alreadydu:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._and(context.ax, 1);
if (context.flags.z()) goto nodu;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nodu;
searchdestup:
- context._add(context.data.byte(183), 1);
- context._cmp(context.data.byte(183), 15);
+ context._add(context.data.byte(182), 1);
+ context._cmp(context.data.byte(182), 15);
if (!context.flags.z()) goto notlastdest;
- context.data.byte(183) = 0;
+ context.data.byte(182) = 0;
notlastdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestup;
- context.data.byte(109) = 1;
+ context.data.byte(108) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10089,27 +10089,27 @@ nodu:
static void lastdest(Context & context) {
ddok:
- context._cmp(context.data.byte(100), 219);
+ context._cmp(context.data.byte(99), 219);
if (context.flags.z()) goto alreadydd;
- context.data.byte(100) = 219;
+ context.data.byte(99) = 219;
context.al = 29;
commandonly(context);
alreadydd:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._and(context.ax, 1);
if (context.flags.z()) goto nodd;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nodd;
searchdestdown:
- context._sub(context.data.byte(183), 1);
- context._cmp(context.data.byte(183), -1);
+ context._sub(context.data.byte(182), 1);
+ context._cmp(context.data.byte(182), -1);
if (!context.flags.z()) goto notfirstdest;
- context.data.byte(183) = 15;
+ context.data.byte(182) = 15;
notfirstdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestdown;
- context.data.byte(109) = 1;
+ context.data.byte(108) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10126,20 +10126,20 @@ nodd:
}
static void destselect(Context & context) {
- context._cmp(context.data.byte(100), 222);
+ context._cmp(context.data.byte(99), 222);
if (context.flags.z()) goto alreadytrav;
- context.data.byte(100) = 222;
+ context.data.byte(99) = 222;
context.al = 30;
commandonly(context);
alreadytrav:
- context.ax = context.data.word(202);
+ context.ax = context.data.word(200);
context._and(context.ax, 1);
if (context.flags.z()) goto notrav;
- context._cmp(context.ax, context.data.word(212));
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto notrav;
getdestinfo(context);
- context.al = context.data.byte(183);
- context.data.byte(188) = context.al;
+ context.al = context.data.byte(182);
+ context.data.byte(187) = context.al;
notrav:
return;
}
@@ -10149,7 +10149,7 @@ static void getlocation(Context & context) {
context.bx = context.ax;
context.dx = context.ds;
context.es = context.dx;
- context._add(context.bx, 7798);
+ context._add(context.bx, 7782);
context.al = context.ds.byte(context.bx);
return;
}
@@ -10159,7 +10159,7 @@ static void setlocation(Context & context) {
context.bx = context.ax;
context.dx = context.ds;
context.es = context.dx;
- context._add(context.bx, 7798);
+ context._add(context.bx, 7782);
context.ds.byte(context.bx) = 1;
return;
}
@@ -10206,31 +10206,31 @@ clearedlocations:
context.bx = context.ax;
context.dx = context.ds;
context.es = context.dx;
- context._add(context.bx, 7798);
+ context._add(context.bx, 7782);
context.ds.byte(context.bx) = 0;
return;
}
static void readdesticon(Context & context) {
- context.dx = 2026;
+ context.dx = 2013;
loadintotemp(context);
- context.dx = 2039;
+ context.dx = 2026;
loadintotemp2(context);
- context.dx = 1974;
+ context.dx = 1961;
loadintotemp3(context);
return;
}
static void readcitypic(Context & context) {
- context.dx = 2013;
+ context.dx = 2000;
loadintotemp(context);
return;
}
static void usemon(Context & context) {
- context.data.byte(55) = 0;
+ context.data.byte(54) = 0;
context.es = context.cs;
- context.di = 2895+1;
+ context.di = 2892+1;
context.cx = 12;
context.al = 32;
while(--context.cx) context._stosb();
@@ -10253,12 +10253,12 @@ keyloop:
showicon(context);
drawfloor(context);
getridofall(context);
- context.dx = 1987;
+ context.dx = 1974;
loadintotemp(context);
loadpersonal(context);
loadnews(context);
loadcart(context);
- context.dx = 1883;
+ context.dx = 1870;
loadtempcharset(context);
printoutermon(context);
initialmoncols(context);
@@ -10267,8 +10267,8 @@ keyloop:
turnonpower(context);
fadeupyellows(context);
fadeupmonfirst(context);
- context.data.word(318) = 76;
- context.data.word(320) = 141;
+ context.data.word(316) = 76;
+ context.data.word(318) = 141;
context.al = 1;
monmessage(context);
context.cx = 120;
@@ -10283,34 +10283,34 @@ keyloop:
hangoncurs(context);
printlogo(context);
scrollmonitor(context);
+ context.data.word(392) = 0;
context.data.word(394) = 0;
- context.data.word(396) = 0;
moreinput:
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.data.word(318) = context.di;
- context.data.word(320) = context.bx;
+ context.data.word(316) = context.di;
+ context.data.word(318) = context.bx;
execcommand(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto moreinput;
endmon:
getridoftemp(context);
getridoftempcharset(context);
+ context.es = context.data.word(464);
+ deallocatemem(context);
context.es = context.data.word(466);
deallocatemem(context);
context.es = context.data.word(468);
deallocatemem(context);
- context.es = context.data.word(470);
- deallocatemem(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
context.al = 26;
playchannel1(context);
- context.data.byte(131) = 0;
+ context.data.byte(130) = 0;
restoreall(context);
redrawmainscrn(context);
worktoscreenm(context);
@@ -10320,25 +10320,25 @@ endmon:
static void printoutermon(Context & context) {
context.di = 40;
context.bx = 32;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 264;
context.bx = 32;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 2;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 12;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 3;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 164;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 4;
context.ah = 0;
showframe(context);
@@ -10346,13 +10346,13 @@ static void printoutermon(Context & context) {
}
static void loadpersonal(Context & context) {
- context.al = context.data.byte(9);
- context.dx = 2065;
+ context.al = context.data.byte(8);
+ context.dx = 2052;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundpersonal;
context._cmp(context.al, 42);
if (context.flags.z()) goto foundpersonal;
- context.dx = 2078;
+ context.dx = 2065;
context._cmp(context.al, 2);
if (context.flags.z()) goto foundpersonal;
foundpersonal:
@@ -10363,7 +10363,7 @@ foundpersonal:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(466) = context.ax;
+ context.data.word(464) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10373,17 +10373,17 @@ foundpersonal:
}
static void loadnews(Context & context) {
- context.al = context.data.byte(34);
- context.dx = 2091;
+ context.al = context.data.byte(33);
+ context.dx = 2078;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundnews;
- context.dx = 2104;
+ context.dx = 2091;
context._cmp(context.al, 1);
if (context.flags.z()) goto foundnews;
- context.dx = 2117;
+ context.dx = 2104;
context._cmp(context.al, 2);
if (context.flags.z()) goto foundnews;
- context.dx = 2130;
+ context.dx = 2117;
foundnews:
openfile(context);
readheader(context);
@@ -10392,7 +10392,7 @@ foundnews:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(468) = context.ax;
+ context.data.word(466) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10403,19 +10403,19 @@ foundnews:
static void loadcart(Context & context) {
lookininterface(context);
- context.dx = 2143;
+ context.dx = 2130;
context._cmp(context.al, 0);
if (context.flags.z()) goto gotcart;
- context.dx = 2156;
+ context.dx = 2143;
context._cmp(context.al, 1);
if (context.flags.z()) goto gotcart;
- context.dx = 2169;
+ context.dx = 2156;
context._cmp(context.al, 2);
if (context.flags.z()) goto gotcart;
- context.dx = 2182;
+ context.dx = 2169;
context._cmp(context.al, 3);
if (context.flags.z()) goto gotcart;
- context.dx = 2195;
+ context.dx = 2182;
gotcart:
openfile(context);
readheader(context);
@@ -10424,7 +10424,7 @@ gotcart:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(470) = context.ax;
+ context.data.word(468) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10490,7 +10490,7 @@ chosenaccess:
static void powerlighton(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 6;
context.ah = 0;
context.push(context.di);
@@ -10507,7 +10507,7 @@ static void powerlighton(Context & context) {
static void powerlightoff(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 5;
context.ah = 0;
context.push(context.di);
@@ -10524,7 +10524,7 @@ static void powerlightoff(Context & context) {
static void accesslighton(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 8;
context.ah = 0;
context.push(context.di);
@@ -10541,7 +10541,7 @@ static void accesslighton(Context & context) {
static void accesslightoff(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 7;
context.ah = 0;
context.push(context.di);
@@ -10558,7 +10558,7 @@ static void accesslightoff(Context & context) {
static void locklighton(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 10;
context.ah = 0;
context.push(context.di);
@@ -10575,7 +10575,7 @@ static void locklighton(Context & context) {
static void locklightoff(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 9;
context.ah = 0;
context.push(context.di);
@@ -10591,66 +10591,66 @@ static void locklightoff(Context & context) {
static void input(Context & context) {
context.es = context.cs;
- context.di = 7944;
+ context.di = 7816;
context.cx = 64;
context.al = 0;
while(--context.cx) context._stosb();
- context.data.word(316) = 0;
+ context.data.word(314) = 0;
context.al = '>';
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
+ context.ds = context.data.word(404);
context.ah = 0;
printchar(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
context.cl = 6;
context.ch = 8;
multidump(context);
- context._add(context.data.word(318), 6);
+ context._add(context.data.word(316), 6);
+ context.ax = context.data.word(316);
+ context.data.word(310) = context.ax;
context.ax = context.data.word(318);
context.data.word(312) = context.ax;
- context.ax = context.data.word(320);
- context.data.word(314) = context.ax;
waitkey:
printcurs(context);
vsync(context);
delcurs(context);
readkey(context);
- context.al = context.data.byte(142);
+ context.al = context.data.byte(141);
context._cmp(context.al, 0);
if (context.flags.z()) goto waitkey;
context._cmp(context.al, 13);
if (context.flags.z()) goto endofinput;
context._cmp(context.al, 8);
if (!context.flags.z()) goto notdel;
- context._cmp(context.data.word(316), 0);
+ context._cmp(context.data.word(314), 0);
if (context.flags.z()) goto waitkey;
delchar(context);
goto waitkey;
notdel:
- context._cmp(context.data.word(316), 28);
+ context._cmp(context.data.word(314), 28);
if (context.flags.z()) goto waitkey;
- context._cmp(context.data.byte(142), 32);
+ context._cmp(context.data.byte(141), 32);
if (!context.flags.z()) goto notleadingspace;
- context._cmp(context.data.word(316), 0);
+ context._cmp(context.data.word(314), 0);
if (context.flags.z()) goto waitkey;
notleadingspace:
makecaps(context);
context.es = context.cs;
- context.si = context.data.word(316);
+ context.si = context.data.word(314);
context._add(context.si, context.si);
- context._add(context.si, 7944);
+ context._add(context.si, 7816);
context.ds.byte(context.si) = context.al;
context._cmp(context.al, 'Z'+1);
if (!context.flags.c()) goto waitkey;
context.push(context.ax);
context.push(context.es);
context.push(context.si);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(402);
- context.ax = context.data.word(316);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
+ context.ds = context.data.word(400);
+ context.ax = context.data.word(314);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
@@ -10661,18 +10661,18 @@ notleadingspace:
context.ax = context.pop();
context.push(context.es);
context.push(context.si);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(406);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
+ context.ds = context.data.word(404);
context.ah = 0;
printchar(context);
context.si = context.pop();
context.es = context.pop();
context.ds.byte(context.si+1) = context.cl;
context.ch = 0;
- context._add(context.data.word(318), context.cx);
- context._add(context.data.word(316), 1);
- context._add(context.data.word(312), context.cx);
+ context._add(context.data.word(316), context.cx);
+ context._add(context.data.word(314), 1);
+ context._add(context.data.word(310), context.cx);
goto waitkey;
endofinput:
return;
@@ -10687,27 +10687,27 @@ notupperc:
}
static void delchar(Context & context) {
- context._sub(context.data.word(316), 1);
- context.si = context.data.word(316);
+ context._sub(context.data.word(314), 1);
+ context.si = context.data.word(314);
context._add(context.si, context.si);
context.es = context.cs;
- context._add(context.si, 7944);
+ context._add(context.si, 7816);
context.ds.byte(context.si) = 0;
context.al = context.ds.byte(context.si+1);
context.ah = 0;
- context._sub(context.data.word(318), context.ax);
- context._sub(context.data.word(312), context.ax);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
- context.ds = context.data.word(402);
- context.ax = context.data.word(316);
+ context._sub(context.data.word(316), context.ax);
+ context._sub(context.data.word(310), context.ax);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
+ context.ds = context.data.word(400);
+ context.ax = context.data.word(314);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
context.ch = 8;
multiput(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
context.cl = context.al;
context.ch = 8;
multidump(context);
@@ -10718,7 +10718,7 @@ static void execcommand(Context & context) {
context.es = context.cs;
context.bx = 2776;
context.ds = context.cs;
- context.si = 7944;
+ context.si = 7816;
context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
if (!context.flags.z()) goto notblankinp;
@@ -10803,12 +10803,12 @@ static void dircom(Context & context) {
dirfile(context);
return;
dirroot:
- context.data.byte(269) = 0;
+ context.data.byte(268) = 0;
context.ds = context.cs;
context.si = 2885;
context._add(context.si, 1);
context.es = context.cs;
- context.di = 2895;
+ context.di = 2892;
context._add(context.di, 1);
context.cx = 12;
while(--context.cx) context._movsb();
@@ -10816,12 +10816,12 @@ dirroot:
scrollmonitor(context);
context.al = 9;
monmessage(context);
+ context.es = context.data.word(464);
+ searchforfiles(context);
context.es = context.data.word(466);
searchforfiles(context);
context.es = context.data.word(468);
searchforfiles(context);
- context.es = context.data.word(470);
- searchforfiles(context);
scrollmonitor(context);
return;
}
@@ -10889,22 +10889,22 @@ notyetassigned:
scrollmonitor(context);
context.al = 15;
monmessage(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.data.word(318) = context.di;
- context.data.word(320) = context.bx;
+ context.data.word(316) = context.di;
+ context.data.word(318) = context.bx;
context.bx = context.pop();
context.es = context.pop();
context.push(context.es);
context.push(context.bx);
context._add(context.bx, 2);
context.ds = context.cs;
- context.si = 7944;
+ context.si = 7816;
checkpass:
context._lodsw();
context.ah = context.ds.byte(context.bx);
@@ -10971,23 +10971,23 @@ static void read(Context & context) {
return;
okcom:
context.es = context.cs;
- context.di = 2895;
- context.ax = context.data.word(466);
- context.data.word(324) = context.ax;
+ context.di = 2892;
+ context.ax = context.data.word(464);
+ context.data.word(322) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(468);
- context.data.word(324) = context.ax;
+ context.ax = context.data.word(466);
+ context.data.word(322) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(470);
- context.data.word(324) = context.ax;
+ context.ax = context.data.word(468);
+ context.data.word(322) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
@@ -11004,12 +11004,12 @@ foundfile2:
keyok1:
context.es = context.cs;
context.di = 2883;
- context.ds = context.data.word(324);
+ context.ds = context.data.word(322);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto findtopictext;
- context.al = context.data.byte(270);
- context.data.byte(269) = context.al;
+ context.al = context.data.byte(269);
+ context.data.byte(268) = context.al;
context.al = 11;
monmessage(context);
return;
@@ -11048,7 +11048,7 @@ static void dirfile(Context & context) {
context.ds.byte(context.di) = context.al;
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(466);
+ context.ds = context.data.word(464);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11057,7 +11057,7 @@ static void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(468);
+ context.ds = context.data.word(466);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11066,7 +11066,7 @@ static void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(470);
+ context.ds = context.data.word(468);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11089,7 +11089,7 @@ keyok2:
context.ds = context.cs;
context.si = 2883+1;
context.es = context.cs;
- context.di = 2895+1;
+ context.di = 2892+1;
context.cx = 12;
while(--context.cx) context._movsb();
monitorlogo(context);
@@ -11118,15 +11118,15 @@ static void getkeyandlogo(Context & context) {
context._add(context.bx, 1);
context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
- context.data.byte(271) = context.al;
+ context.data.byte(270) = context.al;
context._add(context.bx, 2);
context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
- context.data.byte(276) = context.al;
+ context.data.byte(275) = context.al;
context._add(context.bx, 1);
context.push(context.es);
context.push(context.bx);
- context.al = context.data.byte(276);
+ context.al = context.data.byte(275);
context.ah = 0;
context.cx = 26;
context._mul(context.cx);
@@ -11152,8 +11152,8 @@ static void getkeyandlogo(Context & context) {
keyok:
context.bx = context.pop();
context.es = context.pop();
- context.al = context.data.byte(271);
- context.data.byte(269) = context.al;
+ context.al = context.data.byte(270);
+ context.data.byte(268) = context.al;
context.al = 0;
return;
}
@@ -11206,7 +11206,7 @@ static void parser(Context & context) {
context.al = '=';
context._stosb();
context.ds = context.cs;
- context.si = 7944;
+ context.si = 7816;
notspace1:
context._lodsw();
context._cmp(context.al, 32);
@@ -11240,10 +11240,10 @@ static void scrollmonitor(Context & context) {
context.push(context.es);
context.push(context.ds);
printlogo(context);
- context.di = context.data.word(318);
- context.bx = context.data.word(320);
+ context.di = context.data.word(316);
+ context.bx = context.data.word(318);
printundermon(context);
- context.ax = context.data.word(320);
+ context.ax = context.data.word(318);
worktoscreen(context);
context.al = 25;
playchannel1(context);
@@ -11259,11 +11259,11 @@ static void scrollmonitor(Context & context) {
}
static void lockmon(Context & context) {
- context._cmp(context.data.byte(392), 57);
+ context._cmp(context.data.byte(391), 57);
if (!context.flags.z()) goto notlock;
locklighton(context);
lockloop:
- context._cmp(context.data.byte(392), 57);
+ context._cmp(context.data.byte(391), 57);
if (context.flags.z()) goto lockloop;
locklightoff(context);
notlock:
@@ -11271,10 +11271,10 @@ notlock:
}
static void monitorlogo(Context & context) {
- context.al = context.data.byte(269);
- context._cmp(context.al, context.data.byte(270));
+ context.al = context.data.byte(268);
+ context._cmp(context.al, context.data.byte(269));
if (context.flags.z()) goto notnewlogo;
- context.data.byte(270) = context.al;
+ context.data.byte(269) = context.al;
printlogo(context);
printundermon(context);
worktoscreen(context);
@@ -11293,7 +11293,7 @@ notnewlogo:
static void printlogo(Context & context) {
context.di = 56;
context.bx = 32;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 0;
context.ah = 0;
showframe(context);
@@ -11304,7 +11304,7 @@ static void printlogo(Context & context) {
static void showcurrentfile(Context & context) {
context.di = 178;
context.bx = 37;
- context.si = 2895+1;
+ context.si = 2892+1;
curfileloop:
context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
@@ -11312,7 +11312,7 @@ curfileloop:
context._add(context.si, 1);
context.push(context.si);
modifychar(context);
- context.ds = context.data.word(406);
+ context.ds = context.data.word(404);
context.ah = 0;
printchar(context);
context.si = context.pop();
@@ -11322,7 +11322,7 @@ finishfile:
}
static void monmessage(Context & context) {
- context.es = context.data.word(466);
+ context.es = context.data.word(464);
context.bx = 66*2;
context.cl = context.al;
context.ch = 0;
@@ -11337,7 +11337,7 @@ monmessageloop:
}
static void processtrigger(Context & context) {
- context._cmp(context.data.byte(55), '1');
+ context._cmp(context.data.byte(54), '1');
if (!context.flags.z()) goto notfirsttrigger;
context.al = 8;
setlocation(context);
@@ -11345,7 +11345,7 @@ static void processtrigger(Context & context) {
triggermessage(context);
return;
notfirsttrigger:
- context._cmp(context.data.byte(55), '2');
+ context._cmp(context.data.byte(54), '2');
if (!context.flags.z()) goto notsecondtrigger;
context.al = 9;
setlocation(context);
@@ -11353,7 +11353,7 @@ notfirsttrigger:
triggermessage(context);
return;
notsecondtrigger:
- context._cmp(context.data.byte(55), '3');
+ context._cmp(context.data.byte(54), '3');
if (!context.flags.z()) goto notthirdtrigger;
context.al = 2;
setlocation(context);
@@ -11369,7 +11369,7 @@ static void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
multiget(context);
context.ax = context.pop();
@@ -11388,11 +11388,11 @@ static void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.data.word(402);
+ context.ds = context.data.word(400);
context.si = 0;
multiput(context);
worktoscreen(context);
- context.data.byte(55) = 0;
+ context.data.byte(54) = 0;
return;
}
@@ -11403,13 +11403,13 @@ static void printcurs(Context & context) {
context.push(context.dx);
context.push(context.bx);
context.push(context.es);
- context.di = context.data.word(312);
- context.bx = context.data.word(314);
+ context.di = context.data.word(310);
+ context.bx = context.data.word(312);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
context.ch = 11;
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context.si = 0;
context.push(context.di);
context.push(context.bx);
@@ -11418,14 +11418,14 @@ static void printcurs(Context & context) {
context.di = context.pop();
context.push(context.bx);
context.push(context.di);
- context._add(context.data.word(138), 1);
- context.ax = context.data.word(138);
+ context._add(context.data.word(136), 1);
+ context.ax = context.data.word(136);
context._and(context.al, 16);
if (!context.flags.z()) goto flashcurs;
context.al = '/';
context._sub(context.al, 32);
context.ah = 0;
- context.ds = context.data.word(406);
+ context.ds = context.data.word(404);
showframe(context);
flashcurs:
context.di = context.pop();
@@ -11450,8 +11450,8 @@ static void delcurs(Context & context) {
context.push(context.ds);
context.push(context.dx);
context.push(context.si);
- context.di = context.data.word(312);
- context.bx = context.data.word(314);
+ context.di = context.data.word(310);
+ context.bx = context.data.word(312);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
@@ -11459,7 +11459,7 @@ static void delcurs(Context & context) {
context.push(context.di);
context.push(context.bx);
context.push(context.cx);
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context.si = 0;
multiput(context);
context.cx = context.pop();
@@ -11477,17 +11477,17 @@ finishcurdel:
}
static void useobject(Context & context) {
- context.data.byte(95) = 255;
- context._cmp(context.data.byte(100), 229);
+ context.data.byte(94) = 255;
+ context._cmp(context.data.byte(99), 229);
if (context.flags.z()) goto alreadyuse;
- context.data.byte(100) = 229;
- context.bl = context.data.byte(99);
- context.bh = context.data.byte(102);
+ context.data.byte(99) = 229;
+ context.bl = context.data.byte(98);
+ context.bh = context.data.byte(101);
context.al = 51;
commandwithob(context);
alreadyuse:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto nouse;
context._and(context.ax, 1);
if (!context.flags.z()) goto douse;
@@ -11499,13 +11499,13 @@ douse:
}
static void useroutine(Context & context) {
- context._cmp(context.data.byte(184), 50);
+ context._cmp(context.data.byte(183), 50);
if (context.flags.c()) goto nodream7;
- context._cmp(context.data.byte(232), 0);
+ context._cmp(context.data.byte(231), 0);
if (!context.flags.z()) goto powerok;
return;
powerok:
- context.data.byte(232) = 0;
+ context.data.byte(231) = 0;
nodream7:
getanyad(context);
context.dx = context.ds;
@@ -11569,7 +11569,7 @@ cantuse2:
context.cx = 50;
hangonp(context);
putbackobstuff(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
return;
}
@@ -11582,21 +11582,21 @@ static void wheelsound(Context & context) {
}
static void runtap(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto tapwith;
withwhat(context);
return;
tapwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcupfromtap;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11609,7 +11609,7 @@ tapwith:
putbackobstuff(context);
return;
fillcupfromtap:
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+15) = 'F'-'A';
context.al = 8;
@@ -11636,9 +11636,9 @@ static void playguitar(Context & context) {
}
static void hotelcontrol(Context & context) {
- context._cmp(context.data.byte(184), 21);
+ context._cmp(context.data.byte(183), 21);
if (!context.flags.z()) goto notrightcont;
- context._cmp(context.data.byte(148), 33);
+ context._cmp(context.data.byte(147), 33);
if (!context.flags.z()) goto notrightcont;
showfirstuse(context);
putbackobstuff(context);
@@ -11658,14 +11658,14 @@ static void hotelbell(Context & context) {
}
static void opentomb(Context & context) {
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showfirstuse(context);
- context.data.word(21) = 35*2;
- context.data.word(23) = 1;
- context.data.word(25) = 33;
- context.data.byte(27) = 1;
+ context.data.word(19) = 35*2;
+ context.data.word(21) = 1;
+ context.data.word(23) = 33;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -11673,7 +11673,7 @@ static void usetrainer(Context & context) {
getanyad(context);
context._cmp(context.ds.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
makeworn(context);
showseconduse(context);
putbackobstuff(context);
@@ -11703,21 +11703,21 @@ static void nothelderror(Context & context) {
}
static void usepipe(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto pipewith;
withwhat(context);
return;
pipewith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcup;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11734,7 +11734,7 @@ fillcup:
context.al = 36;
showpuztext(context);
putbackobstuff(context);
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+15) = 'F'-'A';
return;
@@ -11747,35 +11747,35 @@ alreadyfull:
}
static void usefullcart(Context & context) {
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
context.al = 2;
- context.ah = context.data.byte(185);
+ context.ah = context.data.byte(184);
context._add(context.ah, 6);
turnanypathon(context);
- context.data.byte(475) = 4;
- context.data.byte(133) = 4;
- context.data.byte(135) = 4;
- context.data.byte(477) = 4;
+ context.data.byte(474) = 4;
+ context.data.byte(132) = 4;
+ context.data.byte(134) = 4;
+ context.data.byte(476) = 4;
findxyfrompath(context);
- context.data.byte(187) = 1;
+ context.data.byte(186) = 1;
showfirstuse(context);
- context.data.word(21) = 72*2;
- context.data.word(23) = 58;
- context.data.word(25) = 142;
- context.data.byte(27) = 1;
+ context.data.word(19) = 72*2;
+ context.data.word(21) = 58;
+ context.data.word(23) = 142;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
static void useplinth(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto plinthwith;
withwhat(context);
return;
plinthwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'D';
context.ch = 'K';
context.dl = 'E';
@@ -11786,16 +11786,16 @@ plinthwith:
putbackobstuff(context);
return;
isrightkey:
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showseconduse(context);
- context.data.word(21) = 220;
- context.data.word(23) = 0;
- context.data.word(25) = 104;
- context.data.byte(27) = 1;
+ context.data.word(19) = 220;
+ context.data.word(21) = 0;
+ context.data.word(23) = 104;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
- context.al = context.data.byte(67);
- context.data.byte(188) = context.al;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
+ context.al = context.data.byte(66);
+ context.data.byte(187) = context.al;
return;
}
@@ -11803,63 +11803,63 @@ static void chewy(Context & context) {
showfirstuse(context);
getanyad(context);
context.ds.byte(context.bx+2) = 255;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
static void useladder(Context & context) {
showfirstuse(context);
- context._sub(context.data.byte(148), 11);
+ context._sub(context.data.byte(147), 11);
findroominloc(context);
- context.data.byte(133) = 6;
- context.data.byte(135) = 6;
- context.data.byte(475) = 0;
- context.data.byte(478) = 0;
+ context.data.byte(132) = 6;
+ context.data.byte(134) = 6;
+ context.data.byte(474) = 0;
context.data.byte(477) = 0;
+ context.data.byte(476) = 0;
findxyfrompath(context);
- context.data.byte(187) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(186) = 1;
+ context.data.byte(102) = 1;
return;
}
static void useladderb(Context & context) {
showfirstuse(context);
- context._add(context.data.byte(148), 11);
+ context._add(context.data.byte(147), 11);
findroominloc(context);
- context.data.byte(133) = 2;
- context.data.byte(135) = 2;
- context.data.byte(475) = 1;
- context.data.byte(478) = 1;
+ context.data.byte(132) = 2;
+ context.data.byte(134) = 2;
+ context.data.byte(474) = 1;
context.data.byte(477) = 1;
+ context.data.byte(476) = 1;
findxyfrompath(context);
- context.data.byte(187) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(186) = 1;
+ context.data.byte(102) = 1;
return;
}
static void slabdoora(Context & context) {
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 13;
- context._cmp(context.data.byte(66), 3);
+ context.data.byte(25) = 1;
+ context.data.word(21) = 13;
+ context._cmp(context.data.byte(65), 3);
if (!context.flags.z()) goto slabawrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 42;
- context.data.byte(188) = 47;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 60;
+ context.data.word(23) = 42;
+ context.data.byte(187) = 47;
return;
slabawrong:
- context.data.word(21) = 40;
- context.data.word(25) = 34;
- context.data.byte(27) = 1;
+ context.data.word(19) = 40;
+ context.data.word(23) = 34;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void slabdoorb(Context & context) {
- context._cmp(context.data.byte(66), 1);
+ context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto slabbwrong;
context.al = 'S';
context.ah = 'H';
@@ -11874,120 +11874,120 @@ static void slabdoorb(Context & context) {
return;
gotcrystal:
showfirstuse(context);
- context._add(context.data.byte(2), 1);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 44;
- context.data.word(21) = 60;
- context.data.word(25) = 71;
- context.data.byte(188) = 47;
+ context.data.byte(25) = 1;
+ context.data.word(21) = 44;
+ context.data.word(19) = 60;
+ context.data.word(23) = 71;
+ context.data.byte(187) = 47;
return;
slabbwrong:
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 44;
- context.data.word(21) = 40;
- context.data.word(25) = 63;
- context.data.byte(27) = 1;
+ context.data.byte(25) = 1;
+ context.data.word(21) = 44;
+ context.data.word(19) = 40;
+ context.data.word(23) = 63;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void slabdoord(Context & context) {
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 75;
- context._cmp(context.data.byte(66), 0);
+ context.data.byte(25) = 1;
+ context.data.word(21) = 75;
+ context._cmp(context.data.byte(65), 0);
if (!context.flags.z()) goto slabcwrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 102;
- context.data.byte(188) = 47;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 60;
+ context.data.word(23) = 102;
+ context.data.byte(187) = 47;
return;
slabcwrong:
- context.data.word(21) = 40;
- context.data.word(25) = 94;
- context.data.byte(27) = 1;
+ context.data.word(19) = 40;
+ context.data.word(23) = 94;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void slabdoorc(Context & context) {
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 108;
- context._cmp(context.data.byte(66), 4);
+ context.data.byte(25) = 1;
+ context.data.word(21) = 108;
+ context._cmp(context.data.byte(65), 4);
if (!context.flags.z()) goto slabdwrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 135;
- context.data.byte(188) = 47;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 60;
+ context.data.word(23) = 135;
+ context.data.byte(187) = 47;
return;
slabdwrong:
- context.data.word(21) = 40;
- context.data.word(25) = 127;
- context.data.byte(27) = 1;
+ context.data.word(19) = 40;
+ context.data.word(23) = 127;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void slabdoore(Context & context) {
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 141;
- context._cmp(context.data.byte(66), 5);
+ context.data.byte(25) = 1;
+ context.data.word(21) = 141;
+ context._cmp(context.data.byte(65), 5);
if (!context.flags.z()) goto slabewrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 168;
- context.data.byte(188) = 47;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 60;
+ context.data.word(23) = 168;
+ context.data.byte(187) = 47;
return;
slabewrong:
- context.data.word(21) = 40;
- context.data.word(25) = 160;
- context.data.byte(27) = 1;
+ context.data.word(19) = 40;
+ context.data.word(23) = 160;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void slabdoorf(Context & context) {
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
context.data.byte(26) = 1;
- context.data.word(23) = 171;
- context._cmp(context.data.byte(66), 2);
+ context.data.byte(25) = 1;
+ context.data.word(21) = 171;
+ context._cmp(context.data.byte(65), 2);
if (!context.flags.z()) goto slabfwrong;
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 60;
- context.data.word(25) = 197;
- context.data.byte(188) = 47;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 60;
+ context.data.word(23) = 197;
+ context.data.byte(187) = 47;
return;
slabfwrong:
- context.data.word(21) = 40;
- context.data.word(25) = 189;
- context.data.byte(27) = 1;
+ context.data.word(19) = 40;
+ context.data.word(23) = 189;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void useslab(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto slabwith;
withwhat(context);
return;
slabwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'J';
context.ch = 'E';
context.dl = 'W';
@@ -12000,10 +12000,10 @@ slabwith:
putbackobstuff(context);
return;
nextslab:
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+2) = 0;
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
@@ -12015,26 +12015,26 @@ nextslab:
if (!context.flags.z()) goto notlastslab;
context.al = 0;
turnpathon(context);
- context.data.word(21) = 22;
- context.data.word(23) = 35;
- context.data.word(25) = 48;
- context.data.byte(27) = 1;
+ context.data.word(19) = 22;
+ context.data.word(21) = 35;
+ context.data.word(23) = 48;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
notlastslab:
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showfirstuse(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
static void usecart(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto cartwith;
withwhat(context);
return;
cartwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'R';
context.ch = 'O';
context.dl = 'C';
@@ -12047,31 +12047,31 @@ cartwith:
putbackobstuff(context);
return;
nextcart:
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+2) = 0;
- context.al = context.data.byte(99);
+ context.al = context.data.byte(98);
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
context._add(context.al, 1);
placesetobject(context);
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
context.al = 17;
playchannel1(context);
showfirstuse(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
static void useclearbox(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto clearboxwith;
withwhat(context);
return;
clearboxwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'R';
context.ch = 'A';
context.dl = 'I';
@@ -12084,57 +12084,57 @@ clearboxwith:
putbackobstuff(context);
return;
openbox:
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showfirstuse(context);
- context.data.word(21) = 80;
- context.data.word(23) = 67;
- context.data.word(25) = 105;
- context.data.byte(27) = 1;
+ context.data.word(19) = 80;
+ context.data.word(21) = 67;
+ context.data.word(23) = 105;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
static void usecoveredbox(Context & context) {
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showfirstuse(context);
- context.data.word(21) = 50;
- context.data.word(23) = 41;
- context.data.word(25) = 66;
- context.data.byte(27) = 1;
+ context.data.word(19) = 50;
+ context.data.word(21) = 41;
+ context.data.word(23) = 66;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
static void userailing(Context & context) {
showfirstuse(context);
- context.data.word(21) = 80;
- context.data.word(23) = 0;
- context.data.word(25) = 30;
- context.data.byte(27) = 1;
+ context.data.word(19) = 80;
+ context.data.word(21) = 0;
+ context.data.word(23) = 30;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
- context.data.byte(56) = 4;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
+ context.data.byte(55) = 4;
return;
}
static void useopenbox(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto openboxwith;
withwhat(context);
return;
openboxwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'F';
compare(context);
if (context.flags.z()) goto destoryopenbox;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -12144,21 +12144,21 @@ openboxwith:
showfirstuse(context);
return;
destoryopenbox:
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
context.cx = 300;
context.al = 37;
showpuztext(context);
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+15) = 'E'-'A';
- context.data.word(21) = 140;
- context.data.word(23) = 105;
- context.data.word(25) = 181;
- context.data.byte(27) = 1;
+ context.data.word(19) = 140;
+ context.data.word(21) = 105;
+ context.data.word(23) = 181;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
context.al = 4;
turnpathon(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
openboxwrong:
context.cx = 300;
@@ -12169,11 +12169,11 @@ openboxwrong:
}
static void wearwatch(Context & context) {
- context._cmp(context.data.byte(3), 1);
+ context._cmp(context.data.byte(2), 1);
if (context.flags.z()) goto wearingwatch;
showfirstuse(context);
- context.data.byte(3) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(2) = 1;
+ context.data.byte(102) = 1;
getanyad(context);
makeworn(context);
return;
@@ -12184,11 +12184,11 @@ wearingwatch:
}
static void wearshades(Context & context) {
- context._cmp(context.data.byte(4), 1);
+ context._cmp(context.data.byte(3), 1);
if (context.flags.z()) goto wearingshades;
- context.data.byte(4) = 1;
+ context.data.byte(3) = 1;
showfirstuse(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
getanyad(context);
makeworn(context);
return;
@@ -12199,17 +12199,17 @@ wearingshades:
}
static void sitdowninbar(Context & context) {
- context._cmp(context.data.byte(32), -1);
+ context._cmp(context.data.byte(31), -1);
if (!context.flags.z()) goto satdown;
showfirstuse(context);
- context.data.word(21) = 50;
- context.data.word(23) = 55;
- context.data.word(25) = 71;
- context.data.word(29) = 73;
- context.data.word(31) = 83;
- context.data.byte(27) = 1;
+ context.data.word(19) = 50;
+ context.data.word(21) = 55;
+ context.data.word(23) = 71;
+ context.data.word(27) = 73;
+ context.data.word(29) = 83;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
satdown:
showseconduse(context);
@@ -12219,23 +12219,23 @@ satdown:
static void usechurchhole(Context & context) {
showfirstuse(context);
- context.data.byte(103) = 1;
- context.data.word(21) = 28;
- context.data.word(23) = 13;
- context.data.word(25) = 26;
- context.data.byte(27) = 1;
+ context.data.byte(102) = 1;
+ context.data.word(19) = 28;
+ context.data.word(21) = 13;
+ context.data.word(23) = 26;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
return;
}
static void usehole(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto holewith;
withwhat(context);
return;
holewith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'H';
context.ch = 'N';
context.dl = 'D';
@@ -12251,11 +12251,11 @@ righthand:
showfirstuse(context);
context.al = 86;
removesetobject(context);
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+2) = 255;
- context.data.byte(47) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(46) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12274,43 +12274,43 @@ static void usealtar(Context & context) {
findexobject(context);
context._cmp(context.al, 114);
if (context.flags.z()) goto thingsonaltar;
- context._cmp(context.data.byte(47), 1);
+ context._cmp(context.data.byte(46), 1);
if (context.flags.z()) goto movealtar;
context.cx = 300;
context.al = 23;
showpuztext(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
movealtar:
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showseconduse(context);
- context.data.word(21) = 160;
- context.data.word(23) = 81;
- context.data.word(25) = 174;
- context.data.byte(27) = 1;
+ context.data.word(19) = 160;
+ context.data.word(21) = 81;
+ context.data.word(23) = 174;
context.data.byte(26) = 1;
+ context.data.byte(25) = 1;
context.al = 47;
context.bl = 52;
context.bh = 76;
context.cx = 32;
context.dx = 98;
setuptimeduse(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
thingsonaltar:
showfirstuse(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
static void opentvdoor(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto tvdoorwith;
withwhat(context);
return;
tvdoorwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'U';
context.ch = 'L';
context.dl = 'O';
@@ -12324,8 +12324,8 @@ tvdoorwith:
return;
keyontv:
showfirstuse(context);
- context.data.byte(37) = 0;
- context.data.byte(103) = 1;
+ context.data.byte(36) = 0;
+ context.data.byte(102) = 1;
return;
}
@@ -12333,7 +12333,7 @@ static void usedryer(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12343,7 +12343,7 @@ static void openlouis(Context & context) {
context.cl = 3;
context.ch = 8;
entercode(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12362,17 +12362,17 @@ static void openyourneighbour(Context & context) {
context.cl = 255;
context.ch = 255;
entercode(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
static void usewindow(Context & context) {
- context._cmp(context.data.byte(475), 6);
+ context._cmp(context.data.byte(474), 6);
if (!context.flags.z()) goto notonbalc;
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showfirstuse(context);
- context.data.byte(188) = 29;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 29;
+ context.data.byte(102) = 1;
return;
notonbalc:
showseconduse(context);
@@ -12396,19 +12396,19 @@ static void usebalcony(Context & context) {
turnpathoff(context);
context.al = 5;
turnpathoff(context);
- context._add(context.data.byte(2), 1);
- context.data.byte(475) = 6;
- context.data.byte(478) = 6;
+ context._add(context.data.byte(1), 1);
+ context.data.byte(474) = 6;
context.data.byte(477) = 6;
+ context.data.byte(476) = 6;
findxyfrompath(context);
switchryanoff(context);
- context.data.byte(187) = 1;
- context.data.word(21) = 30*2;
- context.data.word(23) = 183;
- context.data.word(25) = 212;
- context.data.byte(27) = 1;
+ context.data.byte(186) = 1;
+ context.data.word(19) = 30*2;
+ context.data.word(21) = 183;
+ context.data.word(23) = 212;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12418,7 +12418,7 @@ static void openryan(Context & context) {
context.cl = 0;
context.ch = 6;
entercode(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12428,7 +12428,7 @@ static void openpoolboss(Context & context) {
context.cl = 2;
context.ch = 2;
entercode(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12438,7 +12438,7 @@ static void openeden(Context & context) {
context.cl = 6;
context.ch = 5;
entercode(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12448,14 +12448,14 @@ static void opensarters(Context & context) {
context.cl = 3;
context.ch = 3;
entercode(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
static void isitright(Context & context) {
context.bx = context.ds;
context.es = context.bx;
- context.bx = 8350;
+ context.bx = 8344;
context._cmp(context.ds.byte(context.bx+0), context.al);
if (!context.flags.z()) goto notright;
context._cmp(context.ds.byte(context.bx+1), context.ah);
@@ -12476,13 +12476,13 @@ static void drawitall(Context & context) {
}
static void openhoteldoor(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto hoteldoorwith;
withwhat(context);
return;
hoteldoorwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
@@ -12498,19 +12498,19 @@ keyonhotel1:
context.al = 16;
playchannel1(context);
showfirstuse(context);
- context.data.byte(37) = 0;
- context.data.byte(103) = 1;
+ context.data.byte(36) = 0;
+ context.data.byte(102) = 1;
return;
}
static void openhoteldoor2(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto hoteldoorwith2;
withwhat(context);
return;
hoteldoorwith2:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
@@ -12531,13 +12531,13 @@ keyonhotel2:
}
static void grafittidoor(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto grafwith;
withwhat(context);
return;
grafwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'A';
context.ch = 'P';
context.dl = 'E';
@@ -12556,16 +12556,16 @@ dograf:
}
static void trapdoor(Context & context) {
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
showfirstuse(context);
switchryanoff(context);
- context.data.word(21) = 20*2;
- context.data.word(23) = 181;
- context.data.word(25) = 197;
- context.data.byte(188) = 26;
- context.data.byte(27) = 1;
+ context.data.word(19) = 20*2;
+ context.data.word(21) = 181;
+ context.data.word(23) = 197;
+ context.data.byte(187) = 26;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12573,10 +12573,10 @@ static void callhotellift(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
- context.data.byte(39) = 8;
- context.data.byte(103) = 1;
- context.data.byte(478) = 5;
+ context.data.byte(38) = 8;
+ context.data.byte(102) = 1;
context.data.byte(477) = 5;
+ context.data.byte(476) = 5;
autosetwalk(context);
context.al = 4;
turnpathon(context);
@@ -12585,19 +12585,19 @@ static void callhotellift(Context & context) {
static void calledenslift(Context & context) {
showfirstuse(context);
- context.data.byte(39) = 8;
- context.data.byte(103) = 1;
+ context.data.byte(38) = 8;
+ context.data.byte(102) = 1;
context.al = 2;
turnpathon(context);
return;
}
static void calledensdlift(Context & context) {
- context._cmp(context.data.byte(35), 1);
+ context._cmp(context.data.byte(34), 1);
if (context.flags.z()) goto edensdhere;
showfirstuse(context);
- context.data.byte(39) = 8;
- context.data.byte(103) = 1;
+ context.data.byte(38) = 8;
+ context.data.byte(102) = 1;
context.al = 2;
turnpathon(context);
return;
@@ -12608,13 +12608,13 @@ edensdhere:
}
static void usepoolreader(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto poolwith;
withwhat(context);
return;
poolwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -12627,7 +12627,7 @@ poolwith:
putbackobstuff(context);
return;
openpool:
- context._cmp(context.data.byte(48), 1);
+ context._cmp(context.data.byte(47), 1);
if (context.flags.z()) goto canopenpool;
showseconduse(context);
putbackobstuff(context);
@@ -12636,19 +12636,19 @@ canopenpool:
context.al = 17;
playchannel1(context);
showfirstuse(context);
- context.data.byte(39) = 6;
- context.data.byte(103) = 1;
+ context.data.byte(38) = 6;
+ context.data.byte(102) = 1;
return;
}
static void uselighter(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotlighterwith;
withwhat(context);
return;
gotlighterwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'S';
context.ch = 'M';
context.dl = 'K';
@@ -12662,10 +12662,10 @@ cigarette:
context.cx = 300;
context.al = 9;
showpuztext(context);
- context.al = context.data.byte(95);
+ context.al = context.data.byte(94);
getexad(context);
context.ds.byte(context.bx+2) = 255;
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -12681,13 +12681,13 @@ static void showseconduse(Context & context) {
}
static void usecardreader1(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotreader1with;
withwhat(context);
return;
gotreader1with:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12700,9 +12700,9 @@ gotreader1with:
putbackobstuff(context);
return;
correctcard:
- context._cmp(context.data.byte(49), 0);
+ context._cmp(context.data.byte(48), 0);
if (context.flags.z()) goto notyet;
- context._cmp(context.data.word(16), 0);
+ context._cmp(context.data.word(14), 0);
if (context.flags.z()) goto getscash;
context.cx = 300;
context.al = 17;
@@ -12715,9 +12715,9 @@ getscash:
context.cx = 300;
context.al = 18;
showpuztext(context);
- context._add(context.data.byte(2), 1);
- context.data.word(16) = 12432;
- context.data.byte(103) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.word(14) = 12432;
+ context.data.byte(102) = 1;
return;
notyet:
showfirstuse(context);
@@ -12726,13 +12726,13 @@ notyet:
}
static void usecardreader2(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotreader2with;
withwhat(context);
return;
gotreader2with:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12745,11 +12745,11 @@ gotreader2with:
putbackobstuff(context);
return;
correctcard2:
- context._cmp(context.data.byte(50), 0);
+ context._cmp(context.data.byte(49), 0);
if (context.flags.z()) goto notyetboss;
- context._cmp(context.data.word(16), 0);
+ context._cmp(context.data.word(14), 0);
if (context.flags.z()) goto nocash;
- context._cmp(context.data.byte(46), 2);
+ context._cmp(context.data.byte(45), 2);
if (context.flags.z()) goto alreadygotnew;
context.al = 18;
playchannel1(context);
@@ -12758,10 +12758,10 @@ correctcard2:
showpuztext(context);
context.al = 94;
placesetobject(context);
- context.data.byte(46) = 1;
- context._sub(context.data.word(16), 2000);
- context._add(context.data.byte(2), 1);
- context.data.byte(103) = 1;
+ context.data.byte(45) = 1;
+ context._sub(context.data.word(14), 2000);
+ context._add(context.data.byte(1), 1);
+ context.data.byte(102) = 1;
return;
nocash:
context.cx = 300;
@@ -12782,13 +12782,13 @@ notyetboss:
}
static void usecardreader3(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotreader3with;
withwhat(context);
return;
gotreader3with:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12801,19 +12801,19 @@ gotreader3with:
putbackobstuff(context);
return;
rightcard:
- context._cmp(context.data.byte(51), 0);
+ context._cmp(context.data.byte(50), 0);
if (context.flags.z()) goto notyetrecep;
- context._cmp(context.data.byte(52), 0);
+ context._cmp(context.data.byte(51), 0);
if (!context.flags.z()) goto alreadyusedit;
context.al = 16;
playchannel1(context);
context.cx = 300;
context.al = 25;
showpuztext(context);
- context._add(context.data.byte(2), 1);
- context._sub(context.data.word(16), 8300);
- context.data.byte(52) = 1;
- context.data.byte(103) = 1;
+ context._add(context.data.byte(1), 1);
+ context._sub(context.data.word(14), 8300);
+ context.data.byte(51) = 1;
+ context.data.byte(102) = 1;
return;
alreadyusedit:
context.cx = 300;
@@ -12836,11 +12836,11 @@ static void usecashcard(Context & context) {
showman(context);
context.di = 114;
context.bx = 120-3;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 39;
context.ah = 0;
showframe(context);
- context.ax = context.data.word(16);
+ context.ax = context.data.word(14);
moneypoke(context);
getobtextstart(context);
nextcolon(context);
@@ -12855,7 +12855,7 @@ static void usecashcard(Context & context) {
context.bx = 155;
context.es = context.cs;
context.si = 3385;
- context.data.word(71) = 91*2+75;
+ context.data.word(69) = 91*2+75;
context.al = 0;
context.ah = 0;
context.dl = 240;
@@ -12864,12 +12864,12 @@ static void usecashcard(Context & context) {
context.bx = 155;
context.es = context.cs;
context.si = 3390;
- context.data.word(71) = 91*2+85;
+ context.data.word(69) = 91*2+85;
context.al = 0;
context.ah = 0;
context.dl = 240;
printdirect(context);
- context.data.word(71) = 0;
+ context.data.word(69) = 0;
worktoscreenm(context);
context.cx = 400;
hangonp(context);
@@ -12880,13 +12880,13 @@ static void usecashcard(Context & context) {
}
static void lookatcard(Context & context) {
- context.data.byte(131) = 1;
+ context.data.byte(130) = 1;
getridofreels(context);
loadkeypad(context);
createpanel2(context);
context.di = 160;
context.bx = 80;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 42;
context.ah = 128;
showframe(context);
@@ -12908,7 +12908,7 @@ static void lookatcard(Context & context) {
createpanel2(context);
context.di = 160;
context.bx = 80;
- context.ds = context.data.word(458);
+ context.ds = context.data.word(456);
context.al = 42;
context.ah = 128;
showframe(context);
@@ -12923,7 +12923,7 @@ static void lookatcard(Context & context) {
worktoscreenm(context);
context.cx = 200;
hangonw(context);
- context.data.byte(131) = 0;
+ context.data.byte(130) = 0;
getridoftemp(context);
restorereels(context);
putbackobstuff(context);
@@ -12970,31 +12970,31 @@ numberpoke3:
}
static void usecontrol(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotcontrolwith;
withwhat(context);
return;
gotcontrolwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
context.dh = 'A';
compare(context);
if (context.flags.z()) goto rightkey;
- context._cmp(context.data.byte(184), 21);
+ context._cmp(context.data.byte(183), 21);
if (!context.flags.z()) goto balls;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'K';
context.ch = 'N';
context.dl = 'F';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto jimmycontrols;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13008,26 +13008,26 @@ balls:
rightkey:
context.al = 16;
playchannel1(context);
- context._cmp(context.data.byte(9), 21);
+ context._cmp(context.data.byte(8), 21);
if (context.flags.z()) goto goingdown;
context.cx = 300;
context.al = 0;
showpuztext(context);
- context.data.byte(188) = 21;
- context.data.byte(40) = 8;
- context.data.byte(39) = 0;
- context.data.word(21) = 80;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 21;
+ context.data.byte(39) = 8;
+ context.data.byte(38) = 0;
+ context.data.word(19) = 80;
+ context.data.byte(102) = 1;
return;
goingdown:
context.cx = 300;
context.al = 3;
showpuztext(context);
- context.data.byte(188) = 30;
- context.data.byte(40) = 8;
- context.data.byte(39) = 0;
- context.data.word(21) = 80;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 30;
+ context.data.byte(39) = 8;
+ context.data.byte(38) = 0;
+ context.data.word(19) = 80;
+ context.data.byte(102) = 1;
return;
jimmycontrols:
context.al = 50;
@@ -13047,41 +13047,41 @@ jimmycontrols:
context.cx = 300;
context.al = 10;
showpuztext(context);
- context._add(context.data.byte(2), 1);
- context.data.byte(103) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.byte(102) = 1;
return;
axeoncontrols:
context.cx = 300;
context.al = 16;
showpuztext(context);
- context._add(context.data.byte(2), 1);
+ context._add(context.data.byte(1), 1);
putbackobstuff(context);
return;
}
static void usehatch(Context & context) {
showfirstuse(context);
- context.data.byte(188) = 40;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 40;
+ context.data.byte(102) = 1;
return;
}
static void usewire(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotwirewith;
withwhat(context);
return;
gotwirewith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'K';
context.ch = 'N';
context.dl = 'F';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto wireknife;
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13107,8 +13107,8 @@ wireknife:
context.cx = 300;
context.al = 11;
showpuztext(context);
- context._add(context.data.byte(2), 1);
- context.data.byte(103) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.byte(102) = 1;
return;
}
@@ -13124,21 +13124,21 @@ static void usehandle(Context & context) {
context.cx = 300;
context.al = 12;
showpuztext(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
havecutwire:
context.cx = 300;
context.al = 13;
showpuztext(context);
- context.data.byte(188) = 22;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 22;
+ context.data.byte(102) = 1;
return;
}
static void useelevator1(Context & context) {
showfirstuse(context);
selectlocation(context);
- context.data.byte(103) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -13154,47 +13154,47 @@ static void showfirstuse(Context & context) {
static void useelevator3(Context & context) {
showfirstuse(context);
- context.data.byte(40) = 20;
- context.data.byte(188) = 34;
- context.data.word(23) = 46;
- context.data.word(25) = 63;
- context.data.byte(27) = 1;
+ context.data.byte(39) = 20;
+ context.data.byte(187) = 34;
+ context.data.word(21) = 46;
+ context.data.word(23) = 63;
context.data.byte(26) = 1;
- context.data.word(21) = 80;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.word(19) = 80;
+ context.data.byte(102) = 1;
return;
}
static void useelevator4(Context & context) {
showfirstuse(context);
- context.data.word(23) = 0;
- context.data.word(25) = 11;
- context.data.byte(27) = 1;
+ context.data.word(21) = 0;
+ context.data.word(23) = 11;
context.data.byte(26) = 1;
- context.data.byte(40) = 20;
- context.data.word(21) = 80;
- context.data.byte(103) = 1;
- context.data.byte(188) = 24;
+ context.data.byte(25) = 1;
+ context.data.byte(39) = 20;
+ context.data.word(19) = 80;
+ context.data.byte(102) = 1;
+ context.data.byte(187) = 24;
return;
}
static void useelevator2(Context & context) {
- context._cmp(context.data.byte(9), 23);
+ context._cmp(context.data.byte(8), 23);
if (context.flags.z()) goto inpoolhall;
showfirstuse(context);
- context.data.byte(188) = 23;
- context.data.byte(40) = 20;
- context.data.byte(39) = 0;
- context.data.word(21) = 80;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 23;
+ context.data.byte(39) = 20;
+ context.data.byte(38) = 0;
+ context.data.word(19) = 80;
+ context.data.byte(102) = 1;
return;
inpoolhall:
showfirstuse(context);
- context.data.byte(188) = 31;
- context.data.byte(40) = 20;
- context.data.byte(39) = 0;
- context.data.word(21) = 80;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 31;
+ context.data.byte(39) = 20;
+ context.data.byte(38) = 0;
+ context.data.word(19) = 80;
+ context.data.byte(102) = 1;
return;
}
@@ -13203,20 +13203,20 @@ static void useelevator5(Context & context) {
placesetobject(context);
context.al = 0;
removesetobject(context);
- context.data.byte(188) = 20;
- context.data.word(21) = 80;
- context.data.byte(35) = 1;
- context.data.byte(40) = 8;
- context.data.byte(103) = 1;
+ context.data.byte(187) = 20;
+ context.data.word(19) = 80;
+ context.data.byte(34) = 1;
+ context.data.byte(39) = 8;
+ context.data.byte(102) = 1;
return;
}
static void usekey(Context & context) {
- context._cmp(context.data.byte(9), 5);
+ context._cmp(context.data.byte(8), 5);
if (context.flags.z()) goto usekey1;
- context._cmp(context.data.byte(9), 30);
+ context._cmp(context.data.byte(8), 30);
if (context.flags.z()) goto usekey1;
- context._cmp(context.data.byte(9), 21);
+ context._cmp(context.data.byte(8), 21);
if (context.flags.z()) goto usekey2;
context.cx = 200;
context.al = 1;
@@ -13224,25 +13224,25 @@ static void usekey(Context & context) {
putbackobstuff(context);
return;
usekey1:
- context._cmp(context.data.byte(148), 22);
+ context._cmp(context.data.byte(147), 22);
if (!context.flags.z()) goto wrongroom1;
- context._cmp(context.data.byte(149), 10);
+ context._cmp(context.data.byte(148), 10);
if (!context.flags.z()) goto wrongroom1;
context.cx = 300;
context.al = 0;
showpuztext(context);
- context.data.byte(40) = 100;
- context.data.byte(103) = 1;
+ context.data.byte(39) = 100;
+ context.data.byte(102) = 1;
return;
usekey2:
- context._cmp(context.data.byte(148), 11);
+ context._cmp(context.data.byte(147), 11);
if (!context.flags.z()) goto wrongroom1;
- context._cmp(context.data.byte(149), 10);
+ context._cmp(context.data.byte(148), 10);
if (!context.flags.z()) goto wrongroom1;
context.cx = 300;
context.al = 3;
showpuztext(context);
- context.data.byte(188) = 30;
+ context.data.byte(187) = 30;
context.al = 2;
fadescreendown(context);
showfirstuse(context);
@@ -13257,7 +13257,7 @@ wrongroom1:
}
static void usestereo(Context & context) {
- context._cmp(context.data.byte(9), 0);
+ context._cmp(context.data.byte(8), 0);
if (context.flags.z()) goto stereook;
context.cx = 400;
context.al = 4;
@@ -13265,9 +13265,9 @@ static void usestereo(Context & context) {
putbackobstuff(context);
return;
stereook:
- context._cmp(context.data.byte(148), 11);
+ context._cmp(context.data.byte(147), 11);
if (!context.flags.z()) goto stereonotok;
- context._cmp(context.data.byte(149), 0);
+ context._cmp(context.data.byte(148), 0);
if (context.flags.z()) goto stereook2;
stereonotok:
context.cx = 400;
@@ -13314,8 +13314,8 @@ stereoon:
}
static void usecooker(Context & context) {
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.data.byte(98);
+ context.ah = context.data.byte(101);
checkinside(context);
context._cmp(context.cl, 114);
if (!context.flags.z()) goto foodinside;
@@ -13329,14 +13329,14 @@ foodinside:
}
static void useaxe(Context & context) {
- context._cmp(context.data.byte(184), 22);
+ context._cmp(context.data.byte(183), 22);
if (!context.flags.z()) goto notinpool;
- context._cmp(context.data.byte(149), 10);
+ context._cmp(context.data.byte(148), 10);
if (context.flags.z()) goto axeondoor;
showseconduse(context);
- context._add(context.data.byte(2), 1);
- context.data.byte(65) = 2;
- context.data.byte(103) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.byte(64) = 2;
+ context.data.byte(102) = 1;
removeobfrominv(context);
return;
notinpool:
@@ -13347,25 +13347,25 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 46*2;
- context.data.word(23) = 31;
- context.data.word(25) = 77;
- context.data.byte(27) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 46*2;
+ context.data.word(21) = 31;
+ context.data.word(23) = 77;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
return;
}
static void useelvdoor(Context & context) {
- context._cmp(context.data.byte(95), 255);
+ context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotdoorwith;
withwhat(context);
return;
gotdoorwith:
- context.al = context.data.byte(95);
- context.ah = context.data.byte(96);
+ context.al = context.data.byte(94);
+ context.ah = context.data.byte(95);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13381,13 +13381,13 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.data.byte(2), 1);
- context.data.word(21) = 46*2;
- context.data.word(23) = 31;
- context.data.word(25) = 77;
- context.data.byte(27) = 1;
+ context._add(context.data.byte(1), 1);
+ context.data.word(19) = 46*2;
+ context.data.word(21) = 31;
+ context.data.word(23) = 77;
context.data.byte(26) = 1;
- context.data.byte(103) = 1;
+ context.data.byte(25) = 1;
+ context.data.byte(102) = 1;
return;
}
@@ -13396,8 +13396,8 @@ static void withwhat(Context & context) {
showpanel(context);
showman(context);
showexit(context);
- context.al = context.data.byte(99);
- context.ah = context.data.byte(102);
+ context.al = context.data.byte(98);
+ context.ah = context.data.byte(101);
context.es = context.cs;
context.di = 5674;
copyname(context);
@@ -13407,7 +13407,7 @@ static void withwhat(Context & context) {
context.al = 63;
context.ah = 2;
printmessage2(context);
- context.di = context.data.word(84);
+ context.di = context.data.word(82);
context._add(context.di, 5);
context.bx = 21;
context.es = context.cs;
@@ -13416,7 +13416,7 @@ static void withwhat(Context & context) {
context.al = 0;
context.ah = 0;
printdirect(context);
- context.di = context.data.word(84);
+ context.di = context.data.word(82);
context._add(context.di, 5);
context.bx = 21;
context.dl = 200;
@@ -13424,12 +13424,12 @@ static void withwhat(Context & context) {
context.ah = 3;
printmessage2(context);
fillryan(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.data.byte(104) = 2;
+ context.data.byte(103) = 2;
return;
}
@@ -13441,21 +13441,21 @@ static void selectob(Context & context) {
blank(context);
return;
canselectob:
- context.data.byte(95) = context.al;
- context.data.byte(96) = context.ah;
- context._cmp(context.ax, context.data.word(94));
+ context.data.byte(94) = context.al;
+ context.data.byte(95) = context.ah;
+ context._cmp(context.ax, context.data.word(92));
if (!context.flags.z()) goto diffsub3;
- context._cmp(context.data.byte(100), 221);
+ context._cmp(context.data.byte(99), 221);
if (context.flags.z()) goto alreadyselob;
- context.data.byte(100) = 221;
+ context.data.byte(99) = 221;
diffsub3:
- context.data.word(94) = context.ax;
+ context.data.word(92) = context.ax;
context.bx = context.ax;
context.al = 0;
commandwithob(context);
alreadyselob:
- context.ax = context.data.word(202);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(200);
+ context._cmp(context.ax, context.data.word(210));
if (context.flags.z()) goto notselob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doselob;
@@ -13463,7 +13463,7 @@ notselob:
return;
doselob:
delpointer(context);
- context.data.byte(104) = 0;
+ context.data.byte(103) = 0;
useroutine(context);
return;
}
@@ -13490,7 +13490,7 @@ static void findsetobject(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.data.word(428);
+ context.es = context.data.word(426);
context.bx = 0;
context.dl = 0;
findsetloop:
@@ -13518,7 +13518,7 @@ static void findexobject(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.bx = 0+2080+30000;
context.dl = 0;
findexloop:
@@ -13546,7 +13546,7 @@ static void isryanholding(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.bx = 0+2080+30000;
context.dl = 0;
searchinv:
@@ -13574,7 +13574,7 @@ nofindininv:
}
static void checkinside(Context & context) {
- context.es = context.data.word(398);
+ context.es = context.data.word(396);
context.bx = 0+2080+30000;
context.cl = 0;
insideloop:
@@ -13620,7 +13620,7 @@ static void putbackobstuff(Context & context) {
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(100) = 255;
+ context.data.byte(99) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -13655,7 +13655,7 @@ static void findpuztext(Context & context) {
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.data.word(454);
+ context.es = context.data.word(452);
context.ax = context.ds.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
@@ -13725,8 +13725,8 @@ static void removefreeobject(Context & context) {
static void findormake(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
context.push(context.ax);
- context.es = context.data.word(412);
- context.ah = context.data.byte(184);
+ context.es = context.data.word(410);
+ context.ah = context.data.byte(183);
changeloop:
context._cmp(context.ds.byte(context.bx), 255);
if (context.flags.z()) goto haventfound;
@@ -13749,17 +13749,17 @@ haventfound:
}
static void switchryanon(Context & context) {
- context.data.byte(63) = 255;
+ context.data.byte(62) = 255;
return;
}
static void switchryanoff(Context & context) {
- context.data.byte(63) = 1;
+ context.data.byte(62) = 1;
return;
}
static void setallchanges(Context & context) {
- context.es = context.data.word(412);
+ context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
setallloop:
context.ax = context.ds.word(context.bx);
@@ -13767,7 +13767,7 @@ setallloop:
if (context.flags.z()) goto endsetloop;
context.cx = context.ds.word(context.bx+2);
context._add(context.bx, 4);
- context._cmp(context.ah, context.data.byte(184));
+ context._cmp(context.ah, context.data.byte(183));
if (!context.flags.z()) goto setallloop;
context.push(context.es);
context.push(context.bx);
@@ -13799,7 +13799,7 @@ path:
context.bx = context.pop();
context._add(context.bx, context.ax);
context._add(context.bx, 0);
- context.es = context.data.word(450);
+ context.es = context.data.word(448);
context.cx = context.pop();
context.ds.byte(context.bx+6) = context.cl;
nopath:
@@ -13822,20 +13822,20 @@ beenpickedup:
}
static void autoappear(Context & context) {
- context._cmp(context.data.byte(9), 32);
+ context._cmp(context.data.byte(8), 32);
if (!context.flags.z()) goto notinalley;
context.al = 5;
resetlocation(context);
context.al = 10;
setlocation(context);
- context.data.byte(183) = 10;
+ context.data.byte(182) = 10;
return;
notinalley:
- context._cmp(context.data.byte(184), 24);
+ context._cmp(context.data.byte(183), 24);
if (!context.flags.z()) goto notinedens;
- context._cmp(context.data.byte(42), 1);
+ context._cmp(context.data.byte(41), 1);
if (!context.flags.z()) goto edenspart2;
- context._add(context.data.byte(42), 1);
+ context._add(context.data.byte(41), 1);
context.al = 44;
placesetobject(context);
context.al = 18;
@@ -13854,7 +13854,7 @@ notinalley:
removesetobject(context);
return;
edenspart2:
- context._cmp(context.data.byte(43), 1);
+ context._cmp(context.data.byte(42), 1);
if (!context.flags.z()) goto notedens2;
context.al = 44;
removesetobject(context);
@@ -13862,23 +13862,23 @@ edenspart2:
removesetobject(context);
context.al = 55;
placesetobject(context);
- context._add(context.data.byte(43), 1);
+ context._add(context.data.byte(42), 1);
notedens2:
return;
notinedens:
- context._cmp(context.data.byte(184), 25);
+ context._cmp(context.data.byte(183), 25);
if (!context.flags.z()) goto notonsartroof;
- context.data.byte(34) = 3;
+ context.data.byte(33) = 3;
context.al = 6;
resetlocation(context);
context.al = 11;
setlocation(context);
- context.data.byte(183) = 11;
+ context.data.byte(182) = 11;
return;
notonsartroof:
- context._cmp(context.data.byte(184), 2);
+ context._cmp(context.data.byte(183), 2);
if (!context.flags.z()) goto notinlouiss;
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(40), 0);
if (context.flags.z()) goto notinlouiss;
context.al = 23;
placesetobject(context);
@@ -13887,153 +13887,153 @@ notinlouiss:
}
static void getundertimed(Context & context) {
- context.al = context.data.byte(335);
+ context.al = context.data.byte(334);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.data.byte(336);
+ context.al = context.data.byte(335);
context.ah = 0;
context.di = context.ax;
context.ch = 30;
context.cl = 240;
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
multiget(context);
return;
}
static void putundertimed(Context & context) {
- context.al = context.data.byte(335);
+ context.al = context.data.byte(334);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.data.byte(336);
+ context.al = context.data.byte(335);
context.ah = 0;
context.di = context.ax;
context.ch = 30;
context.cl = 240;
- context.ds = context.data.word(412);
+ context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
multiput(context);
return;
}
static void dumptimedtext(Context & context) {
Commit: 5d6be069e9a4bf62b217778b9e54b089e42a28b6
https://github.com/scummvm/scummvm/commit/5d6be069e9a4bf62b217778b9e54b089e42a28b6
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:38-07:00
Commit Message:
DREAMWEB: restored open file check in read
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index a83c700..0225a1b 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -143,8 +143,8 @@ void DreamWebEngine::openFile(const Common::String &name) {
}
void DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
- //if (!_file.isOpen())
- // error("file was not opened");
+ if (!_file.isOpen())
+ error("file was not opened (read before open)");
_file.read(dst, size);
}
@@ -204,6 +204,7 @@ void readfromfile(Context &context) {
void closefile(Context &context) {
engine()->closeFile();
+ context.data.byte(kHandle) = 0;
}
void openforsave(Context &context) {
Commit: 6a2ac8728c26b70ecd810999a8dab983b8a12bc7
https://github.com/scummvm/scummvm/commit/6a2ac8728c26b70ecd810999a8dab983b8a12bc7
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:42-07:00
Commit Message:
DREAMWEB: fixed invalid file read length
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 0225a1b..8e1b04b 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -196,8 +196,8 @@ void setkeyboardint(Context &context) {
void readfromfile(Context &context) {
uint16 dst_offset = context.dx;
- uint16 size = context.bx;
- debug(1, "readfromfile(ds:%u, %u)", dst_offset, size);
+ uint16 size = context.cx;
+ debug(1, "readfromfile(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
context.flags._c = false; //fixme: add return args
}
Commit: 221a3575a35c7848937f575179b4ccdc4ae86ddb
https://github.com/scummvm/scummvm/commit/221a3575a35c7848937f575179b4ccdc4ae86ddb
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:47-07:00
Commit Message:
DREAMWEB: added mousecall stub
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 8e1b04b..f2ee6a6 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -236,7 +236,17 @@ void dontloadseg(Context &context) {
}
void mousecall(Context &context) {
- ::error("mousecall");
+ Common::Point pos = engine()->mousePos();
+ if (pos.x > 298)
+ pos.x = 298;
+ if (pos.x < 15)
+ pos.x = 15;
+ if (pos.y < 15)
+ pos.y = 15;
+ if (pos.y > 184)
+ pos.y = 184;
+ context.cx = pos.x;
+ context.dx = pos.y;
}
void setmouse(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 03db193..245f496 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -81,6 +81,7 @@ public:
void readFromFile(uint8 *dst, unsigned size);
void closeFile();
+ Common::Point mousePos() const { return _mouse; }
private:
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
Commit: 2fa141335de2576e49dbb4c8d4cdadffacd68c71
https://github.com/scummvm/scummvm/commit/2fa141335de2576e49dbb4c8d4cdadffacd68c71
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:52-07:00
Commit Message:
DREAMWEB: fixed release warnings
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 4a928ea..af484fe 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -245,13 +245,13 @@ public:
}
inline void _add(uint8 &dst, uint8 src) {
- flags._c = dst + src < dst;
+ flags._c = (unsigned(dst) + src) >= 0x100;
dst += src;
flags.update(dst);
}
inline void _add(uint16 &dst, uint16 src) {
- flags._c = dst + src < dst;
+ flags._c = (unsigned(dst) + src) >= 0x10000;
dst += src;
flags.update(dst);
}
Commit: 3595e9b675b4f18570c589bd759a20ca28d469b8
https://github.com/scummvm/scummvm/commit/3595e9b675b4f18570c589bd759a20ca28d469b8
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:56-07:00
Commit Message:
DREAMWEB: added shr/shl instructions
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index f2ee6a6..feec93f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -413,7 +413,7 @@ void mode640x480(Context &context) {
}
void showgroup(Context &context) {
- warning("vsync: STUB");
+ warning("showgroup: STUB");
}
void fadedos(Context &context) {
@@ -426,7 +426,7 @@ void doshake(Context &context) {
void vsync(Context &context) {
//engine()->waitForVSync();
- warning("vsync: STUB");
+ //warning("vsync: STUB"); //fixme: loop
}
void setmode(Context &context) {
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index af484fe..b69bd15 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -245,14 +245,16 @@ public:
}
inline void _add(uint8 &dst, uint8 src) {
- flags._c = (unsigned(dst) + src) >= 0x100;
- dst += src;
+ unsigned r = (unsigned)dst + src;
+ flags._c = r >= 0x100;
+ dst = r;
flags.update(dst);
}
inline void _add(uint16 &dst, uint16 src) {
- flags._c = (unsigned(dst) + src) >= 0x10000;
- dst += src;
+ unsigned r = (unsigned)dst + src;
+ flags._c = r >= 0x10000;
+ dst = r;
flags.update(dst);
}
@@ -304,10 +306,38 @@ public:
flags.update(dst);
}
- inline void _shr(uint8 &dst, uint8 src) {}
- inline void _shr(uint16 &dst, uint8 src) {}
- inline void _shl(uint8 &dst, uint8 src) {}
- inline void _shl(uint16 &dst, uint8 src) {}
+ inline void _shr(uint8 &dst, uint8 src) {
+ if (src > 0 && src < 32) {
+ dst >>= (src - 1);
+ flags._c = dst & 1;
+ dst >>= 1;
+ }
+ flags.update(dst);
+ }
+ inline void _shr(uint16 &dst, uint8 src) {
+ if (src > 0 && src < 32) {
+ dst >>= (src - 1);
+ flags._c = dst & 1;
+ dst >>= 1;
+ }
+ flags.update(dst);
+ }
+ inline void _shl(uint8 &dst, uint8 src) {
+ if (src > 0 && src < 32) {
+ dst <<= (src - 1);
+ flags._c = dst & 0x80;
+ dst <<= 1;
+ }
+ flags.update(dst);
+ }
+ inline void _shl(uint16 &dst, uint8 src) {
+ if (src > 0 && src < 32) {
+ dst <<= (src - 1);
+ flags._c = dst & 0x8000;
+ dst <<= 1;
+ }
+ flags.update(dst);
+ }
inline void _mul(uint8 src) {
unsigned r = unsigned(al) * src;
Commit: 35d5ffa85da39022c6cad3d6e077aecc73d00c75
https://github.com/scummvm/scummvm/commit/35d5ffa85da39022c6cad3d6e077aecc73d00c75
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:32:59-07:00
Commit Message:
DREAMWEB: zero cx after showgroup
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index feec93f..c145b51 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -414,6 +414,7 @@ void mode640x480(Context &context) {
void showgroup(Context &context) {
warning("showgroup: STUB");
+ context.cx = 0;
}
void fadedos(Context &context) {
Commit: a07ec818c7d3b498a3967a6a09c517647a9ae392
https://github.com/scummvm/scummvm/commit/a07ec818c7d3b498a3967a6a09c517647a9ae392
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:03-07:00
Commit Message:
DREAMWEB: added processEvents, added mouse support
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index c145b51..353474a 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -83,57 +83,74 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
}
void DreamWebEngine::waitForVSync() {
+ processEvents();
+/*
while (!_vSyncInterrupt) {
_system->delayMillis(10);
}
setVSyncInterrupt(false);
+*/
// doshake
// dofade
}
-Common::Error DreamWebEngine::run() {
- _console = new DreamWebConsole(this);
-
- dreamgen::Context context;
- dreamgen::__start(context);
-
+void DreamWebEngine::processEvents() {
Common::EventManager *event_manager = _system->getEventManager();
- getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 60, this);
-
- do {
- uint32 frame_time = _system->getMillis();
- Common::Event event;
- while (event_manager->pollEvent(event)) {
- switch(event.type) {
- case Common::EVENT_RTL:
- return Common::kNoError;
- case Common::EVENT_MOUSEMOVE:
- _mouse = event.mouse;
- break;
- case Common::EVENT_KEYDOWN:
- switch (event.kbd.keycode) {
- case Common::KEYCODE_d:
- if (event.kbd.flags & Common::KBD_CTRL) {
- _console->attach();
- _console->onFrame();
- }
- break;
- default:
- break;
+ Common::Event event;
+ while (event_manager->pollEvent(event)) {
+ switch(event.type) {
+ case Common::EVENT_RTL:
+ warning("quit requested");
+ return;
+ case Common::EVENT_LBUTTONDOWN:
+ _mouseState |= 1;
+ break;
+ case Common::EVENT_LBUTTONUP:
+ _mouseState &= ~1;
+ break;
+ case Common::EVENT_RBUTTONDOWN:
+ _mouseState |= 2;
+ break;
+ case Common::EVENT_RBUTTONUP:
+ _mouseState &= ~2;
+ break;
+ case Common::EVENT_MOUSEMOVE:
+ _mouse = event.mouse;
+ break;
+ case Common::EVENT_KEYDOWN:
+ switch (event.kbd.keycode) {
+ case Common::KEYCODE_d:
+ if (event.kbd.flags & Common::KBD_CTRL) {
+ _console->attach();
+ _console->onFrame();
}
break;
default:
- debug(0, "skipped event type %d", event.type);
+ break;
}
+ break;
+ default:
+ debug(0, "skipped event type %d", event.type);
}
- } while (!shouldQuit());
+ }
+}
+
+
+Common::Error DreamWebEngine::run() {
+ _mouseState = 0;
+ _console = new DreamWebConsole(this);
+ getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 60, this);
+
+ dreamgen::__start(_context);
+
getTimerManager()->removeTimerProc(vSyncInterrupt);
return Common::kNoError;
}
void DreamWebEngine::openFile(const Common::String &name) {
+ processEvents();
if (_file.isOpen()) {
_file.close();
}
@@ -143,15 +160,33 @@ void DreamWebEngine::openFile(const Common::String &name) {
}
void DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
+ processEvents();
if (!_file.isOpen())
error("file was not opened (read before open)");
_file.read(dst, size);
}
void DreamWebEngine::closeFile() {
+ processEvents();
_file.close();
}
+void DreamWebEngine::mouseCall() {
+ processEvents();
+ Common::Point pos = _mouse;
+ if (pos.x > 298)
+ pos.x = 298;
+ if (pos.x < 15)
+ pos.x = 15;
+ if (pos.y < 15)
+ pos.y = 15;
+ if (pos.y > 184)
+ pos.y = 184;
+ _context.cx = pos.x;
+ _context.dx = pos.y;
+ _context.bx = _mouseState;
+}
+
} // End of namespace DreamWeb
@@ -236,17 +271,7 @@ void dontloadseg(Context &context) {
}
void mousecall(Context &context) {
- Common::Point pos = engine()->mousePos();
- if (pos.x > 298)
- pos.x = 298;
- if (pos.x < 15)
- pos.x = 15;
- if (pos.y < 15)
- pos.y = 15;
- if (pos.y > 184)
- pos.y = 184;
- context.cx = pos.x;
- context.dx = pos.y;
+ engine()->mouseCall();
}
void setmouse(Context &context) {
@@ -426,8 +451,7 @@ void doshake(Context &context) {
}
void vsync(Context &context) {
- //engine()->waitForVSync();
- //warning("vsync: STUB"); //fixme: loop
+ engine()->waitForVSync();
}
void setmode(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 245f496..0548df6 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -33,6 +33,7 @@
#include "common/scummsys.h"
#include "engines/engine.h"
+#include "dreamweb/dreamgen.h"
#include "dreamweb/console.h"
namespace Graphics {
@@ -81,13 +82,18 @@ public:
void readFromFile(uint8 *dst, unsigned size);
void closeFile();
- Common::Point mousePos() const { return _mouse; }
+ void mouseCall(); //fill mouse pos and button state
+ void processEvents();
+
private:
- const DreamWebGameDescription *_gameDescription;
- Common::RandomSource _rnd;
- Common::Point _mouse;
+ const DreamWebGameDescription *_gameDescription;
+ Common::RandomSource _rnd;
+ Common::Point _mouse;
+ unsigned _mouseState;
Common::File _file;
+
+ dreamgen::Context _context;
};
} // End of namespace DreamWeb
Commit: af4f0e6b1e40971c23331ed677d0fa70a8607eb2
https://github.com/scummvm/scummvm/commit/af4f0e6b1e40971c23331ed677d0fa70a8607eb2
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:06-07:00
Commit Message:
DREAMWEB: added graphics mode initialization
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 353474a..fbb16a8 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -32,12 +32,14 @@
#include "common/iff_container.h"
#include "common/system.h"
#include "common/timer.h"
+#include "common/util.h"
#include "engines/util.h"
#include "audio/mixer.h"
#include "graphics/palette.h"
+#include "graphics/surface.h"
#include "dreamweb/dreamweb.h"
#include "dreamweb/dreamgen.h"
@@ -84,6 +86,15 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
void DreamWebEngine::waitForVSync() {
processEvents();
+ Graphics::Surface *s = _system->lockScreen();
+ if (!s)
+ error("lockScreen failed");
+ for(int y = 0; y < 200; ++y) {
+ uint8 *scanline = (uint8*)s->getBasePtr(0, y);
+ uint8 *src = _context.video.ptr(y * 320, 320);
+ memcpy(scanline, src, 320);
+ }
+ _system->unlockScreen();
/*
while (!_vSyncInterrupt) {
_system->delayMillis(10);
@@ -130,7 +141,7 @@ void DreamWebEngine::processEvents() {
}
break;
default:
- debug(0, "skipped event type %d", event.type);
+ break;
}
}
}
@@ -187,6 +198,10 @@ void DreamWebEngine::mouseCall() {
_context.bx = _mouseState;
}
+void DreamWebEngine::setGraphicsMode() {
+ initGraphics(320, 200, false);
+}
+
} // End of namespace DreamWeb
@@ -198,11 +213,11 @@ static inline DreamWeb::DreamWebEngine *engine() {
}
void seecommandtail(Context &context) {
- context.ds.word(kSoundbaseadd) = 0x220;
- context.ds.byte(kSoundint) = 5;
- context.ds.byte(kSounddmachannel) = 1;
- context.ds.byte(kBrightness) = 1;
- context.ds.word(kHowmuchalloc) = 0x9360;
+ context.data.word(kSoundbaseadd) = 0x220;
+ context.data.byte(kSoundint) = 5;
+ context.data.byte(kSounddmachannel) = 1;
+ context.data.byte(kBrightness) = 1;
+ context.data.word(kHowmuchalloc) = 0x9360;
}
void randomnumber(Context &context) {
@@ -275,8 +290,8 @@ void mousecall(Context &context) {
}
void setmouse(Context &context) {
- context.ds.word(kOldpointerx) = 0xffff;
- warning("setmouse: fixme: add range setting");
+ context.data.word(kOldpointerx) = 0xffff;
+ //warning("setmouse: fixme: add range setting");
//set vertical range to 15-184
//set horizontal range to 15-298*2
}
@@ -455,7 +470,7 @@ void vsync(Context &context) {
}
void setmode(Context &context) {
- warning("setmode (vga): STUB");
+ engine()->setGraphicsMode();
}
void readoneblock(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 0548df6..1c2d1f6 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -84,6 +84,7 @@ public:
void mouseCall(); //fill mouse pos and button state
void processEvents();
+ void setGraphicsMode();
private:
const DreamWebGameDescription *_gameDescription;
Commit: 28cc856572f1fa2041958062382a0e5e54d046fd
https://github.com/scummvm/scummvm/commit/28cc856572f1fa2041958062382a0e5e54d046fd
Author: Torbjörn Andersson (d91tan at localhost.localdomain)
Date: 2011-06-15T08:33:10-07:00
Commit Message:
DREAMWEB: Unstub gettime().
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fbb16a8..9fd8b66 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -297,10 +297,15 @@ void setmouse(Context &context) {
}
void gettime(Context &context) {
- warning("gettime: stub: 10:10:00");
- context.ch = 10;
- context.cl = 10;
- context.dh = 0;
+ TimeDate t;
+ g_system->getTimeAndDate(t);
+ debug(1, "\tgettime: %02d:%02d:%02d", t.tm_hour, t.tm_min, t.tm_sec);
+ context.ch = t.tm_hour;
+ context.cl = t.tm_min;
+ context.dh = t.tm_sec;
+ context.ds.byte(5) = context.dh;
+ context.ds.byte(6) = context.cl;
+ context.ds.byte(7) = context.ch;
}
void allocatemem(Context &context) {
Commit: a1b1d78e69bca1c274106cdea988be7d2452dc72
https://github.com/scummvm/scummvm/commit/a1b1d78e69bca1c274106cdea988be7d2452dc72
Author: Torbjörn Andersson (d91tan at localhost.localdomain)
Date: 2011-06-15T08:33:10-07:00
Commit Message:
DREAMWEB: Unstub mode640x480()
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 9fd8b66..b5be2a6 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -454,7 +454,8 @@ void set16colpalette(Context &context) {
}
void mode640x480(Context &context) {
- ::error("mode640x480");
+ // Video mode 12h: 640x480 pixels, 16 colors, I believe
+ initGraphics(640, 480, true);
}
void showgroup(Context &context) {
Commit: a6fb92d230a08829c7e313665396d9c81fb545d8
https://github.com/scummvm/scummvm/commit/a6fb92d230a08829c7e313665396d9c81fb545d8
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:11-07:00
Commit Message:
DREAMWEB: added o flag handling for shr/shl instructions
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index b69bd15..e474c1b 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -225,23 +225,19 @@ public:
}
inline void _cmp(uint8 a, uint8 b) {
- uint8 x = a;
- _sub(x, b);
+ _sub(a, b);
}
inline void _cmp(uint16 a, uint16 b) {
- uint16 x = a;
- _sub(x, b);
+ _sub(a, b);
}
inline void _test(uint8 a, uint8 b) {
- uint8 x = a;
- _and(x, b);
+ _and(a, b);
}
inline void _test(uint16 a, uint16 b) {
- uint16 x = a;
- _and(x, b);
+ _and(a, b);
}
inline void _add(uint8 &dst, uint8 src) {
@@ -307,36 +303,50 @@ public:
}
inline void _shr(uint8 &dst, uint8 src) {
- if (src > 0 && src < 32) {
+ src &= 0x1f;
+ if (src > 0) {
dst >>= (src - 1);
flags._c = dst & 1;
dst >>= 1;
}
flags.update(dst);
+ if (src == 1)
+ flags._o = dst & 0x80;
}
+
inline void _shr(uint16 &dst, uint8 src) {
- if (src > 0 && src < 32) {
+ src &= 0x1f;
+ if (src > 0) {
dst >>= (src - 1);
flags._c = dst & 1;
dst >>= 1;
}
flags.update(dst);
+ if (src == 1)
+ flags._o = dst & 0x8000;
}
+
inline void _shl(uint8 &dst, uint8 src) {
- if (src > 0 && src < 32) {
+ src &= 0x1f;
+ if (src > 0) {
dst <<= (src - 1);
flags._c = dst & 0x80;
dst <<= 1;
}
flags.update(dst);
+ if (src == 1)
+ flags._o = ((dst & 0x80) != 0) == flags._c;
}
inline void _shl(uint16 &dst, uint8 src) {
- if (src > 0 && src < 32) {
+ src &= 0x1f;
+ if (src > 0) {
dst <<= (src - 1);
flags._c = dst & 0x8000;
dst <<= 1;
}
flags.update(dst);
+ if (src == 1)
+ flags._o = ((dst & 0x8000) != 0) == flags._c;
}
inline void _mul(uint8 src) {
Commit: 797127cb65e2fd26ab5875b6bc64ad16f5439fc5
https://github.com/scummvm/scummvm/commit/797127cb65e2fd26ab5875b6bc64ad16f5439fc5
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:15-07:00
Commit Message:
DREAMWEB: cleared overflow flag on logic instructions
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index e474c1b..f904497 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -268,38 +268,38 @@ public:
inline void _and(uint8 &dst, uint8 src) {
dst &= src;
- flags._c = false;
flags.update(dst);
+ flags._c = flags._o = false;
}
inline void _and(uint16 &dst, uint16 src) {
dst &= src;
- flags._c = false;
flags.update(dst);
+ flags._c = flags._o = false;
}
inline void _or(uint8 &dst, uint8 src) {
dst |= src;
- flags._c = false;
flags.update(dst);
+ flags._c = flags._o = false;
}
inline void _or(uint16 &dst, uint16 src) {
dst |= src;
- flags._c = false;
flags.update(dst);
+ flags._c = flags._o = false;
}
inline void _xor(uint8 &dst, uint8 src) {
dst ^= src;
- flags._c = false;
flags.update(dst);
+ flags._c = flags._o = false;
}
inline void _xor(uint16 &dst, uint16 src) {
dst ^= src;
- flags._c = false;
flags.update(dst);
+ flags._c = flags._o = false;
}
inline void _shr(uint8 &dst, uint8 src) {
@@ -372,8 +372,8 @@ public:
inline void _neg(uint8 &src) {
src = ~src;
- flags._c = false;
flags.update(src);
+ flags._c = flags._o = false;
}
inline void _neg(uint16 &src) {
Commit: e0eac547cb0c008fd6893a87f331f9498e55e0c1
https://github.com/scummvm/scummvm/commit/e0eac547cb0c008fd6893a87f331f9498e55e0c1
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:19-07:00
Commit Message:
DREAMWEB: fixed g/l/ge/le flags
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index f904497..388fc75 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -153,14 +153,14 @@ struct Flags {
bool _z, _c, _s, _o;
inline Flags(): _z(true), _c(false), _s(false), _o(false) {}
- inline bool z() const { return _z; }
- inline bool c() const { return _c; }
- inline bool s() const { return _s; }
+ inline bool z() const { return _z; }
+ inline bool c() const { return _c; }
+ inline bool s() const { return _s; }
//complex flags:
- inline bool g() const { return !_z && _s == _o; }
- inline bool ge() const { return _z || _s == _o; }
- inline bool l() const { return !_z && _s != _o; }
- inline bool le() const { return _z || _s != _o; }
+ inline bool g() const { return !_z && _s == _o; }
+ inline bool ge() const { return _s == _o; }
+ inline bool l() const { return _s != _o; }
+ inline bool le() const { return _z || _s != _o; }
inline void update(uint8 v) {
bool new_s = v & 0x80;
@@ -378,8 +378,8 @@ public:
inline void _neg(uint16 &src) {
src = ~src;
- flags._c = false;
flags.update(src);
+ flags._c = flags._o = false;
}
inline void _movsb() {
Commit: 978d17454b4fad024939320a1e45b1a66e41b3ea
https://github.com/scummvm/scummvm/commit/978d17454b4fad024939320a1e45b1a66e41b3ea
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:23-07:00
Commit Message:
DREAMWEB: fixed OF flag handling
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 388fc75..0772e5a 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -163,18 +163,22 @@ struct Flags {
inline bool le() const { return _z || _s != _o; }
inline void update(uint8 v) {
- bool new_s = v & 0x80;
- _o = new_s != _s;
- _s = new_s;
+ _s = v & 0x80;
_z = v == 0;
}
+ inline void update_o(uint8 v, uint8 old) {
+ _o = (old & 0x80) == (v & 0x80);
+ }
+
inline void update(uint16 v) {
- bool new_s = v & 0x8000;
- _o = new_s != _s;
- _s = new_s;
+ _s = v & 0x8000;
_z = v == 0;
}
+
+ inline void update_o(uint16 v, uint16 old) {
+ _o = (old & 0x8000) == (v & 0x8000);
+ }
};
class Context {
@@ -242,6 +246,7 @@ public:
inline void _add(uint8 &dst, uint8 src) {
unsigned r = (unsigned)dst + src;
+ flags.update_o(r, dst);
flags._c = r >= 0x100;
dst = r;
flags.update(dst);
@@ -249,18 +254,21 @@ public:
inline void _add(uint16 &dst, uint16 src) {
unsigned r = (unsigned)dst + src;
+ flags.update_o(r, dst);
flags._c = r >= 0x10000;
dst = r;
flags.update(dst);
}
inline void _sub(uint8 &dst, uint8 src) {
+ flags.update_o(dst - src, dst);
flags._c = dst < src;
dst -= src;
flags.update(dst);
}
inline void _sub(uint16 &dst, uint16 src) {
+ flags.update_o(dst - src, dst);
flags._c = dst < src;
dst -= src;
flags.update(dst);
@@ -351,23 +359,21 @@ public:
inline void _mul(uint8 src) {
unsigned r = unsigned(al) * src;
+ flags.update_o(r, al);
ax = (uint16)r;
flags._c = r >= 0x10000;
flags._z = r == 0;
- bool s = r & 0x8000;
- flags._o = s != flags._s;
- flags._s = s;
+ flags._s = r & 0x8000;
}
inline void _mul(uint16 src) {
unsigned r = unsigned(ax) * src; //assuming here that we have at least 32 bits
+ flags.update_o(r, ax);
dx = (r >> 16) & 0xffff;
ax = r & 0xffff;
flags._c = false;//fixme
flags._z = r == 0;
- bool s = r & 0x80000000;
- flags._o = s != flags._s;
- flags._s = s;
+ flags._s = r & 0x80000000;
}
inline void _neg(uint8 &src) {
Commit: 3bd7cb1902b7a01d622cc8ccdfc54bc5b50f164c
https://github.com/scummvm/scummvm/commit/3bd7cb1902b7a01d622cc8ccdfc54bc5b50f164c
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:27-07:00
Commit Message:
DREAMWEB: fixed loadfromfile
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b5be2a6..340c916 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -170,11 +170,11 @@ void DreamWebEngine::openFile(const Common::String &name) {
}
}
-void DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
+uint32 DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
processEvents();
if (!_file.isOpen())
error("file was not opened (read before open)");
- _file.read(dst, size);
+ return _file.read(dst, size);
}
void DreamWebEngine::closeFile() {
@@ -248,7 +248,7 @@ void readfromfile(Context &context) {
uint16 dst_offset = context.dx;
uint16 size = context.cx;
debug(1, "readfromfile(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
- engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
+ context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
context.flags._c = false; //fixme: add return args
}
@@ -459,8 +459,17 @@ void mode640x480(Context &context) {
}
void showgroup(Context &context) {
- warning("showgroup: STUB");
- context.cx = 0;
+ debug(1, "setting palette entries %u, %u colors, ds: %04x", (uint8)context.al, (uint16)context.cx, (uint16)context.ds);
+ unsigned idx = context.al;
+ while(context.cx--) {
+ context._lodsb();
+ unsigned r = context.al;
+ context._lodsb();
+ unsigned g = context.al;
+ context._lodsb();
+ unsigned b = context.al;
+ debug(1, "%u -> %u,%u,%u", idx, r, g, b);
+ }
}
void fadedos(Context &context) {
@@ -484,7 +493,7 @@ void readoneblock(Context &context) {
}
void showpcx(Context &context) {
- ::error("showpcx");
+ warning("showpcx");
}
} /*namespace dreamgen */
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 1c2d1f6..d2fc447 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -79,7 +79,7 @@ public:
uint8 randomNumber() { return _rnd.getRandomNumber(255); }
void openFile(const Common::String &name);
- void readFromFile(uint8 *dst, unsigned size);
+ uint32 readFromFile(uint8 *dst, unsigned size);
void closeFile();
void mouseCall(); //fill mouse pos and button state
Commit: fe40748d1ac2b110120da1826aac7816b00ee60b
https://github.com/scummvm/scummvm/commit/fe40748d1ac2b110120da1826aac7816b00ee60b
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:30-07:00
Commit Message:
DREAMWEB: implemented loadseg
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 340c916..5650023 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -249,7 +249,7 @@ void readfromfile(Context &context) {
uint16 size = context.cx;
debug(1, "readfromfile(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
- context.flags._c = false; //fixme: add return args
+ context.flags._c = false;
}
void closefile(Context &context) {
@@ -426,7 +426,15 @@ void saveseg(Context &context) {
}
void loadseg(Context &context) {
- ::error("loadseg");
+ uint16 dst_offset = context.dx;
+ uint16 size = context.ax;
+
+ context.ax = context.es.word(context.di);
+ context.di += 2;
+
+ debug(1, "readfromfile(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
+ context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
+ context.flags._c = false;
}
void loadposition(Context &context) {
Commit: 83d7320712bdfe565215e96360d552092503eb80
https://github.com/scummvm/scummvm/commit/83d7320712bdfe565215e96360d552092503eb80
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:33-07:00
Commit Message:
DREAMWEB: fixed bogus logs
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 5650023..aead233 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -432,7 +432,7 @@ void loadseg(Context &context) {
context.ax = context.es.word(context.di);
context.di += 2;
- debug(1, "readfromfile(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
+ debug(1, "loadseg(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
context.flags._c = false;
}
Commit: a5bd71858b1933c771f123457ba873e1898a873f
https://github.com/scummvm/scummvm/commit/a5bd71858b1933c771f123457ba873e1898a873f
Author: Torbjörn Andersson (d91tan at localhost.localdomain)
Date: 2011-06-15T08:33:37-07:00
Commit Message:
DREAMWEB: Adjusted mode640x480 slightly
I can't imagine it makes any diffrence, but I guess this function
should set these registers just in case...
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index aead233..ebdc4a9 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -463,6 +463,8 @@ void set16colpalette(Context &context) {
void mode640x480(Context &context) {
// Video mode 12h: 640x480 pixels, 16 colors, I believe
+ context.al = 0x12 + 128;
+ context.ah = 0;
initGraphics(640, 480, true);
}
Commit: bea919c9b45d8d6d31adcb0b8edc3ab48d5b8c35
https://github.com/scummvm/scummvm/commit/bea919c9b45d8d6d31adcb0b8edc3ab48d5b8c35
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:38-07:00
Commit Message:
DREAMWEB: fixed hardcoded offsets
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index ebdc4a9..28dea96 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -303,9 +303,9 @@ void gettime(Context &context) {
context.ch = t.tm_hour;
context.cl = t.tm_min;
context.dh = t.tm_sec;
- context.ds.byte(5) = context.dh;
- context.ds.byte(6) = context.cl;
- context.ds.byte(7) = context.ch;
+ context.data.byte(kSecondcount) = context.dh;
+ context.data.byte(kMinutecount) = context.cl;
+ context.data.byte(kHourcount) = context.ch;
}
void allocatemem(Context &context) {
Commit: fce91bd196d6c1d17fb56b4a983b219a55fde045
https://github.com/scummvm/scummvm/commit/fce91bd196d6c1d17fb56b4a983b219a55fde045
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:41-07:00
Commit Message:
DREAMWEB: fixed of flag handling
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 0772e5a..8d4592f 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -168,7 +168,7 @@ struct Flags {
}
inline void update_o(uint8 v, uint8 old) {
- _o = (old & 0x80) == (v & 0x80);
+ _o = (old & 0x80) != (v & 0x80);
}
inline void update(uint16 v) {
Commit: 66ee7b20f5d72a981b44ebf083a5e1280a61399e
https://github.com/scummvm/scummvm/commit/66ee7b20f5d72a981b44ebf083a5e1280a61399e
Author: Vladimir (whoozle at yandex.ru)
Date: 2011-06-15T08:33:45-07:00
Commit Message:
DREAMWEB: removed noisy palette log
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 28dea96..e88898b 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -470,15 +470,14 @@ void mode640x480(Context &context) {
void showgroup(Context &context) {
debug(1, "setting palette entries %u, %u colors, ds: %04x", (uint8)context.al, (uint16)context.cx, (uint16)context.ds);
- unsigned idx = context.al;
- while(context.cx--) {
+ for(unsigned idx = context.al; context.cx--; ++idx) {
context._lodsb();
unsigned r = context.al;
context._lodsb();
unsigned g = context.al;
context._lodsb();
unsigned b = context.al;
- debug(1, "%u -> %u,%u,%u", idx, r, g, b);
+ //debug(1, "%u -> (%u,%u,%u)", idx, r, g, b);
}
}
Commit: 4cea3245fe90b7e09d5e55e8dbf598045b525b95
https://github.com/scummvm/scummvm/commit/4cea3245fe90b7e09d5e55e8dbf598045b525b95
Author: Torbjörn Andersson (d91tan at localhost.localdomain)
Date: 2011-06-15T08:33:47-07:00
Commit Message:
DREAMWEB: First attempt at unstubbing showpcx()
This is untested and incomplete, but I'm too tired to do an more
with it tonight, and it doesn't seem to cause any catastrophic
failures. Yet.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index e88898b..4714511 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -498,11 +498,108 @@ void setmode(Context &context) {
}
void readoneblock(Context &context) {
- ::error("readoneblock");
+ context.ds = context.data.word(kWorkspace);
+ context.cx = 30000;
+ context.dx = 0;
+ readfromfile(context);
+}
+
+// TODO: This is already defined in dreamgen.cpp, so expose it should be
+// exposed from there. Once that's done, remove this copy!
+
+static void readabyte(Context & context) {
+ context._cmp(context.si, 30000);
+ if (!context.flags.z()) goto notendblock;
+ context.push(context.bx);
+ context.push(context.es);
+ context.push(context.di);
+ context.push(context.ds);
+ context.push(context.si);
+ readoneblock(context);
+ context.si = context.pop();
+ context.ds = context.pop();
+ context.di = context.pop();
+ context.es = context.pop();
+ context.bx = context.pop();
+ context.si = 0;
+notendblock:
+ context._lodsb();
}
void showpcx(Context &context) {
- warning("showpcx");
+ openfile(context);
+ context.ds = context.data.word(kWorkspace);
+ context.cx = 128;
+ context.dx = 0;
+ readfromfile(context);
+
+ context.ds = context.data.word(kWorkspace);
+ context.si = 16;
+ context.cx = 48;
+ context.es = context.data.word(kBuffers);
+ context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+pcxpal:
+ context.push(context.cx);
+ readabyte(context);
+ context._shr(context.al, 1);
+ context._shr(context.al, 1);
+ context._stosb();
+ context.cx = context.pop();
+ if (--context.cx) goto pcxpal;
+ context.cx = 768 - 48;
+ context.ax = 0x0ffff;
+ while (--context.cx) context._stosw();
+
+ readoneblock(context);
+ context.si = 0;
+ context.di = 0;
+ context.cx = 480;
+convertpcx:
+ context.push(context.cx);
+ context.push(context.di);
+ context.ds = context.data.word(kWorkspace);
+ context.es = context.data.word(kBuffers);
+ context.di = 0+(228*13)+32+60;
+ context.bx = 0;
+sameline:
+ readabyte(context);
+ context.ah = context.al;
+ context._and(context.ah, 0xc0);
+ context._cmp(context.ah, 0xc0);
+ if (!context.flags.z()) goto normal;
+ context.cl = context.al;
+ context._and(context.cl, 0x3f);
+ context.ch = 0;
+ context.push(context.cx);
+ readabyte(context);
+ context.cx = context.pop();
+ context._add(context.bx, context.cx);
+ if (--context.cx) context._stosb();
+ context._cmp(context.bx, 4 * 80);
+ if (!context.flags.z()) goto sameline;
+ goto endline;
+normal:
+ context._stosb();
+ context._add(context.bx, 1);
+ context._cmp(context.bx, 4 * 80);
+ if (!context.flags.z()) goto sameline;
+
+endline:
+ context.di = context.pop();
+ context.push(context.si);
+ context.dx = 0xa000;
+ context.es = context.dx;
+ context.si = 0+(228*13)+32+60;
+ context.ds = context.data.word(kBuffers);
+
+ // TODO: There's a bunch of code here which I assume draws data to the
+ // screen or something like that.
+
+ context.si = context.pop();
+ context.cx = context.pop();
+ if (--context.cx) goto convertpcx;
+
+ closefile(context);
}
} /*namespace dreamgen */
Commit: d2688a520bf58bb5aef751ce7a331fc900532c98
https://github.com/scummvm/scummvm/commit/d2688a520bf58bb5aef751ce7a331fc900532c98
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:48-07:00
Commit Message:
DREAMWEB: removed static from functions for now (allowing external usage)
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 36bc192..f5f7057 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -433,7 +433,7 @@ namespace %s {
self.proc_addr.append((name, self.proc.offset))
self.body = str()
- self.body += "static void %s(Context & context) {\n" %name;
+ self.body += "void %s(Context & context) {\n" %name;
self.proc.optimize()
self.unbounded = []
self.proc.visit(self, skip)
@@ -502,9 +502,11 @@ namespace %s {
self.__proc(name)
self.write_stubs("_stubs.cpp", self.failed)
done, failed = len(self.proc_done), len(self.failed)
+
for f in self.forwards:
if f not in self.failed:
- self.fd.write("static void %s(Context &context);\n" %f)
+ self.fd.write("void %s(Context &context);\n" %f)
+
self.fd.write("\n")
self.fd.write("\n".join(self.translated))
self.fd.write("\n\n")
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 54de5a9..f7acf6e 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2,485 +2,485 @@
namespace dreamgen {
-static void checkbasemem(Context &context);
-static void allocatebuffers(Context &context);
-static void clearbuffers(Context &context);
-static void clearpalette(Context &context);
-static void readsetdata(Context &context);
-static void loadpalfromiff(Context &context);
-static void titles(Context &context);
-static void credits(Context &context);
-static void cls(Context &context);
-static void decide(Context &context);
-static void clearchanges(Context &context);
-static void loadroom(Context &context);
-static void clearsprites(Context &context);
-static void initman(Context &context);
-static void entrytexts(Context &context);
-static void entryanims(Context &context);
-static void initialinv(Context &context);
-static void startup1(Context &context);
-static void clearbeforeload(Context &context);
-static void startup(Context &context);
-static void worktoscreenm(Context &context);
-static void screenupdate(Context &context);
-static void showgun(Context &context);
-static void fadescreendown(Context &context);
-static void hangon(Context &context);
-static void fadescreendowns(Context &context);
-static void endgame(Context &context);
-static void standardload(Context &context);
-static void getroomspaths(Context &context);
-static void readheader(Context &context);
-static void allocateload(Context &context);
-static void fillspace(Context &context);
-static void sortoutmap(Context &context);
-static void findroominloc(Context &context);
-static void deletetaken(Context &context);
-static void setallchanges(Context &context);
-static void autoappear(Context &context);
-static void getroomdata(Context &context);
-static void autosetwalk(Context &context);
-static void findxyfrompath(Context &context);
-static void twodigitnum(Context &context);
-static void startloading(Context &context);
-static void loadroomssample(Context &context);
-static void switchryanon(Context &context);
-static void drawflags(Context &context);
-static void getdimension(Context &context);
-static void getflagunderp(Context &context);
-static void multidump(Context &context);
-static void multiput(Context &context);
-static void multiget(Context &context);
-static void dumpblink(Context &context);
-static void showblink(Context &context);
-static void showframe(Context &context);
-static void printcurs(Context &context);
-static void delcurs(Context &context);
-static void delpointer(Context &context);
-static void readmouse(Context &context);
-static void animpointer(Context &context);
-static void showpointer(Context &context);
-static void dumppointer(Context &context);
-static void commandonly(Context &context);
-static void worktoscreen(Context &context);
-static void showtime(Context &context);
-static void showwatch(Context &context);
-static void printmessage(Context &context);
-static void printdirect(Context &context);
-static void usecharset1(Context &context);
-static void showpanel(Context &context);
-static void showman(Context &context);
-static void roomname(Context &context);
-static void panelicons1(Context &context);
-static void zoomicon(Context &context);
-static void middlepanel(Context &context);
-static void findobname(Context &context);
-static void workoutframes(Context &context);
-static void checkdest(Context &context);
-static void bresenhams(Context &context);
-static void facerightway(Context &context);
-static void checkone(Context &context);
-static void commandwithob(Context &context);
-static void findnextcolon(Context &context);
-static void deltextline(Context &context);
-static void copyname(Context &context);
-static void finishedwalking(Context &context);
-static void examineob(Context &context);
-static void talk(Context &context);
-static void setwalk(Context &context);
-static void examineobtext(Context &context);
-static void blocknametext(Context &context);
-static void personnametext(Context &context);
-static void walktotext(Context &context);
-static void clearwork(Context &context);
-static void drawfloor(Context &context);
-static void reelsonscreen(Context &context);
-static void spriteupdate(Context &context);
-static void printsprites(Context &context);
-static void playchannel0(Context &context);
-static void cancelch0(Context &context);
-static void createpanel(Context &context);
-static void findpathofpoint(Context &context);
-static void showicon(Context &context);
-static void undertextline(Context &context);
-static void mainscreen(Context &context);
-static void getunderzoom(Context &context);
-static void zoom(Context &context);
-static void walkintoroom(Context &context);
-static void reminders(Context &context);
-static void atmospheres(Context &context);
-static void findormake(Context &context);
-static void obname(Context &context);
-static void pixelcheckset(Context &context);
-static void isitdescribed(Context &context);
-static void getreelstart(Context &context);
-static void getreelframeax(Context &context);
-static void blank(Context &context);
-static void findfirstpath(Context &context);
-static void checkifex(Context &context);
-static void checkiffree(Context &context);
-static void checkifperson(Context &context);
-static void checkifset(Context &context);
-static void identifyob(Context &context);
-static void checkcoords(Context &context);
-static void walkandexamine(Context &context);
-static void convnum(Context &context);
-static void onedigit(Context &context);
-static void plotreel(Context &context);
-static void checkforshake(Context &context);
-static void newplace(Context &context);
-static void readmouse1(Context &context);
-static void dumptextline(Context &context);
-static void autolook(Context &context);
-static void watchcount(Context &context);
-static void readmouse2(Context &context);
-static void dumpzoom(Context &context);
-static void deleverything(Context &context);
-static void afternewroom(Context &context);
-static void readmouse3(Context &context);
-static void dumpmap(Context &context);
-static void dumptimedtext(Context &context);
-static void readmouse4(Context &context);
-static void dumpwatch(Context &context);
-static void fadescreenup(Context &context);
-static void clearreels(Context &context);
-static void clearrest(Context &context);
-static void trysoundalloc(Context &context);
-static void allocatework(Context &context);
-static void checkforemm(Context &context);
-static void getanyad(Context &context);
-static void transfertoex(Context &context);
-static void pickupob(Context &context);
-static void switchryanoff(Context &context);
-static void resetlocation(Context &context);
-static void removefreeobject(Context &context);
-static void checkifpathison(Context &context);
-static void turnpathon(Context &context);
-static void removesetobject(Context &context);
-static void placesetobject(Context &context);
-static void turnanypathon(Context &context);
-static void setuptimeduse(Context &context);
-static void volumeadjust(Context &context);
-static void loopchannel0(Context &context);
-static void cancelch1(Context &context);
-static void createname(Context &context);
-static void doload(Context &context);
-static void showdecisions(Context &context);
-static void showopbox(Context &context);
-static void showloadops(Context &context);
-static void showslots(Context &context);
-static void shownames(Context &context);
-static void namestoold(Context &context);
-static void getridoftemp(Context &context);
-static void initrain(Context &context);
-static void createpanel2(Context &context);
-static void loadsavebox(Context &context);
-static void storeit(Context &context);
-static void makeheader(Context &context);
-static void oldtonames(Context &context);
-static void showsaveops(Context &context);
-static void readkey(Context &context);
-static void getnamepos(Context &context);
-static void selectslot(Context &context);
-static void restoreall(Context &context);
-static void redrawmainscrn(Context &context);
-static void checkinput(Context &context);
-static void showdiscops(Context &context);
-static void loadintotemp(Context &context);
-static void getback1(Context &context);
-static void getridofall(Context &context);
-static void showmainops(Context &context);
-static void dosaveload(Context &context);
-static void findtext1(Context &context);
-static void usetempcharset(Context &context);
-static void playchannel1(Context &context);
-static void getlocation(Context &context);
-static void setlocation(Context &context);
-static void hangonp(Context &context);
-static void showdiary(Context &context);
-static void showdiarypage(Context &context);
-static void getridofreels(Context &context);
-static void loadtemptext(Context &context);
-static void loadtempcharset(Context &context);
-static void showdiarykeys(Context &context);
-static void dumpdiarykeys(Context &context);
-static void getridoftemptext(Context &context);
-static void getridoftempcharset(Context &context);
-static void restorereels(Context &context);
-static void nextsymbol(Context &context);
-static void showsymbol(Context &context);
-static void updatesymboltop(Context &context);
-static void updatesymbolbot(Context &context);
-static void dumpsymbol(Context &context);
-static void turnanypathoff(Context &context);
-static void folderexit(Context &context);
-static void showleftpage(Context &context);
-static void showrightpage(Context &context);
-static void loadintotemp2(Context &context);
-static void loadintotemp3(Context &context);
-static void showfolder(Context &context);
-static void folderhints(Context &context);
-static void loadfolder(Context &context);
-static void getridoftemp2(Context &context);
-static void getridoftemp3(Context &context);
-static void loadmenu(Context &context);
-static void getundermenu(Context &context);
-static void putundermenu(Context &context);
-static void showmenu(Context &context);
-static void dumpmenu(Context &context);
-static void singlekey(Context &context);
-static void buttonpress(Context &context);
-static void loadkeypad(Context &context);
-static void showouterpad(Context &context);
-static void showkeypad(Context &context);
-static void dumpkeypad(Context &context);
-static void addtopresslist(Context &context);
-static void isitright(Context &context);
-static void checkinside(Context &context);
-static void compare(Context &context);
-static void showfirstuse(Context &context);
-static void putbackobstuff(Context &context);
-static void withwhat(Context &context);
-static void showpuztext(Context &context);
-static void placefreeobject(Context &context);
-static void issetobonmap(Context &context);
-static void showseconduse(Context &context);
-static void removeobfrominv(Context &context);
-static void turnpathoff(Context &context);
-static void getundertimed(Context &context);
-static void putundertimed(Context &context);
-static void getsetad(Context &context);
-static void getfreead(Context &context);
-static void dochange(Context &context);
-static void findpuztext(Context &context);
-static void showexit(Context &context);
-static void obicons(Context &context);
-static void obpicture(Context &context);
-static void describeob(Context &context);
-static void getanyaddir(Context &context);
-static void findinvpos(Context &context);
-static void useroutine(Context &context);
-static void printmessage2(Context &context);
-static void fillryan(Context &context);
-static void findsetobject(Context &context);
-static void getobtextstart(Context &context);
-static void usetext(Context &context);
-static void selectlocation(Context &context);
-static void hangonw(Context &context);
-static void moneypoke(Context &context);
-static void nextcolon(Context &context);
-static void getexad(Context &context);
-static void entercode(Context &context);
-static void findexobject(Context &context);
-static void makeworn(Context &context);
-static void isryanholding(Context &context);
-static void nothelderror(Context &context);
-static void triggermessage(Context &context);
-static void monprint(Context &context);
-static void modifychar(Context &context);
-static void printchar(Context &context);
-static void showcurrentfile(Context &context);
-static void printlogo(Context &context);
-static void printundermon(Context &context);
-static void randomaccess(Context &context);
-static void locklighton(Context &context);
-static void locklightoff(Context &context);
-static void makecaps(Context &context);
-static void monmessage(Context &context);
-static void scrollmonitor(Context &context);
-static void searchforstring(Context &context);
-static void getkeyandlogo(Context &context);
-static void monitorlogo(Context &context);
-static void parser(Context &context);
-static void neterror(Context &context);
-static void processtrigger(Context &context);
-static void input(Context &context);
-static void dirfile(Context &context);
-static void searchforfiles(Context &context);
-static void dircom(Context &context);
-static void signon(Context &context);
-static void read(Context &context);
-static void showkeys(Context &context);
-static void delchar(Context &context);
-static void randomnum1(Context &context);
-static void accesslighton(Context &context);
-static void accesslightoff(Context &context);
-static void powerlighton(Context &context);
-static void powerlightoff(Context &context);
-static void lookininterface(Context &context);
-static void loadpersonal(Context &context);
-static void loadnews(Context &context);
-static void loadcart(Context &context);
-static void printoutermon(Context &context);
-static void initialmoncols(Context &context);
-static void turnonpower(Context &context);
-static void fadeupyellows(Context &context);
-static void fadeupmonfirst(Context &context);
-static void hangoncurs(Context &context);
-static void execcommand(Context &context);
-static void purgealocation(Context &context);
-static void getdestinfo(Context &context);
-static void showarrows(Context &context);
-static void locationpic(Context &context);
-static void getundercentre(Context &context);
-static void putundercentre(Context &context);
-static void readcitypic(Context &context);
-static void showcity(Context &context);
-static void readdesticon(Context &context);
-static void loadtraveltext(Context &context);
-static void convicons(Context &context);
-static void starttalk(Context &context);
-static void hangonpq(Context &context);
-static void redes(Context &context);
-static void dosometalk(Context &context);
-static void getpersontext(Context &context);
-static void getpersframe(Context &context);
-static void findsource(Context &context);
-static void printslow(Context &context);
-static void dolook(Context &context);
-static void getxad(Context &context);
-static void getyad(Context &context);
-static void getmapad(Context &context);
-static void calcfrframe(Context &context);
-static void finalframe(Context &context);
-static void makesprite(Context &context);
-static void makebackob(Context &context);
-static void addalong(Context &context);
-static void addlength(Context &context);
-static void eraseoldobs(Context &context);
-static void calcmapad(Context &context);
-static void doblocks(Context &context);
-static void showallobs(Context &context);
-static void showallfree(Context &context);
-static void showallex(Context &context);
-static void paneltomap(Context &context);
-static void deleteexframe(Context &context);
-static void deleteextext(Context &context);
-static void deleteexobject(Context &context);
-static void purgeanitem(Context &context);
-static void getexpos(Context &context);
-static void transfermap(Context &context);
-static void transferinv(Context &context);
-static void transfertext(Context &context);
-static void transfercontoex(Context &context);
-static void emergencypurge(Context &context);
-static void pickupconts(Context &context);
-static void findopenpos(Context &context);
-static void reexfromopen(Context &context);
-static void geteitherad(Context &context);
-static void fillopen(Context &context);
-static void useopened(Context &context);
-static void getopenedsize(Context &context);
-static void errormessage3(Context &context);
-static void errormessage2(Context &context);
-static void examicon(Context &context);
-static void outofopen(Context &context);
-static void swapwithopen(Context &context);
-static void isitworn(Context &context);
-static void wornerror(Context &context);
-static void errormessage1(Context &context);
-static void checkobjectsize(Context &context);
-static void openinv(Context &context);
-static void openob(Context &context);
-static void droperror(Context &context);
-static void cantdrop(Context &context);
-static void reexfrominv(Context &context);
-static void intoinv(Context &context);
-static void outofinv(Context &context);
-static void swapwithinv(Context &context);
-static void makemainscreen(Context &context);
-static void searchforsame(Context &context);
-static void lookatcard(Context &context);
-static void obsthatdothings(Context &context);
-static void additionaltext(Context &context);
-static void findallopen(Context &context);
-static void obtoinv(Context &context);
-static void findallryan(Context &context);
-static void showryanpage(Context &context);
-static void kernchars(Context &context);
-static void getnextword(Context &context);
-static void getnumber(Context &context);
-static void lockmon(Context &context);
-static void printboth(Context &context);
-static void waitframes(Context &context);
-static void hangone(Context &context);
-static void allpalette(Context &context);
-static void fadescreenups(Context &context);
-static void afterintroroom(Context &context);
-static void usetimedtext(Context &context);
-static void loadintroroom(Context &context);
-static void runintroseq(Context &context);
-static void realcredits(Context &context);
-static void runendseq(Context &context);
-static void showmonk(Context &context);
-static void monkspeaking(Context &context);
-static void gettingshot(Context &context);
-static void biblequote(Context &context);
-static void intro(Context &context);
-static void paltostartpal(Context &context);
-static void paltoendpal(Context &context);
-static void dumpcurrent(Context &context);
-static void rollem(Context &context);
-static void greyscalesum(Context &context);
-static void endpaltostart(Context &context);
-static void clearendpal(Context &context);
-static void rollendcredits2(Context &context);
-static void clearstartpal(Context &context);
-static void fadecalculation(Context &context);
-static void frameoutfx(Context &context);
-static void frameoutnm(Context &context);
-static void frameoutbh(Context &context);
-static void frameoutv(Context &context);
-static void putunderzoom(Context &context);
-static void crosshair(Context &context);
-static void width160(Context &context);
-static void maptopanel(Context &context);
-static void movemap(Context &context);
-static void dealwithspecial(Context &context);
-static void showreelframe(Context &context);
-static void soundonreels(Context &context);
-static void reconstruct(Context &context);
-static void updatepeople(Context &context);
-static void watchreel(Context &context);
-static void showrain(Context &context);
-static void dodoor(Context &context);
-static void liftnoise(Context &context);
-static void widedoor(Context &context);
-static void random(Context &context);
-static void lockeddoorway(Context &context);
-static void liftsprite(Context &context);
-static void doorway(Context &context);
-static void constant(Context &context);
-static void steady(Context &context);
-static void getblockofpixel(Context &context);
-static void splitintolines(Context &context);
-static void adjustleft(Context &context);
-static void adjustright(Context &context);
-static void adjustdown(Context &context);
-static void adjustup(Context &context);
-static void aboutturn(Context &context);
-static void checkforexit(Context &context);
-static void walking(Context &context);
-static void printasprite(Context &context);
-static void showgamereel(Context &context);
-static void checkspeed(Context &context);
-static void addtopeoplelist(Context &context);
-static void setuptimedtemp(Context &context);
-static void madmantext(Context &context);
-static void madmode(Context &context);
-static void priesttext(Context &context);
-static void fadescreenuphalf(Context &context);
-static void textforend(Context &context);
-static void fadescreendownhalf(Context &context);
-static void rollendcredits(Context &context);
-static void textformonk(Context &context);
-static void monks2text(Context &context);
-static void intro2text(Context &context);
-static void intro3text(Context &context);
-static void intro1text(Context &context);
-
-static void alleybarksound(Context & context) {
+void checkbasemem(Context &context);
+void allocatebuffers(Context &context);
+void clearbuffers(Context &context);
+void clearpalette(Context &context);
+void readsetdata(Context &context);
+void loadpalfromiff(Context &context);
+void titles(Context &context);
+void credits(Context &context);
+void cls(Context &context);
+void decide(Context &context);
+void clearchanges(Context &context);
+void loadroom(Context &context);
+void clearsprites(Context &context);
+void initman(Context &context);
+void entrytexts(Context &context);
+void entryanims(Context &context);
+void initialinv(Context &context);
+void startup1(Context &context);
+void clearbeforeload(Context &context);
+void startup(Context &context);
+void worktoscreenm(Context &context);
+void screenupdate(Context &context);
+void showgun(Context &context);
+void fadescreendown(Context &context);
+void hangon(Context &context);
+void fadescreendowns(Context &context);
+void endgame(Context &context);
+void standardload(Context &context);
+void getroomspaths(Context &context);
+void readheader(Context &context);
+void allocateload(Context &context);
+void fillspace(Context &context);
+void sortoutmap(Context &context);
+void findroominloc(Context &context);
+void deletetaken(Context &context);
+void setallchanges(Context &context);
+void autoappear(Context &context);
+void getroomdata(Context &context);
+void autosetwalk(Context &context);
+void findxyfrompath(Context &context);
+void twodigitnum(Context &context);
+void startloading(Context &context);
+void loadroomssample(Context &context);
+void switchryanon(Context &context);
+void drawflags(Context &context);
+void getdimension(Context &context);
+void getflagunderp(Context &context);
+void multidump(Context &context);
+void multiput(Context &context);
+void multiget(Context &context);
+void dumpblink(Context &context);
+void showblink(Context &context);
+void showframe(Context &context);
+void printcurs(Context &context);
+void delcurs(Context &context);
+void delpointer(Context &context);
+void readmouse(Context &context);
+void animpointer(Context &context);
+void showpointer(Context &context);
+void dumppointer(Context &context);
+void commandonly(Context &context);
+void worktoscreen(Context &context);
+void showtime(Context &context);
+void showwatch(Context &context);
+void printmessage(Context &context);
+void printdirect(Context &context);
+void usecharset1(Context &context);
+void showpanel(Context &context);
+void showman(Context &context);
+void roomname(Context &context);
+void panelicons1(Context &context);
+void zoomicon(Context &context);
+void middlepanel(Context &context);
+void findobname(Context &context);
+void workoutframes(Context &context);
+void checkdest(Context &context);
+void bresenhams(Context &context);
+void facerightway(Context &context);
+void checkone(Context &context);
+void commandwithob(Context &context);
+void findnextcolon(Context &context);
+void deltextline(Context &context);
+void copyname(Context &context);
+void finishedwalking(Context &context);
+void examineob(Context &context);
+void talk(Context &context);
+void setwalk(Context &context);
+void examineobtext(Context &context);
+void blocknametext(Context &context);
+void personnametext(Context &context);
+void walktotext(Context &context);
+void clearwork(Context &context);
+void drawfloor(Context &context);
+void reelsonscreen(Context &context);
+void spriteupdate(Context &context);
+void printsprites(Context &context);
+void playchannel0(Context &context);
+void cancelch0(Context &context);
+void createpanel(Context &context);
+void findpathofpoint(Context &context);
+void showicon(Context &context);
+void undertextline(Context &context);
+void mainscreen(Context &context);
+void getunderzoom(Context &context);
+void zoom(Context &context);
+void walkintoroom(Context &context);
+void reminders(Context &context);
+void atmospheres(Context &context);
+void findormake(Context &context);
+void obname(Context &context);
+void pixelcheckset(Context &context);
+void isitdescribed(Context &context);
+void getreelstart(Context &context);
+void getreelframeax(Context &context);
+void blank(Context &context);
+void findfirstpath(Context &context);
+void checkifex(Context &context);
+void checkiffree(Context &context);
+void checkifperson(Context &context);
+void checkifset(Context &context);
+void identifyob(Context &context);
+void checkcoords(Context &context);
+void walkandexamine(Context &context);
+void convnum(Context &context);
+void onedigit(Context &context);
+void plotreel(Context &context);
+void checkforshake(Context &context);
+void newplace(Context &context);
+void readmouse1(Context &context);
+void dumptextline(Context &context);
+void autolook(Context &context);
+void watchcount(Context &context);
+void readmouse2(Context &context);
+void dumpzoom(Context &context);
+void deleverything(Context &context);
+void afternewroom(Context &context);
+void readmouse3(Context &context);
+void dumpmap(Context &context);
+void dumptimedtext(Context &context);
+void readmouse4(Context &context);
+void dumpwatch(Context &context);
+void fadescreenup(Context &context);
+void clearreels(Context &context);
+void clearrest(Context &context);
+void trysoundalloc(Context &context);
+void allocatework(Context &context);
+void checkforemm(Context &context);
+void getanyad(Context &context);
+void transfertoex(Context &context);
+void pickupob(Context &context);
+void switchryanoff(Context &context);
+void resetlocation(Context &context);
+void removefreeobject(Context &context);
+void checkifpathison(Context &context);
+void turnpathon(Context &context);
+void removesetobject(Context &context);
+void placesetobject(Context &context);
+void turnanypathon(Context &context);
+void setuptimeduse(Context &context);
+void volumeadjust(Context &context);
+void loopchannel0(Context &context);
+void cancelch1(Context &context);
+void createname(Context &context);
+void doload(Context &context);
+void showdecisions(Context &context);
+void showopbox(Context &context);
+void showloadops(Context &context);
+void showslots(Context &context);
+void shownames(Context &context);
+void namestoold(Context &context);
+void getridoftemp(Context &context);
+void initrain(Context &context);
+void createpanel2(Context &context);
+void loadsavebox(Context &context);
+void storeit(Context &context);
+void makeheader(Context &context);
+void oldtonames(Context &context);
+void showsaveops(Context &context);
+void readkey(Context &context);
+void getnamepos(Context &context);
+void selectslot(Context &context);
+void restoreall(Context &context);
+void redrawmainscrn(Context &context);
+void checkinput(Context &context);
+void showdiscops(Context &context);
+void loadintotemp(Context &context);
+void getback1(Context &context);
+void getridofall(Context &context);
+void showmainops(Context &context);
+void dosaveload(Context &context);
+void findtext1(Context &context);
+void usetempcharset(Context &context);
+void playchannel1(Context &context);
+void getlocation(Context &context);
+void setlocation(Context &context);
+void hangonp(Context &context);
+void showdiary(Context &context);
+void showdiarypage(Context &context);
+void getridofreels(Context &context);
+void loadtemptext(Context &context);
+void loadtempcharset(Context &context);
+void showdiarykeys(Context &context);
+void dumpdiarykeys(Context &context);
+void getridoftemptext(Context &context);
+void getridoftempcharset(Context &context);
+void restorereels(Context &context);
+void nextsymbol(Context &context);
+void showsymbol(Context &context);
+void updatesymboltop(Context &context);
+void updatesymbolbot(Context &context);
+void dumpsymbol(Context &context);
+void turnanypathoff(Context &context);
+void folderexit(Context &context);
+void showleftpage(Context &context);
+void showrightpage(Context &context);
+void loadintotemp2(Context &context);
+void loadintotemp3(Context &context);
+void showfolder(Context &context);
+void folderhints(Context &context);
+void loadfolder(Context &context);
+void getridoftemp2(Context &context);
+void getridoftemp3(Context &context);
+void loadmenu(Context &context);
+void getundermenu(Context &context);
+void putundermenu(Context &context);
+void showmenu(Context &context);
+void dumpmenu(Context &context);
+void singlekey(Context &context);
+void buttonpress(Context &context);
+void loadkeypad(Context &context);
+void showouterpad(Context &context);
+void showkeypad(Context &context);
+void dumpkeypad(Context &context);
+void addtopresslist(Context &context);
+void isitright(Context &context);
+void checkinside(Context &context);
+void compare(Context &context);
+void showfirstuse(Context &context);
+void putbackobstuff(Context &context);
+void withwhat(Context &context);
+void showpuztext(Context &context);
+void placefreeobject(Context &context);
+void issetobonmap(Context &context);
+void showseconduse(Context &context);
+void removeobfrominv(Context &context);
+void turnpathoff(Context &context);
+void getundertimed(Context &context);
+void putundertimed(Context &context);
+void getsetad(Context &context);
+void getfreead(Context &context);
+void dochange(Context &context);
+void findpuztext(Context &context);
+void showexit(Context &context);
+void obicons(Context &context);
+void obpicture(Context &context);
+void describeob(Context &context);
+void getanyaddir(Context &context);
+void findinvpos(Context &context);
+void useroutine(Context &context);
+void printmessage2(Context &context);
+void fillryan(Context &context);
+void findsetobject(Context &context);
+void getobtextstart(Context &context);
+void usetext(Context &context);
+void selectlocation(Context &context);
+void hangonw(Context &context);
+void moneypoke(Context &context);
+void nextcolon(Context &context);
+void getexad(Context &context);
+void entercode(Context &context);
+void findexobject(Context &context);
+void makeworn(Context &context);
+void isryanholding(Context &context);
+void nothelderror(Context &context);
+void triggermessage(Context &context);
+void monprint(Context &context);
+void modifychar(Context &context);
+void printchar(Context &context);
+void showcurrentfile(Context &context);
+void printlogo(Context &context);
+void printundermon(Context &context);
+void randomaccess(Context &context);
+void locklighton(Context &context);
+void locklightoff(Context &context);
+void makecaps(Context &context);
+void monmessage(Context &context);
+void scrollmonitor(Context &context);
+void searchforstring(Context &context);
+void getkeyandlogo(Context &context);
+void monitorlogo(Context &context);
+void parser(Context &context);
+void neterror(Context &context);
+void processtrigger(Context &context);
+void input(Context &context);
+void dirfile(Context &context);
+void searchforfiles(Context &context);
+void dircom(Context &context);
+void signon(Context &context);
+void read(Context &context);
+void showkeys(Context &context);
+void delchar(Context &context);
+void randomnum1(Context &context);
+void accesslighton(Context &context);
+void accesslightoff(Context &context);
+void powerlighton(Context &context);
+void powerlightoff(Context &context);
+void lookininterface(Context &context);
+void loadpersonal(Context &context);
+void loadnews(Context &context);
+void loadcart(Context &context);
+void printoutermon(Context &context);
+void initialmoncols(Context &context);
+void turnonpower(Context &context);
+void fadeupyellows(Context &context);
+void fadeupmonfirst(Context &context);
+void hangoncurs(Context &context);
+void execcommand(Context &context);
+void purgealocation(Context &context);
+void getdestinfo(Context &context);
+void showarrows(Context &context);
+void locationpic(Context &context);
+void getundercentre(Context &context);
+void putundercentre(Context &context);
+void readcitypic(Context &context);
+void showcity(Context &context);
+void readdesticon(Context &context);
+void loadtraveltext(Context &context);
+void convicons(Context &context);
+void starttalk(Context &context);
+void hangonpq(Context &context);
+void redes(Context &context);
+void dosometalk(Context &context);
+void getpersontext(Context &context);
+void getpersframe(Context &context);
+void findsource(Context &context);
+void printslow(Context &context);
+void dolook(Context &context);
+void getxad(Context &context);
+void getyad(Context &context);
+void getmapad(Context &context);
+void calcfrframe(Context &context);
+void finalframe(Context &context);
+void makesprite(Context &context);
+void makebackob(Context &context);
+void addalong(Context &context);
+void addlength(Context &context);
+void eraseoldobs(Context &context);
+void calcmapad(Context &context);
+void doblocks(Context &context);
+void showallobs(Context &context);
+void showallfree(Context &context);
+void showallex(Context &context);
+void paneltomap(Context &context);
+void deleteexframe(Context &context);
+void deleteextext(Context &context);
+void deleteexobject(Context &context);
+void purgeanitem(Context &context);
+void getexpos(Context &context);
+void transfermap(Context &context);
+void transferinv(Context &context);
+void transfertext(Context &context);
+void transfercontoex(Context &context);
+void emergencypurge(Context &context);
+void pickupconts(Context &context);
+void findopenpos(Context &context);
+void reexfromopen(Context &context);
+void geteitherad(Context &context);
+void fillopen(Context &context);
+void useopened(Context &context);
+void getopenedsize(Context &context);
+void errormessage3(Context &context);
+void errormessage2(Context &context);
+void examicon(Context &context);
+void outofopen(Context &context);
+void swapwithopen(Context &context);
+void isitworn(Context &context);
+void wornerror(Context &context);
+void errormessage1(Context &context);
+void checkobjectsize(Context &context);
+void openinv(Context &context);
+void openob(Context &context);
+void droperror(Context &context);
+void cantdrop(Context &context);
+void reexfrominv(Context &context);
+void intoinv(Context &context);
+void outofinv(Context &context);
+void swapwithinv(Context &context);
+void makemainscreen(Context &context);
+void searchforsame(Context &context);
+void lookatcard(Context &context);
+void obsthatdothings(Context &context);
+void additionaltext(Context &context);
+void findallopen(Context &context);
+void obtoinv(Context &context);
+void findallryan(Context &context);
+void showryanpage(Context &context);
+void kernchars(Context &context);
+void getnextword(Context &context);
+void getnumber(Context &context);
+void lockmon(Context &context);
+void printboth(Context &context);
+void waitframes(Context &context);
+void hangone(Context &context);
+void allpalette(Context &context);
+void fadescreenups(Context &context);
+void afterintroroom(Context &context);
+void usetimedtext(Context &context);
+void loadintroroom(Context &context);
+void runintroseq(Context &context);
+void realcredits(Context &context);
+void runendseq(Context &context);
+void showmonk(Context &context);
+void monkspeaking(Context &context);
+void gettingshot(Context &context);
+void biblequote(Context &context);
+void intro(Context &context);
+void paltostartpal(Context &context);
+void paltoendpal(Context &context);
+void dumpcurrent(Context &context);
+void rollem(Context &context);
+void greyscalesum(Context &context);
+void endpaltostart(Context &context);
+void clearendpal(Context &context);
+void rollendcredits2(Context &context);
+void clearstartpal(Context &context);
+void fadecalculation(Context &context);
+void frameoutfx(Context &context);
+void frameoutnm(Context &context);
+void frameoutbh(Context &context);
+void frameoutv(Context &context);
+void putunderzoom(Context &context);
+void crosshair(Context &context);
+void width160(Context &context);
+void maptopanel(Context &context);
+void movemap(Context &context);
+void dealwithspecial(Context &context);
+void showreelframe(Context &context);
+void soundonreels(Context &context);
+void reconstruct(Context &context);
+void updatepeople(Context &context);
+void watchreel(Context &context);
+void showrain(Context &context);
+void dodoor(Context &context);
+void liftnoise(Context &context);
+void widedoor(Context &context);
+void random(Context &context);
+void lockeddoorway(Context &context);
+void liftsprite(Context &context);
+void doorway(Context &context);
+void constant(Context &context);
+void steady(Context &context);
+void getblockofpixel(Context &context);
+void splitintolines(Context &context);
+void adjustleft(Context &context);
+void adjustright(Context &context);
+void adjustdown(Context &context);
+void adjustup(Context &context);
+void aboutturn(Context &context);
+void checkforexit(Context &context);
+void walking(Context &context);
+void printasprite(Context &context);
+void showgamereel(Context &context);
+void checkspeed(Context &context);
+void addtopeoplelist(Context &context);
+void setuptimedtemp(Context &context);
+void madmantext(Context &context);
+void madmode(Context &context);
+void priesttext(Context &context);
+void fadescreenuphalf(Context &context);
+void textforend(Context &context);
+void fadescreendownhalf(Context &context);
+void rollendcredits(Context &context);
+void textformonk(Context &context);
+void monks2text(Context &context);
+void intro2text(Context &context);
+void intro3text(Context &context);
+void intro1text(Context &context);
+
+void alleybarksound(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._sub(context.ax, 1);
context._cmp(context.ax, 0);
@@ -497,11 +497,11 @@ nobark:
return;
}
-static void intromusic(Context & context) {
+void intromusic(Context & context) {
return;
}
-static void foghornsound(Context & context) {
+void foghornsound(Context & context) {
randomnumber(context);
context._cmp(context.al, 198);
if (!context.flags.z()) goto nofog;
@@ -511,7 +511,7 @@ nofog:
return;
}
-static void receptionist(Context & context) {
+void receptionist(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
context._cmp(context.data.byte(51), 1);
@@ -553,7 +553,7 @@ nottalkedrecep:
return;
}
-static void smokebloke(Context & context) {
+void smokebloke(Context & context) {
context._cmp(context.data.byte(40), 0);
if (!context.flags.z()) goto notspokento;
context.al = context.ds.byte(context.bx+7);
@@ -588,7 +588,7 @@ gotsmokeb:
return;
}
-static void attendant(Context & context) {
+void attendant(Context & context) {
showgamereel(context);
addtopeoplelist(context);
context.al = context.ds.byte(context.bx+7);
@@ -599,7 +599,7 @@ nottalked:
return;
}
-static void manasleep(Context & context) {
+void manasleep(Context & context) {
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
context.ds.byte(context.bx+7) = context.al;
@@ -608,7 +608,7 @@ static void manasleep(Context & context) {
return;
}
-static void eden(Context & context) {
+void eden(Context & context) {
context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
@@ -617,7 +617,7 @@ notinbed:
return;
}
-static void edeninbath(Context & context) {
+void edeninbath(Context & context) {
context._cmp(context.data.byte(41), 0);
if (context.flags.z()) goto notinbed;
context._cmp(context.data.byte(42), 0);
@@ -632,19 +632,19 @@ notinbed:
return;
}
-static void malefan(Context & context) {
+void malefan(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void femalefan(Context & context) {
+void femalefan(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void louis(Context & context) {
+void louis(Context & context) {
context._cmp(context.data.byte(40), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
@@ -653,7 +653,7 @@ notlouis1:
return;
}
-static void louischair(Context & context) {
+void louischair(Context & context) {
context._cmp(context.data.byte(40), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
@@ -681,7 +681,7 @@ notlouis2:
return;
}
-static void manasleep2(Context & context) {
+void manasleep2(Context & context) {
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
context.ds.byte(context.bx+7) = context.al;
@@ -690,19 +690,19 @@ static void manasleep2(Context & context) {
return;
}
-static void mansatstill(Context & context) {
+void mansatstill(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void tattooman(Context & context) {
+void tattooman(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void drinker(Context & context) {
+void drinker(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotdrinker;
context._add(context.ds.word(context.bx+3), 1);
@@ -723,7 +723,7 @@ gotdrinker:
return;
}
-static void bartender(Context & context) {
+void bartender(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotsmoket;
context._cmp(context.ds.word(context.bx+3), 86);
@@ -750,19 +750,19 @@ notgotgun:
return;
}
-static void othersmoker(Context & context) {
+void othersmoker(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void barwoman(Context & context) {
+void barwoman(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void interviewer(Context & context) {
+void interviewer(Context & context) {
context._cmp(context.data.word(21), 68);
if (!context.flags.z()) goto notgeneralstart;
context._add(context.ds.word(context.bx+3), 1);
@@ -779,7 +779,7 @@ talking:
return;
}
-static void soldier1(Context & context) {
+void soldier1(Context & context) {
context._cmp(context.ds.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
context.data.word(19) = 10;
@@ -812,7 +812,7 @@ gotsoldframe:
return;
}
-static void rockstar(Context & context) {
+void rockstar(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 303);
if (context.flags.z()) goto rockcombatend;
@@ -863,7 +863,7 @@ rockcombatend:
return;
}
-static void helicopter(Context & context) {
+void helicopter(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 203);
if (context.flags.z()) goto heliwon;
@@ -920,7 +920,7 @@ heliwon:
return;
}
-static void mugger(Context & context) {
+void mugger(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 138);
if (context.flags.z()) goto endmugger1;
@@ -993,13 +993,13 @@ endmugger2:
return;
}
-static void aide(Context & context) {
+void aide(Context & context) {
showgamereel(context);
addtopeoplelist(context);
return;
}
-static void businessman(Context & context) {
+void businessman(Context & context) {
context.data.byte(233) = 0;
context.data.word(19) = 2;
context.ax = context.ds.word(context.bx+3);
@@ -1088,7 +1088,7 @@ buscombatwonend:
return;
}
-static void poolguard(Context & context) {
+void poolguard(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 214);
if (context.flags.z()) goto combatover2;
@@ -1172,7 +1172,7 @@ doneover2:
return;
}
-static void security(Context & context) {
+void security(Context & context) {
context._cmp(context.ds.word(context.bx+3), 32);
if (context.flags.z()) goto securwait;
context._cmp(context.ds.word(context.bx+3), 69);
@@ -1200,7 +1200,7 @@ gotsecurframe:
return;
}
-static void heavy(Context & context) {
+void heavy(Context & context) {
context.al = context.ds.byte(context.bx+7);
context._and(context.al, 127);
context.ds.byte(context.bx+7) = context.al;
@@ -1235,7 +1235,7 @@ gotheavyframe:
return;
}
-static void bossman(Context & context) {
+void bossman(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notboss;
context.ax = context.ds.word(context.bx+3);
@@ -1278,7 +1278,7 @@ nottalkedboss:
return;
}
-static void gamer(Context & context) {
+void gamer(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gamerfin;
gameragain:
@@ -1297,7 +1297,7 @@ gamerfin:
return;
}
-static void sparkydrip(Context & context) {
+void sparkydrip(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto cantdrip;
context.al = 14;
@@ -1307,7 +1307,7 @@ cantdrip:
return;
}
-static void carparkdrip(Context & context) {
+void carparkdrip(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto cantdrip2;
context.al = 14;
@@ -1316,7 +1316,7 @@ cantdrip2:
return;
}
-static void keeper(Context & context) {
+void keeper(Context & context) {
context._cmp(context.data.byte(53), 0);
if (!context.flags.z()) goto notwaiting;
context._cmp(context.data.word(21), 190);
@@ -1337,7 +1337,7 @@ waiting:
return;
}
-static void candles1(Context & context) {
+void candles1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candle1;
context.ax = context.ds.word(context.bx+3);
@@ -1352,7 +1352,7 @@ candle1:
return;
}
-static void smallcandle(Context & context) {
+void smallcandle(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto smallcandlef;
context.ax = context.ds.word(context.bx+3);
@@ -1367,7 +1367,7 @@ smallcandlef:
return;
}
-static void intromagic1(Context & context) {
+void intromagic1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm1fin;
context.ax = context.ds.word(context.bx+3);
@@ -1394,7 +1394,7 @@ introm1fin:
return;
}
-static void candles(Context & context) {
+void candles(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candlesfin;
context.ax = context.ds.word(context.bx+3);
@@ -1409,7 +1409,7 @@ candlesfin:
return;
}
-static void candles2(Context & context) {
+void candles2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candles2fin;
context.ax = context.ds.word(context.bx+3);
@@ -1424,7 +1424,7 @@ candles2fin:
return;
}
-static void gates(Context & context) {
+void gates(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gatesfin;
context.ax = context.ds.word(context.bx+3);
@@ -1460,7 +1460,7 @@ gatesfin:
return;
}
-static void intromagic2(Context & context) {
+void intromagic2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm2fin;
context.ax = context.ds.word(context.bx+3);
@@ -1475,7 +1475,7 @@ introm2fin:
return;
}
-static void intromagic3(Context & context) {
+void intromagic3(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm3fin;
context.ax = context.ds.word(context.bx+3);
@@ -1492,7 +1492,7 @@ introm3fin:
return;
}
-static void intromonks1(Context & context) {
+void intromonks1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk1fin;
context.ax = context.ds.word(context.bx+3);
@@ -1536,7 +1536,7 @@ intromonk1fin:
return;
}
-static void intromonks2(Context & context) {
+void intromonks2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk2fin;
context.ax = context.ds.word(context.bx+3);
@@ -1588,11 +1588,11 @@ intromonk2fin:
return;
}
-static void handclap(Context & context) {
+void handclap(Context & context) {
return;
}
-static void monks2text(Context & context) {
+void monks2text(Context & context) {
context._cmp(context.data.byte(138), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
@@ -1692,7 +1692,7 @@ gotmonks2text:
return;
}
-static void intro1text(Context & context) {
+void intro1text(Context & context) {
context._cmp(context.data.byte(138), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
@@ -1726,7 +1726,7 @@ oktalk2:
return;
}
-static void intro2text(Context & context) {
+void intro2text(Context & context) {
context._cmp(context.ax, 5);
if (!context.flags.z()) goto notintro2text1;
context.al = 43;
@@ -1751,7 +1751,7 @@ gotintro2text:
return;
}
-static void intro3text(Context & context) {
+void intro3text(Context & context) {
context._cmp(context.ax, 107);
if (!context.flags.z()) goto notintro3text1;
context.al = 45;
@@ -1776,7 +1776,7 @@ gotintro3text:
return;
}
-static void monkandryan(Context & context) {
+void monkandryan(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notmonkryan;
context.ax = context.ds.word(context.bx+3);
@@ -1801,7 +1801,7 @@ notmonkryan:
return;
}
-static void endgameseq(Context & context) {
+void endgameseq(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notendseq;
context.ax = context.ds.word(context.bx+3);
@@ -1858,7 +1858,7 @@ notendcreds:
return;
}
-static void rollendcredits(Context & context) {
+void rollendcredits(Context & context) {
context.al = 16;
context.ah = 255;
playchannel0(context);
@@ -1946,7 +1946,7 @@ gotnext:
return;
}
-static void priest(Context & context) {
+void priest(Context & context) {
context._cmp(context.ds.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
context.data.byte(233) = 0;
@@ -1965,7 +1965,7 @@ priestspoken:
return;
}
-static void madmanstelly(Context & context) {
+void madmanstelly(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 307);
@@ -1977,7 +1977,7 @@ notendtelly:
return;
}
-static void madman(Context & context) {
+void madman(Context & context) {
context.data.word(19) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
@@ -2047,7 +2047,7 @@ ryansded:
return;
}
-static void madmantext(Context & context) {
+void madmantext(Context & context) {
context._cmp(context.data.byte(63), 61);
if (!context.flags.c()) goto nomadtext;
context.al = context.data.byte(63);
@@ -2067,7 +2067,7 @@ nomadtext:
return;
}
-static void madmode(Context & context) {
+void madmode(Context & context) {
context.data.word(19) = 2;
context.data.byte(233) = 0;
context._cmp(context.data.byte(63), 63);
@@ -2079,7 +2079,7 @@ iswatchmad:
return;
}
-static void priesttext(Context & context) {
+void priesttext(Context & context) {
context._cmp(context.ds.word(context.bx+3), 2);
if (context.flags.c()) goto nopriesttext;
context._cmp(context.ds.word(context.bx+3), 7);
@@ -2099,7 +2099,7 @@ nopriesttext:
return;
}
-static void textforend(Context & context) {
+void textforend(Context & context) {
context._cmp(context.data.byte(138), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
@@ -2132,7 +2132,7 @@ gotendtext:
return;
}
-static void textformonk(Context & context) {
+void textformonk(Context & context) {
context._cmp(context.data.byte(138), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
@@ -2250,7 +2250,7 @@ oktalk:
return;
}
-static void drunk(Context & context) {
+void drunk(Context & context) {
context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto trampgone;
context.al = context.ds.byte(context.bx+7);
@@ -2262,7 +2262,7 @@ trampgone:
return;
}
-static void advisor(Context & context) {
+void advisor(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto noadvisor;
goto noadvisor;
@@ -2290,7 +2290,7 @@ noadvisor:
return;
}
-static void copper(Context & context) {
+void copper(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto nocopper;
context.ax = context.ds.word(context.bx+3);
@@ -2320,7 +2320,7 @@ nocopper:
return;
}
-static void sparky(Context & context) {
+void sparky(Context & context) {
context._cmp(context.data.word(14), 0);
if (context.flags.z()) goto animsparky;
context.ds.byte(context.bx+7) = 3;
@@ -2353,7 +2353,7 @@ nottalkedsparky:
return;
}
-static void train(Context & context) {
+void train(Context & context) {
return;
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 21);
@@ -2376,7 +2376,7 @@ notrainatall:
return;
}
-static void addtopeoplelist(Context & context) {
+void addtopeoplelist(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.bx);
@@ -2394,7 +2394,7 @@ static void addtopeoplelist(Context & context) {
return;
}
-static void showgamereel(Context & context) {
+void showgamereel(Context & context) {
context.ax = context.ds.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
@@ -2410,7 +2410,7 @@ noshow:
return;
}
-static void checkspeed(Context & context) {
+void checkspeed(Context & context) {
context._cmp(context.data.byte(64), -1);
if (!context.flags.z()) goto forcenext;
context._add(context.ds.byte(context.bx+6), 1);
@@ -2427,7 +2427,7 @@ forcenext:
return;
}
-static void clearsprites(Context & context) {
+void clearsprites(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = 255;
@@ -2436,7 +2436,7 @@ static void clearsprites(Context & context) {
return;
}
-static void makesprite(Context & context) {
+void makesprite(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
_tmp17:
@@ -2455,7 +2455,7 @@ _tmp17a:
return;
}
-static void delsprite(Context & context) {
+void delsprite(Context & context) {
context.di = context.bx;
context.cx = 32;
context.al = 255;
@@ -2463,7 +2463,7 @@ static void delsprite(Context & context) {
return;
}
-static void spriteupdate(Context & context) {
+void spriteupdate(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = context.data.byte(62);
@@ -2495,7 +2495,7 @@ _tmp18b:
return;
}
-static void printsprites(Context & context) {
+void printsprites(Context & context) {
context.es = context.data.word(410);
context.cx = 0;
priorityloop:
@@ -2527,7 +2527,7 @@ skipsprite:
return;
}
-static void printasprite(Context & context) {
+void printasprite(Context & context) {
context.push(context.es);
context.push(context.bx);
context.si = context.bx;
@@ -2563,7 +2563,7 @@ notquickp:
return;
}
-static void checkone(Context & context) {
+void checkone(Context & context) {
context.push(context.cx);
context.al = context.ch;
context.ah = 0;
@@ -2598,7 +2598,7 @@ static void checkone(Context & context) {
return;
}
-static void findsource(Context & context) {
+void findsource(Context & context) {
context.ax = context.data.word(158);
context._cmp(context.ax, 160);
if (!context.flags.c()) goto over1000;
@@ -2617,7 +2617,7 @@ over1001:
return;
}
-static void initman(Context & context) {
+void initman(Context & context) {
context.al = context.data.byte(150);
context.ah = context.data.byte(151);
context.si = context.ax;
@@ -2631,7 +2631,7 @@ static void initman(Context & context) {
return;
}
-static void mainman(Context & context) {
+void mainman(Context & context) {
context._cmp(context.data.byte(186), 1);
if (!context.flags.z()) goto notinnewroom;
context.data.byte(186) = 0;
@@ -2714,7 +2714,7 @@ notwalk:
return;
}
-static void aboutturn(Context & context) {
+void aboutturn(Context & context) {
context._cmp(context.data.byte(135), 1);
if (context.flags.z()) goto incdir;
context._cmp(context.data.byte(135), -1);
@@ -2748,7 +2748,7 @@ decdir:
return;
}
-static void walking(Context & context) {
+void walking(Context & context) {
context._cmp(context.data.byte(492), 0);
if (context.flags.z()) goto normalwalk;
context.al = context.data.byte(491);
@@ -2797,7 +2797,7 @@ finishedwalk:
return;
}
-static void facerightway(Context & context) {
+void facerightway(Context & context) {
context.push(context.es);
context.push(context.bx);
getroomspaths(context);
@@ -2815,7 +2815,7 @@ static void facerightway(Context & context) {
return;
}
-static void checkforexit(Context & context) {
+void checkforexit(Context & context) {
context.cl = context.data.byte(150);
context._add(context.cl, 12);
context.ch = context.data.byte(151);
@@ -2907,7 +2907,7 @@ notanup:
return;
}
-static void adjustdown(Context & context) {
+void adjustdown(Context & context) {
context.push(context.es);
context.push(context.bx);
context._add(context.data.byte(148), 10);
@@ -2921,7 +2921,7 @@ static void adjustdown(Context & context) {
return;
}
-static void adjustup(Context & context) {
+void adjustup(Context & context) {
context.push(context.es);
context.push(context.bx);
context._sub(context.data.byte(148), 10);
@@ -2935,7 +2935,7 @@ static void adjustup(Context & context) {
return;
}
-static void adjustleft(Context & context) {
+void adjustleft(Context & context) {
context.push(context.es);
context.push(context.bx);
context.data.byte(152) = 0;
@@ -2950,7 +2950,7 @@ static void adjustleft(Context & context) {
return;
}
-static void adjustright(Context & context) {
+void adjustright(Context & context) {
context.push(context.es);
context.push(context.bx);
context._add(context.data.byte(147), 11);
@@ -2965,7 +2965,7 @@ static void adjustright(Context & context) {
return;
}
-static void reminders(Context & context) {
+void reminders(Context & context) {
context._cmp(context.data.byte(183), 24);
if (!context.flags.z()) goto notinedenslift;
context._cmp(context.data.byte(147), 44);
@@ -3013,7 +3013,7 @@ notinedenslift:
return;
}
-static void initrain(Context & context) {
+void initrain(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.bx = 1113;
@@ -3072,7 +3072,7 @@ finishinitrain:
return;
}
-static void splitintolines(Context & context) {
+void splitintolines(Context & context) {
lookforlinestart:
getblockofpixel(context);
context._cmp(context.al, 0);
@@ -3121,7 +3121,7 @@ endofthisline:
return;
}
-static void getblockofpixel(Context & context) {
+void getblockofpixel(Context & context) {
context.push(context.cx);
context.push(context.es);
context.push(context.di);
@@ -3144,7 +3144,7 @@ failrain:
return;
}
-static void showrain(Context & context) {
+void showrain(Context & context) {
context.ds = context.data.word(412);
context.si = 6*58;
context.ax = context.ds.word(context.si+2);
@@ -3221,7 +3221,7 @@ nothunder:
return;
}
-static void backobject(Context & context) {
+void backobject(Context & context) {
context.ds = context.data.word(426);
context.di = context.ds.word(context.bx+20);
context.al = context.ds.byte(context.bx+18);
@@ -3269,7 +3269,7 @@ finishback:
return;
}
-static void liftsprite(Context & context) {
+void liftsprite(Context & context) {
context.al = context.data.byte(34);
context._cmp(context.al, 0);
if (context.flags.z()) goto liftclosed;
@@ -3349,7 +3349,7 @@ nocountopen:
goto pokelift;
}
-static void liftnoise(Context & context) {
+void liftnoise(Context & context) {
context._cmp(context.data.byte(183), 5);
if (context.flags.z()) goto hissnoise;
context._cmp(context.data.byte(183), 21);
@@ -3362,7 +3362,7 @@ hissnoise:
return;
}
-static void random(Context & context) {
+void random(Context & context) {
randomnum1(context);
context.push(context.di);
context._and(context.ax, 7);
@@ -3374,14 +3374,14 @@ static void random(Context & context) {
return;
}
-static void steady(Context & context) {
+void steady(Context & context) {
context.al = context.ds.byte(context.di+18);
context.ds.byte(context.di+17) = context.al;
context.ds.byte(context.bx+15) = context.al;
return;
}
-static void constant(Context & context) {
+void constant(Context & context) {
context._add(context.ds.byte(context.bx+19), 1);
context.cl = context.ds.byte(context.bx+19);
context.ch = 0;
@@ -3399,7 +3399,7 @@ gotconst:
return;
}
-static void doorway(Context & context) {
+void doorway(Context & context) {
context.data.byte(192) = -24;
context.data.byte(193) = 10;
context.data.byte(194) = -30;
@@ -3408,7 +3408,7 @@ static void doorway(Context & context) {
return;
}
-static void widedoor(Context & context) {
+void widedoor(Context & context) {
context.data.byte(192) = -24;
context.data.byte(193) = 24;
context.data.byte(194) = -30;
@@ -3417,7 +3417,7 @@ static void widedoor(Context & context) {
return;
}
-static void dodoor(Context & context) {
+void dodoor(Context & context) {
context.al = context.data.byte(150);
context.ah = context.data.byte(151);
context.cl = context.ds.byte(context.bx+10);
@@ -3507,7 +3507,7 @@ notnearly:
return;
}
-static void lockeddoorway(Context & context) {
+void lockeddoorway(Context & context) {
context.al = context.data.byte(150);
context.ah = context.data.byte(151);
context.cl = context.ds.byte(context.bx+10);
@@ -3644,7 +3644,7 @@ notnearly:
return;
}
-static void updatepeople(Context & context) {
+void updatepeople(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
context.data.word(16) = context.di;
@@ -3678,7 +3678,7 @@ endupdate:
return;
}
-static void getreelframeax(Context & context) {
+void getreelframeax(Context & context) {
context.push(context.ds);
context.data.word(158) = context.ax;
findsource(context);
@@ -3694,7 +3694,7 @@ static void getreelframeax(Context & context) {
return;
}
-static void reelsonscreen(Context & context) {
+void reelsonscreen(Context & context) {
reconstruct(context);
updatepeople(context);
watchreel(context);
@@ -3703,7 +3703,7 @@ static void reelsonscreen(Context & context) {
return;
}
-static void plotreel(Context & context) {
+void plotreel(Context & context) {
getreelstart(context);
retryreel:
context.push(context.es);
@@ -3741,7 +3741,7 @@ notplot:
return;
}
-static void soundonreels(Context & context) {
+void soundonreels(Context & context) {
context.bl = context.data.byte(183);
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
@@ -3781,7 +3781,7 @@ nochange2:
return;
}
-static void reconstruct(Context & context) {
+void reconstruct(Context & context) {
context._cmp(context.data.byte(129), 0);
if (context.flags.z()) goto noneedtorecon;
context.data.byte(61) = 1;
@@ -3797,7 +3797,7 @@ noneedtorecon:
return;
}
-static void dealwithspecial(Context & context) {
+void dealwithspecial(Context & context) {
context._sub(context.al, 220);
context._cmp(context.al, 0);
if (!context.flags.z()) goto notplset;
@@ -3848,7 +3848,7 @@ notchangeloc:
return;
}
-static void movemap(Context & context) {
+void movemap(Context & context) {
context._cmp(context.ah, 32);
if (!context.flags.z()) goto notmapup2;
context._sub(context.data.byte(148), 20);
@@ -3878,7 +3878,7 @@ notmaprightspec:
return;
}
-static void getreelstart(Context & context) {
+void getreelstart(Context & context) {
context.ax = context.data.word(237);
context.cx = 40;
context._mul(context.cx);
@@ -3888,7 +3888,7 @@ static void getreelstart(Context & context) {
return;
}
-static void showreelframe(Context & context) {
+void showreelframe(Context & context) {
context.al = context.ds.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
@@ -3906,7 +3906,7 @@ static void showreelframe(Context & context) {
return;
}
-static void deleverything(Context & context) {
+void deleverything(Context & context) {
context.al = context.data.byte(128);
context.ah = 0;
context._add(context.ax, context.data.word(121));
@@ -3921,7 +3921,7 @@ bigroom:
return;
}
-static void dumpeverything(Context & context) {
+void dumpeverything(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
dumpevery1:
@@ -3976,14 +3976,14 @@ finishevery2:
return;
}
-static void allocatework(Context & context) {
+void allocatework(Context & context) {
context.bx = 0x1000;
allocatemem(context);
context.data.word(398) = context.ax;
return;
}
-static void readabyte(Context & context) {
+void readabyte(Context & context) {
context._cmp(context.si, 30000);
if (!context.flags.z()) goto notendblock;
context.push(context.bx);
@@ -4003,7 +4003,7 @@ notendblock:
return;
}
-static void loadpalfromiff(Context & context) {
+void loadpalfromiff(Context & context) {
context.dx = 2481;
openfile(context);
context.cx = 2000;
@@ -4038,7 +4038,7 @@ nought:
return;
}
-static void cls(Context & context) {
+void cls(Context & context) {
context.ax = 0x0a000;
context.es = context.ax;
context.di = 0;
@@ -4048,7 +4048,7 @@ static void cls(Context & context) {
return;
}
-static void printundermon(Context & context) {
+void printundermon(Context & context) {
context.si = (320*43)+76;
context.di = context.si;
context.es = context.data.word(398);
@@ -4082,7 +4082,7 @@ finmonscroll:
return;
}
-static void worktoscreen(Context & context) {
+void worktoscreen(Context & context) {
vsync(context);
context.si = 0;
context.di = 0;
@@ -4103,7 +4103,7 @@ dumpallloop:
return;
}
-static void paneltomap(Context & context) {
+void paneltomap(Context & context) {
context.di = context.data.word(123);
context._add(context.di, context.data.word(115));
context.bx = context.data.word(125);
@@ -4116,7 +4116,7 @@ static void paneltomap(Context & context) {
return;
}
-static void maptopanel(Context & context) {
+void maptopanel(Context & context) {
context.di = context.data.word(123);
context._add(context.di, context.data.word(115));
context.bx = context.data.word(125);
@@ -4129,7 +4129,7 @@ static void maptopanel(Context & context) {
return;
}
-static void dumpmap(Context & context) {
+void dumpmap(Context & context) {
context.di = context.data.word(123);
context._add(context.di, context.data.word(115));
context.bx = context.data.word(125);
@@ -4140,7 +4140,7 @@ static void dumpmap(Context & context) {
return;
}
-static void pixelcheckset(Context & context) {
+void pixelcheckset(Context & context) {
context.push(context.ax);
context._sub(context.al, context.ds.byte(context.bx));
context._sub(context.ah, context.ds.byte(context.bx+1));
@@ -4180,7 +4180,7 @@ static void pixelcheckset(Context & context) {
return;
}
-static void createpanel(Context & context) {
+void createpanel(Context & context) {
context.di = 0;
context.bx = 8;
context.ds = context.data.word(408);
@@ -4208,7 +4208,7 @@ static void createpanel(Context & context) {
return;
}
-static void createpanel2(Context & context) {
+void createpanel2(Context & context) {
createpanel(context);
context.di = 0;
context.bx = 0;
@@ -4225,7 +4225,7 @@ static void createpanel2(Context & context) {
return;
}
-static void clearwork(Context & context) {
+void clearwork(Context & context) {
context.ax = 0x0;
context.es = context.data.word(398);
context.di = 0;
@@ -4267,7 +4267,7 @@ clearloop:
return;
}
-static void zoom(Context & context) {
+void zoom(Context & context) {
context._cmp(context.data.word(19), 0);
if (!context.flags.z()) goto inwatching;
context._cmp(context.data.byte(7), 1);
@@ -4314,7 +4314,7 @@ zoomloop2:
return;
}
-static void delthisone(Context & context) {
+void delthisone(Context & context) {
context.push(context.ax);
context.push(context.ax);
context.al = context.ah;
@@ -4357,7 +4357,7 @@ deloneloop:
return;
}
-static void multiget(Context & context) {
+void multiget(Context & context) {
context.ax = context.bx;
context.bx = 320;
context._mul(context.bx);
@@ -4401,7 +4401,7 @@ multiloop4:
return;
}
-static void multiput(Context & context) {
+void multiput(Context & context) {
context.ax = context.bx;
context.bx = 320;
context._mul(context.bx);
@@ -4442,7 +4442,7 @@ multiloop6:
return;
}
-static void multidump(Context & context) {
+void multidump(Context & context) {
context.dx = 0x0a000;
context.es = context.dx;
context.ds = context.data.word(398);
@@ -4493,7 +4493,7 @@ multiloop2:
return;
}
-static void width160(Context & context) {
+void width160(Context & context) {
context._movsw();
context._movsw();
context._movsw();
@@ -4726,7 +4726,7 @@ static void width160(Context & context) {
return;
}
-static void doblocks(Context & context) {
+void doblocks(Context & context) {
context.es = context.data.word(398);
context.ax = context.data.word(117);
context.cx = 320;
@@ -4841,7 +4841,7 @@ zeroblock:
return;
}
-static void showframe(Context & context) {
+void showframe(Context & context) {
context.push(context.dx);
context.push(context.ax);
context.cx = context.ax;
@@ -4938,7 +4938,7 @@ noeffects:
return;
}
-static void frameoutv(Context & context) {
+void frameoutv(Context & context) {
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -4978,7 +4978,7 @@ backtosolid:
return;
}
-static void frameoutnm(Context & context) {
+void frameoutnm(Context & context) {
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -5020,7 +5020,7 @@ nmloop2:
return;
}
-static void frameoutbh(Context & context) {
+void frameoutbh(Context & context) {
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -5053,7 +5053,7 @@ nextline:
return;
}
-static void frameoutfx(Context & context) {
+void frameoutfx(Context & context) {
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -5094,7 +5094,7 @@ backtosolidfx:
return;
}
-static void transferinv(Context & context) {
+void transferinv(Context & context) {
context.di = context.data.word(10);
context.push(context.di);
context.al = context.data.byte(9);
@@ -5143,7 +5143,7 @@ static void transferinv(Context & context) {
return;
}
-static void transfermap(Context & context) {
+void transfermap(Context & context) {
context.di = context.data.word(10);
context.push(context.di);
context.al = context.data.byte(9);
@@ -5190,7 +5190,7 @@ static void transfermap(Context & context) {
return;
}
-static void dofade(Context & context) {
+void dofade(Context & context) {
context._cmp(context.data.byte(343), 0);
if (context.flags.z()) goto finishfade;
context.cl = context.data.byte(344);
@@ -5213,7 +5213,7 @@ finishfade:
return;
}
-static void clearendpal(Context & context) {
+void clearendpal(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
@@ -5222,14 +5222,14 @@ static void clearendpal(Context & context) {
return;
}
-static void clearpalette(Context & context) {
+void clearpalette(Context & context) {
context.data.byte(343) = 0;
clearstartpal(context);
dumpcurrent(context);
return;
}
-static void fadescreenup(Context & context) {
+void fadescreenup(Context & context) {
clearstartpal(context);
paltoendpal(context);
context.data.byte(343) = 1;
@@ -5239,7 +5239,7 @@ static void fadescreenup(Context & context) {
return;
}
-static void fadetowhite(Context & context) {
+void fadetowhite(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
@@ -5258,7 +5258,7 @@ static void fadetowhite(Context & context) {
return;
}
-static void fadefromwhite(Context & context) {
+void fadefromwhite(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768;
@@ -5277,7 +5277,7 @@ static void fadefromwhite(Context & context) {
return;
}
-static void fadescreenups(Context & context) {
+void fadescreenups(Context & context) {
clearstartpal(context);
paltoendpal(context);
context.data.byte(343) = 1;
@@ -5287,7 +5287,7 @@ static void fadescreenups(Context & context) {
return;
}
-static void fadescreendownhalf(Context & context) {
+void fadescreendownhalf(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.cx = 768;
@@ -5316,7 +5316,7 @@ halfend:
return;
}
-static void fadescreenuphalf(Context & context) {
+void fadescreenuphalf(Context & context) {
endpaltostart(context);
paltoendpal(context);
context.data.byte(343) = 1;
@@ -5326,7 +5326,7 @@ static void fadescreenuphalf(Context & context) {
return;
}
-static void fadescreendown(Context & context) {
+void fadescreendown(Context & context) {
paltostartpal(context);
clearendpal(context);
context.data.byte(343) = 1;
@@ -5336,7 +5336,7 @@ static void fadescreendown(Context & context) {
return;
}
-static void fadescreendowns(Context & context) {
+void fadescreendowns(Context & context) {
paltostartpal(context);
clearendpal(context);
context.data.byte(343) = 1;
@@ -5346,7 +5346,7 @@ static void fadescreendowns(Context & context) {
return;
}
-static void clearstartpal(Context & context) {
+void clearstartpal(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 256;
@@ -5359,7 +5359,7 @@ wholeloop1:
return;
}
-static void showgun(Context & context) {
+void showgun(Context & context) {
context.data.byte(347) = 0;
context.data.byte(346) = 0;
context.data.byte(348) = 0;
@@ -5413,12 +5413,12 @@ static void showgun(Context & context) {
return;
}
-static void rollendcredits2(Context & context) {
+void rollendcredits2(Context & context) {
rollem(context);
return;
}
-static void rollem(Context & context) {
+void rollem(Context & context) {
context.cl = 160;
context.ch = 160;
context.di = 25;
@@ -5506,7 +5506,7 @@ endearly:
return;
}
-static void fadecalculation(Context & context) {
+void fadecalculation(Context & context) {
context._cmp(context.data.byte(345), 0);
if (context.flags.z()) goto nomorefading;
context.bl = context.data.byte(345);
@@ -5539,7 +5539,7 @@ nomorefading:
return;
}
-static void greyscalesum(Context & context) {
+void greyscalesum(Context & context) {
context.es = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
@@ -5594,7 +5594,7 @@ noaddb:
return;
}
-static void paltostartpal(Context & context) {
+void paltostartpal(Context & context) {
context.es = context.data.word(410);
context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
@@ -5604,7 +5604,7 @@ static void paltostartpal(Context & context) {
return;
}
-static void endpaltostart(Context & context) {
+void endpaltostart(Context & context) {
context.es = context.data.word(410);
context.ds = context.data.word(410);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
@@ -5614,7 +5614,7 @@ static void endpaltostart(Context & context) {
return;
}
-static void startpaltoend(Context & context) {
+void startpaltoend(Context & context) {
context.es = context.data.word(410);
context.ds = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
@@ -5624,7 +5624,7 @@ static void startpaltoend(Context & context) {
return;
}
-static void paltoendpal(Context & context) {
+void paltoendpal(Context & context) {
context.es = context.data.word(410);
context.ds = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
@@ -5634,7 +5634,7 @@ static void paltoendpal(Context & context) {
return;
}
-static void allpalette(Context & context) {
+void allpalette(Context & context) {
context.es = context.data.word(410);
context.ds = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
@@ -5645,7 +5645,7 @@ static void allpalette(Context & context) {
return;
}
-static void dumpcurrent(Context & context) {
+void dumpcurrent(Context & context) {
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.ds = context.data.word(410);
vsync(context);
@@ -5659,7 +5659,7 @@ static void dumpcurrent(Context & context) {
return;
}
-static void fadedownmon(Context & context) {
+void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(410);
@@ -5679,7 +5679,7 @@ static void fadedownmon(Context & context) {
return;
}
-static void fadeupmon(Context & context) {
+void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(410);
@@ -5699,7 +5699,7 @@ static void fadeupmon(Context & context) {
return;
}
-static void fadeupmonfirst(Context & context) {
+void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(410);
@@ -5723,7 +5723,7 @@ static void fadeupmonfirst(Context & context) {
return;
}
-static void fadeupyellows(Context & context) {
+void fadeupyellows(Context & context) {
paltoendpal(context);
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
@@ -5742,7 +5742,7 @@ static void fadeupyellows(Context & context) {
return;
}
-static void initialmoncols(Context & context) {
+void initialmoncols(Context & context) {
paltostartpal(context);
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
@@ -5760,14 +5760,14 @@ static void initialmoncols(Context & context) {
return;
}
-static void titles(Context & context) {
+void titles(Context & context) {
clearpalette(context);
biblequote(context);
intro(context);
return;
}
-static void endgame(Context & context) {
+void endgame(Context & context) {
context.dx = 2260;
loadtemptext(context);
monkspeaking(context);
@@ -5780,7 +5780,7 @@ static void endgame(Context & context) {
return;
}
-static void monkspeaking(Context & context) {
+void monkspeaking(Context & context) {
context.data.byte(530) = 35;
loadroomssample(context);
context.dx = 2364;
@@ -5838,7 +5838,7 @@ nextbit:
return;
}
-static void showmonk(Context & context) {
+void showmonk(Context & context) {
context.al = 0;
context.ah = 128;
context.di = 160;
@@ -5848,7 +5848,7 @@ static void showmonk(Context & context) {
return;
}
-static void gettingshot(Context & context) {
+void gettingshot(Context & context) {
context.data.byte(187) = 55;
clearpalette(context);
loadintroroom(context);
@@ -5860,13 +5860,13 @@ static void gettingshot(Context & context) {
return;
}
-static void credits(Context & context) {
+void credits(Context & context) {
clearpalette(context);
realcredits(context);
return;
}
-static void biblequote(Context & context) {
+void biblequote(Context & context) {
mode640x480(context);
context.dx = 2377;
showpcx(context);
@@ -5882,7 +5882,7 @@ static void biblequote(Context & context) {
return;
}
-static void hangone(Context & context) {
+void hangone(Context & context) {
hangonloope:
context.push(context.cx);
vsync(context);
@@ -5897,7 +5897,7 @@ hangonearly:
return;
}
-static void intro(Context & context) {
+void intro(Context & context) {
context.dx = 2247;
loadtemptext(context);
loadpalfromiff(context);
@@ -5931,7 +5931,7 @@ static void intro(Context & context) {
return;
}
-static void runintroseq(Context & context) {
+void runintroseq(Context & context) {
context.data.byte(102) = 0;
moreintroseq:
vsync(context);
@@ -5965,7 +5965,7 @@ earlyendrun:
return;
}
-static void runendseq(Context & context) {
+void runendseq(Context & context) {
atmospheres(context);
context.data.byte(102) = 0;
moreendseq:
@@ -5986,7 +5986,7 @@ moreendseq:
return;
}
-static void loadintroroom(Context & context) {
+void loadintroroom(Context & context) {
context.data.byte(138) = 0;
context.data.byte(8) = 255;
loadroom(context);
@@ -6006,7 +6006,7 @@ static void loadintroroom(Context & context) {
return;
}
-static void realcredits(Context & context) {
+void realcredits(Context & context) {
context.data.byte(530) = 33;
loadroomssample(context);
context.data.byte(385) = 0;
@@ -6094,7 +6094,7 @@ static void realcredits(Context & context) {
return;
}
-static void printchar(Context & context) {
+void printchar(Context & context) {
context._cmp(context.al, 255);
if (context.flags.z()) goto ignoreit;
context.push(context.si);
@@ -6122,7 +6122,7 @@ ignoreit:
return;
}
-static void kernchars(Context & context) {
+void kernchars(Context & context) {
context._cmp(context.al, 'a');
if (context.flags.z()) goto iskern;
context._cmp(context.al, 'u');
@@ -6145,7 +6145,7 @@ kernit:
return;
}
-static void printslow(Context & context) {
+void printslow(Context & context) {
context.data.byte(230) = 1;
context.data.byte(233) = 3;
context.ds = context.data.word(402);
@@ -6239,7 +6239,7 @@ finishslow2:
return;
}
-static void waitframes(Context & context) {
+void waitframes(Context & context) {
context.push(context.di);
context.push(context.bx);
context.push(context.es);
@@ -6259,7 +6259,7 @@ static void waitframes(Context & context) {
return;
}
-static void printboth(Context & context) {
+void printboth(Context & context) {
context.push(context.ax);
context.push(context.cx);
context.push(context.bx);
@@ -6276,7 +6276,7 @@ static void printboth(Context & context) {
return;
}
-static void printdirect(Context & context) {
+void printdirect(Context & context) {
context.data.word(82) = context.di;
context.ds = context.data.word(266);
printloop6:
@@ -6312,7 +6312,7 @@ finishdirct:
return;
}
-static void monprint(Context & context) {
+void monprint(Context & context) {
context.data.byte(71) = 1;
context.si = context.bx;
context.dl = 166;
@@ -6391,7 +6391,7 @@ nottrigger2:
return;
}
-static void getnumber(Context & context) {
+void getnumber(Context & context) {
context.cx = 0;
context.push(context.si);
context.push(context.bx);
@@ -6494,7 +6494,7 @@ notcent2:
return;
}
-static void getnextword(Context & context) {
+void getnextword(Context & context) {
context.bx = 0;
getloop:
context.ax = context.ds.word(context.di);
@@ -6532,7 +6532,7 @@ endall:
return;
}
-static void modifychar(Context & context) {
+void modifychar(Context & context) {
context._cmp(context.al, 128);
if (context.flags.c()) goto nomod;
context._cmp(context.al, 160);
@@ -6589,7 +6589,7 @@ nomod:
return;
}
-static void fillryan(Context & context) {
+void fillryan(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32;
findallryan(context);
@@ -6632,7 +6632,7 @@ ryanloop1:
return;
}
-static void fillopen(Context & context) {
+void fillopen(Context & context) {
deltextline(context);
getopenedsize(context);
context._cmp(context.ah, 4);
@@ -6673,7 +6673,7 @@ nextopenslot:
return;
}
-static void findallryan(Context & context) {
+void findallryan(Context & context) {
context.push(context.di);
context.cx = 30;
context.ax = 0x0ffff;
@@ -6705,7 +6705,7 @@ notinryaninv:
return;
}
-static void findallopen(Context & context) {
+void findallopen(Context & context) {
context.push(context.di);
context.cx = 16;
context.ax = 0x0ffff;
@@ -6770,7 +6770,7 @@ findopen2a:
return;
}
-static void obtoinv(Context & context) {
+void obtoinv(Context & context) {
context.push(context.bx);
context.push(context.es);
context.push(context.si);
@@ -6827,7 +6827,7 @@ finishfill:
return;
}
-static void isitworn(Context & context) {
+void isitworn(Context & context) {
context.al = context.ds.byte(context.bx+12);
context._cmp(context.al, 'W'-'A');
if (!context.flags.z()) goto notworn;
@@ -6837,13 +6837,13 @@ notworn:
return;
}
-static void makeworn(Context & context) {
+void makeworn(Context & context) {
context.ds.byte(context.bx+12) = 'W'-'A';
context.ds.byte(context.bx+13) = 'E'-'A';
return;
}
-static void examineob(Context & context) {
+void examineob(Context & context) {
context.data.byte(233) = 0;
context.data.word(326) = 0;
examineagain:
@@ -6908,7 +6908,7 @@ justgetback:
return;
}
-static void makemainscreen(Context & context) {
+void makemainscreen(Context & context) {
createpanel(context);
context.data.byte(61) = 1;
drawfloor(context);
@@ -6926,7 +6926,7 @@ static void makemainscreen(Context & context) {
return;
}
-static void getbackfromob(Context & context) {
+void getbackfromob(Context & context) {
context._cmp(context.data.byte(105), 1);
if (!context.flags.z()) goto notheldob;
blank(context);
@@ -6936,7 +6936,7 @@ notheldob:
return;
}
-static void incryanpage(Context & context) {
+void incryanpage(Context & context) {
context._cmp(context.data.byte(99), 222);
if (context.flags.z()) goto alreadyincryan;
context.data.byte(99) = 222;
@@ -6967,7 +6967,7 @@ findnewpage:
return;
}
-static void openinv(Context & context) {
+void openinv(Context & context) {
context.data.byte(103) = 1;
context.al = 61;
context.di = 80;
@@ -6979,7 +6979,7 @@ static void openinv(Context & context) {
return;
}
-static void showryanpage(Context & context) {
+void showryanpage(Context & context) {
context.ds = context.data.word(406);
context.di = 80+167;
context.bx = 58-12;
@@ -7003,7 +7003,7 @@ static void showryanpage(Context & context) {
return;
}
-static void openob(Context & context) {
+void openob(Context & context) {
context.al = context.data.byte(109);
context.ah = context.data.byte(110);
context.di = 5674;
@@ -7034,7 +7034,7 @@ static void openob(Context & context) {
return;
}
-static void obicons(Context & context) {
+void obicons(Context & context) {
context.al = context.data.byte(98);
getanyad(context);
context._cmp(context.al, 255);
@@ -7055,7 +7055,7 @@ cantopenit:
return;
}
-static void examicon(Context & context) {
+void examicon(Context & context) {
context.ds = context.data.word(408);
context.di = 254;
context.bx = 5;
@@ -7065,7 +7065,7 @@ static void examicon(Context & context) {
return;
}
-static void obpicture(Context & context) {
+void obpicture(Context & context) {
context.al = context.data.byte(98);
context.ah = context.data.byte(101);
context._cmp(context.ah, 1);
@@ -7097,7 +7097,7 @@ exframe:
return;
}
-static void describeob(Context & context) {
+void describeob(Context & context) {
getobtextstart(context);
context.di = 33;
context.bx = 92;
@@ -7126,7 +7126,7 @@ notsetd2:
return;
}
-static void additionaltext(Context & context) {
+void additionaltext(Context & context) {
context._add(context.bx, 10);
context.push(context.bx);
context.al = context.data.byte(98);
@@ -7167,7 +7167,7 @@ fullcup:
return;
}
-static void obsthatdothings(Context & context) {
+void obsthatdothings(Context & context) {
context.al = context.data.byte(98);
context.ah = context.data.byte(101);
context.cl = 'M';
@@ -7189,7 +7189,7 @@ notlouiscard:
return;
}
-static void getobtextstart(Context & context) {
+void getobtextstart(Context & context) {
context.es = context.data.word(436);
context.si = 0;
context.cx = 0+(82*2);
@@ -7232,7 +7232,7 @@ findsometext:
return;
}
-static void searchforsame(Context & context) {
+void searchforsame(Context & context) {
context.si = context.cx;
searchagain:
context._add(context.si, 1);
@@ -7270,7 +7270,7 @@ foundmatch:
return;
}
-static void findnextcolon(Context & context) {
+void findnextcolon(Context & context) {
isntcolon:
context.al = context.ds.byte(context.si);
context._add(context.si, 1);
@@ -7282,7 +7282,7 @@ endofcolon:
return;
}
-static void inventory(Context & context) {
+void inventory(Context & context) {
context._cmp(context.data.byte(55), 1);
if (context.flags.z()) goto iswatchinv;
context._cmp(context.data.word(19), 0);
@@ -7392,7 +7392,7 @@ withlist1:
return;
}
-static void setpickup(Context & context) {
+void setpickup(Context & context) {
context._cmp(context.data.byte(101), 1);
if (context.flags.z()) goto cantpick;
context._cmp(context.data.byte(101), 3);
@@ -7451,7 +7451,7 @@ pickupexob:
return;
}
-static void examinventory(Context & context) {
+void examinventory(Context & context) {
context._cmp(context.data.byte(99), 249);
if (context.flags.z()) goto alreadyexinv;
context.data.byte(99) = 249;
@@ -7475,7 +7475,7 @@ doexinv:
return;
}
-static void reexfrominv(Context & context) {
+void reexfrominv(Context & context) {
findinvpos(context);
context.ax = context.ds.word(context.bx);
context.data.byte(99) = context.ah;
@@ -7485,7 +7485,7 @@ static void reexfrominv(Context & context) {
return;
}
-static void reexfromopen(Context & context) {
+void reexfromopen(Context & context) {
return;
findopenpos(context);
context.ax = context.ds.word(context.bx);
@@ -7496,7 +7496,7 @@ static void reexfromopen(Context & context) {
return;
}
-static void swapwithinv(Context & context) {
+void swapwithinv(Context & context) {
context.al = context.data.byte(88);
context.ah = context.data.byte(101);
context._cmp(context.ax, context.data.word(92));
@@ -7553,7 +7553,7 @@ doswap1:
return;
}
-static void swapwithopen(Context & context) {
+void swapwithopen(Context & context) {
context.al = context.data.byte(88);
context.ah = context.data.byte(101);
context._cmp(context.ax, context.data.word(92));
@@ -7647,7 +7647,7 @@ actuallyswap:
return;
}
-static void intoinv(Context & context) {
+void intoinv(Context & context) {
context._cmp(context.data.byte(105), 0);
if (!context.flags.z()) goto notout;
outofinv(context);
@@ -7698,7 +7698,7 @@ doplace:
return;
}
-static void deletetaken(Context & context) {
+void deletetaken(Context & context) {
context.es = context.data.word(424);
context.ah = context.data.byte(183);
context.ds = context.data.word(396);
@@ -7721,7 +7721,7 @@ notinhere:
return;
}
-static void outofinv(Context & context) {
+void outofinv(Context & context) {
findinvpos(context);
context.ax = context.ds.word(context.bx);
context._cmp(context.al, 255);
@@ -7772,7 +7772,7 @@ dograb:
return;
}
-static void getfreead(Context & context) {
+void getfreead(Context & context) {
context.ah = 0;
context.cl = 4;
context._shl(context.ax, context.cl);
@@ -7781,7 +7781,7 @@ static void getfreead(Context & context) {
return;
}
-static void getexad(Context & context) {
+void getexad(Context & context) {
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
@@ -7791,7 +7791,7 @@ static void getexad(Context & context) {
return;
}
-static void geteitherad(Context & context) {
+void geteitherad(Context & context) {
context._cmp(context.data.byte(101), 4);
if (context.flags.z()) goto isinexlist;
context.al = context.data.byte(88);
@@ -7803,7 +7803,7 @@ isinexlist:
return;
}
-static void getanyad(Context & context) {
+void getanyad(Context & context) {
context._cmp(context.data.byte(101), 4);
if (context.flags.z()) goto isex;
context._cmp(context.data.byte(101), 2);
@@ -7824,7 +7824,7 @@ isex:
return;
}
-static void getanyaddir(Context & context) {
+void getanyaddir(Context & context) {
context._cmp(context.ah, 4);
if (context.flags.z()) goto isex3;
context._cmp(context.ah, 2);
@@ -7839,7 +7839,7 @@ isex3:
return;
}
-static void getopenedsize(Context & context) {
+void getopenedsize(Context & context) {
context._cmp(context.data.byte(110), 4);
if (context.flags.z()) goto isex2;
context._cmp(context.data.byte(110), 2);
@@ -7860,7 +7860,7 @@ isex2:
return;
}
-static void getsetad(Context & context) {
+void getsetad(Context & context) {
context.ah = 0;
context.bx = 64;
context._mul(context.bx);
@@ -7869,7 +7869,7 @@ static void getsetad(Context & context) {
return;
}
-static void findinvpos(Context & context) {
+void findinvpos(Context & context) {
context.cx = context.data.word(196);
context._sub(context.cx, 80);
context.bx = -1;
@@ -7897,7 +7897,7 @@ findinv2:
return;
}
-static void findopenpos(Context & context) {
+void findopenpos(Context & context) {
context.cx = context.data.word(196);
context._sub(context.cx, 80);
context.bx = -1;
@@ -7913,7 +7913,7 @@ findopenp1:
return;
}
-static void dropobject(Context & context) {
+void dropobject(Context & context) {
context._cmp(context.data.byte(99), 223);
if (context.flags.z()) goto alreadydrop;
context.data.byte(99) = 223;
@@ -8004,7 +8004,7 @@ notinlift:
return;
}
-static void droperror(Context & context) {
+void droperror(Context & context) {
context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
@@ -8023,7 +8023,7 @@ static void droperror(Context & context) {
return;
}
-static void cantdrop(Context & context) {
+void cantdrop(Context & context) {
context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
@@ -8042,7 +8042,7 @@ static void cantdrop(Context & context) {
return;
}
-static void wornerror(Context & context) {
+void wornerror(Context & context) {
context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
@@ -8061,7 +8061,7 @@ static void wornerror(Context & context) {
return;
}
-static void removeobfrominv(Context & context) {
+void removeobfrominv(Context & context) {
context._cmp(context.data.byte(98), 100);
if (context.flags.z()) goto obnotexist;
getanyad(context);
@@ -8073,7 +8073,7 @@ obnotexist:
return;
}
-static void selectopenob(Context & context) {
+void selectopenob(Context & context) {
context.al = context.data.byte(98);
getanyad(context);
context._cmp(context.al, 255);
@@ -8116,7 +8116,7 @@ doopenob:
return;
}
-static void useopened(Context & context) {
+void useopened(Context & context) {
context._cmp(context.data.byte(109), 255);
if (context.flags.z()) goto cannotuseopen;
context._cmp(context.data.byte(105), 0);
@@ -8200,7 +8200,7 @@ sizeok1:
return;
}
-static void errormessage1(Context & context) {
+void errormessage1(Context & context) {
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8224,7 +8224,7 @@ static void errormessage1(Context & context) {
return;
}
-static void errormessage2(Context & context) {
+void errormessage2(Context & context) {
context.data.byte(99) = 255;
delpointer(context);
context.di = 76;
@@ -8249,7 +8249,7 @@ static void errormessage2(Context & context) {
return;
}
-static void errormessage3(Context & context) {
+void errormessage3(Context & context) {
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8270,7 +8270,7 @@ static void errormessage3(Context & context) {
return;
}
-static void checkobjectsize(Context & context) {
+void checkobjectsize(Context & context) {
getopenedsize(context);
context.push(context.ax);
context.al = context.data.byte(88);
@@ -8311,7 +8311,7 @@ sizeok:
return;
}
-static void outofopen(Context & context) {
+void outofopen(Context & context) {
context._cmp(context.data.byte(109), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
@@ -8374,7 +8374,7 @@ actuallyout:
return;
}
-static void transfertoex(Context & context) {
+void transfertoex(Context & context) {
emergencypurge(context);
getexpos(context);
context.al = context.data.byte(9);
@@ -8415,7 +8415,7 @@ static void transfertoex(Context & context) {
return;
}
-static void pickupconts(Context & context) {
+void pickupconts(Context & context) {
context.al = context.ds.byte(context.si+7);
context._cmp(context.al, 255);
if (context.flags.z()) goto notopenable;
@@ -8451,7 +8451,7 @@ notopenable:
return;
}
-static void transfercontoex(Context & context) {
+void transfercontoex(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.dx);
@@ -8481,7 +8481,7 @@ static void transfercontoex(Context & context) {
return;
}
-static void transfertext(Context & context) {
+void transfertext(Context & context) {
context.es = context.data.word(396);
context.al = context.data.byte(9);
context.ah = 0;
@@ -8509,7 +8509,7 @@ moretext:
return;
}
-static void getexpos(Context & context) {
+void getexpos(Context & context) {
context.es = context.data.word(396);
context.al = 0;
context.di = 0+2080+30000;
@@ -8525,7 +8525,7 @@ foundnewex:
return;
}
-static void purgealocation(Context & context) {
+void purgealocation(Context & context) {
context.push(context.ax);
context.es = context.data.word(396);
context.di = 0+2080+30000;
@@ -8553,7 +8553,7 @@ dontpurge:
return;
}
-static void emergencypurge(Context & context) {
+void emergencypurge(Context & context) {
checkpurgeagain:
context.ax = context.data.word(10);
context._add(context.ax, 4000);
@@ -8572,7 +8572,7 @@ notneartextend:
return;
}
-static void purgeanitem(Context & context) {
+void purgeanitem(Context & context) {
context.es = context.data.word(396);
context.di = 0+2080+30000;
context.bl = context.data.byte(183);
@@ -8614,7 +8614,7 @@ cantpurge2:
return;
}
-static void deleteexobject(Context & context) {
+void deleteexobject(Context & context) {
context.push(context.cx);
context.push(context.cx);
context.push(context.cx);
@@ -8658,7 +8658,7 @@ notinsideex:
return;
}
-static void deleteexframe(Context & context) {
+void deleteexframe(Context & context) {
context.di = 0;
context.ah = 0;
context._add(context.ax, context.ax);
@@ -8697,7 +8697,7 @@ beforethisone:
return;
}
-static void deleteextext(Context & context) {
+void deleteextext(Context & context) {
context.di = 0+2080+30000+(16*114);
context.ah = 0;
context._add(context.ax, context.ax);
@@ -8738,7 +8738,7 @@ beforethistext:
return;
}
-static void blockget(Context & context) {
+void blockget(Context & context) {
context.ah = context.al;
context.al = 0;
context.ds = context.data.word(414);
@@ -8747,7 +8747,7 @@ static void blockget(Context & context) {
return;
}
-static void drawfloor(Context & context) {
+void drawfloor(Context & context) {
context.push(context.es);
context.push(context.bx);
eraseoldobs(context);
@@ -8765,7 +8765,7 @@ static void drawfloor(Context & context) {
return;
}
-static void calcmapad(Context & context) {
+void calcmapad(Context & context) {
getdimension(context);
context.push(context.cx);
context.push(context.dx);
@@ -8792,7 +8792,7 @@ static void calcmapad(Context & context) {
return;
}
-static void getdimension(Context & context) {
+void getdimension(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32);
context.ch = 0;
@@ -8872,7 +8872,7 @@ finishdim4:
return;
}
-static void addalong(Context & context) {
+void addalong(Context & context) {
context.ah = 11;
addloop:
context._cmp(context.ds.byte(context.bx), 0);
@@ -8887,7 +8887,7 @@ gotalong:
return;
}
-static void addlength(Context & context) {
+void addlength(Context & context) {
context.ah = 10;
addloop2:
context._cmp(context.ds.byte(context.bx), 0);
@@ -8902,7 +8902,7 @@ gotlength:
return;
}
-static void drawflags(Context & context) {
+void drawflags(Context & context) {
context.es = context.data.word(410);
context.di = 0+(228*13)+32+60+(32*32);
context.al = context.data.byte(148);
@@ -8939,7 +8939,7 @@ _tmp28a:
return;
}
-static void eraseoldobs(Context & context) {
+void eraseoldobs(Context & context) {
context._cmp(context.data.byte(61), 0);
if (context.flags.z()) goto donterase;
context.es = context.data.word(410);
@@ -8964,7 +8964,7 @@ donterase:
return;
}
-static void showallobs(Context & context) {
+void showallobs(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32);
context.data.word(16) = context.bx;
@@ -9046,7 +9046,7 @@ finishedsetobs:
return;
}
-static void makebackob(Context & context) {
+void makebackob(Context & context) {
context._cmp(context.data.byte(61), 0);
if (context.flags.z()) goto nomake;
context.al = context.ds.byte(context.si+5);
@@ -9079,7 +9079,7 @@ nomake:
return;
}
-static void showallfree(Context & context) {
+void showallfree(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
context.data.word(16) = context.bx;
@@ -9158,7 +9158,7 @@ finfree:
return;
}
-static void showallex(Context & context) {
+void showallex(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
context.data.word(16) = context.bx;
@@ -9242,7 +9242,7 @@ finex:
return;
}
-static void calcfrframe(Context & context) {
+void calcfrframe(Context & context) {
context.dx = context.data.word(164);
context.ax = context.data.word(160);
context.push(context.ax);
@@ -9277,7 +9277,7 @@ nullframe:
return;
}
-static void finalframe(Context & context) {
+void finalframe(Context & context) {
context.ax = context.data.word(168);
context._add(context.ax, context.data.word(172));
context.bx = context.data.word(166);
@@ -9289,7 +9289,7 @@ static void finalframe(Context & context) {
return;
}
-static void adjustlen(Context & context) {
+void adjustlen(Context & context) {
context.ah = context.al;
context._add(context.al, context.ch);
context._cmp(context.al, 100);
@@ -9301,7 +9301,7 @@ over242:
return;
}
-static void getmapad(Context & context) {
+void getmapad(Context & context) {
getxad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
@@ -9315,7 +9315,7 @@ over146:
return;
}
-static void getxad(Context & context) {
+void getxad(Context & context) {
context.cl = context.ds.byte(context.si);
context._add(context.si, 1);
context.al = context.ds.byte(context.si);
@@ -9339,7 +9339,7 @@ over148:
return;
}
-static void getyad(Context & context) {
+void getyad(Context & context) {
context.al = context.ds.byte(context.si);
context._add(context.si, 1);
context.ah = context.ds.byte(context.si);
@@ -9359,7 +9359,7 @@ over147:
return;
}
-static void autolook(Context & context) {
+void autolook(Context & context) {
context.ax = context.data.word(196);
context._cmp(context.ax, context.data.word(212));
if (!context.flags.z()) goto diffmouse;
@@ -9379,7 +9379,7 @@ diffmouse:
return;
}
-static void look(Context & context) {
+void look(Context & context) {
context._cmp(context.data.word(19), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(233), 2);
@@ -9400,7 +9400,7 @@ nolook:
return;
}
-static void dolook(Context & context) {
+void dolook(Context & context) {
createpanel(context);
showicon(context);
undertextline(context);
@@ -9436,7 +9436,7 @@ afterlook:
return;
}
-static void redrawmainscrn(Context & context) {
+void redrawmainscrn(Context & context) {
context.data.word(326) = 0;
createpanel(context);
context.data.byte(61) = 0;
@@ -9451,7 +9451,7 @@ static void redrawmainscrn(Context & context) {
return;
}
-static void getback1(Context & context) {
+void getback1(Context & context) {
context._cmp(context.data.byte(105), 0);
if (context.flags.z()) goto notgotobject;
blank(context);
@@ -9476,7 +9476,7 @@ dogetback:
return;
}
-static void talk(Context & context) {
+void talk(Context & context) {
context.data.byte(245) = 0;
context.data.byte(236) = 0;
context.al = context.data.byte(98);
@@ -9525,7 +9525,7 @@ nospeech:
return;
}
-static void convicons(Context & context) {
+void convicons(Context & context) {
context.al = context.data.byte(246);
context._and(context.al, 127);
getpersframe(context);
@@ -9540,7 +9540,7 @@ static void convicons(Context & context) {
return;
}
-static void getpersframe(Context & context) {
+void getpersframe(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
@@ -9550,7 +9550,7 @@ static void getpersframe(Context & context) {
return;
}
-static void starttalk(Context & context) {
+void starttalk(Context & context) {
context.data.byte(244) = 0;
context.al = context.data.byte(246);
context._and(context.al, 127);
@@ -9573,7 +9573,7 @@ nospeech1:
return;
}
-static void getpersontext(Context & context) {
+void getpersontext(Context & context) {
context.ah = 0;
context.cx = 64*2;
context._mul(context.cx);
@@ -9587,7 +9587,7 @@ static void getpersontext(Context & context) {
return;
}
-static void moretalk(Context & context) {
+void moretalk(Context & context) {
context._cmp(context.data.byte(244), 0);
if (context.flags.z()) goto canmore;
redes(context);
@@ -9617,7 +9617,7 @@ notsecondpart:
return;
}
-static void dosometalk(Context & context) {
+void dosometalk(Context & context) {
watchtalk:
context.al = context.data.byte(245);
context.al = context.data.byte(246);
@@ -9710,7 +9710,7 @@ endwatchtalk:
return;
}
-static void hangonpq(Context & context) {
+void hangonpq(Context & context) {
context.data.byte(102) = 0;
context.bx = 0;
hangloopq:
@@ -9753,7 +9753,7 @@ quitconv:
return;
}
-static void redes(Context & context) {
+void redes(Context & context) {
context._cmp(context.data.byte(514), 255);
if (!context.flags.z()) goto cantredes;
context._cmp(context.data.byte(244), 2);
@@ -9787,7 +9787,7 @@ doredes:
return;
}
-static void newplace(Context & context) {
+void newplace(Context & context) {
context._cmp(context.data.byte(59), 1);
if (context.flags.z()) goto istravel;
context._cmp(context.data.byte(188), -1);
@@ -9804,7 +9804,7 @@ istravel:
return;
}
-static void selectlocation(Context & context) {
+void selectlocation(Context & context) {
context.data.byte(236) = 0;
clearbeforeload(context);
context.data.byte(102) = 0;
@@ -9863,7 +9863,7 @@ quittravel:
return;
}
-static void showcity(Context & context) {
+void showcity(Context & context) {
clearwork(context);
context.ds = context.data.word(456);
context.di = 57;
@@ -9880,7 +9880,7 @@ static void showcity(Context & context) {
return;
}
-static void lookatplace(Context & context) {
+void lookatplace(Context & context) {
context._cmp(context.data.byte(99), 224);
if (context.flags.z()) goto alreadyinfo;
context.data.byte(99) = 224;
@@ -9940,7 +9940,7 @@ noinfo:
return;
}
-static void getundercentre(Context & context) {
+void getundercentre(Context & context) {
context.di = 58;
context.bx = 72;
context.ds = context.data.word(400);
@@ -9951,7 +9951,7 @@ static void getundercentre(Context & context) {
return;
}
-static void putundercentre(Context & context) {
+void putundercentre(Context & context) {
context.di = 58;
context.bx = 72;
context.ds = context.data.word(400);
@@ -9962,7 +9962,7 @@ static void putundercentre(Context & context) {
return;
}
-static void locationpic(Context & context) {
+void locationpic(Context & context) {
getdestinfo(context);
context.al = context.ds.byte(context.si);
context.push(context.es);
@@ -10008,7 +10008,7 @@ notinthisone:
return;
}
-static void getdestinfo(Context & context) {
+void getdestinfo(Context & context) {
context.al = context.data.byte(182);
context.ah = 0;
context.push(context.ax);
@@ -10027,7 +10027,7 @@ static void getdestinfo(Context & context) {
return;
}
-static void showarrows(Context & context) {
+void showarrows(Context & context) {
context.di = 116-12;
context.bx = 16;
context.ds = context.data.word(456);
@@ -10049,7 +10049,7 @@ static void showarrows(Context & context) {
return;
}
-static void nextdest(Context & context) {
+void nextdest(Context & context) {
duok:
context._cmp(context.data.byte(99), 218);
if (context.flags.z()) goto alreadydu;
@@ -10087,7 +10087,7 @@ nodu:
return;
}
-static void lastdest(Context & context) {
+void lastdest(Context & context) {
ddok:
context._cmp(context.data.byte(99), 219);
if (context.flags.z()) goto alreadydd;
@@ -10125,7 +10125,7 @@ nodd:
return;
}
-static void destselect(Context & context) {
+void destselect(Context & context) {
context._cmp(context.data.byte(99), 222);
if (context.flags.z()) goto alreadytrav;
context.data.byte(99) = 222;
@@ -10144,7 +10144,7 @@ notrav:
return;
}
-static void getlocation(Context & context) {
+void getlocation(Context & context) {
context.ah = 0;
context.bx = context.ax;
context.dx = context.ds;
@@ -10154,7 +10154,7 @@ static void getlocation(Context & context) {
return;
}
-static void setlocation(Context & context) {
+void setlocation(Context & context) {
context.ah = 0;
context.bx = context.ax;
context.dx = context.ds;
@@ -10164,7 +10164,7 @@ static void setlocation(Context & context) {
return;
}
-static void resetlocation(Context & context) {
+void resetlocation(Context & context) {
context.push(context.ax);
context._cmp(context.al, 5);
if (!context.flags.z()) goto notdelhotel;
@@ -10211,7 +10211,7 @@ clearedlocations:
return;
}
-static void readdesticon(Context & context) {
+void readdesticon(Context & context) {
context.dx = 2013;
loadintotemp(context);
context.dx = 2026;
@@ -10221,13 +10221,13 @@ static void readdesticon(Context & context) {
return;
}
-static void readcitypic(Context & context) {
+void readcitypic(Context & context) {
context.dx = 2000;
loadintotemp(context);
return;
}
-static void usemon(Context & context) {
+void usemon(Context & context) {
context.data.byte(54) = 0;
context.es = context.cs;
context.di = 2892+1;
@@ -10317,7 +10317,7 @@ endmon:
return;
}
-static void printoutermon(Context & context) {
+void printoutermon(Context & context) {
context.di = 40;
context.bx = 32;
context.ds = context.data.word(456);
@@ -10345,7 +10345,7 @@ static void printoutermon(Context & context) {
return;
}
-static void loadpersonal(Context & context) {
+void loadpersonal(Context & context) {
context.al = context.data.byte(8);
context.dx = 2052;
context._cmp(context.al, 0);
@@ -10372,7 +10372,7 @@ foundpersonal:
return;
}
-static void loadnews(Context & context) {
+void loadnews(Context & context) {
context.al = context.data.byte(33);
context.dx = 2078;
context._cmp(context.al, 0);
@@ -10401,7 +10401,7 @@ foundnews:
return;
}
-static void loadcart(Context & context) {
+void loadcart(Context & context) {
lookininterface(context);
context.dx = 2130;
context._cmp(context.al, 0);
@@ -10433,7 +10433,7 @@ gotcart:
return;
}
-static void lookininterface(Context & context) {
+void lookininterface(Context & context) {
context.al = 'I';
context.ah = 'N';
context.cl = 'T';
@@ -10451,7 +10451,7 @@ emptyinterface:
return;
}
-static void turnonpower(Context & context) {
+void turnonpower(Context & context) {
context.cx = 3;
powerloop:
context.push(context.cx);
@@ -10467,7 +10467,7 @@ powerloop:
return;
}
-static void randomaccess(Context & context) {
+void randomaccess(Context & context) {
accessloop:
context.push(context.cx);
vsync(context);
@@ -10487,7 +10487,7 @@ chosenaccess:
return;
}
-static void powerlighton(Context & context) {
+void powerlighton(Context & context) {
context.di = 257+4;
context.bx = 182;
context.ds = context.data.word(456);
@@ -10504,7 +10504,7 @@ static void powerlighton(Context & context) {
return;
}
-static void powerlightoff(Context & context) {
+void powerlightoff(Context & context) {
context.di = 257+4;
context.bx = 182;
context.ds = context.data.word(456);
@@ -10521,7 +10521,7 @@ static void powerlightoff(Context & context) {
return;
}
-static void accesslighton(Context & context) {
+void accesslighton(Context & context) {
context.di = 74;
context.bx = 182;
context.ds = context.data.word(456);
@@ -10538,7 +10538,7 @@ static void accesslighton(Context & context) {
return;
}
-static void accesslightoff(Context & context) {
+void accesslightoff(Context & context) {
context.di = 74;
context.bx = 182;
context.ds = context.data.word(456);
@@ -10555,7 +10555,7 @@ static void accesslightoff(Context & context) {
return;
}
-static void locklighton(Context & context) {
+void locklighton(Context & context) {
context.di = 56;
context.bx = 182;
context.ds = context.data.word(456);
@@ -10572,7 +10572,7 @@ static void locklighton(Context & context) {
return;
}
-static void locklightoff(Context & context) {
+void locklightoff(Context & context) {
context.di = 56;
context.bx = 182;
context.ds = context.data.word(456);
@@ -10589,7 +10589,7 @@ static void locklightoff(Context & context) {
return;
}
-static void input(Context & context) {
+void input(Context & context) {
context.es = context.cs;
context.di = 7816;
context.cx = 64;
@@ -10678,7 +10678,7 @@ endofinput:
return;
}
-static void makecaps(Context & context) {
+void makecaps(Context & context) {
context._cmp(context.al, 'a');
if (context.flags.c()) goto notupperc;
context._sub(context.al, 32);
@@ -10686,7 +10686,7 @@ notupperc:
return;
}
-static void delchar(Context & context) {
+void delchar(Context & context) {
context._sub(context.data.word(314), 1);
context.si = context.data.word(314);
context._add(context.si, context.si);
@@ -10714,7 +10714,7 @@ static void delchar(Context & context) {
return;
}
-static void execcommand(Context & context) {
+void execcommand(Context & context) {
context.es = context.cs;
context.bx = 2776;
context.ds = context.cs;
@@ -10787,14 +10787,14 @@ quitcom:
return;
}
-static void neterror(Context & context) {
+void neterror(Context & context) {
context.al = 5;
monmessage(context);
scrollmonitor(context);
return;
}
-static void dircom(Context & context) {
+void dircom(Context & context) {
context.cx = 30;
randomaccess(context);
parser(context);
@@ -10826,7 +10826,7 @@ dirroot:
return;
}
-static void searchforfiles(Context & context) {
+void searchforfiles(Context & context) {
context.bx = 66*2;
directloop1:
context.al = context.ds.byte(context.bx);
@@ -10841,7 +10841,7 @@ endofdir:
return;
}
-static void signon(Context & context) {
+void signon(Context & context) {
parser(context);
context._add(context.di, 1);
context.ds = context.cs;
@@ -10936,7 +10936,7 @@ passpassed:
return;
}
-static void showkeys(Context & context) {
+void showkeys(Context & context) {
context.cx = 10;
randomaccess(context);
scrollmonitor(context);
@@ -10961,7 +10961,7 @@ notheld:
return;
}
-static void read(Context & context) {
+void read(Context & context) {
context.cx = 40;
randomaccess(context);
parser(context);
@@ -11043,7 +11043,7 @@ endoftopic:
return;
}
-static void dirfile(Context & context) {
+void dirfile(Context & context) {
context.al = 34;
context.ds.byte(context.di) = context.al;
context.push(context.es);
@@ -11114,7 +11114,7 @@ endofdir2:
return;
}
-static void getkeyandlogo(Context & context) {
+void getkeyandlogo(Context & context) {
context._add(context.bx, 1);
context.al = context.ds.byte(context.bx);
context._sub(context.al, 48);
@@ -11158,7 +11158,7 @@ keyok:
return;
}
-static void searchforstring(Context & context) {
+void searchforstring(Context & context) {
context.dl = context.ds.byte(context.di);
context.cx = context.di;
restartlook:
@@ -11196,7 +11196,7 @@ notfound:
return;
}
-static void parser(Context & context) {
+void parser(Context & context) {
context.es = context.cs;
context.di = 2883;
context.cx = 13;
@@ -11230,7 +11230,7 @@ finishpars:
return;
}
-static void scrollmonitor(Context & context) {
+void scrollmonitor(Context & context) {
context.push(context.ax);
context.push(context.bx);
context.push(context.cx);
@@ -11258,7 +11258,7 @@ static void scrollmonitor(Context & context) {
return;
}
-static void lockmon(Context & context) {
+void lockmon(Context & context) {
context._cmp(context.data.byte(391), 57);
if (!context.flags.z()) goto notlock;
locklighton(context);
@@ -11270,7 +11270,7 @@ notlock:
return;
}
-static void monitorlogo(Context & context) {
+void monitorlogo(Context & context) {
context.al = context.data.byte(268);
context._cmp(context.al, context.data.byte(269));
if (context.flags.z()) goto notnewlogo;
@@ -11290,7 +11290,7 @@ notnewlogo:
return;
}
-static void printlogo(Context & context) {
+void printlogo(Context & context) {
context.di = 56;
context.bx = 32;
context.ds = context.data.word(456);
@@ -11301,7 +11301,7 @@ static void printlogo(Context & context) {
return;
}
-static void showcurrentfile(Context & context) {
+void showcurrentfile(Context & context) {
context.di = 178;
context.bx = 37;
context.si = 2892+1;
@@ -11321,7 +11321,7 @@ finishfile:
return;
}
-static void monmessage(Context & context) {
+void monmessage(Context & context) {
context.es = context.data.word(464);
context.bx = 66*2;
context.cl = context.al;
@@ -11336,7 +11336,7 @@ monmessageloop:
return;
}
-static void processtrigger(Context & context) {
+void processtrigger(Context & context) {
context._cmp(context.data.byte(54), '1');
if (!context.flags.z()) goto notfirsttrigger;
context.al = 8;
@@ -11363,7 +11363,7 @@ notthirdtrigger:
return;
}
-static void triggermessage(Context & context) {
+void triggermessage(Context & context) {
context.push(context.ax);
context.di = 174;
context.bx = 153;
@@ -11396,7 +11396,7 @@ static void triggermessage(Context & context) {
return;
}
-static void printcurs(Context & context) {
+void printcurs(Context & context) {
context.push(context.si);
context.push(context.di);
context.push(context.ds);
@@ -11443,7 +11443,7 @@ flashcurs:
return;
}
-static void delcurs(Context & context) {
+void delcurs(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.di);
@@ -11476,7 +11476,7 @@ finishcurdel:
return;
}
-static void useobject(Context & context) {
+void useobject(Context & context) {
context.data.byte(94) = 255;
context._cmp(context.data.byte(99), 229);
if (context.flags.z()) goto alreadyuse;
@@ -11498,7 +11498,7 @@ douse:
return;
}
-static void useroutine(Context & context) {
+void useroutine(Context & context) {
context._cmp(context.data.byte(183), 50);
if (context.flags.c()) goto nodream7;
context._cmp(context.data.byte(231), 0);
@@ -11573,7 +11573,7 @@ cantuse2:
return;
}
-static void wheelsound(Context & context) {
+void wheelsound(Context & context) {
context.al = 17;
playchannel1(context);
showfirstuse(context);
@@ -11581,7 +11581,7 @@ static void wheelsound(Context & context) {
return;
}
-static void runtap(Context & context) {
+void runtap(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto tapwith;
withwhat(context);
@@ -11627,7 +11627,7 @@ cupfromtapfull:
return;
}
-static void playguitar(Context & context) {
+void playguitar(Context & context) {
context.al = 14;
playchannel1(context);
showfirstuse(context);
@@ -11635,7 +11635,7 @@ static void playguitar(Context & context) {
return;
}
-static void hotelcontrol(Context & context) {
+void hotelcontrol(Context & context) {
context._cmp(context.data.byte(183), 21);
if (!context.flags.z()) goto notrightcont;
context._cmp(context.data.byte(147), 33);
@@ -11649,7 +11649,7 @@ notrightcont:
return;
}
-static void hotelbell(Context & context) {
+void hotelbell(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
@@ -11657,7 +11657,7 @@ static void hotelbell(Context & context) {
return;
}
-static void opentomb(Context & context) {
+void opentomb(Context & context) {
context._add(context.data.byte(1), 1);
showfirstuse(context);
context.data.word(19) = 35*2;
@@ -11669,7 +11669,7 @@ static void opentomb(Context & context) {
return;
}
-static void usetrainer(Context & context) {
+void usetrainer(Context & context) {
getanyad(context);
context._cmp(context.ds.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
@@ -11683,7 +11683,7 @@ notheldtrainer:
return;
}
-static void nothelderror(Context & context) {
+void nothelderror(Context & context) {
createpanel(context);
showpanel(context);
showman(context);
@@ -11702,7 +11702,7 @@ static void nothelderror(Context & context) {
return;
}
-static void usepipe(Context & context) {
+void usepipe(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto pipewith;
withwhat(context);
@@ -11746,7 +11746,7 @@ alreadyfull:
return;
}
-static void usefullcart(Context & context) {
+void usefullcart(Context & context) {
context._add(context.data.byte(1), 1);
context.al = 2;
context.ah = context.data.byte(184);
@@ -11768,7 +11768,7 @@ static void usefullcart(Context & context) {
return;
}
-static void useplinth(Context & context) {
+void useplinth(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto plinthwith;
withwhat(context);
@@ -11799,7 +11799,7 @@ isrightkey:
return;
}
-static void chewy(Context & context) {
+void chewy(Context & context) {
showfirstuse(context);
getanyad(context);
context.ds.byte(context.bx+2) = 255;
@@ -11807,7 +11807,7 @@ static void chewy(Context & context) {
return;
}
-static void useladder(Context & context) {
+void useladder(Context & context) {
showfirstuse(context);
context._sub(context.data.byte(147), 11);
findroominloc(context);
@@ -11822,7 +11822,7 @@ static void useladder(Context & context) {
return;
}
-static void useladderb(Context & context) {
+void useladderb(Context & context) {
showfirstuse(context);
context._add(context.data.byte(147), 11);
findroominloc(context);
@@ -11837,7 +11837,7 @@ static void useladderb(Context & context) {
return;
}
-static void slabdoora(Context & context) {
+void slabdoora(Context & context) {
showfirstuse(context);
context.data.byte(102) = 1;
context.data.byte(26) = 1;
@@ -11858,7 +11858,7 @@ slabawrong:
return;
}
-static void slabdoorb(Context & context) {
+void slabdoorb(Context & context) {
context._cmp(context.data.byte(65), 1);
if (!context.flags.z()) goto slabbwrong;
context.al = 'S';
@@ -11896,7 +11896,7 @@ slabbwrong:
return;
}
-static void slabdoord(Context & context) {
+void slabdoord(Context & context) {
showfirstuse(context);
context.data.byte(102) = 1;
context.data.byte(26) = 1;
@@ -11917,7 +11917,7 @@ slabcwrong:
return;
}
-static void slabdoorc(Context & context) {
+void slabdoorc(Context & context) {
showfirstuse(context);
context.data.byte(102) = 1;
context.data.byte(26) = 1;
@@ -11938,7 +11938,7 @@ slabdwrong:
return;
}
-static void slabdoore(Context & context) {
+void slabdoore(Context & context) {
showfirstuse(context);
context.data.byte(102) = 1;
context.data.byte(26) = 1;
@@ -11959,7 +11959,7 @@ slabewrong:
return;
}
-static void slabdoorf(Context & context) {
+void slabdoorf(Context & context) {
showfirstuse(context);
context.data.byte(102) = 1;
context.data.byte(26) = 1;
@@ -11980,7 +11980,7 @@ slabfwrong:
return;
}
-static void useslab(Context & context) {
+void useslab(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto slabwith;
withwhat(context);
@@ -12027,7 +12027,7 @@ notlastslab:
return;
}
-static void usecart(Context & context) {
+void usecart(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto cartwith;
withwhat(context);
@@ -12064,7 +12064,7 @@ nextcart:
return;
}
-static void useclearbox(Context & context) {
+void useclearbox(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto clearboxwith;
withwhat(context);
@@ -12095,7 +12095,7 @@ openbox:
return;
}
-static void usecoveredbox(Context & context) {
+void usecoveredbox(Context & context) {
context._add(context.data.byte(1), 1);
showfirstuse(context);
context.data.word(19) = 50;
@@ -12107,7 +12107,7 @@ static void usecoveredbox(Context & context) {
return;
}
-static void userailing(Context & context) {
+void userailing(Context & context) {
showfirstuse(context);
context.data.word(19) = 80;
context.data.word(21) = 0;
@@ -12119,7 +12119,7 @@ static void userailing(Context & context) {
return;
}
-static void useopenbox(Context & context) {
+void useopenbox(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto openboxwith;
withwhat(context);
@@ -12168,7 +12168,7 @@ openboxwrong:
return;
}
-static void wearwatch(Context & context) {
+void wearwatch(Context & context) {
context._cmp(context.data.byte(2), 1);
if (context.flags.z()) goto wearingwatch;
showfirstuse(context);
@@ -12183,7 +12183,7 @@ wearingwatch:
return;
}
-static void wearshades(Context & context) {
+void wearshades(Context & context) {
context._cmp(context.data.byte(3), 1);
if (context.flags.z()) goto wearingshades;
context.data.byte(3) = 1;
@@ -12198,7 +12198,7 @@ wearingshades:
return;
}
-static void sitdowninbar(Context & context) {
+void sitdowninbar(Context & context) {
context._cmp(context.data.byte(31), -1);
if (!context.flags.z()) goto satdown;
showfirstuse(context);
@@ -12217,7 +12217,7 @@ satdown:
return;
}
-static void usechurchhole(Context & context) {
+void usechurchhole(Context & context) {
showfirstuse(context);
context.data.byte(102) = 1;
context.data.word(19) = 28;
@@ -12228,7 +12228,7 @@ static void usechurchhole(Context & context) {
return;
}
-static void usehole(Context & context) {
+void usehole(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto holewith;
withwhat(context);
@@ -12259,7 +12259,7 @@ righthand:
return;
}
-static void usealtar(Context & context) {
+void usealtar(Context & context) {
context.al = 'C';
context.ah = 'N';
context.cl = 'D';
@@ -12303,7 +12303,7 @@ thingsonaltar:
return;
}
-static void opentvdoor(Context & context) {
+void opentvdoor(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto tvdoorwith;
withwhat(context);
@@ -12329,7 +12329,7 @@ keyontv:
return;
}
-static void usedryer(Context & context) {
+void usedryer(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
@@ -12337,7 +12337,7 @@ static void usedryer(Context & context) {
return;
}
-static void openlouis(Context & context) {
+void openlouis(Context & context) {
context.al = 5;
context.ah = 2;
context.cl = 3;
@@ -12347,7 +12347,7 @@ static void openlouis(Context & context) {
return;
}
-static void nextcolon(Context & context) {
+void nextcolon(Context & context) {
lookcolon:
context.al = context.ds.byte(context.si);
context._add(context.si, 1);
@@ -12356,7 +12356,7 @@ lookcolon:
return;
}
-static void openyourneighbour(Context & context) {
+void openyourneighbour(Context & context) {
context.al = 255;
context.ah = 255;
context.cl = 255;
@@ -12366,7 +12366,7 @@ static void openyourneighbour(Context & context) {
return;
}
-static void usewindow(Context & context) {
+void usewindow(Context & context) {
context._cmp(context.data.byte(474), 6);
if (!context.flags.z()) goto notonbalc;
context._add(context.data.byte(1), 1);
@@ -12380,7 +12380,7 @@ notonbalc:
return;
}
-static void usebalcony(Context & context) {
+void usebalcony(Context & context) {
showfirstuse(context);
context.al = 6;
turnpathon(context);
@@ -12412,7 +12412,7 @@ static void usebalcony(Context & context) {
return;
}
-static void openryan(Context & context) {
+void openryan(Context & context) {
context.al = 5;
context.ah = 1;
context.cl = 0;
@@ -12422,7 +12422,7 @@ static void openryan(Context & context) {
return;
}
-static void openpoolboss(Context & context) {
+void openpoolboss(Context & context) {
context.al = 5;
context.ah = 2;
context.cl = 2;
@@ -12432,7 +12432,7 @@ static void openpoolboss(Context & context) {
return;
}
-static void openeden(Context & context) {
+void openeden(Context & context) {
context.al = 2;
context.ah = 8;
context.cl = 6;
@@ -12442,7 +12442,7 @@ static void openeden(Context & context) {
return;
}
-static void opensarters(Context & context) {
+void opensarters(Context & context) {
context.al = 7;
context.ah = 8;
context.cl = 3;
@@ -12452,7 +12452,7 @@ static void opensarters(Context & context) {
return;
}
-static void isitright(Context & context) {
+void isitright(Context & context) {
context.bx = context.ds;
context.es = context.bx;
context.bx = 8344;
@@ -12467,7 +12467,7 @@ notright:
return;
}
-static void drawitall(Context & context) {
+void drawitall(Context & context) {
createpanel(context);
drawfloor(context);
printsprites(context);
@@ -12475,7 +12475,7 @@ static void drawitall(Context & context) {
return;
}
-static void openhoteldoor(Context & context) {
+void openhoteldoor(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto hoteldoorwith;
withwhat(context);
@@ -12503,7 +12503,7 @@ keyonhotel1:
return;
}
-static void openhoteldoor2(Context & context) {
+void openhoteldoor2(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto hoteldoorwith2;
withwhat(context);
@@ -12530,7 +12530,7 @@ keyonhotel2:
return;
}
-static void grafittidoor(Context & context) {
+void grafittidoor(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto grafwith;
withwhat(context);
@@ -12555,7 +12555,7 @@ dograf:
return;
}
-static void trapdoor(Context & context) {
+void trapdoor(Context & context) {
context._add(context.data.byte(1), 1);
showfirstuse(context);
switchryanoff(context);
@@ -12569,7 +12569,7 @@ static void trapdoor(Context & context) {
return;
}
-static void callhotellift(Context & context) {
+void callhotellift(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
@@ -12583,7 +12583,7 @@ static void callhotellift(Context & context) {
return;
}
-static void calledenslift(Context & context) {
+void calledenslift(Context & context) {
showfirstuse(context);
context.data.byte(38) = 8;
context.data.byte(102) = 1;
@@ -12592,7 +12592,7 @@ static void calledenslift(Context & context) {
return;
}
-static void calledensdlift(Context & context) {
+void calledensdlift(Context & context) {
context._cmp(context.data.byte(34), 1);
if (context.flags.z()) goto edensdhere;
showfirstuse(context);
@@ -12607,7 +12607,7 @@ edensdhere:
return;
}
-static void usepoolreader(Context & context) {
+void usepoolreader(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto poolwith;
withwhat(context);
@@ -12641,7 +12641,7 @@ canopenpool:
return;
}
-static void uselighter(Context & context) {
+void uselighter(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotlighterwith;
withwhat(context);
@@ -12669,7 +12669,7 @@ cigarette:
return;
}
-static void showseconduse(Context & context) {
+void showseconduse(Context & context) {
getobtextstart(context);
nextcolon(context);
nextcolon(context);
@@ -12680,7 +12680,7 @@ static void showseconduse(Context & context) {
return;
}
-static void usecardreader1(Context & context) {
+void usecardreader1(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotreader1with;
withwhat(context);
@@ -12725,7 +12725,7 @@ notyet:
return;
}
-static void usecardreader2(Context & context) {
+void usecardreader2(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotreader2with;
withwhat(context);
@@ -12781,7 +12781,7 @@ notyetboss:
return;
}
-static void usecardreader3(Context & context) {
+void usecardreader3(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotreader3with;
withwhat(context);
@@ -12827,7 +12827,7 @@ notyetrecep:
return;
}
-static void usecashcard(Context & context) {
+void usecashcard(Context & context) {
getridofreels(context);
loadkeypad(context);
createpanel(context);
@@ -12879,7 +12879,7 @@ static void usecashcard(Context & context) {
return;
}
-static void lookatcard(Context & context) {
+void lookatcard(Context & context) {
context.data.byte(130) = 1;
getridofreels(context);
loadkeypad(context);
@@ -12930,7 +12930,7 @@ static void lookatcard(Context & context) {
return;
}
-static void moneypoke(Context & context) {
+void moneypoke(Context & context) {
context.bx = 3385;
context.cl = 48-1;
numberpoke0:
@@ -12969,7 +12969,7 @@ numberpoke3:
return;
}
-static void usecontrol(Context & context) {
+void usecontrol(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotcontrolwith;
withwhat(context);
@@ -13059,14 +13059,14 @@ axeoncontrols:
return;
}
-static void usehatch(Context & context) {
+void usehatch(Context & context) {
showfirstuse(context);
context.data.byte(187) = 40;
context.data.byte(102) = 1;
return;
}
-static void usewire(Context & context) {
+void usewire(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotwirewith;
withwhat(context);
@@ -13112,7 +13112,7 @@ wireknife:
return;
}
-static void usehandle(Context & context) {
+void usehandle(Context & context) {
context.al = 'C';
context.ah = 'U';
context.cl = 'T';
@@ -13135,14 +13135,14 @@ havecutwire:
return;
}
-static void useelevator1(Context & context) {
+void useelevator1(Context & context) {
showfirstuse(context);
selectlocation(context);
context.data.byte(102) = 1;
return;
}
-static void showfirstuse(Context & context) {
+void showfirstuse(Context & context) {
getobtextstart(context);
findnextcolon(context);
findnextcolon(context);
@@ -13152,7 +13152,7 @@ static void showfirstuse(Context & context) {
return;
}
-static void useelevator3(Context & context) {
+void useelevator3(Context & context) {
showfirstuse(context);
context.data.byte(39) = 20;
context.data.byte(187) = 34;
@@ -13165,7 +13165,7 @@ static void useelevator3(Context & context) {
return;
}
-static void useelevator4(Context & context) {
+void useelevator4(Context & context) {
showfirstuse(context);
context.data.word(21) = 0;
context.data.word(23) = 11;
@@ -13178,7 +13178,7 @@ static void useelevator4(Context & context) {
return;
}
-static void useelevator2(Context & context) {
+void useelevator2(Context & context) {
context._cmp(context.data.byte(8), 23);
if (context.flags.z()) goto inpoolhall;
showfirstuse(context);
@@ -13198,7 +13198,7 @@ inpoolhall:
return;
}
-static void useelevator5(Context & context) {
+void useelevator5(Context & context) {
context.al = 4;
placesetobject(context);
context.al = 0;
@@ -13211,7 +13211,7 @@ static void useelevator5(Context & context) {
return;
}
-static void usekey(Context & context) {
+void usekey(Context & context) {
context._cmp(context.data.byte(8), 5);
if (context.flags.z()) goto usekey1;
context._cmp(context.data.byte(8), 30);
@@ -13256,7 +13256,7 @@ wrongroom1:
return;
}
-static void usestereo(Context & context) {
+void usestereo(Context & context) {
context._cmp(context.data.byte(8), 0);
if (context.flags.z()) goto stereook;
context.cx = 400;
@@ -13313,7 +13313,7 @@ stereoon:
return;
}
-static void usecooker(Context & context) {
+void usecooker(Context & context) {
context.al = context.data.byte(98);
context.ah = context.data.byte(101);
checkinside(context);
@@ -13328,7 +13328,7 @@ foodinside:
return;
}
-static void useaxe(Context & context) {
+void useaxe(Context & context) {
context._cmp(context.data.byte(183), 22);
if (!context.flags.z()) goto notinpool;
context._cmp(context.data.byte(148), 10);
@@ -13358,7 +13358,7 @@ axeondoor:
return;
}
-static void useelvdoor(Context & context) {
+void useelvdoor(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gotdoorwith;
withwhat(context);
@@ -13391,7 +13391,7 @@ axeondoor:
return;
}
-static void withwhat(Context & context) {
+void withwhat(Context & context) {
createpanel(context);
showpanel(context);
showman(context);
@@ -13433,7 +13433,7 @@ static void withwhat(Context & context) {
return;
}
-static void selectob(Context & context) {
+void selectob(Context & context) {
findinvpos(context);
context.ax = context.ds.word(context.bx);
context._cmp(context.al, 255);
@@ -13468,7 +13468,7 @@ doselob:
return;
}
-static void compare(Context & context) {
+void compare(Context & context) {
context._sub(context.dl, 'A');
context._sub(context.dh, 'A');
context._sub(context.cl, 'A');
@@ -13485,7 +13485,7 @@ comparefin:
return;
}
-static void findsetobject(Context & context) {
+void findsetobject(Context & context) {
context._sub(context.al, 'A');
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
@@ -13513,7 +13513,7 @@ nofind:
return;
}
-static void findexobject(Context & context) {
+void findexobject(Context & context) {
context._sub(context.al, 'A');
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
@@ -13541,7 +13541,7 @@ nofindex:
return;
}
-static void isryanholding(Context & context) {
+void isryanholding(Context & context) {
context._sub(context.al, 'A');
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
@@ -13573,7 +13573,7 @@ nofindininv:
return;
}
-static void checkinside(Context & context) {
+void checkinside(Context & context) {
context.es = context.data.word(396);
context.bx = 0+2080+30000;
context.cl = 0;
@@ -13591,7 +13591,7 @@ notfoundinside:
return;
}
-static void usetext(Context & context) {
+void usetext(Context & context) {
context.push(context.es);
context.push(context.si);
createpanel(context);
@@ -13611,7 +13611,7 @@ static void usetext(Context & context) {
return;
}
-static void putbackobstuff(Context & context) {
+void putbackobstuff(Context & context) {
createpanel(context);
showpanel(context);
showman(context);
@@ -13628,7 +13628,7 @@ static void putbackobstuff(Context & context) {
return;
}
-static void showpuztext(Context & context) {
+void showpuztext(Context & context) {
context.push(context.cx);
findpuztext(context);
context.push(context.es);
@@ -13651,7 +13651,7 @@ static void showpuztext(Context & context) {
return;
}
-static void findpuztext(Context & context) {
+void findpuztext(Context & context) {
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
@@ -13662,7 +13662,7 @@ static void findpuztext(Context & context) {
return;
}
-static void placesetobject(Context & context) {
+void placesetobject(Context & context) {
context.push(context.es);
context.push(context.bx);
context.cl = 0;
@@ -13675,7 +13675,7 @@ static void placesetobject(Context & context) {
return;
}
-static void removesetobject(Context & context) {
+void removesetobject(Context & context) {
context.push(context.es);
context.push(context.bx);
context.cl = 255;
@@ -13688,7 +13688,7 @@ static void removesetobject(Context & context) {
return;
}
-static void issetobonmap(Context & context) {
+void issetobonmap(Context & context) {
context.push(context.es);
context.push(context.bx);
getsetad(context);
@@ -13699,7 +13699,7 @@ static void issetobonmap(Context & context) {
return;
}
-static void placefreeobject(Context & context) {
+void placefreeobject(Context & context) {
context.push(context.es);
context.push(context.bx);
context.cl = 0;
@@ -13712,7 +13712,7 @@ static void placefreeobject(Context & context) {
return;
}
-static void removefreeobject(Context & context) {
+void removefreeobject(Context & context) {
context.push(context.es);
context.push(context.bx);
getfreead(context);
@@ -13722,7 +13722,7 @@ static void removefreeobject(Context & context) {
return;
}
-static void findormake(Context & context) {
+void findormake(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
context.push(context.ax);
context.es = context.data.word(410);
@@ -13748,17 +13748,17 @@ haventfound:
return;
}
-static void switchryanon(Context & context) {
+void switchryanon(Context & context) {
context.data.byte(62) = 255;
return;
}
-static void switchryanoff(Context & context) {
+void switchryanoff(Context & context) {
context.data.byte(62) = 1;
return;
}
-static void setallchanges(Context & context) {
+void setallchanges(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
setallloop:
@@ -13779,7 +13779,7 @@ endsetloop:
return;
}
-static void dochange(Context & context) {
+void dochange(Context & context) {
context._cmp(context.ch, 0);
if (context.flags.z()) goto object;
context._cmp(context.ch, 1);
@@ -13821,7 +13821,7 @@ beenpickedup:
return;
}
-static void autoappear(Context & context) {
+void autoappear(Context & context) {
context._cmp(context.data.byte(8), 32);
if (!context.flags.z()) goto notinalley;
context.al = 5;
@@ -13886,7 +13886,7 @@ notinlouiss:
return;
}
-static void getundertimed(Context & context) {
+void getundertimed(Context & context) {
context.al = context.data.byte(334);
context._sub(context.al, 3);
context.ah = 0;
@@ -13902,7 +13902,7 @@ static void getundertimed(Context & context) {
return;
}
-static void putundertimed(Context & context) {
+void putundertimed(Context & context) {
context.al = context.data.byte(334);
context._sub(context.al, 3);
context.ah = 0;
@@ -13918,7 +13918,7 @@ static void putundertimed(Context & context) {
return;
}
-static void dumptimedtext(Context & context) {
+void dumptimedtext(Context & context) {
context._cmp(context.data.byte(336), 1);
if (!context.flags.z()) goto nodumptimed;
context.al = context.data.byte(334);
@@ -13936,7 +13936,7 @@ nodumptimed:
return;
}
-static void setuptimeduse(Context & context) {
+void setuptimeduse(Context & context) {
context._cmp(context.data.word(326), 0);
if (!context.flags.z()) goto cantsetup;
context.data.byte(334) = context.bh;
@@ -13958,7 +13958,7 @@ cantsetup:
return;
}
-static void setuptimedtemp(Context & context) {
+void setuptimedtemp(Context & context) {
context._cmp(context.data.word(326), 0);
if (!context.flags.z()) goto cantsetup2;
context.data.byte(334) = context.bh;
@@ -13980,7 +13980,7 @@ cantsetup2:
return;
}
-static void usetimedtext(Context & context) {
+void usetimedtext(Context & context) {
context._cmp(context.data.word(326), 0);
if (context.flags.z()) goto notext;
context._sub(context.data.word(326), 1);
@@ -14013,7 +14013,7 @@ deltimedtext:
return;
}
-static void edenscdplayer(Context & context) {
+void edenscdplayer(Context & context) {
showfirstuse(context);
context.data.word(19) = 18*2;
context.data.word(21) = 25;
@@ -14024,7 +14024,7 @@ static void edenscdplayer(Context & context) {
return;
}
-static void usewall(Context & context) {
+void usewall(Context & context) {
showfirstuse(context);
context._cmp(context.data.byte(474), 3);
if (context.flags.z()) goto gobackover;
@@ -14079,7 +14079,7 @@ gobackover:
return;
}
-static void usechurchgate(Context & context) {
+void usechurchgate(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto gatewith;
withwhat(context);
@@ -14117,7 +14117,7 @@ notopenchurch:
return;
}
-static void usegun(Context & context) {
+void usegun(Context & context) {
context._cmp(context.data.byte(101), 4);
if (context.flags.z()) goto istakengun;
showseconduse(context);
@@ -14272,7 +14272,7 @@ nottvsoldier:
return;
}
-static void useshield(Context & context) {
+void useshield(Context & context) {
context._cmp(context.data.byte(183), 20);
if (!context.flags.z()) goto notinsartroom;
context._cmp(context.data.byte(63), 0);
@@ -14289,7 +14289,7 @@ notinsartroom:
return;
}
-static void usebuttona(Context & context) {
+void usebuttona(Context & context) {
context.al = 95;
issetobonmap(context);
if (context.flags.z()) goto donethisbit;
@@ -14316,7 +14316,7 @@ donethisbit:
return;
}
-static void useplate(Context & context) {
+void useplate(Context & context) {
context._cmp(context.data.byte(94), 255);
if (!context.flags.z()) goto platewith;
withwhat(context);
@@ -14366,7 +14366,7 @@ triedknife:
return;
}
-static void usewinch(Context & context) {
+void usewinch(Context & context) {
context.al = 40;
context.ah = 1;
checkinside(context);
@@ -14400,7 +14400,7 @@ nowinch:
return;
}
-static void entercode(Context & context) {
+void entercode(Context & context) {
context.data.word(282) = context.ax;
context.data.word(284) = context.cx;
getridofreels(context);
@@ -14472,13 +14472,13 @@ numberright:
return;
}
-static void loadkeypad(Context & context) {
+void loadkeypad(Context & context) {
context.dx = 1948;
loadintotemp(context);
return;
}
-static void quitkey(Context & context) {
+void quitkey(Context & context) {
context._cmp(context.data.byte(99), 222);
if (context.flags.z()) goto alreadyqk;
context.data.byte(99) = 222;
@@ -14497,7 +14497,7 @@ doqk:
return;
}
-static void addtopresslist(Context & context) {
+void addtopresslist(Context & context) {
context._cmp(context.data.word(278), 5);
if (context.flags.z()) goto nomorekeys;
context.al = context.data.byte(277);
@@ -14515,73 +14515,73 @@ nomorekeys:
return;
}
-static void buttonone(Context & context) {
+void buttonone(Context & context) {
context.cl = 1;
buttonpress(context);
return;
}
-static void buttontwo(Context & context) {
+void buttontwo(Context & context) {
context.cl = 2;
buttonpress(context);
return;
}
-static void buttonthree(Context & context) {
+void buttonthree(Context & context) {
context.cl = 3;
buttonpress(context);
return;
}
-static void buttonfour(Context & context) {
+void buttonfour(Context & context) {
context.cl = 4;
buttonpress(context);
return;
}
-static void buttonfive(Context & context) {
+void buttonfive(Context & context) {
context.cl = 5;
buttonpress(context);
return;
}
-static void buttonsix(Context & context) {
+void buttonsix(Context & context) {
context.cl = 6;
buttonpress(context);
return;
}
-static void buttonseven(Context & context) {
+void buttonseven(Context & context) {
context.cl = 7;
buttonpress(context);
return;
}
-static void buttoneight(Context & context) {
+void buttoneight(Context & context) {
context.cl = 8;
buttonpress(context);
return;
}
-static void buttonnine(Context & context) {
+void buttonnine(Context & context) {
context.cl = 9;
buttonpress(context);
return;
}
-static void buttonnought(Context & context) {
+void buttonnought(Context & context) {
context.cl = 10;
buttonpress(context);
return;
}
-static void buttonenter(Context & context) {
+void buttonenter(Context & context) {
context.cl = 11;
buttonpress(context);
return;
}
-static void buttonpress(Context & context) {
+void buttonpress(Context & context) {
context.ch = context.cl;
context._add(context.ch, 100);
context._cmp(context.data.byte(99), context.ch);
@@ -14613,7 +14613,7 @@ nonoise:
return;
}
-static void showouterpad(Context & context) {
+void showouterpad(Context & context) {
context.di = 36+112-3;
context.bx = 72-4;
context.ds = context.data.word(456);
@@ -14629,7 +14629,7 @@ static void showouterpad(Context & context) {
return;
}
-static void showkeypad(Context & context) {
+void showkeypad(Context & context) {
context.al = 22;
context.di = 36+112+9;
context.bx = 72+5;
@@ -14698,7 +14698,7 @@ notenter:
return;
}
-static void singlekey(Context & context) {
+void singlekey(Context & context) {
context._cmp(context.data.byte(280), context.al);
if (!context.flags.z()) goto gotkey;
context._add(context.al, 11);
@@ -14713,7 +14713,7 @@ gotkey:
return;
}
-static void dumpkeypad(Context & context) {
+void dumpkeypad(Context & context) {
context.di = 36+112-3;
context.bx = 72-4;
context.cl = 120;
@@ -14722,7 +14722,7 @@ static void dumpkeypad(Context & context) {
return;
}
-static void usemenu(Context & context) {
+void usemenu(Context & context) {
getridofreels(context);
loadmenu(context);
createpanel(context);
@@ -14771,7 +14771,7 @@ menulist:
return;
}
-static void dumpmenu(Context & context) {
+void dumpmenu(Context & context) {
context.di = 80+40;
context.bx = 60;
context.cl = 48;
@@ -14780,7 +14780,7 @@ static void dumpmenu(Context & context) {
return;
}
-static void getundermenu(Context & context) {
+void getundermenu(Context & context) {
context.di = 80+40;
context.bx = 60;
context.cl = 48;
@@ -14791,7 +14791,7 @@ static void getundermenu(Context & context) {
return;
}
-static void putundermenu(Context & context) {
+void putundermenu(Context & context) {
context.di = 80+40;
context.bx = 60;
context.cl = 48;
@@ -14802,7 +14802,7 @@ static void putundermenu(Context & context) {
return;
}
-static void showoutermenu(Context & context) {
+void showoutermenu(Context & context) {
context.al = 40;
context.ah = 0;
context.di = 80+40-34;
@@ -14830,7 +14830,7 @@ static void showoutermenu(Context & context) {
return;
}
-static void showmenu(Context & context) {
+void showmenu(Context & context) {
context._add(context.data.byte(289), 1);
context._cmp(context.data.byte(289), 37*2);
if (!context.flags.z()) goto menuframeok;
@@ -14846,7 +14846,7 @@ menuframeok:
return;
}
-static void loadmenu(Context & context) {
+void loadmenu(Context & context) {
context.dx = 1832;
loadintotemp(context);
context.dx = 1987;
@@ -14854,7 +14854,7 @@ static void loadmenu(Context & context) {
return;
}
-static void viewfolder(Context & context) {
+void viewfolder(Context & context) {
context.data.byte(130) = 1;
getridofall(context);
loadfolder(context);
@@ -14884,7 +14884,7 @@ folderloop:
return;
}
-static void nextfolder(Context & context) {
+void nextfolder(Context & context) {
context._cmp(context.data.byte(287), 12);
if (!context.flags.z()) goto cannextf;
blank(context);
@@ -14915,7 +14915,7 @@ donextf:
return;
}
-static void folderhints(Context & context) {
+void folderhints(Context & context) {
context._cmp(context.data.byte(287), 5);
if (!context.flags.z()) goto notaideadd;
context._cmp(context.data.byte(43), 1);
@@ -14962,7 +14962,7 @@ notaristoadd:
return;
}
-static void lastfolder(Context & context) {
+void lastfolder(Context & context) {
context._cmp(context.data.byte(287), 0);
if (!context.flags.z()) goto canlastf;
blank(context);
@@ -14994,7 +14994,7 @@ dolastf:
return;
}
-static void loadfolder(Context & context) {
+void loadfolder(Context & context) {
context.dx = 2299;
loadintotemp(context);
context.dx = 2312;
@@ -15008,7 +15008,7 @@ static void loadfolder(Context & context) {
return;
}
-static void showfolder(Context & context) {
+void showfolder(Context & context) {
context.data.byte(99) = 255;
context._cmp(context.data.byte(287), 0);
if (context.flags.z()) goto closedfolder;
@@ -15069,7 +15069,7 @@ closedfolder:
return;
}
-static void folderexit(Context & context) {
+void folderexit(Context & context) {
context.ds = context.data.word(458);
context.di = 296;
context.bx = 178;
@@ -15079,7 +15079,7 @@ static void folderexit(Context & context) {
return;
}
-static void showleftpage(Context & context) {
+void showleftpage(Context & context) {
context.ds = context.data.word(458);
context.di = 0;
context.bx = 12;
@@ -15160,7 +15160,7 @@ flipfolderline:
return;
}
-static void showrightpage(Context & context) {
+void showrightpage(Context & context) {
context.ds = context.data.word(458);
context.di = 143;
context.bx = 12;
@@ -15214,7 +15214,7 @@ contrightpage:
return;
}
-static void entersymbol(Context & context) {
+void entersymbol(Context & context) {
context.data.byte(130) = 1;
getridofreels(context);
context.dx = 2338;
@@ -15280,7 +15280,7 @@ symbolwrong:
return;
}
-static void quitsymbol(Context & context) {
+void quitsymbol(Context & context) {
context._cmp(context.data.byte(290), 24);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(293), 24);
@@ -15303,7 +15303,7 @@ doqs:
return;
}
-static void settopleft(Context & context) {
+void settopleft(Context & context) {
context._cmp(context.data.byte(292), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(99), 210);
@@ -15319,7 +15319,7 @@ notopleft:
return;
}
-static void settopright(Context & context) {
+void settopright(Context & context) {
context._cmp(context.data.byte(292), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(99), 211);
@@ -15335,7 +15335,7 @@ notopright:
return;
}
-static void setbotleft(Context & context) {
+void setbotleft(Context & context) {
context._cmp(context.data.byte(295), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(99), 212);
@@ -15351,7 +15351,7 @@ nobotleft:
return;
}
-static void setbotright(Context & context) {
+void setbotright(Context & context) {
context._cmp(context.data.byte(295), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(99), 213);
@@ -15367,7 +15367,7 @@ nobotright:
return;
}
-static void dumpsymbol(Context & context) {
+void dumpsymbol(Context & context) {
context.data.byte(108) = 0;
context.di = 64;
context.bx = 56+20;
@@ -15377,7 +15377,7 @@ static void dumpsymbol(Context & context) {
return;
}
-static void showsymbol(Context & context) {
+void showsymbol(Context & context) {
context.al = 12;
context.ah = 0;
context.di = 64;
@@ -15450,7 +15450,7 @@ static void showsymbol(Context & context) {
return;
}
-static void nextsymbol(Context & context) {
+void nextsymbol(Context & context) {
context._add(context.al, 1);
context._cmp(context.al, 6);
if (context.flags.z()) goto topwrap;
@@ -15465,7 +15465,7 @@ botwrap:
return;
}
-static void updatesymboltop(Context & context) {
+void updatesymboltop(Context & context) {
context._cmp(context.data.byte(292), 0);
if (context.flags.z()) goto topfinished;
context._cmp(context.data.byte(292), -1);
@@ -15502,7 +15502,7 @@ topfinished:
return;
}
-static void updatesymbolbot(Context & context) {
+void updatesymbolbot(Context & context) {
context._cmp(context.data.byte(295), 0);
if (context.flags.z()) goto botfinished;
context._cmp(context.data.byte(295), -1);
@@ -15539,7 +15539,7 @@ botfinished:
return;
}
-static void dumpsymbox(Context & context) {
+void dumpsymbox(Context & context) {
context._cmp(context.data.word(301), -1);
if (context.flags.z()) goto nodumpsym;
context.di = context.data.word(301);
@@ -15552,7 +15552,7 @@ nodumpsym:
return;
}
-static void usediary(Context & context) {
+void usediary(Context & context) {
getridofreels(context);
context.dx = 2039;
loadintotemp(context);
@@ -15595,7 +15595,7 @@ diarylist:
return;
}
-static void showdiary(Context & context) {
+void showdiary(Context & context) {
context.al = 1;
context.ah = 0;
context.di = 68+24;
@@ -15611,7 +15611,7 @@ static void showdiary(Context & context) {
return;
}
-static void showdiarykeys(Context & context) {
+void showdiarykeys(Context & context) {
context._cmp(context.data.byte(281), 0);
if (context.flags.z()) goto nokeyatall;
context._sub(context.data.byte(281), 1);
@@ -15654,7 +15654,7 @@ nokeyatall:
return;
}
-static void dumpdiarykeys(Context & context) {
+void dumpdiarykeys(Context & context) {
context._cmp(context.data.byte(281), 1);
if (!context.flags.z()) goto notdumpdiary;
context._cmp(context.data.byte(42), 1);
@@ -15707,7 +15707,7 @@ notdumpdiary:
return;
}
-static void diarykeyp(Context & context) {
+void diarykeyp(Context & context) {
context._cmp(context.data.byte(99), 214);
if (context.flags.z()) goto alreadykeyp;
context.data.byte(99) = 214;
@@ -15733,7 +15733,7 @@ notkeyp:
return;
}
-static void diarykeyn(Context & context) {
+void diarykeyn(Context & context) {
context._cmp(context.data.byte(99), 213);
if (context.flags.z()) goto alreadykeyn;
context.data.byte(99) = 213;
@@ -15759,7 +15759,7 @@ notkeyn:
return;
}
-static void showdiarypage(Context & context) {
+void showdiarypage(Context & context) {
context.al = 0;
context.ah = 0;
context.di = 68+24;
@@ -15792,7 +15792,7 @@ static void showdiarypage(Context & context) {
return;
}
-static void findtext1(Context & context) {
+void findtext1(Context & context) {
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
@@ -15803,7 +15803,7 @@ static void findtext1(Context & context) {
return;
}
-static void zoomonoff(Context & context) {
+void zoomonoff(Context & context) {
context._cmp(context.data.word(19), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(233), 2);
@@ -15840,7 +15840,7 @@ dozoomonoff:
return;
}
-static void saveload(Context & context) {
+void saveload(Context & context) {
context._cmp(context.data.word(19), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(233), 2);
@@ -15861,7 +15861,7 @@ noops:
return;
}
-static void dosaveload(Context & context) {
+void dosaveload(Context & context) {
context.data.byte(230) = 0;
context.data.word(77) = 70;
context.data.word(79) = 182-8;
@@ -15910,7 +15910,7 @@ justret:
return;
}
-static void getbackfromops(Context & context) {
+void getbackfromops(Context & context) {
context._cmp(context.data.byte(55), 2);
if (context.flags.z()) goto opsblock1;
getback1(context);
@@ -15920,7 +15920,7 @@ opsblock1:
return;
}
-static void showmainops(Context & context) {
+void showmainops(Context & context) {
context.ds = context.data.word(456);
context.di = 60+10;
context.bx = 52+10;
@@ -15942,7 +15942,7 @@ static void showmainops(Context & context) {
return;
}
-static void showdiscops(Context & context) {
+void showdiscops(Context & context) {
context.ds = context.data.word(456);
context.di = 60+128+4;
context.bx = 52+12;
@@ -15970,13 +15970,13 @@ static void showdiscops(Context & context) {
return;
}
-static void loadsavebox(Context & context) {
+void loadsavebox(Context & context) {
context.dx = 1961;
loadintotemp(context);
return;
}
-static void loadgame(Context & context) {
+void loadgame(Context & context) {
context._cmp(context.data.byte(99), 246);
if (context.flags.z()) goto alreadyload;
context.data.byte(99) = 246;
@@ -16035,7 +16035,7 @@ quitloaded:
return;
}
-static void getbacktoops(Context & context) {
+void getbacktoops(Context & context) {
context._cmp(context.data.byte(99), 201);
if (context.flags.z()) goto alreadygetops;
context.data.byte(99) = 201;
@@ -16055,7 +16055,7 @@ dogetbackops:
return;
}
-static void discops(Context & context) {
+void discops(Context & context) {
context._cmp(context.data.byte(99), 249);
if (context.flags.z()) goto alreadydiscops;
context.data.byte(99) = 249;
@@ -16091,7 +16091,7 @@ discopsloop:
return;
}
-static void savegame(Context & context) {
+void savegame(Context & context) {
context._cmp(context.data.byte(55), 2);
if (!context.flags.z()) goto cansaveok;
blank(context);
@@ -16134,7 +16134,7 @@ saveops:
return;
}
-static void actualsave(Context & context) {
+void actualsave(Context & context) {
context._cmp(context.data.byte(99), 222);
if (context.flags.z()) goto alreadyactsave;
context.data.byte(99) = 222;
@@ -16194,7 +16194,7 @@ noactsave:
return;
}
-static void actualload(Context & context) {
+void actualload(Context & context) {
context._cmp(context.data.byte(99), 221);
if (context.flags.z()) goto alreadyactload;
context.data.byte(99) = 221;
@@ -16223,7 +16223,7 @@ notactload:
return;
}
-static void selectslot2(Context & context) {
+void selectslot2(Context & context) {
context._cmp(context.data.word(200), 0);
if (context.flags.z()) goto noselslot2;
context.data.byte(339) = 2;
@@ -16232,7 +16232,7 @@ noselslot2:
return;
}
-static void checkinput(Context & context) {
+void checkinput(Context & context) {
context._cmp(context.data.byte(339), 3);
if (context.flags.z()) goto nokeypress;
readkey(context);
@@ -16275,7 +16275,7 @@ afterkey:
return;
}
-static void getnamepos(Context & context) {
+void getnamepos(Context & context) {
context.al = context.data.byte(340);
context.ah = 0;
context.cx = 17;
@@ -16290,7 +16290,7 @@ static void getnamepos(Context & context) {
return;
}
-static void showopbox(Context & context) {
+void showopbox(Context & context) {
context.ds = context.data.word(456);
context.di = 60;
context.bx = 52;
@@ -16306,7 +16306,7 @@ static void showopbox(Context & context) {
return;
}
-static void showloadops(Context & context) {
+void showloadops(Context & context) {
context.ds = context.data.word(456);
context.di = 60+128+4;
context.bx = 52+12;
@@ -16327,7 +16327,7 @@ static void showloadops(Context & context) {
return;
}
-static void showsaveops(Context & context) {
+void showsaveops(Context & context) {
context.ds = context.data.word(456);
context.di = 60+128+4;
context.bx = 52+12;
@@ -16348,7 +16348,7 @@ static void showsaveops(Context & context) {
return;
}
-static void selectslot(Context & context) {
+void selectslot(Context & context) {
context._cmp(context.data.byte(99), 244);
if (context.flags.z()) goto alreadysel;
context.data.byte(99) = 244;
@@ -16396,7 +16396,7 @@ noselslot:
return;
}
-static void showslots(Context & context) {
+void showslots(Context & context) {
context.di = 60+7;
context.bx = 52+8;
context.al = 2;
@@ -16427,7 +16427,7 @@ nomatchslot:
return;
}
-static void shownames(Context & context) {
+void shownames(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context.si = 8350+1;
@@ -16493,7 +16493,7 @@ afterprintname:
return;
}
-static void namestoold(Context & context) {
+void namestoold(Context & context) {
context.ds = context.cs;
context.si = 8350;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);
@@ -16503,7 +16503,7 @@ static void namestoold(Context & context) {
return;
}
-static void oldtonames(Context & context) {
+void oldtonames(Context & context) {
context.es = context.cs;
context.di = 8350;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);
@@ -16513,7 +16513,7 @@ static void oldtonames(Context & context) {
return;
}
-static void makeheader(Context & context) {
+void makeheader(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context.di = 5912;
@@ -16532,7 +16532,7 @@ static void makeheader(Context & context) {
return;
}
-static void storeit(Context & context) {
+void storeit(Context & context) {
context._cmp(context.ax, 0);
if (!context.flags.z()) goto isntblank;
context._add(context.ax, 1);
@@ -16541,7 +16541,7 @@ isntblank:
return;
}
-static void findlen(Context & context) {
+void findlen(Context & context) {
context._sub(context.bx, 1);
context._add(context.bx, context.ax);
nextone:
@@ -16555,7 +16555,7 @@ foundlen:
return;
}
-static void decide(Context & context) {
+void decide(Context & context) {
setmode(context);
loadpalfromiff(context);
clearpalette(context);
@@ -16592,7 +16592,7 @@ hasloadedroom:
return;
}
-static void showdecisions(Context & context) {
+void showdecisions(Context & context) {
createpanel2(context);
showopbox(context);
context.ds = context.data.word(456);
@@ -16605,7 +16605,7 @@ static void showdecisions(Context & context) {
return;
}
-static void newgame(Context & context) {
+void newgame(Context & context) {
context._cmp(context.data.byte(99), 251);
if (context.flags.z()) goto alreadynewgame;
context.data.byte(99) = 251;
@@ -16620,7 +16620,7 @@ nonewgame:
return;
}
-static void doload(Context & context) {
+void doload(Context & context) {
context.data.byte(339) = 1;
showopbox(context);
showloadops(context);
@@ -16665,7 +16665,7 @@ quitloaded:
return;
}
-static void loadold(Context & context) {
+void loadold(Context & context) {
context._cmp(context.data.byte(99), 252);
if (context.flags.z()) goto alreadyloadold;
context.data.byte(99) = 252;
@@ -16685,7 +16685,7 @@ noloadold:
return;
}
-static void createname(Context & context) {
+void createname(Context & context) {
context.push(context.ax);
context.di = 4932;
context.ds.byte(context.di+0) = context.dl;
@@ -16726,7 +16726,7 @@ tensc:
return;
}
-static void trysoundalloc(Context & context) {
+void trysoundalloc(Context & context) {
context._cmp(context.data.byte(357), 1);
if (context.flags.z()) goto gotsoundbuff;
context._add(context.data.byte(356), 1);
@@ -16758,7 +16758,7 @@ gotsoundbuff:
return;
}
-static void playchannel0(Context & context) {
+void playchannel0(Context & context) {
context._cmp(context.data.byte(377), 255);
if (context.flags.z()) goto dontbother4;
context.push(context.es);
@@ -16806,7 +16806,7 @@ dontbother4:
return;
}
-static void playchannel1(Context & context) {
+void playchannel1(Context & context) {
context._cmp(context.data.byte(377), 255);
if (context.flags.z()) goto dontbother5;
context._cmp(context.data.byte(514), 7);
@@ -16846,7 +16846,7 @@ dontbother5:
return;
}
-static void makenextblock(Context & context) {
+void makenextblock(Context & context) {
volumeadjust(context);
loopchannel0(context);
context._cmp(context.data.word(519), 0);
@@ -16883,7 +16883,7 @@ notch0only:
return;
}
-static void volumeadjust(Context & context) {
+void volumeadjust(Context & context) {
context.al = context.data.byte(387);
context._cmp(context.al, 0);
if (context.flags.z()) goto volok;
@@ -16902,7 +16902,7 @@ volok:
return;
}
-static void loopchannel0(Context & context) {
+void loopchannel0(Context & context) {
context._cmp(context.data.word(504), 0);
if (!context.flags.z()) goto notloop;
context._cmp(context.data.byte(507), 0);
@@ -16923,20 +16923,20 @@ notloop:
return;
}
-static void cancelch0(Context & context) {
+void cancelch0(Context & context) {
context.data.byte(507) = 0;
context.data.word(504) = 0;
context.data.byte(506) = 255;
return;
}
-static void cancelch1(Context & context) {
+void cancelch1(Context & context) {
context.data.word(519) = 0;
context.data.byte(514) = 255;
return;
}
-static void channel0tran(Context & context) {
+void channel0tran(Context & context) {
context._cmp(context.data.byte(385), 0);
if (!context.flags.z()) goto lowvolumetran;
context.cx = 1024;
@@ -16958,7 +16958,7 @@ volloop:
return;
}
-static void domix(Context & context) {
+void domix(Context & context) {
context._cmp(context.data.byte(385), 0);
if (!context.flags.z()) goto lowvolumemix;
slow:
@@ -17050,7 +17050,7 @@ doneit:
return;
}
-static void entrytexts(Context & context) {
+void entrytexts(Context & context) {
context._cmp(context.data.byte(8), 21);
if (!context.flags.z()) goto notloc15;
context.al = 28;
@@ -17124,7 +17124,7 @@ noteden2:
return;
}
-static void entryanims(Context & context) {
+void entryanims(Context & context) {
context.data.word(21) = -1;
context.data.byte(31) = -1;
context._cmp(context.data.byte(8), 33);
@@ -17241,7 +17241,7 @@ notedensagain:
return;
}
-static void initialinv(Context & context) {
+void initialinv(Context & context) {
context._cmp(context.data.byte(183), 24);
if (context.flags.z()) goto isedens;
return;
@@ -17280,7 +17280,7 @@ isedens:
return;
}
-static void pickupob(Context & context) {
+void pickupob(Context & context) {
context.data.byte(106) = context.ah;
context.data.byte(101) = 2;
context.data.byte(88) = context.al;
@@ -17290,11 +17290,11 @@ static void pickupob(Context & context) {
return;
}
-static void checkforemm(Context & context) {
+void checkforemm(Context & context) {
return;
}
-static void checkbasemem(Context & context) {
+void checkbasemem(Context & context) {
context.bx = context.data.word(532);
context._cmp(context.bx, 0x9360);
if (!context.flags.c()) goto enoughmem;
@@ -17304,7 +17304,7 @@ enoughmem:
return;
}
-static void allocatebuffers(Context & context) {
+void allocatebuffers(Context & context) {
context.bx = 0+2080+30000+(16*114)+((114+2)*2)+18000/16;
allocatemem(context);
context.data.word(396) = context.ax;
@@ -17338,7 +17338,7 @@ static void allocatebuffers(Context & context) {
return;
}
-static void clearbuffers(Context & context) {
+void clearbuffers(Context & context) {
context.es = context.data.word(410);
context.cx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0/2;
context.ax = 0;
@@ -17365,7 +17365,7 @@ static void clearbuffers(Context & context) {
return;
}
-static void clearchanges(Context & context) {
+void clearchanges(Context & context) {
context.es = context.data.word(410);
context.cx = 250*2;
context.ax = 0x0ffff;
@@ -17406,7 +17406,7 @@ static void clearchanges(Context & context) {
return;
}
-static void clearbeforeload(Context & context) {
+void clearbeforeload(Context & context) {
context._cmp(context.data.byte(73), 1);
if (!context.flags.z()) goto noclear;
clearreels(context);
@@ -17416,7 +17416,7 @@ noclear:
return;
}
-static void clearreels(Context & context) {
+void clearreels(Context & context) {
context.es = context.data.word(428);
deallocatemem(context);
context.es = context.data.word(430);
@@ -17426,7 +17426,7 @@ static void clearreels(Context & context) {
return;
}
-static void clearrest(Context & context) {
+void clearrest(Context & context) {
context.es = context.data.word(416);
context.cx = 66*60/2;
context.ax = 0;
@@ -17453,7 +17453,7 @@ static void clearrest(Context & context) {
return;
}
-static void parseblaster(Context & context) {
+void parseblaster(Context & context) {
lookattail:
context.al = context.ds.byte(context.bx);
context._cmp(context.al, 0);
@@ -17519,7 +17519,7 @@ endtail:
return;
}
-static void startup(Context & context) {
+void startup(Context & context) {
context.data.byte(141) = 0;
context.data.byte(104) = 0;
createpanel(context);
@@ -17535,7 +17535,7 @@ static void startup(Context & context) {
return;
}
-static void startup1(Context & context) {
+void startup1(Context & context) {
clearpalette(context);
context.data.byte(60) = 0;
context.data.byte(141) = '0';
@@ -17555,7 +17555,7 @@ static void startup1(Context & context) {
return;
}
-static void screenupdate(Context & context) {
+void screenupdate(Context & context) {
newplace(context);
mainscreen(context);
animpointer(context);
@@ -17603,7 +17603,7 @@ finishearly:
return;
}
-static void watchreel(Context & context) {
+void watchreel(Context & context) {
context._cmp(context.data.word(21), -1);
if (context.flags.z()) goto notplayingreel;
context.al = context.data.byte(474);
@@ -17678,7 +17678,7 @@ notreleasehold:
return;
}
-static void checkforshake(Context & context) {
+void checkforshake(Context & context) {
context._cmp(context.data.byte(183), 26);
if (!context.flags.z()) goto notstartshake;
context._cmp(context.ax, 104);
@@ -17688,7 +17688,7 @@ notstartshake:
return;
}
-static void watchcount(Context & context) {
+void watchcount(Context & context) {
context._cmp(context.data.byte(2), 0);
if (context.flags.z()) goto nowatchworn;
context._add(context.data.byte(145), 1);
@@ -17726,7 +17726,7 @@ finishwatch:
return;
}
-static void showtime(Context & context) {
+void showtime(Context & context) {
context._cmp(context.data.byte(2), 0);
if (context.flags.z()) goto nowatch;
context.al = context.data.byte(4);
@@ -17792,7 +17792,7 @@ nowatch:
return;
}
-static void dumpwatch(Context & context) {
+void dumpwatch(Context & context) {
context._cmp(context.data.byte(265), 1);
if (!context.flags.z()) goto nodumpwatch;
context.di = 256;
@@ -17805,7 +17805,7 @@ nodumpwatch:
return;
}
-static void showbyte(Context & context) {
+void showbyte(Context & context) {
context.dl = context.al;
context._shr(context.dl, 1);
context._shr(context.dl, 1);
@@ -17821,7 +17821,7 @@ static void showbyte(Context & context) {
return;
}
-static void onedigit(Context & context) {
+void onedigit(Context & context) {
context._cmp(context.dl, 10);
if (!context.flags.c()) goto morethan10;
context._add(context.dl, '0');
@@ -17832,7 +17832,7 @@ morethan10:
return;
}
-static void twodigitnum(Context & context) {
+void twodigitnum(Context & context) {
context.ah = context.cl;
context._sub(context.ah, 1);
numloop1:
@@ -17844,7 +17844,7 @@ numloop1:
return;
}
-static void showword(Context & context) {
+void showword(Context & context) {
context.ch = 0;
context.bx = 10000;
context.cl = 47;
@@ -17889,7 +17889,7 @@ word4:
return;
}
-static void convnum(Context & context) {
+void convnum(Context & context) {
context._cmp(context.ch, 0);
if (!context.flags.z()) goto noconvnum;
context._cmp(context.cl, '0');
@@ -17902,7 +17902,7 @@ noconvnum:
return;
}
-static void walkandexamine(Context & context) {
+void walkandexamine(Context & context) {
finishedwalking(context);
if (!context.flags.z()) goto noobselect;
context.al = context.data.byte(306);
@@ -17973,7 +17973,7 @@ toofaraway:
return;
}
-static void mainscreen(Context & context) {
+void mainscreen(Context & context) {
context.data.byte(236) = 0;
context.bx = 4949;
context._cmp(context.data.byte(2), 1);
@@ -17988,7 +17988,7 @@ finishmain:
return;
}
-static void madmanrun(Context & context) {
+void madmanrun(Context & context) {
context._cmp(context.data.byte(8), 14);
if (!context.flags.z()) { identifyob(context); return; };
context._cmp(context.data.byte(147), 22);
@@ -18013,7 +18013,7 @@ norun:
return;
}
-static void checkcoords(Context & context) {
+void checkcoords(Context & context) {
loop048:
context.ax = context.ds.word(context.bx);
context._cmp(context.ax, 0x0ffff);
@@ -18043,7 +18043,7 @@ nonefound:
return;
}
-static void identifyob(Context & context) {
+void identifyob(Context & context) {
context._cmp(context.data.word(19), 0);
if (!context.flags.z()) { blank(context); return; };
context.ax = context.data.word(196);
@@ -18098,7 +18098,7 @@ nothingund:
return;
}
-static void checkifperson(Context & context) {
+void checkifperson(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
context.cx = 12;
@@ -18154,7 +18154,7 @@ notareelid:
return;
}
-static void checkifset(Context & context) {
+void checkifset(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(127*5);
context.cx = 127;
@@ -18187,7 +18187,7 @@ notasetid:
return;
}
-static void checkifex(Context & context) {
+void checkifex(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(99*5);
context.cx = 99;
@@ -18216,7 +18216,7 @@ notanexid:
return;
}
-static void checkiffree(Context & context) {
+void checkiffree(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(79*5);
context.cx = 79;
@@ -18245,7 +18245,7 @@ notafreeid:
return;
}
-static void isitdescribed(Context & context) {
+void isitdescribed(Context & context) {
context.push(context.ax);
context.push(context.cx);
context.push(context.es);
@@ -18268,7 +18268,7 @@ static void isitdescribed(Context & context) {
return;
}
-static void findpathofpoint(Context & context) {
+void findpathofpoint(Context & context) {
context.push(context.ax);
context.bx = 0;
context.es = context.data.word(448);
@@ -18306,7 +18306,7 @@ gotvalidpath:
return;
}
-static void findfirstpath(Context & context) {
+void findfirstpath(Context & context) {
context.push(context.ax);
context.bx = 0;
context.es = context.data.word(448);
@@ -18343,7 +18343,7 @@ gotfirst:
return;
}
-static void turnpathon(Context & context) {
+void turnpathon(Context & context) {
context.push(context.ax);
context.push(context.ax);
context.cl = 255;
@@ -18366,7 +18366,7 @@ nopathon:
return;
}
-static void turnpathoff(Context & context) {
+void turnpathoff(Context & context) {
context.push(context.ax);
context.push(context.ax);
context.cl = 0;
@@ -18389,7 +18389,7 @@ nopathoff:
return;
}
-static void turnanypathon(Context & context) {
+void turnanypathon(Context & context) {
context.push(context.ax);
context.push(context.ax);
context.cl = 255;
@@ -18415,7 +18415,7 @@ static void turnanypathon(Context & context) {
return;
}
-static void turnanypathoff(Context & context) {
+void turnanypathoff(Context & context) {
context.push(context.ax);
context.push(context.ax);
context.cl = 0;
@@ -18441,7 +18441,7 @@ static void turnanypathoff(Context & context) {
return;
}
-static void checkifpathison(Context & context) {
+void checkifpathison(Context & context) {
context.push(context.ax);
getroomspaths(context);
context.ax = context.pop();
@@ -18455,7 +18455,7 @@ static void checkifpathison(Context & context) {
return;
}
-static void afternewroom(Context & context) {
+void afternewroom(Context & context) {
context._cmp(context.data.byte(185), 0);
if (context.flags.z()) goto notnew;
context.data.word(326) = 0;
@@ -18493,7 +18493,7 @@ notnew:
return;
}
-static void atmospheres(Context & context) {
+void atmospheres(Context & context) {
context.cl = context.data.byte(147);
context.ch = context.data.byte(148);
context.bx = 5073;
@@ -18547,7 +18547,7 @@ nomoreatmos:
return;
}
-static void walkintoroom(Context & context) {
+void walkintoroom(Context & context) {
context._cmp(context.data.byte(8), 14);
if (!context.flags.z()) goto notlair;
context._cmp(context.data.byte(147), 22);
@@ -18559,7 +18559,7 @@ notlair:
return;
}
-static void afterintroroom(Context & context) {
+void afterintroroom(Context & context) {
context._cmp(context.data.byte(185), 0);
if (context.flags.z()) goto notnewintro;
clearwork(context);
@@ -18575,7 +18575,7 @@ notnewintro:
return;
}
-static void obname(Context & context) {
+void obname(Context & context) {
context._cmp(context.data.byte(472), 0);
if (context.flags.z()) goto notnewpath;
context.data.byte(472) = 0;
@@ -18685,7 +18685,7 @@ toofaraway:
return;
}
-static void finishedwalking(Context & context) {
+void finishedwalking(Context & context) {
context._cmp(context.data.byte(491), 254);
if (!context.flags.z()) goto iswalking;
context.al = context.data.byte(132);
@@ -18694,7 +18694,7 @@ iswalking:
return;
}
-static void examineobtext(Context & context) {
+void examineobtext(Context & context) {
context.bl = context.data.byte(98);
context.bh = context.data.byte(99);
context.al = 1;
@@ -18702,7 +18702,7 @@ static void examineobtext(Context & context) {
return;
}
-static void commandwithob(Context & context) {
+void commandwithob(Context & context) {
context.push(context.ax);
context.push(context.ax);
context.push(context.bx);
@@ -18755,7 +18755,7 @@ noadd:
return;
}
-static void commandonly(Context & context) {
+void commandonly(Context & context) {
context.push(context.ax);
context.push(context.bx);
context.push(context.cx);
@@ -18790,7 +18790,7 @@ static void commandonly(Context & context) {
return;
}
-static void printmessage(Context & context) {
+void printmessage(Context & context) {
context.push(context.dx);
context.push(context.bx);
context.push(context.di);
@@ -18810,7 +18810,7 @@ static void printmessage(Context & context) {
return;
}
-static void printmessage2(Context & context) {
+void printmessage2(Context & context) {
context.push(context.dx);
context.push(context.bx);
context.push(context.di);
@@ -18838,7 +18838,7 @@ searchmess:
return;
}
-static void blocknametext(Context & context) {
+void blocknametext(Context & context) {
context.bl = context.data.byte(98);
context.bh = context.data.byte(99);
context.al = 0;
@@ -18846,7 +18846,7 @@ static void blocknametext(Context & context) {
return;
}
-static void personnametext(Context & context) {
+void personnametext(Context & context) {
context.bl = context.data.byte(98);
context._and(context.bl, 127);
context.bh = context.data.byte(99);
@@ -18855,7 +18855,7 @@ static void personnametext(Context & context) {
return;
}
-static void walktotext(Context & context) {
+void walktotext(Context & context) {
context.bl = context.data.byte(98);
context.bh = context.data.byte(99);
context.al = 3;
@@ -18863,7 +18863,7 @@ static void walktotext(Context & context) {
return;
}
-static void getflagunderp(Context & context) {
+void getflagunderp(Context & context) {
context.cx = context.data.word(196);
context._sub(context.cx, context.data.word(115));
context.ax = context.data.word(198);
@@ -18875,7 +18875,7 @@ static void getflagunderp(Context & context) {
return;
}
-static void setwalk(Context & context) {
+void setwalk(Context & context) {
context._cmp(context.data.byte(491), 254);
if (!context.flags.z()) goto alreadywalking;
context.al = context.data.byte(473);
@@ -18913,7 +18913,7 @@ holdingreel:
return;
}
-static void autosetwalk(Context & context) {
+void autosetwalk(Context & context) {
context.al = context.data.byte(474);
context._cmp(context.data.byte(476), context.al);
if (!context.flags.z()) goto notsamealready;
@@ -18964,7 +18964,7 @@ normalline:
return;
}
-static void checkdest(Context & context) {
+void checkdest(Context & context) {
context.push(context.bx);
context._add(context.bx, 12*8);
context.ah = context.data.byte(474);
@@ -19011,7 +19011,7 @@ nextcheck2:
return;
}
-static void bresenhams(Context & context) {
+void bresenhams(Context & context) {
workoutframes(context);
context.dx = context.ds;
context.es = context.dx;
@@ -19124,7 +19124,7 @@ lineexit:
return;
}
-static void workoutframes(Context & context) {
+void workoutframes(Context & context) {
context.bx = context.data.word(478);
context._add(context.bx, 32);
context.ax = context.data.word(482);
@@ -19202,7 +19202,7 @@ success:
return;
}
-static void getroomspaths(Context & context) {
+void getroomspaths(Context & context) {
context.al = context.data.byte(184);
context.ah = 0;
context.cx = 144;
@@ -19213,7 +19213,7 @@ static void getroomspaths(Context & context) {
return;
}
-static void copyname(Context & context) {
+void copyname(Context & context) {
context.push(context.di);
findobname(context);
context.di = context.pop();
@@ -19238,7 +19238,7 @@ finishmakename:
return;
}
-static void findobname(Context & context) {
+void findobname(Context & context) {
context.push(context.ax);
context.ah = 0;
context._add(context.ax, context.ax);
@@ -19296,7 +19296,7 @@ notsetname:
return;
}
-static void showicon(Context & context) {
+void showicon(Context & context) {
context._cmp(context.data.byte(183), 50);
if (!context.flags.c()) goto isdream1;
showpanel(context);
@@ -19346,7 +19346,7 @@ isdream1:
return;
}
-static void middlepanel(Context & context) {
+void middlepanel(Context & context) {
context.ds = context.data.word(462);
context.di = 72+47+20;
context.bx = 0;
@@ -19374,7 +19374,7 @@ static void middlepanel(Context & context) {
return;
}
-static void showman(Context & context) {
+void showman(Context & context) {
context.ds = context.data.word(406);
context.di = 0;
context.bx = 0;
@@ -19399,7 +19399,7 @@ notverycool:
return;
}
-static void showpanel(Context & context) {
+void showpanel(Context & context) {
context.ds = context.data.word(406);
context.di = 72;
context.bx = 0;
@@ -19415,7 +19415,7 @@ static void showpanel(Context & context) {
return;
}
-static void roomname(Context & context) {
+void roomname(Context & context) {
context.di = 88;
context.bx = 18;
context.al = 53;
@@ -19449,19 +19449,19 @@ gotpl:
return;
}
-static void usecharset1(Context & context) {
+void usecharset1(Context & context) {
context.ax = context.data.word(402);
context.data.word(266) = context.ax;
return;
}
-static void usetempcharset(Context & context) {
+void usetempcharset(Context & context) {
context.ax = context.data.word(404);
context.data.word(266) = context.ax;
return;
}
-static void showexit(Context & context) {
+void showexit(Context & context) {
context.ds = context.data.word(406);
context.di = 274;
context.bx = 154;
@@ -19471,7 +19471,7 @@ static void showexit(Context & context) {
return;
}
-static void panelicons1(Context & context) {
+void panelicons1(Context & context) {
context.di = 0;
context._cmp(context.data.byte(2), 1);
if (context.flags.z()) goto watchison;
@@ -19500,7 +19500,7 @@ zoomisoff:
return;
}
-static void showwatch(Context & context) {
+void showwatch(Context & context) {
context._cmp(context.data.byte(2), 0);
if (context.flags.z()) goto nowristwatch;
context.ds = context.data.word(406);
@@ -19514,7 +19514,7 @@ nowristwatch:
return;
}
-static void zoomicon(Context & context) {
+void zoomicon(Context & context) {
context._cmp(context.data.byte(7), 0);
if (context.flags.z()) goto nozoom1;
context.ds = context.data.word(406);
@@ -19527,7 +19527,7 @@ nozoom1:
return;
}
-static void showblink(Context & context) {
+void showblink(Context & context) {
context._cmp(context.data.byte(130), 1);
if (context.flags.z()) goto finblink1;
context._add(context.data.byte(471), 1);
@@ -19561,7 +19561,7 @@ eyesshut:
return;
}
-static void dumpblink(Context & context) {
+void dumpblink(Context & context) {
context._cmp(context.data.byte(3), 0);
if (!context.flags.z()) goto nodumpeye;
context._cmp(context.data.byte(471), 0);
@@ -19580,7 +19580,7 @@ nodumpeye:
return;
}
-static void worktoscreenm(Context & context) {
+void worktoscreenm(Context & context) {
animpointer(context);
readmouse(context);
showpointer(context);
@@ -19590,7 +19590,7 @@ static void worktoscreenm(Context & context) {
return;
}
-static void blank(Context & context) {
+void blank(Context & context) {
context._cmp(context.data.byte(99), 199);
if (context.flags.z()) goto alreadyblnk;
context.data.byte(99) = 199;
@@ -19600,14 +19600,14 @@ alreadyblnk:
return;
}
-static void allpointer(Context & context) {
+void allpointer(Context & context) {
readmouse(context);
showpointer(context);
dumppointer(context);
return;
}
-static void hangonp(Context & context) {
+void hangonp(Context & context) {
context.push(context.cx);
context._add(context.cx, context.cx);
context.ax = context.pop();
@@ -19651,7 +19651,7 @@ getoutofit:
return;
}
-static void hangonw(Context & context) {
+void hangonw(Context & context) {
hangloopw:
context.push(context.cx);
delpointer(context);
@@ -19665,7 +19665,7 @@ hangloopw:
return;
}
-static void hangoncurs(Context & context) {
+void hangoncurs(Context & context) {
monloop1:
context.push(context.cx);
printcurs(context);
@@ -19676,7 +19676,7 @@ monloop1:
return;
}
-static void getunderzoom(Context & context) {
+void getunderzoom(Context & context) {
context.di = 8+5;
context.bx = 132+4;
context.ds = context.data.word(410);
@@ -19687,7 +19687,7 @@ static void getunderzoom(Context & context) {
return;
}
-static void dumpzoom(Context & context) {
+void dumpzoom(Context & context) {
context._cmp(context.data.byte(7), 1);
if (!context.flags.z()) goto notzoomon;
context.di = 8+5;
@@ -19699,7 +19699,7 @@ notzoomon:
return;
}
-static void putunderzoom(Context & context) {
+void putunderzoom(Context & context) {
context.di = 8+5;
context.bx = 132+4;
context.ds = context.data.word(410);
@@ -19710,7 +19710,7 @@ static void putunderzoom(Context & context) {
return;
}
-static void crosshair(Context & context) {
+void crosshair(Context & context) {
context._cmp(context.data.byte(99), 3);
if (context.flags.z()) goto nocross;
context._cmp(context.data.byte(99), 10);
@@ -19734,7 +19734,7 @@ nocross:
return;
}
-static void showpointer(Context & context) {
+void showpointer(Context & context) {
showblink(context);
context.di = context.data.word(196);
context.data.word(218) = context.di;
@@ -19842,7 +19842,7 @@ notsmally2:
return;
}
-static void delpointer(Context & context) {
+void delpointer(Context & context) {
context.ax = context.data.word(218);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto nevershown;
@@ -19862,7 +19862,7 @@ nevershown:
return;
}
-static void dumppointer(Context & context) {
+void dumppointer(Context & context) {
dumpblink(context);
context.cl = context.data.byte(228);
context.ch = context.data.byte(229);
@@ -19883,7 +19883,7 @@ notboth:
return;
}
-static void undertextline(Context & context) {
+void undertextline(Context & context) {
context.di = context.data.word(77);
context.bx = context.data.word(79);
context._sub(context.bx, 3);
@@ -19895,7 +19895,7 @@ static void undertextline(Context & context) {
return;
}
-static void deltextline(Context & context) {
+void deltextline(Context & context) {
context.di = context.data.word(77);
context.bx = context.data.word(79);
context._sub(context.bx, 3);
@@ -19907,7 +19907,7 @@ static void deltextline(Context & context) {
return;
}
-static void dumptextline(Context & context) {
+void dumptextline(Context & context) {
context._cmp(context.data.byte(108), 1);
if (!context.flags.z()) goto nodumptextline;
context.data.byte(108) = 0;
@@ -19921,7 +19921,7 @@ nodumptextline:
return;
}
-static void animpointer(Context & context) {
+void animpointer(Context & context) {
context._cmp(context.data.byte(233), 2);
if (context.flags.z()) goto combathand;
context._cmp(context.data.byte(233), 3);
@@ -19987,7 +19987,7 @@ notarrow:
return;
}
-static void readmouse(Context & context) {
+void readmouse(Context & context) {
context.ax = context.data.word(200);
context.data.word(210) = context.ax;
context.ax = context.data.word(196);
@@ -20001,7 +20001,7 @@ static void readmouse(Context & context) {
return;
}
-static void readmouse1(Context & context) {
+void readmouse1(Context & context) {
context.ax = context.data.word(196);
context.data.word(212) = context.ax;
context.ax = context.data.word(198);
@@ -20013,7 +20013,7 @@ static void readmouse1(Context & context) {
return;
}
-static void readmouse2(Context & context) {
+void readmouse2(Context & context) {
context.ax = context.data.word(196);
context.data.word(212) = context.ax;
context.ax = context.data.word(198);
@@ -20025,7 +20025,7 @@ static void readmouse2(Context & context) {
return;
}
-static void readmouse3(Context & context) {
+void readmouse3(Context & context) {
context.ax = context.data.word(196);
context.data.word(212) = context.ax;
context.ax = context.data.word(198);
@@ -20037,7 +20037,7 @@ static void readmouse3(Context & context) {
return;
}
-static void readmouse4(Context & context) {
+void readmouse4(Context & context) {
context.ax = context.data.word(200);
context.data.word(210) = context.ax;
context.ax = context.data.word(196);
@@ -20055,7 +20055,7 @@ static void readmouse4(Context & context) {
return;
}
-static void readkey(Context & context) {
+void readkey(Context & context) {
context.bx = context.data.word(394);
context._cmp(context.bx, context.data.word(392));
if (context.flags.z()) goto nokey;
@@ -20072,7 +20072,7 @@ nokey:
return;
}
-static void convertkey(Context & context) {
+void convertkey(Context & context) {
context._and(context.al, 127);
context.ah = 0;
context.di = 5731;
@@ -20081,7 +20081,7 @@ static void convertkey(Context & context) {
return;
}
-static void randomnum1(Context & context) {
+void randomnum1(Context & context) {
context.push(context.ds);
context.push(context.es);
context.push(context.di);
@@ -20096,7 +20096,7 @@ static void randomnum1(Context & context) {
return;
}
-static void randomnum2(Context & context) {
+void randomnum2(Context & context) {
context.push(context.ds);
context.push(context.es);
context.push(context.di);
@@ -20112,7 +20112,7 @@ static void randomnum2(Context & context) {
return;
}
-static void hangon(Context & context) {
+void hangon(Context & context) {
hangonloop:
context.push(context.cx);
vsync(context);
@@ -20121,41 +20121,41 @@ hangonloop:
return;
}
-static void loadtraveltext(Context & context) {
+void loadtraveltext(Context & context) {
context.dx = 2234;
standardload(context);
context.data.word(454) = context.ax;
return;
}
-static void loadintotemp(Context & context) {
+void loadintotemp(Context & context) {
context.ds = context.cs;
standardload(context);
context.data.word(456) = context.ax;
return;
}
-static void loadintotemp2(Context & context) {
+void loadintotemp2(Context & context) {
context.ds = context.cs;
standardload(context);
context.data.word(458) = context.ax;
return;
}
-static void loadintotemp3(Context & context) {
+void loadintotemp3(Context & context) {
context.ds = context.cs;
standardload(context);
context.data.word(460) = context.ax;
return;
}
-static void loadtempcharset(Context & context) {
+void loadtempcharset(Context & context) {
standardload(context);
context.data.word(404) = context.ax;
return;
}
-static void standardload(Context & context) {
+void standardload(Context & context) {
openfile(context);
readheader(context);
context.bx = context.ds.word(context.di);
@@ -20173,13 +20173,13 @@ static void standardload(Context & context) {
return;
}
-static void loadtemptext(Context & context) {
+void loadtemptext(Context & context) {
standardload(context);
context.data.word(464) = context.ax;
return;
}
-static void loadroom(Context & context) {
+void loadroom(Context & context) {
context.data.byte(73) = 1;
context.data.word(326) = 0;
context.data.word(136) = 0;
@@ -20199,7 +20199,7 @@ static void loadroom(Context & context) {
return;
}
-static void loadroomssample(Context & context) {
+void loadroomssample(Context & context) {
context.al = context.data.byte(530);
context._cmp(context.al, 255);
if (context.flags.z()) goto loadedalready;
@@ -20218,7 +20218,7 @@ loadedalready:
return;
}
-static void getridofreels(Context & context) {
+void getridofreels(Context & context) {
context._cmp(context.data.byte(73), 0);
if (context.flags.z()) goto dontgetrid;
context.es = context.data.word(428);
@@ -20231,7 +20231,7 @@ dontgetrid:
return;
}
-static void getridofall(Context & context) {
+void getridofall(Context & context) {
context.es = context.data.word(414);
deallocatemem(context);
context.es = context.data.word(442);
@@ -20259,7 +20259,7 @@ static void getridofall(Context & context) {
return;
}
-static void restorereels(Context & context) {
+void restorereels(Context & context) {
context._cmp(context.data.byte(73), 0);
if (context.flags.z()) goto dontrestore;
context.al = context.data.byte(183);
@@ -20291,7 +20291,7 @@ dontrestore:
return;
}
-static void restoreall(Context & context) {
+void restoreall(Context & context) {
context.al = context.data.byte(8);
getroomdata(context);
context.dx = context.bx;
@@ -20371,7 +20371,7 @@ static void restoreall(Context & context) {
return;
}
-static void sortoutmap(Context & context) {
+void sortoutmap(Context & context) {
context.push(context.es);
context.push(context.di);
context.ds = context.data.word(398);
@@ -20393,7 +20393,7 @@ blimey:
return;
}
-static void startloading(Context & context) {
+void startloading(Context & context) {
context.data.byte(63) = 0;
context.al = context.ds.byte(context.bx+13);
context.data.byte(530) = context.al;
@@ -20528,7 +20528,7 @@ dontwalkin:
return;
}
-static void disablepath(Context & context) {
+void disablepath(Context & context) {
context.push(context.cx);
context._xchg(context.al, context.ah);
context.cx = -6;
@@ -20560,7 +20560,7 @@ lookx2:
return;
}
-static void findxyfrompath(Context & context) {
+void findxyfrompath(Context & context) {
getroomspaths(context);
context.al = context.data.byte(474);
context.ah = 0;
@@ -20576,7 +20576,7 @@ static void findxyfrompath(Context & context) {
return;
}
-static void findroominloc(Context & context) {
+void findroominloc(Context & context) {
context.al = context.data.byte(148);
context.cx = -6;
looky:
@@ -20593,7 +20593,7 @@ lookx:
return;
}
-static void getroomdata(Context & context) {
+void getroomdata(Context & context) {
context.ah = 0;
context.cx = 32;
context._mul(context.cx);
@@ -20602,7 +20602,7 @@ static void getroomdata(Context & context) {
return;
}
-static void readheader(Context & context) {
+void readheader(Context & context) {
context.ds = context.cs;
context.dx = 5862;
context.cx = 5958-5862;
@@ -20612,7 +20612,7 @@ static void readheader(Context & context) {
return;
}
-static void allocateload(Context & context) {
+void allocateload(Context & context) {
context.push(context.es);
context.push(context.di);
context.bx = context.ds.word(context.di);
@@ -20624,7 +20624,7 @@ static void allocateload(Context & context) {
return;
}
-static void fillspace(Context & context) {
+void fillspace(Context & context) {
context.push(context.es);
context.push(context.ds);
context.push(context.dx);
@@ -20641,43 +20641,43 @@ static void fillspace(Context & context) {
return;
}
-static void getridoftemp(Context & context) {
+void getridoftemp(Context & context) {
context.es = context.data.word(456);
deallocatemem(context);
return;
}
-static void getridoftemptext(Context & context) {
+void getridoftemptext(Context & context) {
context.es = context.data.word(464);
deallocatemem(context);
return;
}
-static void getridoftemp2(Context & context) {
+void getridoftemp2(Context & context) {
context.es = context.data.word(458);
deallocatemem(context);
return;
}
-static void getridoftemp3(Context & context) {
+void getridoftemp3(Context & context) {
context.es = context.data.word(460);
deallocatemem(context);
return;
}
-static void getridoftempcharset(Context & context) {
+void getridoftempcharset(Context & context) {
context.es = context.data.word(404);
deallocatemem(context);
return;
}
-static void getridoftempsp(Context & context) {
+void getridoftempsp(Context & context) {
context.es = context.data.word(462);
deallocatemem(context);
return;
}
-static void readsetdata(Context & context) {
+void readsetdata(Context & context) {
context.dx = 1857;
standardload(context);
context.data.word(402) = context.ax;
@@ -20711,7 +20711,7 @@ novolumeload:
return;
}
-static void dreamweb(Context & context) {
+void dreamweb(Context & context) {
seecommandtail(context);
checkbasemem(context);
soundstartup(context);
Commit: e654b5063201f4264533fde2964a54a7df692215
https://github.com/scummvm/scummvm/commit/e654b5063201f4264533fde2964a54a7df692215
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:48-07:00
Commit Message:
DREAMWEB: removed generated code
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 4714511..5c8c6da 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -504,27 +504,7 @@ void readoneblock(Context &context) {
readfromfile(context);
}
-// TODO: This is already defined in dreamgen.cpp, so expose it should be
-// exposed from there. Once that's done, remove this copy!
-
-static void readabyte(Context & context) {
- context._cmp(context.si, 30000);
- if (!context.flags.z()) goto notendblock;
- context.push(context.bx);
- context.push(context.es);
- context.push(context.di);
- context.push(context.ds);
- context.push(context.si);
- readoneblock(context);
- context.si = context.pop();
- context.ds = context.pop();
- context.di = context.pop();
- context.es = context.pop();
- context.bx = context.pop();
- context.si = 0;
-notendblock:
- context._lodsb();
-}
+void readabyte(Context & context);
void showpcx(Context &context) {
openfile(context);
Commit: 90440a2b6890d65ce05ed93b5f83f3b4b20e070a
https://github.com/scummvm/scummvm/commit/90440a2b6890d65ce05ed93b5f83f3b4b20e070a
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:49-07:00
Commit Message:
DREAMWEB: added assertion in pop()
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 8d4592f..1def57a 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -434,6 +434,7 @@ public:
}
inline uint16 pop() {
+ assert(!stack.empty());
uint16 v = stack.back();
stack.pop_back();
return v;
Commit: 2f9e63579d22ff1075620ef16b3c04e829dc73f4
https://github.com/scummvm/scummvm/commit/2f9e63579d22ff1075620ef16b3c04e829dc73f4
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:49-07:00
Commit Message:
DREAMWEB: fixed missing explicit segment specification. added verbose data dump to the generator
Changed paths:
devtools/tasmrecover/tasm/cpp.py
devtools/tasmrecover/tasm/parser.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index f5f7057..8310749 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -146,9 +146,11 @@ namespace %s {
m = re.match(r'(\w{2,2}):(.*)$', expr)
if m is not None:
- seg = m.group(1)
+ seg_prefix = m.group(1)
expr = m.group(2).strip()
- print "SEGMENT %s, remains: %s" %(seg, expr)
+ print "SEGMENT %s, remains: %s" %(seg_prefix, expr)
+ else:
+ seg_prefix = "ds"
m = re.match(r'(([abcd][xhl])|si|di|bp|sp)([\+-].*)?$', expr)
if m is not None:
@@ -174,9 +176,9 @@ namespace %s {
if indirection == 1:
if size == 1:
- expr = "context.ds.byte(%s)" %expr
+ expr = "context.%s.byte(%s)" %(seg_prefix, expr)
elif size == 2:
- expr = "context.ds.word(%s)" %expr
+ expr = "context.%s.word(%s)" %(seg_prefix, expr)
else:
expr = "@invalid size 0"
elif indirection == 0:
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index 2391aa4..b1d7995 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -101,6 +101,7 @@ class parser:
return text
def fix_dollar(self, v):
+ print("$ = %d" %len(self.binary_data))
return re.sub(r'\$', "%d" %len(self.binary_data), v)
def parse_int(self, v):
@@ -198,6 +199,7 @@ class parser:
if cmd0 == 'db' or cmd0 == 'dw' or cmd0 == 'dd':
arg = " ".join(cmd[1:])
+ print "%d: %s" %(len(self.binary_data), line) #fixme: COPYPASTE
binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd0[1]]
self.binary_data += self.compact_data(binary_width, lex.parse_args(arg))
continue
@@ -221,6 +223,7 @@ class parser:
v = cmd[2]
self.set_global(cmd0, op.const(self.fix_dollar(v)))
elif cmd1 == 'db' or cmd1 == 'dw' or cmd1 == 'dd':
+ print "%d: %s" %(len(self.binary_data), line)
binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd1[1]]
offset = len(self.binary_data)
self.binary_data += self.compact_data(binary_width, lex.parse_args(" ".join(cmd[2:])))
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f7acf6e..8ae92d8 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -481,7 +481,7 @@ void intro3text(Context &context);
void intro1text(Context &context);
void alleybarksound(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._sub(context.ax, 1);
context._cmp(context.ax, 0);
if (!context.flags.z()) goto nobark;
@@ -493,7 +493,7 @@ void alleybarksound(Context & context) {
context.bx = context.pop();
context.ax = 1000;
nobark:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
return;
}
@@ -517,35 +517,35 @@ void receptionist(Context & context) {
context._cmp(context.data.byte(51), 1);
if (!context.flags.z()) goto notsetcard;
context._add(context.data.byte(51), 1);
- context.ds.byte(context.bx+7) = 1;
- context.ds.word(context.bx+3) = 64;
+ context.es.byte(context.bx+7) = 1;
+ context.es.word(context.bx+3) = 64;
notsetcard:
- context._cmp(context.ds.word(context.bx+3), 58);
+ context._cmp(context.es.word(context.bx+3), 58);
if (!context.flags.z()) goto notdes1;
randomnumber(context);
context._cmp(context.al, 30);
if (context.flags.c()) goto notdes2;
- context.ds.word(context.bx+3) = 55;
+ context.es.word(context.bx+3) = 55;
goto gotrecep;
notdes1:
- context._cmp(context.ds.word(context.bx+3), 60);
+ context._cmp(context.es.word(context.bx+3), 60);
if (!context.flags.z()) goto notdes2;
randomnumber(context);
context._cmp(context.al, 240);
if (context.flags.c()) goto gotrecep;
- context.ds.word(context.bx+3) = 53;
+ context.es.word(context.bx+3) = 53;
goto gotrecep;
notdes2:
- context._cmp(context.ds.word(context.bx+3), 88);
+ context._cmp(context.es.word(context.bx+3), 88);
if (!context.flags.z()) goto notendcard;
- context.ds.word(context.bx+3) = 53;
+ context.es.word(context.bx+3) = 53;
goto gotrecep;
notendcard:
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
gotrecep:
showgamereel(context);
addtopeoplelist(context);
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedrecep;
context.data.byte(50) = 1;
@@ -556,7 +556,7 @@ nottalkedrecep:
void smokebloke(Context & context) {
context._cmp(context.data.byte(40), 0);
if (!context.flags.z()) goto notspokento;
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto notspokento;
context.push(context.es);
@@ -568,20 +568,20 @@ void smokebloke(Context & context) {
notspokento:
checkspeed(context);
if (!context.flags.z()) goto gotsmokeb;
- context._cmp(context.ds.word(context.bx+3), 100);
+ context._cmp(context.es.word(context.bx+3), 100);
if (!context.flags.z()) goto notsmokeb1;
randomnumber(context);
context._cmp(context.al, 30);
if (context.flags.c()) goto notsmokeb2;
- context.ds.word(context.bx+3) = 96;
+ context.es.word(context.bx+3) = 96;
goto gotsmokeb;
notsmokeb1:
- context._cmp(context.ds.word(context.bx+3), 117);
+ context._cmp(context.es.word(context.bx+3), 117);
if (!context.flags.z()) goto notsmokeb2;
- context.ds.word(context.bx+3) = 96;
+ context.es.word(context.bx+3) = 96;
goto gotsmokeb;
notsmokeb2:
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
gotsmokeb:
showgamereel(context);
addtopeoplelist(context);
@@ -591,7 +591,7 @@ gotsmokeb:
void attendant(Context & context) {
showgamereel(context);
addtopeoplelist(context);
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalked;
context.data.byte(47) = 1;
@@ -600,9 +600,9 @@ nottalked:
}
void manasleep(Context & context) {
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
- context.ds.byte(context.bx+7) = context.al;
+ context.es.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
return;
@@ -658,22 +658,22 @@ void louischair(Context & context) {
if (context.flags.z()) goto notlouis2;
checkspeed(context);
if (!context.flags.z()) goto notlouisanim;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 191);
if (context.flags.z()) goto restartlouis;
context._cmp(context.ax, 185);
if (context.flags.z()) goto randomlouis;
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
goto notlouisanim;
randomlouis:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
randomnumber(context);
context._cmp(context.al, 245);
if (!context.flags.c()) goto notlouisanim;
restartlouis:
context.ax = 182;
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
notlouisanim:
showgamereel(context);
addtopeoplelist(context);
@@ -682,9 +682,9 @@ notlouis2:
}
void manasleep2(Context & context) {
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
- context.ds.byte(context.bx+7) = context.al;
+ context.es.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
return;
@@ -705,18 +705,18 @@ void tattooman(Context & context) {
void drinker(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotdrinker;
- context._add(context.ds.word(context.bx+3), 1);
- context._cmp(context.ds.word(context.bx+3), 115);
+ context._add(context.es.word(context.bx+3), 1);
+ context._cmp(context.es.word(context.bx+3), 115);
if (!context.flags.z()) goto notdrinker1;
- context.ds.word(context.bx+3) = 105;
+ context.es.word(context.bx+3) = 105;
goto gotdrinker;
notdrinker1:
- context._cmp(context.ds.word(context.bx+3), 106);
+ context._cmp(context.es.word(context.bx+3), 106);
if (!context.flags.z()) goto gotdrinker;
randomnumber(context);
context._cmp(context.al, 3);
if (context.flags.c()) goto gotdrinker;
- context.ds.word(context.bx+3) = 105;
+ context.es.word(context.bx+3) = 105;
gotdrinker:
showgamereel(context);
addtopeoplelist(context);
@@ -726,25 +726,25 @@ gotdrinker:
void bartender(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotsmoket;
- context._cmp(context.ds.word(context.bx+3), 86);
+ context._cmp(context.es.word(context.bx+3), 86);
if (!context.flags.z()) goto notsmoket1;
randomnumber(context);
context._cmp(context.al, 18);
if (context.flags.c()) goto notsmoket2;
- context.ds.word(context.bx+3) = 81;
+ context.es.word(context.bx+3) = 81;
goto gotsmoket;
notsmoket1:
- context._cmp(context.ds.word(context.bx+3), 103);
+ context._cmp(context.es.word(context.bx+3), 103);
if (!context.flags.z()) goto notsmoket2;
- context.ds.word(context.bx+3) = 81;
+ context.es.word(context.bx+3) = 81;
goto gotsmoket;
notsmoket2:
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
gotsmoket:
showgamereel(context);
context._cmp(context.data.byte(45), 1);
if (!context.flags.z()) goto notgotgun;
- context.ds.byte(context.bx+7) = 9;
+ context.es.byte(context.bx+7) = 9;
notgotgun:
addtopeoplelist(context);
return;
@@ -765,25 +765,25 @@ void barwoman(Context & context) {
void interviewer(Context & context) {
context._cmp(context.data.word(21), 68);
if (!context.flags.z()) goto notgeneralstart;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
notgeneralstart:
- context._cmp(context.ds.word(context.bx+3), 250);
+ context._cmp(context.es.word(context.bx+3), 250);
if (context.flags.z()) goto talking;
checkspeed(context);
if (!context.flags.z()) goto talking;
- context._cmp(context.ds.word(context.bx+3), 259);
+ context._cmp(context.es.word(context.bx+3), 259);
if (context.flags.z()) goto talking;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
talking:
showgamereel(context);
return;
}
void soldier1(Context & context) {
- context._cmp(context.ds.word(context.bx+3), 0);
+ context._cmp(context.es.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
context.data.word(19) = 10;
- context._cmp(context.ds.word(context.bx+3), 30);
+ context._cmp(context.es.word(context.bx+3), 30);
if (!context.flags.z()) goto notaftersshot;
context._add(context.data.byte(63), 1);
context._cmp(context.data.byte(63), 40);
@@ -793,7 +793,7 @@ void soldier1(Context & context) {
notaftersshot:
checkspeed(context);
if (!context.flags.z()) goto gotsoldframe;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
goto gotsoldframe;
soldierwait:
context._cmp(context.data.byte(64), 1);
@@ -803,7 +803,7 @@ soldierwait:
if (!context.flags.z()) goto gotsoldframe;
context._cmp(context.data.byte(132), 4);
if (!context.flags.z()) goto gotsoldframe;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
context.data.byte(64) = -1;
context.data.byte(63) = 0;
gotsoldframe:
@@ -813,14 +813,14 @@ gotsoldframe:
}
void rockstar(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 303);
if (context.flags.z()) goto rockcombatend;
context._cmp(context.ax, 118);
if (context.flags.z()) goto rockcombatend;
checkspeed(context);
if (!context.flags.z()) goto rockspeed;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 118);
if (!context.flags.z()) goto notbeforedead;
@@ -842,10 +842,10 @@ notgunonrock:
context.data.byte(63) = 0;
context.ax = 79;
gotrockframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
rockspeed:
showgamereel(context);
- context._cmp(context.ds.word(context.bx+3), 78);
+ context._cmp(context.es.word(context.bx+3), 78);
if (!context.flags.z()) goto notalkrock;
addtopeoplelist(context);
context.data.byte(233) = 2;
@@ -855,7 +855,7 @@ notalkrock:
context.data.word(19) = 2;
context.data.byte(233) = 0;
context.al = context.data.byte(148);
- context.ds.byte(context.bx+2) = context.al;
+ context.es.byte(context.bx+2) = context.al;
return;
rockcombatend:
context.data.byte(187) = 45;
@@ -864,12 +864,12 @@ rockcombatend:
}
void helicopter(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 203);
if (context.flags.z()) goto heliwon;
checkspeed(context);
if (!context.flags.z()) goto helispeed;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 53);
if (!context.flags.z()) goto notbeforehdead;
@@ -897,13 +897,13 @@ notgunonheli:
context.data.byte(63) = 0;
context.ax = 9;
gotheliframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
helispeed:
showgamereel(context);
context.al = context.data.byte(147);
- context.ds.byte(context.bx+1) = context.al;
+ context.es.byte(context.bx+1) = context.al;
helicombatend:
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 9);
if (!context.flags.c()) goto notwaitingheli;
context._cmp(context.data.byte(63), 7);
@@ -921,7 +921,7 @@ heliwon:
}
void mugger(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 138);
if (context.flags.z()) goto endmugger1;
context._cmp(context.ax, 176);
@@ -932,11 +932,11 @@ void mugger(Context & context) {
havesetwatch:
checkspeed(context);
if (!context.flags.z()) goto notmugger;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
notmugger:
showgamereel(context);
context.al = context.data.byte(147);
- context.ds.byte(context.bx+1) = context.al;
+ context.es.byte(context.bx+1) = context.al;
return;
endmugger1:
context.push(context.es);
@@ -957,7 +957,7 @@ endmugger1:
context.es = context.pop();
context.push(context.es);
context.push(context.bx);
- context.ds.word(context.bx+3) = 140;
+ context.es.word(context.bx+3) = 140;
context.data.byte(474) = 2;
context.data.byte(476) = 2;
findxyfrompath(context);
@@ -1002,7 +1002,7 @@ void aide(Context & context) {
void businessman(Context & context) {
context.data.byte(233) = 0;
context.data.word(19) = 2;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 2);
if (!context.flags.z()) goto notfirstbiz;
context.push(context.ax);
@@ -1024,7 +1024,7 @@ notfirstbiz:
if (context.flags.z()) goto buscombatend;
checkspeed(context);
if (!context.flags.z()) goto busspeed;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 48);
if (!context.flags.z()) goto notbeforedeadb;
@@ -1069,12 +1069,12 @@ buscombatwon:
context.ax = 92;
goto gotbusframe;
gotbusframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
busspeed:
showgamereel(context);
context.al = context.data.byte(148);
- context.ds.byte(context.bx+2) = context.al;
- context.ax = context.ds.word(context.bx+3);
+ context.es.byte(context.bx+2) = context.al;
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 14);
if (!context.flags.z()) goto buscombatend;
context.data.word(19) = 0;
@@ -1089,7 +1089,7 @@ buscombatwonend:
}
void poolguard(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 214);
if (context.flags.z()) goto combatover2;
context._cmp(context.ax, 258);
@@ -1103,7 +1103,7 @@ void poolguard(Context & context) {
notfirstpool:
checkspeed(context);
if (!context.flags.z()) goto guardspeed;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 122);
if (!context.flags.z()) goto notendguard1;
@@ -1136,10 +1136,10 @@ notgunonpool:
context.data.byte(63) = 0;
context.ax = 220;
gotguardframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
guardspeed:
showgamereel(context);
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 121);
if (context.flags.z()) goto iswaitingpool;
context._cmp(context.ax, 146);
@@ -1173,16 +1173,16 @@ doneover2:
}
void security(Context & context) {
- context._cmp(context.ds.word(context.bx+3), 32);
+ context._cmp(context.es.word(context.bx+3), 32);
if (context.flags.z()) goto securwait;
- context._cmp(context.ds.word(context.bx+3), 69);
+ context._cmp(context.es.word(context.bx+3), 69);
if (!context.flags.z()) goto notaftersec;
return;
notaftersec:
context.data.word(19) = 10;
checkspeed(context);
if (!context.flags.z()) goto gotsecurframe;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
goto gotsecurframe;
securwait:
context._cmp(context.data.byte(64), 1);
@@ -1193,7 +1193,7 @@ securwait:
context._cmp(context.data.byte(132), 0);
if (!context.flags.z()) goto gotsecurframe;
context.data.byte(64) = -1;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
gotsecurframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1201,13 +1201,13 @@ gotsecurframe:
}
void heavy(Context & context) {
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
- context.ds.byte(context.bx+7) = context.al;
- context._cmp(context.ds.word(context.bx+3), 43);
+ context.es.byte(context.bx+7) = context.al;
+ context._cmp(context.es.word(context.bx+3), 43);
if (context.flags.z()) goto heavywait;
context.data.word(19) = 10;
- context._cmp(context.ds.word(context.bx+3), 70);
+ context._cmp(context.es.word(context.bx+3), 70);
if (!context.flags.z()) goto notafterhshot;
context._add(context.data.byte(63), 1);
context._cmp(context.data.byte(63), 80);
@@ -1217,7 +1217,7 @@ void heavy(Context & context) {
notafterhshot:
checkspeed(context);
if (!context.flags.z()) goto gotheavyframe;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
goto gotheavyframe;
heavywait:
context._cmp(context.data.byte(64), 1);
@@ -1227,7 +1227,7 @@ heavywait:
context._cmp(context.data.byte(132), 4);
if (!context.flags.z()) goto gotheavyframe;
context.data.byte(64) = -1;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
context.data.byte(63) = 0;
gotheavyframe:
showgamereel(context);
@@ -1238,7 +1238,7 @@ gotheavyframe:
void bossman(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notboss;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 4);
if (context.flags.z()) goto firstdes;
@@ -1248,7 +1248,7 @@ void bossman(Context & context) {
if (!context.flags.z()) goto gotallboss;
context.ax = 0;
context._add(context.data.byte(45), 1);
- context.ds.byte(context.bx+7) = 10;
+ context.es.byte(context.bx+7) = 10;
goto gotallboss;
firstdes:
context._cmp(context.data.byte(45), 1);
@@ -1266,11 +1266,11 @@ secdes:
if (context.flags.z()) goto gotallboss;
context.ax = 0;
gotallboss:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
notboss:
showgamereel(context);
addtopeoplelist(context);
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedboss;
context.data.byte(49) = 1;
@@ -1287,10 +1287,10 @@ gameragain:
context._cmp(context.al, 5);
if (!context.flags.c()) goto gameragain;
context._add(context.al, 20);
- context._cmp(context.al, context.ds.byte(context.bx+3));
+ context._cmp(context.al, context.es.byte(context.bx+3));
if (context.flags.z()) goto gameragain;
context.ah = 0;
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
gamerfin:
showgamereel(context);
addtopeoplelist(context);
@@ -1322,12 +1322,12 @@ void keeper(Context & context) {
context._cmp(context.data.word(21), 190);
if (context.flags.c()) goto waiting;
context._add(context.data.byte(53), 1);
- context.ah = context.ds.byte(context.bx+7);
+ context.ah = context.es.byte(context.bx+7);
context._and(context.ah, 127);
context._cmp(context.ah, context.data.byte(65));
if (context.flags.z()) goto notdiff;
context.al = context.data.byte(65);
- context.ds.byte(context.bx+7) = context.al;
+ context.es.byte(context.bx+7) = context.al;
notdiff:
return;
notwaiting:
@@ -1340,13 +1340,13 @@ waiting:
void candles1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candle1;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 44);
if (!context.flags.z()) goto notendcandle1;
context.ax = 39;
notendcandle1:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
candle1:
showgamereel(context);
return;
@@ -1355,13 +1355,13 @@ candle1:
void smallcandle(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto smallcandlef;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 37);
if (!context.flags.z()) goto notendsmallcandle;
context.ax = 25;
notendsmallcandle:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
smallcandlef:
showgamereel(context);
return;
@@ -1370,13 +1370,13 @@ smallcandlef:
void intromagic1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm1fin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 145);
if (!context.flags.z()) goto gotintrom1;
context.ax = 121;
gotintrom1:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
context._cmp(context.ax, 121);
if (!context.flags.z()) goto introm1fin;
context._add(context.data.byte(138), 1);
@@ -1397,13 +1397,13 @@ introm1fin:
void candles(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candlesfin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 167);
if (!context.flags.z()) goto gotcandles;
context.ax = 162;
gotcandles:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
candlesfin:
showgamereel(context);
return;
@@ -1412,13 +1412,13 @@ candlesfin:
void candles2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candles2fin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 238);
if (!context.flags.z()) goto gotcandles2;
context.ax = 233;
gotcandles2:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
candles2fin:
showgamereel(context);
return;
@@ -1427,7 +1427,7 @@ candles2fin:
void gates(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gatesfin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 116);
if (!context.flags.z()) goto notbang;
@@ -1442,14 +1442,14 @@ void gates(Context & context) {
notbang:
context._cmp(context.ax, 110);
if (context.flags.c()) goto slowgates;
- context.ds.byte(context.bx+5) = 2;
+ context.es.byte(context.bx+5) = 2;
slowgates:
context._cmp(context.ax, 120);
if (!context.flags.z()) goto gotgates;
context.data.byte(102) = 1;
context.ax = 119;
gotgates:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
context.push(context.es);
context.push(context.bx);
intro3text(context);
@@ -1463,13 +1463,13 @@ gatesfin:
void intromagic2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm2fin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 216);
if (!context.flags.z()) goto gotintrom2;
context.ax = 192;
gotintrom2:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
introm2fin:
showgamereel(context);
return;
@@ -1478,24 +1478,24 @@ introm2fin:
void intromagic3(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm3fin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 218);
if (!context.flags.z()) goto gotintrom3;
context.data.byte(102) = 1;
gotintrom3:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
introm3fin:
showgamereel(context);
context.al = context.data.byte(147);
- context.ds.byte(context.bx+1) = context.al;
+ context.es.byte(context.bx+1) = context.al;
return;
}
void intromonks1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk1fin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 80);
if (!context.flags.z()) goto notendmonk1;
@@ -1510,7 +1510,7 @@ notendmonk1:
context.data.byte(185) = 1;
context.ax = 51;
gotintromonk1:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
context._cmp(context.ax, 5);
if (context.flags.z()) goto waitstep;
context._cmp(context.ax, 15);
@@ -1528,18 +1528,18 @@ waitstep:
intro2text(context);
context.bx = context.pop();
context.es = context.pop();
- context.ds.byte(context.bx+6) = -20;
+ context.es.byte(context.bx+6) = -20;
intromonk1fin:
showgamereel(context);
context.al = context.data.byte(148);
- context.ds.byte(context.bx+2) = context.al;
+ context.es.byte(context.bx+2) = context.al;
return;
}
void intromonks2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk2fin;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 87);
if (!context.flags.z()) goto nottalk1;
@@ -1582,7 +1582,7 @@ notendmonk2:
if (!context.flags.z()) goto gotintromonk2;
context.ax = 140;
gotintromonk2:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
intromonk2fin:
showgamereel(context);
return;
@@ -1779,7 +1779,7 @@ gotintro3text:
void monkandryan(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notmonkryan;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 83);
if (!context.flags.z()) goto gotmonkryan;
@@ -1795,7 +1795,7 @@ void monkandryan(Context & context) {
context.data.byte(102) = 1;
return;
gotmonkryan:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
notmonkryan:
showgamereel(context);
return;
@@ -1804,7 +1804,7 @@ notmonkryan:
void endgameseq(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notendseq;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 51);
if (!context.flags.z()) goto gotendseq;
@@ -1818,7 +1818,7 @@ void endgameseq(Context & context) {
context.es = context.pop();
context.ax = 50;
gotendseq:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
context._cmp(context.ax, 134);
if (!context.flags.z()) goto notfadedown;
context.push(context.es);
@@ -1848,11 +1848,11 @@ notfadeend:
notendseq:
showgamereel(context);
context.al = context.data.byte(148);
- context.ds.byte(context.bx+2) = context.al;
- context.ax = context.ds.word(context.bx+3);
+ context.es.byte(context.bx+2) = context.al;
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 145);
if (!context.flags.z()) goto notendcreds;
- context.ds.word(context.bx+3) = 146;
+ context.es.word(context.bx+3) = 146;
rollendcredits(context);
notendcreds:
return;
@@ -1874,7 +1874,7 @@ void rollendcredits(Context & context) {
multiget(context);
context.es = context.data.word(464);
context.si = 3*2;
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context.si = context.ax;
context._add(context.si, 66*2);
context.cx = 254;
@@ -1930,7 +1930,7 @@ onelot:
if (--context.cx) goto endcredits2;
context.cx = context.pop();
looknext:
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (context.flags.z()) goto gotnext;
@@ -1947,13 +1947,13 @@ gotnext:
}
void priest(Context & context) {
- context._cmp(context.ds.word(context.bx+3), 8);
+ context._cmp(context.es.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
context.data.byte(233) = 0;
context.data.word(19) = 2;
checkspeed(context);
if (!context.flags.z()) goto priestwait;
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
context.push(context.es);
context.push(context.bx);
priesttext(context);
@@ -1966,13 +1966,13 @@ priestspoken:
}
void madmanstelly(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 307);
if (!context.flags.z()) goto notendtelly;
context.ax = 300;
notendtelly:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
showgamereel(context);
return;
}
@@ -1981,7 +1981,7 @@ void madman(Context & context) {
context.data.word(19) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 364);
if (!context.flags.c()) goto ryansded;
context._cmp(context.ax, 10);
@@ -2023,11 +2023,11 @@ notfirstmad:
killryan:
context.ax = 310;
nomadspeak:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
nomadspeed:
showgamereel(context);
context.al = context.data.byte(147);
- context.ds.byte(context.bx+1) = context.al;
+ context.es.byte(context.bx+1) = context.al;
madmode(context);
return;
madmanspoken:
@@ -2080,14 +2080,14 @@ iswatchmad:
}
void priesttext(Context & context) {
- context._cmp(context.ds.word(context.bx+3), 2);
+ context._cmp(context.es.word(context.bx+3), 2);
if (context.flags.c()) goto nopriesttext;
- context._cmp(context.ds.word(context.bx+3), 7);
+ context._cmp(context.es.word(context.bx+3), 7);
if (!context.flags.c()) goto nopriesttext;
- context.al = context.ds.byte(context.bx+3);
+ context.al = context.es.byte(context.bx+3);
context._and(context.al, 1);
if (!context.flags.z()) goto nopriesttext;
- context.al = context.ds.byte(context.bx+3);
+ context.al = context.es.byte(context.bx+3);
context._shr(context.al, 1);
context._add(context.al, 50);
context.bl = 72;
@@ -2253,9 +2253,9 @@ oktalk:
void drunk(Context & context) {
context._cmp(context.data.byte(41), 0);
if (!context.flags.z()) goto trampgone;
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
- context.ds.byte(context.bx+7) = context.al;
+ context.es.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
trampgone:
@@ -2266,7 +2266,7 @@ void advisor(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto noadvisor;
goto noadvisor;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 123);
if (!context.flags.z()) goto notendadvis;
@@ -2283,7 +2283,7 @@ notendadvis:
if (context.flags.c()) goto gotadvframe;
context.ax = 106;
gotadvframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
noadvisor:
showgamereel(context);
addtopeoplelist(context);
@@ -2293,7 +2293,7 @@ noadvisor:
void copper(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto nocopper;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._add(context.ax, 1);
context._cmp(context.ax, 94);
if (!context.flags.z()) goto notendcopper;
@@ -2313,7 +2313,7 @@ mightwait:
if (context.flags.c()) goto gotcopframe;
context._sub(context.ax, 1);
gotcopframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
nocopper:
showgamereel(context);
addtopeoplelist(context);
@@ -2323,29 +2323,29 @@ nocopper:
void sparky(Context & context) {
context._cmp(context.data.word(14), 0);
if (context.flags.z()) goto animsparky;
- context.ds.byte(context.bx+7) = 3;
+ context.es.byte(context.bx+7) = 3;
goto animsparky;
animsparky:
checkspeed(context);
if (!context.flags.z()) goto finishsparky;
- context._cmp(context.ds.word(context.bx+3), 34);
+ context._cmp(context.es.word(context.bx+3), 34);
if (!context.flags.z()) goto notsparky1;
randomnumber(context);
context._cmp(context.al, 30);
if (context.flags.c()) goto dosparky;
- context.ds.word(context.bx+3) = 27;
+ context.es.word(context.bx+3) = 27;
goto finishsparky;
notsparky1:
- context._cmp(context.ds.word(context.bx+3), 48);
+ context._cmp(context.es.word(context.bx+3), 48);
if (!context.flags.z()) goto dosparky;
- context.ds.word(context.bx+3) = 27;
+ context.es.word(context.bx+3) = 27;
goto finishsparky;
dosparky:
- context._add(context.ds.word(context.bx+3), 1);
+ context._add(context.es.word(context.bx+3), 1);
finishsparky:
showgamereel(context);
addtopeoplelist(context);
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedsparky;
context.data.byte(48) = 1;
@@ -2355,7 +2355,7 @@ nottalkedsparky:
void train(Context & context) {
return;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 21);
if (!context.flags.c()) goto notrainyet;
context._add(context.ax, 1);
@@ -2370,7 +2370,7 @@ notrainyet:
if (!context.flags.z()) goto notrainatall;
context.ax = 5;
gottrainframe:
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
showgamereel(context);
notrainatall:
return;
@@ -2380,14 +2380,14 @@ void addtopeoplelist(Context & context) {
context.push(context.es);
context.push(context.bx);
context.push(context.bx);
- context.cl = context.ds.byte(context.bx+7);
- context.ax = context.ds.word(context.bx+3);
+ context.cl = context.es.byte(context.bx+7);
+ context.ax = context.es.word(context.bx+3);
context.bx = context.data.word(16);
context.es = context.data.word(410);
- context.ds.word(context.bx) = context.ax;
+ context.es.word(context.bx) = context.ax;
context.ax = context.pop();
- context.ds.word(context.bx+2) = context.ax;
- context.ds.byte(context.bx+4) = context.cl;
+ context.es.word(context.bx+2) = context.ax;
+ context.es.byte(context.bx+4) = context.cl;
context.bx = context.pop();
context.es = context.pop();
context._add(context.data.word(16), 5);
@@ -2395,7 +2395,7 @@ void addtopeoplelist(Context & context) {
}
void showgamereel(Context & context) {
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
context.data.word(237) = context.ax;
@@ -2405,7 +2405,7 @@ void showgamereel(Context & context) {
context.bx = context.pop();
context.es = context.pop();
context.ax = context.data.word(237);
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
noshow:
return;
}
@@ -2413,12 +2413,12 @@ noshow:
void checkspeed(Context & context) {
context._cmp(context.data.byte(64), -1);
if (!context.flags.z()) goto forcenext;
- context._add(context.ds.byte(context.bx+6), 1);
- context.al = context.ds.byte(context.bx+6);
- context._cmp(context.al, context.ds.byte(context.bx+5));
+ context._add(context.es.byte(context.bx+6), 1);
+ context.al = context.es.byte(context.bx+6);
+ context._cmp(context.al, context.es.byte(context.bx+5));
if (!context.flags.z()) goto notspeed;
context.al = 0;
- context.ds.byte(context.bx+6) = context.al;
+ context.es.byte(context.bx+6) = context.al;
context._cmp(context.al, context.al);
notspeed:
return;
@@ -2440,18 +2440,18 @@ void makesprite(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
_tmp17:
- context._cmp(context.ds.byte(context.bx+15), 255);
+ context._cmp(context.es.byte(context.bx+15), 255);
if (context.flags.z()) goto _tmp17a;
context._add(context.bx, 32);
goto _tmp17;
_tmp17a:
- context.ds.word(context.bx) = context.cx;
- context.ds.word(context.bx+10) = context.si;
- context.ds.word(context.bx+6) = context.dx;
- context.ds.word(context.bx+8) = context.di;
- context.ds.word(context.bx+2) = 0x0ffff;
- context.ds.byte(context.bx+15) = 0;
- context.ds.byte(context.bx+18) = 0;
+ context.es.word(context.bx) = context.cx;
+ context.es.word(context.bx+10) = context.si;
+ context.es.word(context.bx+6) = context.dx;
+ context.es.word(context.bx+8) = context.di;
+ context.es.word(context.bx+2) = 0x0ffff;
+ context.es.byte(context.bx+15) = 0;
+ context.es.byte(context.bx+18) = 0;
return;
}
@@ -2467,20 +2467,20 @@ void spriteupdate(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = context.data.byte(62);
- context.ds.byte(context.bx+31) = context.al;
+ context.es.byte(context.bx+31) = context.al;
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
_tmp18:
context.push(context.cx);
context.push(context.bx);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto _tmp18a;
context.push(context.es);
context.push(context.ds);
- context.cx = context.ds.word(context.bx+2);
- context.ds.word(context.bx+24) = context.cx;
+ context.cx = context.es.word(context.bx+2);
+ context.es.word(context.bx+24) = context.cx;
__dispatch_call(context, context.ax);
context.ds = context.pop();
context.es = context.pop();
@@ -2506,13 +2506,13 @@ priorityloop:
prtspriteloop:
context.push(context.cx);
context.push(context.bx);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto skipsprite;
context.al = context.data.byte(181);
- context._cmp(context.al, context.ds.byte(context.bx+23));
+ context._cmp(context.al, context.es.byte(context.bx+23));
if (!context.flags.z()) goto skipsprite;
- context._cmp(context.ds.byte(context.bx+31), 1);
+ context._cmp(context.es.byte(context.bx+31), 1);
if (context.flags.z()) goto skipsprite;
printasprite(context);
skipsprite:
@@ -2531,8 +2531,8 @@ void printasprite(Context & context) {
context.push(context.es);
context.push(context.bx);
context.si = context.bx;
- context.ds = context.ds.word(context.si+6);
- context.al = context.ds.byte(context.si+11);
+ context.ds = context.es.word(context.si+6);
+ context.al = context.es.byte(context.si+11);
context.ah = 0;
context._cmp(context.al, 220);
if (context.flags.c()) goto notnegative1;
@@ -2540,7 +2540,7 @@ void printasprite(Context & context) {
notnegative1:
context.bx = context.ax;
context._add(context.bx, context.data.word(117));
- context.al = context.ds.byte(context.si+10);
+ context.al = context.es.byte(context.si+10);
context.ah = 0;
context._cmp(context.al, 220);
if (context.flags.c()) goto notnegative2;
@@ -2548,9 +2548,9 @@ notnegative1:
notnegative2:
context.di = context.ax;
context._add(context.di, context.data.word(115));
- context.al = context.ds.byte(context.si+15);
+ context.al = context.es.byte(context.si+15);
context.ah = 0;
- context._cmp(context.ds.byte(context.si+30), 0);
+ context._cmp(context.es.byte(context.si+30), 0);
if (context.flags.z()) goto steadyframe;
context.ah = 8;
steadyframe:
@@ -2625,9 +2625,9 @@ void initman(Context & context) {
context.dx = context.data.word(412);
context.di = 0;
makesprite(context);
- context.ds.byte(context.bx+23) = 4;
- context.ds.byte(context.bx+22) = 0;
- context.ds.byte(context.bx+29) = 0;
+ context.es.byte(context.bx+23) = 4;
+ context.es.byte(context.bx+22) = 0;
+ context.es.byte(context.bx+29) = 0;
return;
}
@@ -2637,16 +2637,16 @@ void mainman(Context & context) {
context.data.byte(186) = 0;
context.al = context.data.byte(150);
context.ah = context.data.byte(151);
- context.ds.word(context.bx+10) = context.ax;
- context.ds.byte(context.bx+29) = 0;
+ context.es.word(context.bx+10) = context.ax;
+ context.es.byte(context.bx+29) = 0;
goto executewalk;
notinnewroom:
- context._sub(context.ds.byte(context.bx+22), 1);
- context._cmp(context.ds.byte(context.bx+22), -1);
+ context._sub(context.es.byte(context.bx+22), 1);
+ context._cmp(context.es.byte(context.bx+22), -1);
if (context.flags.z()) goto executewalk;
return;
executewalk:
- context.ds.byte(context.bx+22) = 0;
+ context.es.byte(context.bx+22) = 0;
context.al = context.data.byte(134);
context._cmp(context.al, context.data.byte(132));
if (context.flags.z()) goto facingok;
@@ -2666,23 +2666,23 @@ alreadyturned:
context.data.byte(135) = 0;
context._cmp(context.data.byte(491), 254);
if (!context.flags.z()) goto walkman;
- context.ds.byte(context.bx+29) = 0;
+ context.es.byte(context.bx+29) = 0;
goto notwalk;
walkman:
- context.al = context.ds.byte(context.bx+29);
+ context.al = context.es.byte(context.bx+29);
context._add(context.al, 1);
context._cmp(context.al, 11);
if (!context.flags.z()) goto notanimend1;
context.al = 1;
notanimend1:
- context.ds.byte(context.bx+29) = context.al;
+ context.es.byte(context.bx+29) = context.al;
walking(context);
context._cmp(context.data.byte(491), 254);
if (context.flags.z()) goto afterwalk;
context.al = context.data.byte(132);
context._and(context.al, 1);
if (context.flags.z()) goto isdouble;
- context.al = context.ds.byte(context.bx+29);
+ context.al = context.es.byte(context.bx+29);
context._cmp(context.al, 2);
if (context.flags.z()) goto afterwalk;
context._cmp(context.al, 7);
@@ -2705,10 +2705,10 @@ notwalk:
context.ah = 0;
context.di = 1105;
context._add(context.di, context.ax);
- context.al = context.ds.byte(context.di);
- context._add(context.al, context.ds.byte(context.bx+29));
- context.ds.byte(context.bx+15) = context.al;
- context.ax = context.ds.word(context.bx+10);
+ context.al = context.cs.byte(context.di);
+ context._add(context.al, context.es.byte(context.bx+29));
+ context.es.byte(context.bx+15) = context.al;
+ context.ax = context.es.word(context.bx+10);
context.data.byte(150) = context.al;
context.data.byte(151) = context.ah;
return;
@@ -2736,7 +2736,7 @@ incdir:
context._add(context.al, 1);
context._and(context.al, 7);
context.data.byte(132) = context.al;
- context.ds.byte(context.bx+29) = 0;
+ context.es.byte(context.bx+29) = 0;
return;
decdir:
context.data.byte(135) = -1;
@@ -2744,7 +2744,7 @@ decdir:
context._sub(context.al, 1);
context._and(context.al, 7);
context.data.byte(132) = context.al;
- context.ds.byte(context.bx+29) = 0;
+ context.es.byte(context.bx+29) = 0;
return;
}
@@ -2772,11 +2772,11 @@ continuewalk:
context.es = context.dx;
context.bx = 7944;
context._add(context.bx, context.ax);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.bx = context.pop();
context.es = context.pop();
stillline:
- context.ds.word(context.bx+10) = context.ax;
+ context.es.word(context.bx+10) = context.ax;
return;
endofline:
context.data.byte(491) = 254;
@@ -2807,7 +2807,7 @@ void facerightway(Context & context) {
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context.data.byte(134) = context.al;
context.data.byte(133) = context.al;
context.bx = context.pop();
@@ -2914,7 +2914,7 @@ void adjustdown(Context & context) {
context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
- context.ds.byte(context.bx+11) = context.al;
+ context.es.byte(context.bx+11) = context.al;
context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
@@ -2928,7 +2928,7 @@ void adjustup(Context & context) {
context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
- context.ds.byte(context.bx+11) = context.al;
+ context.es.byte(context.bx+11) = context.al;
context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
@@ -2943,7 +2943,7 @@ void adjustleft(Context & context) {
context.al = context.data.byte(153);
context.cl = 16;
context._mul(context.cl);
- context.ds.byte(context.bx+10) = context.al;
+ context.es.byte(context.bx+10) = context.al;
context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
@@ -2958,7 +2958,7 @@ void adjustright(Context & context) {
context.cl = 16;
context._mul(context.cl);
context._sub(context.al, 2);
- context.ds.byte(context.bx+10) = context.al;
+ context.es.byte(context.bx+10) = context.al;
context.data.byte(185) = 1;
context.bx = context.pop();
context.es = context.pop();
@@ -2985,7 +2985,7 @@ void reminders(Context & context) {
findexobject(context);
context._cmp(context.al, 114);
if (context.flags.z()) goto forgotone;
- context.ax = context.ds.word(context.bx+2);
+ context.ax = context.es.word(context.bx+2);
context._cmp(context.al, 4);
if (!context.flags.z()) goto forgotone;
context._cmp(context.ah, 255);
@@ -3018,18 +3018,18 @@ void initrain(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.bx = 1113;
checkmorerain:
- context.al = context.ds.byte(context.bx);
+ context.al = context.cs.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto finishinitrain;
context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto checkrain;
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.cs.byte(context.bx+1);
context._cmp(context.al, context.data.byte(147));
if (!context.flags.z()) goto checkrain;
- context.al = context.ds.byte(context.bx+2);
+ context.al = context.cs.byte(context.bx+2);
context._cmp(context.al, context.data.byte(148));
if (!context.flags.z()) goto checkrain;
- context.al = context.ds.byte(context.bx+3);
+ context.al = context.cs.byte(context.bx+3);
context.data.byte(131) = context.al;
goto dorain;
checkrain:
@@ -3085,7 +3085,7 @@ lookforlinestart:
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
foundlinestart:
- context.ds.word(context.di) = context.cx;
+ context.es.word(context.di) = context.cx;
context.bh = 1;
lookforlineend:
getblockofpixel(context);
@@ -3101,15 +3101,15 @@ lookforlineend:
goto lookforlineend;
foundlineend:
context.push(context.cx);
- context.ds.byte(context.di+2) = context.bh;
+ context.es.byte(context.di+2) = context.bh;
randomnumber(context);
- context.ds.byte(context.di+3) = context.al;
+ context.es.byte(context.di+3) = context.al;
randomnumber(context);
- context.ds.byte(context.di+4) = context.al;
+ context.es.byte(context.di+4) = context.al;
randomnumber(context);
context._and(context.al, 3);
context._add(context.al, 4);
- context.ds.byte(context.di+5) = context.al;
+ context.es.byte(context.di+5) = context.al;
context._add(context.di, 6);
context.cx = context.pop();
context._cmp(context.cl, 0);
@@ -3152,32 +3152,32 @@ void showrain(Context & context) {
context._add(context.si, 2080);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.es = context.data.word(410);
- context._cmp(context.ds.byte(context.bx), 255);
+ context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
morerain:
context.es = context.data.word(410);
- context._cmp(context.ds.byte(context.bx), 255);
+ context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto finishrain;
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.es.byte(context.bx+1);
context.ah = 0;
context._add(context.ax, context.data.word(117));
context._add(context.ax, context.data.word(125));
context.cx = 320;
context._mul(context.cx);
- context.cl = context.ds.byte(context.bx);
+ context.cl = context.es.byte(context.bx);
context.ch = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.data.word(115));
context._add(context.ax, context.data.word(123));
context.di = context.ax;
- context.cl = context.ds.byte(context.bx+2);
+ context.cl = context.es.byte(context.bx+2);
context.ch = 0;
- context.ax = context.ds.word(context.bx+3);
- context.dl = context.ds.byte(context.bx+5);
+ context.ax = context.es.word(context.bx+3);
+ context.dl = context.es.byte(context.bx+5);
context.dh = 0;
context._sub(context.ax, context.dx);
context._and(context.ax, 511);
- context.ds.word(context.bx+3) = context.ax;
+ context.es.word(context.bx+3) = context.ax;
context._add(context.bx, 6);
context.push(context.si);
context._add(context.si, context.ax);
@@ -3223,16 +3223,16 @@ nothunder:
void backobject(Context & context) {
context.ds = context.data.word(426);
- context.di = context.ds.word(context.bx+20);
- context.al = context.ds.byte(context.bx+18);
+ context.di = context.es.word(context.bx+20);
+ context.al = context.es.byte(context.bx+18);
context._cmp(context.al, 0);
if (context.flags.z()) goto _tmp48z;
context._sub(context.al, 1);
- context.ds.byte(context.bx+18) = context.al;
+ context.es.byte(context.bx+18) = context.al;
goto finishback;
_tmp48z:
context.al = context.ds.byte(context.di+7);
- context.ds.byte(context.bx+18) = context.al;
+ context.es.byte(context.bx+18) = context.al;
context.al = context.ds.byte(context.di+8);
context._cmp(context.al, 6);
if (!context.flags.z()) goto notwidedoor;
@@ -3277,7 +3277,7 @@ void liftsprite(Context & context) {
if (context.flags.z()) goto liftopen;
context._cmp(context.al, 3);
if (context.flags.z()) goto openlift;
- context.al = context.ds.byte(context.bx+19);
+ context.al = context.es.byte(context.bx+19);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishclose;
context._sub(context.al, 1);
@@ -3292,7 +3292,7 @@ finishclose:
context.data.byte(34) = 0;
return;
openlift:
- context.al = context.ds.byte(context.bx+19);
+ context.al = context.es.byte(context.bx+19);
context._cmp(context.al, 12);
if (context.flags.z()) goto endoflist;
context._add(context.al, 1);
@@ -3303,13 +3303,13 @@ openlift:
liftnoise(context);
context.ax = context.pop();
pokelift:
- context.ds.byte(context.bx+19) = context.al;
+ context.es.byte(context.bx+19) = context.al;
context.ah = 0;
context.push(context.di);
context._add(context.di, context.ax);
context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
return;
endoflist:
@@ -3370,31 +3370,31 @@ void random(Context & context) {
context._add(context.di, context.ax);
context.al = context.ds.byte(context.di);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
return;
}
void steady(Context & context) {
context.al = context.ds.byte(context.di+18);
context.ds.byte(context.di+17) = context.al;
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
return;
}
void constant(Context & context) {
- context._add(context.ds.byte(context.bx+19), 1);
- context.cl = context.ds.byte(context.bx+19);
+ context._add(context.es.byte(context.bx+19), 1);
+ context.cl = context.es.byte(context.bx+19);
context.ch = 0;
context._add(context.di, context.cx);
context._cmp(context.ds.byte(context.di+18), 255);
if (!context.flags.z()) goto gotconst;
context._sub(context.di, context.cx);
context.cx = 0;
- context.ds.byte(context.bx+19) = context.cl;
+ context.es.byte(context.bx+19) = context.cl;
gotconst:
context.al = context.ds.byte(context.di+18);
context._sub(context.di, context.cx);
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
return;
}
@@ -3420,8 +3420,8 @@ void widedoor(Context & context) {
void dodoor(Context & context) {
context.al = context.data.byte(150);
context.ah = context.data.byte(151);
- context.cl = context.ds.byte(context.bx+10);
- context.ch = context.ds.byte(context.bx+11);
+ context.cl = context.es.byte(context.bx+10);
+ context.ch = context.es.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor;
context._sub(context.al, context.cl);
@@ -3444,7 +3444,7 @@ botofdoor:
context._cmp(context.ah, context.data.byte(195));
if (!context.flags.c()) goto shutdoor;
opendoor:
- context.cl = context.ds.byte(context.bx+19);
+ context.cl = context.es.byte(context.bx+19);
context._cmp(context.data.byte(60), 1);
if (!context.flags.z()) goto notthrough;
context._cmp(context.cl, 0);
@@ -3470,15 +3470,15 @@ notdoorsound2:
context._sub(context.di, 1);
context._sub(context.cl, 1);
atlast1:
- context.ds.byte(context.bx+19) = context.cl;
+ context.es.byte(context.bx+19) = context.cl;
context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
context.data.byte(60) = 1;
return;
shutdoor:
- context.cl = context.ds.byte(context.bx+19);
+ context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
@@ -3491,14 +3491,14 @@ notdoorsound1:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast2;
context._sub(context.cl, 1);
- context.ds.byte(context.bx+19) = context.cl;
+ context.es.byte(context.bx+19) = context.cl;
atlast2:
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
@@ -3510,8 +3510,8 @@ notnearly:
void lockeddoorway(Context & context) {
context.al = context.data.byte(150);
context.ah = context.data.byte(151);
- context.cl = context.ds.byte(context.bx+10);
- context.ch = context.ds.byte(context.bx+11);
+ context.cl = context.es.byte(context.bx+10);
+ context.ch = context.es.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor2;
context._sub(context.al, context.cl);
@@ -3539,7 +3539,7 @@ opendoor2:
context._cmp(context.data.byte(36), 1);
if (context.flags.z()) goto shutdoor;
mustbeopen:
- context.cl = context.ds.byte(context.bx+19);
+ context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound4;
context.al = 0;
@@ -3554,7 +3554,7 @@ notdoorsound4:
context.bx = context.pop();
context.es = context.pop();
noturnonyet:
- context.cl = context.ds.byte(context.bx+19);
+ context.cl = context.es.byte(context.bx+19);
context._cmp(context.data.byte(60), 1);
if (!context.flags.z()) goto notthrough2;
context._cmp(context.cl, 0);
@@ -3571,10 +3571,10 @@ notthrough2:
context._sub(context.di, 1);
context._sub(context.cl, 1);
atlast3:
- context.ds.byte(context.bx+19) = context.cl;
+ context.es.byte(context.bx+19) = context.cl;
context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto justshutting;
@@ -3582,7 +3582,7 @@ atlast3:
justshutting:
return;
shutdoor2:
- context.cl = context.ds.byte(context.bx+19);
+ context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound3;
context.al = 1;
@@ -3591,7 +3591,7 @@ notdoorsound3:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast4;
context._sub(context.cl, 1);
- context.ds.byte(context.bx+19) = context.cl;
+ context.es.byte(context.bx+19) = context.cl;
atlast4:
context.ch = 0;
context.data.byte(60) = 0;
@@ -3599,7 +3599,7 @@ atlast4:
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notlocky;
@@ -3614,7 +3614,7 @@ notlocky:
return;
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
shutdoor:
- context.cl = context.ds.byte(context.bx+19);
+ context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
@@ -3627,14 +3627,14 @@ notdoorsound1:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast2;
context._sub(context.cl, 1);
- context.ds.byte(context.bx+19) = context.cl;
+ context.es.byte(context.bx+19) = context.cl;
atlast2:
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
context.di = context.pop();
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
@@ -3656,18 +3656,18 @@ void updatepeople(Context & context) {
context.bx = 534;
context.di = 991;
updateloop:
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto endupdate;
context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto notinthisroom;
- context.cx = context.ds.word(context.bx+1);
+ context.cx = context.es.word(context.bx+1);
context._cmp(context.cl, context.data.byte(147));
if (!context.flags.z()) goto notinthisroom;
context._cmp(context.ch, context.data.byte(148));
if (!context.flags.z()) goto notinthisroom;
context.push(context.di);
- context.ax = context.ds.word(context.di);
+ context.ax = context.cs.word(context.di);
__dispatch_call(context, context.ax);
context.di = context.pop();
notinthisroom:
@@ -3708,7 +3708,7 @@ void plotreel(Context & context) {
retryreel:
context.push(context.es);
context.push(context.si);
- context.ax = context.ds.word(context.si+2);
+ context.ax = context.es.word(context.si+2);
context._cmp(context.al, 220);
if (context.flags.c()) goto normalreel;
context._cmp(context.al, 255);
@@ -3725,7 +3725,7 @@ plotloop:
context.push(context.cx);
context.push(context.es);
context.push(context.si);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto notplot;
showreelframe(context);
@@ -3746,18 +3746,18 @@ void soundonreels(Context & context) {
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
context._add(context.bx, 1214);
- context.si = context.ds.word(context.bx);
+ context.si = context.cs.word(context.bx);
reelsoundloop:
- context.al = context.ds.byte(context.si);
+ context.al = context.cs.byte(context.si);
context._cmp(context.al, 255);
if (context.flags.z()) goto endreelsound;
- context.ax = context.ds.word(context.si+1);
+ context.ax = context.cs.word(context.si+1);
context._cmp(context.ax, context.data.word(237));
if (!context.flags.z()) goto skipreelsound;
context._cmp(context.ax, context.data.word(349));
if (context.flags.z()) goto skipreelsound;
context.data.word(349) = context.ax;
- context.al = context.ds.byte(context.si);
+ context.al = context.cs.byte(context.si);
context._cmp(context.al, 64);
if (context.flags.c()) { playchannel1(context); return; };
context._cmp(context.al, 128);
@@ -3889,14 +3889,14 @@ void getreelstart(Context & context) {
}
void showreelframe(Context & context) {
- context.al = context.ds.byte(context.si+2);
+ context.al = context.es.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
context._add(context.di, context.data.word(115));
- context.al = context.ds.byte(context.si+3);
+ context.al = context.es.byte(context.si+3);
context.bx = context.ax;
context._add(context.bx, context.data.word(117));
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context.data.word(158) = context.ax;
findsource(context);
context.ax = context.data.word(158);
@@ -3925,13 +3925,13 @@ void dumpeverything(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
dumpevery1:
- context.ax = context.ds.word(context.bx);
- context.cx = context.ds.word(context.bx+2);
+ context.ax = context.es.word(context.bx);
+ context.cx = context.es.word(context.bx+2);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto finishevery1;
- context._cmp(context.ax, context.ds.word(context.bx+(40*5)));
+ context._cmp(context.ax, context.es.word(context.bx+(40*5)));
if (!context.flags.z()) goto notskip1;
- context._cmp(context.cx, context.ds.word(context.bx+(40*5)+2));
+ context._cmp(context.cx, context.es.word(context.bx+(40*5)+2));
if (context.flags.z()) goto skip1;
notskip1:
context.push(context.bx);
@@ -3953,8 +3953,8 @@ skip1:
finishevery1:
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(40*5);
dumpevery2:
- context.ax = context.ds.word(context.bx);
- context.cx = context.ds.word(context.bx+2);
+ context.ax = context.es.word(context.bx);
+ context.cx = context.es.word(context.bx+2);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto finishevery2;
context.push(context.bx);
@@ -4142,15 +4142,15 @@ void dumpmap(Context & context) {
void pixelcheckset(Context & context) {
context.push(context.ax);
- context._sub(context.al, context.ds.byte(context.bx));
- context._sub(context.ah, context.ds.byte(context.bx+1));
+ context._sub(context.al, context.es.byte(context.bx));
+ context._sub(context.ah, context.es.byte(context.bx+1));
context.push(context.es);
context.push(context.bx);
context.push(context.cx);
context.push(context.ax);
- context.al = context.ds.byte(context.bx+4);
+ context.al = context.es.byte(context.bx+4);
getsetad(context);
- context.al = context.ds.byte(context.bx+17);
+ context.al = context.es.byte(context.bx+17);
context.es = context.data.word(442);
context.bx = 0;
context.ah = 0;
@@ -4161,16 +4161,16 @@ void pixelcheckset(Context & context) {
context.push(context.ax);
context.al = context.ah;
context.ah = 0;
- context.cl = context.ds.byte(context.bx);
+ context.cl = context.es.byte(context.bx);
context.ch = 0;
context._mul(context.cx);
context.cx = context.pop();
context.ch = 0;
context._add(context.ax, context.cx);
- context._add(context.ax, context.ds.word(context.bx+2));
+ context._add(context.ax, context.es.word(context.bx+2));
context.bx = context.ax;
context._add(context.bx, 0+2080);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.dl = context.al;
context.cx = context.pop();
context.bx = context.pop();
@@ -4303,7 +4303,7 @@ zoomloop2:
context._lodsb();
context.ah = context.al;
context._stosw();
- context.ds.word(context.di+320-2) = context.ax;
+ context.es.word(context.di+320-2) = context.ax;
if (--context.cx) goto zoomloop2;
context._add(context.si, 320-23);
context._add(context.di, 320-46+320);
@@ -5036,7 +5036,7 @@ bhloop2:
context.ch = 0;
context.ah = 255;
bhloop1:
- context._cmp(context.ds.byte(context.di), context.ah);
+ context._cmp(context.es.byte(context.di), context.ah);
if (!context.flags.z()) goto nofill;
context._movsb();
if (--context.cx) goto bhloop1;
@@ -5084,7 +5084,7 @@ frameloopfx3:
context._cmp(context.al, 0);
if (context.flags.z()) goto backtootherfx;
backtosolidfx:
- context.ds.byte(context.di) = context.al;
+ context.es.byte(context.di) = context.al;
context._sub(context.di, 1);
if (--context.cx) goto frameloopfx3;
context.cx = context.pop();
@@ -5129,16 +5129,16 @@ void transferinv(Context & context) {
context._add(context.si, context.ds.word(context.bx+2));
context.dx = context.ds.word(context.bx+4);
context.bx = context.pop();
- context.ds.byte(context.bx+0) = context.al;
- context.ds.byte(context.bx+1) = context.cl;
- context.ds.word(context.bx+4) = context.dx;
+ context.es.byte(context.bx+0) = context.al;
+ context.es.byte(context.bx+1) = context.cl;
+ context.es.word(context.bx+4) = context.dx;
context._mul(context.cx);
context.cx = context.ax;
context.push(context.cx);
while(--context.cx) context._movsb();
context.cx = context.pop();
context.ax = context.pop();
- context.ds.word(context.bx+2) = context.ax;
+ context.es.word(context.bx+2) = context.ax;
context._add(context.data.word(10), context.cx);
return;
}
@@ -5176,16 +5176,16 @@ void transfermap(Context & context) {
context._add(context.si, context.ds.word(context.bx+2));
context.dx = context.ds.word(context.bx+4);
context.bx = context.pop();
- context.ds.byte(context.bx+0) = context.al;
- context.ds.byte(context.bx+1) = context.cl;
- context.ds.word(context.bx+4) = context.dx;
+ context.es.byte(context.bx+0) = context.al;
+ context.es.byte(context.bx+1) = context.cl;
+ context.es.word(context.bx+4) = context.dx;
context._mul(context.cx);
context.cx = context.ax;
context.push(context.cx);
while(--context.cx) context._movsb();
context.cx = context.pop();
context.ax = context.pop();
- context.ds.word(context.bx+2) = context.ax;
+ context.es.word(context.bx+2) = context.ax;
context._add(context.data.word(10), context.cx);
return;
}
@@ -5294,9 +5294,9 @@ void fadescreendownhalf(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
halfend:
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._shr(context.al, 1);
- context.ds.byte(context.bx) = context.al;
+ context.es.byte(context.bx) = context.al;
context._add(context.bx, 1);
if (--context.cx) goto halfend;
context.ds = context.data.word(410);
@@ -5428,7 +5428,7 @@ void rollem(Context & context) {
multiget(context);
context.es = context.data.word(464);
context.si = 49*2;
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context.si = context.ax;
context._add(context.si, 66*2);
context.cx = 80;
@@ -5486,7 +5486,7 @@ onelot2:
if (--context.cx) goto endcredits22;
context.cx = context.pop();
looknext2:
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (context.flags.z()) goto gotnext2;
@@ -5515,19 +5515,19 @@ void fadecalculation(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
fadecolloop:
- context.al = context.ds.byte(context.si);
- context.ah = context.ds.byte(context.di);
+ context.al = context.es.byte(context.si);
+ context.ah = context.es.byte(context.di);
context._cmp(context.al, context.ah);
if (context.flags.z()) goto gotthere;
if (context.flags.c()) goto lesscolour;
- context._sub(context.ds.byte(context.si), 1);
+ context._sub(context.es.byte(context.si), 1);
goto gotthere;
lesscolour:
context._cmp(context.bl, context.ah);
if (context.flags.z()) goto withit;
if (!context.flags.c()) goto gotthere;
withit:
- context._add(context.ds.byte(context.si), 1);
+ context._add(context.es.byte(context.si), 1);
gotthere:
context._add(context.si, 1);
context._add(context.di, 1);
@@ -5547,17 +5547,17 @@ void greyscalesum(Context & context) {
greysumloop1:
context.push(context.cx);
context.bx = 0;
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.si+1);
+ context.al = context.es.byte(context.si+1);
context.ah = 0;
context.cx = 59;
context._mul(context.cx);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.si+2);
+ context.al = context.es.byte(context.si+2);
context.ah = 0;
context.cx = 11;
context._mul(context.cx);
@@ -5804,7 +5804,7 @@ nextmonkspeak:
context.si = context.ax;
context._add(context.si, context.si);
context.es = context.data.word(464);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
nextbit:
@@ -6159,7 +6159,7 @@ printloopslow5:
context.push(context.cx);
context.push(context.si);
context.push(context.es);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context.push(context.bx);
context.push(context.cx);
context.push(context.es);
@@ -6172,7 +6172,7 @@ printloopslow5:
context.es = context.pop();
context.cx = context.pop();
context.bx = context.pop();
- context.ax = context.ds.word(context.si+1);
+ context.ax = context.es.word(context.si+1);
context._add(context.si, 1);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishslow;
@@ -6286,7 +6286,7 @@ printloop6:
getnumber(context);
context.ch = 0;
printloop5:
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.si, 1);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishdirct;
@@ -6326,7 +6326,7 @@ printloop8:
getnumber(context);
context.ch = 0;
printloop7:
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (context.flags.z()) goto finishmon2;
@@ -6338,7 +6338,7 @@ printloop7:
if (context.flags.z()) goto finishmon;
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger;
- context.ah = context.ds.byte(context.si);
+ context.ah = context.es.byte(context.si);
context._add(context.si, 1);
context._add(context.si, 1);
goto finishmon;
@@ -6497,7 +6497,7 @@ notcent2:
void getnextword(Context & context) {
context.bx = 0;
getloop:
- context.ax = context.ds.word(context.di);
+ context.ax = context.es.word(context.di);
context._add(context.di, 1);
context._add(context.bh, 1);
context._cmp(context.al, ':');
@@ -6611,7 +6611,7 @@ ryanloop1:
context.push(context.cx);
context.push(context.di);
context.push(context.bx);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.si, 2);
context.push(context.si);
context.push(context.es);
@@ -6652,7 +6652,7 @@ openloop1:
context.push(context.cx);
context.push(context.di);
context.push(context.bx);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.si, 2);
context.push(context.si);
context.push(context.es);
@@ -6828,18 +6828,18 @@ finishfill:
}
void isitworn(Context & context) {
- context.al = context.ds.byte(context.bx+12);
+ context.al = context.es.byte(context.bx+12);
context._cmp(context.al, 'W'-'A');
if (!context.flags.z()) goto notworn;
- context.al = context.ds.byte(context.bx+13);
+ context.al = context.es.byte(context.bx+13);
context._cmp(context.al, 'E'-'A');
notworn:
return;
}
void makeworn(Context & context) {
- context.ds.byte(context.bx+12) = 'W'-'A';
- context.ds.byte(context.bx+13) = 'E'-'A';
+ context.es.byte(context.bx+12) = 'W'-'A';
+ context.es.byte(context.bx+13) = 'E'-'A';
return;
}
@@ -7030,7 +7030,7 @@ void openob(Context & context) {
context._mul(context.cx);
context._add(context.ax, 80);
context.bx = 2588;
- context.ds.word(context.bx) = context.ax;
+ context.cs.word(context.bx) = context.ax;
return;
}
@@ -7208,14 +7208,14 @@ describe:
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.si, context.ax);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
context.bx = context.ax;
tryagain:
context.push(context.si);
findnextcolon(context);
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context.cx = context.si;
context.si = context.pop();
context._cmp(context.data.byte(101), 1);
@@ -7236,9 +7236,9 @@ void searchforsame(Context & context) {
context.si = context.cx;
searchagain:
context._add(context.si, 1);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
search:
- context._cmp(context.ds.byte(context.si), context.al);
+ context._cmp(context.es.byte(context.si), context.al);
if (context.flags.z()) goto gotstartletter;
context._add(context.cx, 1);
context._add(context.si, 1);
@@ -7253,8 +7253,8 @@ gotstartletter:
keepchecking:
context._add(context.si, 1);
context._add(context.bx, 1);
- context.al = context.ds.byte(context.bx);
- context.ah = context.ds.byte(context.si);
+ context.al = context.es.byte(context.bx);
+ context.ah = context.es.byte(context.si);
context._cmp(context.al, ':');
if (context.flags.z()) goto foundmatch;
context._cmp(context.al, 0);
@@ -7272,7 +7272,7 @@ foundmatch:
void findnextcolon(Context & context) {
isntcolon:
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, 0);
if (context.flags.z()) goto endofcolon;
@@ -7398,7 +7398,7 @@ void setpickup(Context & context) {
context._cmp(context.data.byte(101), 3);
if (context.flags.z()) goto cantpick;
getanyad(context);
- context.al = context.ds.byte(context.bx+2);
+ context.al = context.es.byte(context.bx+2);
context._cmp(context.al, 4);
if (!context.flags.z()) goto canpick;
cantpick:
@@ -7437,8 +7437,8 @@ dosetpick:
context.data.byte(88) = context.al;
context.data.byte(101) = 4;
geteitherad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
openinv(context);
worktoscreenm(context);
return;
@@ -7477,7 +7477,7 @@ doexinv:
void reexfrominv(Context & context) {
findinvpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.data.byte(99) = context.ah;
context.data.byte(98) = context.al;
context.data.byte(107) = 1;
@@ -7488,7 +7488,7 @@ void reexfrominv(Context & context) {
void reexfromopen(Context & context) {
return;
findopenpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.data.byte(99) = context.ah;
context.data.byte(98) = context.al;
context.data.byte(107) = 1;
@@ -7522,12 +7522,12 @@ doswap1:
context.al = context.data.byte(88);
context.push(context.ax);
findinvpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.data.byte(88) = context.al;
context.data.byte(101) = context.ah;
geteitherad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
context.bl = context.data.byte(88);
context.bh = context.data.byte(101);
context.ax = context.pop();
@@ -7538,10 +7538,10 @@ doswap1:
delpointer(context);
context.al = context.data.byte(88);
geteitherad(context);
- context.ds.byte(context.bx+2) = 4;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 4;
+ context.es.byte(context.bx+3) = 255;
context.al = context.data.byte(106);
- context.ds.byte(context.bx+4) = context.al;
+ context.es.byte(context.bx+4) = context.al;
context.ax = context.pop();
context.data.byte(101) = context.ah;
context.data.byte(88) = context.al;
@@ -7600,22 +7600,22 @@ sizeok2:
context.al = context.data.byte(88);
context.push(context.ax);
findopenpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.data.byte(88) = context.al;
context.data.byte(101) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeswapex;
geteitherad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
goto actuallyswap;
makeswapex:
transfertoex(context);
context.data.byte(88) = context.al;
context.data.byte(101) = 4;
geteitherad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
actuallyswap:
context.bl = context.data.byte(88);
context.bh = context.data.byte(101);
@@ -7626,13 +7626,13 @@ actuallyswap:
findopenpos(context);
geteitherad(context);
context.al = context.data.byte(110);
- context.ds.byte(context.bx+2) = context.al;
+ context.es.byte(context.bx+2) = context.al;
context.al = context.data.byte(109);
- context.ds.byte(context.bx+3) = context.al;
+ context.es.byte(context.bx+3) = context.al;
context.al = context.data.byte(106);
- context.ds.byte(context.bx+4) = context.al;
+ context.es.byte(context.bx+4) = context.al;
context.al = context.data.byte(183);
- context.ds.byte(context.bx+5) = context.al;
+ context.es.byte(context.bx+5) = context.al;
context.ax = context.pop();
context.data.byte(101) = context.ah;
context.data.byte(88) = context.al;
@@ -7654,7 +7654,7 @@ void intoinv(Context & context) {
return;
notout:
findinvpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto canplace1;
swapwithinv(context);
@@ -7684,10 +7684,10 @@ doplace:
delpointer(context);
context.al = context.data.byte(88);
getexad(context);
- context.ds.byte(context.bx+2) = 4;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 4;
+ context.es.byte(context.bx+3) = 255;
context.al = context.data.byte(106);
- context.ds.byte(context.bx+4) = context.al;
+ context.es.byte(context.bx+4) = context.al;
context.data.byte(105) = 0;
fillryan(context);
readmouse(context);
@@ -7714,7 +7714,7 @@ takenloop:
context._add(context.bx, context.bx);
context._add(context.bx, context.bx);
context._add(context.bx, context.bx);
- context.ds.byte(context.bx+2) = 254;
+ context.es.byte(context.bx+2) = 254;
notinhere:
context._add(context.si, 16);
if (--context.cx) goto takenloop;
@@ -7723,7 +7723,7 @@ notinhere:
void outofinv(Context & context) {
findinvpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canpick2;
blank(context);
@@ -7757,12 +7757,12 @@ dograb:
delpointer(context);
context.data.byte(105) = 1;
findinvpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.data.byte(88) = context.al;
context.data.byte(101) = context.ah;
getexad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7810,17 +7810,17 @@ void getanyad(Context & context) {
if (context.flags.z()) goto isfree;
context.al = context.data.byte(98);
getsetad(context);
- context.ax = context.ds.word(context.bx+4);
+ context.ax = context.es.word(context.bx+4);
return;
isfree:
context.al = context.data.byte(98);
getfreead(context);
- context.ax = context.ds.word(context.bx+7);
+ context.ax = context.es.word(context.bx+7);
return;
isex:
context.al = context.data.byte(98);
getexad(context);
- context.ax = context.ds.word(context.bx+7);
+ context.ax = context.es.word(context.bx+7);
return;
}
@@ -7846,17 +7846,17 @@ void getopenedsize(Context & context) {
if (context.flags.z()) goto isfree2;
context.al = context.data.byte(109);
getsetad(context);
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
return;
isfree2:
context.al = context.data.byte(109);
getfreead(context);
- context.ax = context.ds.word(context.bx+7);
+ context.ax = context.es.word(context.bx+7);
return;
isex2:
context.al = context.data.byte(109);
getexad(context);
- context.ax = context.ds.word(context.bx+7);
+ context.ax = context.es.word(context.bx+7);
return;
}
@@ -7977,7 +7977,7 @@ notinlift:
context.data.byte(101) = 4;
context.al = context.data.byte(88);
getexad(context);
- context.ds.byte(context.bx+2) = 0;
+ context.es.byte(context.bx+2) = 0;
context.al = context.data.byte(150);
context._add(context.al, 4);
context.cl = 4;
@@ -7988,19 +7988,19 @@ notinlift:
context.cl = 4;
context._shr(context.ah, context.cl);
context._add(context.ah, context.data.byte(148));
- context.ds.byte(context.bx+3) = context.al;
- context.ds.byte(context.bx+5) = context.ah;
+ context.es.byte(context.bx+3) = context.al;
+ context.es.byte(context.bx+5) = context.ah;
context.al = context.data.byte(150);
context._add(context.al, 4);
context._and(context.al, 15);
context.ah = context.data.byte(151);
context._add(context.ah, 8);
context._and(context.ah, 15);
- context.ds.byte(context.bx+4) = context.al;
- context.ds.byte(context.bx+6) = context.ah;
+ context.es.byte(context.bx+4) = context.al;
+ context.es.byte(context.bx+6) = context.ah;
context.data.byte(105) = 0;
context.al = context.data.byte(183);
- context.ds.byte(context.bx) = context.al;
+ context.es.byte(context.bx) = context.al;
return;
}
@@ -8125,7 +8125,7 @@ void useopened(Context & context) {
return;
notout2:
findopenpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto canplace3;
swapwithopen(context);
@@ -8183,13 +8183,13 @@ sizeok1:
context.al = context.data.byte(88);
geteitherad(context);
context.al = context.data.byte(110);
- context.ds.byte(context.bx+2) = context.al;
+ context.es.byte(context.bx+2) = context.al;
context.al = context.data.byte(109);
- context.ds.byte(context.bx+3) = context.al;
+ context.es.byte(context.bx+3) = context.al;
context.al = context.data.byte(106);
- context.ds.byte(context.bx+4) = context.al;
+ context.es.byte(context.bx+4) = context.al;
context.al = context.data.byte(183);
- context.ds.byte(context.bx+5) = context.al;
+ context.es.byte(context.bx+5) = context.al;
fillopen(context);
undertextline(context);
readmouse(context);
@@ -8275,7 +8275,7 @@ void checkobjectsize(Context & context) {
context.push(context.ax);
context.al = context.data.byte(88);
geteitherad(context);
- context.al = context.ds.byte(context.bx+9);
+ context.al = context.es.byte(context.bx+9);
context.cx = context.pop();
context._cmp(context.al, 255);
if (!context.flags.z()) goto notunsized;
@@ -8315,7 +8315,7 @@ void outofopen(Context & context) {
context._cmp(context.data.byte(109), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canpick4;
cantuseopen:
@@ -8347,22 +8347,22 @@ dogrb:
delpointer(context);
context.data.byte(105) = 1;
findopenpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context.data.byte(88) = context.al;
context.data.byte(101) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeintoex;
geteitherad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
goto actuallyout;
makeintoex:
transfertoex(context);
context.data.byte(88) = context.al;
context.data.byte(101) = 4;
geteitherad(context);
- context.ds.byte(context.bx+2) = 20;
- context.ds.byte(context.bx+3) = 255;
+ context.es.byte(context.bx+2) = 20;
+ context.es.byte(context.bx+3) = 255;
actuallyout:
fillopen(context);
undertextline(context);
@@ -8390,14 +8390,14 @@ void transfertoex(Context & context) {
while(--context.cx) context._movsw();
context.di = context.pop();
context.al = context.data.byte(183);
- context.ds.byte(context.di) = context.al;
- context.ds.byte(context.di+11) = context.al;
+ context.es.byte(context.di) = context.al;
+ context.es.byte(context.di+11) = context.al;
context.al = context.data.byte(88);
- context.ds.byte(context.di+1) = context.al;
- context.ds.byte(context.di+2) = 4;
- context.ds.byte(context.di+3) = 255;
+ context.es.byte(context.di+1) = context.al;
+ context.es.byte(context.di+2) = 4;
+ context.es.byte(context.di+3) = 255;
context.al = context.data.byte(106);
- context.ds.byte(context.di+4) = context.al;
+ context.es.byte(context.di+4) = context.al;
context.al = context.data.byte(88);
context.data.byte(89) = context.al;
transfermap(context);
@@ -8431,9 +8431,9 @@ pickupcontloop:
context.push(context.bx);
context.push(context.dx);
context.push(context.ax);
- context._cmp(context.ds.byte(context.bx+2), context.ah);
+ context._cmp(context.es.byte(context.bx+2), context.ah);
if (!context.flags.z()) goto notinsidethis;
- context._cmp(context.ds.byte(context.bx+3), context.al);
+ context._cmp(context.es.byte(context.bx+3), context.al);
if (!context.flags.z()) goto notinsidethis;
context.data.byte(89) = context.cl;
transfercontoex(context);
@@ -8466,12 +8466,12 @@ void transfercontoex(Context & context) {
context.di = context.pop();
context.dx = context.pop();
context.al = context.data.byte(183);
- context.ds.byte(context.di) = context.al;
- context.ds.byte(context.di+11) = context.al;
+ context.es.byte(context.di) = context.al;
+ context.es.byte(context.di+11) = context.al;
context.al = context.data.byte(89);
- context.ds.byte(context.di+1) = context.al;
- context.ds.byte(context.di+3) = context.dl;
- context.ds.byte(context.di+2) = 4;
+ context.es.byte(context.di+1) = context.al;
+ context.es.byte(context.di+3) = context.dl;
+ context.es.byte(context.di+2) = 4;
transfermap(context);
transferinv(context);
transfertext(context);
@@ -8489,7 +8489,7 @@ void transfertext(Context & context) {
context.bx = 0+2080+30000+(16*114);
context._add(context.bx, context.ax);
context.di = context.data.word(12);
- context.ds.word(context.bx) = context.di;
+ context.es.word(context.bx) = context.di;
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
context.al = context.data.byte(89);
context.ah = 0;
@@ -8514,7 +8514,7 @@ void getexpos(Context & context) {
context.al = 0;
context.di = 0+2080+30000;
tryanotherex:
- context._cmp(context.ds.byte(context.di+2), 255);
+ context._cmp(context.es.byte(context.di+2), 255);
if (context.flags.z()) goto foundnewex;
context._add(context.di, 16);
context._add(context.al, 1);
@@ -8532,9 +8532,9 @@ void purgealocation(Context & context) {
context.bx = context.pop();
context.cx = 0;
purgeloc:
- context._cmp(context.bl, context.ds.byte(context.di+0));
+ context._cmp(context.bl, context.es.byte(context.di+0));
if (!context.flags.z()) goto dontpurge;
- context._cmp(context.ds.byte(context.di+2), 0);
+ context._cmp(context.es.byte(context.di+2), 0);
if (!context.flags.z()) goto dontpurge;
context.push(context.di);
context.push(context.es);
@@ -8578,15 +8578,15 @@ void purgeanitem(Context & context) {
context.bl = context.data.byte(183);
context.cx = 0;
lookforpurge:
- context.al = context.ds.byte(context.di+2);
+ context.al = context.es.byte(context.di+2);
context._cmp(context.al, 0);
if (!context.flags.z()) goto cantpurge;
- context._cmp(context.ds.byte(context.di+12), 2);
+ context._cmp(context.es.byte(context.di+12), 2);
if (context.flags.z()) goto iscup;
- context._cmp(context.ds.byte(context.di+12), 255);
+ context._cmp(context.es.byte(context.di+12), 255);
if (!context.flags.z()) goto cantpurge;
iscup:
- context._cmp(context.ds.byte(context.di+11), context.bl);
+ context._cmp(context.es.byte(context.di+11), context.bl);
if (context.flags.z()) goto cantpurge;
deleteexobject(context);
return;
@@ -8599,10 +8599,10 @@ cantpurge:
context.bl = context.data.byte(183);
context.cx = 0;
lookforpurge2:
- context.al = context.ds.byte(context.di+2);
+ context.al = context.es.byte(context.di+2);
context._cmp(context.al, 0);
if (!context.flags.z()) goto cantpurge2;
- context._cmp(context.ds.byte(context.di+12), 255);
+ context._cmp(context.es.byte(context.di+12), 255);
if (!context.flags.z()) goto cantpurge2;
deleteexobject(context);
return;
@@ -8641,7 +8641,7 @@ void deleteexobject(Context & context) {
context.di = 0+2080+30000;
context.cx = 0;
deleteconts:
- context._cmp(context.ds.word(context.di+2), context.bx);
+ context._cmp(context.es.word(context.di+2), context.bx);
if (!context.flags.z()) goto notinsideex;
context.push(context.bx);
context.push(context.cx);
@@ -8665,16 +8665,16 @@ void deleteexframe(Context & context) {
context._add(context.di, context.ax);
context._add(context.ax, context.ax);
context._add(context.di, context.ax);
- context.al = context.ds.byte(context.di);
+ context.al = context.es.byte(context.di);
context.ah = 0;
- context.cl = context.ds.byte(context.di+1);
+ context.cl = context.es.byte(context.di+1);
context.ch = 0;
context._mul(context.cx);
- context.si = context.ds.word(context.di+2);
+ context.si = context.es.word(context.di+2);
context.push(context.si);
context._add(context.si, 0+2080);
context.cx = 30000;
- context._sub(context.cx, context.ds.word(context.di+2));
+ context._sub(context.cx, context.es.word(context.di+2));
context.di = context.si;
context._add(context.si, context.ax);
context.push(context.ax);
@@ -8686,12 +8686,12 @@ void deleteexframe(Context & context) {
context.cx = 114*3;
context.di = 0;
shuffleadsdown:
- context.ax = context.ds.word(context.di+2);
+ context.ax = context.es.word(context.di+2);
context._cmp(context.ax, context.si);
if (context.flags.c()) goto beforethisone;
context._sub(context.ax, context.bx);
beforethisone:
- context.ds.word(context.di+2) = context.ax;
+ context.es.word(context.di+2) = context.ax;
context._add(context.di, 6);
if (--context.cx) goto shuffleadsdown;
return;
@@ -8702,14 +8702,14 @@ void deleteextext(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.di, context.ax);
- context.ax = context.ds.word(context.di);
+ context.ax = context.es.word(context.di);
context.si = context.ax;
context.di = context.ax;
context._add(context.si, 0+2080+30000+(16*114)+((114+2)*2));
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
context.ax = 0;
findlenextext:
- context.cl = context.ds.byte(context.si);
+ context.cl = context.es.byte(context.si);
context._add(context.ax, 1);
context._add(context.si, 1);
context._cmp(context.cl, 0);
@@ -8727,12 +8727,12 @@ findlenextext:
context.cx = 114;
context.di = 0+2080+30000+(16*114);
shuffletextads:
- context.ax = context.ds.word(context.di);
+ context.ax = context.es.word(context.di);
context._cmp(context.ax, context.si);
if (context.flags.c()) goto beforethistext;
context._sub(context.ax, context.bx);
beforethistext:
- context.ds.word(context.di) = context.ax;
+ context.es.word(context.di) = context.ax;
context._add(context.di, 2);
if (--context.cx) goto shuffletextads;
return;
@@ -8875,7 +8875,7 @@ finishdim4:
void addalong(Context & context) {
context.ah = 11;
addloop:
- context._cmp(context.ds.byte(context.bx), 0);
+ context._cmp(context.es.byte(context.bx), 0);
if (!context.flags.z()) goto gotalong;
context._add(context.bx, 3);
context._sub(context.ah, 1);
@@ -8890,7 +8890,7 @@ gotalong:
void addlength(Context & context) {
context.ah = 10;
addloop2:
- context._cmp(context.ds.byte(context.bx), 0);
+ context._cmp(context.es.byte(context.bx), 0);
if (!context.flags.z()) goto gotlength;
context._add(context.bx, 3*11);
context._sub(context.ah, 1);
@@ -8948,7 +8948,7 @@ void eraseoldobs(Context & context) {
oberase:
context.push(context.cx);
context.push(context.bx);
- context.ax = context.ds.word(context.bx+20);
+ context.ax = context.es.word(context.bx+20);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto notthisob;
context.di = context.bx;
@@ -8992,7 +8992,7 @@ showobsloop:
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankframe;
- context.al = context.ds.byte(context.si+18);
+ context.al = context.es.byte(context.si+18);
context.ah = 0;
context.data.word(158) = context.ax;
context._cmp(context.al, 255);
@@ -9003,13 +9003,13 @@ showobsloop:
finalframe(context);
context.si = context.pop();
context.es = context.pop();
- context.al = context.ds.byte(context.si+18);
- context.ds.byte(context.si+17) = context.al;
- context._cmp(context.ds.byte(context.si+8), 0);
+ context.al = context.es.byte(context.si+18);
+ context.es.byte(context.si+17) = context.al;
+ context._cmp(context.es.byte(context.si+8), 0);
if (!context.flags.z()) goto animating;
- context._cmp(context.ds.byte(context.si+5), 5);
+ context._cmp(context.es.byte(context.si+5), 5);
if (context.flags.z()) goto animating;
- context._cmp(context.ds.byte(context.si+5), 6);
+ context._cmp(context.es.byte(context.si+5), 6);
if (context.flags.z()) goto animating;
context.ax = context.data.word(158);
context.ah = 0;
@@ -9024,14 +9024,14 @@ drawnsetob:
context.es = context.data.word(410);
context.al = context.data.byte(178);
context.ah = context.data.byte(179);
- context.ds.word(context.si) = context.ax;
+ context.es.word(context.si) = context.ax;
context.cx = context.ax;
context.ax = context.data.word(174);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
- context.ds.word(context.si+2) = context.ax;
+ context.es.word(context.si+2) = context.ax;
context.al = context.data.byte(180);
- context.ds.byte(context.si+4) = context.al;
+ context.es.byte(context.si+4) = context.al;
context._add(context.si, 5);
context.data.word(16) = context.si;
blankframe:
@@ -9049,8 +9049,8 @@ finishedsetobs:
void makebackob(Context & context) {
context._cmp(context.data.byte(61), 0);
if (context.flags.z()) goto nomake;
- context.al = context.ds.byte(context.si+5);
- context.ah = context.ds.byte(context.si+8);
+ context.al = context.es.byte(context.si+5);
+ context.ah = context.es.byte(context.si+8);
context.push(context.si);
context.push(context.ax);
context.push(context.si);
@@ -9063,17 +9063,17 @@ void makebackob(Context & context) {
context.di = 0;
makesprite(context);
context.ax = context.pop();
- context.ds.word(context.bx+20) = context.ax;
+ context.es.word(context.bx+20) = context.ax;
context.ax = context.pop();
context._cmp(context.al, 255);
if (!context.flags.z()) goto usedpriority;
context.al = 0;
usedpriority:
- context.ds.byte(context.bx+23) = context.al;
- context.ds.byte(context.bx+30) = context.ah;
- context.ds.byte(context.bx+16) = 0;
- context.ds.byte(context.bx+18) = 0;
- context.ds.byte(context.bx+19) = 0;
+ context.es.byte(context.bx+23) = context.al;
+ context.es.byte(context.bx+30) = context.ah;
+ context.es.byte(context.bx+16) = 0;
+ context.es.byte(context.bx+18) = 0;
+ context.es.byte(context.bx+19) = 0;
context.si = context.pop();
nomake:
return;
@@ -9132,17 +9132,17 @@ loop127:
context.es = context.data.word(410);
context.al = context.data.byte(178);
context.ah = context.data.byte(179);
- context.ds.word(context.si) = context.ax;
+ context.es.word(context.si) = context.ax;
context.cx = context.ax;
context.ax = context.data.word(174);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
- context.ds.word(context.si+2) = context.ax;
+ context.es.word(context.si+2) = context.ax;
context.ax = context.pop();
context.cx = context.pop();
context.push(context.cx);
context.push(context.ax);
- context.ds.byte(context.si+4) = context.cl;
+ context.es.byte(context.si+4) = context.cl;
context._add(context.si, 5);
context.data.word(16) = context.si;
over138:
@@ -9181,9 +9181,9 @@ exloop:
context.es = context.data.word(396);
context.push(context.si);
context.ch = 0;
- context._cmp(context.ds.byte(context.si), 255);
+ context._cmp(context.es.byte(context.si), 255);
if (context.flags.z()) goto notinroom;
- context.al = context.ds.byte(context.si-2);
+ context.al = context.es.byte(context.si-2);
context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto notinroom;
getmapad(context);
@@ -9216,17 +9216,17 @@ notinroom:
context.es = context.data.word(410);
context.al = context.data.byte(178);
context.ah = context.data.byte(179);
- context.ds.word(context.si) = context.ax;
+ context.es.word(context.si) = context.ax;
context.cx = context.ax;
context.ax = context.data.word(174);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
- context.ds.word(context.si+2) = context.ax;
+ context.es.word(context.si+2) = context.ax;
context.ax = context.pop();
context.cx = context.pop();
context.push(context.cx);
context.push(context.ax);
- context.ds.byte(context.si+4) = context.cl;
+ context.es.byte(context.si+4) = context.cl;
context._add(context.si, 5);
context.data.word(16) = context.si;
blankex:
@@ -9316,11 +9316,11 @@ over146:
}
void getxad(Context & context) {
- context.cl = context.ds.byte(context.si);
+ context.cl = context.es.byte(context.si);
context._add(context.si, 1);
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
- context.ah = context.ds.byte(context.si);
+ context.ah = context.es.byte(context.si);
context._add(context.si, 1);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto over148;
@@ -9340,9 +9340,9 @@ over148:
}
void getyad(Context & context) {
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
- context.ah = context.ds.byte(context.si);
+ context.ah = context.es.byte(context.si);
context._add(context.si, 1);
context._sub(context.al, context.data.byte(148));
if (context.flags.c()) goto over147;
@@ -9413,7 +9413,7 @@ void dolook(Context & context) {
context._add(context.bx, context.bx);
context.es = context.data.word(434);
context._add(context.bx, 0);
- context.si = context.ds.word(context.bx);
+ context.si = context.es.word(context.bx);
context._add(context.si, 0+(38*2));
findnextcolon(context);
context.di = 66;
@@ -9510,9 +9510,9 @@ finishtalk:
context.es = context.cs;
context._cmp(context.data.byte(245), 4);
if (context.flags.c()) goto notnexttalk;
- context.al = context.ds.byte(context.bx+7);
+ context.al = context.es.byte(context.bx+7);
context._or(context.al, 128);
- context.ds.byte(context.bx+7) = context.al;
+ context.es.byte(context.bx+7) = context.al;
notnexttalk:
redrawmainscrn(context);
worktoscreenm(context);
@@ -9546,7 +9546,7 @@ void getpersframe(Context & context) {
context.bx = context.ax;
context.es = context.data.word(446);
context._add(context.bx, 0);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
return;
}
@@ -9581,7 +9581,7 @@ void getpersontext(Context & context) {
context.es = context.data.word(446);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
return;
@@ -9634,10 +9634,10 @@ watchtalk:
context.es = context.data.word(446);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
- context._cmp(context.ds.byte(context.si), 0);
+ context._cmp(context.es.byte(context.si), 0);
if (context.flags.z()) goto endwatchtalk;
context.push(context.es);
context.push(context.si);
@@ -9674,14 +9674,14 @@ watchtalk:
context.es = context.data.word(446);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
- context._cmp(context.ds.byte(context.si), 0);
+ context._cmp(context.es.byte(context.si), 0);
if (context.flags.z()) goto endwatchtalk;
- context._cmp(context.ds.byte(context.si), ':');
+ context._cmp(context.es.byte(context.si), ':');
if (context.flags.z()) goto skiptalk;
- context._cmp(context.ds.byte(context.si), 32);
+ context._cmp(context.es.byte(context.si), 32);
if (context.flags.z()) goto skiptalk;
context.push(context.es);
context.push(context.si);
@@ -9919,7 +9919,7 @@ alreadyinfo:
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(454);
- context.si = context.ds.word(context.bx);
+ context.si = context.es.word(context.bx);
context._add(context.si, 66*2);
findnextcolon(context);
context.di = 63;
@@ -9964,7 +9964,7 @@ void putundercentre(Context & context) {
void locationpic(Context & context) {
getdestinfo(context);
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context.push(context.es);
context.push(context.si);
context.di = 0;
@@ -9997,7 +9997,7 @@ notinthisone:
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(454);
- context.si = context.ds.word(context.bx);
+ context.si = context.es.word(context.bx);
context._add(context.si, 66*2);
context.di = 50;
context.bx = 20;
@@ -10016,7 +10016,7 @@ void getdestinfo(Context & context) {
context.es = context.dx;
context.si = 7782;
context._add(context.si, context.ax);
- context.cl = context.ds.byte(context.si);
+ context.cl = context.es.byte(context.si);
context.ax = context.pop();
context.push(context.cx);
context.dx = context.ds;
@@ -10150,7 +10150,7 @@ void getlocation(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 7782);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
return;
}
@@ -10160,7 +10160,7 @@ void setlocation(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 7782);
- context.ds.byte(context.bx) = 1;
+ context.es.byte(context.bx) = 1;
return;
}
@@ -10207,7 +10207,7 @@ clearedlocations:
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 7782);
- context.ds.byte(context.bx) = 0;
+ context.es.byte(context.bx) = 0;
return;
}
@@ -10241,11 +10241,11 @@ void usemon(Context & context) {
while(--context.cx) context._stosb();
context.es = context.cs;
context.di = 2807;
- context.ds.byte(context.di) = 1;
+ context.es.byte(context.di) = 1;
context._add(context.di, 26);
context.cx = 3;
keyloop:
- context.ds.byte(context.di) = 0;
+ context.es.byte(context.di) = 0;
context._add(context.di, 26);
if (--context.cx) goto keyloop;
createpanel(context);
@@ -10358,7 +10358,7 @@ void loadpersonal(Context & context) {
foundpersonal:
openfile(context);
readheader(context);
- context.bx = context.ds.word(context.di);
+ context.bx = context.es.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
@@ -10387,7 +10387,7 @@ void loadnews(Context & context) {
foundnews:
openfile(context);
readheader(context);
- context.bx = context.ds.word(context.di);
+ context.bx = context.es.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
@@ -10419,7 +10419,7 @@ void loadcart(Context & context) {
gotcart:
openfile(context);
readheader(context);
- context.bx = context.ds.word(context.di);
+ context.bx = context.es.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
@@ -10443,7 +10443,7 @@ void lookininterface(Context & context) {
checkinside(context);
context._cmp(context.cl, 114);
if (context.flags.z()) goto emptyinterface;
- context.al = context.ds.byte(context.bx+15);
+ context.al = context.es.byte(context.bx+15);
context._add(context.al, 1);
return;
emptyinterface:
@@ -10641,7 +10641,7 @@ notleadingspace:
context.si = context.data.word(314);
context._add(context.si, context.si);
context._add(context.si, 7816);
- context.ds.byte(context.si) = context.al;
+ context.es.byte(context.si) = context.al;
context._cmp(context.al, 'Z'+1);
if (!context.flags.c()) goto waitkey;
context.push(context.ax);
@@ -10668,7 +10668,7 @@ notleadingspace:
printchar(context);
context.si = context.pop();
context.es = context.pop();
- context.ds.byte(context.si+1) = context.cl;
+ context.es.byte(context.si+1) = context.cl;
context.ch = 0;
context._add(context.data.word(316), context.cx);
context._add(context.data.word(314), 1);
@@ -10692,8 +10692,8 @@ void delchar(Context & context) {
context._add(context.si, context.si);
context.es = context.cs;
context._add(context.si, 7816);
- context.ds.byte(context.si) = 0;
- context.al = context.ds.byte(context.si+1);
+ context.es.byte(context.si) = 0;
+ context.al = context.es.byte(context.si+1);
context.ah = 0;
context._sub(context.data.word(316), context.ax);
context._sub(context.data.word(310), context.ax);
@@ -10732,7 +10732,7 @@ comloop:
comloop2:
context.al = context.ds.byte(context.si);
context._add(context.si, 2);
- context.ah = context.ds.byte(context.bx);
+ context.ah = context.es.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.ah, 32);
if (context.flags.z()) goto foundcom;
@@ -10798,7 +10798,7 @@ void dircom(Context & context) {
context.cx = 30;
randomaccess(context);
parser(context);
- context._cmp(context.ds.byte(context.di+1), 0);
+ context._cmp(context.es.byte(context.di+1), 0);
if (context.flags.z()) goto dirroot;
dirfile(context);
return;
@@ -10829,7 +10829,7 @@ dirroot:
void searchforfiles(Context & context) {
context.bx = 66*2;
directloop1:
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.al, '*');
if (context.flags.z()) goto endofdir;
@@ -10858,7 +10858,7 @@ signonloop2:
context._cmp(context.al, 32);
if (context.flags.z()) goto foundsign;
makecaps(context);
- context.ah = context.ds.byte(context.di);
+ context.ah = context.es.byte(context.di);
context._add(context.di, 1);
context._cmp(context.al, context.ah);
if (!context.flags.z()) goto nomatch;
@@ -10878,7 +10878,7 @@ foundsign:
context.cx = context.pop();
context.bx = context.si;
context.es = context.ds;
- context._cmp(context.ds.byte(context.bx), 0);
+ context._cmp(context.es.byte(context.bx), 0);
if (context.flags.z()) goto notyetassigned;
context.al = 17;
monmessage(context);
@@ -10907,7 +10907,7 @@ notyetassigned:
context.si = 7816;
checkpass:
context._lodsw();
- context.ah = context.ds.byte(context.bx);
+ context.ah = context.es.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.ah, 32);
if (context.flags.z()) goto passpassed;
@@ -10932,7 +10932,7 @@ passpassed:
scrollmonitor(context);
context.bx = context.pop();
context.es = context.pop();
- context.ds.byte(context.bx) = 1;
+ context.es.byte(context.bx) = 1;
return;
}
@@ -10948,7 +10948,7 @@ void showkeys(Context & context) {
keysloop:
context.push(context.cx);
context.push(context.bx);
- context._cmp(context.ds.byte(context.bx), 0);
+ context._cmp(context.es.byte(context.bx), 0);
if (context.flags.z()) goto notheld;
context._add(context.bx, 14);
monprint(context);
@@ -10965,7 +10965,7 @@ void read(Context & context) {
context.cx = 40;
randomaccess(context);
parser(context);
- context._cmp(context.ds.byte(context.di+1), 0);
+ context._cmp(context.es.byte(context.di+1), 0);
if (!context.flags.z()) goto okcom;
neterror(context);
return;
@@ -11023,7 +11023,7 @@ findtopictext:
context.es = context.pop();
moretopic:
monprint(context);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._cmp(context.al, 34);
if (context.flags.z()) goto endoftopic;
context._cmp(context.al, '=');
@@ -11045,7 +11045,7 @@ endoftopic:
void dirfile(Context & context) {
context.al = 34;
- context.ds.byte(context.di) = context.al;
+ context.es.byte(context.di) = context.al;
context.push(context.es);
context.push(context.di);
context.ds = context.data.word(464);
@@ -11099,7 +11099,7 @@ keyok2:
context.bx = context.pop();
context.es = context.pop();
directloop2:
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.al, 34);
if (context.flags.z()) goto endofdir2;
@@ -11116,11 +11116,11 @@ endofdir2:
void getkeyandlogo(Context & context) {
context._add(context.bx, 1);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
context.data.byte(270) = context.al;
context._add(context.bx, 2);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
context.data.byte(275) = context.al;
context._add(context.bx, 1);
@@ -11133,7 +11133,7 @@ void getkeyandlogo(Context & context) {
context.es = context.cs;
context.bx = 2807;
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._cmp(context.al, 1);
if (context.flags.z()) goto keyok;
context.push(context.bx);
@@ -11159,7 +11159,7 @@ keyok:
}
void searchforstring(Context & context) {
- context.dl = context.ds.byte(context.di);
+ context.dl = context.es.byte(context.di);
context.cx = context.di;
restartlook:
context.di = context.cx;
@@ -11175,7 +11175,7 @@ keeplooking:
context._cmp(context.al, 34);
if (context.flags.z()) goto notfound;
nofindingtopic:
- context.ah = context.ds.byte(context.di);
+ context.ah = context.es.byte(context.di);
context._cmp(context.al, context.dl);
if (!context.flags.z()) goto notbracket;
context._add(context.dh, 1);
@@ -11306,7 +11306,7 @@ void showcurrentfile(Context & context) {
context.bx = 37;
context.si = 2892+1;
curfileloop:
- context.al = context.ds.byte(context.si);
+ context.al = context.cs.byte(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishfile;
context._add(context.si, 1);
@@ -11327,7 +11327,7 @@ void monmessage(Context & context) {
context.cl = context.al;
context.ch = 0;
monmessageloop:
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._add(context.bx, 1);
context._cmp(context.al, '+');
if (!context.flags.z()) goto monmessageloop;
@@ -11515,19 +11515,19 @@ checkuselist:
context.push(context.si);
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.ds.byte(context.bx+12));
+ context._cmp(context.al, context.es.byte(context.bx+12));
if (!context.flags.z()) goto failed;
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.ds.byte(context.bx+13));
+ context._cmp(context.al, context.es.byte(context.bx+13));
if (!context.flags.z()) goto failed;
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.ds.byte(context.bx+14));
+ context._cmp(context.al, context.es.byte(context.bx+14));
if (!context.flags.z()) goto failed;
context._lodsb();
context._sub(context.al, 'A');
- context._cmp(context.al, context.ds.byte(context.bx+15));
+ context._cmp(context.al, context.es.byte(context.bx+15));
if (!context.flags.z()) goto failed;
context._lodsw();
context.si = context.pop();
@@ -11546,7 +11546,7 @@ failed:
findnextcolon(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto cantuse2;
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto cantuse2;
usetext(context);
@@ -11611,7 +11611,7 @@ tapwith:
fillcupfromtap:
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+15) = 'F'-'A';
+ context.es.byte(context.bx+15) = 'F'-'A';
context.al = 8;
playchannel1(context);
context.cx = 300;
@@ -11671,7 +11671,7 @@ void opentomb(Context & context) {
void usetrainer(Context & context) {
getanyad(context);
- context._cmp(context.ds.byte(context.bx+2), 4);
+ context._cmp(context.es.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
context._add(context.data.byte(1), 1);
makeworn(context);
@@ -11736,7 +11736,7 @@ fillcup:
putbackobstuff(context);
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+15) = 'F'-'A';
+ context.es.byte(context.bx+15) = 'F'-'A';
return;
alreadyfull:
context.cx = 300;
@@ -11802,7 +11802,7 @@ isrightkey:
void chewy(Context & context) {
showfirstuse(context);
getanyad(context);
- context.ds.byte(context.bx+2) = 255;
+ context.es.byte(context.bx+2) = 255;
context.data.byte(102) = 1;
return;
}
@@ -12002,7 +12002,7 @@ slabwith:
nextslab:
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+2) = 0;
+ context.es.byte(context.bx+2) = 0;
context.al = context.data.byte(98);
context.push(context.ax);
removesetobject(context);
@@ -12049,7 +12049,7 @@ cartwith:
nextcart:
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+2) = 0;
+ context.es.byte(context.bx+2) = 0;
context.al = context.data.byte(98);
context.push(context.ax);
removesetobject(context);
@@ -12150,7 +12150,7 @@ destoryopenbox:
showpuztext(context);
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+15) = 'E'-'A';
+ context.es.byte(context.bx+15) = 'E'-'A';
context.data.word(19) = 140;
context.data.word(21) = 105;
context.data.word(23) = 181;
@@ -12253,7 +12253,7 @@ righthand:
removesetobject(context);
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+2) = 255;
+ context.es.byte(context.bx+2) = 255;
context.data.byte(46) = 1;
context.data.byte(102) = 1;
return;
@@ -12349,7 +12349,7 @@ void openlouis(Context & context) {
void nextcolon(Context & context) {
lookcolon:
- context.al = context.ds.byte(context.si);
+ context.al = context.es.byte(context.si);
context._add(context.si, 1);
context._cmp(context.al, ':');
if (!context.flags.z()) goto lookcolon;
@@ -12456,13 +12456,13 @@ void isitright(Context & context) {
context.bx = context.ds;
context.es = context.bx;
context.bx = 8344;
- context._cmp(context.ds.byte(context.bx+0), context.al);
+ context._cmp(context.es.byte(context.bx+0), context.al);
if (!context.flags.z()) goto notright;
- context._cmp(context.ds.byte(context.bx+1), context.ah);
+ context._cmp(context.es.byte(context.bx+1), context.ah);
if (!context.flags.z()) goto notright;
- context._cmp(context.ds.byte(context.bx+2), context.cl);
+ context._cmp(context.es.byte(context.bx+2), context.cl);
if (!context.flags.z()) goto notright;
- context._cmp(context.ds.byte(context.bx+3), context.ch);
+ context._cmp(context.es.byte(context.bx+3), context.ch);
notright:
return;
}
@@ -12664,7 +12664,7 @@ cigarette:
showpuztext(context);
context.al = context.data.byte(94);
getexad(context);
- context.ds.byte(context.bx+2) = 255;
+ context.es.byte(context.bx+2) = 255;
context.data.byte(102) = 1;
return;
}
@@ -12938,7 +12938,7 @@ numberpoke0:
context._sub(context.ax, 10000);
if (!context.flags.c()) goto numberpoke0;
context._add(context.ax, 10000);
- context.ds.byte(context.bx) = context.cl;
+ context.cs.byte(context.bx) = context.cl;
context._add(context.bx, 1);
context.cl = 48-1;
numberpoke1:
@@ -12946,7 +12946,7 @@ numberpoke1:
context._sub(context.ax, 1000);
if (!context.flags.c()) goto numberpoke1;
context._add(context.ax, 1000);
- context.ds.byte(context.bx) = context.cl;
+ context.cs.byte(context.bx) = context.cl;
context._add(context.bx, 1);
context.cl = 48-1;
numberpoke2:
@@ -12954,7 +12954,7 @@ numberpoke2:
context._sub(context.ax, 100);
if (!context.flags.c()) goto numberpoke2;
context._add(context.ax, 100);
- context.ds.byte(context.bx) = context.cl;
+ context.cs.byte(context.bx) = context.cl;
context._add(context.bx, 1);
context.cl = 48-1;
numberpoke3:
@@ -12962,10 +12962,10 @@ numberpoke3:
context._sub(context.ax, 10);
if (!context.flags.c()) goto numberpoke3;
context._add(context.ax, 10);
- context.ds.byte(context.bx) = context.cl;
+ context.cs.byte(context.bx) = context.cl;
context.bx = 3390;
context._add(context.al, 48);
- context.ds.byte(context.bx) = context.al;
+ context.cs.byte(context.bx) = context.al;
return;
}
@@ -13118,7 +13118,7 @@ void usehandle(Context & context) {
context.cl = 'T';
context.ch = 'W';
findsetobject(context);
- context.al = context.ds.byte(context.bx+58);
+ context.al = context.es.byte(context.bx+58);
context._cmp(context.al, 255);
if (!context.flags.z()) goto havecutwire;
context.cx = 300;
@@ -13291,13 +13291,13 @@ stereook2:
putbackobstuff(context);
getanyad(context);
context.al = 255;
- context.ds.byte(context.bx+10) = context.al;
+ context.es.byte(context.bx+10) = context.al;
return;
cdinside:
getanyad(context);
- context.al = context.ds.byte(context.bx+10);
+ context.al = context.es.byte(context.bx+10);
context._xor(context.al, 1);
- context.ds.byte(context.bx+10) = context.al;
+ context.es.byte(context.bx+10) = context.al;
context._cmp(context.al, 255);
if (context.flags.z()) goto stereoon;
context.al = 7;
@@ -13435,7 +13435,7 @@ void withwhat(Context & context) {
void selectob(Context & context) {
findinvpos(context);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canselectob;
blank(context);
@@ -13478,9 +13478,9 @@ void compare(Context & context) {
getanyaddir(context);
context.dx = context.pop();
context.cx = context.pop();
- context._cmp(context.ds.word(context.bx+12), context.cx);
+ context._cmp(context.es.word(context.bx+12), context.cx);
if (!context.flags.z()) goto comparefin;
- context._cmp(context.ds.word(context.bx+14), context.dx);
+ context._cmp(context.es.word(context.bx+14), context.dx);
comparefin:
return;
}
@@ -13494,13 +13494,13 @@ void findsetobject(Context & context) {
context.bx = 0;
context.dl = 0;
findsetloop:
- context._cmp(context.al, context.ds.byte(context.bx+12));
+ context._cmp(context.al, context.es.byte(context.bx+12));
if (!context.flags.z()) goto nofind;
- context._cmp(context.ah, context.ds.byte(context.bx+13));
+ context._cmp(context.ah, context.es.byte(context.bx+13));
if (!context.flags.z()) goto nofind;
- context._cmp(context.cl, context.ds.byte(context.bx+14));
+ context._cmp(context.cl, context.es.byte(context.bx+14));
if (!context.flags.z()) goto nofind;
- context._cmp(context.ch, context.ds.byte(context.bx+15));
+ context._cmp(context.ch, context.es.byte(context.bx+15));
if (!context.flags.z()) goto nofind;
context.al = context.dl;
return;
@@ -13522,13 +13522,13 @@ void findexobject(Context & context) {
context.bx = 0+2080+30000;
context.dl = 0;
findexloop:
- context._cmp(context.al, context.ds.byte(context.bx+12));
+ context._cmp(context.al, context.es.byte(context.bx+12));
if (!context.flags.z()) goto nofindex;
- context._cmp(context.ah, context.ds.byte(context.bx+13));
+ context._cmp(context.ah, context.es.byte(context.bx+13));
if (!context.flags.z()) goto nofindex;
- context._cmp(context.cl, context.ds.byte(context.bx+14));
+ context._cmp(context.cl, context.es.byte(context.bx+14));
if (!context.flags.z()) goto nofindex;
- context._cmp(context.ch, context.ds.byte(context.bx+15));
+ context._cmp(context.ch, context.es.byte(context.bx+15));
if (!context.flags.z()) goto nofindex;
context.al = context.dl;
return;
@@ -13550,15 +13550,15 @@ void isryanholding(Context & context) {
context.bx = 0+2080+30000;
context.dl = 0;
searchinv:
- context._cmp(context.ds.byte(context.bx+2), 4);
+ context._cmp(context.es.byte(context.bx+2), 4);
if (!context.flags.z()) goto nofindininv;
- context._cmp(context.al, context.ds.byte(context.bx+12));
+ context._cmp(context.al, context.es.byte(context.bx+12));
if (!context.flags.z()) goto nofindininv;
- context._cmp(context.ah, context.ds.byte(context.bx+13));
+ context._cmp(context.ah, context.es.byte(context.bx+13));
if (!context.flags.z()) goto nofindininv;
- context._cmp(context.cl, context.ds.byte(context.bx+14));
+ context._cmp(context.cl, context.es.byte(context.bx+14));
if (!context.flags.z()) goto nofindininv;
- context._cmp(context.ch, context.ds.byte(context.bx+15));
+ context._cmp(context.ch, context.es.byte(context.bx+15));
if (!context.flags.z()) goto nofindininv;
context.al = context.dl;
context._cmp(context.al, 114);
@@ -13578,9 +13578,9 @@ void checkinside(Context & context) {
context.bx = 0+2080+30000;
context.cl = 0;
insideloop:
- context._cmp(context.al, context.ds.byte(context.bx+3));
+ context._cmp(context.al, context.es.byte(context.bx+3));
if (!context.flags.z()) goto notfoundinside;
- context._cmp(context.ah, context.ds.byte(context.bx+2));
+ context._cmp(context.ah, context.es.byte(context.bx+2));
if (!context.flags.z()) goto notfoundinside;
return;
notfoundinside:
@@ -13656,7 +13656,7 @@ void findpuztext(Context & context) {
context.si = context.ax;
context._add(context.si, context.si);
context.es = context.data.word(452);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
return;
@@ -13669,7 +13669,7 @@ void placesetobject(Context & context) {
context.ch = 0;
findormake(context);
getsetad(context);
- context.ds.byte(context.bx+58) = 0;
+ context.es.byte(context.bx+58) = 0;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -13682,7 +13682,7 @@ void removesetobject(Context & context) {
context.ch = 0;
findormake(context);
getsetad(context);
- context.ds.byte(context.bx+58) = 255;
+ context.es.byte(context.bx+58) = 255;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -13692,7 +13692,7 @@ void issetobonmap(Context & context) {
context.push(context.es);
context.push(context.bx);
getsetad(context);
- context.al = context.ds.byte(context.bx+58);
+ context.al = context.es.byte(context.bx+58);
context.bx = context.pop();
context.es = context.pop();
context._cmp(context.al, 0);
@@ -13706,7 +13706,7 @@ void placefreeobject(Context & context) {
context.ch = 1;
findormake(context);
getfreead(context);
- context.ds.byte(context.bx+2) = 0;
+ context.es.byte(context.bx+2) = 0;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -13716,7 +13716,7 @@ void removefreeobject(Context & context) {
context.push(context.es);
context.push(context.bx);
getfreead(context);
- context.ds.byte(context.bx+2) = 255;
+ context.es.byte(context.bx+2) = 255;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -13728,22 +13728,22 @@ void findormake(Context & context) {
context.es = context.data.word(410);
context.ah = context.data.byte(183);
changeloop:
- context._cmp(context.ds.byte(context.bx), 255);
+ context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto haventfound;
- context._cmp(context.ax, context.ds.word(context.bx));
+ context._cmp(context.ax, context.es.word(context.bx));
if (!context.flags.z()) goto nofoundchange;
- context._cmp(context.ch, context.ds.byte(context.bx+3));
+ context._cmp(context.ch, context.es.byte(context.bx+3));
if (context.flags.z()) goto foundchange;
nofoundchange:
context._add(context.bx, 4);
goto changeloop;
foundchange:
context.ax = context.pop();
- context.ds.byte(context.bx+2) = context.cl;
+ context.es.byte(context.bx+2) = context.cl;
return;
haventfound:
- context.ds.word(context.bx) = context.ax;
- context.ds.word(context.bx+2) = context.cx;
+ context.es.word(context.bx) = context.ax;
+ context.es.word(context.bx+2) = context.cx;
context.ax = context.pop();
return;
}
@@ -13762,10 +13762,10 @@ void setallchanges(Context & context) {
context.es = context.data.word(410);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
setallloop:
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto endsetloop;
- context.cx = context.ds.word(context.bx+2);
+ context.cx = context.es.word(context.bx+2);
context._add(context.bx, 4);
context._cmp(context.ah, context.data.byte(183));
if (!context.flags.z()) goto setallloop;
@@ -13801,22 +13801,22 @@ path:
context._add(context.bx, 0);
context.es = context.data.word(448);
context.cx = context.pop();
- context.ds.byte(context.bx+6) = context.cl;
+ context.es.byte(context.bx+6) = context.cl;
nopath:
return;
object:
context.push(context.cx);
getsetad(context);
context.cx = context.pop();
- context.ds.byte(context.bx+58) = context.cl;
+ context.es.byte(context.bx+58) = context.cl;
return;
freeobject:
context.push(context.cx);
getfreead(context);
context.cx = context.pop();
- context._cmp(context.ds.byte(context.bx+2), 255);
+ context._cmp(context.es.byte(context.bx+2), 255);
if (!context.flags.z()) goto beenpickedup;
- context.ds.byte(context.bx+2) = context.cl;
+ context.es.byte(context.bx+2) = context.cl;
beenpickedup:
return;
}
@@ -13949,7 +13949,7 @@ void setuptimeduse(Context & context) {
context._add(context.bx, context.bx);
context.es = context.data.word(452);
context.cx = 66*2;
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
context.data.word(330) = context.es;
@@ -13971,7 +13971,7 @@ void setuptimedtemp(Context & context) {
context._add(context.bx, context.bx);
context.es = context.data.word(464);
context.cx = 66*2;
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
context.data.word(330) = context.es;
@@ -14509,7 +14509,7 @@ not10:
context.dx = context.ds;
context.es = context.dx;
context._add(context.bx, 8344);
- context.ds.byte(context.bx) = context.al;
+ context.es.byte(context.bx) = context.al;
context._add(context.data.word(278), 1);
nomorekeys:
return;
@@ -15115,7 +15115,7 @@ leftpageloop:
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(464);
- context.si = context.ds.word(context.bx);
+ context.si = context.es.word(context.bx);
context._add(context.si, 66*2);
context.di = 2;
context.bx = 48;
@@ -15144,10 +15144,10 @@ flipfolder:
context.push(context.si);
context.cx = 65;
flipfolderline:
- context.al = context.ds.byte(context.di);
- context.ah = context.ds.byte(context.si);
- context.ds.byte(context.di) = context.ah;
- context.ds.byte(context.si) = context.al;
+ context.al = context.es.byte(context.di);
+ context.ah = context.es.byte(context.si);
+ context.es.byte(context.di) = context.ah;
+ context.es.byte(context.si) = context.al;
context._sub(context.si, 1);
context._add(context.di, 1);
if (--context.cx) goto flipfolderline;
@@ -15194,7 +15194,7 @@ rightpageloop:
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(464);
- context.si = context.ds.word(context.bx);
+ context.si = context.es.word(context.bx);
context._add(context.si, 66*2);
context.di = 152;
context.bx = 48;
@@ -15797,7 +15797,7 @@ void findtext1(Context & context) {
context.si = context.ax;
context._add(context.si, context.si);
context.es = context.data.word(464);
- context.ax = context.ds.word(context.si);
+ context.ax = context.es.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
return;
@@ -16168,19 +16168,19 @@ alreadyactsave:
context.cx = 16;
while(--context.cx) context._movsw();
context.al = context.data.byte(530);
- context.ds.byte(context.bx+13) = context.al;
+ context.es.byte(context.bx+13) = context.al;
context.al = context.data.byte(147);
- context.ds.byte(context.bx+15) = context.al;
+ context.es.byte(context.bx+15) = context.al;
context.al = context.data.byte(148);
- context.ds.byte(context.bx+16) = context.al;
+ context.es.byte(context.bx+16) = context.al;
context.al = context.data.byte(34);
- context.ds.byte(context.bx+20) = context.al;
+ context.es.byte(context.bx+20) = context.al;
context.al = context.data.byte(474);
- context.ds.byte(context.bx+21) = context.al;
+ context.es.byte(context.bx+21) = context.al;
context.al = context.data.byte(132);
- context.ds.byte(context.bx+22) = context.al;
+ context.es.byte(context.bx+22) = context.al;
context.al = 255;
- context.ds.byte(context.bx+27) = context.al;
+ context.es.byte(context.bx+27) = context.al;
saveposition(context);
getridoftemp(context);
restoreall(context);
@@ -16250,8 +16250,8 @@ notret:
if (context.flags.z()) goto nokeypress;
getnamepos(context);
context._sub(context.data.byte(341), 1);
- context.ds.byte(context.bx) = 0;
- context.ds.byte(context.bx+1) = 1;
+ context.es.byte(context.bx) = 0;
+ context.es.byte(context.bx+1) = 1;
goto afterkey;
nodel2:
spacepress:
@@ -16260,9 +16260,9 @@ spacepress:
getnamepos(context);
context._add(context.data.byte(341), 1);
context.al = context.data.byte(141);
- context.ds.byte(context.bx+1) = context.al;
- context.ds.byte(context.bx+2) = 0;
- context.ds.byte(context.bx+3) = 1;
+ context.es.byte(context.bx+1) = context.al;
+ context.es.byte(context.bx+2) = 0;
+ context.es.byte(context.bx+3) = 1;
goto afterkey;
nokeypress:
return;
@@ -16451,21 +16451,21 @@ shownameloop:
zerostill:
context._sub(context.si, 1);
context._sub(context.cl, 1);
- context._cmp(context.ds.byte(context.si), 1);
+ context._cmp(context.es.byte(context.si), 1);
if (!context.flags.z()) goto foundcharacter;
goto zerostill;
foundcharacter:
context.data.byte(341) = context.cl;
- context.ds.byte(context.si) = '/';
- context.ds.byte(context.si+1) = 0;
+ context.es.byte(context.si) = '/';
+ context.es.byte(context.si+1) = 0;
context.push(context.si);
context.si = context.dx;
context.dl = 200;
context.ah = 0;
printdirect(context);
context.si = context.pop();
- context.ds.byte(context.si) = 0;
- context.ds.byte(context.si+1) = 1;
+ context.es.byte(context.si) = 0;
+ context.es.byte(context.si+1) = 1;
goto afterprintname;
loadmode:
context.al = 0;
@@ -16688,17 +16688,17 @@ noloadold:
void createname(Context & context) {
context.push(context.ax);
context.di = 4932;
- context.ds.byte(context.di+0) = context.dl;
- context.ds.byte(context.di+3) = context.cl;
+ context.cs.byte(context.di+0) = context.dl;
+ context.cs.byte(context.di+3) = context.cl;
context.al = context.dh;
context.ah = '0'-1;
findten:
context._add(context.ah, 1);
context._sub(context.al, 10);
if (!context.flags.c()) goto findten;
- context.ds.byte(context.di+1) = context.ah;
+ context.cs.byte(context.di+1) = context.ah;
context._add(context.al, 10+'0');
- context.ds.byte(context.di+2) = context.al;
+ context.cs.byte(context.di+2) = context.al;
context.ax = context.pop();
context.cl = '0'-1;
thousandsc:
@@ -16706,23 +16706,23 @@ thousandsc:
context._sub(context.ax, 1000);
if (!context.flags.c()) goto thousandsc;
context._add(context.ax, 1000);
- context.ds.byte(context.di+4) = context.cl;
+ context.cs.byte(context.di+4) = context.cl;
context.cl = '0'-1;
hundredsc:
context._add(context.cl, 1);
context._sub(context.ax, 100);
if (!context.flags.c()) goto hundredsc;
context._add(context.ax, 100);
- context.ds.byte(context.di+5) = context.cl;
+ context.cs.byte(context.di+5) = context.cl;
context.cl = '0'-1;
tensc:
context._add(context.cl, 1);
context._sub(context.ax, 10);
if (!context.flags.c()) goto tensc;
context._add(context.ax, 10);
- context.ds.byte(context.di+6) = context.cl;
+ context.cs.byte(context.di+6) = context.cl;
context._add(context.al, '0');
- context.ds.byte(context.di+7) = context.al;
+ context.cs.byte(context.di+7) = context.al;
return;
}
@@ -16780,12 +16780,12 @@ notsecondbank:
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.ah = 0;
context.data.word(500) = context.ax;
- context.ax = context.ds.word(context.bx+1);
+ context.ax = context.es.word(context.bx+1);
context.data.word(502) = context.ax;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context.data.word(504) = context.ax;
context._cmp(context.data.byte(507), 0);
if (context.flags.z()) goto nosetloop;
@@ -16829,12 +16829,12 @@ notsecondbank1:
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.ah = 0;
context.data.word(515) = context.ax;
- context.ax = context.ds.word(context.bx+1);
+ context.ax = context.es.word(context.bx+1);
context.data.word(517) = context.ax;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.es.word(context.bx+3);
context.data.word(519) = context.ax;
context.si = context.pop();
context.di = context.pop();
@@ -16950,9 +16950,9 @@ lowvolumetran:
volloop:
context._lodsw();
context.bl = context.al;
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.bl = context.ah;
- context.ah = context.ds.byte(context.bx);
+ context.ah = context.es.byte(context.bx);
context._stosw();
if (--context.cx) goto volloop;
return;
@@ -17007,7 +17007,7 @@ lowvolumemix:
context.bh = context.data.byte(385);
context._add(context.bh, 63);
context.bl = context.al;
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.bx = context.pop();
context.ah = context.ds.byte(context.bx);
context._add(context.bx, 1);
@@ -17455,7 +17455,7 @@ void clearrest(Context & context) {
void parseblaster(Context & context) {
lookattail:
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context._cmp(context.al, 0);
if (context.flags.z()) goto endtail;
context._cmp(context.al, 13);
@@ -17484,20 +17484,20 @@ lookattail:
if (--context.cx) goto lookattail;
return;
issoundint:
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.es.byte(context.bx+1);
context._sub(context.al, '0');
context.data.byte(377) = context.al;
context._add(context.bx, 1);
goto lookattail;
isdma:
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.es.byte(context.bx+1);
context._sub(context.al, '0');
context.data.byte(378) = context.al;
context._add(context.bx, 1);
goto lookattail;
isbaseadd:
context.push(context.cx);
- context.al = context.ds.byte(context.bx+2);
+ context.al = context.es.byte(context.bx+2);
context._sub(context.al, '0');
context.ah = 0;
context.cl = 4;
@@ -17812,11 +17812,11 @@ void showbyte(Context & context) {
context._shr(context.dl, 1);
context._shr(context.dl, 1);
onedigit(context);
- context.ds.byte(context.di) = context.dl;
+ context.es.byte(context.di) = context.dl;
context.dl = context.al;
context._and(context.dl, 15);
onedigit(context);
- context.ds.byte(context.di+1) = context.dl;
+ context.es.byte(context.di+1) = context.dl;
context._add(context.di, 3);
return;
}
@@ -17854,7 +17854,7 @@ word1:
if (!context.flags.c()) goto word1;
context._add(context.ax, context.bx);
convnum(context);
- context.ds.byte(context.di) = context.cl;
+ context.cs.byte(context.di) = context.cl;
context.bx = 1000;
context.cl = 47;
word2:
@@ -17863,7 +17863,7 @@ word2:
if (!context.flags.c()) goto word2;
context._add(context.ax, context.bx);
convnum(context);
- context.ds.byte(context.di+1) = context.cl;
+ context.cs.byte(context.di+1) = context.cl;
context.bx = 100;
context.cl = 47;
word3:
@@ -17872,7 +17872,7 @@ word3:
if (!context.flags.c()) goto word3;
context._add(context.ax, context.bx);
convnum(context);
- context.ds.byte(context.di+2) = context.cl;
+ context.cs.byte(context.di+2) = context.cl;
context.bx = 10;
context.cl = 47;
word4:
@@ -17881,11 +17881,11 @@ word4:
if (!context.flags.c()) goto word4;
context._add(context.ax, context.bx);
convnum(context);
- context.ds.byte(context.di+3) = context.cl;
+ context.cs.byte(context.di+3) = context.cl;
context._add(context.al, 48);
context.cl = context.al;
convnum(context);
- context.ds.byte(context.di+4) = context.cl;
+ context.cs.byte(context.di+4) = context.cl;
return;
}
@@ -18015,22 +18015,22 @@ norun:
void checkcoords(Context & context) {
loop048:
- context.ax = context.ds.word(context.bx);
+ context.ax = context.cs.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto nonefound;
context.push(context.bx);
context._cmp(context.data.word(196), context.ax);
if (context.flags.l()) goto over045;
- context.ax = context.ds.word(context.bx+2);
+ context.ax = context.cs.word(context.bx+2);
context._cmp(context.data.word(196), context.ax);
if (!context.flags.ge()) goto over045;
- context.ax = context.ds.word(context.bx+4);
+ context.ax = context.cs.word(context.bx+4);
context._cmp(context.data.word(198), context.ax);
if (context.flags.l()) goto over045;
- context.ax = context.ds.word(context.bx+6);
+ context.ax = context.cs.word(context.bx+6);
context._cmp(context.data.word(198), context.ax);
if (!context.flags.ge()) goto over045;
- context.ax = context.ds.word(context.bx+8);
+ context.ax = context.cs.word(context.bx+8);
__dispatch_call(context, context.ax);
finished:
context.ax = context.pop();
@@ -18104,28 +18104,28 @@ void checkifperson(Context & context) {
context.cx = 12;
identifyreel:
context.push(context.cx);
- context._cmp(context.ds.byte(context.bx+4), 255);
+ context._cmp(context.es.byte(context.bx+4), 255);
if (context.flags.z()) goto notareelid;
context.push(context.es);
context.push(context.bx);
context.push(context.ax);
- context.ax = context.ds.word(context.bx+0);
+ context.ax = context.es.word(context.bx+0);
context.data.word(237) = context.ax;
getreelstart(context);
- context._cmp(context.ds.word(context.si+2), 0x0ffff);
+ context._cmp(context.es.word(context.si+2), 0x0ffff);
if (!context.flags.z()) goto notblankpers;
context._add(context.si, 5);
notblankpers:
- context.cx = context.ds.word(context.si+2);
- context.ax = context.ds.word(context.si+0);
+ context.cx = context.es.word(context.si+2);
+ context.ax = context.es.word(context.si+0);
context.push(context.cx);
getreelframeax(context);
context.cx = context.pop();
- context._add(context.cl, context.ds.byte(context.bx+4));
- context._add(context.ch, context.ds.byte(context.bx+5));
+ context._add(context.cl, context.es.byte(context.bx+4));
+ context._add(context.ch, context.es.byte(context.bx+5));
context.dx = context.cx;
- context._add(context.dl, context.ds.byte(context.bx+0));
- context._add(context.dh, context.ds.byte(context.bx+1));
+ context._add(context.dl, context.es.byte(context.bx+0));
+ context._add(context.dh, context.es.byte(context.bx+1));
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
@@ -18138,9 +18138,9 @@ notblankpers:
context._cmp(context.ah, context.dh);
if (!context.flags.c()) goto notareelid;
context.cx = context.pop();
- context.ax = context.ds.word(context.bx+2);
+ context.ax = context.es.word(context.bx+2);
context.data.word(247) = context.ax;
- context.al = context.ds.byte(context.bx+4);
+ context.al = context.es.byte(context.bx+4);
context.ah = 5;
obname(context);
context.al = 0;
@@ -18159,21 +18159,21 @@ void checkifset(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(127*5);
context.cx = 127;
identifyset:
- context._cmp(context.ds.byte(context.bx+4), 255);
+ context._cmp(context.es.byte(context.bx+4), 255);
if (context.flags.z()) goto notasetid;
- context._cmp(context.al, context.ds.byte(context.bx));
+ context._cmp(context.al, context.es.byte(context.bx));
if (context.flags.c()) goto notasetid;
- context._cmp(context.al, context.ds.byte(context.bx+2));
+ context._cmp(context.al, context.es.byte(context.bx+2));
if (!context.flags.c()) goto notasetid;
- context._cmp(context.ah, context.ds.byte(context.bx+1));
+ context._cmp(context.ah, context.es.byte(context.bx+1));
if (context.flags.c()) goto notasetid;
- context._cmp(context.ah, context.ds.byte(context.bx+3));
+ context._cmp(context.ah, context.es.byte(context.bx+3));
if (!context.flags.c()) goto notasetid;
pixelcheckset(context);
if (context.flags.z()) goto notasetid;
isitdescribed(context);
if (context.flags.z()) goto notasetid;
- context.al = context.ds.byte(context.bx+4);
+ context.al = context.es.byte(context.bx+4);
context.ah = 1;
obname(context);
context.al = 0;
@@ -18192,17 +18192,17 @@ void checkifex(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(99*5);
context.cx = 99;
identifyex:
- context._cmp(context.ds.byte(context.bx+4), 255);
+ context._cmp(context.es.byte(context.bx+4), 255);
if (context.flags.z()) goto notanexid;
- context._cmp(context.al, context.ds.byte(context.bx));
+ context._cmp(context.al, context.es.byte(context.bx));
if (context.flags.c()) goto notanexid;
- context._cmp(context.al, context.ds.byte(context.bx+2));
+ context._cmp(context.al, context.es.byte(context.bx+2));
if (!context.flags.c()) goto notanexid;
- context._cmp(context.ah, context.ds.byte(context.bx+1));
+ context._cmp(context.ah, context.es.byte(context.bx+1));
if (context.flags.c()) goto notanexid;
- context._cmp(context.ah, context.ds.byte(context.bx+3));
+ context._cmp(context.ah, context.es.byte(context.bx+3));
if (!context.flags.c()) goto notanexid;
- context.al = context.ds.byte(context.bx+4);
+ context.al = context.es.byte(context.bx+4);
context.ah = 4;
obname(context);
context.al = 1;
@@ -18221,17 +18221,17 @@ void checkiffree(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(79*5);
context.cx = 79;
identifyfree:
- context._cmp(context.ds.byte(context.bx+4), 255);
+ context._cmp(context.es.byte(context.bx+4), 255);
if (context.flags.z()) goto notafreeid;
- context._cmp(context.al, context.ds.byte(context.bx));
+ context._cmp(context.al, context.es.byte(context.bx));
if (context.flags.c()) goto notafreeid;
- context._cmp(context.al, context.ds.byte(context.bx+2));
+ context._cmp(context.al, context.es.byte(context.bx+2));
if (!context.flags.c()) goto notafreeid;
- context._cmp(context.ah, context.ds.byte(context.bx+1));
+ context._cmp(context.ah, context.es.byte(context.bx+1));
if (context.flags.c()) goto notafreeid;
- context._cmp(context.ah, context.ds.byte(context.bx+3));
+ context._cmp(context.ah, context.es.byte(context.bx+3));
if (!context.flags.c()) goto notafreeid;
- context.al = context.ds.byte(context.bx+4);
+ context.al = context.es.byte(context.bx+4);
context.ah = 2;
obname(context);
context.al = 0;
@@ -18250,16 +18250,16 @@ void isitdescribed(Context & context) {
context.push(context.cx);
context.push(context.es);
context.push(context.bx);
- context.al = context.ds.byte(context.bx+4);
+ context.al = context.es.byte(context.bx+4);
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(438);
context._add(context.bx, 0);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, 0+(130*2));
context.bx = context.ax;
- context.dl = context.ds.byte(context.bx);
+ context.dl = context.es.byte(context.bx);
context.bx = context.pop();
context.es = context.pop();
context.cx = context.pop();
@@ -18280,17 +18280,17 @@ void findpathofpoint(Context & context) {
context.cx = context.pop();
context.dl = 0;
pathloop:
- context.al = context.ds.byte(context.bx+6);
+ context.al = context.es.byte(context.bx+6);
context._cmp(context.al, 255);
if (!context.flags.z()) goto flunkedit;
- context.ax = context.ds.word(context.bx+2);
+ context.ax = context.es.word(context.bx+2);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto flunkedit;
context._cmp(context.cl, context.al);
if (context.flags.c()) goto flunkedit;
context._cmp(context.ch, context.ah);
if (context.flags.c()) goto flunkedit;
- context.ax = context.ds.word(context.bx+4);
+ context.ax = context.es.word(context.bx+4);
context._cmp(context.cl, context.al);
if (!context.flags.c()) goto flunkedit;
context._cmp(context.ch, context.ah);
@@ -18318,14 +18318,14 @@ void findfirstpath(Context & context) {
context.cx = context.pop();
context.dl = 0;
fpathloop:
- context.ax = context.ds.word(context.bx+2);
+ context.ax = context.es.word(context.bx+2);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto nofirst;
context._cmp(context.cl, context.al);
if (context.flags.c()) goto nofirst;
context._cmp(context.ch, context.ah);
if (context.flags.c()) goto nofirst;
- context.ax = context.ds.word(context.bx+4);
+ context.ax = context.es.word(context.bx+4);
context._cmp(context.cl, context.al);
if (!context.flags.c()) goto nofirst;
context._cmp(context.ch, context.ah);
@@ -18339,7 +18339,7 @@ nofirst:
context.al = 0;
return;
gotfirst:
- context.al = context.ds.byte(context.bx+6);
+ context.al = context.es.byte(context.bx+6);
return;
}
@@ -18361,7 +18361,7 @@ void turnpathon(Context & context) {
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = 255;
- context.ds.byte(context.bx+6) = context.al;
+ context.es.byte(context.bx+6) = context.al;
nopathon:
return;
}
@@ -18384,7 +18384,7 @@ void turnpathoff(Context & context) {
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = 0;
- context.ds.byte(context.bx+6) = context.al;
+ context.es.byte(context.bx+6) = context.al;
nopathoff:
return;
}
@@ -18411,7 +18411,7 @@ void turnanypathon(Context & context) {
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = 255;
- context.ds.byte(context.bx+6) = context.al;
+ context.es.byte(context.bx+6) = context.al;
return;
}
@@ -18437,7 +18437,7 @@ void turnanypathoff(Context & context) {
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = 0;
- context.ds.byte(context.bx+6) = context.al;
+ context.es.byte(context.bx+6) = context.al;
return;
}
@@ -18450,7 +18450,7 @@ void checkifpathison(Context & context) {
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx+6);
+ context.al = context.es.byte(context.bx+6);
context._cmp(context.al, 255);
return;
}
@@ -18498,15 +18498,15 @@ void atmospheres(Context & context) {
context.ch = context.data.byte(148);
context.bx = 5073;
nextatmos:
- context.al = context.ds.byte(context.bx);
+ context.al = context.cs.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto nomoreatmos;
context._cmp(context.al, context.data.byte(183));
if (!context.flags.z()) goto wrongatmos;
- context.ax = context.ds.word(context.bx+1);
+ context.ax = context.cs.word(context.bx+1);
context._cmp(context.ax, context.cx);
if (!context.flags.z()) goto wrongatmos;
- context.ax = context.ds.word(context.bx+3);
+ context.ax = context.cs.word(context.bx+3);
context._cmp(context.al, context.data.byte(506));
if (context.flags.z()) goto playingalready;
context._cmp(context.data.byte(8), 45);
@@ -18726,7 +18726,7 @@ void commandwithob(Context & context) {
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(450);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, 66*2);
context.si = context.ax;
context.di = context.data.word(77);
@@ -18777,7 +18777,7 @@ void commandonly(Context & context) {
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(450);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, 66*2);
context.si = context.ax;
context.di = context.data.word(77);
@@ -18798,7 +18798,7 @@ void printmessage(Context & context) {
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(450);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, 66*2);
context.si = context.ax;
context.di = context.pop();
@@ -18819,7 +18819,7 @@ void printmessage2(Context & context) {
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(450);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, 66*2);
context.si = context.ax;
context.ax = context.pop();
@@ -18928,11 +18928,11 @@ notsamealready:
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.ah = 0;
context._sub(context.ax, 12);
context.data.word(478) = context.ax;
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.es.byte(context.bx+1);
context.ah = 0;
context._sub(context.ax, 12);
context.data.word(480) = context.ax;
@@ -18943,11 +18943,11 @@ notsamealready:
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.es.byte(context.bx);
context.ah = 0;
context._sub(context.ax, 12);
context.data.word(482) = context.ax;
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.es.byte(context.bx+1);
context.ah = 0;
context._sub(context.ax, 12);
context.data.word(484) = context.ax;
@@ -18974,25 +18974,25 @@ void checkdest(Context & context) {
context.cl = 24;
context.ch = context.data.byte(477);
checkdestloop:
- context.dh = context.ds.byte(context.bx);
+ context.dh = context.es.byte(context.bx);
context._and(context.dh, 0xf0);
- context.dl = context.ds.byte(context.bx);
+ context.dl = context.es.byte(context.bx);
context._and(context.dl, 0xf);
context._cmp(context.ax, context.dx);
if (!context.flags.z()) goto nextcheck;
- context.al = context.ds.byte(context.bx+1);
+ context.al = context.es.byte(context.bx+1);
context._and(context.al, 15);
context.data.byte(477) = context.al;
context.bx = context.pop();
return;
nextcheck:
- context.dl = context.ds.byte(context.bx);
+ context.dl = context.es.byte(context.bx);
context._and(context.dl, 0xf0);
context._shr(context.dl, 1);
context._shr(context.dl, 1);
context._shr(context.dl, 1);
context._shr(context.dl, 1);
- context.dh = context.ds.byte(context.bx);
+ context.dh = context.es.byte(context.bx);
context._and(context.dh, 0xf);
context._shl(context.dh, 1);
context._shl(context.dh, 1);
@@ -19000,7 +19000,7 @@ nextcheck:
context._shl(context.dh, 1);
context._cmp(context.ax, context.dx);
if (!context.flags.z()) goto nextcheck2;
- context.ch = context.ds.byte(context.bx+1);
+ context.ch = context.es.byte(context.bx+1);
context._and(context.ch, 15);
nextcheck2:
context._add(context.bx, 2);
@@ -19430,7 +19430,7 @@ notover32:
context._add(context.bx, context.bx);
context.es = context.data.word(434);
context._add(context.bx, 0);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._add(context.ax, 0+(38*2));
context.si = context.ax;
context.data.word(75) = 7;
@@ -19549,7 +19549,7 @@ nomorethan6:
context.ah = 0;
context.bx = 5691;
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.cs.byte(context.bx);
context.ds = context.data.word(406);
context.di = 44;
context.bx = 32;
@@ -19973,7 +19973,7 @@ finflashmouse:
context.ah = 0;
context.bx = 5698;
context._add(context.bx, context.ax);
- context.al = context.ds.byte(context.bx);
+ context.al = context.cs.byte(context.bx);
context.data.byte(230) = context.al;
return;
combathand:
@@ -20064,7 +20064,7 @@ void readkey(Context & context) {
context.data.word(394) = context.bx;
context.di = 5715;
context._add(context.di, context.bx);
- context.al = context.ds.byte(context.di);
+ context.al = context.cs.byte(context.di);
context.data.byte(141) = context.al;
return;
nokey:
@@ -20077,7 +20077,7 @@ void convertkey(Context & context) {
context.ah = 0;
context.di = 5731;
context._add(context.di, context.ax);
- context.al = context.ds.byte(context.di);
+ context.al = context.cs.byte(context.di);
return;
}
@@ -20158,7 +20158,7 @@ void loadtempcharset(Context & context) {
void standardload(Context & context) {
openfile(context);
readheader(context);
- context.bx = context.ds.word(context.di);
+ context.bx = context.es.word(context.di);
context.push(context.bx);
context.cl = 4;
context._shr(context.bx, context.cl);
@@ -20211,7 +20211,7 @@ void loadroomssample(Context & context) {
twodigitnum(context);
context.di = 1896;
context._xchg(context.al, context.ah);
- context.ds.word(context.di+10) = context.ax;
+ context.cs.word(context.di+10) = context.ax;
context.dx = context.di;
loadsecondsample(context);
loadedalready:
@@ -20395,31 +20395,31 @@ blimey:
void startloading(Context & context) {
context.data.byte(63) = 0;
- context.al = context.ds.byte(context.bx+13);
+ context.al = context.cs.byte(context.bx+13);
context.data.byte(530) = context.al;
- context.al = context.ds.byte(context.bx+15);
+ context.al = context.cs.byte(context.bx+15);
context.data.byte(147) = context.al;
- context.al = context.ds.byte(context.bx+16);
+ context.al = context.cs.byte(context.bx+16);
context.data.byte(148) = context.al;
- context.al = context.ds.byte(context.bx+20);
+ context.al = context.cs.byte(context.bx+20);
context.data.byte(34) = context.al;
- context.al = context.ds.byte(context.bx+21);
+ context.al = context.cs.byte(context.bx+21);
context.data.byte(474) = context.al;
context.data.byte(477) = context.al;
context.data.byte(476) = context.al;
- context.al = context.ds.byte(context.bx+22);
+ context.al = context.cs.byte(context.bx+22);
context.data.byte(132) = context.al;
context.data.byte(134) = context.al;
- context.al = context.ds.byte(context.bx+23);
+ context.al = context.cs.byte(context.bx+23);
context.data.byte(38) = context.al;
- context.al = context.ds.byte(context.bx+24);
+ context.al = context.cs.byte(context.bx+24);
context.data.byte(35) = context.al;
- context.al = context.ds.byte(context.bx+25);
+ context.al = context.cs.byte(context.bx+25);
context.data.byte(37) = context.al;
context.data.byte(64) = -1;
- context.al = context.ds.byte(context.bx+27);
+ context.al = context.cs.byte(context.bx+27);
context.push(context.ax);
- context.al = context.ds.byte(context.bx+31);
+ context.al = context.cs.byte(context.bx+31);
context.ah = context.data.byte(183);
context.data.byte(183) = context.al;
context.dx = context.bx;
@@ -20556,7 +20556,7 @@ lookx2:
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = 0;
- context.ds.byte(context.bx+6) = context.al;
+ context.es.byte(context.bx+6) = context.al;
return;
}
@@ -20568,7 +20568,7 @@ void findxyfrompath(Context & context) {
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
- context.ax = context.ds.word(context.bx);
+ context.ax = context.es.word(context.bx);
context._sub(context.al, 12);
context._sub(context.ah, 12);
context.data.byte(150) = context.al;
@@ -20615,7 +20615,7 @@ void readheader(Context & context) {
void allocateload(Context & context) {
context.push(context.es);
context.push(context.di);
- context.bx = context.ds.word(context.di);
+ context.bx = context.es.word(context.di);
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
Commit: 834816db60fac762c44d4526fb5d48f689b71039
https://github.com/scummvm/scummvm/commit/834816db60fac762c44d4526fb5d48f689b71039
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:50-07:00
Commit Message:
DREAMWEB: fixed loadseg
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 5c8c6da..3493e5d 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -426,12 +426,12 @@ void saveseg(Context &context) {
}
void loadseg(Context &context) {
- uint16 dst_offset = context.dx;
- uint16 size = context.ax;
-
context.ax = context.es.word(context.di);
context.di += 2;
+ uint16 dst_offset = context.dx;
+ uint16 size = context.ax;
+
debug(1, "loadseg(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
context.flags._c = false;
Commit: 9717b220f10186d816c4a897157c4810ae615490
https://github.com/scummvm/scummvm/commit/9717b220f10186d816c4a897157c4810ae615490
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:50-07:00
Commit Message:
DREAMWEB: added names instead of offsets for variables
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 8310749..0c1a4b4 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -63,7 +63,7 @@ namespace %s {
if size == 0:
raise Exception("invalid var '%s' size %u" %(name, size))
if self.indirection == 0:
- value = "context.data.%s(%d)" %("byte" if size == 1 else "word", g.offset)
+ value = "context.data.%s(k%s)" %("byte" if size == 1 else "word", name.capitalize())
elif self.indirection == -1:
value = "%s" %g.offset
self.indirection = 0
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 8ae92d8..f270ea6 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -514,9 +514,9 @@ nofog:
void receptionist(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
- context._cmp(context.data.byte(51), 1);
+ context._cmp(context.data.byte(kCardpassflag), 1);
if (!context.flags.z()) goto notsetcard;
- context._add(context.data.byte(51), 1);
+ context._add(context.data.byte(kCardpassflag), 1);
context.es.byte(context.bx+7) = 1;
context.es.word(context.bx+3) = 64;
notsetcard:
@@ -548,13 +548,13 @@ gotrecep:
context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedrecep;
- context.data.byte(50) = 1;
+ context.data.byte(kTalkedtorecep) = 1;
nottalkedrecep:
return;
}
void smokebloke(Context & context) {
- context._cmp(context.data.byte(40), 0);
+ context._cmp(context.data.byte(kRockstardead), 0);
if (!context.flags.z()) goto notspokento;
context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
@@ -594,7 +594,7 @@ void attendant(Context & context) {
context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalked;
- context.data.byte(47) = 1;
+ context.data.byte(kTalkedtoattendant) = 1;
nottalked:
return;
}
@@ -609,7 +609,7 @@ void manasleep(Context & context) {
}
void eden(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(kGeneraldead), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
addtopeoplelist(context);
@@ -618,9 +618,9 @@ notinbed:
}
void edeninbath(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(kGeneraldead), 0);
if (context.flags.z()) goto notinbed;
- context._cmp(context.data.byte(42), 0);
+ context._cmp(context.data.byte(kSartaindead), 0);
if (!context.flags.z()) goto notinbath;
showgamereel(context);
addtopeoplelist(context);
@@ -645,7 +645,7 @@ void femalefan(Context & context) {
}
void louis(Context & context) {
- context._cmp(context.data.byte(40), 0);
+ context._cmp(context.data.byte(kRockstardead), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
addtopeoplelist(context);
@@ -654,7 +654,7 @@ notlouis1:
}
void louischair(Context & context) {
- context._cmp(context.data.byte(40), 0);
+ context._cmp(context.data.byte(kRockstardead), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
if (!context.flags.z()) goto notlouisanim;
@@ -742,7 +742,7 @@ notsmoket2:
context._add(context.es.word(context.bx+3), 1);
gotsmoket:
showgamereel(context);
- context._cmp(context.data.byte(45), 1);
+ context._cmp(context.data.byte(kGunpassflag), 1);
if (!context.flags.z()) goto notgotgun;
context.es.byte(context.bx+7) = 9;
notgotgun:
@@ -763,7 +763,7 @@ void barwoman(Context & context) {
}
void interviewer(Context & context) {
- context._cmp(context.data.word(21), 68);
+ context._cmp(context.data.word(kReeltowatch), 68);
if (!context.flags.z()) goto notgeneralstart;
context._add(context.es.word(context.bx+3), 1);
notgeneralstart:
@@ -782,13 +782,13 @@ talking:
void soldier1(Context & context) {
context._cmp(context.es.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
- context.data.word(19) = 10;
+ context.data.word(kWatchingtime) = 10;
context._cmp(context.es.word(context.bx+3), 30);
if (!context.flags.z()) goto notaftersshot;
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 40);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotsoldframe;
- context.data.byte(55) = 2;
+ context.data.byte(kMandead) = 2;
goto gotsoldframe;
notaftersshot:
checkspeed(context);
@@ -796,16 +796,16 @@ notaftersshot:
context._add(context.es.word(context.bx+3), 1);
goto gotsoldframe;
soldierwait:
- context._cmp(context.data.byte(64), 1);
+ context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto gotsoldframe;
- context.data.word(19) = 10;
- context._cmp(context.data.byte(474), 2);
+ context.data.word(kWatchingtime) = 10;
+ context._cmp(context.data.byte(kManspath), 2);
if (!context.flags.z()) goto gotsoldframe;
- context._cmp(context.data.byte(132), 4);
+ context._cmp(context.data.byte(kFacing), 4);
if (!context.flags.z()) goto gotsoldframe;
context._add(context.es.word(context.bx+3), 1);
- context.data.byte(64) = -1;
- context.data.byte(63) = 0;
+ context.data.byte(kLastweapon) = -1;
+ context.data.byte(kCombatcount) = 0;
gotsoldframe:
showgamereel(context);
addtopeoplelist(context);
@@ -824,22 +824,22 @@ void rockstar(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 118);
if (!context.flags.z()) goto notbeforedead;
- context.data.byte(55) = 2;
+ context.data.byte(kMandead) = 2;
goto gotrockframe;
notbeforedead:
context._cmp(context.ax, 79);
if (!context.flags.z()) goto gotrockframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(64), 1);
+ context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto notgunonrock;
- context.data.byte(64) = -1;
+ context.data.byte(kLastweapon) = -1;
context.ax = 123;
goto gotrockframe;
notgunonrock:
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 40);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotrockframe;
- context.data.byte(63) = 0;
+ context.data.byte(kCombatcount) = 0;
context.ax = 79;
gotrockframe:
context.es.word(context.bx+3) = context.ax;
@@ -848,17 +848,17 @@ rockspeed:
context._cmp(context.es.word(context.bx+3), 78);
if (!context.flags.z()) goto notalkrock;
addtopeoplelist(context);
- context.data.byte(233) = 2;
- context.data.word(19) = 0;
+ context.data.byte(kPointermode) = 2;
+ context.data.word(kWatchingtime) = 0;
return;
notalkrock:
- context.data.word(19) = 2;
- context.data.byte(233) = 0;
- context.al = context.data.byte(148);
+ context.data.word(kWatchingtime) = 2;
+ context.data.byte(kPointermode) = 0;
+ context.al = context.data.byte(kMapy);
context.es.byte(context.bx+2) = context.al;
return;
rockcombatend:
- context.data.byte(187) = 45;
+ context.data.byte(kNewlocation) = 45;
showgamereel(context);
return;
}
@@ -873,10 +873,10 @@ void helicopter(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 53);
if (!context.flags.z()) goto notbeforehdead;
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 8);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 8);
if (context.flags.c()) goto waitabit;
- context.data.byte(55) = 2;
+ context.data.byte(kMandead) = 2;
waitabit:
context.ax = 49;
goto gotheliframe;
@@ -884,39 +884,39 @@ notbeforehdead:
context._cmp(context.ax, 9);
if (!context.flags.z()) goto gotheliframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(64), 1);
+ context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto notgunonheli;
- context.data.byte(64) = -1;
+ context.data.byte(kLastweapon) = -1;
context.ax = 55;
goto gotheliframe;
notgunonheli:
context.ax = 5;
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 20);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 20);
if (!context.flags.z()) goto gotheliframe;
- context.data.byte(63) = 0;
+ context.data.byte(kCombatcount) = 0;
context.ax = 9;
gotheliframe:
context.es.word(context.bx+3) = context.ax;
helispeed:
showgamereel(context);
- context.al = context.data.byte(147);
+ context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
helicombatend:
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 9);
if (!context.flags.c()) goto notwaitingheli;
- context._cmp(context.data.byte(63), 7);
+ context._cmp(context.data.byte(kCombatcount), 7);
if (context.flags.c()) goto notwaitingheli;
- context.data.byte(233) = 2;
- context.data.word(19) = 0;
+ context.data.byte(kPointermode) = 2;
+ context.data.word(kWatchingtime) = 0;
return;
notwaitingheli:
- context.data.byte(233) = 0;
- context.data.word(19) = 2;
+ context.data.byte(kPointermode) = 0;
+ context.data.word(kWatchingtime) = 2;
return;
heliwon:
- context.data.byte(233) = 0;
+ context.data.byte(kPointermode) = 0;
return;
}
@@ -928,14 +928,14 @@ void mugger(Context & context) {
if (context.flags.z()) goto endmugger2;
context._cmp(context.ax, 2);
if (!context.flags.z()) goto havesetwatch;
- context.data.word(19) = 175*2;
+ context.data.word(kWatchingtime) = 175*2;
havesetwatch:
checkspeed(context);
if (!context.flags.z()) goto notmugger;
context._add(context.es.word(context.bx+3), 1);
notmugger:
showgamereel(context);
- context.al = context.data.byte(147);
+ context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
return;
endmugger1:
@@ -958,25 +958,25 @@ endmugger1:
context.push(context.es);
context.push(context.bx);
context.es.word(context.bx+3) = 140;
- context.data.byte(474) = 2;
- context.data.byte(476) = 2;
+ context.data.byte(kManspath) = 2;
+ context.data.byte(kFinaldest) = 2;
findxyfrompath(context);
- context.data.byte(186) = 1;
+ context.data.byte(kResetmanxy) = 1;
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'A';
findexobject(context);
- context.data.byte(98) = context.al;
- context.data.byte(101) = 4;
+ context.data.byte(kCommand) = context.al;
+ context.data.byte(kObjecttype) = 4;
removeobfrominv(context);
context.al = 'W';
context.ah = 'E';
context.cl = 'T';
context.ch = 'B';
findexobject(context);
- context.data.byte(98) = context.al;
- context.data.byte(101) = 4;
+ context.data.byte(kCommand) = context.al;
+ context.data.byte(kObjecttype) = 4;
removeobfrominv(context);
makemainscreen(context);
context.al = 48;
@@ -985,7 +985,7 @@ endmugger1:
context.cx = 70;
context.dx = 10;
setuptimeduse(context);
- context.data.byte(44) = 1;
+ context.data.byte(kBeenmugged) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -1000,8 +1000,8 @@ void aide(Context & context) {
}
void businessman(Context & context) {
- context.data.byte(233) = 0;
- context.data.word(19) = 2;
+ context.data.byte(kPointermode) = 0;
+ context.data.word(kWatchingtime) = 2;
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 2);
if (!context.flags.z()) goto notfirstbiz;
@@ -1028,23 +1028,23 @@ notfirstbiz:
context._add(context.ax, 1);
context._cmp(context.ax, 48);
if (!context.flags.z()) goto notbeforedeadb;
- context.data.byte(55) = 2;
+ context.data.byte(kMandead) = 2;
goto gotbusframe;
notbeforedeadb:
context._cmp(context.ax, 15);
if (!context.flags.z()) goto buscombatwon;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(64), 3);
+ context._cmp(context.data.byte(kLastweapon), 3);
if (!context.flags.z()) goto notshieldonbus;
- context.data.byte(64) = -1;
- context.data.byte(63) = 0;
+ context.data.byte(kLastweapon) = -1;
+ context.data.byte(kCombatcount) = 0;
context.ax = 51;
goto gotbusframe;
notshieldonbus:
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 20);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 20);
if (!context.flags.z()) goto gotbusframe;
- context.data.byte(63) = 0;
+ context.data.byte(kCombatcount) = 0;
context.ax = 15;
goto gotbusframe;
buscombatwon:
@@ -1060,10 +1060,10 @@ buscombatwon:
turnpathon(context);
context.al = 3;
turnpathoff(context);
- context.data.byte(474) = 5;
- context.data.byte(476) = 5;
+ context.data.byte(kManspath) = 5;
+ context.data.byte(kFinaldest) = 5;
findxyfrompath(context);
- context.data.byte(186) = 1;
+ context.data.byte(kResetmanxy) = 1;
context.es = context.pop();
context.bx = context.pop();
context.ax = 92;
@@ -1072,19 +1072,19 @@ gotbusframe:
context.es.word(context.bx+3) = context.ax;
busspeed:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(kMapy);
context.es.byte(context.bx+2) = context.al;
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 14);
if (!context.flags.z()) goto buscombatend;
- context.data.word(19) = 0;
- context.data.byte(233) = 2;
+ context.data.word(kWatchingtime) = 0;
+ context.data.byte(kPointermode) = 2;
return;
buscombatend:
return;
buscombatwonend:
- context.data.byte(233) = 0;
- context.data.word(19) = 0;
+ context.data.byte(kPointermode) = 0;
+ context.data.word(kWatchingtime) = 0;
return;
}
@@ -1108,32 +1108,32 @@ notfirstpool:
context._cmp(context.ax, 122);
if (!context.flags.z()) goto notendguard1;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(64), 2);
+ context._cmp(context.data.byte(kLastweapon), 2);
if (!context.flags.z()) goto notaxeonpool;
- context.data.byte(64) = -1;
+ context.data.byte(kLastweapon) = -1;
context.ax = 122;
goto gotguardframe;
notaxeonpool:
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 40);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotguardframe;
- context.data.byte(63) = 0;
+ context.data.byte(kCombatcount) = 0;
context.ax = 195;
goto gotguardframe;
notendguard1:
context._cmp(context.ax, 147);
if (!context.flags.z()) goto gotguardframe;
context._sub(context.ax, 1);
- context._cmp(context.data.byte(64), 1);
+ context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto notgunonpool;
- context.data.byte(64) = -1;
+ context.data.byte(kLastweapon) = -1;
context.ax = 147;
goto gotguardframe;
notgunonpool:
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 40);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotguardframe;
- context.data.byte(63) = 0;
+ context.data.byte(kCombatcount) = 0;
context.ax = 220;
gotguardframe:
context.es.word(context.bx+3) = context.ax;
@@ -1144,16 +1144,16 @@ guardspeed:
if (context.flags.z()) goto iswaitingpool;
context._cmp(context.ax, 146);
if (context.flags.z()) goto iswaitingpool;
- context.data.byte(233) = 0;
- context.data.word(19) = 2;
+ context.data.byte(kPointermode) = 0;
+ context.data.word(kWatchingtime) = 2;
return;
iswaitingpool:
- context.data.byte(233) = 2;
- context.data.word(19) = 0;
+ context.data.byte(kPointermode) = 2;
+ context.data.word(kWatchingtime) = 0;
return;
combatover1:
- context.data.word(19) = 0;
- context.data.byte(233) = 0;
+ context.data.word(kWatchingtime) = 0;
+ context.data.byte(kPointermode) = 0;
context.al = 0;
turnpathon(context);
context.al = 1;
@@ -1161,13 +1161,13 @@ combatover1:
return;
combatover2:
showgamereel(context);
- context.data.word(19) = 2;
- context.data.byte(233) = 0;
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 100);
+ context.data.word(kWatchingtime) = 2;
+ context.data.byte(kPointermode) = 0;
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 100);
if (context.flags.c()) goto doneover2;
- context.data.word(19) = 0;
- context.data.byte(55) = 2;
+ context.data.word(kWatchingtime) = 0;
+ context.data.byte(kMandead) = 2;
doneover2:
return;
}
@@ -1179,20 +1179,20 @@ void security(Context & context) {
if (!context.flags.z()) goto notaftersec;
return;
notaftersec:
- context.data.word(19) = 10;
+ context.data.word(kWatchingtime) = 10;
checkspeed(context);
if (!context.flags.z()) goto gotsecurframe;
context._add(context.es.word(context.bx+3), 1);
goto gotsecurframe;
securwait:
- context._cmp(context.data.byte(64), 1);
+ context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto gotsecurframe;
- context.data.word(19) = 10;
- context._cmp(context.data.byte(474), 9);
+ context.data.word(kWatchingtime) = 10;
+ context._cmp(context.data.byte(kManspath), 9);
if (!context.flags.z()) goto gotsecurframe;
- context._cmp(context.data.byte(132), 0);
+ context._cmp(context.data.byte(kFacing), 0);
if (!context.flags.z()) goto gotsecurframe;
- context.data.byte(64) = -1;
+ context.data.byte(kLastweapon) = -1;
context._add(context.es.word(context.bx+3), 1);
gotsecurframe:
showgamereel(context);
@@ -1206,13 +1206,13 @@ void heavy(Context & context) {
context.es.byte(context.bx+7) = context.al;
context._cmp(context.es.word(context.bx+3), 43);
if (context.flags.z()) goto heavywait;
- context.data.word(19) = 10;
+ context.data.word(kWatchingtime) = 10;
context._cmp(context.es.word(context.bx+3), 70);
if (!context.flags.z()) goto notafterhshot;
- context._add(context.data.byte(63), 1);
- context._cmp(context.data.byte(63), 80);
+ context._add(context.data.byte(kCombatcount), 1);
+ context._cmp(context.data.byte(kCombatcount), 80);
if (!context.flags.z()) goto gotheavyframe;
- context.data.byte(55) = 2;
+ context.data.byte(kMandead) = 2;
goto gotheavyframe;
notafterhshot:
checkspeed(context);
@@ -1220,15 +1220,15 @@ notafterhshot:
context._add(context.es.word(context.bx+3), 1);
goto gotheavyframe;
heavywait:
- context._cmp(context.data.byte(64), 1);
+ context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.data.byte(474), 5);
+ context._cmp(context.data.byte(kManspath), 5);
if (!context.flags.z()) goto gotheavyframe;
- context._cmp(context.data.byte(132), 4);
+ context._cmp(context.data.byte(kFacing), 4);
if (!context.flags.z()) goto gotheavyframe;
- context.data.byte(64) = -1;
+ context.data.byte(kLastweapon) = -1;
context._add(context.es.word(context.bx+3), 1);
- context.data.byte(63) = 0;
+ context.data.byte(kCombatcount) = 0;
gotheavyframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1247,11 +1247,11 @@ void bossman(Context & context) {
context._cmp(context.ax, 41);
if (!context.flags.z()) goto gotallboss;
context.ax = 0;
- context._add(context.data.byte(45), 1);
+ context._add(context.data.byte(kGunpassflag), 1);
context.es.byte(context.bx+7) = 10;
goto gotallboss;
firstdes:
- context._cmp(context.data.byte(45), 1);
+ context._cmp(context.data.byte(kGunpassflag), 1);
if (context.flags.z()) goto gotallboss;
context.push(context.ax);
randomnumber(context);
@@ -1262,7 +1262,7 @@ firstdes:
context.ax = 0;
goto gotallboss;
secdes:
- context._cmp(context.data.byte(45), 1);
+ context._cmp(context.data.byte(kGunpassflag), 1);
if (context.flags.z()) goto gotallboss;
context.ax = 0;
gotallboss:
@@ -1273,7 +1273,7 @@ notboss:
context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedboss;
- context.data.byte(49) = 1;
+ context.data.byte(kTalkedtoboss) = 1;
nottalkedboss:
return;
}
@@ -1317,16 +1317,16 @@ cantdrip2:
}
void keeper(Context & context) {
- context._cmp(context.data.byte(53), 0);
+ context._cmp(context.data.byte(kKeeperflag), 0);
if (!context.flags.z()) goto notwaiting;
- context._cmp(context.data.word(21), 190);
+ context._cmp(context.data.word(kReeltowatch), 190);
if (context.flags.c()) goto waiting;
- context._add(context.data.byte(53), 1);
+ context._add(context.data.byte(kKeeperflag), 1);
context.ah = context.es.byte(context.bx+7);
context._and(context.ah, 127);
- context._cmp(context.ah, context.data.byte(65));
+ context._cmp(context.ah, context.data.byte(kDreamnumber));
if (context.flags.z()) goto notdiff;
- context.al = context.data.byte(65);
+ context.al = context.data.byte(kDreamnumber);
context.es.byte(context.bx+7) = context.al;
notdiff:
return;
@@ -1379,16 +1379,16 @@ gotintrom1:
context.es.word(context.bx+3) = context.ax;
context._cmp(context.ax, 121);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(138), 1);
+ context._add(context.data.byte(kIntrocount), 1);
context.push(context.es);
context.push(context.bx);
intro1text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(138), 8);
+ context._cmp(context.data.byte(kIntrocount), 8);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(148), 10);
- context.data.byte(185) = 1;
+ context._add(context.data.byte(kMapy), 10);
+ context.data.byte(kNowinnewroom) = 1;
introm1fin:
showgamereel(context);
return;
@@ -1446,7 +1446,7 @@ notbang:
slowgates:
context._cmp(context.ax, 120);
if (!context.flags.z()) goto gotgates;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
context.ax = 119;
gotgates:
context.es.word(context.bx+3) = context.ax;
@@ -1482,12 +1482,12 @@ void intromagic3(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 218);
if (!context.flags.z()) goto gotintrom3;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
gotintrom3:
context.es.word(context.bx+3) = context.ax;
introm3fin:
showgamereel(context);
- context.al = context.data.byte(147);
+ context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
return;
}
@@ -1499,15 +1499,15 @@ void intromonks1(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 80);
if (!context.flags.z()) goto notendmonk1;
- context._add(context.data.byte(148), 10);
- context.data.byte(185) = 1;
+ context._add(context.data.byte(kMapy), 10);
+ context.data.byte(kNowinnewroom) = 1;
showgamereel(context);
return;
notendmonk1:
context._cmp(context.ax, 30);
if (!context.flags.z()) goto gotintromonk1;
- context._sub(context.data.byte(148), 10);
- context.data.byte(185) = 1;
+ context._sub(context.data.byte(kMapy), 10);
+ context.data.byte(kNowinnewroom) = 1;
context.ax = 51;
gotintromonk1:
context.es.word(context.bx+3) = context.ax;
@@ -1531,7 +1531,7 @@ waitstep:
context.es.byte(context.bx+6) = -20;
intromonk1fin:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(kMapy);
context.es.byte(context.bx+2) = context.al;
return;
}
@@ -1543,13 +1543,13 @@ void intromonks2(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 87);
if (!context.flags.z()) goto nottalk1;
- context._add(context.data.byte(138), 1);
+ context._add(context.data.byte(kIntrocount), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(138), 19);
+ context._cmp(context.data.byte(kIntrocount), 19);
if (!context.flags.z()) goto notlasttalk1;
context.ax = 87;
goto gotintromonk2;
@@ -1559,13 +1559,13 @@ notlasttalk1:
nottalk1:
context._cmp(context.ax, 110);
if (!context.flags.z()) goto notraisearm;
- context._add(context.data.byte(138), 1);
+ context._add(context.data.byte(kIntrocount), 1);
context.push(context.es);
context.push(context.bx);
monks2text(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(138), 35);
+ context._cmp(context.data.byte(kIntrocount), 35);
if (!context.flags.z()) goto notlastraise;
context.ax = 111;
goto gotintromonk2;
@@ -1575,7 +1575,7 @@ notlastraise:
notraisearm:
context._cmp(context.ax, 176);
if (!context.flags.z()) goto notendmonk2;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
goto gotintromonk2;
notendmonk2:
context._cmp(context.ax, 125);
@@ -1593,7 +1593,7 @@ void handclap(Context & context) {
}
void monks2text(Context & context) {
- context._cmp(context.data.byte(138), 1);
+ context._cmp(context.data.byte(kIntrocount), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
context.bl = 36;
@@ -1601,7 +1601,7 @@ void monks2text(Context & context) {
context.cx = 100;
goto gotmonks2text;
notmonk2text1:
- context._cmp(context.data.byte(138), 4);
+ context._cmp(context.data.byte(kIntrocount), 4);
if (!context.flags.z()) goto notmonk2text2;
context.al = 9;
context.bl = 36;
@@ -1609,7 +1609,7 @@ notmonk2text1:
context.cx = 100;
goto gotmonks2text;
notmonk2text2:
- context._cmp(context.data.byte(138), 7);
+ context._cmp(context.data.byte(kIntrocount), 7);
if (!context.flags.z()) goto notmonk2text3;
context.al = 10;
context.bl = 36;
@@ -1617,7 +1617,7 @@ notmonk2text2:
context.cx = 100;
goto gotmonks2text;
notmonk2text3:
- context._cmp(context.data.byte(138), 10);
+ context._cmp(context.data.byte(kIntrocount), 10);
if (!context.flags.z()) goto notmonk2text4;
context.al = 11;
context.bl = 0;
@@ -1625,7 +1625,7 @@ notmonk2text3:
context.cx = 100;
goto gotmonks2text;
notmonk2text4:
- context._cmp(context.data.byte(138), 13);
+ context._cmp(context.data.byte(kIntrocount), 13);
if (!context.flags.z()) goto notmonk2text5;
context.al = 12;
context.bl = 0;
@@ -1633,7 +1633,7 @@ notmonk2text4:
context.cx = 100;
goto gotmonks2text;
notmonk2text5:
- context._cmp(context.data.byte(138), 16);
+ context._cmp(context.data.byte(kIntrocount), 16);
if (!context.flags.z()) goto notmonk2text6;
context.al = 13;
context.bl = 0;
@@ -1641,7 +1641,7 @@ notmonk2text5:
context.cx = 100;
goto gotmonks2text;
notmonk2text6:
- context._cmp(context.data.byte(138), 19);
+ context._cmp(context.data.byte(kIntrocount), 19);
if (!context.flags.z()) goto notmonk2text7;
context.al = 14;
context.bl = 36;
@@ -1651,7 +1651,7 @@ notmonk2text6:
context.ah = 82;
{ setuptimedtemp(context); return; };
notmonk2text7:
- context._cmp(context.data.byte(138), 22);
+ context._cmp(context.data.byte(kIntrocount), 22);
if (!context.flags.z()) goto notmonk2text8;
context.al = 15;
context.bl = 36;
@@ -1659,7 +1659,7 @@ notmonk2text7:
context.cx = 100;
goto gotmonks2text;
notmonk2text8:
- context._cmp(context.data.byte(138), 25);
+ context._cmp(context.data.byte(kIntrocount), 25);
if (!context.flags.z()) goto notmonk2text9;
context.al = 16;
context.bl = 36;
@@ -1667,7 +1667,7 @@ notmonk2text8:
context.cx = 100;
goto gotmonks2text;
notmonk2text9:
- context._cmp(context.data.byte(138), 28);
+ context._cmp(context.data.byte(kIntrocount), 28);
if (!context.flags.z()) goto notmonk2text10;
context.al = 17;
context.bl = 36;
@@ -1675,7 +1675,7 @@ notmonk2text9:
context.cx = 100;
goto gotmonks2text;
notmonk2text10:
- context._cmp(context.data.byte(138), 31);
+ context._cmp(context.data.byte(kIntrocount), 31);
if (!context.flags.z()) goto notmonk2text11;
context.al = 18;
context.bl = 36;
@@ -1693,7 +1693,7 @@ gotmonks2text:
}
void intro1text(Context & context) {
- context._cmp(context.data.byte(138), 2);
+ context._cmp(context.data.byte(kIntrocount), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
context.bl = 34;
@@ -1701,7 +1701,7 @@ void intro1text(Context & context) {
context.cx = 90;
goto gotintro1text;
notintro1text1:
- context._cmp(context.data.byte(138), 4);
+ context._cmp(context.data.byte(kIntrocount), 4);
if (!context.flags.z()) goto notintro1text2;
context.al = 41;
context.bl = 34;
@@ -1709,7 +1709,7 @@ notintro1text1:
context.cx = 90;
goto gotintro1text;
notintro1text2:
- context._cmp(context.data.byte(138), 6);
+ context._cmp(context.data.byte(kIntrocount), 6);
if (!context.flags.z()) goto notintro1text3;
context.al = 42;
context.bl = 34;
@@ -1783,16 +1783,16 @@ void monkandryan(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 83);
if (!context.flags.z()) goto gotmonkryan;
- context._add(context.data.byte(138), 1);
+ context._add(context.data.byte(kIntrocount), 1);
context.push(context.es);
context.push(context.bx);
textformonk(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 77;
- context._cmp(context.data.byte(138), 57);
+ context._cmp(context.data.byte(kIntrocount), 57);
if (!context.flags.z()) goto gotmonkryan;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
gotmonkryan:
context.es.word(context.bx+3) = context.ax;
@@ -1808,9 +1808,9 @@ void endgameseq(Context & context) {
context._add(context.ax, 1);
context._cmp(context.ax, 51);
if (!context.flags.z()) goto gotendseq;
- context._cmp(context.data.byte(138), 140);
+ context._cmp(context.data.byte(kIntrocount), 140);
if (context.flags.z()) goto gotendseq;
- context._add(context.data.byte(138), 1);
+ context._add(context.data.byte(kIntrocount), 1);
context.push(context.es);
context.push(context.bx);
textforend(context);
@@ -1836,18 +1836,18 @@ notfadedown:
context.push(context.bx);
context.push(context.ax);
fadescreendowns(context);
- context.data.byte(386) = 7;
- context.data.byte(387) = 1;
+ context.data.byte(kVolumeto) = 7;
+ context.data.byte(kVolumedirection) = 1;
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
notfadeend:
context._cmp(context.ax, 340);
if (!context.flags.z()) goto notendseq;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
notendseq:
showgamereel(context);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(kMapy);
context.es.byte(context.bx+2) = context.al;
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 145);
@@ -1862,17 +1862,17 @@ void rollendcredits(Context & context) {
context.al = 16;
context.ah = 255;
playchannel0(context);
- context.data.byte(385) = 7;
- context.data.byte(386) = 0;
- context.data.byte(387) = -1;
+ context.data.byte(kVolume) = 7;
+ context.data.byte(kVolumeto) = 0;
+ context.data.byte(kVolumedirection) = -1;
context.cl = 160;
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
multiget(context);
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
context.si = 3*2;
context.ax = context.es.word(context.si);
context.si = context.ax;
@@ -1881,7 +1881,7 @@ void rollendcredits(Context & context) {
endcredits1:
context.push(context.cx);
context.bx = 10;
- context.cx = context.data.word(75);
+ context.cx = context.data.word(kLinespacing);
endcredits2:
context.push(context.cx);
context.push(context.si);
@@ -1893,7 +1893,7 @@ endcredits2:
context.ch = 160;
context.di = 75;
context.bx = 20;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
multiput(context);
vsync(context);
@@ -1912,7 +1912,7 @@ onelot:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.data.word(75));
+ context._add(context.bx, context.data.word(kLinespacing));
context.cx = context.pop();
if (--context.cx) goto onelot;
vsync(context);
@@ -1949,8 +1949,8 @@ gotnext:
void priest(Context & context) {
context._cmp(context.es.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
- context.data.byte(233) = 0;
- context.data.word(19) = 2;
+ context.data.byte(kPointermode) = 0;
+ context.data.word(kWatchingtime) = 2;
checkspeed(context);
if (!context.flags.z()) goto priestwait;
context._add(context.es.word(context.bx+3), 1);
@@ -1978,7 +1978,7 @@ notendtelly:
}
void madman(Context & context) {
- context.data.word(19) = 2;
+ context.data.word(kWatchingtime) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
context.ax = context.es.word(context.bx+3);
@@ -1994,30 +1994,30 @@ void madman(Context & context) {
context.ax = context.pop();
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(63) = -1;
- context.data.byte(68) = 0;
+ context.data.byte(kCombatcount) = -1;
+ context.data.byte(kSpeechcount) = 0;
notfirstmad:
context._add(context.ax, 1);
context._cmp(context.ax, 294);
if (context.flags.z()) goto madmanspoken;
context._cmp(context.ax, 66);
if (!context.flags.z()) goto nomadspeak;
- context._add(context.data.byte(63), 1);
+ context._add(context.data.byte(kCombatcount), 1);
context.push(context.es);
context.push(context.bx);
madmantext(context);
context.bx = context.pop();
context.es = context.pop();
context.ax = 53;
- context._cmp(context.data.byte(63), 62);
+ context._cmp(context.data.byte(kCombatcount), 62);
if (context.flags.c()) goto nomadspeak;
- context._cmp(context.data.byte(63), 68);
+ context._cmp(context.data.byte(kCombatcount), 68);
if (context.flags.z()) goto killryan;
- context._cmp(context.data.byte(64), 8);
+ context._cmp(context.data.byte(kLastweapon), 8);
if (!context.flags.z()) goto nomadspeak;
- context.data.byte(63) = 70;
- context.data.byte(64) = -1;
- context.data.byte(52) = 1;
+ context.data.byte(kCombatcount) = 70;
+ context.data.byte(kLastweapon) = -1;
+ context.data.byte(kMadmanflag) = 1;
context.ax = 67;
goto nomadspeak;
killryan:
@@ -2026,14 +2026,14 @@ nomadspeak:
context.es.word(context.bx+3) = context.ax;
nomadspeed:
showgamereel(context);
- context.al = context.data.byte(147);
+ context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
madmode(context);
return;
madmanspoken:
- context._cmp(context.data.byte(390), 1);
+ context._cmp(context.data.byte(kWongame), 1);
if (context.flags.z()) goto alreadywon;
- context.data.byte(390) = 1;
+ context.data.byte(kWongame) = 1;
context.push(context.es);
context.push(context.bx);
getridoftemptext(context);
@@ -2042,18 +2042,18 @@ madmanspoken:
alreadywon:
return;
ryansded:
- context.data.byte(55) = 2;
+ context.data.byte(kMandead) = 2;
showgamereel(context);
return;
}
void madmantext(Context & context) {
- context._cmp(context.data.byte(63), 61);
+ context._cmp(context.data.byte(kCombatcount), 61);
if (!context.flags.c()) goto nomadtext;
- context.al = context.data.byte(63);
+ context.al = context.data.byte(kCombatcount);
context._and(context.al, 3);
if (!context.flags.z()) goto nomadtext;
- context.al = context.data.byte(63);
+ context.al = context.data.byte(kCombatcount);
context._shr(context.al, 1);
context._shr(context.al, 1);
context._add(context.al, 47);
@@ -2068,13 +2068,13 @@ nomadtext:
}
void madmode(Context & context) {
- context.data.word(19) = 2;
- context.data.byte(233) = 0;
- context._cmp(context.data.byte(63), 63);
+ context.data.word(kWatchingtime) = 2;
+ context.data.byte(kPointermode) = 0;
+ context._cmp(context.data.byte(kCombatcount), 63);
if (context.flags.c()) goto iswatchmad;
- context._cmp(context.data.byte(63), 68);
+ context._cmp(context.data.byte(kCombatcount), 68);
if (!context.flags.c()) goto iswatchmad;
- context.data.byte(233) = 2;
+ context.data.byte(kPointermode) = 2;
iswatchmad:
return;
}
@@ -2100,7 +2100,7 @@ nopriesttext:
}
void textforend(Context & context) {
- context._cmp(context.data.byte(138), 20);
+ context._cmp(context.data.byte(kIntrocount), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
context.bl = 34;
@@ -2108,7 +2108,7 @@ void textforend(Context & context) {
context.cx = 60;
goto gotendtext;
notendtext1:
- context._cmp(context.data.byte(138), 65);
+ context._cmp(context.data.byte(kIntrocount), 65);
if (!context.flags.z()) goto notendtext2;
context.al = 1;
context.bl = 34;
@@ -2116,7 +2116,7 @@ notendtext1:
context.cx = 60;
goto gotendtext;
notendtext2:
- context._cmp(context.data.byte(138), 110);
+ context._cmp(context.data.byte(kIntrocount), 110);
if (!context.flags.z()) goto notendtext3;
context.al = 2;
context.bl = 34;
@@ -2133,7 +2133,7 @@ gotendtext:
}
void textformonk(Context & context) {
- context._cmp(context.data.byte(138), 1);
+ context._cmp(context.data.byte(kIntrocount), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
context.bl = 68;
@@ -2141,7 +2141,7 @@ void textformonk(Context & context) {
context.cx = 120;
goto gotmonktext;
notmonktext1:
- context._cmp(context.data.byte(138), 5);
+ context._cmp(context.data.byte(kIntrocount), 5);
if (!context.flags.z()) goto notmonktext2;
context.al = 20;
context.bl = 68;
@@ -2149,7 +2149,7 @@ notmonktext1:
context.cx = 120;
goto gotmonktext;
notmonktext2:
- context._cmp(context.data.byte(138), 9);
+ context._cmp(context.data.byte(kIntrocount), 9);
if (!context.flags.z()) goto notmonktext3;
context.al = 21;
context.bl = 48;
@@ -2157,7 +2157,7 @@ notmonktext2:
context.cx = 120;
goto gotmonktext;
notmonktext3:
- context._cmp(context.data.byte(138), 13);
+ context._cmp(context.data.byte(kIntrocount), 13);
if (!context.flags.z()) goto notmonktext4;
context.al = 22;
context.bl = 68;
@@ -2165,7 +2165,7 @@ notmonktext3:
context.cx = 120;
goto gotmonktext;
notmonktext4:
- context._cmp(context.data.byte(138), 17);
+ context._cmp(context.data.byte(kIntrocount), 17);
if (!context.flags.z()) goto notmonktext5;
context.al = 23;
context.bl = 68;
@@ -2173,7 +2173,7 @@ notmonktext4:
context.cx = 120;
goto gotmonktext;
notmonktext5:
- context._cmp(context.data.byte(138), 21);
+ context._cmp(context.data.byte(kIntrocount), 21);
if (!context.flags.z()) goto notmonktext6;
context.al = 24;
context.bl = 68;
@@ -2181,7 +2181,7 @@ notmonktext5:
context.cx = 120;
goto gotmonktext;
notmonktext6:
- context._cmp(context.data.byte(138), 25);
+ context._cmp(context.data.byte(kIntrocount), 25);
if (!context.flags.z()) goto notmonktext7;
context.al = 25;
context.bl = 68;
@@ -2189,7 +2189,7 @@ notmonktext6:
context.cx = 120;
goto gotmonktext;
notmonktext7:
- context._cmp(context.data.byte(138), 29);
+ context._cmp(context.data.byte(kIntrocount), 29);
if (!context.flags.z()) goto notmonktext8;
context.al = 26;
context.bl = 68;
@@ -2197,7 +2197,7 @@ notmonktext7:
context.cx = 120;
goto gotmonktext;
notmonktext8:
- context._cmp(context.data.byte(138), 33);
+ context._cmp(context.data.byte(kIntrocount), 33);
if (!context.flags.z()) goto notmonktext9;
context.al = 27;
context.bl = 68;
@@ -2205,7 +2205,7 @@ notmonktext8:
context.cx = 120;
goto gotmonktext;
notmonktext9:
- context._cmp(context.data.byte(138), 37);
+ context._cmp(context.data.byte(kIntrocount), 37);
if (!context.flags.z()) goto notmonktext10;
context.al = 28;
context.bl = 68;
@@ -2213,7 +2213,7 @@ notmonktext9:
context.cx = 120;
goto gotmonktext;
notmonktext10:
- context._cmp(context.data.byte(138), 41);
+ context._cmp(context.data.byte(kIntrocount), 41);
if (!context.flags.z()) goto notmonktext11;
context.al = 29;
context.bl = 68;
@@ -2221,7 +2221,7 @@ notmonktext10:
context.cx = 120;
goto gotmonktext;
notmonktext11:
- context._cmp(context.data.byte(138), 45);
+ context._cmp(context.data.byte(kIntrocount), 45);
if (!context.flags.z()) goto notmonktext12;
context.al = 30;
context.bl = 68;
@@ -2229,7 +2229,7 @@ notmonktext11:
context.cx = 120;
goto gotmonktext;
notmonktext12:
- context._cmp(context.data.byte(138), 49);
+ context._cmp(context.data.byte(kIntrocount), 49);
if (!context.flags.z()) goto notmonktext13;
context.al = 31;
context.bl = 68;
@@ -2237,7 +2237,7 @@ notmonktext12:
context.cx = 220;
goto gotmonktext;
notmonktext13:
- context._cmp(context.data.byte(138), 53);
+ context._cmp(context.data.byte(kIntrocount), 53);
if (!context.flags.z()) goto notendtitles;
fadescreendowns(context);
notendtitles:
@@ -2251,7 +2251,7 @@ oktalk:
}
void drunk(Context & context) {
- context._cmp(context.data.byte(41), 0);
+ context._cmp(context.data.byte(kGeneraldead), 0);
if (!context.flags.z()) goto trampgone;
context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
@@ -2321,7 +2321,7 @@ nocopper:
}
void sparky(Context & context) {
- context._cmp(context.data.word(14), 0);
+ context._cmp(context.data.word(kCard1money), 0);
if (context.flags.z()) goto animsparky;
context.es.byte(context.bx+7) = 3;
goto animsparky;
@@ -2348,7 +2348,7 @@ finishsparky:
context.al = context.es.byte(context.bx+7);
context._and(context.al, 128);
if (context.flags.z()) goto nottalkedsparky;
- context.data.byte(48) = 1;
+ context.data.byte(kTalkedtosparky) = 1;
nottalkedsparky:
return;
}
@@ -2364,9 +2364,9 @@ notrainyet:
randomnumber(context);
context._cmp(context.al, 253);
if (context.flags.c()) goto notrainatall;
- context._cmp(context.data.byte(474), 5);
+ context._cmp(context.data.byte(kManspath), 5);
if (!context.flags.z()) goto notrainatall;
- context._cmp(context.data.byte(476), 5);
+ context._cmp(context.data.byte(kFinaldest), 5);
if (!context.flags.z()) goto notrainatall;
context.ax = 5;
gottrainframe:
@@ -2382,15 +2382,15 @@ void addtopeoplelist(Context & context) {
context.push(context.bx);
context.cl = context.es.byte(context.bx+7);
context.ax = context.es.word(context.bx+3);
- context.bx = context.data.word(16);
- context.es = context.data.word(410);
+ context.bx = context.data.word(kListpos);
+ context.es = context.data.word(kBuffers);
context.es.word(context.bx) = context.ax;
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
context.es.byte(context.bx+4) = context.cl;
context.bx = context.pop();
context.es = context.pop();
- context._add(context.data.word(16), 5);
+ context._add(context.data.word(kListpos), 5);
return;
}
@@ -2398,20 +2398,20 @@ void showgamereel(Context & context) {
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
- context.data.word(237) = context.ax;
+ context.data.word(kReelpointer) = context.ax;
context.push(context.es);
context.push(context.bx);
plotreel(context);
context.bx = context.pop();
context.es = context.pop();
- context.ax = context.data.word(237);
+ context.ax = context.data.word(kReelpointer);
context.es.word(context.bx+3) = context.ax;
noshow:
return;
}
void checkspeed(Context & context) {
- context._cmp(context.data.byte(64), -1);
+ context._cmp(context.data.byte(kLastweapon), -1);
if (!context.flags.z()) goto forcenext;
context._add(context.es.byte(context.bx+6), 1);
context.al = context.es.byte(context.bx+6);
@@ -2428,7 +2428,7 @@ forcenext:
}
void clearsprites(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.al = 255;
context.cx = 32*16;
@@ -2437,7 +2437,7 @@ void clearsprites(Context & context) {
}
void makesprite(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
_tmp17:
context._cmp(context.es.byte(context.bx+15), 255);
@@ -2464,11 +2464,11 @@ void delsprite(Context & context) {
}
void spriteupdate(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
- context.al = context.data.byte(62);
+ context.al = context.data.byte(kRyanon);
context.es.byte(context.bx+31) = context.al;
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
_tmp18:
@@ -2487,7 +2487,7 @@ _tmp18:
_tmp18a:
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(185), 1);
+ context._cmp(context.data.byte(kNowinnewroom), 1);
if (context.flags.z()) goto _tmp18b;
context._add(context.bx, 32);
if (--context.cx) goto _tmp18;
@@ -2496,11 +2496,11 @@ _tmp18b:
}
void printsprites(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.cx = 0;
priorityloop:
context.push(context.cx);
- context.data.byte(181) = context.cl;
+ context.data.byte(kPriority) = context.cl;
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
prtspriteloop:
@@ -2509,7 +2509,7 @@ prtspriteloop:
context.ax = context.es.word(context.bx);
context._cmp(context.ax, 0x0ffff);
if (context.flags.z()) goto skipsprite;
- context.al = context.data.byte(181);
+ context.al = context.data.byte(kPriority);
context._cmp(context.al, context.es.byte(context.bx+23));
if (!context.flags.z()) goto skipsprite;
context._cmp(context.es.byte(context.bx+31), 1);
@@ -2539,7 +2539,7 @@ void printasprite(Context & context) {
context.ah = 255;
notnegative1:
context.bx = context.ax;
- context._add(context.bx, context.data.word(117));
+ context._add(context.bx, context.data.word(kMapady));
context.al = context.es.byte(context.si+10);
context.ah = 0;
context._cmp(context.al, 220);
@@ -2547,14 +2547,14 @@ notnegative1:
context.ah = 255;
notnegative2:
context.di = context.ax;
- context._add(context.di, context.data.word(115));
+ context._add(context.di, context.data.word(kMapadx));
context.al = context.es.byte(context.si+15);
context.ah = 0;
context._cmp(context.es.byte(context.si+30), 0);
if (context.flags.z()) goto steadyframe;
context.ah = 8;
steadyframe:
- context._cmp(context.data.byte(181), 6);
+ context._cmp(context.data.byte(kPriority), 6);
if (!context.flags.z()) goto notquickp;
notquickp:
showframe(context);
@@ -2589,7 +2589,7 @@ void checkone(Context & context) {
context.cx = 3;
context._mul(context.cx);
context.si = context.ax;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context._add(context.si, 0+(228*13)+32+60+(32*32));
context._lodsw();
context.cx = context.ax;
@@ -2599,30 +2599,30 @@ void checkone(Context & context) {
}
void findsource(Context & context) {
- context.ax = context.data.word(158);
+ context.ax = context.data.word(kCurrentframe);
context._cmp(context.ax, 160);
if (!context.flags.c()) goto over1000;
- context.ds = context.data.word(428);
- context.data.word(242) = 0;
+ context.ds = context.data.word(kReel1);
+ context.data.word(kTakeoff) = 0;
return;
over1000:
context._cmp(context.ax, 320);
if (!context.flags.c()) goto over1001;
- context.ds = context.data.word(430);
- context.data.word(242) = 160;
+ context.ds = context.data.word(kReel2);
+ context.data.word(kTakeoff) = 160;
return;
over1001:
- context.ds = context.data.word(432);
- context.data.word(242) = 320;
+ context.ds = context.data.word(kReel3);
+ context.data.word(kTakeoff) = 320;
return;
}
void initman(Context & context) {
- context.al = context.data.byte(150);
- context.ah = context.data.byte(151);
+ context.al = context.data.byte(kRyanx);
+ context.ah = context.data.byte(kRyany);
context.si = context.ax;
context.cx = 49464;
- context.dx = context.data.word(412);
+ context.dx = context.data.word(kMainsprites);
context.di = 0;
makesprite(context);
context.es.byte(context.bx+23) = 4;
@@ -2632,11 +2632,11 @@ void initman(Context & context) {
}
void mainman(Context & context) {
- context._cmp(context.data.byte(186), 1);
+ context._cmp(context.data.byte(kResetmanxy), 1);
if (!context.flags.z()) goto notinnewroom;
- context.data.byte(186) = 0;
- context.al = context.data.byte(150);
- context.ah = context.data.byte(151);
+ context.data.byte(kResetmanxy) = 0;
+ context.al = context.data.byte(kRyanx);
+ context.ah = context.data.byte(kRyany);
context.es.word(context.bx+10) = context.ax;
context.es.byte(context.bx+29) = 0;
goto executewalk;
@@ -2647,24 +2647,24 @@ notinnewroom:
return;
executewalk:
context.es.byte(context.bx+22) = 0;
- context.al = context.data.byte(134);
- context._cmp(context.al, context.data.byte(132));
+ context.al = context.data.byte(kTurntoface);
+ context._cmp(context.al, context.data.byte(kFacing));
if (context.flags.z()) goto facingok;
aboutturn(context);
goto notwalk;
facingok:
- context._cmp(context.data.byte(135), 0);
+ context._cmp(context.data.byte(kTurndirection), 0);
if (context.flags.z()) goto alreadyturned;
- context._cmp(context.data.byte(491), 254);
+ context._cmp(context.data.byte(kLinepointer), 254);
if (!context.flags.z()) goto alreadyturned;
- context.data.byte(472) = 1;
- context.al = context.data.byte(132);
- context._cmp(context.al, context.data.byte(133));
+ context.data.byte(kReasseschanges) = 1;
+ context.al = context.data.byte(kFacing);
+ context._cmp(context.al, context.data.byte(kLeavedirection));
if (!context.flags.z()) goto alreadyturned;
checkforexit(context);
alreadyturned:
- context.data.byte(135) = 0;
- context._cmp(context.data.byte(491), 254);
+ context.data.byte(kTurndirection) = 0;
+ context._cmp(context.data.byte(kLinepointer), 254);
if (!context.flags.z()) goto walkman;
context.es.byte(context.bx+29) = 0;
goto notwalk;
@@ -2677,9 +2677,9 @@ walkman:
notanimend1:
context.es.byte(context.bx+29) = context.al;
walking(context);
- context._cmp(context.data.byte(491), 254);
+ context._cmp(context.data.byte(kLinepointer), 254);
if (context.flags.z()) goto afterwalk;
- context.al = context.data.byte(132);
+ context.al = context.data.byte(kFacing);
context._and(context.al, 1);
if (context.flags.z()) goto isdouble;
context.al = context.es.byte(context.bx+29);
@@ -2690,18 +2690,18 @@ notanimend1:
isdouble:
walking(context);
afterwalk:
- context._cmp(context.data.byte(491), 254);
+ context._cmp(context.data.byte(kLinepointer), 254);
if (!context.flags.z()) goto notwalk;
- context.al = context.data.byte(134);
- context._cmp(context.al, context.data.byte(132));
+ context.al = context.data.byte(kTurntoface);
+ context._cmp(context.al, context.data.byte(kFacing));
if (!context.flags.z()) goto notwalk;
- context.data.byte(472) = 1;
- context.al = context.data.byte(132);
- context._cmp(context.al, context.data.byte(133));
+ context.data.byte(kReasseschanges) = 1;
+ context.al = context.data.byte(kFacing);
+ context._cmp(context.al, context.data.byte(kLeavedirection));
if (!context.flags.z()) goto notwalk;
checkforexit(context);
notwalk:
- context.al = context.data.byte(132);
+ context.al = context.data.byte(kFacing);
context.ah = 0;
context.di = 1105;
context._add(context.di, context.ax);
@@ -2709,18 +2709,18 @@ notwalk:
context._add(context.al, context.es.byte(context.bx+29));
context.es.byte(context.bx+15) = context.al;
context.ax = context.es.word(context.bx+10);
- context.data.byte(150) = context.al;
- context.data.byte(151) = context.ah;
+ context.data.byte(kRyanx) = context.al;
+ context.data.byte(kRyany) = context.ah;
return;
}
void aboutturn(Context & context) {
- context._cmp(context.data.byte(135), 1);
+ context._cmp(context.data.byte(kTurndirection), 1);
if (context.flags.z()) goto incdir;
- context._cmp(context.data.byte(135), -1);
+ context._cmp(context.data.byte(kTurndirection), -1);
if (context.flags.z()) goto decdir;
- context.al = context.data.byte(132);
- context._sub(context.al, context.data.byte(134));
+ context.al = context.data.byte(kFacing);
+ context._sub(context.al, context.data.byte(kTurntoface));
if (!context.flags.c()) goto higher;
context._neg(context.al);
context._cmp(context.al, 4);
@@ -2731,37 +2731,37 @@ higher:
if (!context.flags.c()) goto incdir;
goto decdir;
incdir:
- context.data.byte(135) = 1;
- context.al = context.data.byte(132);
+ context.data.byte(kTurndirection) = 1;
+ context.al = context.data.byte(kFacing);
context._add(context.al, 1);
context._and(context.al, 7);
- context.data.byte(132) = context.al;
+ context.data.byte(kFacing) = context.al;
context.es.byte(context.bx+29) = 0;
return;
decdir:
- context.data.byte(135) = -1;
- context.al = context.data.byte(132);
+ context.data.byte(kTurndirection) = -1;
+ context.al = context.data.byte(kFacing);
context._sub(context.al, 1);
context._and(context.al, 7);
- context.data.byte(132) = context.al;
+ context.data.byte(kFacing) = context.al;
context.es.byte(context.bx+29) = 0;
return;
}
void walking(Context & context) {
- context._cmp(context.data.byte(492), 0);
+ context._cmp(context.data.byte(kLinedirection), 0);
if (context.flags.z()) goto normalwalk;
- context.al = context.data.byte(491);
+ context.al = context.data.byte(kLinepointer);
context._sub(context.al, 1);
- context.data.byte(491) = context.al;
+ context.data.byte(kLinepointer) = context.al;
context._cmp(context.al, 200);
if (!context.flags.c()) goto endofline;
goto continuewalk;
normalwalk:
- context.al = context.data.byte(491);
+ context.al = context.data.byte(kLinepointer);
context._add(context.al, 1);
- context.data.byte(491) = context.al;
- context._cmp(context.al, context.data.byte(493));
+ context.data.byte(kLinepointer) = context.al;
+ context._cmp(context.al, context.data.byte(kLinelength));
if (!context.flags.c()) goto endofline;
continuewalk:
context.ah = 0;
@@ -2779,13 +2779,13 @@ stillline:
context.es.word(context.bx+10) = context.ax;
return;
endofline:
- context.data.byte(491) = 254;
- context.al = context.data.byte(477);
- context.data.byte(474) = context.al;
- context._cmp(context.al, context.data.byte(476));
+ context.data.byte(kLinepointer) = 254;
+ context.al = context.data.byte(kDestination);
+ context.data.byte(kManspath) = context.al;
+ context._cmp(context.al, context.data.byte(kFinaldest));
if (context.flags.z()) goto finishedwalk;
- context.al = context.data.byte(476);
- context.data.byte(477) = context.al;
+ context.al = context.data.byte(kFinaldest);
+ context.data.byte(kDestination) = context.al;
context.push(context.es);
context.push(context.bx);
autosetwalk(context);
@@ -2801,42 +2801,42 @@ void facerightway(Context & context) {
context.push(context.es);
context.push(context.bx);
getroomspaths(context);
- context.al = context.data.byte(474);
+ context.al = context.data.byte(kManspath);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.ax, context.ax);
context._add(context.bx, context.ax);
context.al = context.es.byte(context.bx+7);
- context.data.byte(134) = context.al;
- context.data.byte(133) = context.al;
+ context.data.byte(kTurntoface) = context.al;
+ context.data.byte(kLeavedirection) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
}
void checkforexit(Context & context) {
- context.cl = context.data.byte(150);
+ context.cl = context.data.byte(kRyanx);
context._add(context.cl, 12);
- context.ch = context.data.byte(151);
+ context.ch = context.data.byte(kRyany);
context._add(context.ch, 12);
checkone(context);
- context.data.byte(152) = context.cl;
- context.data.byte(153) = context.ch;
- context.data.byte(154) = context.dl;
- context.data.byte(155) = context.dh;
- context.al = context.data.byte(152);
+ context.data.byte(kLastflag) = context.cl;
+ context.data.byte(kLastflagex) = context.ch;
+ context.data.byte(kFlagx) = context.dl;
+ context.data.byte(kFlagy) = context.dh;
+ context.al = context.data.byte(kLastflag);
context._test(context.al, 64);
if (context.flags.z()) goto notnewdirect;
- context.al = context.data.byte(153);
- context.data.byte(188) = context.al;
+ context.al = context.data.byte(kLastflagex);
+ context.data.byte(kAutolocation) = context.al;
return;
notnewdirect:
context._test(context.al, 32);
if (context.flags.z()) goto notleave;
context.push(context.es);
context.push(context.bx);
- context._cmp(context.data.byte(183), 2);
+ context._cmp(context.data.byte(kReallocation), 2);
if (!context.flags.z()) goto notlouis;
context.bl = 0;
context.push(context.bx);
@@ -2871,17 +2871,17 @@ notravmessage:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- context.al = context.data.byte(132);
+ context.al = context.data.byte(kFacing);
context._add(context.al, 4);
context._and(context.al, 7);
- context.data.byte(134) = context.al;
+ context.data.byte(kTurntoface) = context.al;
context.bx = context.pop();
context.es = context.pop();
return;
notlouis:
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(59) = 1;
+ context.data.byte(kNeedtotravel) = 1;
return;
notleave:
context._test(context.al, 4);
@@ -2910,12 +2910,12 @@ notanup:
void adjustdown(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.data.byte(148), 10);
- context.al = context.data.byte(153);
+ context._add(context.data.byte(kMapy), 10);
+ context.al = context.data.byte(kLastflagex);
context.cl = 16;
context._mul(context.cl);
context.es.byte(context.bx+11) = context.al;
- context.data.byte(185) = 1;
+ context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2924,12 +2924,12 @@ void adjustdown(Context & context) {
void adjustup(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._sub(context.data.byte(148), 10);
- context.al = context.data.byte(153);
+ context._sub(context.data.byte(kMapy), 10);
+ context.al = context.data.byte(kLastflagex);
context.cl = 16;
context._mul(context.cl);
context.es.byte(context.bx+11) = context.al;
- context.data.byte(185) = 1;
+ context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2938,13 +2938,13 @@ void adjustup(Context & context) {
void adjustleft(Context & context) {
context.push(context.es);
context.push(context.bx);
- context.data.byte(152) = 0;
- context._sub(context.data.byte(147), 11);
- context.al = context.data.byte(153);
+ context.data.byte(kLastflag) = 0;
+ context._sub(context.data.byte(kMapx), 11);
+ context.al = context.data.byte(kLastflagex);
context.cl = 16;
context._mul(context.cl);
context.es.byte(context.bx+10) = context.al;
- context.data.byte(185) = 1;
+ context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -2953,24 +2953,24 @@ void adjustleft(Context & context) {
void adjustright(Context & context) {
context.push(context.es);
context.push(context.bx);
- context._add(context.data.byte(147), 11);
- context.al = context.data.byte(153);
+ context._add(context.data.byte(kMapx), 11);
+ context.al = context.data.byte(kLastflagex);
context.cl = 16;
context._mul(context.cl);
context._sub(context.al, 2);
context.es.byte(context.bx+10) = context.al;
- context.data.byte(185) = 1;
+ context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
return;
}
void reminders(Context & context) {
- context._cmp(context.data.byte(183), 24);
+ context._cmp(context.data.byte(kReallocation), 24);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.data.byte(147), 44);
+ context._cmp(context.data.byte(kMapx), 44);
if (!context.flags.z()) goto notinedenslift;
- context._cmp(context.data.byte(1), 0);
+ context._cmp(context.data.byte(kProgresspoints), 0);
if (!context.flags.z()) goto notfirst;
context.al = 'D';
context.ah = 'K';
@@ -2998,7 +2998,7 @@ void reminders(Context & context) {
compare(context);
if (!context.flags.z()) goto forgotone;
havegotcard:
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
notfirst:
return;
forgotone:
@@ -3014,23 +3014,23 @@ notinedenslift:
}
void initrain(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
context.bx = 1113;
checkmorerain:
context.al = context.cs.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto finishinitrain;
- context._cmp(context.al, context.data.byte(183));
+ context._cmp(context.al, context.data.byte(kReallocation));
if (!context.flags.z()) goto checkrain;
context.al = context.cs.byte(context.bx+1);
- context._cmp(context.al, context.data.byte(147));
+ context._cmp(context.al, context.data.byte(kMapx));
if (!context.flags.z()) goto checkrain;
context.al = context.cs.byte(context.bx+2);
- context._cmp(context.al, context.data.byte(148));
+ context._cmp(context.al, context.data.byte(kMapy));
if (!context.flags.z()) goto checkrain;
context.al = context.cs.byte(context.bx+3);
- context.data.byte(131) = context.al;
+ context.data.byte(kRainspace) = context.al;
goto dorain;
checkrain:
context._add(context.bx, 4);
@@ -3041,26 +3041,26 @@ initraintop:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.data.byte(131));
+ context._cmp(context.al, context.data.byte(kRainspace));
if (!context.flags.c()) goto initraintop;
context._add(context.cl, context.al);
- context._cmp(context.cl, context.data.byte(127));
+ context._cmp(context.cl, context.data.byte(kMapxsize));
if (!context.flags.c()) goto initrainside;
context.push(context.cx);
splitintolines(context);
context.cx = context.pop();
goto initraintop;
initrainside:
- context.cl = context.data.byte(127);
+ context.cl = context.data.byte(kMapxsize);
context._sub(context.cl, 1);
initrainside2:
randomnumber(context);
context._and(context.al, 31);
context._add(context.al, 3);
- context._cmp(context.al, context.data.byte(131));
+ context._cmp(context.al, context.data.byte(kRainspace));
if (!context.flags.c()) goto initrainside2;
context._add(context.ch, context.al);
- context._cmp(context.ch, context.data.byte(128));
+ context._cmp(context.ch, context.data.byte(kMapysize));
if (!context.flags.c()) goto finishinitrain;
context.push(context.cx);
splitintolines(context);
@@ -3081,7 +3081,7 @@ lookforlinestart:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.data.byte(128));
+ context._cmp(context.ch, context.data.byte(kMapysize));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
foundlinestart:
@@ -3095,7 +3095,7 @@ lookforlineend:
context._add(context.ch, 1);
context._cmp(context.cl, 0);
if (context.flags.z()) goto foundlineend;
- context._cmp(context.ch, context.data.byte(128));
+ context._cmp(context.ch, context.data.byte(kMapysize));
if (!context.flags.c()) goto foundlineend;
context._add(context.bh, 1);
goto lookforlineend;
@@ -3114,7 +3114,7 @@ foundlineend:
context.cx = context.pop();
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
- context._cmp(context.ch, context.data.byte(128));
+ context._cmp(context.ch, context.data.byte(kMapysize));
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
endofthisline:
@@ -3125,9 +3125,9 @@ void getblockofpixel(Context & context) {
context.push(context.cx);
context.push(context.es);
context.push(context.di);
- context.ax = context.data.word(123);
+ context.ax = context.data.word(kMapxstart);
context._add(context.cl, context.al);
- context.ax = context.data.word(125);
+ context.ax = context.data.word(kMapystart);
context._add(context.ch, context.al);
checkone(context);
context._and(context.cl, 1);
@@ -3145,30 +3145,30 @@ failrain:
}
void showrain(Context & context) {
- context.ds = context.data.word(412);
+ context.ds = context.data.word(kMainsprites);
context.si = 6*58;
context.ax = context.ds.word(context.si+2);
context.si = context.ax;
context._add(context.si, 2080);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
morerain:
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto finishrain;
context.al = context.es.byte(context.bx+1);
context.ah = 0;
- context._add(context.ax, context.data.word(117));
- context._add(context.ax, context.data.word(125));
+ context._add(context.ax, context.data.word(kMapady));
+ context._add(context.ax, context.data.word(kMapystart));
context.cx = 320;
context._mul(context.cx);
context.cl = context.es.byte(context.bx);
context.ch = 0;
context._add(context.ax, context.cx);
- context._add(context.ax, context.data.word(115));
- context._add(context.ax, context.data.word(123));
+ context._add(context.ax, context.data.word(kMapadx));
+ context._add(context.ax, context.data.word(kMapxstart));
context.di = context.ax;
context.cl = context.es.byte(context.bx+2);
context.ch = 0;
@@ -3181,7 +3181,7 @@ morerain:
context._add(context.bx, 6);
context.push(context.si);
context._add(context.si, context.ax);
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.ah = 0;
context.dx = 320-2;
rainloop:
@@ -3199,20 +3199,20 @@ noplot:
context.si = context.pop();
goto morerain;
finishrain:
- context._cmp(context.data.word(519), 0);
+ context._cmp(context.data.word(kCh1blockstocopy), 0);
if (!context.flags.z()) goto nothunder;
- context._cmp(context.data.byte(183), 2);
+ context._cmp(context.data.byte(kReallocation), 2);
if (!context.flags.z()) goto notlouisthund;
- context._cmp(context.data.byte(44), 1);
+ context._cmp(context.data.byte(kBeenmugged), 1);
if (!context.flags.z()) goto nothunder;
notlouisthund:
- context._cmp(context.data.byte(183), 55);
+ context._cmp(context.data.byte(kReallocation), 55);
if (context.flags.z()) goto nothunder;
randomnum1(context);
context._cmp(context.al, 1);
if (!context.flags.c()) goto nothunder;
context.al = 7;
- context._cmp(context.data.byte(506), 6);
+ context._cmp(context.data.byte(kCh0playing), 6);
if (context.flags.z()) goto isthunder1;
context.al = 4;
isthunder1:
@@ -3222,7 +3222,7 @@ nothunder:
}
void backobject(Context & context) {
- context.ds = context.data.word(426);
+ context.ds = context.data.word(kSetdat);
context.di = context.es.word(context.bx+20);
context.al = context.es.byte(context.bx+18);
context._cmp(context.al, 0);
@@ -3270,7 +3270,7 @@ finishback:
}
void liftsprite(Context & context) {
- context.al = context.data.byte(34);
+ context.al = context.data.byte(kLiftflag);
context._cmp(context.al, 0);
if (context.flags.z()) goto liftclosed;
context._cmp(context.al, 1);
@@ -3289,7 +3289,7 @@ void liftsprite(Context & context) {
context.ax = context.pop();
goto pokelift;
finishclose:
- context.data.byte(34) = 0;
+ context.data.byte(kLiftflag) = 0;
return;
openlift:
context.al = context.es.byte(context.bx+19);
@@ -3313,46 +3313,46 @@ pokelift:
context.ds.byte(context.di+17) = context.al;
return;
endoflist:
- context.data.byte(34) = 1;
+ context.data.byte(kLiftflag) = 1;
return;
liftopen:
- context.al = context.data.byte(35);
+ context.al = context.data.byte(kLiftpath);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(39), 0);
+ context._cmp(context.data.byte(kCounttoclose), 0);
if (context.flags.z()) goto nocountclose;
- context._sub(context.data.byte(39), 1);
- context._cmp(context.data.byte(39), 0);
+ context._sub(context.data.byte(kCounttoclose), 1);
+ context._cmp(context.data.byte(kCounttoclose), 0);
if (!context.flags.z()) goto nocountclose;
- context.data.byte(34) = 2;
+ context.data.byte(kLiftflag) = 2;
nocountclose:
context.al = 12;
goto pokelift;
liftclosed:
- context.al = context.data.byte(35);
+ context.al = context.data.byte(kLiftpath);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context._cmp(context.data.byte(38), 0);
+ context._cmp(context.data.byte(kCounttoopen), 0);
if (context.flags.z()) goto nocountopen;
- context._sub(context.data.byte(38), 1);
- context._cmp(context.data.byte(38), 0);
+ context._sub(context.data.byte(kCounttoopen), 1);
+ context._cmp(context.data.byte(kCounttoopen), 0);
if (!context.flags.z()) goto nocountopen;
- context.data.byte(34) = 3;
+ context.data.byte(kLiftflag) = 3;
nocountopen:
context.al = 0;
goto pokelift;
}
void liftnoise(Context & context) {
- context._cmp(context.data.byte(183), 5);
+ context._cmp(context.data.byte(kReallocation), 5);
if (context.flags.z()) goto hissnoise;
- context._cmp(context.data.byte(183), 21);
+ context._cmp(context.data.byte(kReallocation), 21);
if (context.flags.z()) goto hissnoise;
playchannel1(context);
return;
@@ -3400,52 +3400,52 @@ gotconst:
}
void doorway(Context & context) {
- context.data.byte(192) = -24;
- context.data.byte(193) = 10;
- context.data.byte(194) = -30;
- context.data.byte(195) = 10;
+ context.data.byte(kDoorcheck1) = -24;
+ context.data.byte(kDoorcheck2) = 10;
+ context.data.byte(kDoorcheck3) = -30;
+ context.data.byte(kDoorcheck4) = 10;
dodoor(context);
return;
}
void widedoor(Context & context) {
- context.data.byte(192) = -24;
- context.data.byte(193) = 24;
- context.data.byte(194) = -30;
- context.data.byte(195) = 24;
+ context.data.byte(kDoorcheck1) = -24;
+ context.data.byte(kDoorcheck2) = 24;
+ context.data.byte(kDoorcheck3) = -30;
+ context.data.byte(kDoorcheck4) = 24;
dodoor(context);
return;
}
void dodoor(Context & context) {
- context.al = context.data.byte(150);
- context.ah = context.data.byte(151);
+ context.al = context.data.byte(kRyanx);
+ context.ah = context.data.byte(kRyany);
context.cl = context.es.byte(context.bx+10);
context.ch = context.es.byte(context.bx+11);
context._cmp(context.al, context.cl);
if (!context.flags.c()) goto rtofdoor;
context._sub(context.al, context.cl);
- context._cmp(context.al, context.data.byte(192));
+ context._cmp(context.al, context.data.byte(kDoorcheck1));
if (!context.flags.c()) goto upordown;
goto shutdoor;
rtofdoor:
context._sub(context.al, context.cl);
- context._cmp(context.al, context.data.byte(193));
+ context._cmp(context.al, context.data.byte(kDoorcheck2));
if (!context.flags.c()) goto shutdoor;
upordown:
context._cmp(context.ah, context.ch);
if (!context.flags.c()) goto botofdoor;
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.data.byte(194));
+ context._cmp(context.ah, context.data.byte(kDoorcheck3));
if (context.flags.c()) goto shutdoor;
goto opendoor;
botofdoor:
context._sub(context.ah, context.ch);
- context._cmp(context.ah, context.data.byte(195));
+ context._cmp(context.ah, context.data.byte(kDoorcheck4));
if (!context.flags.c()) goto shutdoor;
opendoor:
context.cl = context.es.byte(context.bx+19);
- context._cmp(context.data.byte(60), 1);
+ context._cmp(context.data.byte(kThroughdoor), 1);
if (!context.flags.z()) goto notthrough;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough;
@@ -3455,7 +3455,7 @@ notthrough:
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound2;
context.al = 0;
- context._cmp(context.data.byte(183), 5);
+ context._cmp(context.data.byte(kReallocation), 5);
if (!context.flags.z()) goto nothoteldoor2;
context.al = 13;
nothoteldoor2:
@@ -3475,14 +3475,14 @@ atlast1:
context.di = context.pop();
context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
- context.data.byte(60) = 1;
+ context.data.byte(kThroughdoor) = 1;
return;
shutdoor:
context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.data.byte(183), 5);
+ context._cmp(context.data.byte(kReallocation), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3502,14 +3502,14 @@ atlast2:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.data.byte(60) = 0;
+ context.data.byte(kThroughdoor) = 0;
notnearly:
return;
}
void lockeddoorway(Context & context) {
- context.al = context.data.byte(150);
- context.ah = context.data.byte(151);
+ context.al = context.data.byte(kRyanx);
+ context.ah = context.data.byte(kRyany);
context.cl = context.es.byte(context.bx+10);
context.ch = context.es.byte(context.bx+11);
context._cmp(context.al, context.cl);
@@ -3534,9 +3534,9 @@ botofdoor2:
context._cmp(context.ah, 12);
if (!context.flags.c()) goto shutdoor2;
opendoor2:
- context._cmp(context.data.byte(60), 1);
+ context._cmp(context.data.byte(kThroughdoor), 1);
if (context.flags.z()) goto mustbeopen;
- context._cmp(context.data.byte(36), 1);
+ context._cmp(context.data.byte(kLockstatus), 1);
if (context.flags.z()) goto shutdoor;
mustbeopen:
context.cl = context.es.byte(context.bx+19);
@@ -3547,7 +3547,7 @@ mustbeopen:
notdoorsound4:
context._cmp(context.cl, 6);
if (!context.flags.z()) goto noturnonyet;
- context.al = context.data.byte(37);
+ context.al = context.data.byte(kDoorpath);
context.push(context.es);
context.push(context.bx);
turnpathon(context);
@@ -3555,7 +3555,7 @@ notdoorsound4:
context.es = context.pop();
noturnonyet:
context.cl = context.es.byte(context.bx+19);
- context._cmp(context.data.byte(60), 1);
+ context._cmp(context.data.byte(kThroughdoor), 1);
if (!context.flags.z()) goto notthrough2;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notthrough2;
@@ -3578,7 +3578,7 @@ atlast3:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto justshutting;
- context.data.byte(60) = 1;
+ context.data.byte(kThroughdoor) = 1;
justshutting:
return;
shutdoor2:
@@ -3594,7 +3594,7 @@ notdoorsound3:
context.es.byte(context.bx+19) = context.cl;
atlast4:
context.ch = 0;
- context.data.byte(60) = 0;
+ context.data.byte(kThroughdoor) = 0;
context.push(context.di);
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
@@ -3603,13 +3603,13 @@ atlast4:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 0);
if (!context.flags.z()) goto notlocky;
- context.al = context.data.byte(37);
+ context.al = context.data.byte(kDoorpath);
context.push(context.es);
context.push(context.bx);
turnpathoff(context);
context.bx = context.pop();
context.es = context.pop();
- context.data.byte(36) = 1;
+ context.data.byte(kLockstatus) = 1;
notlocky:
return;
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
@@ -3618,7 +3618,7 @@ shutdoor:
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notdoorsound1;
context.al = 1;
- context._cmp(context.data.byte(183), 5);
+ context._cmp(context.data.byte(kReallocation), 5);
if (!context.flags.z()) goto nothoteldoor1;
context.al = 13;
nothoteldoor1:
@@ -3638,20 +3638,20 @@ atlast2:
context.ds.byte(context.di+17) = context.al;
context._cmp(context.cl, 5);
if (!context.flags.z()) goto notnearly;
- context.data.byte(60) = 0;
+ context.data.byte(kThroughdoor) = 0;
notnearly:
return;
return;
}
void updatepeople(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
- context.data.word(16) = context.di;
+ context.data.word(kListpos) = context.di;
context.cx = 12*5;
context.al = 255;
while(--context.cx) context._stosb();
- context._add(context.data.word(136), 1);
+ context._add(context.data.word(kMaintimer), 1);
context.es = context.cs;
context.bx = 534;
context.di = 991;
@@ -3659,12 +3659,12 @@ updateloop:
context.al = context.es.byte(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto endupdate;
- context._cmp(context.al, context.data.byte(183));
+ context._cmp(context.al, context.data.byte(kReallocation));
if (!context.flags.z()) goto notinthisroom;
context.cx = context.es.word(context.bx+1);
- context._cmp(context.cl, context.data.byte(147));
+ context._cmp(context.cl, context.data.byte(kMapx));
if (!context.flags.z()) goto notinthisroom;
- context._cmp(context.ch, context.data.byte(148));
+ context._cmp(context.ch, context.data.byte(kMapy));
if (!context.flags.z()) goto notinthisroom;
context.push(context.di);
context.ax = context.cs.word(context.di);
@@ -3680,12 +3680,12 @@ endupdate:
void getreelframeax(Context & context) {
context.push(context.ds);
- context.data.word(158) = context.ax;
+ context.data.word(kCurrentframe) = context.ax;
findsource(context);
context.es = context.ds;
context.ds = context.pop();
- context.ax = context.data.word(158);
- context._sub(context.ax, context.data.word(242));
+ context.ax = context.data.word(kCurrentframe);
+ context._sub(context.ax, context.data.word(kTakeoff));
context._add(context.ax, context.ax);
context.cx = context.ax;
context._add(context.ax, context.ax);
@@ -3714,7 +3714,7 @@ retryreel:
context._cmp(context.al, 255);
if (context.flags.z()) goto normalreel;
dealwithspecial(context);
- context._add(context.data.word(237), 1);
+ context._add(context.data.word(kReelpointer), 1);
context.si = context.pop();
context.es = context.pop();
context._add(context.si, 40);
@@ -3742,7 +3742,7 @@ notplot:
}
void soundonreels(Context & context) {
- context.bl = context.data.byte(183);
+ context.bl = context.data.byte(kReallocation);
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
context._add(context.bx, 1214);
@@ -3752,11 +3752,11 @@ reelsoundloop:
context._cmp(context.al, 255);
if (context.flags.z()) goto endreelsound;
context.ax = context.cs.word(context.si+1);
- context._cmp(context.ax, context.data.word(237));
+ context._cmp(context.ax, context.data.word(kReelpointer));
if (!context.flags.z()) goto skipreelsound;
- context._cmp(context.ax, context.data.word(349));
+ context._cmp(context.ax, context.data.word(kLastsoundreel));
if (context.flags.z()) goto skipreelsound;
- context.data.word(349) = context.ax;
+ context.data.word(kLastsoundreel) = context.ax;
context.al = context.cs.byte(context.si);
context._cmp(context.al, 64);
if (context.flags.c()) { playchannel1(context); return; };
@@ -3773,26 +3773,26 @@ skipreelsound:
context._add(context.si, 3);
goto reelsoundloop;
endreelsound:
- context.ax = context.data.word(349);
- context._cmp(context.ax, context.data.word(237));
+ context.ax = context.data.word(kLastsoundreel);
+ context._cmp(context.ax, context.data.word(kReelpointer));
if (context.flags.z()) goto nochange2;
- context.data.word(349) = -1;
+ context.data.word(kLastsoundreel) = -1;
nochange2:
return;
}
void reconstruct(Context & context) {
- context._cmp(context.data.byte(129), 0);
+ context._cmp(context.data.byte(kHavedoneobs), 0);
if (context.flags.z()) goto noneedtorecon;
- context.data.byte(61) = 1;
+ context.data.byte(kNewobs) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
- context._cmp(context.data.byte(183), 20);
+ context._cmp(context.data.byte(kReallocation), 20);
if (!context.flags.z()) goto notfudge;
undertextline(context);
notfudge:
- context.data.byte(129) = 0;
+ context.data.byte(kHavedoneobs) = 0;
noneedtorecon:
return;
}
@@ -3803,28 +3803,28 @@ void dealwithspecial(Context & context) {
if (!context.flags.z()) goto notplset;
context.al = context.ah;
placesetobject(context);
- context.data.byte(129) = 1;
+ context.data.byte(kHavedoneobs) = 1;
return;
notplset:
context._cmp(context.al, 1);
if (!context.flags.z()) goto notremset;
context.al = context.ah;
removesetobject(context);
- context.data.byte(129) = 1;
+ context.data.byte(kHavedoneobs) = 1;
return;
notremset:
context._cmp(context.al, 2);
if (!context.flags.z()) goto notplfree;
context.al = context.ah;
placefreeobject(context);
- context.data.byte(129) = 1;
+ context.data.byte(kHavedoneobs) = 1;
return;
notplfree:
context._cmp(context.al, 3);
if (!context.flags.z()) goto notremfree;
context.al = context.ah;
removefreeobject(context);
- context.data.byte(129) = 1;
+ context.data.byte(kHavedoneobs) = 1;
return;
notremfree:
context._cmp(context.al, 4);
@@ -3834,14 +3834,14 @@ notremfree:
notryanoff:
context._cmp(context.al, 5);
if (!context.flags.z()) goto notryanon;
- context.data.byte(134) = context.ah;
- context.data.byte(132) = context.ah;
+ context.data.byte(kTurntoface) = context.ah;
+ context.data.byte(kFacing) = context.ah;
switchryanon(context);
return;
notryanon:
context._cmp(context.al, 6);
if (!context.flags.z()) goto notchangeloc;
- context.data.byte(187) = context.ah;
+ context.data.byte(kNewlocation) = context.ah;
return;
notchangeloc:
movemap(context);
@@ -3851,38 +3851,38 @@ notchangeloc:
void movemap(Context & context) {
context._cmp(context.ah, 32);
if (!context.flags.z()) goto notmapup2;
- context._sub(context.data.byte(148), 20);
- context.data.byte(185) = 1;
+ context._sub(context.data.byte(kMapy), 20);
+ context.data.byte(kNowinnewroom) = 1;
return;
notmapup2:
context._cmp(context.ah, 16);
if (!context.flags.z()) goto notmapupspec;
- context._sub(context.data.byte(148), 10);
- context.data.byte(185) = 1;
+ context._sub(context.data.byte(kMapy), 10);
+ context.data.byte(kNowinnewroom) = 1;
return;
notmapupspec:
context._cmp(context.ah, 8);
if (!context.flags.z()) goto notmapdownspec;
- context._add(context.data.byte(148), 10);
- context.data.byte(185) = 1;
+ context._add(context.data.byte(kMapy), 10);
+ context.data.byte(kNowinnewroom) = 1;
return;
notmapdownspec:
context._cmp(context.ah, 2);
if (!context.flags.z()) goto notmaprightspec;
- context._add(context.data.byte(147), 11);
- context.data.byte(185) = 1;
+ context._add(context.data.byte(kMapx), 11);
+ context.data.byte(kNowinnewroom) = 1;
return;
notmaprightspec:
- context._sub(context.data.byte(147), 11);
- context.data.byte(185) = 1;
+ context._sub(context.data.byte(kMapx), 11);
+ context.data.byte(kNowinnewroom) = 1;
return;
}
void getreelstart(Context & context) {
- context.ax = context.data.word(237);
+ context.ax = context.data.word(kReelpointer);
context.cx = 40;
context._mul(context.cx);
- context.es = context.data.word(448);
+ context.es = context.data.word(kReels);
context.si = context.ax;
context._add(context.si, 0+(36*144));
return;
@@ -3892,37 +3892,37 @@ void showreelframe(Context & context) {
context.al = context.es.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(115));
+ context._add(context.di, context.data.word(kMapadx));
context.al = context.es.byte(context.si+3);
context.bx = context.ax;
- context._add(context.bx, context.data.word(117));
+ context._add(context.bx, context.data.word(kMapady));
context.ax = context.es.word(context.si);
- context.data.word(158) = context.ax;
+ context.data.word(kCurrentframe) = context.ax;
findsource(context);
- context.ax = context.data.word(158);
- context._sub(context.ax, context.data.word(242));
+ context.ax = context.data.word(kCurrentframe);
+ context._sub(context.ax, context.data.word(kTakeoff));
context.ah = 8;
showframe(context);
return;
}
void deleverything(Context & context) {
- context.al = context.data.byte(128);
+ context.al = context.data.byte(kMapysize);
context.ah = 0;
- context._add(context.ax, context.data.word(121));
+ context._add(context.ax, context.data.word(kMapoffsety));
context._cmp(context.ax, 182);
if (!context.flags.c()) goto bigroom;
maptopanel(context);
return;
bigroom:
- context._sub(context.data.byte(128), 8);
+ context._sub(context.data.byte(kMapysize), 8);
maptopanel(context);
- context._add(context.data.byte(128), 8);
+ context._add(context.data.byte(kMapysize), 8);
return;
}
void dumpeverything(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
dumpevery1:
context.ax = context.es.word(context.bx);
@@ -3941,8 +3941,8 @@ notskip1:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(115));
- context._add(context.bx, context.data.word(117));
+ context._add(context.di, context.data.word(kMapadx));
+ context._add(context.bx, context.data.word(kMapady));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3964,8 +3964,8 @@ dumpevery2:
context.bh = 0;
context.ah = 0;
context.di = context.ax;
- context._add(context.di, context.data.word(115));
- context._add(context.bx, context.data.word(117));
+ context._add(context.di, context.data.word(kMapadx));
+ context._add(context.bx, context.data.word(kMapady));
multidump(context);
context.ds = context.pop();
context.es = context.pop();
@@ -3979,7 +3979,7 @@ finishevery2:
void allocatework(Context & context) {
context.bx = 0x1000;
allocatemem(context);
- context.data.word(398) = context.ax;
+ context.data.word(kWorkspace) = context.ax;
return;
}
@@ -4007,20 +4007,20 @@ void loadpalfromiff(Context & context) {
context.dx = 2481;
openfile(context);
context.cx = 2000;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.dx = 0;
readfromfile(context);
closefile(context);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0x30;
context.cx = 768;
palloop:
context._lodsb();
context._shr(context.al, 1);
context._shr(context.al, 1);
- context._cmp(context.data.byte(72), 1);
+ context._cmp(context.data.byte(kBrightness), 1);
if (!context.flags.z()) goto nought;
context._cmp(context.al, 0);
if (context.flags.z()) goto nought;
@@ -4051,7 +4051,7 @@ void cls(Context & context) {
void printundermon(Context & context) {
context.si = (320*43)+76;
context.di = context.si;
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context._add(context.si, 8*320);
context.dx = 0x0a000;
context.ds = context.dx;
@@ -4087,7 +4087,7 @@ void worktoscreen(Context & context) {
context.si = 0;
context.di = 0;
context.cx = 25;
- context.ds = context.data.word(398);
+ context.ds = context.data.word(kWorkspace);
context.dx = 0x0a000;
context.es = context.dx;
dumpallloop:
@@ -4104,38 +4104,38 @@ dumpallloop:
}
void paneltomap(Context & context) {
- context.di = context.data.word(123);
- context._add(context.di, context.data.word(115));
- context.bx = context.data.word(125);
- context._add(context.bx, context.data.word(117));
- context.ds = context.data.word(400);
+ context.di = context.data.word(kMapxstart);
+ context._add(context.di, context.data.word(kMapadx));
+ context.bx = context.data.word(kMapystart);
+ context._add(context.bx, context.data.word(kMapady));
+ context.ds = context.data.word(kMapstore);
context.si = 0;
- context.cl = context.data.byte(127);
- context.ch = context.data.byte(128);
+ context.cl = context.data.byte(kMapxsize);
+ context.ch = context.data.byte(kMapysize);
multiget(context);
return;
}
void maptopanel(Context & context) {
- context.di = context.data.word(123);
- context._add(context.di, context.data.word(115));
- context.bx = context.data.word(125);
- context._add(context.bx, context.data.word(117));
- context.ds = context.data.word(400);
+ context.di = context.data.word(kMapxstart);
+ context._add(context.di, context.data.word(kMapadx));
+ context.bx = context.data.word(kMapystart);
+ context._add(context.bx, context.data.word(kMapady));
+ context.ds = context.data.word(kMapstore);
context.si = 0;
- context.cl = context.data.byte(127);
- context.ch = context.data.byte(128);
+ context.cl = context.data.byte(kMapxsize);
+ context.ch = context.data.byte(kMapysize);
multiput(context);
return;
}
void dumpmap(Context & context) {
- context.di = context.data.word(123);
- context._add(context.di, context.data.word(115));
- context.bx = context.data.word(125);
- context._add(context.bx, context.data.word(117));
- context.cl = context.data.byte(127);
- context.ch = context.data.byte(128);
+ context.di = context.data.word(kMapxstart);
+ context._add(context.di, context.data.word(kMapadx));
+ context.bx = context.data.word(kMapystart);
+ context._add(context.bx, context.data.word(kMapady));
+ context.cl = context.data.byte(kMapxsize);
+ context.ch = context.data.byte(kMapysize);
multidump(context);
return;
}
@@ -4151,7 +4151,7 @@ void pixelcheckset(Context & context) {
context.al = context.es.byte(context.bx+4);
getsetad(context);
context.al = context.es.byte(context.bx+17);
- context.es = context.data.word(442);
+ context.es = context.data.word(kSetframes);
context.bx = 0;
context.ah = 0;
context.cx = 6;
@@ -4183,25 +4183,25 @@ void pixelcheckset(Context & context) {
void createpanel(Context & context) {
context.di = 0;
context.bx = 8;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 8;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 0;
context.bx = 104;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.al = 0;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 104;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.al = 0;
context.ah = 2;
showframe(context);
@@ -4212,13 +4212,13 @@ void createpanel2(Context & context) {
createpanel(context);
context.di = 0;
context.bx = 0;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.al = 5;
context.ah = 2;
showframe(context);
context.di = 160;
context.bx = 0;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.al = 5;
context.ah = 2;
showframe(context);
@@ -4227,7 +4227,7 @@ void createpanel2(Context & context) {
void clearwork(Context & context) {
context.ax = 0x0;
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.di = 0;
context.cx = (200*320)/64;
clearloop:
@@ -4268,24 +4268,24 @@ clearloop:
}
void zoom(Context & context) {
- context._cmp(context.data.word(19), 0);
+ context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) goto inwatching;
- context._cmp(context.data.byte(7), 1);
+ context._cmp(context.data.byte(kZoomon), 1);
if (context.flags.z()) goto zoomswitch;
inwatching:
return;
zoomswitch:
- context._cmp(context.data.byte(99), 199);
+ context._cmp(context.data.byte(kCommandtype), 199);
if (context.flags.c()) goto zoomit;
cantzoom:
putunderzoom(context);
return;
zoomit:
- context.ax = context.data.word(220);
+ context.ax = context.data.word(kOldpointery);
context._sub(context.ax, 9);
context.cx = 320;
context._mul(context.cx);
- context._add(context.ax, context.data.word(218));
+ context._add(context.ax, context.data.word(kOldpointerx));
context._sub(context.ax, 11);
context.si = context.ax;
context.ax = 132+4;
@@ -4293,8 +4293,8 @@ zoomit:
context._mul(context.cx);
context._add(context.ax, 8+5);
context.di = context.ax;
- context.es = context.data.word(398);
- context.ds = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
+ context.ds = context.data.word(kWorkspace);
context.cx = 20;
zoomloop:
context.push(context.cx);
@@ -4310,7 +4310,7 @@ zoomloop2:
context.cx = context.pop();
if (--context.cx) goto zoomloop;
crosshair(context);
- context.data.byte(74) = 1;
+ context.data.byte(kDidzoom) = 1;
return;
}
@@ -4319,12 +4319,12 @@ void delthisone(Context & context) {
context.push(context.ax);
context.al = context.ah;
context.ah = 0;
- context._add(context.ax, context.data.word(117));
+ context._add(context.ax, context.data.word(kMapady));
context.bx = 320;
context._mul(context.bx);
context.bx = context.pop();
context.bh = 0;
- context._add(context.bx, context.data.word(115));
+ context._add(context.bx, context.data.word(kMapadx));
context._add(context.ax, context.bx);
context.di = context.ax;
context.ax = context.pop();
@@ -4337,8 +4337,8 @@ void delthisone(Context & context) {
context.bh = 0;
context._add(context.ax, context.bx);
context.si = context.ax;
- context.es = context.data.word(398);
- context.ds = context.data.word(400);
+ context.es = context.data.word(kWorkspace);
+ context.ds = context.data.word(kMapstore);
context.dl = context.cl;
context.dh = 0;
context.ax = 320;
@@ -4362,7 +4362,7 @@ void multiget(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.es = context.ds;
context.ds = context.es;
context._xchg(context.di, context.si);
@@ -4406,7 +4406,7 @@ void multiput(Context & context) {
context.bx = 320;
context._mul(context.bx);
context._add(context.di, context.ax);
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.al = context.cl;
context.ah = 0;
context.dx = 320;
@@ -4445,7 +4445,7 @@ multiloop6:
void multidump(Context & context) {
context.dx = 0x0a000;
context.es = context.dx;
- context.ds = context.data.word(398);
+ context.ds = context.data.word(kWorkspace);
context.ax = context.bx;
context.bx = 320;
context._mul(context.bx);
@@ -4727,17 +4727,17 @@ void width160(Context & context) {
}
void doblocks(Context & context) {
- context.es = context.data.word(398);
- context.ax = context.data.word(117);
+ context.es = context.data.word(kWorkspace);
+ context.ax = context.data.word(kMapady);
context.cx = 320;
context._mul(context.cx);
- context.di = context.data.word(115);
+ context.di = context.data.word(kMapadx);
context._add(context.di, context.ax);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(kMapy);
context.ah = 0;
context.bx = 66;
context._mul(context.bx);
- context.bl = context.data.byte(147);
+ context.bl = context.data.byte(kMapx);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -4750,9 +4750,9 @@ loop120:
loop124:
context.push(context.cx);
context.push(context.di);
- context.ds = context.data.word(416);
+ context.ds = context.data.word(kMapdata);
context._lodsb();
- context.ds = context.data.word(414);
+ context.ds = context.data.word(kBackdrop);
context.push(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto zeroblock;
@@ -4896,9 +4896,9 @@ notdiffdest:
if (context.flags.z()) goto notprintlist;
context.push(context.ax);
context.ax = context.di;
- context._sub(context.ax, context.data.word(115));
+ context._sub(context.ax, context.data.word(kMapadx));
context.push(context.bx);
- context._sub(context.bx, context.data.word(117));
+ context._sub(context.bx, context.data.word(kMapady));
context.ah = context.bl;
context.bx = context.pop();
context.ax = context.pop();
@@ -4906,7 +4906,7 @@ notprintlist:
context._test(context.ah, 4);
if (context.flags.z()) goto notflippedx;
context.dx = 320;
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutfx(context);
context.cx = context.pop();
@@ -4915,7 +4915,7 @@ notflippedx:
context._test(context.ah, 2);
if (context.flags.z()) goto notnomask;
context.dx = 320;
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutnm(context);
context.cx = context.pop();
@@ -4924,14 +4924,14 @@ notnomask:
context._test(context.ah, 32);
if (context.flags.z()) goto noeffects;
context.dx = 320;
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutbh(context);
context.cx = context.pop();
return;
noeffects:
context.dx = 320;
- context.es = context.data.word(398);
+ context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutv(context);
context.cx = context.pop();
@@ -5095,9 +5095,9 @@ backtosolidfx:
}
void transferinv(Context & context) {
- context.di = context.data.word(10);
+ context.di = context.data.word(kExframepos);
context.push(context.di);
- context.al = context.data.byte(9);
+ context.al = context.data.byte(kExpos);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5105,12 +5105,12 @@ void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(kItemtotran);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
@@ -5118,7 +5118,7 @@ void transferinv(Context & context) {
context._add(context.ax, 1);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.data.word(444);
+ context.ds = context.data.word(kFreeframes);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
@@ -5139,33 +5139,33 @@ void transferinv(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
- context._add(context.data.word(10), context.cx);
+ context._add(context.data.word(kExframepos), context.cx);
return;
}
void transfermap(Context & context) {
- context.di = context.data.word(10);
+ context.di = context.data.word(kExframepos);
context.push(context.di);
- context.al = context.data.byte(9);
+ context.al = context.data.byte(kExpos);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.bx = 0;
context._add(context.bx, context.ax);
context._add(context.di, 0+2080);
context.push(context.bx);
- context.al = context.data.byte(89);
+ context.al = context.data.byte(kItemtotran);
context.ah = 0;
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
context.cx = 6;
context._mul(context.cx);
- context.ds = context.data.word(444);
+ context.ds = context.data.word(kFreeframes);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+2080;
@@ -5186,26 +5186,26 @@ void transfermap(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
- context._add(context.data.word(10), context.cx);
+ context._add(context.data.word(kExframepos), context.cx);
return;
}
void dofade(Context & context) {
- context._cmp(context.data.byte(343), 0);
+ context._cmp(context.data.byte(kFadedirection), 0);
if (context.flags.z()) goto finishfade;
- context.cl = context.data.byte(344);
+ context.cl = context.data.byte(kNumtofade);
context.ch = 0;
- context.al = context.data.byte(342);
+ context.al = context.data.byte(kColourpos);
context.ah = 0;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
showgroup(context);
- context.al = context.data.byte(344);
- context._add(context.al, context.data.byte(342));
- context.data.byte(342) = context.al;
+ context.al = context.data.byte(kNumtofade);
+ context._add(context.al, context.data.byte(kColourpos));
+ context.data.byte(kColourpos) = context.al;
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishfade;
fadecalculation(context);
@@ -5214,7 +5214,7 @@ finishfade:
}
void clearendpal(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 0;
@@ -5223,7 +5223,7 @@ void clearendpal(Context & context) {
}
void clearpalette(Context & context) {
- context.data.byte(343) = 0;
+ context.data.byte(kFadedirection) = 0;
clearstartpal(context);
dumpcurrent(context);
return;
@@ -5232,15 +5232,15 @@ void clearpalette(Context & context) {
void fadescreenup(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
return;
}
void fadetowhite(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
context.al = 63;
@@ -5251,15 +5251,15 @@ void fadetowhite(Context & context) {
context._stosb();
context._stosb();
paltostartpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
return;
}
void fadefromwhite(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768;
context.al = 63;
@@ -5270,20 +5270,20 @@ void fadefromwhite(Context & context) {
context._stosb();
context._stosb();
paltoendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
return;
}
void fadescreenups(Context & context) {
clearstartpal(context);
paltoendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 64;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 64;
return;
}
@@ -5291,7 +5291,7 @@ void fadescreendownhalf(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.cx = 768;
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
halfend:
context.al = context.es.byte(context.bx);
@@ -5299,8 +5299,8 @@ halfend:
context.es.byte(context.bx) = context.al;
context._add(context.bx, 1);
if (--context.cx) goto halfend;
- context.ds = context.data.word(410);
- context.es = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
+ context.es = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
context.cx = 3*5;
@@ -5309,45 +5309,45 @@ halfend:
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
context.cx = 3*2;
while(--context.cx) context._movsb();
- context.data.byte(343) = 1;
- context.data.byte(345) = 31;
- context.data.byte(342) = 0;
- context.data.byte(344) = 32;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 31;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 32;
return;
}
void fadescreenuphalf(Context & context) {
endpaltostart(context);
paltoendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 31;
- context.data.byte(342) = 0;
- context.data.byte(344) = 32;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 31;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 32;
return;
}
void fadescreendown(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
return;
}
void fadescreendowns(Context & context) {
paltostartpal(context);
clearendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 64;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 64;
return;
}
void clearstartpal(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 256;
wholeloop1:
@@ -5360,39 +5360,39 @@ wholeloop1:
}
void showgun(Context & context) {
- context.data.byte(347) = 0;
- context.data.byte(346) = 0;
- context.data.byte(348) = 0;
+ context.data.byte(kAddtored) = 0;
+ context.data.byte(kAddtogreen) = 0;
+ context.data.byte(kAddtoblue) = 0;
paltostartpal(context);
paltoendpal(context);
greyscalesum(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
context.cx = 130;
hangon(context);
endpaltostart(context);
clearendpal(context);
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
context.cx = 200;
hangon(context);
- context.data.byte(530) = 34;
+ context.data.byte(kRoomssample) = 34;
loadroomssample(context);
- context.data.byte(385) = 0;
+ context.data.byte(kVolume) = 0;
context.dx = 2351;
loadintotemp(context);
createpanel2(context);
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 0;
context.ah = 0;
context.di = 100;
context.bx = 4;
showframe(context);
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 1;
context.ah = 0;
context.di = 158;
@@ -5423,10 +5423,10 @@ void rollem(Context & context) {
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
multiget(context);
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
context.si = 49*2;
context.ax = context.es.word(context.si);
context.si = context.ax;
@@ -5435,7 +5435,7 @@ void rollem(Context & context) {
endcredits21:
context.push(context.cx);
context.bx = 10;
- context.cx = context.data.word(75);
+ context.cx = context.data.word(kLinespacing);
endcredits22:
context.push(context.cx);
context.push(context.si);
@@ -5447,7 +5447,7 @@ endcredits22:
context.ch = 160;
context.di = 25;
context.bx = 20;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
multiput(context);
vsync(context);
@@ -5466,7 +5466,7 @@ onelot2:
context.dx = 161;
context.ax = 0;
printdirect(context);
- context._add(context.bx, context.data.word(75));
+ context._add(context.bx, context.data.word(kLinespacing));
context.cx = context.pop();
if (--context.cx) goto onelot2;
vsync(context);
@@ -5480,7 +5480,7 @@ onelot2:
context.di = context.pop();
context.si = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto endearly2;
context._sub(context.bx, 1);
if (--context.cx) goto endcredits22;
@@ -5494,7 +5494,7 @@ looknext2:
if (context.flags.z()) goto gotnext2;
goto looknext2;
gotnext2:
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto endearly;
if (--context.cx) goto endcredits21;
context.cx = 120;
@@ -5507,10 +5507,10 @@ endearly:
}
void fadecalculation(Context & context) {
- context._cmp(context.data.byte(345), 0);
+ context._cmp(context.data.byte(kFadecount), 0);
if (context.flags.z()) goto nomorefading;
- context.bl = context.data.byte(345);
- context.es = context.data.word(410);
+ context.bl = context.data.byte(kFadecount);
+ context.es = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 768;
@@ -5532,15 +5532,15 @@ gotthere:
context._add(context.si, 1);
context._add(context.di, 1);
if (--context.cx) goto fadecolloop;
- context._sub(context.data.byte(345), 1);
+ context._sub(context.data.byte(kFadecount), 1);
return;
nomorefading:
- context.data.byte(343) = 0;
+ context.data.byte(kFadedirection) = 0;
return;
}
void greyscalesum(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.cx = 256;
@@ -5569,19 +5569,19 @@ greysumloop2:
if (!context.flags.c()) goto greysumloop2;
context.bl = context.al;
context.al = context.bl;
- context.ah = context.data.byte(347);
+ context.ah = context.data.byte(kAddtored);
context._cmp(context.al, 0);
context._add(context.al, context.ah);
noaddr:
context._stosb();
- context.ah = context.data.byte(346);
+ context.ah = context.data.byte(kAddtogreen);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddg;
context._add(context.al, context.ah);
noaddg:
context._stosb();
- context.ah = context.data.byte(348);
+ context.ah = context.data.byte(kAddtoblue);
context.al = context.bl;
context._cmp(context.al, 0);
if (context.flags.z()) goto noaddb;
@@ -5595,8 +5595,8 @@ noaddb:
}
void paltostartpal(Context & context) {
- context.es = context.data.word(410);
- context.ds = context.data.word(410);
+ context.es = context.data.word(kBuffers);
+ context.ds = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5605,8 +5605,8 @@ void paltostartpal(Context & context) {
}
void endpaltostart(Context & context) {
- context.es = context.data.word(410);
- context.ds = context.data.word(410);
+ context.es = context.data.word(kBuffers);
+ context.ds = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5615,8 +5615,8 @@ void endpaltostart(Context & context) {
}
void startpaltoend(Context & context) {
- context.es = context.data.word(410);
- context.ds = context.data.word(410);
+ context.es = context.data.word(kBuffers);
+ context.ds = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.cx = 768/2;
@@ -5625,8 +5625,8 @@ void startpaltoend(Context & context) {
}
void paltoendpal(Context & context) {
- context.es = context.data.word(410);
- context.ds = context.data.word(410);
+ context.es = context.data.word(kBuffers);
+ context.ds = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5635,8 +5635,8 @@ void paltoendpal(Context & context) {
}
void allpalette(Context & context) {
- context.es = context.data.word(410);
- context.ds = context.data.word(410);
+ context.es = context.data.word(kBuffers);
+ context.ds = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
context.cx = 768/2;
@@ -5647,7 +5647,7 @@ void allpalette(Context & context) {
void dumpcurrent(Context & context) {
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
vsync(context);
context.al = 0;
context.cx = 128;
@@ -5662,7 +5662,7 @@ void dumpcurrent(Context & context) {
void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5670,10 +5670,10 @@ void fadedownmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
context.cx = 64;
hangon(context);
return;
@@ -5682,7 +5682,7 @@ void fadedownmon(Context & context) {
void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5690,10 +5690,10 @@ void fadeupmon(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5702,7 +5702,7 @@ void fadeupmon(Context & context) {
void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5710,10 +5710,10 @@ void fadeupmonfirst(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
context.cx = 64;
hangon(context);
context.al = 26;
@@ -5725,7 +5725,7 @@ void fadeupmonfirst(Context & context) {
void fadeupyellows(Context & context) {
paltoendpal(context);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
context.cx = 3*8;
context.ax = 0;
@@ -5733,10 +5733,10 @@ void fadeupyellows(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
context._stosb();
context._stosw();
- context.data.byte(343) = 1;
- context.data.byte(345) = 63;
- context.data.byte(342) = 0;
- context.data.byte(344) = 128;
+ context.data.byte(kFadedirection) = 1;
+ context.data.byte(kFadecount) = 63;
+ context.data.byte(kColourpos) = 0;
+ context.data.byte(kNumtofade) = 128;
context.cx = 128;
hangon(context);
return;
@@ -5744,7 +5744,7 @@ void fadeupyellows(Context & context) {
void initialmoncols(Context & context) {
paltostartpal(context);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.cx = 3*9;
context.ax = 0;
@@ -5752,7 +5752,7 @@ void initialmoncols(Context & context) {
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
context._stosb();
context._stosw();
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
context.al = 230;
context.cx = 18;
@@ -5773,24 +5773,24 @@ void endgame(Context & context) {
monkspeaking(context);
gettingshot(context);
getridoftemptext(context);
- context.data.byte(386) = 7;
- context.data.byte(387) = 1;
+ context.data.byte(kVolumeto) = 7;
+ context.data.byte(kVolumedirection) = 1;
context.cx = 200;
hangon(context);
return;
}
void monkspeaking(Context & context) {
- context.data.byte(530) = 35;
+ context.data.byte(kRoomssample) = 35;
loadroomssample(context);
context.dx = 2364;
loadintotemp(context);
clearwork(context);
showmonk(context);
worktoscreen(context);
- context.data.byte(385) = 7;
- context.data.byte(387) = -1;
- context.data.byte(386) = 0;
+ context.data.byte(kVolume) = 7;
+ context.data.byte(kVolumedirection) = -1;
+ context.data.byte(kVolumeto) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
@@ -5803,7 +5803,7 @@ nextmonkspeak:
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
context.ax = context.es.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
@@ -5829,8 +5829,8 @@ nextbit:
context._add(context.al, 1);
context._cmp(context.al, 44);
if (!context.flags.z()) goto nextmonkspeak;
- context.data.byte(387) = 1;
- context.data.byte(386) = 7;
+ context.data.byte(kVolumedirection) = 1;
+ context.data.byte(kVolumeto) = 7;
fadescreendowns(context);
context.cx = 300;
hangon(context);
@@ -5843,18 +5843,18 @@ void showmonk(Context & context) {
context.ah = 128;
context.di = 160;
context.bx = 72;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
showframe(context);
return;
}
void gettingshot(Context & context) {
- context.data.byte(187) = 55;
+ context.data.byte(kNewlocation) = 55;
clearpalette(context);
loadintroroom(context);
fadescreenups(context);
- context.data.byte(386) = 0;
- context.data.byte(387) = -1;
+ context.data.byte(kVolumeto) = 0;
+ context.data.byte(kVolumedirection) = -1;
runendseq(context);
clearbeforeload(context);
return;
@@ -5887,7 +5887,7 @@ hangonloope:
context.push(context.cx);
vsync(context);
context.cx = context.pop();
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto hangonearly;
if (--context.cx) goto hangonloope;
return;
@@ -5902,28 +5902,28 @@ void intro(Context & context) {
loadtemptext(context);
loadpalfromiff(context);
setmode(context);
- context.data.byte(187) = 50;
+ context.data.byte(kNewlocation) = 50;
clearpalette(context);
loadintroroom(context);
- context.data.byte(385) = 7;
- context.data.byte(387) = -1;
- context.data.byte(386) = 0;
+ context.data.byte(kVolume) = 7;
+ context.data.byte(kVolumedirection) = -1;
+ context.data.byte(kVolumeto) = 0;
context.al = 12;
context.ah = 255;
playchannel0(context);
fadescreenups(context);
runintroseq(context);
clearbeforeload(context);
- context.data.byte(187) = 52;
+ context.data.byte(kNewlocation) = 52;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
- context.data.byte(187) = 53;
+ context.data.byte(kNewlocation) = 53;
loadintroroom(context);
runintroseq(context);
clearbeforeload(context);
allpalette(context);
- context.data.byte(187) = 54;
+ context.data.byte(kNewlocation) = 54;
loadintroroom(context);
runintroseq(context);
getridoftemptext(context);
@@ -5932,14 +5932,14 @@ void intro(Context & context) {
}
void runintroseq(Context & context) {
- context.data.byte(102) = 0;
+ context.data.byte(kGetback) = 0;
moreintroseq:
vsync(context);
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto earlyendrun;
spriteupdate(context);
vsync(context);
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto earlyendrun;
deleverything(context);
printsprites(context);
@@ -5947,14 +5947,14 @@ moreintroseq:
afterintroroom(context);
usetimedtext(context);
vsync(context);
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto earlyendrun;
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.data.byte(391), 1);
+ context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto earlyendrun;
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(kGetback), 1);
if (!context.flags.z()) goto moreintroseq;
return;
earlyendrun:
@@ -5967,7 +5967,7 @@ earlyendrun:
void runendseq(Context & context) {
atmospheres(context);
- context.data.byte(102) = 0;
+ context.data.byte(kGetback) = 0;
moreendseq:
vsync(context);
spriteupdate(context);
@@ -5981,23 +5981,23 @@ moreendseq:
dumpmap(context);
dumptimedtext(context);
vsync(context);
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(kGetback), 1);
if (!context.flags.z()) goto moreendseq;
return;
}
void loadintroroom(Context & context) {
- context.data.byte(138) = 0;
- context.data.byte(8) = 255;
+ context.data.byte(kIntrocount) = 0;
+ context.data.byte(kLocation) = 255;
loadroom(context);
- context.data.word(119) = 72;
- context.data.word(121) = 16;
+ context.data.word(kMapoffsetx) = 72;
+ context.data.word(kMapoffsety) = 16;
clearsprites(context);
- context.data.byte(60) = 0;
- context.data.byte(141) = '0';
- context.data.byte(104) = 0;
+ context.data.byte(kThroughdoor) = 0;
+ context.data.byte(kCurrentkey) = '0';
+ context.data.byte(kMainmode) = 0;
clearwork(context);
- context.data.byte(61) = 1;
+ context.data.byte(kNewobs) = 1;
drawfloor(context);
reelsonscreen(context);
spriteupdate(context);
@@ -6007,9 +6007,9 @@ void loadintroroom(Context & context) {
}
void realcredits(Context & context) {
- context.data.byte(530) = 33;
+ context.data.byte(kRoomssample) = 33;
loadroomssample(context);
- context.data.byte(385) = 0;
+ context.data.byte(kVolume) = 0;
mode640x480(context);
context.cx = 35;
hangon(context);
@@ -6104,13 +6104,13 @@ void printchar(Context & context) {
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.data.word(69));
+ context._add(context.ax, context.data.word(kCharshift));
showframe(context);
context.ax = context.pop();
context.di = context.pop();
context.bx = context.pop();
context.si = context.pop();
- context._cmp(context.data.byte(71), 0);
+ context._cmp(context.data.byte(kKerning), 0);
if (!context.flags.z()) goto nokern;
kernchars(context);
nokern:
@@ -6146,9 +6146,9 @@ kernit:
}
void printslow(Context & context) {
- context.data.byte(230) = 1;
- context.data.byte(233) = 3;
- context.ds = context.data.word(402);
+ context.data.byte(kPointerframe) = 1;
+ context.data.byte(kPointermode) = 3;
+ context.ds = context.data.word(kCharset1);
printloopslow6:
context.push(context.bx);
context.push(context.di);
@@ -6187,9 +6187,9 @@ printloopslow5:
context.push(context.es);
context.push(context.si);
modifychar(context);
- context.data.word(69) = 91;
+ context.data.word(kCharshift) = 91;
printboth(context);
- context.data.word(69) = 0;
+ context.data.word(kCharshift) = 0;
context.si = context.pop();
context.es = context.pop();
context.cx = context.pop();
@@ -6199,14 +6199,14 @@ printloopslow5:
waitframes(context);
context._cmp(context.ax, 0);
if (context.flags.z()) goto keepgoing;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (!context.flags.z()) goto finishslow2;
keepgoing:
waitframes(context);
noslow:
context._cmp(context.ax, 0);
if (context.flags.z()) goto afterslow;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (!context.flags.z()) goto finishslow2;
afterslow:
context.es = context.pop();
@@ -6250,7 +6250,7 @@ void waitframes(Context & context) {
vsync(context);
dumppointer(context);
delpointer(context);
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context.ds = context.pop();
context.si = context.pop();
context.es = context.pop();
@@ -6277,8 +6277,8 @@ void printboth(Context & context) {
}
void printdirect(Context & context) {
- context.data.word(82) = context.di;
- context.ds = context.data.word(266);
+ context.data.word(kLastxpos) = context.di;
+ context.ds = context.data.word(kCurrentset);
printloop6:
context.push(context.bx);
context.push(context.di);
@@ -6296,14 +6296,14 @@ printloop5:
context.push(context.es);
modifychar(context);
printchar(context);
- context.data.word(82) = context.di;
+ context.data.word(kLastxpos) = context.di;
context.es = context.pop();
context.cx = context.pop();
if (--context.cx) goto printloop5;
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
- context._add(context.bx, context.data.word(75));
+ context._add(context.bx, context.data.word(kLinespacing));
goto printloop6;
finishdirct:
context.dx = context.pop();
@@ -6313,12 +6313,12 @@ finishdirct:
}
void monprint(Context & context) {
- context.data.byte(71) = 1;
+ context.data.byte(kKerning) = 1;
context.si = context.bx;
context.dl = 166;
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
- context.ds = context.data.word(404);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
+ context.ds = context.data.word(kTempcharset);
printloop8:
context.push(context.bx);
context.push(context.di);
@@ -6347,9 +6347,9 @@ nottrigger:
context.push(context.es);
modifychar(context);
printchar(context);
- context.data.word(310) = context.di;
- context.data.word(312) = context.bx;
- context.data.word(136) = 1;
+ context.data.word(kCurslocx) = context.di;
+ context.data.word(kCurslocy) = context.bx;
+ context.data.word(kMaintimer) = 1;
printcurs(context);
vsync(context);
context.push(context.si);
@@ -6374,7 +6374,7 @@ finishmon2:
context.di = context.pop();
context.bx = context.pop();
scrollmonitor(context);
- context.data.word(310) = context.di;
+ context.data.word(kCurslocx) = context.di;
goto printloop8;
finishmon:
context.dx = context.pop();
@@ -6382,12 +6382,12 @@ finishmon:
context.bx = context.pop();
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger2;
- context.data.byte(54) = context.ah;
+ context.data.byte(kLasttrigger) = context.ah;
nottrigger2:
- context.data.word(310) = context.di;
+ context.data.word(kCurslocx) = context.di;
scrollmonitor(context);
context.bx = context.si;
- context.data.byte(71) = 0;
+ context.data.byte(kKerning) = 0;
return;
}
@@ -6512,7 +6512,7 @@ getloop:
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
- context._add(context.ax, context.data.word(69));
+ context._add(context.ax, context.data.word(kCharshift));
context._add(context.ax, context.ax);
context.si = context.ax;
context._add(context.ax, context.ax);
@@ -6590,11 +6590,11 @@ nomod:
}
void fillryan(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32;
findallryan(context);
context.si = 0+(228*13)+32;
- context.al = context.data.byte(18);
+ context.al = context.data.byte(kRyanpage);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
@@ -6641,7 +6641,7 @@ void fillopen(Context & context) {
lessthanapage:
context.al = 1;
context.push(context.ax);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13);
findallopen(context);
context.si = 0+(228*13);
@@ -6680,7 +6680,7 @@ void findallryan(Context & context) {
while(--context.cx) context._stosw();
context.di = context.pop();
context.cl = 4;
- context.ds = context.data.word(396);
+ context.ds = context.data.word(kExtras);
context.bx = 0+2080+30000;
context.ch = 0;
findryanloop:
@@ -6711,9 +6711,9 @@ void findallopen(Context & context) {
context.ax = 0x0ffff;
while(--context.cx) context._stosw();
context.di = context.pop();
- context.cl = context.data.byte(109);
- context.dl = context.data.byte(110);
- context.ds = context.data.word(396);
+ context.cl = context.data.byte(kOpenedob);
+ context.dl = context.data.byte(kOpenedtype);
+ context.ds = context.data.word(kExtras);
context.bx = 0+2080+30000;
context.ch = 0;
findopen1:
@@ -6721,10 +6721,10 @@ findopen1:
if (!context.flags.z()) goto findopen2;
context._cmp(context.ds.byte(context.bx+2), context.dl);
if (!context.flags.z()) goto findopen2;
- context._cmp(context.data.byte(110), 4);
+ context._cmp(context.data.byte(kOpenedtype), 4);
if (context.flags.z()) goto noloccheck;
context.al = context.ds.byte(context.bx+5);
- context._cmp(context.al, context.data.byte(183));
+ context._cmp(context.al, context.data.byte(kReallocation));
if (!context.flags.z()) goto findopen2;
noloccheck:
context.al = context.ds.byte(context.bx+4);
@@ -6741,10 +6741,10 @@ findopen2:
context._add(context.ch, 1);
context._cmp(context.ch, 114);
if (!context.flags.z()) goto findopen1;
- context.cl = context.data.byte(109);
- context.dl = context.data.byte(110);
+ context.cl = context.data.byte(kOpenedob);
+ context.dl = context.data.byte(kOpenedtype);
context.push(context.dx);
- context.ds = context.data.word(424);
+ context.ds = context.data.word(kFreedat);
context.dx = context.pop();
context.bx = 0;
context.ch = 0;
@@ -6778,7 +6778,7 @@ void obtoinv(Context & context) {
context.push(context.ax);
context.push(context.di);
context.push(context.bx);
- context.ds = context.data.word(406);
+ context.ds = context.data.word(kIcons1);
context._sub(context.di, 2);
context._sub(context.bx, 1);
context.al = 10;
@@ -6792,10 +6792,10 @@ void obtoinv(Context & context) {
context.push(context.bx);
context.push(context.di);
context.push(context.ax);
- context.ds = context.data.word(396);
+ context.ds = context.data.word(kExtras);
context._cmp(context.ah, 4);
if (context.flags.z()) goto isanextra;
- context.ds = context.data.word(444);
+ context.ds = context.data.word(kFreeframes);
isanextra:
context.cl = context.al;
context._add(context.al, context.al);
@@ -6813,7 +6813,7 @@ isanextra:
isitworn(context);
context.bx = context.pop();
if (!context.flags.z()) goto finishfill;
- context.ds = context.data.word(406);
+ context.ds = context.data.word(kIcons1);
context._sub(context.di, 3);
context._sub(context.bx, 2);
context.al = 7;
@@ -6844,18 +6844,18 @@ void makeworn(Context & context) {
}
void examineob(Context & context) {
- context.data.byte(233) = 0;
- context.data.word(326) = 0;
+ context.data.byte(kPointermode) = 0;
+ context.data.word(kTimecount) = 0;
examineagain:
- context.data.byte(236) = 0;
- context.data.byte(107) = 0;
- context.data.byte(109) = 255;
- context.data.byte(110) = 255;
- context.data.byte(103) = 0;
- context.al = context.data.byte(99);
- context.data.byte(101) = context.al;
- context.data.byte(88) = 0;
- context.data.byte(230) = 0;
+ context.data.byte(kInmaparea) = 0;
+ context.data.byte(kExamagain) = 0;
+ context.data.byte(kOpenedob) = 255;
+ context.data.byte(kOpenedtype) = 255;
+ context.data.byte(kInvopen) = 0;
+ context.al = context.data.byte(kCommandtype);
+ context.data.byte(kObjecttype) = context.al;
+ context.data.byte(kItemframe) = 0;
+ context.data.byte(kPointerframe) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -6864,7 +6864,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -6876,41 +6876,41 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.data.byte(102) = 0;
+ context.data.byte(kGetback) = 0;
context.bx = 2494;
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.data.byte(kInvopen), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.data.byte(kInvopen), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.data.byte(107), 0);
+ context._cmp(context.data.byte(kExamagain), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.data.byte(102), 0);
+ context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto waitexam;
- context.data.byte(105) = 0;
- context._cmp(context.data.word(19), 0);
+ context.data.byte(kPickup) = 0;
+ context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(187), 255);
+ context._cmp(context.data.byte(kNewlocation), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.data.byte(103) = 0;
- context.data.byte(109) = 255;
+ context.data.byte(kInvopen) = 0;
+ context.data.byte(kOpenedob) = 255;
return;
justgetback:
- context.data.byte(103) = 0;
- context.data.byte(109) = 255;
+ context.data.byte(kInvopen) = 0;
+ context.data.byte(kOpenedob) = 255;
return;
}
void makemainscreen(Context & context) {
createpanel(context);
- context.data.byte(61) = 1;
+ context.data.byte(kNewobs) = 1;
drawfloor(context);
spriteupdate(context);
printsprites(context);
@@ -6918,16 +6918,16 @@ void makemainscreen(Context & context) {
showicon(context);
getunderzoom(context);
undertextline(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
animpointer(context);
worktoscreenm(context);
- context.data.byte(99) = 200;
- context.data.byte(130) = 0;
+ context.data.byte(kCommandtype) = 200;
+ context.data.byte(kManisoffscreen) = 0;
return;
}
void getbackfromob(Context & context) {
- context._cmp(context.data.byte(105), 1);
+ context._cmp(context.data.byte(kPickup), 1);
if (!context.flags.z()) goto notheldob;
blank(context);
return;
@@ -6937,25 +6937,25 @@ notheldob:
}
void incryanpage(Context & context) {
- context._cmp(context.data.byte(99), 222);
+ context._cmp(context.data.byte(kCommandtype), 222);
if (context.flags.z()) goto alreadyincryan;
- context.data.byte(99) = 222;
+ context.data.byte(kCommandtype) = 222;
context.al = 31;
commandonly(context);
alreadyincryan:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto noincryan;
context._and(context.ax, 1);
if (!context.flags.z()) goto doincryan;
noincryan:
return;
doincryan:
- context.ax = context.data.word(196);
+ context.ax = context.data.word(kMousex);
context._sub(context.ax, 80+167);
- context.data.byte(18) = -1;
+ context.data.byte(kRyanpage) = -1;
findnewpage:
- context._add(context.data.byte(18), 1);
+ context._add(context.data.byte(kRyanpage), 1);
context._sub(context.ax, 18);
if (!context.flags.c()) goto findnewpage;
delpointer(context);
@@ -6968,32 +6968,32 @@ findnewpage:
}
void openinv(Context & context) {
- context.data.byte(103) = 1;
+ context.data.byte(kInvopen) = 1;
context.al = 61;
context.di = 80;
context.bx = 58-10;
context.dl = 240;
printmessage(context);
fillryan(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
return;
}
void showryanpage(Context & context) {
- context.ds = context.data.word(406);
+ context.ds = context.data.word(kIcons1);
context.di = 80+167;
context.bx = 58-12;
context.al = 12;
context.ah = 0;
showframe(context);
context.al = 13;
- context._add(context.al, context.data.byte(18));
+ context._add(context.al, context.data.byte(kRyanpage));
context.push(context.ax);
- context.al = context.data.byte(18);
+ context.al = context.data.byte(kRyanpage);
context.ah = 0;
context.cx = 18;
context._mul(context.cx);
- context.ds = context.data.word(406);
+ context.ds = context.data.word(kIcons1);
context.di = 80+167;
context._add(context.di, context.ax);
context.bx = 58-12;
@@ -7004,8 +7004,8 @@ void showryanpage(Context & context) {
}
void openob(Context & context) {
- context.al = context.data.byte(109);
- context.ah = context.data.byte(110);
+ context.al = context.data.byte(kOpenedob);
+ context.ah = context.data.byte(kOpenedtype);
context.di = 5674;
copyname(context);
context.di = 80;
@@ -7013,7 +7013,7 @@ void openob(Context & context) {
context.al = 62;
context.dl = 240;
printmessage(context);
- context.di = context.data.word(82);
+ context.di = context.data.word(kLastxpos);
context._add(context.di, 5);
context.bx = 58+86;
context.es = context.cs;
@@ -7035,18 +7035,18 @@ void openob(Context & context) {
}
void obicons(Context & context) {
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
getanyad(context);
context._cmp(context.al, 255);
if (context.flags.z()) goto cantopenit;
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.di = 210;
context.bx = 1;
context.al = 4;
context.ah = 0;
showframe(context);
cantopenit:
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.di = 260;
context.bx = 1;
context.al = 1;
@@ -7056,7 +7056,7 @@ cantopenit:
}
void examicon(Context & context) {
- context.ds = context.data.word(408);
+ context.ds = context.data.word(kIcons2);
context.di = 254;
context.bx = 5;
context.al = 3;
@@ -7066,13 +7066,13 @@ void examicon(Context & context) {
}
void obpicture(Context & context) {
- context.al = context.data.byte(98);
- context.ah = context.data.byte(101);
+ context.al = context.data.byte(kCommand);
+ context.ah = context.data.byte(kObjecttype);
context._cmp(context.ah, 1);
if (context.flags.z()) goto setframe;
context._cmp(context.ah, 4);
if (context.flags.z()) goto exframe;
- context.ds = context.data.word(444);
+ context.ds = context.data.word(kFreeframes);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7085,7 +7085,7 @@ void obpicture(Context & context) {
setframe:
return;
exframe:
- context.ds = context.data.word(396);
+ context.ds = context.data.word(kExtras);
context.di = 160;
context.bx = 68;
context.cl = context.al;
@@ -7101,18 +7101,18 @@ void describeob(Context & context) {
getobtextstart(context);
context.di = 33;
context.bx = 92;
- context._cmp(context.data.byte(101), 1);
+ context._cmp(context.data.byte(kObjecttype), 1);
if (!context.flags.z()) goto notsetd;
context.bx = 82;
notsetd:
context.dl = 241;
context.ah = 16;
- context.data.word(69) = 91+91;
+ context.data.word(kCharshift) = 91+91;
printdirect(context);
- context.data.word(69) = 0;
+ context.data.word(kCharshift) = 0;
context.di = 36;
context.bx = 104;
- context._cmp(context.data.byte(101), 1);
+ context._cmp(context.data.byte(kObjecttype), 1);
if (!context.flags.z()) goto notsetd2;
context.bx = 94;
notsetd2:
@@ -7129,16 +7129,16 @@ notsetd2:
void additionaltext(Context & context) {
context._add(context.bx, 10);
context.push(context.bx);
- context.al = context.data.byte(98);
- context.ah = context.data.byte(101);
+ context.al = context.data.byte(kCommand);
+ context.ah = context.data.byte(kObjecttype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto emptycup;
- context.al = context.data.byte(98);
- context.ah = context.data.byte(101);
+ context.al = context.data.byte(kCommand);
+ context.ah = context.data.byte(kObjecttype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -7168,8 +7168,8 @@ fullcup:
}
void obsthatdothings(Context & context) {
- context.al = context.data.byte(98);
- context.ah = context.data.byte(101);
+ context.al = context.data.byte(kCommand);
+ context.ah = context.data.byte(kObjecttype);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -7190,21 +7190,21 @@ notlouiscard:
}
void getobtextstart(Context & context) {
- context.es = context.data.word(436);
+ context.es = context.data.word(kFreedesc);
context.si = 0;
context.cx = 0+(82*2);
- context._cmp(context.data.byte(101), 2);
+ context._cmp(context.data.byte(kObjecttype), 2);
if (context.flags.z()) goto describe;
- context.es = context.data.word(438);
+ context.es = context.data.word(kSetdesc);
context.si = 0;
context.cx = 0+(130*2);
- context._cmp(context.data.byte(101), 1);
+ context._cmp(context.data.byte(kObjecttype), 1);
if (context.flags.z()) goto describe;
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.si = 0+2080+30000+(16*114);
context.cx = 0+2080+30000+(16*114)+((114+2)*2);
describe:
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.si, context.ax);
@@ -7218,7 +7218,7 @@ tryagain:
context.al = context.es.byte(context.si);
context.cx = context.si;
context.si = context.pop();
- context._cmp(context.data.byte(101), 1);
+ context._cmp(context.data.byte(kObjecttype), 1);
if (!context.flags.z()) goto cantmakeoneup;
context._cmp(context.al, 0);
if (context.flags.z()) goto findsometext;
@@ -7283,31 +7283,31 @@ endofcolon:
}
void inventory(Context & context) {
- context._cmp(context.data.byte(55), 1);
+ context._cmp(context.data.byte(kMandead), 1);
if (context.flags.z()) goto iswatchinv;
- context._cmp(context.data.word(19), 0);
+ context._cmp(context.data.word(kWatchingtime), 0);
if (context.flags.z()) goto notwatchinv;
iswatchinv:
blank(context);
return;
notwatchinv:
- context._cmp(context.data.byte(99), 239);
+ context._cmp(context.data.byte(kCommandtype), 239);
if (context.flags.z()) goto alreadyopinv;
- context.data.byte(99) = 239;
+ context.data.byte(kCommandtype) = 239;
context.al = 32;
commandonly(context);
alreadyopinv:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto cantopinv;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopeninv;
cantopinv:
return;
doopeninv:
- context.data.word(326) = 0;
- context.data.byte(233) = 0;
- context.data.byte(236) = 0;
+ context.data.word(kTimecount) = 0;
+ context.data.byte(kPointermode) = 0;
+ context.data.byte(kInmaparea) = 0;
animpointer(context);
createpanel(context);
showpanel(context);
@@ -7315,26 +7315,26 @@ doopeninv:
showman(context);
showexit(context);
undertextline(context);
- context.data.byte(105) = 0;
- context.data.byte(103) = 2;
+ context.data.byte(kPickup) = 0;
+ context.data.byte(kInvopen) = 2;
openinv(context);
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.data.byte(109) = 255;
+ context.data.byte(kOpenedob) = 255;
goto waitexam;
/*continuing to unbounded code: examineagain from examineob:3-66*/
examineagain:
- context.data.byte(236) = 0;
- context.data.byte(107) = 0;
- context.data.byte(109) = 255;
- context.data.byte(110) = 255;
- context.data.byte(103) = 0;
- context.al = context.data.byte(99);
- context.data.byte(101) = context.al;
- context.data.byte(88) = 0;
- context.data.byte(230) = 0;
+ context.data.byte(kInmaparea) = 0;
+ context.data.byte(kExamagain) = 0;
+ context.data.byte(kOpenedob) = 255;
+ context.data.byte(kOpenedtype) = 255;
+ context.data.byte(kInvopen) = 0;
+ context.al = context.data.byte(kCommandtype);
+ context.data.byte(kObjecttype) = context.al;
+ context.data.byte(kItemframe) = 0;
+ context.data.byte(kPointerframe) = 0;
createpanel(context);
showpanel(context);
showman(context);
@@ -7343,7 +7343,7 @@ examineagain:
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -7355,35 +7355,35 @@ waitexam:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.data.byte(102) = 0;
+ context.data.byte(kGetback) = 0;
context.bx = 2494;
- context._cmp(context.data.byte(103), 0);
+ context._cmp(context.data.byte(kInvopen), 0);
if (context.flags.z()) goto notuseinv;
context.bx = 2556;
- context._cmp(context.data.byte(103), 1);
+ context._cmp(context.data.byte(kInvopen), 1);
if (context.flags.z()) goto notuseinv;
context.bx = 2618;
notuseinv:
checkcoords(context);
- context._cmp(context.data.byte(107), 0);
+ context._cmp(context.data.byte(kExamagain), 0);
if (context.flags.z()) goto norex;
goto examineagain;
norex:
- context._cmp(context.data.byte(102), 0);
+ context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto waitexam;
- context.data.byte(105) = 0;
- context._cmp(context.data.word(19), 0);
+ context.data.byte(kPickup) = 0;
+ context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) goto iswatching;
- context._cmp(context.data.byte(187), 255);
+ context._cmp(context.data.byte(kNewlocation), 255);
if (!context.flags.z()) goto justgetback;
iswatching:
makemainscreen(context);
- context.data.byte(103) = 0;
- context.data.byte(109) = 255;
+ context.data.byte(kInvopen) = 0;
+ context.data.byte(kOpenedob) = 255;
return;
justgetback:
- context.data.byte(103) = 0;
- context.data.byte(109) = 255;
+ context.data.byte(kInvopen) = 0;
+ context.data.byte(kOpenedob) = 255;
return;
examlist:
invlist1:
@@ -7393,9 +7393,9 @@ withlist1:
}
void setpickup(Context & context) {
- context._cmp(context.data.byte(101), 1);
+ context._cmp(context.data.byte(kObjecttype), 1);
if (context.flags.z()) goto cantpick;
- context._cmp(context.data.byte(101), 3);
+ context._cmp(context.data.byte(kObjecttype), 3);
if (context.flags.z()) goto cantpick;
getanyad(context);
context.al = context.es.byte(context.bx+2);
@@ -7405,18 +7405,18 @@ cantpick:
blank(context);
return;
canpick:
- context._cmp(context.data.byte(99), 209);
+ context._cmp(context.data.byte(kCommandtype), 209);
if (context.flags.z()) goto alreadysp;
- context.data.byte(99) = 209;
- context.bl = context.data.byte(98);
- context.bh = context.data.byte(101);
+ context.data.byte(kCommandtype) = 209;
+ context.bl = context.data.byte(kCommand);
+ context.bh = context.data.byte(kObjecttype);
context.al = 33;
commandwithob(context);
alreadysp:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._cmp(context.ax, 1);
if (!context.flags.z()) goto nosetpick;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (!context.flags.z()) goto dosetpick;
nosetpick:
return;
@@ -7426,16 +7426,16 @@ dosetpick:
showman(context);
showexit(context);
examicon(context);
- context.data.byte(105) = 1;
- context.data.byte(103) = 2;
- context._cmp(context.data.byte(101), 4);
+ context.data.byte(kPickup) = 1;
+ context.data.byte(kInvopen) = 2;
+ context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto pickupexob;
- context.al = context.data.byte(98);
- context.data.byte(88) = context.al;
- context.data.byte(109) = 255;
+ context.al = context.data.byte(kCommand);
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kOpenedob) = 255;
transfertoex(context);
- context.data.byte(88) = context.al;
- context.data.byte(101) = 4;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = 4;
geteitherad(context);
context.es.byte(context.bx+2) = 20;
context.es.byte(context.bx+3) = 255;
@@ -7443,22 +7443,22 @@ dosetpick:
worktoscreenm(context);
return;
pickupexob:
- context.al = context.data.byte(98);
- context.data.byte(88) = context.al;
- context.data.byte(109) = 255;
+ context.al = context.data.byte(kCommand);
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kOpenedob) = 255;
openinv(context);
worktoscreenm(context);
return;
}
void examinventory(Context & context) {
- context._cmp(context.data.byte(99), 249);
+ context._cmp(context.data.byte(kCommandtype), 249);
if (context.flags.z()) goto alreadyexinv;
- context.data.byte(99) = 249;
+ context.data.byte(kCommandtype) = 249;
context.al = 32;
commandonly(context);
alreadyexinv:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (!context.flags.z()) goto doexinv;
return;
@@ -7468,8 +7468,8 @@ doexinv:
showman(context);
showexit(context);
examicon(context);
- context.data.byte(105) = 0;
- context.data.byte(103) = 2;
+ context.data.byte(kPickup) = 0;
+ context.data.byte(kInvopen) = 2;
openinv(context);
worktoscreenm(context);
return;
@@ -7478,10 +7478,10 @@ doexinv:
void reexfrominv(Context & context) {
findinvpos(context);
context.ax = context.es.word(context.bx);
- context.data.byte(99) = context.ah;
- context.data.byte(98) = context.al;
- context.data.byte(107) = 1;
- context.data.byte(233) = 0;
+ context.data.byte(kCommandtype) = context.ah;
+ context.data.byte(kCommand) = context.al;
+ context.data.byte(kExamagain) = 1;
+ context.data.byte(kPointermode) = 0;
return;
}
@@ -7489,62 +7489,62 @@ void reexfromopen(Context & context) {
return;
findopenpos(context);
context.ax = context.es.word(context.bx);
- context.data.byte(99) = context.ah;
- context.data.byte(98) = context.al;
- context.data.byte(107) = 1;
- context.data.byte(233) = 0;
+ context.data.byte(kCommandtype) = context.ah;
+ context.data.byte(kCommand) = context.al;
+ context.data.byte(kExamagain) = 1;
+ context.data.byte(kPointermode) = 0;
return;
}
void swapwithinv(Context & context) {
- context.al = context.data.byte(88);
- context.ah = context.data.byte(101);
- context._cmp(context.ax, context.data.word(92));
+ context.al = context.data.byte(kItemframe);
+ context.ah = context.data.byte(kObjecttype);
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub7;
- context._cmp(context.data.byte(99), 243);
+ context._cmp(context.data.byte(kCommandtype), 243);
if (context.flags.z()) goto alreadyswap1;
- context.data.byte(99) = 243;
+ context.data.byte(kCommandtype) = 243;
difsub7:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap1:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto cantswap1;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap1;
cantswap1:
return;
doswap1:
- context.ah = context.data.byte(101);
- context.al = context.data.byte(88);
+ context.ah = context.data.byte(kObjecttype);
+ context.al = context.data.byte(kItemframe);
context.push(context.ax);
findinvpos(context);
context.ax = context.es.word(context.bx);
- context.data.byte(88) = context.al;
- context.data.byte(101) = context.ah;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
geteitherad(context);
context.es.byte(context.bx+2) = 20;
context.es.byte(context.bx+3) = 255;
- context.bl = context.data.byte(88);
- context.bh = context.data.byte(101);
+ context.bl = context.data.byte(kItemframe);
+ context.bh = context.data.byte(kObjecttype);
context.ax = context.pop();
- context.data.byte(101) = context.ah;
- context.data.byte(88) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
+ context.data.byte(kItemframe) = context.al;
context.push(context.bx);
findinvpos(context);
delpointer(context);
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
geteitherad(context);
context.es.byte(context.bx+2) = 4;
context.es.byte(context.bx+3) = 255;
- context.al = context.data.byte(106);
+ context.al = context.data.byte(kLastinvpos);
context.es.byte(context.bx+4) = context.al;
context.ax = context.pop();
- context.data.byte(101) = context.ah;
- context.data.byte(88) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
+ context.data.byte(kItemframe) = context.al;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7554,21 +7554,21 @@ doswap1:
}
void swapwithopen(Context & context) {
- context.al = context.data.byte(88);
- context.ah = context.data.byte(101);
- context._cmp(context.ax, context.data.word(92));
+ context.al = context.data.byte(kItemframe);
+ context.ah = context.data.byte(kObjecttype);
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub8;
- context._cmp(context.data.byte(99), 242);
+ context._cmp(context.data.byte(kCommandtype), 242);
if (context.flags.z()) goto alreadyswap2;
- context.data.byte(99) = 242;
+ context.data.byte(kCommandtype) = 242;
difsub8:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 34;
commandwithob(context);
alreadyswap2:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto cantswap2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap2;
@@ -7582,11 +7582,11 @@ doswap2:
return;
notwornswap:
delpointer(context);
- context.al = context.data.byte(88);
- context._cmp(context.al, context.data.byte(109));
+ context.al = context.data.byte(kItemframe);
+ context._cmp(context.al, context.data.byte(kOpenedob));
if (!context.flags.z()) goto isntsame2;
- context.al = context.data.byte(101);
- context._cmp(context.al, context.data.byte(110));
+ context.al = context.data.byte(kObjecttype);
+ context._cmp(context.al, context.data.byte(kOpenedtype));
if (!context.flags.z()) goto isntsame2;
errormessage1(context);
return;
@@ -7596,13 +7596,13 @@ isntsame2:
if (context.flags.z()) goto sizeok2;
return;
sizeok2:
- context.ah = context.data.byte(101);
- context.al = context.data.byte(88);
+ context.ah = context.data.byte(kObjecttype);
+ context.al = context.data.byte(kItemframe);
context.push(context.ax);
findopenpos(context);
context.ax = context.es.word(context.bx);
- context.data.byte(88) = context.al;
- context.data.byte(101) = context.ah;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeswapex;
geteitherad(context);
@@ -7611,31 +7611,31 @@ sizeok2:
goto actuallyswap;
makeswapex:
transfertoex(context);
- context.data.byte(88) = context.al;
- context.data.byte(101) = 4;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = 4;
geteitherad(context);
context.es.byte(context.bx+2) = 20;
context.es.byte(context.bx+3) = 255;
actuallyswap:
- context.bl = context.data.byte(88);
- context.bh = context.data.byte(101);
+ context.bl = context.data.byte(kItemframe);
+ context.bh = context.data.byte(kObjecttype);
context.ax = context.pop();
- context.data.byte(101) = context.ah;
- context.data.byte(88) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
+ context.data.byte(kItemframe) = context.al;
context.push(context.bx);
findopenpos(context);
geteitherad(context);
- context.al = context.data.byte(110);
+ context.al = context.data.byte(kOpenedtype);
context.es.byte(context.bx+2) = context.al;
- context.al = context.data.byte(109);
+ context.al = context.data.byte(kOpenedob);
context.es.byte(context.bx+3) = context.al;
- context.al = context.data.byte(106);
+ context.al = context.data.byte(kLastinvpos);
context.es.byte(context.bx+4) = context.al;
- context.al = context.data.byte(183);
+ context.al = context.data.byte(kReallocation);
context.es.byte(context.bx+5) = context.al;
context.ax = context.pop();
- context.data.byte(101) = context.ah;
- context.data.byte(88) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
+ context.data.byte(kItemframe) = context.al;
fillopen(context);
fillryan(context);
undertextline(context);
@@ -7648,7 +7648,7 @@ actuallyswap:
}
void intoinv(Context & context) {
- context._cmp(context.data.byte(105), 0);
+ context._cmp(context.data.byte(kPickup), 0);
if (!context.flags.z()) goto notout;
outofinv(context);
return;
@@ -7660,21 +7660,21 @@ notout:
swapwithinv(context);
return;
canplace1:
- context.al = context.data.byte(88);
- context.ah = context.data.byte(101);
- context._cmp(context.ax, context.data.word(92));
+ context.al = context.data.byte(kItemframe);
+ context.ah = context.data.byte(kObjecttype);
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub1;
- context._cmp(context.data.byte(99), 220);
+ context._cmp(context.data.byte(kCommandtype), 220);
if (context.flags.z()) goto alreadyplce;
- context.data.byte(99) = 220;
+ context.data.byte(kCommandtype) = 220;
difsub1:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplce:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto notletgo2;
context._and(context.ax, 1);
if (!context.flags.z()) goto doplace;
@@ -7682,13 +7682,13 @@ notletgo2:
return;
doplace:
delpointer(context);
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
getexad(context);
context.es.byte(context.bx+2) = 4;
context.es.byte(context.bx+3) = 255;
- context.al = context.data.byte(106);
+ context.al = context.data.byte(kLastinvpos);
context.es.byte(context.bx+4) = context.al;
- context.data.byte(105) = 0;
+ context.data.byte(kPickup) = 0;
fillryan(context);
readmouse(context);
showpointer(context);
@@ -7699,9 +7699,9 @@ doplace:
}
void deletetaken(Context & context) {
- context.es = context.data.word(424);
- context.ah = context.data.byte(183);
- context.ds = context.data.word(396);
+ context.es = context.data.word(kFreedat);
+ context.ah = context.data.byte(kReallocation);
+ context.ds = context.data.word(kExtras);
context.si = 0+2080+30000;
context.cx = 114;
takenloop:
@@ -7729,25 +7729,25 @@ void outofinv(Context & context) {
blank(context);
return;
canpick2:
- context.bx = context.data.word(200);
+ context.bx = context.data.word(kMousebutton);
context._cmp(context.bx, 2);
if (!context.flags.z()) goto canpick2a;
reexfrominv(context);
return;
canpick2a:
- context._cmp(context.ax, context.data.word(92));
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub3;
- context._cmp(context.data.byte(99), 221);
+ context._cmp(context.data.byte(kCommandtype), 221);
if (context.flags.z()) goto alreadygrab;
- context.data.byte(99) = 221;
+ context.data.byte(kCommandtype) = 221;
difsub3:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrab:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto notletgo;
context._and(context.ax, 1);
if (!context.flags.z()) goto dograb;
@@ -7755,11 +7755,11 @@ notletgo:
return;
dograb:
delpointer(context);
- context.data.byte(105) = 1;
+ context.data.byte(kPickup) = 1;
findinvpos(context);
context.ax = context.es.word(context.bx);
- context.data.byte(88) = context.al;
- context.data.byte(101) = context.ah;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
getexad(context);
context.es.byte(context.bx+2) = 20;
context.es.byte(context.bx+3) = 255;
@@ -7777,7 +7777,7 @@ void getfreead(Context & context) {
context.cl = 4;
context._shl(context.ax, context.cl);
context.bx = context.ax;
- context.es = context.data.word(424);
+ context.es = context.data.word(kFreedat);
return;
}
@@ -7786,39 +7786,39 @@ void getexad(Context & context) {
context.bx = 16;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context._add(context.bx, 0+2080+30000);
return;
}
void geteitherad(Context & context) {
- context._cmp(context.data.byte(101), 4);
+ context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto isinexlist;
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
getfreead(context);
return;
isinexlist:
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
getexad(context);
return;
}
void getanyad(Context & context) {
- context._cmp(context.data.byte(101), 4);
+ context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto isex;
- context._cmp(context.data.byte(101), 2);
+ context._cmp(context.data.byte(kObjecttype), 2);
if (context.flags.z()) goto isfree;
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
getsetad(context);
context.ax = context.es.word(context.bx+4);
return;
isfree:
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
getfreead(context);
context.ax = context.es.word(context.bx+7);
return;
isex:
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
getexad(context);
context.ax = context.es.word(context.bx+7);
return;
@@ -7840,21 +7840,21 @@ isex3:
}
void getopenedsize(Context & context) {
- context._cmp(context.data.byte(110), 4);
+ context._cmp(context.data.byte(kOpenedtype), 4);
if (context.flags.z()) goto isex2;
- context._cmp(context.data.byte(110), 2);
+ context._cmp(context.data.byte(kOpenedtype), 2);
if (context.flags.z()) goto isfree2;
- context.al = context.data.byte(109);
+ context.al = context.data.byte(kOpenedob);
getsetad(context);
context.ax = context.es.word(context.bx+3);
return;
isfree2:
- context.al = context.data.byte(109);
+ context.al = context.data.byte(kOpenedob);
getfreead(context);
context.ax = context.es.word(context.bx+7);
return;
isex2:
- context.al = context.data.byte(109);
+ context.al = context.data.byte(kOpenedob);
getexad(context);
context.ax = context.es.word(context.bx+7);
return;
@@ -7865,40 +7865,40 @@ void getsetad(Context & context) {
context.bx = 64;
context._mul(context.bx);
context.bx = context.ax;
- context.es = context.data.word(426);
+ context.es = context.data.word(kSetdat);
return;
}
void findinvpos(Context & context) {
- context.cx = context.data.word(196);
+ context.cx = context.data.word(kMousex);
context._sub(context.cx, 80);
context.bx = -1;
findinv1:
context._add(context.bx, 1);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv1;
- context.cx = context.data.word(198);
+ context.cx = context.data.word(kMousey);
context._sub(context.cx, 58);
context._sub(context.bx, 5);
findinv2:
context._add(context.bx, 5);
context._sub(context.cx, 44);
if (!context.flags.c()) goto findinv2;
- context.al = context.data.byte(18);
+ context.al = context.data.byte(kRyanpage);
context.ah = 0;
context.cx = 10;
context._mul(context.cx);
context._add(context.bx, context.ax);
context.al = context.bl;
- context.data.byte(106) = context.al;
+ context.data.byte(kLastinvpos) = context.al;
context._add(context.bx, context.bx);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context._add(context.bx, 0+(228*13)+32);
return;
}
void findopenpos(Context & context) {
- context.cx = context.data.word(196);
+ context.cx = context.data.word(kMousex);
context._sub(context.cx, 80);
context.bx = -1;
findopenp1:
@@ -7906,26 +7906,26 @@ findopenp1:
context._sub(context.cx, 44);
if (!context.flags.c()) goto findopenp1;
context.al = context.bl;
- context.data.byte(106) = context.al;
+ context.data.byte(kLastinvpos) = context.al;
context._add(context.bx, context.bx);
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context._add(context.bx, 0+(228*13));
return;
}
void dropobject(Context & context) {
- context._cmp(context.data.byte(99), 223);
+ context._cmp(context.data.byte(kCommandtype), 223);
if (context.flags.z()) goto alreadydrop;
- context.data.byte(99) = 223;
- context._cmp(context.data.byte(105), 0);
+ context.data.byte(kCommandtype) = 223;
+ context._cmp(context.data.byte(kPickup), 0);
if (context.flags.z()) { blank(context); return; };
- context.bl = context.data.byte(88);
- context.bh = context.data.byte(101);
+ context.bl = context.data.byte(kItemframe);
+ context.bh = context.data.byte(kObjecttype);
context.al = 37;
commandwithob(context);
alreadydrop:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nodrop;
context._and(context.ax, 1);
if (!context.flags.z()) goto dodrop;
@@ -7938,11 +7938,11 @@ dodrop:
wornerror(context);
return;
nowornerror:
- context._cmp(context.data.byte(183), 47);
+ context._cmp(context.data.byte(kReallocation), 47);
if (context.flags.z()) goto nodrop2;
- context.cl = context.data.byte(150);
+ context.cl = context.data.byte(kRyanx);
context._add(context.cl, 12);
- context.ch = context.data.byte(151);
+ context.ch = context.data.byte(kRyany);
context._add(context.ch, 12);
checkone(context);
context._cmp(context.cl, 2);
@@ -7951,14 +7951,14 @@ nodrop2:
droperror(context);
return;
nodroperror:
- context._cmp(context.data.byte(127), 64);
+ context._cmp(context.data.byte(kMapxsize), 64);
if (!context.flags.z()) goto notinlift;
- context._cmp(context.data.byte(128), 64);
+ context._cmp(context.data.byte(kMapysize), 64);
if (!context.flags.z()) goto notinlift;
droperror(context);
return;
notinlift:
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
context.ah = 4;
context.cl = 'G';
context.ch = 'U';
@@ -7966,7 +7966,7 @@ notinlift:
context.dh = 'A';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
context.ah = 4;
context.cl = 'S';
context.ch = 'H';
@@ -7974,38 +7974,38 @@ notinlift:
context.dh = 'D';
compare(context);
if (context.flags.z()) { cantdrop(context); return; };
- context.data.byte(101) = 4;
- context.al = context.data.byte(88);
+ context.data.byte(kObjecttype) = 4;
+ context.al = context.data.byte(kItemframe);
getexad(context);
context.es.byte(context.bx+2) = 0;
- context.al = context.data.byte(150);
+ context.al = context.data.byte(kRyanx);
context._add(context.al, 4);
context.cl = 4;
context._shr(context.al, context.cl);
- context._add(context.al, context.data.byte(147));
- context.ah = context.data.byte(151);
+ context._add(context.al, context.data.byte(kMapx));
+ context.ah = context.data.byte(kRyany);
context._add(context.ah, 8);
context.cl = 4;
context._shr(context.ah, context.cl);
- context._add(context.ah, context.data.byte(148));
+ context._add(context.ah, context.data.byte(kMapy));
context.es.byte(context.bx+3) = context.al;
context.es.byte(context.bx+5) = context.ah;
- context.al = context.data.byte(150);
+ context.al = context.data.byte(kRyanx);
context._add(context.al, 4);
context._and(context.al, 15);
- context.ah = context.data.byte(151);
+ context.ah = context.data.byte(kRyany);
context._add(context.ah, 8);
context._and(context.ah, 15);
context.es.byte(context.bx+4) = context.al;
context.es.byte(context.bx+6) = context.ah;
- context.data.byte(105) = 0;
- context.al = context.data.byte(183);
+ context.data.byte(kPickup) = 0;
+ context.al = context.data.byte(kReallocation);
context.es.byte(context.bx) = context.al;
return;
}
void droperror(Context & context) {
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8018,13 +8018,13 @@ void droperror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
worktoscreenm(context);
return;
}
void cantdrop(Context & context) {
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8037,13 +8037,13 @@ void cantdrop(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
worktoscreenm(context);
return;
}
void wornerror(Context & context) {
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8056,17 +8056,17 @@ void wornerror(Context & context) {
showpanel(context);
showman(context);
examicon(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
worktoscreenm(context);
return;
}
void removeobfrominv(Context & context) {
- context._cmp(context.data.byte(98), 100);
+ context._cmp(context.data.byte(kCommand), 100);
if (context.flags.z()) goto obnotexist;
getanyad(context);
context.di = context.bx;
- context.cl = context.data.byte(98);
+ context.cl = context.data.byte(kCommand);
context.ch = 0;
deleteexobject(context);
obnotexist:
@@ -8074,33 +8074,33 @@ obnotexist:
}
void selectopenob(Context & context) {
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
getanyad(context);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canopenit1;
blank(context);
return;
canopenit1:
- context._cmp(context.data.byte(99), 224);
+ context._cmp(context.data.byte(kCommandtype), 224);
if (context.flags.z()) goto alreadyopob;
- context.data.byte(99) = 224;
- context.bl = context.data.byte(98);
- context.bh = context.data.byte(101);
+ context.data.byte(kCommandtype) = 224;
+ context.bl = context.data.byte(kCommand);
+ context.bh = context.data.byte(kObjecttype);
context.al = 38;
commandwithob(context);
alreadyopob:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto noopenob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doopenob;
noopenob:
return;
doopenob:
- context.al = context.data.byte(98);
- context.data.byte(109) = context.al;
- context.al = context.data.byte(101);
- context.data.byte(110) = context.al;
+ context.al = context.data.byte(kCommand);
+ context.data.byte(kOpenedob) = context.al;
+ context.al = context.data.byte(kObjecttype);
+ context.data.byte(kOpenedtype) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -8117,9 +8117,9 @@ doopenob:
}
void useopened(Context & context) {
- context._cmp(context.data.byte(109), 255);
+ context._cmp(context.data.byte(kOpenedob), 255);
if (context.flags.z()) goto cannotuseopen;
- context._cmp(context.data.byte(105), 0);
+ context._cmp(context.data.byte(kPickup), 0);
if (!context.flags.z()) goto notout2;
outofopen(context);
return;
@@ -8132,26 +8132,26 @@ notout2:
cannotuseopen:
return;
canplace3:
- context._cmp(context.data.byte(105), 1);
+ context._cmp(context.data.byte(kPickup), 1);
if (context.flags.z()) goto intoopen;
blank(context);
return;
intoopen:
- context.al = context.data.byte(88);
- context.ah = context.data.byte(101);
- context._cmp(context.ax, context.data.word(92));
+ context.al = context.data.byte(kItemframe);
+ context.ah = context.data.byte(kObjecttype);
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub2;
- context._cmp(context.data.byte(99), 227);
+ context._cmp(context.data.byte(kCommandtype), 227);
if (context.flags.z()) goto alreadyplc2;
- context.data.byte(99) = 227;
+ context.data.byte(kCommandtype) = 227;
difsub2:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 35;
commandwithob(context);
alreadyplc2:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto notletgo3;
context._cmp(context.ax, 1);
if (context.flags.z()) goto doplace2;
@@ -8165,11 +8165,11 @@ doplace2:
return;
notworntoopen:
delpointer(context);
- context.al = context.data.byte(88);
- context._cmp(context.al, context.data.byte(109));
+ context.al = context.data.byte(kItemframe);
+ context._cmp(context.al, context.data.byte(kOpenedob));
if (!context.flags.z()) goto isntsame;
- context.al = context.data.byte(101);
- context._cmp(context.al, context.data.byte(110));
+ context.al = context.data.byte(kObjecttype);
+ context._cmp(context.al, context.data.byte(kOpenedtype));
if (!context.flags.z()) goto isntsame;
errormessage1(context);
return;
@@ -8179,16 +8179,16 @@ isntsame:
if (context.flags.z()) goto sizeok1;
return;
sizeok1:
- context.data.byte(105) = 0;
- context.al = context.data.byte(88);
+ context.data.byte(kPickup) = 0;
+ context.al = context.data.byte(kItemframe);
geteitherad(context);
- context.al = context.data.byte(110);
+ context.al = context.data.byte(kOpenedtype);
context.es.byte(context.bx+2) = context.al;
- context.al = context.data.byte(109);
+ context.al = context.data.byte(kOpenedob);
context.es.byte(context.bx+3) = context.al;
- context.al = context.data.byte(106);
+ context.al = context.data.byte(kLastinvpos);
context.es.byte(context.bx+4) = context.al;
- context.al = context.data.byte(183);
+ context.al = context.data.byte(kReallocation);
context.es.byte(context.bx+5) = context.al;
fillopen(context);
undertextline(context);
@@ -8225,7 +8225,7 @@ void errormessage1(Context & context) {
}
void errormessage2(Context & context) {
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -8273,7 +8273,7 @@ void errormessage3(Context & context) {
void checkobjectsize(Context & context) {
getopenedsize(context);
context.push(context.ax);
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
geteitherad(context);
context.al = context.es.byte(context.bx+9);
context.cx = context.pop();
@@ -8312,7 +8312,7 @@ sizeok:
}
void outofopen(Context & context) {
- context._cmp(context.data.byte(109), 255);
+ context._cmp(context.data.byte(kOpenedob), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
context.ax = context.es.word(context.bx);
@@ -8322,19 +8322,19 @@ cantuseopen:
blank(context);
return;
canpick4:
- context._cmp(context.ax, context.data.word(92));
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub4;
- context._cmp(context.data.byte(99), 228);
+ context._cmp(context.data.byte(kCommandtype), 228);
if (context.flags.z()) goto alreadygrb;
- context.data.byte(99) = 228;
+ context.data.byte(kCommandtype) = 228;
difsub4:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 36;
commandwithob(context);
alreadygrb:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto notletgo4;
context._cmp(context.ax, 1);
if (context.flags.z()) goto dogrb;
@@ -8345,11 +8345,11 @@ notletgo4:
return;
dogrb:
delpointer(context);
- context.data.byte(105) = 1;
+ context.data.byte(kPickup) = 1;
findopenpos(context);
context.ax = context.es.word(context.bx);
- context.data.byte(88) = context.al;
- context.data.byte(101) = context.ah;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = context.ah;
context._cmp(context.ah, 4);
if (!context.flags.z()) goto makeintoex;
geteitherad(context);
@@ -8358,8 +8358,8 @@ dogrb:
goto actuallyout;
makeintoex:
transfertoex(context);
- context.data.byte(88) = context.al;
- context.data.byte(101) = 4;
+ context.data.byte(kItemframe) = context.al;
+ context.data.byte(kObjecttype) = 4;
geteitherad(context);
context.es.byte(context.bx+2) = 20;
context.es.byte(context.bx+3) = 255;
@@ -8377,37 +8377,37 @@ actuallyout:
void transfertoex(Context & context) {
emergencypurge(context);
getexpos(context);
- context.al = context.data.byte(9);
+ context.al = context.data.byte(kExpos);
context.push(context.ax);
context.push(context.di);
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.data.word(424);
+ context.ds = context.data.word(kFreedat);
context.si = context.ax;
context.cx = 8;
while(--context.cx) context._movsw();
context.di = context.pop();
- context.al = context.data.byte(183);
+ context.al = context.data.byte(kReallocation);
context.es.byte(context.di) = context.al;
context.es.byte(context.di+11) = context.al;
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
context.es.byte(context.di+1) = context.al;
context.es.byte(context.di+2) = 4;
context.es.byte(context.di+3) = 255;
- context.al = context.data.byte(106);
+ context.al = context.data.byte(kLastinvpos);
context.es.byte(context.di+4) = context.al;
- context.al = context.data.byte(88);
- context.data.byte(89) = context.al;
+ context.al = context.data.byte(kItemframe);
+ context.data.byte(kItemtotran) = context.al;
transfermap(context);
transferinv(context);
transfertext(context);
- context.al = context.data.byte(88);
+ context.al = context.data.byte(kItemframe);
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
- context.ds = context.data.word(424);
+ context.ds = context.data.word(kFreedat);
context.si = context.ax;
context.ds.byte(context.si+2) = 254;
pickupconts(context);
@@ -8419,10 +8419,10 @@ void pickupconts(Context & context) {
context.al = context.ds.byte(context.si+7);
context._cmp(context.al, 255);
if (context.flags.z()) goto notopenable;
- context.al = context.data.byte(88);
- context.ah = context.data.byte(101);
- context.dl = context.data.byte(9);
- context.es = context.data.word(424);
+ context.al = context.data.byte(kItemframe);
+ context.ah = context.data.byte(kObjecttype);
+ context.dl = context.data.byte(kExpos);
+ context.es = context.data.word(kFreedat);
context.bx = 0;
context.cx = 0;
pickupcontloop:
@@ -8435,7 +8435,7 @@ pickupcontloop:
if (!context.flags.z()) goto notinsidethis;
context._cmp(context.es.byte(context.bx+3), context.al);
if (!context.flags.z()) goto notinsidethis;
- context.data.byte(89) = context.cl;
+ context.data.byte(kItemtotran) = context.cl;
transfercontoex(context);
notinsidethis:
context.ax = context.pop();
@@ -8465,10 +8465,10 @@ void transfercontoex(Context & context) {
while(--context.cx) context._movsw();
context.di = context.pop();
context.dx = context.pop();
- context.al = context.data.byte(183);
+ context.al = context.data.byte(kReallocation);
context.es.byte(context.di) = context.al;
context.es.byte(context.di+11) = context.al;
- context.al = context.data.byte(89);
+ context.al = context.data.byte(kItemtotran);
context.es.byte(context.di+1) = context.al;
context.es.byte(context.di+3) = context.dl;
context.es.byte(context.di+2) = 4;
@@ -8482,19 +8482,19 @@ void transfercontoex(Context & context) {
}
void transfertext(Context & context) {
- context.es = context.data.word(396);
- context.al = context.data.byte(9);
+ context.es = context.data.word(kExtras);
+ context.al = context.data.byte(kExpos);
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = 0+2080+30000+(16*114);
context._add(context.bx, context.ax);
- context.di = context.data.word(12);
+ context.di = context.data.word(kExtextpos);
context.es.word(context.bx) = context.di;
context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
- context.al = context.data.byte(89);
+ context.al = context.data.byte(kItemtotran);
context.ah = 0;
context._add(context.ax, context.ax);
- context.ds = context.data.word(436);
+ context.ds = context.data.word(kFreedesc);
context.bx = 0;
context._add(context.bx, context.ax);
context.si = 0+(82*2);
@@ -8503,14 +8503,14 @@ void transfertext(Context & context) {
moretext:
context._lodsb();
context._stosb();
- context._add(context.data.word(12), 1);
+ context._add(context.data.word(kExtextpos), 1);
context._cmp(context.al, 0);
if (!context.flags.z()) goto moretext;
return;
}
void getexpos(Context & context) {
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.al = 0;
context.di = 0+2080+30000;
tryanotherex:
@@ -8521,13 +8521,13 @@ tryanotherex:
context._cmp(context.al, 114);
if (!context.flags.z()) goto tryanotherex;
foundnewex:
- context.data.byte(9) = context.al;
+ context.data.byte(kExpos) = context.al;
return;
}
void purgealocation(Context & context) {
context.push(context.ax);
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.di = 0+2080+30000;
context.bx = context.pop();
context.cx = 0;
@@ -8555,14 +8555,14 @@ dontpurge:
void emergencypurge(Context & context) {
checkpurgeagain:
- context.ax = context.data.word(10);
+ context.ax = context.data.word(kExframepos);
context._add(context.ax, 4000);
context._cmp(context.ax, 30000);
if (context.flags.c()) goto notnearframeend;
purgeanitem(context);
goto checkpurgeagain;
notnearframeend:
- context.ax = context.data.word(12);
+ context.ax = context.data.word(kExtextpos);
context._add(context.ax, 400);
context._cmp(context.ax, 18000);
if (context.flags.c()) goto notneartextend;
@@ -8573,9 +8573,9 @@ notneartextend:
}
void purgeanitem(Context & context) {
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.di = 0+2080+30000;
- context.bl = context.data.byte(183);
+ context.bl = context.data.byte(kReallocation);
context.cx = 0;
lookforpurge:
context.al = context.es.byte(context.di+2);
@@ -8596,7 +8596,7 @@ cantpurge:
context._cmp(context.cx, 114);
if (!context.flags.z()) goto lookforpurge;
context.di = 0+2080+30000;
- context.bl = context.data.byte(183);
+ context.bl = context.data.byte(kReallocation);
context.cx = 0;
lookforpurge2:
context.al = context.es.byte(context.di+2);
@@ -8681,7 +8681,7 @@ void deleteexframe(Context & context) {
context.ds = context.es;
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.data.word(10), context.bx);
+ context._sub(context.data.word(kExframepos), context.bx);
context.si = context.pop();
context.cx = 114*3;
context.di = 0;
@@ -8722,7 +8722,7 @@ findlenextext:
context._sub(context.cx, context.bx);
while(--context.cx) context._movsb();
context.bx = context.pop();
- context._sub(context.data.word(12), context.bx);
+ context._sub(context.data.word(kExtextpos), context.bx);
context.si = context.pop();
context.cx = 114;
context.di = 0+2080+30000+(16*114);
@@ -8741,7 +8741,7 @@ beforethistext:
void blockget(Context & context) {
context.ah = context.al;
context.al = 0;
- context.ds = context.data.word(414);
+ context.ds = context.data.word(kBackdrop);
context.si = 0+192;
context._add(context.si, context.ax);
return;
@@ -8759,7 +8759,7 @@ void drawfloor(Context & context) {
showallex(context);
paneltomap(context);
initrain(context);
- context.data.byte(61) = 0;
+ context.data.byte(kNewobs) = 0;
context.bx = context.pop();
context.es = context.pop();
return;
@@ -8776,8 +8776,8 @@ void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.data.word(119));
- context.data.word(115) = context.ax;
+ context._add(context.ax, context.data.word(kMapoffsetx));
+ context.data.word(kMapadx) = context.ax;
context.dx = context.pop();
context.cx = context.pop();
context.al = 10;
@@ -8787,13 +8787,13 @@ void calcmapad(Context & context) {
context.ax.cbw();
context.bx = 8;
context._mul(context.bx);
- context._add(context.ax, context.data.word(121));
- context.data.word(117) = context.ax;
+ context._add(context.ax, context.data.word(kMapoffsety));
+ context.data.word(kMapady) = context.ax;
return;
}
void getdimension(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32);
context.ch = 0;
dimloop1:
@@ -8845,14 +8845,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.word(123) = context.ax;
+ context.data.word(kMapxstart) = context.ax;
context.al = context.ch;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.word(125) = context.ax;
+ context.data.word(kMapystart) = context.ax;
context._sub(context.dl, context.cl);
context._sub(context.dh, context.ch);
context.al = context.dl;
@@ -8861,14 +8861,14 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.byte(127) = context.al;
+ context.data.byte(kMapxsize) = context.al;
context.al = context.dh;
context.ah = 0;
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context._shl(context.ax, 1);
- context.data.byte(128) = context.al;
+ context.data.byte(kMapysize) = context.al;
return;
}
@@ -8903,13 +8903,13 @@ gotlength:
}
void drawflags(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32);
- context.al = context.data.byte(148);
+ context.al = context.data.byte(kMapy);
context.ah = 0;
context.cx = 66;
context._mul(context.cx);
- context.bl = context.data.byte(147);
+ context.bl = context.data.byte(kMapx);
context.bh = 0;
context._add(context.ax, context.bx);
context.si = 0;
@@ -8919,9 +8919,9 @@ _tmp28:
context.push(context.cx);
context.cx = 11;
_tmp28a:
- context.ds = context.data.word(416);
+ context.ds = context.data.word(kMapdata);
context._lodsb();
- context.ds = context.data.word(414);
+ context.ds = context.data.word(kBackdrop);
context.push(context.si);
context.push(context.ax);
context.ah = 0;
@@ -8940,9 +8940,9 @@ _tmp28a:
}
void eraseoldobs(Context & context) {
- context._cmp(context.data.byte(61), 0);
+ context._cmp(context.data.byte(kNewobs), 0);
if (context.flags.z()) goto donterase;
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
context.cx = 16;
oberase:
@@ -8965,21 +8965,21 @@ donterase:
}
void showallobs(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32);
- context.data.word(16) = context.bx;
+ context.data.word(kListpos) = context.bx;
context.di = context.bx;
context.cx = 128*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(442);
- context.data.word(164) = context.es;
+ context.es = context.data.word(kSetframes);
+ context.data.word(kFrsegment) = context.es;
context.ax = 0;
- context.data.word(162) = context.ax;
+ context.data.word(kDataad) = context.ax;
context.ax = 0+2080;
- context.data.word(160) = context.ax;
- context.data.byte(180) = 0;
- context.ds = context.data.word(426);
+ context.data.word(kFramesad) = context.ax;
+ context.data.byte(kCurrentob) = 0;
+ context.ds = context.data.word(kSetdat);
context.si = 0;
context.cx = 128;
showobsloop:
@@ -8987,14 +8987,14 @@ showobsloop:
context.push(context.si);
context.push(context.si);
context._add(context.si, 58);
- context.es = context.data.word(426);
+ context.es = context.data.word(kSetdat);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankframe;
context.al = context.es.byte(context.si+18);
context.ah = 0;
- context.data.word(158) = context.ax;
+ context.data.word(kCurrentframe) = context.ax;
context._cmp(context.al, 255);
if (context.flags.z()) goto blankframe;
context.push(context.es);
@@ -9011,31 +9011,31 @@ showobsloop:
if (context.flags.z()) goto animating;
context._cmp(context.es.byte(context.si+5), 6);
if (context.flags.z()) goto animating;
- context.ax = context.data.word(158);
+ context.ax = context.data.word(kCurrentframe);
context.ah = 0;
- context._add(context.di, context.data.word(115));
- context._add(context.bx, context.data.word(117));
+ context._add(context.di, context.data.word(kMapadx));
+ context._add(context.bx, context.data.word(kMapady));
showframe(context);
goto drawnsetob;
animating:
makebackob(context);
drawnsetob:
- context.si = context.data.word(16);
- context.es = context.data.word(410);
- context.al = context.data.byte(178);
- context.ah = context.data.byte(179);
+ context.si = context.data.word(kListpos);
+ context.es = context.data.word(kBuffers);
+ context.al = context.data.byte(kSavex);
+ context.ah = context.data.byte(kSavey);
context.es.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(174);
+ context.ax = context.data.word(kSavesize);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.es.word(context.si+2) = context.ax;
- context.al = context.data.byte(180);
+ context.al = context.data.byte(kCurrentob);
context.es.byte(context.si+4) = context.al;
context._add(context.si, 5);
- context.data.word(16) = context.si;
+ context.data.word(kListpos) = context.si;
blankframe:
- context._add(context.data.byte(180), 1);
+ context._add(context.data.byte(kCurrentob), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 64);
@@ -9047,19 +9047,19 @@ finishedsetobs:
}
void makebackob(Context & context) {
- context._cmp(context.data.byte(61), 0);
+ context._cmp(context.data.byte(kNewobs), 0);
if (context.flags.z()) goto nomake;
context.al = context.es.byte(context.si+5);
context.ah = context.es.byte(context.si+8);
context.push(context.si);
context.push(context.ax);
context.push(context.si);
- context.ax = context.data.word(166);
- context.bx = context.data.word(168);
+ context.ax = context.data.word(kObjectx);
+ context.bx = context.data.word(kObjecty);
context.ah = context.bl;
context.si = context.ax;
context.cx = 49520;
- context.dx = context.data.word(442);
+ context.dx = context.data.word(kSetframes);
context.di = 0;
makesprite(context);
context.ax = context.pop();
@@ -9080,61 +9080,61 @@ nomake:
}
void showallfree(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
- context.data.word(16) = context.bx;
+ context.data.word(kListpos) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
context.cx = 80*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(444);
- context.data.word(164) = context.es;
+ context.es = context.data.word(kFreeframes);
+ context.data.word(kFrsegment) = context.es;
context.ax = 0;
- context.data.word(162) = context.ax;
+ context.data.word(kDataad) = context.ax;
context.ax = 0+2080;
- context.data.word(160) = context.ax;
+ context.data.word(kFramesad) = context.ax;
context.al = 0;
- context.data.byte(157) = context.al;
- context.ds = context.data.word(424);
+ context.data.byte(kCurrentfree) = context.al;
+ context.ds = context.data.word(kFreedat);
context.si = 2;
context.cx = 0;
loop127:
context.push(context.cx);
context.push(context.si);
context.push(context.si);
- context.es = context.data.word(424);
+ context.es = context.data.word(kFreedat);
getmapad(context);
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto over138;
- context.al = context.data.byte(157);
+ context.al = context.data.byte(kCurrentfree);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.data.word(158) = context.ax;
+ context.data.word(kCurrentframe) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.data.word(400);
- context.ds = context.data.word(164);
+ context.es = context.data.word(kMapstore);
+ context.ds = context.data.word(kFrsegment);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto over138;
- context.ax = context.data.word(158);
+ context.ax = context.data.word(kCurrentframe);
context.ah = 0;
- context._add(context.di, context.data.word(115));
- context._add(context.bx, context.data.word(117));
+ context._add(context.di, context.data.word(kMapadx));
+ context._add(context.bx, context.data.word(kMapady));
showframe(context);
- context.si = context.data.word(16);
- context.es = context.data.word(410);
- context.al = context.data.byte(178);
- context.ah = context.data.byte(179);
+ context.si = context.data.word(kListpos);
+ context.es = context.data.word(kBuffers);
+ context.al = context.data.byte(kSavex);
+ context.ah = context.data.byte(kSavey);
context.es.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(174);
+ context.ax = context.data.word(kSavesize);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.es.word(context.si+2) = context.ax;
@@ -9144,9 +9144,9 @@ loop127:
context.push(context.ax);
context.es.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.data.word(16) = context.si;
+ context.data.word(kListpos) = context.si;
over138:
- context._add(context.data.byte(157), 1);
+ context._add(context.data.byte(kCurrentfree), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9159,66 +9159,66 @@ finfree:
}
void showallex(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
- context.data.word(16) = context.bx;
+ context.data.word(kListpos) = context.bx;
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
context.cx = 100*5;
context.al = 255;
while(--context.cx) context._stosb();
- context.es = context.data.word(396);
- context.data.word(164) = context.es;
+ context.es = context.data.word(kExtras);
+ context.data.word(kFrsegment) = context.es;
context.ax = 0;
- context.data.word(162) = context.ax;
+ context.data.word(kDataad) = context.ax;
context.ax = 0+2080;
- context.data.word(160) = context.ax;
- context.data.byte(156) = 0;
+ context.data.word(kFramesad) = context.ax;
+ context.data.byte(kCurrentex) = 0;
context.si = 0+2080+30000+2;
context.cx = 0;
exloop:
context.push(context.cx);
context.push(context.si);
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.push(context.si);
context.ch = 0;
context._cmp(context.es.byte(context.si), 255);
if (context.flags.z()) goto notinroom;
context.al = context.es.byte(context.si-2);
- context._cmp(context.al, context.data.byte(183));
+ context._cmp(context.al, context.data.byte(kReallocation));
if (!context.flags.z()) goto notinroom;
getmapad(context);
notinroom:
context.si = context.pop();
context._cmp(context.ch, 0);
if (context.flags.z()) goto blankex;
- context.al = context.data.byte(156);
+ context.al = context.data.byte(kCurrentex);
context.ah = 0;
context.dx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.dx);
- context.data.word(158) = context.ax;
+ context.data.word(kCurrentframe) = context.ax;
context.push(context.es);
context.push(context.si);
calcfrframe(context);
- context.es = context.data.word(400);
- context.ds = context.data.word(164);
+ context.es = context.data.word(kMapstore);
+ context.ds = context.data.word(kFrsegment);
finalframe(context);
context.si = context.pop();
context.es = context.pop();
context._cmp(context.cx, 0);
if (context.flags.z()) goto blankex;
- context.ax = context.data.word(158);
+ context.ax = context.data.word(kCurrentframe);
context.ah = 0;
- context._add(context.di, context.data.word(115));
- context._add(context.bx, context.data.word(117));
+ context._add(context.di, context.data.word(kMapadx));
+ context._add(context.bx, context.data.word(kMapady));
showframe(context);
- context.si = context.data.word(16);
- context.es = context.data.word(410);
- context.al = context.data.byte(178);
- context.ah = context.data.byte(179);
+ context.si = context.data.word(kListpos);
+ context.es = context.data.word(kBuffers);
+ context.al = context.data.byte(kSavex);
+ context.ah = context.data.byte(kSavey);
context.es.word(context.si) = context.ax;
context.cx = context.ax;
- context.ax = context.data.word(174);
+ context.ax = context.data.word(kSavesize);
context._add(context.al, context.cl);
context._add(context.ah, context.ch);
context.es.word(context.si+2) = context.ax;
@@ -9228,9 +9228,9 @@ notinroom:
context.push(context.ax);
context.es.byte(context.si+4) = context.cl;
context._add(context.si, 5);
- context.data.word(16) = context.si;
+ context.data.word(kListpos) = context.si;
blankex:
- context._add(context.data.byte(156), 1);
+ context._add(context.data.byte(kCurrentex), 1);
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
@@ -9243,11 +9243,11 @@ finex:
}
void calcfrframe(Context & context) {
- context.dx = context.data.word(164);
- context.ax = context.data.word(160);
+ context.dx = context.data.word(kFrsegment);
+ context.ax = context.data.word(kFramesad);
context.push(context.ax);
- context.cx = context.data.word(162);
- context.ax = context.data.word(158);
+ context.cx = context.data.word(kDataad);
+ context.ax = context.data.word(kCurrentframe);
context.ds = context.dx;
context.bx = 6;
context._mul(context.bx);
@@ -9259,33 +9259,33 @@ void calcfrframe(Context & context) {
context.bx = context.pop();
context.push(context.dx);
context._add(context.ax, context.bx);
- context.data.word(176) = context.ax;
- context.data.word(174) = context.cx;
+ context.data.word(kSavesource) = context.ax;
+ context.data.word(kSavesize) = context.cx;
context.ax = context.pop();
context.push(context.ax);
context.ah = 0;
- context.data.word(170) = context.ax;
+ context.data.word(kOffsetx) = context.ax;
context.ax = context.pop();
context.al = context.ah;
context.ah = 0;
- context.data.word(172) = context.ax;
+ context.data.word(kOffsety) = context.ax;
return;
nullframe:
context.ax = context.pop();
context.cx = 0;
- context.data.word(174) = context.cx;
+ context.data.word(kSavesize) = context.cx;
return;
}
void finalframe(Context & context) {
- context.ax = context.data.word(168);
- context._add(context.ax, context.data.word(172));
- context.bx = context.data.word(166);
- context._add(context.bx, context.data.word(170));
- context.data.byte(178) = context.bl;
- context.data.byte(179) = context.al;
- context.di = context.data.word(166);
- context.bx = context.data.word(168);
+ context.ax = context.data.word(kObjecty);
+ context._add(context.ax, context.data.word(kOffsety));
+ context.bx = context.data.word(kObjectx);
+ context._add(context.bx, context.data.word(kOffsetx));
+ context.data.byte(kSavex) = context.bl;
+ context.data.byte(kSavey) = context.al;
+ context.di = context.data.word(kObjectx);
+ context.bx = context.data.word(kObjecty);
return;
}
@@ -9305,11 +9305,11 @@ void getmapad(Context & context) {
getxad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.data.word(166) = context.ax;
+ context.data.word(kObjectx) = context.ax;
getyad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
- context.data.word(168) = context.ax;
+ context.data.word(kObjecty) = context.ax;
context.ch = 1;
over146:
return;
@@ -9324,7 +9324,7 @@ void getxad(Context & context) {
context._add(context.si, 1);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto over148;
- context._sub(context.al, context.data.byte(147));
+ context._sub(context.al, context.data.byte(kMapx));
if (context.flags.c()) goto over148;
context._cmp(context.al, 11);
if (!context.flags.c()) goto over148;
@@ -9344,7 +9344,7 @@ void getyad(Context & context) {
context._add(context.si, 1);
context.ah = context.es.byte(context.si);
context._add(context.si, 1);
- context._sub(context.al, context.data.byte(148));
+ context._sub(context.al, context.data.byte(kMapy));
if (context.flags.c()) goto over147;
context._cmp(context.al, 10);
if (!context.flags.c()) goto over147;
@@ -9360,40 +9360,40 @@ over147:
}
void autolook(Context & context) {
- context.ax = context.data.word(196);
- context._cmp(context.ax, context.data.word(212));
+ context.ax = context.data.word(kMousex);
+ context._cmp(context.ax, context.data.word(kOldx));
if (!context.flags.z()) goto diffmouse;
- context.ax = context.data.word(198);
- context._cmp(context.ax, context.data.word(214));
+ context.ax = context.data.word(kMousey);
+ context._cmp(context.ax, context.data.word(kOldy));
if (!context.flags.z()) goto diffmouse;
- context._sub(context.data.word(96), 1);
- context._cmp(context.data.word(96), 0);
+ context._sub(context.data.word(kLookcounter), 1);
+ context._cmp(context.data.word(kLookcounter), 0);
if (!context.flags.z()) goto noautolook;
- context._cmp(context.data.word(19), 0);
+ context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) goto noautolook;
dolook(context);
noautolook:
return;
diffmouse:
- context.data.word(96) = 1000;
+ context.data.word(kLookcounter) = 1000;
return;
}
void look(Context & context) {
- context._cmp(context.data.word(19), 0);
+ context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(233), 2);
+ context._cmp(context.data.byte(kPointermode), 2);
if (context.flags.z()) { blank(context); return; };
- context._cmp(context.data.byte(99), 241);
+ context._cmp(context.data.byte(kCommandtype), 241);
if (context.flags.z()) goto alreadylook;
- context.data.byte(99) = 241;
+ context.data.byte(kCommandtype) = 241;
context.al = 25;
commandonly(context);
alreadylook:
- context._cmp(context.data.word(200), 1);
+ context._cmp(context.data.word(kMousebutton), 1);
if (!context.flags.z()) goto nolook;
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nolook;
dolook(context);
nolook:
@@ -9405,19 +9405,19 @@ void dolook(Context & context) {
showicon(context);
undertextline(context);
worktoscreenm(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
dumptextline(context);
- context.bl = context.data.byte(184);
+ context.bl = context.data.byte(kRoomnum);
context._and(context.bl, 31);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(434);
+ context.es = context.data.word(kRoomdesc);
context._add(context.bx, 0);
context.si = context.es.word(context.bx);
context._add(context.si, 0+(38*2));
findnextcolon(context);
context.di = 66;
- context._cmp(context.data.byte(183), 50);
+ context._cmp(context.data.byte(kReallocation), 50);
if (context.flags.c()) goto notdream3;
context.di = 40;
notdream3:
@@ -9429,17 +9429,17 @@ notdream3:
context.cx = 400;
hangonp(context);
afterlook:
- context.data.byte(233) = 0;
- context.data.byte(99) = 0;
+ context.data.byte(kPointermode) = 0;
+ context.data.byte(kCommandtype) = 0;
redrawmainscrn(context);
worktoscreenm(context);
return;
}
void redrawmainscrn(Context & context) {
- context.data.word(326) = 0;
+ context.data.word(kTimecount) = 0;
createpanel(context);
- context.data.byte(61) = 0;
+ context.data.byte(kNewobs) = 0;
drawfloor(context);
printsprites(context);
reelsonscreen(context);
@@ -9447,40 +9447,40 @@ void redrawmainscrn(Context & context) {
getunderzoom(context);
undertextline(context);
readmouse(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
return;
}
void getback1(Context & context) {
- context._cmp(context.data.byte(105), 0);
+ context._cmp(context.data.byte(kPickup), 0);
if (context.flags.z()) goto notgotobject;
blank(context);
return;
notgotobject:
- context._cmp(context.data.byte(99), 202);
+ context._cmp(context.data.byte(kCommandtype), 202);
if (context.flags.z()) goto alreadyget;
- context.data.byte(99) = 202;
+ context.data.byte(kCommandtype) = 202;
context.al = 26;
commandonly(context);
alreadyget:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nogetback;
context._and(context.ax, 1);
if (!context.flags.z()) goto dogetback;
nogetback:
return;
dogetback:
- context.data.byte(102) = 1;
- context.data.byte(105) = 0;
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kPickup) = 0;
return;
}
void talk(Context & context) {
- context.data.byte(245) = 0;
- context.data.byte(236) = 0;
- context.al = context.data.byte(98);
- context.data.byte(246) = context.al;
+ context.data.byte(kTalkpos) = 0;
+ context.data.byte(kInmaparea) = 0;
+ context.al = context.data.byte(kCommand);
+ context.data.byte(kCharacter) = context.al;
createpanel(context);
showpanel(context);
showman(context);
@@ -9488,7 +9488,7 @@ void talk(Context & context) {
undertextline(context);
convicons(context);
starttalk(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -9500,15 +9500,15 @@ waittalk:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.data.byte(102) = 0;
+ context.data.byte(kGetback) = 0;
context.bx = 2660;
checkcoords(context);
- context._cmp(context.data.byte(102), 0);
+ context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto waittalk;
finishtalk:
- context.bx = context.data.word(247);
+ context.bx = context.data.word(kPersondata);
context.es = context.cs;
- context._cmp(context.data.byte(245), 4);
+ context._cmp(context.data.byte(kTalkpos), 4);
if (context.flags.c()) goto notnexttalk;
context.al = context.es.byte(context.bx+7);
context._or(context.al, 128);
@@ -9516,25 +9516,25 @@ finishtalk:
notnexttalk:
redrawmainscrn(context);
worktoscreenm(context);
- context._cmp(context.data.byte(382), 1);
+ context._cmp(context.data.byte(kSpeechloaded), 1);
if (!context.flags.z()) goto nospeech;
cancelch1(context);
- context.data.byte(387) = -1;
- context.data.byte(386) = 0;
+ context.data.byte(kVolumedirection) = -1;
+ context.data.byte(kVolumeto) = 0;
nospeech:
return;
}
void convicons(Context & context) {
- context.al = context.data.byte(246);
+ context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
getpersframe(context);
context.di = 234;
context.bx = 2;
- context.data.word(158) = context.ax;
+ context.data.word(kCurrentframe) = context.ax;
findsource(context);
- context.ax = context.data.word(158);
- context._sub(context.ax, context.data.word(242));
+ context.ax = context.data.word(kCurrentframe);
+ context._sub(context.ax, context.data.word(kTakeoff));
context.ah = 0;
showframe(context);
return;
@@ -9544,25 +9544,25 @@ void getpersframe(Context & context) {
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
- context.es = context.data.word(446);
+ context.es = context.data.word(kPeople);
context._add(context.bx, 0);
context.ax = context.es.word(context.bx);
return;
}
void starttalk(Context & context) {
- context.data.byte(244) = 0;
- context.al = context.data.byte(246);
+ context.data.byte(kTalkmode) = 0;
+ context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
getpersontext(context);
- context.data.word(69) = 91+91;
+ context.data.word(kCharshift) = 91+91;
context.di = 66;
context.bx = 64;
context.dl = 241;
context.al = 0;
context.ah = 79;
printdirect(context);
- context.data.word(69) = 0;
+ context.data.word(kCharshift) = 0;
context.di = 66;
context.bx = 80;
context.dl = 241;
@@ -9578,7 +9578,7 @@ void getpersontext(Context & context) {
context.cx = 64*2;
context._mul(context.cx);
context.si = context.ax;
- context.es = context.data.word(446);
+ context.es = context.data.word(kPeople);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.es.word(context.si);
@@ -9588,30 +9588,30 @@ void getpersontext(Context & context) {
}
void moretalk(Context & context) {
- context._cmp(context.data.byte(244), 0);
+ context._cmp(context.data.byte(kTalkmode), 0);
if (context.flags.z()) goto canmore;
redes(context);
return;
canmore:
- context._cmp(context.data.byte(99), 215);
+ context._cmp(context.data.byte(kCommandtype), 215);
if (context.flags.z()) goto alreadymore;
- context.data.byte(99) = 215;
+ context.data.byte(kCommandtype) = 215;
context.al = 49;
commandonly(context);
alreadymore:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nomore;
context._and(context.ax, 1);
if (!context.flags.z()) goto domoretalk;
nomore:
return;
domoretalk:
- context.data.byte(244) = 2;
- context.data.byte(245) = 4;
- context._cmp(context.data.byte(246), 100);
+ context.data.byte(kTalkmode) = 2;
+ context.data.byte(kTalkpos) = 4;
+ context._cmp(context.data.byte(kCharacter), 100);
if (context.flags.c()) goto notsecondpart;
- context.data.byte(245) = 48;
+ context.data.byte(kTalkpos) = 48;
notsecondpart:
dosometalk(context);
return;
@@ -9619,19 +9619,19 @@ notsecondpart:
void dosometalk(Context & context) {
watchtalk:
- context.al = context.data.byte(245);
- context.al = context.data.byte(246);
+ context.al = context.data.byte(kTalkpos);
+ context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.data.byte(245);
+ context.al = context.data.byte(kTalkpos);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.data.word(446);
+ context.es = context.data.word(kPeople);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.es.word(context.si);
@@ -9654,24 +9654,24 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.data.byte(233) = 3;
+ context.data.byte(kPointermode) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
- context._add(context.data.byte(245), 1);
- context.al = context.data.byte(245);
- context.al = context.data.byte(246);
+ context._add(context.data.byte(kTalkpos), 1);
+ context.al = context.data.byte(kTalkpos);
+ context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
context.ah = 0;
context.cx = 64;
context._mul(context.cx);
context.cx = context.ax;
- context.al = context.data.byte(245);
+ context.al = context.data.byte(kTalkpos);
context.ah = 0;
context._add(context.ax, context.cx);
context._add(context.ax, context.ax);
context.si = context.ax;
- context.es = context.data.word(446);
+ context.es = context.data.word(kPeople);
context._add(context.si, 0+24);
context.cx = 0+24+(1026*2);
context.ax = context.es.word(context.si);
@@ -9698,20 +9698,20 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
- context.data.byte(233) = 3;
+ context.data.byte(kPointermode) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
skiptalk:
- context._add(context.data.byte(245), 1);
+ context._add(context.data.byte(kTalkpos), 1);
goto watchtalk;
endwatchtalk:
- context.data.byte(233) = 0;
+ context.data.byte(kPointermode) = 0;
return;
}
void hangonpq(Context & context) {
- context.data.byte(102) = 0;
+ context.data.byte(kGetback) = 0;
context.bx = 0;
hangloopq:
context.push(context.cx);
@@ -9727,48 +9727,48 @@ hangloopq:
checkcoords(context);
context.bx = context.pop();
context.cx = context.pop();
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(kGetback), 1);
if (context.flags.z()) goto quitconv;
- context._cmp(context.data.byte(382), 1);
+ context._cmp(context.data.byte(kSpeechloaded), 1);
if (!context.flags.z()) goto notspeaking;
- context._cmp(context.data.byte(514), 255);
+ context._cmp(context.data.byte(kCh1playing), 255);
if (!context.flags.z()) goto notspeaking;
context._add(context.bx, 1);
context._cmp(context.bx, 40);
if (context.flags.z()) goto finishconv;
notspeaking:
- context._cmp(context.data.word(200), 0);
+ context._cmp(context.data.word(kMousebutton), 0);
if (context.flags.z()) goto hangloopq;
- context._cmp(context.data.word(210), 0);
+ context._cmp(context.data.word(kOldbutton), 0);
if (!context.flags.z()) goto hangloopq;
finishconv:
delpointer(context);
- context.data.byte(233) = 0;
+ context.data.byte(kPointermode) = 0;
return;
quitconv:
delpointer(context);
- context.data.byte(233) = 0;
+ context.data.byte(kPointermode) = 0;
context.ax = context.pop();
cancelch1(context);
return;
}
void redes(Context & context) {
- context._cmp(context.data.byte(514), 255);
+ context._cmp(context.data.byte(kCh1playing), 255);
if (!context.flags.z()) goto cantredes;
- context._cmp(context.data.byte(244), 2);
+ context._cmp(context.data.byte(kTalkmode), 2);
if (context.flags.z()) goto canredes;
cantredes:
blank(context);
return;
canredes:
- context._cmp(context.data.byte(99), 217);
+ context._cmp(context.data.byte(kCommandtype), 217);
if (context.flags.z()) goto alreadyreds;
- context.data.byte(99) = 217;
+ context.data.byte(kCommandtype) = 217;
context.al = 50;
commandonly(context);
alreadyreds:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (!context.flags.z()) goto doredes;
return;
@@ -9788,27 +9788,27 @@ doredes:
}
void newplace(Context & context) {
- context._cmp(context.data.byte(59), 1);
+ context._cmp(context.data.byte(kNeedtotravel), 1);
if (context.flags.z()) goto istravel;
- context._cmp(context.data.byte(188), -1);
+ context._cmp(context.data.byte(kAutolocation), -1);
if (!context.flags.z()) goto isautoloc;
return;
isautoloc:
- context.al = context.data.byte(188);
- context.data.byte(187) = context.al;
- context.data.byte(188) = -1;
+ context.al = context.data.byte(kAutolocation);
+ context.data.byte(kNewlocation) = context.al;
+ context.data.byte(kAutolocation) = -1;
return;
istravel:
- context.data.byte(59) = 0;
+ context.data.byte(kNeedtotravel) = 0;
selectlocation(context);
return;
}
void selectlocation(Context & context) {
- context.data.byte(236) = 0;
+ context.data.byte(kInmaparea) = 0;
clearbeforeload(context);
- context.data.byte(102) = 0;
- context.data.byte(230) = 22;
+ context.data.byte(kGetback) = 0;
+ context.data.byte(kPointerframe) = 22;
readcitypic(context);
showcity(context);
getridoftemp(context);
@@ -9820,15 +9820,15 @@ void selectlocation(Context & context) {
showexit(context);
locationpic(context);
undertextline(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
readmouse(context);
- context.data.byte(230) = 0;
+ context.data.byte(kPointerframe) = 0;
showpointer(context);
worktoscreen(context);
context.al = 9;
context.ah = 255;
playchannel0(context);
- context.data.byte(187) = 255;
+ context.data.byte(kNewlocation) = 255;
select:
delpointer(context);
readmouse(context);
@@ -9836,42 +9836,42 @@ select:
vsync(context);
dumppointer(context);
dumptextline(context);
- context._cmp(context.data.byte(102), 1);
+ context._cmp(context.data.byte(kGetback), 1);
if (context.flags.z()) goto quittravel;
context.bx = 2714;
checkcoords(context);
- context._cmp(context.data.byte(187), 255);
+ context._cmp(context.data.byte(kNewlocation), 255);
if (context.flags.z()) goto select;
- context.al = context.data.byte(187);
- context._cmp(context.al, context.data.byte(8));
+ context.al = context.data.byte(kNewlocation);
+ context._cmp(context.al, context.data.byte(kLocation));
if (context.flags.z()) goto quittravel;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.data.word(454);
+ context.es = context.data.word(kTraveltext);
deallocatemem(context);
return;
quittravel:
- context.al = context.data.byte(183);
- context.data.byte(187) = context.al;
- context.data.byte(102) = 0;
+ context.al = context.data.byte(kReallocation);
+ context.data.byte(kNewlocation) = context.al;
+ context.data.byte(kGetback) = 0;
getridoftemp(context);
getridoftemp2(context);
getridoftemp3(context);
- context.es = context.data.word(454);
+ context.es = context.data.word(kTraveltext);
deallocatemem(context);
return;
}
void showcity(Context & context) {
clearwork(context);
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.di = 57;
context.bx = 32;
context.al = 0;
context.ah = 0;
showframe(context);
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.di = 120+57;
context.bx = 32;
context.al = 1;
@@ -9881,25 +9881,25 @@ void showcity(Context & context) {
}
void lookatplace(Context & context) {
- context._cmp(context.data.byte(99), 224);
+ context._cmp(context.data.byte(kCommandtype), 224);
if (context.flags.z()) goto alreadyinfo;
- context.data.byte(99) = 224;
+ context.data.byte(kCommandtype) = 224;
context.al = 27;
commandonly(context);
alreadyinfo:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (context.flags.z()) goto noinfo;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto noinfo;
- context.bl = context.data.byte(182);
+ context.bl = context.data.byte(kDestpos);
context._cmp(context.bl, 15);
if (!context.flags.c()) goto noinfo;
context.push(context.bx);
delpointer(context);
deltextline(context);
getundercentre(context);
- context.ds = context.data.word(460);
+ context.ds = context.data.word(kTempgraphics3);
context.al = 0;
context.ah = 0;
context.di = 60;
@@ -9918,7 +9918,7 @@ alreadyinfo:
context.bx = context.pop();
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(454);
+ context.es = context.data.word(kTraveltext);
context.si = context.es.word(context.bx);
context._add(context.si, 66*2);
findnextcolon(context);
@@ -9932,8 +9932,8 @@ alreadyinfo:
context.cx = 500;
hangonp(context);
afterinfo:
- context.data.byte(233) = 0;
- context.data.byte(230) = 0;
+ context.data.byte(kPointermode) = 0;
+ context.data.byte(kPointerframe) = 0;
putundercentre(context);
worktoscreenm(context);
noinfo:
@@ -9943,7 +9943,7 @@ noinfo:
void getundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9954,7 +9954,7 @@ void getundercentre(Context & context) {
void putundercentre(Context & context) {
context.di = 58;
context.bx = 72;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
context.cl = 254;
context.ch = 110;
@@ -9970,12 +9970,12 @@ void locationpic(Context & context) {
context.di = 0;
context._cmp(context.al, 6);
if (!context.flags.c()) goto secondlot;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context._add(context.al, 4);
goto gotgraphic;
secondlot:
context._sub(context.al, 6);
- context.ds = context.data.word(458);
+ context.ds = context.data.word(kTempgraphics2);
gotgraphic:
context._add(context.di, 104);
context.bx = 138+14;
@@ -9983,20 +9983,20 @@ gotgraphic:
showframe(context);
context.si = context.pop();
context.es = context.pop();
- context.al = context.data.byte(182);
- context._cmp(context.al, context.data.byte(183));
+ context.al = context.data.byte(kDestpos);
+ context._cmp(context.al, context.data.byte(kReallocation));
if (!context.flags.z()) goto notinthisone;
context.al = 3;
context.di = 104;
context.bx = 140+14;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.ah = 0;
showframe(context);
notinthisone:
- context.bl = context.data.byte(182);
+ context.bl = context.data.byte(kDestpos);
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(454);
+ context.es = context.data.word(kTraveltext);
context.si = context.es.word(context.bx);
context._add(context.si, 66*2);
context.di = 50;
@@ -10009,7 +10009,7 @@ notinthisone:
}
void getdestinfo(Context & context) {
- context.al = context.data.byte(182);
+ context.al = context.data.byte(kDestpos);
context.ah = 0;
context.push(context.ax);
context.dx = context.ds;
@@ -10030,19 +10030,19 @@ void getdestinfo(Context & context) {
void showarrows(Context & context) {
context.di = 116-12;
context.bx = 16;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 0;
context.ah = 0;
showframe(context);
context.di = 226+12;
context.bx = 16;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 280;
context.bx = 14;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 2;
context.ah = 0;
showframe(context);
@@ -10051,27 +10051,27 @@ void showarrows(Context & context) {
void nextdest(Context & context) {
duok:
- context._cmp(context.data.byte(99), 218);
+ context._cmp(context.data.byte(kCommandtype), 218);
if (context.flags.z()) goto alreadydu;
- context.data.byte(99) = 218;
+ context.data.byte(kCommandtype) = 218;
context.al = 28;
commandonly(context);
alreadydu:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (context.flags.z()) goto nodu;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nodu;
searchdestup:
- context._add(context.data.byte(182), 1);
- context._cmp(context.data.byte(182), 15);
+ context._add(context.data.byte(kDestpos), 1);
+ context._cmp(context.data.byte(kDestpos), 15);
if (!context.flags.z()) goto notlastdest;
- context.data.byte(182) = 0;
+ context.data.byte(kDestpos) = 0;
notlastdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestup;
- context.data.byte(108) = 1;
+ context.data.byte(kNewtextline) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10089,27 +10089,27 @@ nodu:
void lastdest(Context & context) {
ddok:
- context._cmp(context.data.byte(99), 219);
+ context._cmp(context.data.byte(kCommandtype), 219);
if (context.flags.z()) goto alreadydd;
- context.data.byte(99) = 219;
+ context.data.byte(kCommandtype) = 219;
context.al = 29;
commandonly(context);
alreadydd:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (context.flags.z()) goto nodd;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nodd;
searchdestdown:
- context._sub(context.data.byte(182), 1);
- context._cmp(context.data.byte(182), -1);
+ context._sub(context.data.byte(kDestpos), 1);
+ context._cmp(context.data.byte(kDestpos), -1);
if (!context.flags.z()) goto notfirstdest;
- context.data.byte(182) = 15;
+ context.data.byte(kDestpos) = 15;
notfirstdest:
getdestinfo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto searchdestdown;
- context.data.byte(108) = 1;
+ context.data.byte(kNewtextline) = 1;
deltextline(context);
delpointer(context);
showpanel(context);
@@ -10126,20 +10126,20 @@ nodd:
}
void destselect(Context & context) {
- context._cmp(context.data.byte(99), 222);
+ context._cmp(context.data.byte(kCommandtype), 222);
if (context.flags.z()) goto alreadytrav;
- context.data.byte(99) = 222;
+ context.data.byte(kCommandtype) = 222;
context.al = 30;
commandonly(context);
alreadytrav:
- context.ax = context.data.word(200);
+ context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (context.flags.z()) goto notrav;
- context._cmp(context.ax, context.data.word(210));
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto notrav;
getdestinfo(context);
- context.al = context.data.byte(182);
- context.data.byte(187) = context.al;
+ context.al = context.data.byte(kDestpos);
+ context.data.byte(kNewlocation) = context.al;
notrav:
return;
}
@@ -10228,7 +10228,7 @@ void readcitypic(Context & context) {
}
void usemon(Context & context) {
- context.data.byte(54) = 0;
+ context.data.byte(kLasttrigger) = 0;
context.es = context.cs;
context.di = 2892+1;
context.cx = 12;
@@ -10267,8 +10267,8 @@ keyloop:
turnonpower(context);
fadeupyellows(context);
fadeupmonfirst(context);
- context.data.word(316) = 76;
- context.data.word(318) = 141;
+ context.data.word(kMonadx) = 76;
+ context.data.word(kMonady) = 141;
context.al = 1;
monmessage(context);
context.cx = 120;
@@ -10283,34 +10283,34 @@ keyloop:
hangoncurs(context);
printlogo(context);
scrollmonitor(context);
- context.data.word(392) = 0;
- context.data.word(394) = 0;
+ context.data.word(kBufferin) = 0;
+ context.data.word(kBufferout) = 0;
moreinput:
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.data.word(316) = context.di;
- context.data.word(318) = context.bx;
+ context.data.word(kMonadx) = context.di;
+ context.data.word(kMonady) = context.bx;
execcommand(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto moreinput;
endmon:
getridoftemp(context);
getridoftempcharset(context);
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
deallocatemem(context);
- context.es = context.data.word(466);
+ context.es = context.data.word(kTextfile2);
deallocatemem(context);
- context.es = context.data.word(468);
+ context.es = context.data.word(kTextfile3);
deallocatemem(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
context.al = 26;
playchannel1(context);
- context.data.byte(130) = 0;
+ context.data.byte(kManisoffscreen) = 0;
restoreall(context);
redrawmainscrn(context);
worktoscreenm(context);
@@ -10320,25 +10320,25 @@ endmon:
void printoutermon(Context & context) {
context.di = 40;
context.bx = 32;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 1;
context.ah = 0;
showframe(context);
context.di = 264;
context.bx = 32;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 2;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 12;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 3;
context.ah = 0;
showframe(context);
context.di = 40;
context.bx = 164;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 4;
context.ah = 0;
showframe(context);
@@ -10346,7 +10346,7 @@ void printoutermon(Context & context) {
}
void loadpersonal(Context & context) {
- context.al = context.data.byte(8);
+ context.al = context.data.byte(kLocation);
context.dx = 2052;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundpersonal;
@@ -10363,7 +10363,7 @@ foundpersonal:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(464) = context.ax;
+ context.data.word(kTextfile1) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10373,7 +10373,7 @@ foundpersonal:
}
void loadnews(Context & context) {
- context.al = context.data.byte(33);
+ context.al = context.data.byte(kNewsitem);
context.dx = 2078;
context._cmp(context.al, 0);
if (context.flags.z()) goto foundnews;
@@ -10392,7 +10392,7 @@ foundnews:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(466) = context.ax;
+ context.data.word(kTextfile2) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10424,7 +10424,7 @@ gotcart:
context.cl = 4;
context._shr(context.bx, context.cl);
allocatemem(context);
- context.data.word(468) = context.ax;
+ context.data.word(kTextfile3) = context.ax;
context.ds = context.ax;
context.cx = context.pop();
context.dx = 0;
@@ -10490,7 +10490,7 @@ chosenaccess:
void powerlighton(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 6;
context.ah = 0;
context.push(context.di);
@@ -10507,7 +10507,7 @@ void powerlighton(Context & context) {
void powerlightoff(Context & context) {
context.di = 257+4;
context.bx = 182;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 5;
context.ah = 0;
context.push(context.di);
@@ -10524,7 +10524,7 @@ void powerlightoff(Context & context) {
void accesslighton(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 8;
context.ah = 0;
context.push(context.di);
@@ -10541,7 +10541,7 @@ void accesslighton(Context & context) {
void accesslightoff(Context & context) {
context.di = 74;
context.bx = 182;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 7;
context.ah = 0;
context.push(context.di);
@@ -10558,7 +10558,7 @@ void accesslightoff(Context & context) {
void locklighton(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 10;
context.ah = 0;
context.push(context.di);
@@ -10575,7 +10575,7 @@ void locklighton(Context & context) {
void locklightoff(Context & context) {
context.di = 56;
context.bx = 182;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 9;
context.ah = 0;
context.push(context.di);
@@ -10595,50 +10595,50 @@ void input(Context & context) {
context.cx = 64;
context.al = 0;
while(--context.cx) context._stosb();
- context.data.word(314) = 0;
+ context.data.word(kCurpos) = 0;
context.al = '>';
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
- context.ds = context.data.word(404);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
+ context.ds = context.data.word(kTempcharset);
context.ah = 0;
printchar(context);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
context.cl = 6;
context.ch = 8;
multidump(context);
- context._add(context.data.word(316), 6);
- context.ax = context.data.word(316);
- context.data.word(310) = context.ax;
- context.ax = context.data.word(318);
- context.data.word(312) = context.ax;
+ context._add(context.data.word(kMonadx), 6);
+ context.ax = context.data.word(kMonadx);
+ context.data.word(kCurslocx) = context.ax;
+ context.ax = context.data.word(kMonady);
+ context.data.word(kCurslocy) = context.ax;
waitkey:
printcurs(context);
vsync(context);
delcurs(context);
readkey(context);
- context.al = context.data.byte(141);
+ context.al = context.data.byte(kCurrentkey);
context._cmp(context.al, 0);
if (context.flags.z()) goto waitkey;
context._cmp(context.al, 13);
if (context.flags.z()) goto endofinput;
context._cmp(context.al, 8);
if (!context.flags.z()) goto notdel;
- context._cmp(context.data.word(314), 0);
+ context._cmp(context.data.word(kCurpos), 0);
if (context.flags.z()) goto waitkey;
delchar(context);
goto waitkey;
notdel:
- context._cmp(context.data.word(314), 28);
+ context._cmp(context.data.word(kCurpos), 28);
if (context.flags.z()) goto waitkey;
- context._cmp(context.data.byte(141), 32);
+ context._cmp(context.data.byte(kCurrentkey), 32);
if (!context.flags.z()) goto notleadingspace;
- context._cmp(context.data.word(314), 0);
+ context._cmp(context.data.word(kCurpos), 0);
if (context.flags.z()) goto waitkey;
notleadingspace:
makecaps(context);
context.es = context.cs;
- context.si = context.data.word(314);
+ context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
context._add(context.si, 7816);
context.es.byte(context.si) = context.al;
@@ -10647,10 +10647,10 @@ notleadingspace:
context.push(context.ax);
context.push(context.es);
context.push(context.si);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
- context.ds = context.data.word(400);
- context.ax = context.data.word(314);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
+ context.ds = context.data.word(kMapstore);
+ context.ax = context.data.word(kCurpos);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
@@ -10661,18 +10661,18 @@ notleadingspace:
context.ax = context.pop();
context.push(context.es);
context.push(context.si);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
- context.ds = context.data.word(404);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
+ context.ds = context.data.word(kTempcharset);
context.ah = 0;
printchar(context);
context.si = context.pop();
context.es = context.pop();
context.es.byte(context.si+1) = context.cl;
context.ch = 0;
- context._add(context.data.word(316), context.cx);
- context._add(context.data.word(314), 1);
- context._add(context.data.word(310), context.cx);
+ context._add(context.data.word(kMonadx), context.cx);
+ context._add(context.data.word(kCurpos), 1);
+ context._add(context.data.word(kCurslocx), context.cx);
goto waitkey;
endofinput:
return;
@@ -10687,27 +10687,27 @@ notupperc:
}
void delchar(Context & context) {
- context._sub(context.data.word(314), 1);
- context.si = context.data.word(314);
+ context._sub(context.data.word(kCurpos), 1);
+ context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
context.es = context.cs;
context._add(context.si, 7816);
context.es.byte(context.si) = 0;
context.al = context.es.byte(context.si+1);
context.ah = 0;
- context._sub(context.data.word(316), context.ax);
- context._sub(context.data.word(310), context.ax);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
- context.ds = context.data.word(400);
- context.ax = context.data.word(314);
+ context._sub(context.data.word(kMonadx), context.ax);
+ context._sub(context.data.word(kCurslocx), context.ax);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
+ context.ds = context.data.word(kMapstore);
+ context.ax = context.data.word(kCurpos);
context._xchg(context.al, context.ah);
context.si = context.ax;
context.cl = 8;
context.ch = 8;
multiput(context);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
context.cl = context.al;
context.ch = 8;
multidump(context);
@@ -10803,7 +10803,7 @@ void dircom(Context & context) {
dirfile(context);
return;
dirroot:
- context.data.byte(268) = 0;
+ context.data.byte(kLogonum) = 0;
context.ds = context.cs;
context.si = 2885;
context._add(context.si, 1);
@@ -10816,11 +10816,11 @@ dirroot:
scrollmonitor(context);
context.al = 9;
monmessage(context);
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
searchforfiles(context);
- context.es = context.data.word(466);
+ context.es = context.data.word(kTextfile2);
searchforfiles(context);
- context.es = context.data.word(468);
+ context.es = context.data.word(kTextfile3);
searchforfiles(context);
scrollmonitor(context);
return;
@@ -10889,15 +10889,15 @@ notyetassigned:
scrollmonitor(context);
context.al = 15;
monmessage(context);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
context.push(context.di);
context.push(context.bx);
input(context);
context.bx = context.pop();
context.di = context.pop();
- context.data.word(316) = context.di;
- context.data.word(318) = context.bx;
+ context.data.word(kMonadx) = context.di;
+ context.data.word(kMonady) = context.bx;
context.bx = context.pop();
context.es = context.pop();
context.push(context.es);
@@ -10972,22 +10972,22 @@ void read(Context & context) {
okcom:
context.es = context.cs;
context.di = 2892;
- context.ax = context.data.word(464);
- context.data.word(322) = context.ax;
+ context.ax = context.data.word(kTextfile1);
+ context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(466);
- context.data.word(322) = context.ax;
+ context.ax = context.data.word(kTextfile2);
+ context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
- context.ax = context.data.word(468);
- context.data.word(322) = context.ax;
+ context.ax = context.data.word(kTextfile3);
+ context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
context.si = 66*2;
searchforstring(context);
@@ -11004,12 +11004,12 @@ foundfile2:
keyok1:
context.es = context.cs;
context.di = 2883;
- context.ds = context.data.word(322);
+ context.ds = context.data.word(kMonsource);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto findtopictext;
- context.al = context.data.byte(269);
- context.data.byte(268) = context.al;
+ context.al = context.data.byte(kOldlogonum);
+ context.data.byte(kLogonum) = context.al;
context.al = 11;
monmessage(context);
return;
@@ -11048,7 +11048,7 @@ void dirfile(Context & context) {
context.es.byte(context.di) = context.al;
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(464);
+ context.ds = context.data.word(kTextfile1);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11057,7 +11057,7 @@ void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(466);
+ context.ds = context.data.word(kTextfile2);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11066,7 +11066,7 @@ void dirfile(Context & context) {
context.es = context.pop();
context.push(context.es);
context.push(context.di);
- context.ds = context.data.word(468);
+ context.ds = context.data.word(kTextfile3);
context.si = 66*2;
searchforstring(context);
context._cmp(context.al, 0);
@@ -11118,15 +11118,15 @@ void getkeyandlogo(Context & context) {
context._add(context.bx, 1);
context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
- context.data.byte(270) = context.al;
+ context.data.byte(kNewlogonum) = context.al;
context._add(context.bx, 2);
context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
- context.data.byte(275) = context.al;
+ context.data.byte(kKeynum) = context.al;
context._add(context.bx, 1);
context.push(context.es);
context.push(context.bx);
- context.al = context.data.byte(275);
+ context.al = context.data.byte(kKeynum);
context.ah = 0;
context.cx = 26;
context._mul(context.cx);
@@ -11152,8 +11152,8 @@ void getkeyandlogo(Context & context) {
keyok:
context.bx = context.pop();
context.es = context.pop();
- context.al = context.data.byte(270);
- context.data.byte(268) = context.al;
+ context.al = context.data.byte(kNewlogonum);
+ context.data.byte(kLogonum) = context.al;
context.al = 0;
return;
}
@@ -11240,10 +11240,10 @@ void scrollmonitor(Context & context) {
context.push(context.es);
context.push(context.ds);
printlogo(context);
- context.di = context.data.word(316);
- context.bx = context.data.word(318);
+ context.di = context.data.word(kMonadx);
+ context.bx = context.data.word(kMonady);
printundermon(context);
- context.ax = context.data.word(318);
+ context.ax = context.data.word(kMonady);
worktoscreen(context);
context.al = 25;
playchannel1(context);
@@ -11259,11 +11259,11 @@ void scrollmonitor(Context & context) {
}
void lockmon(Context & context) {
- context._cmp(context.data.byte(391), 57);
+ context._cmp(context.data.byte(kLasthardkey), 57);
if (!context.flags.z()) goto notlock;
locklighton(context);
lockloop:
- context._cmp(context.data.byte(391), 57);
+ context._cmp(context.data.byte(kLasthardkey), 57);
if (context.flags.z()) goto lockloop;
locklightoff(context);
notlock:
@@ -11271,10 +11271,10 @@ notlock:
}
void monitorlogo(Context & context) {
- context.al = context.data.byte(268);
- context._cmp(context.al, context.data.byte(269));
+ context.al = context.data.byte(kLogonum);
+ context._cmp(context.al, context.data.byte(kOldlogonum));
if (context.flags.z()) goto notnewlogo;
- context.data.byte(269) = context.al;
+ context.data.byte(kOldlogonum) = context.al;
printlogo(context);
printundermon(context);
worktoscreen(context);
@@ -11293,7 +11293,7 @@ notnewlogo:
void printlogo(Context & context) {
context.di = 56;
context.bx = 32;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 0;
context.ah = 0;
showframe(context);
@@ -11312,7 +11312,7 @@ curfileloop:
context._add(context.si, 1);
context.push(context.si);
modifychar(context);
- context.ds = context.data.word(404);
+ context.ds = context.data.word(kTempcharset);
context.ah = 0;
printchar(context);
context.si = context.pop();
@@ -11322,7 +11322,7 @@ finishfile:
}
void monmessage(Context & context) {
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
context.bx = 66*2;
context.cl = context.al;
context.ch = 0;
@@ -11337,7 +11337,7 @@ monmessageloop:
}
void processtrigger(Context & context) {
- context._cmp(context.data.byte(54), '1');
+ context._cmp(context.data.byte(kLasttrigger), '1');
if (!context.flags.z()) goto notfirsttrigger;
context.al = 8;
setlocation(context);
@@ -11345,7 +11345,7 @@ void processtrigger(Context & context) {
triggermessage(context);
return;
notfirsttrigger:
- context._cmp(context.data.byte(54), '2');
+ context._cmp(context.data.byte(kLasttrigger), '2');
if (!context.flags.z()) goto notsecondtrigger;
context.al = 9;
setlocation(context);
@@ -11353,7 +11353,7 @@ notfirsttrigger:
triggermessage(context);
return;
notsecondtrigger:
- context._cmp(context.data.byte(54), '3');
+ context._cmp(context.data.byte(kLasttrigger), '3');
if (!context.flags.z()) goto notthirdtrigger;
context.al = 2;
setlocation(context);
@@ -11369,7 +11369,7 @@ void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
multiget(context);
context.ax = context.pop();
@@ -11388,11 +11388,11 @@ void triggermessage(Context & context) {
context.bx = 153;
context.cl = 200;
context.ch = 63;
- context.ds = context.data.word(400);
+ context.ds = context.data.word(kMapstore);
context.si = 0;
multiput(context);
worktoscreen(context);
- context.data.byte(54) = 0;
+ context.data.byte(kLasttrigger) = 0;
return;
}
@@ -11403,13 +11403,13 @@ void printcurs(Context & context) {
context.push(context.dx);
context.push(context.bx);
context.push(context.es);
- context.di = context.data.word(310);
- context.bx = context.data.word(312);
+ context.di = context.data.word(kCurslocx);
+ context.bx = context.data.word(kCurslocy);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
context.ch = 11;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context.si = 0;
context.push(context.di);
context.push(context.bx);
@@ -11418,14 +11418,14 @@ void printcurs(Context & context) {
context.di = context.pop();
context.push(context.bx);
context.push(context.di);
- context._add(context.data.word(136), 1);
- context.ax = context.data.word(136);
+ context._add(context.data.word(kMaintimer), 1);
+ context.ax = context.data.word(kMaintimer);
context._and(context.al, 16);
if (!context.flags.z()) goto flashcurs;
context.al = '/';
context._sub(context.al, 32);
context.ah = 0;
- context.ds = context.data.word(404);
+ context.ds = context.data.word(kTempcharset);
showframe(context);
flashcurs:
context.di = context.pop();
@@ -11450,8 +11450,8 @@ void delcurs(Context & context) {
context.push(context.ds);
context.push(context.dx);
context.push(context.si);
- context.di = context.data.word(310);
- context.bx = context.data.word(312);
+ context.di = context.data.word(kCurslocx);
+ context.bx = context.data.word(kCurslocy);
context.cl = 6;
context.ch = 8;
context._sub(context.bx, 3);
@@ -11459,7 +11459,7 @@ void delcurs(Context & context) {
context.push(context.di);
context.push(context.bx);
context.push(context.cx);
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context.si = 0;
multiput(context);
context.cx = context.pop();
@@ -11477,17 +11477,17 @@ finishcurdel:
}
void useobject(Context & context) {
- context.data.byte(94) = 255;
- context._cmp(context.data.byte(99), 229);
+ context.data.byte(kWithobject) = 255;
+ context._cmp(context.data.byte(kCommandtype), 229);
if (context.flags.z()) goto alreadyuse;
- context.data.byte(99) = 229;
- context.bl = context.data.byte(98);
- context.bh = context.data.byte(101);
+ context.data.byte(kCommandtype) = 229;
+ context.bl = context.data.byte(kCommand);
+ context.bh = context.data.byte(kObjecttype);
context.al = 51;
commandwithob(context);
alreadyuse:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nouse;
context._and(context.ax, 1);
if (!context.flags.z()) goto douse;
@@ -11499,13 +11499,13 @@ douse:
}
void useroutine(Context & context) {
- context._cmp(context.data.byte(183), 50);
+ context._cmp(context.data.byte(kReallocation), 50);
if (context.flags.c()) goto nodream7;
- context._cmp(context.data.byte(231), 0);
+ context._cmp(context.data.byte(kPointerpower), 0);
if (!context.flags.z()) goto powerok;
return;
powerok:
- context.data.byte(231) = 0;
+ context.data.byte(kPointerpower) = 0;
nodream7:
getanyad(context);
context.dx = context.ds;
@@ -11569,7 +11569,7 @@ cantuse2:
context.cx = 50;
hangonp(context);
putbackobstuff(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
return;
}
@@ -11582,21 +11582,21 @@ void wheelsound(Context & context) {
}
void runtap(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto tapwith;
withwhat(context);
return;
tapwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcupfromtap;
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11609,7 +11609,7 @@ tapwith:
putbackobstuff(context);
return;
fillcupfromtap:
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+15) = 'F'-'A';
context.al = 8;
@@ -11636,9 +11636,9 @@ void playguitar(Context & context) {
}
void hotelcontrol(Context & context) {
- context._cmp(context.data.byte(183), 21);
+ context._cmp(context.data.byte(kReallocation), 21);
if (!context.flags.z()) goto notrightcont;
- context._cmp(context.data.byte(147), 33);
+ context._cmp(context.data.byte(kMapx), 33);
if (!context.flags.z()) goto notrightcont;
showfirstuse(context);
putbackobstuff(context);
@@ -11658,14 +11658,14 @@ void hotelbell(Context & context) {
}
void opentomb(Context & context) {
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showfirstuse(context);
- context.data.word(19) = 35*2;
- context.data.word(21) = 1;
- context.data.word(23) = 33;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 35*2;
+ context.data.word(kReeltowatch) = 1;
+ context.data.word(kEndwatchreel) = 33;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -11673,7 +11673,7 @@ void usetrainer(Context & context) {
getanyad(context);
context._cmp(context.es.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
makeworn(context);
showseconduse(context);
putbackobstuff(context);
@@ -11703,21 +11703,21 @@ void nothelderror(Context & context) {
}
void usepipe(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto pipewith;
withwhat(context);
return;
pipewith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto fillcup;
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -11734,7 +11734,7 @@ fillcup:
context.al = 36;
showpuztext(context);
putbackobstuff(context);
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+15) = 'F'-'A';
return;
@@ -11747,35 +11747,35 @@ alreadyfull:
}
void usefullcart(Context & context) {
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
context.al = 2;
- context.ah = context.data.byte(184);
+ context.ah = context.data.byte(kRoomnum);
context._add(context.ah, 6);
turnanypathon(context);
- context.data.byte(474) = 4;
- context.data.byte(132) = 4;
- context.data.byte(134) = 4;
- context.data.byte(476) = 4;
+ context.data.byte(kManspath) = 4;
+ context.data.byte(kFacing) = 4;
+ context.data.byte(kTurntoface) = 4;
+ context.data.byte(kFinaldest) = 4;
findxyfrompath(context);
- context.data.byte(186) = 1;
+ context.data.byte(kResetmanxy) = 1;
showfirstuse(context);
- context.data.word(19) = 72*2;
- context.data.word(21) = 58;
- context.data.word(23) = 142;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 72*2;
+ context.data.word(kReeltowatch) = 58;
+ context.data.word(kEndwatchreel) = 142;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void useplinth(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto plinthwith;
withwhat(context);
return;
plinthwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'D';
context.ch = 'K';
context.dl = 'E';
@@ -11786,16 +11786,16 @@ plinthwith:
putbackobstuff(context);
return;
isrightkey:
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showseconduse(context);
- context.data.word(19) = 220;
- context.data.word(21) = 0;
- context.data.word(23) = 104;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
- context.al = context.data.byte(66);
- context.data.byte(187) = context.al;
+ context.data.word(kWatchingtime) = 220;
+ context.data.word(kReeltowatch) = 0;
+ context.data.word(kEndwatchreel) = 104;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
+ context.al = context.data.byte(kRoomafterdream);
+ context.data.byte(kNewlocation) = context.al;
return;
}
@@ -11803,63 +11803,63 @@ void chewy(Context & context) {
showfirstuse(context);
getanyad(context);
context.es.byte(context.bx+2) = 255;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void useladder(Context & context) {
showfirstuse(context);
- context._sub(context.data.byte(147), 11);
+ context._sub(context.data.byte(kMapx), 11);
findroominloc(context);
- context.data.byte(132) = 6;
- context.data.byte(134) = 6;
- context.data.byte(474) = 0;
- context.data.byte(477) = 0;
- context.data.byte(476) = 0;
+ context.data.byte(kFacing) = 6;
+ context.data.byte(kTurntoface) = 6;
+ context.data.byte(kManspath) = 0;
+ context.data.byte(kDestination) = 0;
+ context.data.byte(kFinaldest) = 0;
findxyfrompath(context);
- context.data.byte(186) = 1;
- context.data.byte(102) = 1;
+ context.data.byte(kResetmanxy) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void useladderb(Context & context) {
showfirstuse(context);
- context._add(context.data.byte(147), 11);
+ context._add(context.data.byte(kMapx), 11);
findroominloc(context);
- context.data.byte(132) = 2;
- context.data.byte(134) = 2;
- context.data.byte(474) = 1;
- context.data.byte(477) = 1;
- context.data.byte(476) = 1;
+ context.data.byte(kFacing) = 2;
+ context.data.byte(kTurntoface) = 2;
+ context.data.byte(kManspath) = 1;
+ context.data.byte(kDestination) = 1;
+ context.data.byte(kFinaldest) = 1;
findxyfrompath(context);
- context.data.byte(186) = 1;
- context.data.byte(102) = 1;
+ context.data.byte(kResetmanxy) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void slabdoora(Context & context) {
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 13;
- context._cmp(context.data.byte(65), 3);
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 13;
+ context._cmp(context.data.byte(kDreamnumber), 3);
if (!context.flags.z()) goto slabawrong;
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 60;
- context.data.word(23) = 42;
- context.data.byte(187) = 47;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 60;
+ context.data.word(kEndwatchreel) = 42;
+ context.data.byte(kNewlocation) = 47;
return;
slabawrong:
- context.data.word(19) = 40;
- context.data.word(23) = 34;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 40;
+ context.data.word(kEndwatchreel) = 34;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void slabdoorb(Context & context) {
- context._cmp(context.data.byte(65), 1);
+ context._cmp(context.data.byte(kDreamnumber), 1);
if (!context.flags.z()) goto slabbwrong;
context.al = 'S';
context.ah = 'H';
@@ -11874,120 +11874,120 @@ void slabdoorb(Context & context) {
return;
gotcrystal:
showfirstuse(context);
- context._add(context.data.byte(1), 1);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 44;
- context.data.word(19) = 60;
- context.data.word(23) = 71;
- context.data.byte(187) = 47;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 44;
+ context.data.word(kWatchingtime) = 60;
+ context.data.word(kEndwatchreel) = 71;
+ context.data.byte(kNewlocation) = 47;
return;
slabbwrong:
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 44;
- context.data.word(19) = 40;
- context.data.word(23) = 63;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 44;
+ context.data.word(kWatchingtime) = 40;
+ context.data.word(kEndwatchreel) = 63;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void slabdoord(Context & context) {
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 75;
- context._cmp(context.data.byte(65), 0);
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 75;
+ context._cmp(context.data.byte(kDreamnumber), 0);
if (!context.flags.z()) goto slabcwrong;
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 60;
- context.data.word(23) = 102;
- context.data.byte(187) = 47;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 60;
+ context.data.word(kEndwatchreel) = 102;
+ context.data.byte(kNewlocation) = 47;
return;
slabcwrong:
- context.data.word(19) = 40;
- context.data.word(23) = 94;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 40;
+ context.data.word(kEndwatchreel) = 94;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void slabdoorc(Context & context) {
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 108;
- context._cmp(context.data.byte(65), 4);
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 108;
+ context._cmp(context.data.byte(kDreamnumber), 4);
if (!context.flags.z()) goto slabdwrong;
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 60;
- context.data.word(23) = 135;
- context.data.byte(187) = 47;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 60;
+ context.data.word(kEndwatchreel) = 135;
+ context.data.byte(kNewlocation) = 47;
return;
slabdwrong:
- context.data.word(19) = 40;
- context.data.word(23) = 127;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 40;
+ context.data.word(kEndwatchreel) = 127;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void slabdoore(Context & context) {
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 141;
- context._cmp(context.data.byte(65), 5);
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 141;
+ context._cmp(context.data.byte(kDreamnumber), 5);
if (!context.flags.z()) goto slabewrong;
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 60;
- context.data.word(23) = 168;
- context.data.byte(187) = 47;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 60;
+ context.data.word(kEndwatchreel) = 168;
+ context.data.byte(kNewlocation) = 47;
return;
slabewrong:
- context.data.word(19) = 40;
- context.data.word(23) = 160;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 40;
+ context.data.word(kEndwatchreel) = 160;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void slabdoorf(Context & context) {
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(21) = 171;
- context._cmp(context.data.byte(65), 2);
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kReeltowatch) = 171;
+ context._cmp(context.data.byte(kDreamnumber), 2);
if (!context.flags.z()) goto slabfwrong;
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 60;
- context.data.word(23) = 197;
- context.data.byte(187) = 47;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 60;
+ context.data.word(kEndwatchreel) = 197;
+ context.data.byte(kNewlocation) = 47;
return;
slabfwrong:
- context.data.word(19) = 40;
- context.data.word(23) = 189;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 40;
+ context.data.word(kEndwatchreel) = 189;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void useslab(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto slabwith;
withwhat(context);
return;
slabwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'J';
context.ch = 'E';
context.dl = 'W';
@@ -12000,10 +12000,10 @@ slabwith:
putbackobstuff(context);
return;
nextslab:
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+2) = 0;
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
@@ -12015,26 +12015,26 @@ nextslab:
if (!context.flags.z()) goto notlastslab;
context.al = 0;
turnpathon(context);
- context.data.word(19) = 22;
- context.data.word(21) = 35;
- context.data.word(23) = 48;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 22;
+ context.data.word(kReeltowatch) = 35;
+ context.data.word(kEndwatchreel) = 48;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
notlastslab:
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showfirstuse(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void usecart(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto cartwith;
withwhat(context);
return;
cartwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'R';
context.ch = 'O';
context.dl = 'C';
@@ -12047,31 +12047,31 @@ cartwith:
putbackobstuff(context);
return;
nextcart:
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+2) = 0;
- context.al = context.data.byte(98);
+ context.al = context.data.byte(kCommand);
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
context._add(context.al, 1);
placesetobject(context);
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
context.al = 17;
playchannel1(context);
showfirstuse(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void useclearbox(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto clearboxwith;
withwhat(context);
return;
clearboxwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'R';
context.ch = 'A';
context.dl = 'I';
@@ -12084,57 +12084,57 @@ clearboxwith:
putbackobstuff(context);
return;
openbox:
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showfirstuse(context);
- context.data.word(19) = 80;
- context.data.word(21) = 67;
- context.data.word(23) = 105;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 80;
+ context.data.word(kReeltowatch) = 67;
+ context.data.word(kEndwatchreel) = 105;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void usecoveredbox(Context & context) {
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showfirstuse(context);
- context.data.word(19) = 50;
- context.data.word(21) = 41;
- context.data.word(23) = 66;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 50;
+ context.data.word(kReeltowatch) = 41;
+ context.data.word(kEndwatchreel) = 66;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void userailing(Context & context) {
showfirstuse(context);
- context.data.word(19) = 80;
- context.data.word(21) = 0;
- context.data.word(23) = 30;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
- context.data.byte(55) = 4;
+ context.data.word(kWatchingtime) = 80;
+ context.data.word(kReeltowatch) = 0;
+ context.data.word(kEndwatchreel) = 30;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kMandead) = 4;
return;
}
void useopenbox(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto openboxwith;
withwhat(context);
return;
openboxwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
context.dh = 'F';
compare(context);
if (context.flags.z()) goto destoryopenbox;
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'P';
@@ -12144,21 +12144,21 @@ openboxwith:
showfirstuse(context);
return;
destoryopenbox:
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
context.cx = 300;
context.al = 37;
showpuztext(context);
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+15) = 'E'-'A';
- context.data.word(19) = 140;
- context.data.word(21) = 105;
- context.data.word(23) = 181;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 140;
+ context.data.word(kReeltowatch) = 105;
+ context.data.word(kEndwatchreel) = 181;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
context.al = 4;
turnpathon(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
openboxwrong:
context.cx = 300;
@@ -12169,11 +12169,11 @@ openboxwrong:
}
void wearwatch(Context & context) {
- context._cmp(context.data.byte(2), 1);
+ context._cmp(context.data.byte(kWatchon), 1);
if (context.flags.z()) goto wearingwatch;
showfirstuse(context);
- context.data.byte(2) = 1;
- context.data.byte(102) = 1;
+ context.data.byte(kWatchon) = 1;
+ context.data.byte(kGetback) = 1;
getanyad(context);
makeworn(context);
return;
@@ -12184,11 +12184,11 @@ wearingwatch:
}
void wearshades(Context & context) {
- context._cmp(context.data.byte(3), 1);
+ context._cmp(context.data.byte(kShadeson), 1);
if (context.flags.z()) goto wearingshades;
- context.data.byte(3) = 1;
+ context.data.byte(kShadeson) = 1;
showfirstuse(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
getanyad(context);
makeworn(context);
return;
@@ -12199,17 +12199,17 @@ wearingshades:
}
void sitdowninbar(Context & context) {
- context._cmp(context.data.byte(31), -1);
+ context._cmp(context.data.byte(kWatchmode), -1);
if (!context.flags.z()) goto satdown;
showfirstuse(context);
- context.data.word(19) = 50;
- context.data.word(21) = 55;
- context.data.word(23) = 71;
- context.data.word(27) = 73;
- context.data.word(29) = 83;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 50;
+ context.data.word(kReeltowatch) = 55;
+ context.data.word(kEndwatchreel) = 71;
+ context.data.word(kReeltohold) = 73;
+ context.data.word(kEndofholdreel) = 83;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
satdown:
showseconduse(context);
@@ -12219,23 +12219,23 @@ satdown:
void usechurchhole(Context & context) {
showfirstuse(context);
- context.data.byte(102) = 1;
- context.data.word(19) = 28;
- context.data.word(21) = 13;
- context.data.word(23) = 26;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.byte(kGetback) = 1;
+ context.data.word(kWatchingtime) = 28;
+ context.data.word(kReeltowatch) = 13;
+ context.data.word(kEndwatchreel) = 26;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
return;
}
void usehole(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto holewith;
withwhat(context);
return;
holewith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'H';
context.ch = 'N';
context.dl = 'D';
@@ -12251,11 +12251,11 @@ righthand:
showfirstuse(context);
context.al = 86;
removesetobject(context);
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+2) = 255;
- context.data.byte(46) = 1;
- context.data.byte(102) = 1;
+ context.data.byte(kCanmovealtar) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12274,43 +12274,43 @@ void usealtar(Context & context) {
findexobject(context);
context._cmp(context.al, 114);
if (context.flags.z()) goto thingsonaltar;
- context._cmp(context.data.byte(46), 1);
+ context._cmp(context.data.byte(kCanmovealtar), 1);
if (context.flags.z()) goto movealtar;
context.cx = 300;
context.al = 23;
showpuztext(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
movealtar:
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showseconduse(context);
- context.data.word(19) = 160;
- context.data.word(21) = 81;
- context.data.word(23) = 174;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
+ context.data.word(kWatchingtime) = 160;
+ context.data.word(kReeltowatch) = 81;
+ context.data.word(kEndwatchreel) = 174;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
context.al = 47;
context.bl = 52;
context.bh = 76;
context.cx = 32;
context.dx = 98;
setuptimeduse(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
thingsonaltar:
showfirstuse(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void opentvdoor(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto tvdoorwith;
withwhat(context);
return;
tvdoorwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'U';
context.ch = 'L';
context.dl = 'O';
@@ -12324,8 +12324,8 @@ tvdoorwith:
return;
keyontv:
showfirstuse(context);
- context.data.byte(36) = 0;
- context.data.byte(102) = 1;
+ context.data.byte(kLockstatus) = 0;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12333,7 +12333,7 @@ void usedryer(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12343,7 +12343,7 @@ void openlouis(Context & context) {
context.cl = 3;
context.ch = 8;
entercode(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12362,17 +12362,17 @@ void openyourneighbour(Context & context) {
context.cl = 255;
context.ch = 255;
entercode(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void usewindow(Context & context) {
- context._cmp(context.data.byte(474), 6);
+ context._cmp(context.data.byte(kManspath), 6);
if (!context.flags.z()) goto notonbalc;
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showfirstuse(context);
- context.data.byte(187) = 29;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 29;
+ context.data.byte(kGetback) = 1;
return;
notonbalc:
showseconduse(context);
@@ -12396,19 +12396,19 @@ void usebalcony(Context & context) {
turnpathoff(context);
context.al = 5;
turnpathoff(context);
- context._add(context.data.byte(1), 1);
- context.data.byte(474) = 6;
- context.data.byte(477) = 6;
- context.data.byte(476) = 6;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.byte(kManspath) = 6;
+ context.data.byte(kDestination) = 6;
+ context.data.byte(kFinaldest) = 6;
findxyfrompath(context);
switchryanoff(context);
- context.data.byte(186) = 1;
- context.data.word(19) = 30*2;
- context.data.word(21) = 183;
- context.data.word(23) = 212;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.byte(kResetmanxy) = 1;
+ context.data.word(kWatchingtime) = 30*2;
+ context.data.word(kReeltowatch) = 183;
+ context.data.word(kEndwatchreel) = 212;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12418,7 +12418,7 @@ void openryan(Context & context) {
context.cl = 0;
context.ch = 6;
entercode(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12428,7 +12428,7 @@ void openpoolboss(Context & context) {
context.cl = 2;
context.ch = 2;
entercode(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12438,7 +12438,7 @@ void openeden(Context & context) {
context.cl = 6;
context.ch = 5;
entercode(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12448,7 +12448,7 @@ void opensarters(Context & context) {
context.cl = 3;
context.ch = 3;
entercode(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12476,13 +12476,13 @@ void drawitall(Context & context) {
}
void openhoteldoor(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto hoteldoorwith;
withwhat(context);
return;
hoteldoorwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
@@ -12498,19 +12498,19 @@ keyonhotel1:
context.al = 16;
playchannel1(context);
showfirstuse(context);
- context.data.byte(36) = 0;
- context.data.byte(102) = 1;
+ context.data.byte(kLockstatus) = 0;
+ context.data.byte(kGetback) = 1;
return;
}
void openhoteldoor2(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto hoteldoorwith2;
withwhat(context);
return;
hoteldoorwith2:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
@@ -12531,13 +12531,13 @@ keyonhotel2:
}
void grafittidoor(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto grafwith;
withwhat(context);
return;
grafwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'A';
context.ch = 'P';
context.dl = 'E';
@@ -12556,16 +12556,16 @@ dograf:
}
void trapdoor(Context & context) {
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
showfirstuse(context);
switchryanoff(context);
- context.data.word(19) = 20*2;
- context.data.word(21) = 181;
- context.data.word(23) = 197;
- context.data.byte(187) = 26;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 20*2;
+ context.data.word(kReeltowatch) = 181;
+ context.data.word(kEndwatchreel) = 197;
+ context.data.byte(kNewlocation) = 26;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12573,10 +12573,10 @@ void callhotellift(Context & context) {
context.al = 12;
playchannel1(context);
showfirstuse(context);
- context.data.byte(38) = 8;
- context.data.byte(102) = 1;
- context.data.byte(477) = 5;
- context.data.byte(476) = 5;
+ context.data.byte(kCounttoopen) = 8;
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kDestination) = 5;
+ context.data.byte(kFinaldest) = 5;
autosetwalk(context);
context.al = 4;
turnpathon(context);
@@ -12585,19 +12585,19 @@ void callhotellift(Context & context) {
void calledenslift(Context & context) {
showfirstuse(context);
- context.data.byte(38) = 8;
- context.data.byte(102) = 1;
+ context.data.byte(kCounttoopen) = 8;
+ context.data.byte(kGetback) = 1;
context.al = 2;
turnpathon(context);
return;
}
void calledensdlift(Context & context) {
- context._cmp(context.data.byte(34), 1);
+ context._cmp(context.data.byte(kLiftflag), 1);
if (context.flags.z()) goto edensdhere;
showfirstuse(context);
- context.data.byte(38) = 8;
- context.data.byte(102) = 1;
+ context.data.byte(kCounttoopen) = 8;
+ context.data.byte(kGetback) = 1;
context.al = 2;
turnpathon(context);
return;
@@ -12608,13 +12608,13 @@ edensdhere:
}
void usepoolreader(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto poolwith;
withwhat(context);
return;
poolwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'M';
context.ch = 'E';
context.dl = 'M';
@@ -12627,7 +12627,7 @@ poolwith:
putbackobstuff(context);
return;
openpool:
- context._cmp(context.data.byte(47), 1);
+ context._cmp(context.data.byte(kTalkedtoattendant), 1);
if (context.flags.z()) goto canopenpool;
showseconduse(context);
putbackobstuff(context);
@@ -12636,19 +12636,19 @@ canopenpool:
context.al = 17;
playchannel1(context);
showfirstuse(context);
- context.data.byte(38) = 6;
- context.data.byte(102) = 1;
+ context.data.byte(kCounttoopen) = 6;
+ context.data.byte(kGetback) = 1;
return;
}
void uselighter(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotlighterwith;
withwhat(context);
return;
gotlighterwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'S';
context.ch = 'M';
context.dl = 'K';
@@ -12662,10 +12662,10 @@ cigarette:
context.cx = 300;
context.al = 9;
showpuztext(context);
- context.al = context.data.byte(94);
+ context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+2) = 255;
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -12681,13 +12681,13 @@ void showseconduse(Context & context) {
}
void usecardreader1(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotreader1with;
withwhat(context);
return;
gotreader1with:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12700,9 +12700,9 @@ gotreader1with:
putbackobstuff(context);
return;
correctcard:
- context._cmp(context.data.byte(48), 0);
+ context._cmp(context.data.byte(kTalkedtosparky), 0);
if (context.flags.z()) goto notyet;
- context._cmp(context.data.word(14), 0);
+ context._cmp(context.data.word(kCard1money), 0);
if (context.flags.z()) goto getscash;
context.cx = 300;
context.al = 17;
@@ -12715,9 +12715,9 @@ getscash:
context.cx = 300;
context.al = 18;
showpuztext(context);
- context._add(context.data.byte(1), 1);
- context.data.word(14) = 12432;
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kCard1money) = 12432;
+ context.data.byte(kGetback) = 1;
return;
notyet:
showfirstuse(context);
@@ -12726,13 +12726,13 @@ notyet:
}
void usecardreader2(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotreader2with;
withwhat(context);
return;
gotreader2with:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12745,11 +12745,11 @@ gotreader2with:
putbackobstuff(context);
return;
correctcard2:
- context._cmp(context.data.byte(49), 0);
+ context._cmp(context.data.byte(kTalkedtoboss), 0);
if (context.flags.z()) goto notyetboss;
- context._cmp(context.data.word(14), 0);
+ context._cmp(context.data.word(kCard1money), 0);
if (context.flags.z()) goto nocash;
- context._cmp(context.data.byte(45), 2);
+ context._cmp(context.data.byte(kGunpassflag), 2);
if (context.flags.z()) goto alreadygotnew;
context.al = 18;
playchannel1(context);
@@ -12758,10 +12758,10 @@ correctcard2:
showpuztext(context);
context.al = 94;
placesetobject(context);
- context.data.byte(45) = 1;
- context._sub(context.data.word(14), 2000);
- context._add(context.data.byte(1), 1);
- context.data.byte(102) = 1;
+ context.data.byte(kGunpassflag) = 1;
+ context._sub(context.data.word(kCard1money), 2000);
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.byte(kGetback) = 1;
return;
nocash:
context.cx = 300;
@@ -12782,13 +12782,13 @@ notyetboss:
}
void usecardreader3(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotreader3with;
withwhat(context);
return;
gotreader3with:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'S';
context.dl = 'H';
@@ -12801,19 +12801,19 @@ gotreader3with:
putbackobstuff(context);
return;
rightcard:
- context._cmp(context.data.byte(50), 0);
+ context._cmp(context.data.byte(kTalkedtorecep), 0);
if (context.flags.z()) goto notyetrecep;
- context._cmp(context.data.byte(51), 0);
+ context._cmp(context.data.byte(kCardpassflag), 0);
if (!context.flags.z()) goto alreadyusedit;
context.al = 16;
playchannel1(context);
context.cx = 300;
context.al = 25;
showpuztext(context);
- context._add(context.data.byte(1), 1);
- context._sub(context.data.word(14), 8300);
- context.data.byte(51) = 1;
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context._sub(context.data.word(kCard1money), 8300);
+ context.data.byte(kCardpassflag) = 1;
+ context.data.byte(kGetback) = 1;
return;
alreadyusedit:
context.cx = 300;
@@ -12836,11 +12836,11 @@ void usecashcard(Context & context) {
showman(context);
context.di = 114;
context.bx = 120-3;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 39;
context.ah = 0;
showframe(context);
- context.ax = context.data.word(14);
+ context.ax = context.data.word(kCard1money);
moneypoke(context);
getobtextstart(context);
nextcolon(context);
@@ -12855,7 +12855,7 @@ void usecashcard(Context & context) {
context.bx = 155;
context.es = context.cs;
context.si = 3385;
- context.data.word(69) = 91*2+75;
+ context.data.word(kCharshift) = 91*2+75;
context.al = 0;
context.ah = 0;
context.dl = 240;
@@ -12864,12 +12864,12 @@ void usecashcard(Context & context) {
context.bx = 155;
context.es = context.cs;
context.si = 3390;
- context.data.word(69) = 91*2+85;
+ context.data.word(kCharshift) = 91*2+85;
context.al = 0;
context.ah = 0;
context.dl = 240;
printdirect(context);
- context.data.word(69) = 0;
+ context.data.word(kCharshift) = 0;
worktoscreenm(context);
context.cx = 400;
hangonp(context);
@@ -12880,13 +12880,13 @@ void usecashcard(Context & context) {
}
void lookatcard(Context & context) {
- context.data.byte(130) = 1;
+ context.data.byte(kManisoffscreen) = 1;
getridofreels(context);
loadkeypad(context);
createpanel2(context);
context.di = 160;
context.bx = 80;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 42;
context.ah = 128;
showframe(context);
@@ -12908,7 +12908,7 @@ void lookatcard(Context & context) {
createpanel2(context);
context.di = 160;
context.bx = 80;
- context.ds = context.data.word(456);
+ context.ds = context.data.word(kTempgraphics);
context.al = 42;
context.ah = 128;
showframe(context);
@@ -12923,7 +12923,7 @@ void lookatcard(Context & context) {
worktoscreenm(context);
context.cx = 200;
hangonw(context);
- context.data.byte(130) = 0;
+ context.data.byte(kManisoffscreen) = 0;
getridoftemp(context);
restorereels(context);
putbackobstuff(context);
@@ -12970,31 +12970,31 @@ numberpoke3:
}
void usecontrol(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotcontrolwith;
withwhat(context);
return;
gotcontrolwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'K';
context.ch = 'E';
context.dl = 'Y';
context.dh = 'A';
compare(context);
if (context.flags.z()) goto rightkey;
- context._cmp(context.data.byte(183), 21);
+ context._cmp(context.data.byte(kReallocation), 21);
if (!context.flags.z()) goto balls;
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'K';
context.ch = 'N';
context.dl = 'F';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto jimmycontrols;
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13008,26 +13008,26 @@ balls:
rightkey:
context.al = 16;
playchannel1(context);
- context._cmp(context.data.byte(8), 21);
+ context._cmp(context.data.byte(kLocation), 21);
if (context.flags.z()) goto goingdown;
context.cx = 300;
context.al = 0;
showpuztext(context);
- context.data.byte(187) = 21;
- context.data.byte(39) = 8;
- context.data.byte(38) = 0;
- context.data.word(19) = 80;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 21;
+ context.data.byte(kCounttoclose) = 8;
+ context.data.byte(kCounttoopen) = 0;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kGetback) = 1;
return;
goingdown:
context.cx = 300;
context.al = 3;
showpuztext(context);
- context.data.byte(187) = 30;
- context.data.byte(39) = 8;
- context.data.byte(38) = 0;
- context.data.word(19) = 80;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 30;
+ context.data.byte(kCounttoclose) = 8;
+ context.data.byte(kCounttoopen) = 0;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kGetback) = 1;
return;
jimmycontrols:
context.al = 50;
@@ -13047,41 +13047,41 @@ jimmycontrols:
context.cx = 300;
context.al = 10;
showpuztext(context);
- context._add(context.data.byte(1), 1);
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.byte(kGetback) = 1;
return;
axeoncontrols:
context.cx = 300;
context.al = 16;
showpuztext(context);
- context._add(context.data.byte(1), 1);
+ context._add(context.data.byte(kProgresspoints), 1);
putbackobstuff(context);
return;
}
void usehatch(Context & context) {
showfirstuse(context);
- context.data.byte(187) = 40;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 40;
+ context.data.byte(kGetback) = 1;
return;
}
void usewire(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotwirewith;
withwhat(context);
return;
gotwirewith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'K';
context.ch = 'N';
context.dl = 'F';
context.dh = 'E';
compare(context);
if (context.flags.z()) goto wireknife;
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13107,8 +13107,8 @@ wireknife:
context.cx = 300;
context.al = 11;
showpuztext(context);
- context._add(context.data.byte(1), 1);
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.byte(kGetback) = 1;
return;
}
@@ -13124,21 +13124,21 @@ void usehandle(Context & context) {
context.cx = 300;
context.al = 12;
showpuztext(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
havecutwire:
context.cx = 300;
context.al = 13;
showpuztext(context);
- context.data.byte(187) = 22;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 22;
+ context.data.byte(kGetback) = 1;
return;
}
void useelevator1(Context & context) {
showfirstuse(context);
selectlocation(context);
- context.data.byte(102) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -13154,47 +13154,47 @@ void showfirstuse(Context & context) {
void useelevator3(Context & context) {
showfirstuse(context);
- context.data.byte(39) = 20;
- context.data.byte(187) = 34;
- context.data.word(21) = 46;
- context.data.word(23) = 63;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.word(19) = 80;
- context.data.byte(102) = 1;
+ context.data.byte(kCounttoclose) = 20;
+ context.data.byte(kNewlocation) = 34;
+ context.data.word(kReeltowatch) = 46;
+ context.data.word(kEndwatchreel) = 63;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kGetback) = 1;
return;
}
void useelevator4(Context & context) {
showfirstuse(context);
- context.data.word(21) = 0;
- context.data.word(23) = 11;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(39) = 20;
- context.data.word(19) = 80;
- context.data.byte(102) = 1;
- context.data.byte(187) = 24;
+ context.data.word(kReeltowatch) = 0;
+ context.data.word(kEndwatchreel) = 11;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kCounttoclose) = 20;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kGetback) = 1;
+ context.data.byte(kNewlocation) = 24;
return;
}
void useelevator2(Context & context) {
- context._cmp(context.data.byte(8), 23);
+ context._cmp(context.data.byte(kLocation), 23);
if (context.flags.z()) goto inpoolhall;
showfirstuse(context);
- context.data.byte(187) = 23;
- context.data.byte(39) = 20;
- context.data.byte(38) = 0;
- context.data.word(19) = 80;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 23;
+ context.data.byte(kCounttoclose) = 20;
+ context.data.byte(kCounttoopen) = 0;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kGetback) = 1;
return;
inpoolhall:
showfirstuse(context);
- context.data.byte(187) = 31;
- context.data.byte(39) = 20;
- context.data.byte(38) = 0;
- context.data.word(19) = 80;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 31;
+ context.data.byte(kCounttoclose) = 20;
+ context.data.byte(kCounttoopen) = 0;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -13203,20 +13203,20 @@ void useelevator5(Context & context) {
placesetobject(context);
context.al = 0;
removesetobject(context);
- context.data.byte(187) = 20;
- context.data.word(19) = 80;
- context.data.byte(34) = 1;
- context.data.byte(39) = 8;
- context.data.byte(102) = 1;
+ context.data.byte(kNewlocation) = 20;
+ context.data.word(kWatchingtime) = 80;
+ context.data.byte(kLiftflag) = 1;
+ context.data.byte(kCounttoclose) = 8;
+ context.data.byte(kGetback) = 1;
return;
}
void usekey(Context & context) {
- context._cmp(context.data.byte(8), 5);
+ context._cmp(context.data.byte(kLocation), 5);
if (context.flags.z()) goto usekey1;
- context._cmp(context.data.byte(8), 30);
+ context._cmp(context.data.byte(kLocation), 30);
if (context.flags.z()) goto usekey1;
- context._cmp(context.data.byte(8), 21);
+ context._cmp(context.data.byte(kLocation), 21);
if (context.flags.z()) goto usekey2;
context.cx = 200;
context.al = 1;
@@ -13224,25 +13224,25 @@ void usekey(Context & context) {
putbackobstuff(context);
return;
usekey1:
- context._cmp(context.data.byte(147), 22);
+ context._cmp(context.data.byte(kMapx), 22);
if (!context.flags.z()) goto wrongroom1;
- context._cmp(context.data.byte(148), 10);
+ context._cmp(context.data.byte(kMapy), 10);
if (!context.flags.z()) goto wrongroom1;
context.cx = 300;
context.al = 0;
showpuztext(context);
- context.data.byte(39) = 100;
- context.data.byte(102) = 1;
+ context.data.byte(kCounttoclose) = 100;
+ context.data.byte(kGetback) = 1;
return;
usekey2:
- context._cmp(context.data.byte(147), 11);
+ context._cmp(context.data.byte(kMapx), 11);
if (!context.flags.z()) goto wrongroom1;
- context._cmp(context.data.byte(148), 10);
+ context._cmp(context.data.byte(kMapy), 10);
if (!context.flags.z()) goto wrongroom1;
context.cx = 300;
context.al = 3;
showpuztext(context);
- context.data.byte(187) = 30;
+ context.data.byte(kNewlocation) = 30;
context.al = 2;
fadescreendown(context);
showfirstuse(context);
@@ -13257,7 +13257,7 @@ wrongroom1:
}
void usestereo(Context & context) {
- context._cmp(context.data.byte(8), 0);
+ context._cmp(context.data.byte(kLocation), 0);
if (context.flags.z()) goto stereook;
context.cx = 400;
context.al = 4;
@@ -13265,9 +13265,9 @@ void usestereo(Context & context) {
putbackobstuff(context);
return;
stereook:
- context._cmp(context.data.byte(147), 11);
+ context._cmp(context.data.byte(kMapx), 11);
if (!context.flags.z()) goto stereonotok;
- context._cmp(context.data.byte(148), 0);
+ context._cmp(context.data.byte(kMapy), 0);
if (context.flags.z()) goto stereook2;
stereonotok:
context.cx = 400;
@@ -13314,8 +13314,8 @@ stereoon:
}
void usecooker(Context & context) {
- context.al = context.data.byte(98);
- context.ah = context.data.byte(101);
+ context.al = context.data.byte(kCommand);
+ context.ah = context.data.byte(kObjecttype);
checkinside(context);
context._cmp(context.cl, 114);
if (!context.flags.z()) goto foodinside;
@@ -13329,14 +13329,14 @@ foodinside:
}
void useaxe(Context & context) {
- context._cmp(context.data.byte(183), 22);
+ context._cmp(context.data.byte(kReallocation), 22);
if (!context.flags.z()) goto notinpool;
- context._cmp(context.data.byte(148), 10);
+ context._cmp(context.data.byte(kMapy), 10);
if (context.flags.z()) goto axeondoor;
showseconduse(context);
- context._add(context.data.byte(1), 1);
- context.data.byte(64) = 2;
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.byte(kLastweapon) = 2;
+ context.data.byte(kGetback) = 1;
removeobfrominv(context);
return;
notinpool:
@@ -13347,25 +13347,25 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 46*2;
- context.data.word(21) = 31;
- context.data.word(23) = 77;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 46*2;
+ context.data.word(kReeltowatch) = 31;
+ context.data.word(kEndwatchreel) = 77;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
return;
}
void useelvdoor(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotdoorwith;
withwhat(context);
return;
gotdoorwith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'A';
context.ch = 'X';
context.dl = 'E';
@@ -13381,13 +13381,13 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.data.byte(1), 1);
- context.data.word(19) = 46*2;
- context.data.word(21) = 31;
- context.data.word(23) = 77;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
+ context.data.word(kWatchingtime) = 46*2;
+ context.data.word(kReeltowatch) = 31;
+ context.data.word(kEndwatchreel) = 77;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
@@ -13396,8 +13396,8 @@ void withwhat(Context & context) {
showpanel(context);
showman(context);
showexit(context);
- context.al = context.data.byte(98);
- context.ah = context.data.byte(101);
+ context.al = context.data.byte(kCommand);
+ context.ah = context.data.byte(kObjecttype);
context.es = context.cs;
context.di = 5674;
copyname(context);
@@ -13407,7 +13407,7 @@ void withwhat(Context & context) {
context.al = 63;
context.ah = 2;
printmessage2(context);
- context.di = context.data.word(82);
+ context.di = context.data.word(kLastxpos);
context._add(context.di, 5);
context.bx = 21;
context.es = context.cs;
@@ -13416,7 +13416,7 @@ void withwhat(Context & context) {
context.al = 0;
context.ah = 0;
printdirect(context);
- context.di = context.data.word(82);
+ context.di = context.data.word(kLastxpos);
context._add(context.di, 5);
context.bx = 21;
context.dl = 200;
@@ -13424,12 +13424,12 @@ void withwhat(Context & context) {
context.ah = 3;
printmessage2(context);
fillryan(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- context.data.byte(103) = 2;
+ context.data.byte(kInvopen) = 2;
return;
}
@@ -13441,21 +13441,21 @@ void selectob(Context & context) {
blank(context);
return;
canselectob:
- context.data.byte(94) = context.al;
- context.data.byte(95) = context.ah;
- context._cmp(context.ax, context.data.word(92));
+ context.data.byte(kWithobject) = context.al;
+ context.data.byte(kWithtype) = context.ah;
+ context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto diffsub3;
- context._cmp(context.data.byte(99), 221);
+ context._cmp(context.data.byte(kCommandtype), 221);
if (context.flags.z()) goto alreadyselob;
- context.data.byte(99) = 221;
+ context.data.byte(kCommandtype) = 221;
diffsub3:
- context.data.word(92) = context.ax;
+ context.data.word(kOldsubject) = context.ax;
context.bx = context.ax;
context.al = 0;
commandwithob(context);
alreadyselob:
- context.ax = context.data.word(200);
- context._cmp(context.ax, context.data.word(210));
+ context.ax = context.data.word(kMousebutton);
+ context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto notselob;
context._and(context.ax, 1);
if (!context.flags.z()) goto doselob;
@@ -13463,7 +13463,7 @@ notselob:
return;
doselob:
delpointer(context);
- context.data.byte(103) = 0;
+ context.data.byte(kInvopen) = 0;
useroutine(context);
return;
}
@@ -13490,7 +13490,7 @@ void findsetobject(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.data.word(426);
+ context.es = context.data.word(kSetdat);
context.bx = 0;
context.dl = 0;
findsetloop:
@@ -13518,7 +13518,7 @@ void findexobject(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.bx = 0+2080+30000;
context.dl = 0;
findexloop:
@@ -13546,7 +13546,7 @@ void isryanholding(Context & context) {
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.bx = 0+2080+30000;
context.dl = 0;
searchinv:
@@ -13574,7 +13574,7 @@ nofindininv:
}
void checkinside(Context & context) {
- context.es = context.data.word(396);
+ context.es = context.data.word(kExtras);
context.bx = 0+2080+30000;
context.cl = 0;
insideloop:
@@ -13620,7 +13620,7 @@ void putbackobstuff(Context & context) {
obpicture(context);
describeob(context);
undertextline(context);
- context.data.byte(99) = 255;
+ context.data.byte(kCommandtype) = 255;
readmouse(context);
showpointer(context);
worktoscreen(context);
@@ -13655,7 +13655,7 @@ void findpuztext(Context & context) {
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
- context.es = context.data.word(452);
+ context.es = context.data.word(kPuzzletext);
context.ax = context.es.word(context.si);
context._add(context.ax, 66*2);
context.si = context.ax;
@@ -13725,8 +13725,8 @@ void removefreeobject(Context & context) {
void findormake(Context & context) {
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
context.push(context.ax);
- context.es = context.data.word(410);
- context.ah = context.data.byte(183);
+ context.es = context.data.word(kBuffers);
+ context.ah = context.data.byte(kReallocation);
changeloop:
context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto haventfound;
@@ -13749,17 +13749,17 @@ haventfound:
}
void switchryanon(Context & context) {
- context.data.byte(62) = 255;
+ context.data.byte(kRyanon) = 255;
return;
}
void switchryanoff(Context & context) {
- context.data.byte(62) = 1;
+ context.data.byte(kRyanon) = 1;
return;
}
void setallchanges(Context & context) {
- context.es = context.data.word(410);
+ context.es = context.data.word(kBuffers);
context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
setallloop:
context.ax = context.es.word(context.bx);
@@ -13767,7 +13767,7 @@ setallloop:
if (context.flags.z()) goto endsetloop;
context.cx = context.es.word(context.bx+2);
context._add(context.bx, 4);
- context._cmp(context.ah, context.data.byte(183));
+ context._cmp(context.ah, context.data.byte(kReallocation));
if (!context.flags.z()) goto setallloop;
context.push(context.es);
context.push(context.bx);
@@ -13799,7 +13799,7 @@ path:
context.bx = context.pop();
context._add(context.bx, context.ax);
context._add(context.bx, 0);
- context.es = context.data.word(448);
+ context.es = context.data.word(kReels);
context.cx = context.pop();
context.es.byte(context.bx+6) = context.cl;
nopath:
@@ -13822,20 +13822,20 @@ beenpickedup:
}
void autoappear(Context & context) {
- context._cmp(context.data.byte(8), 32);
+ context._cmp(context.data.byte(kLocation), 32);
if (!context.flags.z()) goto notinalley;
context.al = 5;
resetlocation(context);
context.al = 10;
setlocation(context);
- context.data.byte(182) = 10;
+ context.data.byte(kDestpos) = 10;
return;
notinalley:
- context._cmp(context.data.byte(183), 24);
+ context._cmp(context.data.byte(kReallocation), 24);
if (!context.flags.z()) goto notinedens;
- context._cmp(context.data.byte(41), 1);
+ context._cmp(context.data.byte(kGeneraldead), 1);
if (!context.flags.z()) goto edenspart2;
- context._add(context.data.byte(41), 1);
+ context._add(context.data.byte(kGeneraldead), 1);
context.al = 44;
placesetobject(context);
context.al = 18;
@@ -13854,7 +13854,7 @@ notinalley:
removesetobject(context);
return;
edenspart2:
- context._cmp(context.data.byte(42), 1);
+ context._cmp(context.data.byte(kSartaindead), 1);
if (!context.flags.z()) goto notedens2;
context.al = 44;
removesetobject(context);
@@ -13862,23 +13862,23 @@ edenspart2:
removesetobject(context);
context.al = 55;
placesetobject(context);
- context._add(context.data.byte(42), 1);
+ context._add(context.data.byte(kSartaindead), 1);
notedens2:
return;
notinedens:
- context._cmp(context.data.byte(183), 25);
+ context._cmp(context.data.byte(kReallocation), 25);
if (!context.flags.z()) goto notonsartroof;
- context.data.byte(33) = 3;
+ context.data.byte(kNewsitem) = 3;
context.al = 6;
resetlocation(context);
context.al = 11;
setlocation(context);
- context.data.byte(182) = 11;
+ context.data.byte(kDestpos) = 11;
return;
notonsartroof:
- context._cmp(context.data.byte(183), 2);
+ context._cmp(context.data.byte(kReallocation), 2);
if (!context.flags.z()) goto notinlouiss;
- context._cmp(context.data.byte(40), 0);
+ context._cmp(context.data.byte(kRockstardead), 0);
if (context.flags.z()) goto notinlouiss;
context.al = 23;
placesetobject(context);
@@ -13887,153 +13887,153 @@ notinlouiss:
}
void getundertimed(Context & context) {
- context.al = context.data.byte(334);
+ context.al = context.data.byte(kTimedy);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.data.byte(335);
+ context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
context.ch = 30;
context.cl = 240;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
multiget(context);
return;
}
void putundertimed(Context & context) {
- context.al = context.data.byte(334);
+ context.al = context.data.byte(kTimedy);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.data.byte(335);
+ context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
context.ch = 30;
context.cl = 240;
- context.ds = context.data.word(410);
+ context.ds = context.data.word(kBuffers);
context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
multiput(context);
return;
}
void dumptimedtext(Context & context) {
- context._cmp(context.data.byte(336), 1);
+ context._cmp(context.data.byte(kNeedtodumptimed), 1);
if (!context.flags.z()) goto nodumptimed;
- context.al = context.data.byte(334);
+ context.al = context.data.byte(kTimedy);
context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
- context.al = context.data.byte(335);
+ context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
context.cl = 240;
context.ch = 30;
multidump(context);
- context.data.byte(336) = 0;
+ context.data.byte(kNeedtodumptimed) = 0;
nodumptimed:
return;
}
void setuptimeduse(Context & context) {
- context._cmp(context.data.word(326), 0);
+ context._cmp(context.data.word(kTimecount), 0);
if (!context.flags.z()) goto cantsetup;
- context.data.byte(334) = context.bh;
- context.data.byte(335) = context.bl;
- context.data.word(328) = context.cx;
+ context.data.byte(kTimedy) = context.bh;
+ context.data.byte(kTimedx) = context.bl;
+ context.data.word(kCounttotimed) = context.cx;
context._add(context.dx, context.cx);
- context.data.word(326) = context.dx;
+ context.data.word(kTimecount) = context.dx;
context.bl = context.al;
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(452);
+ context.es = context.data.word(kPuzzletext);
context.cx = 66*2;
context.ax = context.es.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
- context.data.word(330) = context.es;
- context.data.word(332) = context.bx;
+ context.data.word(kTimedseg) = context.es;
+ context.data.word(kTimedoffset) = context.bx;
cantsetup:
return;
}
void setuptimedtemp(Context & context) {
- context._cmp(context.data.word(326), 0);
+ context._cmp(context.data.word(kTimecount), 0);
if (!context.flags.z()) goto cantsetup2;
- context.data.byte(334) = context.bh;
- context.data.byte(335) = context.bl;
- context.data.word(328) = context.cx;
+ context.data.byte(kTimedy) = context.bh;
+ context.data.byte(kTimedx) = context.bl;
+ context.data.word(kCounttotimed) = context.cx;
context._add(context.dx, context.cx);
- context.data.word(326) = context.dx;
+ context.data.word(kTimecount) = context.dx;
context.bl = context.al;
context.bh = 0;
context._add(context.bx, context.bx);
- context.es = context.data.word(464);
+ context.es = context.data.word(kTextfile1);
context.cx = 66*2;
context.ax = context.es.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
- context.data.word(330) = context.es;
- context.data.word(332) = context.bx;
+ context.data.word(kTimedseg) = context.es;
+ context.data.word(kTimedoffset) = context.bx;
cantsetup2:
return;
}
void usetimedtext(Context & context) {
- context._cmp(context.data.word(326), 0);
+ context._cmp(context.data.word(kTimecount), 0);
if (context.flags.z()) goto notext;
- context._sub(context.data.word(326), 1);
- context._cmp(context.data.word(326), 0);
+ context._sub(context.data.word(kTimecount), 1);
+ context._cmp(context.data.word(kTimecount), 0);
if (context.flags.z()) goto deltimedtext;
- context.ax = context.data.word(326);
- context._cmp(context.ax, context.data.word(328));
+ context.ax = context.data.word(kTimecount);
+ context._cmp(context.ax, context.data.word(kCounttotimed));
if (context.flags.z()) goto firsttimed;
if (!context.flags.c()) goto notext;
goto notfirsttimed;
firsttimed:
getundertimed(context);
notfirsttimed:
- context.bl = context.data.byte(334);
+ context.bl = context.data.byte(kTimedy);
context.bh = 0;
- context.al = context.data.byte(335);
+ context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
- context.es = context.data.word(330);
- context.si = context.data.word(332);
+ context.es = context.data.word(kTimedseg);
+ context.si = context.data.word(kTimedoffset);
context.dl = 237;
context.ah = 0;
printdirect(context);
- context.data.byte(336) = 1;
+ context.data.byte(kNeedtodumptimed) = 1;
notext:
return;
deltimedtext:
putundertimed(context);
- context.data.byte(336) = 1;
+ context.data.byte(kNeedtodumptimed) = 1;
return;
}
void edenscdplayer(Context & context) {
showfirstuse(context);
- context.data.word(19) = 18*2;
- context.data.word(21) = 25;
- context.data.word(23) = 42;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 18*2;
+ context.data.word(kReeltowatch) = 25;
+ context.data.word(kEndwatchreel) = 42;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
return;
}
void usewall(Context & context) {
showfirstuse(context);
- context._cmp(context.data.byte(474), 3);
+ context._cmp(context.data.byte(kManspath), 3);
if (context.flags.z()) goto gobackover;
- context.data.word(19) = 30*2;
- context.data.word(21) = 2;
- context.data.word(23) = 31;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 30*2;
+ context.data.word(kReeltowatch) = 2;
+ context.data.word(kEndwatchreel) = 31;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
context.al = 3;
turnpathon(context);
context.al = 4;
@@ -14046,19 +14046,19 @@ void usewall(Context & context) {
turnpathoff(context);
context.al = 5;
turnpathoff(context);
- context.data.byte(474) = 3;
- context.data.byte(476) = 3;
+ context.data.byte(kManspath) = 3;
+ context.data.byte(kFinaldest) = 3;
findxyfrompath(context);
- context.data.byte(186) = 1;
+ context.data.byte(kResetmanxy) = 1;
switchryanoff(context);
return;
gobackover:
- context.data.word(19) = 30*2;
- context.data.word(21) = 34;
- context.data.word(23) = 60;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
+ context.data.word(kWatchingtime) = 30*2;
+ context.data.word(kReeltowatch) = 34;
+ context.data.word(kEndwatchreel) = 60;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
context.al = 3;
turnpathoff(context);
context.al = 4;
@@ -14071,22 +14071,22 @@ gobackover:
turnpathon(context);
context.al = 5;
turnpathon(context);
- context.data.byte(474) = 5;
- context.data.byte(476) = 5;
+ context.data.byte(kManspath) = 5;
+ context.data.byte(kFinaldest) = 5;
findxyfrompath(context);
- context.data.byte(186) = 1;
+ context.data.byte(kResetmanxy) = 1;
switchryanoff(context);
return;
}
void usechurchgate(Context & context) {
- context._cmp(context.data.byte(94), 255);
+ context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gatewith;
withwhat(context);
return;
gatewith:
- context.al = context.data.byte(94);
- context.ah = context.data.byte(95);
+ context.al = context.data.byte(kWithobject);
+ context.ah = context.data.byte(kWithtype);
context.cl = 'C';
context.ch = 'U';
context.dl = 'T';
@@ -14100,16 +14100,16 @@ gatewith:
return;
cutgate:
showfirstuse(context);
- context.data.word(19) = 64*2;
- context.data.word(21) = 4;
- context.data.word(23) = 70;
- context.data.byte(26) = 1;
- context.data.byte(25) = 1;
- context.data.byte(102) = 1;
- context._add(context.data.byte(1), 1);
+ context.data.word(kWatchingtime) = 64*2;
+ context.data.word(kReeltowatch) = 4;
+ context.data.word(kEndwatchreel) = 70;
+ context.data.byte(kWatchspeed) = 1;
+ context.data.byte(kSpeedcount) = 1;
+ context.data.byte(kGetback) = 1;
+ context._add(context.data.byte(kProgresspoints), 1);
context.al = 3;
turnpathon(context);
- context._cmp(context.data.byte(43), 0);
+ context._cmp(context.data.byte(kAidedead), 0);
if (context.flags.z()) goto notopenchurch;
context.al = 2;
turnpathon(context);
@@ -14118,153 +14118,153 @@ notopenchurch:
}
void usegun(Context & context) {
- context._cmp(context.data.byte(101), 4);
+ context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto istakengun;
Commit: 07ad2efd80075c50be51d9120a5a93f6cf69cef7
https://github.com/scummvm/scummvm/commit/07ad2efd80075c50be51d9120a5a93f6cf69cef7
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:51-07:00
Commit Message:
DREAMWEB: fixed invalid register parts update
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 1def57a..45882a2 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -13,7 +13,10 @@ namespace dreamgen {
#undef random
struct Register {
- uint16 _value;
+ union {
+ uint16 _value;
+ uint8 _part[2];
+ };
inline Register(): _value() {}
inline Register& operator=(uint16 v) { _value = v; return *this; }
inline operator uint16&() { return _value; }
@@ -21,35 +24,38 @@ struct Register {
if (_value & 0x80)
_value |= 0xff00;
else
- _value &= 0xff;
+ _value &= 0x7f;
}
};
-template<int Mask, int Shift>
+template<int kIndex> //from low to high
struct RegisterPart {
- Register &_reg;
- uint8 _value;
+ uint8 &_value;
- explicit inline RegisterPart(Register ®) : _reg(reg), _value(reg._value >> Shift) {}
+ explicit inline RegisterPart(Register ®) : _value(reg._part[kIndex]) {}
inline operator uint8&() {
return _value;
}
+
inline RegisterPart& operator=(const RegisterPart& o) {
_value = o._value;
return *this;
}
+
inline RegisterPart& operator=(uint8 v) {
_value = v;
return *this;
}
- inline ~RegisterPart() {
- _reg._value = (_reg._value & ~Mask) | (_value << Shift);
- }
};
-typedef RegisterPart<0xff, 0> LowPartOfRegister;
-typedef RegisterPart<0xff00, 8> HighPartOfRegister;
+#ifdef SCUMM_LITTLE_ENDIAN
+ typedef RegisterPart<0> LowPartOfRegister;
+ typedef RegisterPart<1> HighPartOfRegister;
+#else
+ typedef RegisterPart<1> LowPartOfRegister;
+ typedef RegisterPart<0> HighPartOfRegister;
+#endif
class WordRef {
uint8 *_data;
Commit: 33bb7c3f72dcc6d3d6c1f23799976181ac1969da
https://github.com/scummvm/scummvm/commit/33bb7c3f72dcc6d3d6c1f23799976181ac1969da
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:51-07:00
Commit Message:
DREAMWEB: fixed memory deallocation
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 3493e5d..65cd2a0 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -318,7 +318,8 @@ void allocatemem(Context &context) {
}
void deallocatemem(Context &context) {
- ::error("deallocatemem");
+ debug(1, "deallocating segment %04x", (uint16)context.es);
+ context.deallocateSegment(context.es);
}
void removeemm(Context &context) {
@@ -400,16 +401,18 @@ void setsoundoff(Context &context) {
warning("setsoundoff: STUB");
}
-
-void loadsecondsample(Context &context) {
- ::error("loadsecondsample");
-}
+void readheader(Context &context);
void loadsample(Context &context) {
warning("loadsample: STUB");
openfile(context);
closefile(context);
- //readheader(context); //add exports to tasm recompiler
+}
+
+void loadsecondsample(Context &context) {
+ warning("loadsecondsample: STUB");
+ openfile(context);
+ closefile(context);
}
void loadspeech(Context &context) {
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 45882a2..0e106b9 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -6,6 +6,8 @@
#include "common/array.h"
#include "common/debug.h"
#include "common/hashmap.h"
+#include "common/list.h"
+#include "common/ptr.h"
namespace dreamgen {
@@ -111,15 +113,17 @@ struct Segment {
}
};
+typedef Common::SharedPtr<Segment> SegmentPtr;
+
class Context;
class SegmentRef {
- Context *_context;
- uint16 _value;
- Segment *_segment;
+ Context *_context;
+ uint16 _value;
+ SegmentPtr _segment;
public:
- SegmentRef(Context *ctx, uint16 value = 0, Segment *segment = 0): _context(ctx), _value(value), _segment(segment) {
+ SegmentRef(Context *ctx, uint16 value = 0, SegmentPtr segment = SegmentPtr()): _context(ctx), _value(value), _segment(segment) {
}
inline void reset(uint16 value);
@@ -188,8 +192,11 @@ struct Flags {
};
class Context {
- typedef Common::HashMap<uint16, Segment> SegmentMap;
+ typedef Common::HashMap<uint16, SegmentPtr> SegmentMap;
SegmentMap _segments;
+
+ typedef Common::List<uint16> FreeSegmentList;
+ FreeSegmentList _freeSegments;
public:
enum { kDefaultDataSegment = 0x1000, kVideoSegment = 0xa000 };
@@ -210,8 +217,9 @@ public:
inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx),
cs(this), ds(this), es(this), data(this), video(this) {
- _segments[kDefaultDataSegment] = Segment();
- _segments[kVideoSegment].data.resize(0x10000);
+ _segments[kDefaultDataSegment] = SegmentPtr(new Segment());
+ _segments[kVideoSegment] = SegmentPtr(new Segment());
+ _segments[kVideoSegment]->data.resize(0x10000);
cs.reset(kDefaultDataSegment);
ds.reset(kDefaultDataSegment);
@@ -223,15 +231,29 @@ public:
SegmentRef getSegment(uint16 value) {
SegmentMap::iterator i = _segments.find(value);
assert(i != _segments.end());
- return SegmentRef(this, value, &i->_value);
+ return SegmentRef(this, value, i->_value);
}
SegmentRef allocateSegment(uint size) {
- unsigned id = kDefaultDataSegment + _segments.size();
+ unsigned id;
+ if (_freeSegments.empty())
+ id = kDefaultDataSegment + _segments.size();
+ else {
+ id = _freeSegments.front();
+ _freeSegments.pop_front();
+ }
assert(!_segments.contains(id));
- Segment &seg = _segments[id];
- seg.data.resize(size);
- return SegmentRef(this, id, &seg);
+ SegmentPtr seg(new Segment());
+ seg->data.resize(size);
+ _segments[id] = seg;
+ return SegmentRef(this, id, seg);
+ }
+
+ void deallocateSegment(uint16 id) {
+ SegmentMap::iterator i = _segments.find(id);
+ assert(i != _segments.end());
+ _segments.erase(i);
+ _freeSegments.push_back(id);
}
inline void _cmp(uint8 a, uint8 b) {
Commit: 23736a02400c0649e50c07af87712d413cef6b83
https://github.com/scummvm/scummvm/commit/23736a02400c0649e50c07af87712d413cef6b83
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:51-07:00
Commit Message:
DREAMWEB: output equ values in log
Changed paths:
devtools/tasmrecover/tasm/cpp.py
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 0c1a4b4..53b847a 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -53,6 +53,7 @@ namespace %s {
g = self.context.get_global(name)
if isinstance(g, op.const):
value = self.expand_equ(g.value)
+ print "equ: %s -> %s" %(name, value)
elif isinstance(g, proc.proc):
if self.indirection != -1:
raise Exception("invalid proc label usage")
Commit: 25a937e1566974a0c920be8ab411c488201b8e53
https://github.com/scummvm/scummvm/commit/25a937e1566974a0c920be8ab411c488201b8e53
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:52-07:00
Commit Message:
DREAMWEB: added fadedos
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 65cd2a0..fe27f4f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -202,6 +202,23 @@ void DreamWebEngine::setGraphicsMode() {
initGraphics(320, 200, false);
}
+void DreamWebEngine::fadeDos() {
+ static const int startpal = 0+(228*13)+32+60+(32*32)+(11*10*3); //fixme: add equ to enum too
+
+ PaletteManager *palette = _system->getPaletteManager();
+ _context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
+ uint8 *dst = _context.es.ptr(startpal, 768);
+ palette->grabPalette(dst, 0, 64);
+ for(int fade = 0; fade < 64; ++fade) {
+ for(int c = 0; c < 768; ++c) { //original sources decrement 768 values -> 256 colors
+ if (dst[c]) {
+ --dst[c];
+ }
+ }
+ palette->setPalette(dst, 0, 64);
+ waitForVSync();
+ }
+}
} // End of namespace DreamWeb
@@ -485,7 +502,8 @@ void showgroup(Context &context) {
}
void fadedos(Context &context) {
- warning("fadedos: STUB");
+ vsync(context);
+ engine()->fadeDos();
}
void doshake(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index d2fc447..ed4359f 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -85,6 +85,7 @@ public:
void mouseCall(); //fill mouse pos and button state
void processEvents();
void setGraphicsMode();
+ void fadeDos();
private:
const DreamWebGameDescription *_gameDescription;
Commit: 9193f33aadae381cbb309272062cacebc50c24a7
https://github.com/scummvm/scummvm/commit/9193f33aadae381cbb309272062cacebc50c24a7
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:52-07:00
Commit Message:
DREAMWEB: replaced movsw with 2*movsb
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 0e106b9..475647b 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -421,9 +421,8 @@ public:
}
inline void _movsw() {
- es.word(di) = ds.word(si);
- di += 2;
- si += 2;
+ _movsb();
+ _movsb();
}
inline void _lodsb() {
Commit: f7a3a552f33d3f8c952e70d9d4c01ec420d220e5
https://github.com/scummvm/scummvm/commit/f7a3a552f33d3f8c952e70d9d4c01ec420d220e5
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:52-07:00
Commit Message:
DREAMWEB: fixed CF for neg instruction
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 475647b..525a4df 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -405,15 +405,17 @@ public:
}
inline void _neg(uint8 &src) {
+ flags._c = src != 0;
src = ~src;
flags.update(src);
- flags._c = flags._o = false;
+ flags._o = false;
}
inline void _neg(uint16 &src) {
+ flags._c = src != 0;
src = ~src;
flags.update(src);
- flags._c = flags._o = false;
+ flags._o = false;
}
inline void _movsb() {
Commit: 451871934571552417a6d646011c522b52c59b11
https://github.com/scummvm/scummvm/commit/451871934571552417a6d646011c522b52c59b11
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:53-07:00
Commit Message:
DREAMWEB: added 'equ' const to public header
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 53b847a..e94231f 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -113,7 +113,8 @@ namespace %s {
n = 1
while n > 0:
expr, n = re.subn(r'\b[a-zA-Z_][a-zA-Z0-9_]+\b', self.expand_equ_cb, expr)
- return expr
+ expr = re.sub(r'\b([0-9][a-fA-F0-9]*)h', '0x\\1', expr)
+ return "(%s)" %expr
def expand(self, expr, def_size = 0):
#print "EXPAND \"%s\"" %expr
@@ -545,10 +546,12 @@ namespace %s {
for k, v in self.context.get_globals().items():
if isinstance(v, op.var):
offsets.append((k.capitalize(), v.offset))
+ elif isinstance(v, op.const):
+ offsets.append((k.capitalize(), self.expand_equ(v.value))) #fixme: try to save all constants here
offsets = sorted(offsets, key=lambda t: t[1])
for o in offsets:
- offsets_decl += "\tconst static uint16 k%s = %d;\n" %o
+ offsets_decl += "\tconst static uint16 k%s = %s;\n" %o
offsets_decl += "\n"
self.hd.write(offsets_decl);
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f270ea6..a4a35eb 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -1876,7 +1876,7 @@ void rollendcredits(Context & context) {
context.si = 3*2;
context.ax = context.es.word(context.si);
context.si = context.ax;
- context._add(context.si, 66*2);
+ context._add(context.si, (66*2));
context.cx = 254;
endcredits1:
context.push(context.cx);
@@ -2429,20 +2429,20 @@ forcenext:
void clearsprites(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = 255;
- context.cx = 32*16;
+ context.cx = (32)*16;
while(--context.cx) context._stosb();
return;
}
void makesprite(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
_tmp17:
context._cmp(context.es.byte(context.bx+15), 255);
if (context.flags.z()) goto _tmp17a;
- context._add(context.bx, 32);
+ context._add(context.bx, (32));
goto _tmp17;
_tmp17a:
context.es.word(context.bx) = context.cx;
@@ -2457,7 +2457,7 @@ _tmp17a:
void delsprite(Context & context) {
context.di = context.bx;
- context.cx = 32;
+ context.cx = (32);
context.al = 255;
while(--context.cx) context._stosb();
return;
@@ -2465,11 +2465,11 @@ void delsprite(Context & context) {
void spriteupdate(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = context.data.byte(kRyanon);
context.es.byte(context.bx+31) = context.al;
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
context.cx = 16;
_tmp18:
context.push(context.cx);
@@ -2489,7 +2489,7 @@ _tmp18a:
context.cx = context.pop();
context._cmp(context.data.byte(kNowinnewroom), 1);
if (context.flags.z()) goto _tmp18b;
- context._add(context.bx, 32);
+ context._add(context.bx, (32));
if (--context.cx) goto _tmp18;
_tmp18b:
return;
@@ -2501,7 +2501,7 @@ void printsprites(Context & context) {
priorityloop:
context.push(context.cx);
context.data.byte(kPriority) = context.cl;
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
context.cx = 16;
prtspriteloop:
context.push(context.cx);
@@ -2518,7 +2518,7 @@ prtspriteloop:
skipsprite:
context.bx = context.pop();
context.cx = context.pop();
- context._add(context.bx, 32);
+ context._add(context.bx, (32));
if (--context.cx) goto prtspriteloop;
context.cx = context.pop();
context._add(context.cx, 1);
@@ -2590,7 +2590,7 @@ void checkone(Context & context) {
context._mul(context.cx);
context.si = context.ax;
context.ds = context.data.word(kBuffers);
- context._add(context.si, 0+(228*13)+32+60+(32*32));
+ context._add(context.si, (0+(228*13)+32+60+(32*32)));
context._lodsw();
context.cx = context.ax;
context._lodsb();
@@ -2983,7 +2983,7 @@ void reminders(Context & context) {
context.cl = 'H';
context.ch = 'R';
findexobject(context);
- context._cmp(context.al, 114);
+ context._cmp(context.al, (114));
if (context.flags.z()) goto forgotone;
context.ax = context.es.word(context.bx+2);
context._cmp(context.al, 4);
@@ -3015,7 +3015,7 @@ notinedenslift:
void initrain(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
context.bx = 1113;
checkmorerain:
context.al = context.cs.byte(context.bx);
@@ -3150,7 +3150,7 @@ void showrain(Context & context) {
context.ax = context.ds.word(context.si+2);
context.si = context.ax;
context._add(context.si, 2080);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
context.es = context.data.word(kBuffers);
context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
@@ -3646,7 +3646,7 @@ notnearly:
void updatepeople(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
context.data.word(kListpos) = context.di;
context.cx = 12*5;
context.al = 255;
@@ -3884,7 +3884,7 @@ void getreelstart(Context & context) {
context._mul(context.cx);
context.es = context.data.word(kReels);
context.si = context.ax;
- context._add(context.si, 0+(36*144));
+ context._add(context.si, (0+(36*144)));
return;
}
@@ -3923,7 +3923,7 @@ bigroom:
void dumpeverything(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
dumpevery1:
context.ax = context.es.word(context.bx);
context.cx = context.es.word(context.bx+2);
@@ -3951,7 +3951,7 @@ skip1:
context._add(context.bx, 5);
goto dumpevery1;
finishevery1:
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(40*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40))+(40*5);
dumpevery2:
context.ax = context.es.word(context.bx);
context.cx = context.es.word(context.bx+2);
@@ -4012,7 +4012,7 @@ void loadpalfromiff(Context & context) {
readfromfile(context);
closefile(context);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
context.ds = context.data.word(kMapstore);
context.si = 0x30;
context.cx = 768;
@@ -4049,10 +4049,10 @@ void cls(Context & context) {
}
void printundermon(Context & context) {
- context.si = (320*43)+76;
+ context.si = ((320)*43)+76;
context.di = context.si;
context.es = context.data.word(kWorkspace);
- context._add(context.si, 8*320);
+ context._add(context.si, 8*(320));
context.dx = 0x0a000;
context.ds = context.dx;
context.cx = 104;
@@ -4076,8 +4076,8 @@ finmonscroll:
context.si = context.pop();
context.di = context.pop();
context.cx = context.pop();
- context._add(context.si, 320);
- context._add(context.di, 320);
+ context._add(context.si, (320));
+ context._add(context.di, (320));
if (--context.cx) goto scrollmonloop1;
return;
}
@@ -4152,7 +4152,7 @@ void pixelcheckset(Context & context) {
getsetad(context);
context.al = context.es.byte(context.bx+17);
context.es = context.data.word(kSetframes);
- context.bx = 0;
+ context.bx = (0);
context.ah = 0;
context.cx = 6;
context._mul(context.cx);
@@ -4169,7 +4169,7 @@ void pixelcheckset(Context & context) {
context._add(context.ax, context.cx);
context._add(context.ax, context.es.word(context.bx+2));
context.bx = context.ax;
- context._add(context.bx, 0+2080);
+ context._add(context.bx, (0+2080));
context.al = context.es.byte(context.bx);
context.dl = context.al;
context.cx = context.pop();
@@ -4283,15 +4283,15 @@ cantzoom:
zoomit:
context.ax = context.data.word(kOldpointery);
context._sub(context.ax, 9);
- context.cx = 320;
+ context.cx = (320);
context._mul(context.cx);
context._add(context.ax, context.data.word(kOldpointerx));
context._sub(context.ax, 11);
context.si = context.ax;
- context.ax = 132+4;
- context.cx = 320;
+ context.ax = (132)+4;
+ context.cx = (320);
context._mul(context.cx);
- context._add(context.ax, 8+5);
+ context._add(context.ax, (8)+5);
context.di = context.ax;
context.es = context.data.word(kWorkspace);
context.ds = context.data.word(kWorkspace);
@@ -4303,10 +4303,10 @@ zoomloop2:
context._lodsb();
context.ah = context.al;
context._stosw();
- context.es.word(context.di+320-2) = context.ax;
+ context.es.word(context.di+(320)-2) = context.ax;
if (--context.cx) goto zoomloop2;
- context._add(context.si, 320-23);
- context._add(context.di, 320-46+320);
+ context._add(context.si, (320)-23);
+ context._add(context.di, (320)-46+(320));
context.cx = context.pop();
if (--context.cx) goto zoomloop;
crosshair(context);
@@ -4320,7 +4320,7 @@ void delthisone(Context & context) {
context.al = context.ah;
context.ah = 0;
context._add(context.ax, context.data.word(kMapady));
- context.bx = 320;
+ context.bx = (320);
context._mul(context.bx);
context.bx = context.pop();
context.bh = 0;
@@ -4341,7 +4341,7 @@ void delthisone(Context & context) {
context.ds = context.data.word(kMapstore);
context.dl = context.cl;
context.dh = 0;
- context.ax = 320;
+ context.ax = (320);
context._sub(context.ax, context.dx);
context._neg(context.dx);
context._add(context.dx, 22*8);
@@ -4359,7 +4359,7 @@ deloneloop:
void multiget(Context & context) {
context.ax = context.bx;
- context.bx = 320;
+ context.bx = (320);
context._mul(context.bx);
context._add(context.di, context.ax);
context.es = context.data.word(kWorkspace);
@@ -4368,7 +4368,7 @@ void multiget(Context & context) {
context._xchg(context.di, context.si);
context.al = context.cl;
context.ah = 0;
- context.dx = 320;
+ context.dx = (320);
context._sub(context.dx, context.ax);
context.al = context.cl;
context._and(context.al, 1);
@@ -4403,13 +4403,13 @@ multiloop4:
void multiput(Context & context) {
context.ax = context.bx;
- context.bx = 320;
+ context.bx = (320);
context._mul(context.bx);
context._add(context.di, context.ax);
context.es = context.data.word(kWorkspace);
context.al = context.cl;
context.ah = 0;
- context.dx = 320;
+ context.dx = (320);
context._sub(context.dx, context.ax);
context.al = context.cl;
context._and(context.al, 1);
@@ -4447,10 +4447,10 @@ void multidump(Context & context) {
context.es = context.dx;
context.ds = context.data.word(kWorkspace);
context.ax = context.bx;
- context.bx = 320;
+ context.bx = (320);
context._mul(context.bx);
context._add(context.di, context.ax);
- context.dx = 320;
+ context.dx = (320);
context.si = context.di;
context.al = context.cl;
context._and(context.al, 1);
@@ -4481,7 +4481,7 @@ oddwidth:
context.bl = context.cl;
context.bh = 0;
context._neg(context.bx);
- context._add(context.bx, 320);
+ context._add(context.bx, (320));
context.cl = context.ch;
context.ch = 0;
multiloop2:
@@ -4729,18 +4729,18 @@ void width160(Context & context) {
void doblocks(Context & context) {
context.es = context.data.word(kWorkspace);
context.ax = context.data.word(kMapady);
- context.cx = 320;
+ context.cx = (320);
context._mul(context.cx);
context.di = context.data.word(kMapadx);
context._add(context.di, context.ax);
context.al = context.data.byte(kMapy);
context.ah = 0;
- context.bx = 66;
+ context.bx = (66);
context._mul(context.bx);
context.bl = context.data.byte(kMapx);
context.bh = 0;
context._add(context.ax, context.bx);
- context.si = 0;
+ context.si = (0);
context._add(context.si, context.ax);
context.cx = 10;
loop120:
@@ -4758,7 +4758,7 @@ loop124:
if (context.flags.z()) goto zeroblock;
context.ah = context.al;
context.al = 0;
- context.si = 0+192;
+ context.si = (0+192);
context._add(context.si, context.ax);
context.bh = 14;
context.bh = 4;
@@ -4771,7 +4771,7 @@ firstbitofblock:
context._movsw();
context._movsw();
context._movsw();
- context._add(context.di, 320-16);
+ context._add(context.di, (320)-16);
context._sub(context.bh, 1);
if (!context.flags.z()) goto firstbitofblock;
context.bh = 12;
@@ -4787,7 +4787,7 @@ loop125:
context.ax = 0x0dfdf;
context._stosw();
context._stosw();
- context._add(context.di, 320-20);
+ context._add(context.di, (320)-20);
context._sub(context.bh, 1);
if (!context.flags.z()) goto loop125;
context._add(context.di, 4);
@@ -4800,7 +4800,7 @@ loop125:
context._stosw();
context._stosw();
context._stosw();
- context._add(context.di, 320-16);
+ context._add(context.di, (320)-16);
context._stosw();
context._stosw();
context._stosw();
@@ -4809,7 +4809,7 @@ loop125:
context._stosw();
context._stosw();
context._stosw();
- context._add(context.di, 320-16);
+ context._add(context.di, (320)-16);
context._stosw();
context._stosw();
context._stosw();
@@ -4818,7 +4818,7 @@ loop125:
context._stosw();
context._stosw();
context._stosw();
- context._add(context.di, 320-16);
+ context._add(context.di, (320)-16);
context._stosw();
context._stosw();
context._stosw();
@@ -4833,10 +4833,10 @@ zeroblock:
context.cx = context.pop();
context._add(context.di, 16);
if (--context.cx) goto loop124;
- context._add(context.si, 66-11);
+ context._add(context.si, (66)-11);
context.cx = context.pop();
context.di = context.pop();
- context._add(context.di, 320*16);
+ context._add(context.di, (320)*16);
if (--context.cx) goto loop120;
return;
}
@@ -4905,7 +4905,7 @@ notdiffdest:
notprintlist:
context._test(context.ah, 4);
if (context.flags.z()) goto notflippedx;
- context.dx = 320;
+ context.dx = (320);
context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutfx(context);
@@ -4914,7 +4914,7 @@ notprintlist:
notflippedx:
context._test(context.ah, 2);
if (context.flags.z()) goto notnomask;
- context.dx = 320;
+ context.dx = (320);
context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutnm(context);
@@ -4923,14 +4923,14 @@ notflippedx:
notnomask:
context._test(context.ah, 32);
if (context.flags.z()) goto noeffects;
- context.dx = 320;
+ context.dx = (320);
context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutbh(context);
context.cx = context.pop();
return;
noeffects:
- context.dx = 320;
+ context.dx = (320);
context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutv(context);
@@ -5106,9 +5106,9 @@ void transferinv(Context & context) {
context.cx = 6;
context._mul(context.cx);
context.es = context.data.word(kExtras);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
- context._add(context.di, 0+2080);
+ context._add(context.di, (0+2080));
context.push(context.bx);
context.al = context.data.byte(kItemtotran);
context.ah = 0;
@@ -5119,9 +5119,9 @@ void transferinv(Context & context) {
context.cx = 6;
context._mul(context.cx);
context.ds = context.data.word(kFreeframes);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
- context.si = 0+2080;
+ context.si = (0+2080);
context.al = context.ds.byte(context.bx);
context.ah = 0;
context.cl = context.ds.byte(context.bx+1);
@@ -5154,9 +5154,9 @@ void transfermap(Context & context) {
context.cx = 6;
context._mul(context.cx);
context.es = context.data.word(kExtras);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
- context._add(context.di, 0+2080);
+ context._add(context.di, (0+2080));
context.push(context.bx);
context.al = context.data.byte(kItemtotran);
context.ah = 0;
@@ -5166,9 +5166,9 @@ void transfermap(Context & context) {
context.cx = 6;
context._mul(context.cx);
context.ds = context.data.word(kFreeframes);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
- context.si = 0+2080;
+ context.si = (0+2080);
context.al = context.ds.byte(context.bx);
context.ah = 0;
context.cl = context.ds.byte(context.bx+1);
@@ -5198,7 +5198,7 @@ void dofade(Context & context) {
context.al = context.data.byte(kColourpos);
context.ah = 0;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
context._add(context.si, context.ax);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
@@ -5215,7 +5215,7 @@ finishfade:
void clearendpal(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 0;
while(--context.cx) context._stosb();
@@ -5241,11 +5241,11 @@ void fadescreenup(Context & context) {
void fadetowhite(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 63;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.al = 0;
context._stosb();
context._stosb();
@@ -5260,11 +5260,11 @@ void fadetowhite(Context & context) {
void fadefromwhite(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768;
context.al = 63;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.al = 0;
context._stosb();
context._stosb();
@@ -5292,7 +5292,7 @@ void fadescreendownhalf(Context & context) {
paltoendpal(context);
context.cx = 768;
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
halfend:
context.al = context.es.byte(context.bx);
context._shr(context.al, 1);
@@ -5301,12 +5301,12 @@ halfend:
if (--context.cx) goto halfend;
context.ds = context.data.word(kBuffers);
context.es = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(56*3);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(56*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(56*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(56*3);
context.cx = 3*5;
while(--context.cx) context._movsb();
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(77*3);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(77*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(77*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(77*3);
context.cx = 3*2;
while(--context.cx) context._movsb();
context.data.byte(kFadedirection) = 1;
@@ -5348,7 +5348,7 @@ void fadescreendowns(Context & context) {
void clearstartpal(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 256;
wholeloop1:
context.ax = 0;
@@ -5430,7 +5430,7 @@ void rollem(Context & context) {
context.si = 49*2;
context.ax = context.es.word(context.si);
context.si = context.ax;
- context._add(context.si, 66*2);
+ context._add(context.si, (66*2));
context.cx = 80;
endcredits21:
context.push(context.cx);
@@ -5511,8 +5511,8 @@ void fadecalculation(Context & context) {
if (context.flags.z()) goto nomorefading;
context.bl = context.data.byte(kFadecount);
context.es = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
fadecolloop:
context.al = context.es.byte(context.si);
@@ -5541,8 +5541,8 @@ nomorefading:
void greyscalesum(Context & context) {
context.es = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.cx = 256;
greysumloop1:
context.push(context.cx);
@@ -5597,8 +5597,8 @@ noaddb:
void paltostartpal(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(--context.cx) context._movsw();
return;
@@ -5607,8 +5607,8 @@ void paltostartpal(Context & context) {
void endpaltostart(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(--context.cx) context._movsw();
return;
@@ -5617,8 +5617,8 @@ void endpaltostart(Context & context) {
void startpaltoend(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(--context.cx) context._movsw();
return;
@@ -5627,8 +5627,8 @@ void startpaltoend(Context & context) {
void paltoendpal(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768;
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
while(--context.cx) context._movsw();
return;
@@ -5637,8 +5637,8 @@ void paltoendpal(Context & context) {
void allpalette(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
while(--context.cx) context._movsw();
dumpcurrent(context);
@@ -5646,7 +5646,7 @@ void allpalette(Context & context) {
}
void dumpcurrent(Context & context) {
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.ds = context.data.word(kBuffers);
vsync(context);
context.al = 0;
@@ -5663,11 +5663,11 @@ void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
context.cx = 3*8;
context.ax = 0;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5683,11 +5683,11 @@ void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
context.cx = 3*8;
context.ax = 0;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5703,11 +5703,11 @@ void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(231*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
context.cx = 3*8;
context.ax = 0;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5726,11 +5726,11 @@ void fadeupmonfirst(Context & context) {
void fadeupyellows(Context & context) {
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(231*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
context.cx = 3*8;
context.ax = 0;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+(246*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5745,15 +5745,15 @@ void fadeupyellows(Context & context) {
void initialmoncols(Context & context) {
paltostartpal(context);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
context.cx = 3*9;
context.ax = 0;
while(--context.cx) context._stosb();
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+(246*3);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+(230*3);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
context.al = 230;
context.cx = 18;
showgroup(context);
@@ -5805,7 +5805,7 @@ nextmonkspeak:
context._add(context.si, context.si);
context.es = context.data.word(kTextfile1);
context.ax = context.es.word(context.si);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
nextbit:
context.di = 36;
@@ -6591,16 +6591,16 @@ nomod:
void fillryan(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32;
+ context.di = (0+(228*13)+32);
findallryan(context);
- context.si = 0+(228*13)+32;
+ context.si = (0+(228*13)+32);
context.al = context.data.byte(kRyanpage);
context.ah = 0;
context.cx = 20;
context._mul(context.cx);
context._add(context.si, context.ax);
- context.di = 80;
- context.bx = 58;
+ context.di = (80);
+ context.bx = (58);
context.cx = 2;
ryanloop2:
context.push(context.cx);
@@ -6621,12 +6621,12 @@ ryanloop1:
context.bx = context.pop();
context.di = context.pop();
context.cx = context.pop();
- context._add(context.di, 44);
+ context._add(context.di, (44));
if (--context.cx) goto ryanloop1;
context.bx = context.pop();
context.di = context.pop();
context.cx = context.pop();
- context._add(context.bx, 44);
+ context._add(context.bx, (44));
if (--context.cx) goto ryanloop2;
showryanpage(context);
return;
@@ -6642,11 +6642,11 @@ lessthanapage:
context.al = 1;
context.push(context.ax);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13);
+ context.di = (0+(228*13));
findallopen(context);
- context.si = 0+(228*13);
- context.di = 80;
- context.bx = 58+96;
+ context.si = (0+(228*13));
+ context.di = (80);
+ context.bx = (58)+96;
context.cx = context.pop();
openloop1:
context.push(context.cx);
@@ -6665,7 +6665,7 @@ nextopenslot:
context.bx = context.pop();
context.di = context.pop();
context.cx = context.pop();
- context._add(context.di, 44);
+ context._add(context.di, (44));
context._add(context.cl, 1);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto openloop1;
@@ -6681,7 +6681,7 @@ void findallryan(Context & context) {
context.di = context.pop();
context.cl = 4;
context.ds = context.data.word(kExtras);
- context.bx = 0+2080+30000;
+ context.bx = (0+2080+30000);
context.ch = 0;
findryanloop:
context._cmp(context.ds.byte(context.bx+2), context.cl);
@@ -6700,7 +6700,7 @@ findryanloop:
notinryaninv:
context._add(context.bx, 16);
context._add(context.ch, 1);
- context._cmp(context.ch, 114);
+ context._cmp(context.ch, (114));
if (!context.flags.z()) goto findryanloop;
return;
}
@@ -6714,7 +6714,7 @@ void findallopen(Context & context) {
context.cl = context.data.byte(kOpenedob);
context.dl = context.data.byte(kOpenedtype);
context.ds = context.data.word(kExtras);
- context.bx = 0+2080+30000;
+ context.bx = (0+2080+30000);
context.ch = 0;
findopen1:
context._cmp(context.ds.byte(context.bx+3), context.cl);
@@ -6739,7 +6739,7 @@ noloccheck:
findopen2:
context._add(context.bx, 16);
context._add(context.ch, 1);
- context._cmp(context.ch, 114);
+ context._cmp(context.ch, (114));
if (!context.flags.z()) goto findopen1;
context.cl = context.data.byte(kOpenedob);
context.dl = context.data.byte(kOpenedtype);
@@ -6952,7 +6952,7 @@ noincryan:
return;
doincryan:
context.ax = context.data.word(kMousex);
- context._sub(context.ax, 80+167);
+ context._sub(context.ax, (80)+167);
context.data.byte(kRyanpage) = -1;
findnewpage:
context._add(context.data.byte(kRyanpage), 1);
@@ -6970,8 +6970,8 @@ findnewpage:
void openinv(Context & context) {
context.data.byte(kInvopen) = 1;
context.al = 61;
- context.di = 80;
- context.bx = 58-10;
+ context.di = (80);
+ context.bx = (58)-10;
context.dl = 240;
printmessage(context);
fillryan(context);
@@ -6981,8 +6981,8 @@ void openinv(Context & context) {
void showryanpage(Context & context) {
context.ds = context.data.word(kIcons1);
- context.di = 80+167;
- context.bx = 58-12;
+ context.di = (80)+167;
+ context.bx = (58)-12;
context.al = 12;
context.ah = 0;
showframe(context);
@@ -6994,9 +6994,9 @@ void showryanpage(Context & context) {
context.cx = 18;
context._mul(context.cx);
context.ds = context.data.word(kIcons1);
- context.di = 80+167;
+ context.di = (80)+167;
context._add(context.di, context.ax);
- context.bx = 58-12;
+ context.bx = (58)-12;
context.ax = context.pop();
context.ah = 0;
showframe(context);
@@ -7008,14 +7008,14 @@ void openob(Context & context) {
context.ah = context.data.byte(kOpenedtype);
context.di = 5674;
copyname(context);
- context.di = 80;
- context.bx = 58+86;
+ context.di = (80);
+ context.bx = (58)+86;
context.al = 62;
context.dl = 240;
printmessage(context);
context.di = context.data.word(kLastxpos);
context._add(context.di, 5);
- context.bx = 58+86;
+ context.bx = (58)+86;
context.es = context.cs;
context.si = 5674;
context.dl = 220;
@@ -7026,9 +7026,9 @@ void openob(Context & context) {
getopenedsize(context);
context.al = context.ah;
context.ah = 0;
- context.cx = 44;
+ context.cx = (44);
context._mul(context.cx);
- context._add(context.ax, 80);
+ context._add(context.ax, (80));
context.bx = 2588;
context.cs.word(context.bx) = context.ax;
return;
@@ -7191,18 +7191,18 @@ notlouiscard:
void getobtextstart(Context & context) {
context.es = context.data.word(kFreedesc);
- context.si = 0;
- context.cx = 0+(82*2);
+ context.si = (0);
+ context.cx = (0+(82*2));
context._cmp(context.data.byte(kObjecttype), 2);
if (context.flags.z()) goto describe;
context.es = context.data.word(kSetdesc);
- context.si = 0;
- context.cx = 0+(130*2);
+ context.si = (0);
+ context.cx = (0+(130*2));
context._cmp(context.data.byte(kObjecttype), 1);
if (context.flags.z()) goto describe;
context.es = context.data.word(kExtras);
- context.si = 0+2080+30000+(16*114);
- context.cx = 0+2080+30000+(16*114)+((114+2)*2);
+ context.si = (0+2080+30000+(16*114));
+ context.cx = (0+2080+30000+(16*114)+((114+2)*2));
describe:
context.al = context.data.byte(kCommand);
context.ah = 0;
@@ -7702,8 +7702,8 @@ void deletetaken(Context & context) {
context.es = context.data.word(kFreedat);
context.ah = context.data.byte(kReallocation);
context.ds = context.data.word(kExtras);
- context.si = 0+2080+30000;
- context.cx = 114;
+ context.si = (0+2080+30000);
+ context.cx = (114);
takenloop:
context.al = context.ds.byte(context.si+11);
context._cmp(context.al, context.ah);
@@ -7787,7 +7787,7 @@ void getexad(Context & context) {
context._mul(context.bx);
context.bx = context.ax;
context.es = context.data.word(kExtras);
- context._add(context.bx, 0+2080+30000);
+ context._add(context.bx, (0+2080+30000));
return;
}
@@ -7871,18 +7871,18 @@ void getsetad(Context & context) {
void findinvpos(Context & context) {
context.cx = context.data.word(kMousex);
- context._sub(context.cx, 80);
+ context._sub(context.cx, (80));
context.bx = -1;
findinv1:
context._add(context.bx, 1);
- context._sub(context.cx, 44);
+ context._sub(context.cx, (44));
if (!context.flags.c()) goto findinv1;
context.cx = context.data.word(kMousey);
- context._sub(context.cx, 58);
+ context._sub(context.cx, (58));
context._sub(context.bx, 5);
findinv2:
context._add(context.bx, 5);
- context._sub(context.cx, 44);
+ context._sub(context.cx, (44));
if (!context.flags.c()) goto findinv2;
context.al = context.data.byte(kRyanpage);
context.ah = 0;
@@ -7893,23 +7893,23 @@ findinv2:
context.data.byte(kLastinvpos) = context.al;
context._add(context.bx, context.bx);
context.es = context.data.word(kBuffers);
- context._add(context.bx, 0+(228*13)+32);
+ context._add(context.bx, (0+(228*13)+32));
return;
}
void findopenpos(Context & context) {
context.cx = context.data.word(kMousex);
- context._sub(context.cx, 80);
+ context._sub(context.cx, (80));
context.bx = -1;
findopenp1:
context._add(context.bx, 1);
- context._sub(context.cx, 44);
+ context._sub(context.cx, (44));
if (!context.flags.c()) goto findopenp1;
context.al = context.bl;
context.data.byte(kLastinvpos) = context.al;
context._add(context.bx, context.bx);
context.es = context.data.word(kBuffers);
- context._add(context.bx, 0+(228*13));
+ context._add(context.bx, (0+(228*13)));
return;
}
@@ -8486,18 +8486,18 @@ void transfertext(Context & context) {
context.al = context.data.byte(kExpos);
context.ah = 0;
context._add(context.ax, context.ax);
- context.bx = 0+2080+30000+(16*114);
+ context.bx = (0+2080+30000+(16*114));
context._add(context.bx, context.ax);
context.di = context.data.word(kExtextpos);
context.es.word(context.bx) = context.di;
- context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
+ context._add(context.di, (0+2080+30000+(16*114)+((114+2)*2)));
context.al = context.data.byte(kItemtotran);
context.ah = 0;
context._add(context.ax, context.ax);
context.ds = context.data.word(kFreedesc);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
- context.si = 0+(82*2);
+ context.si = (0+(82*2));
context.ax = context.ds.word(context.bx);
context._add(context.si, context.ax);
moretext:
@@ -8512,13 +8512,13 @@ moretext:
void getexpos(Context & context) {
context.es = context.data.word(kExtras);
context.al = 0;
- context.di = 0+2080+30000;
+ context.di = (0+2080+30000);
tryanotherex:
context._cmp(context.es.byte(context.di+2), 255);
if (context.flags.z()) goto foundnewex;
context._add(context.di, 16);
context._add(context.al, 1);
- context._cmp(context.al, 114);
+ context._cmp(context.al, (114));
if (!context.flags.z()) goto tryanotherex;
foundnewex:
context.data.byte(kExpos) = context.al;
@@ -8528,7 +8528,7 @@ foundnewex:
void purgealocation(Context & context) {
context.push(context.ax);
context.es = context.data.word(kExtras);
- context.di = 0+2080+30000;
+ context.di = (0+2080+30000);
context.bx = context.pop();
context.cx = 0;
purgeloc:
@@ -8548,7 +8548,7 @@ purgeloc:
dontpurge:
context._add(context.di, 16);
context._add(context.cx, 1);
- context._cmp(context.cx, 114);
+ context._cmp(context.cx, (114));
if (!context.flags.z()) goto purgeloc;
return;
}
@@ -8557,14 +8557,14 @@ void emergencypurge(Context & context) {
checkpurgeagain:
context.ax = context.data.word(kExframepos);
context._add(context.ax, 4000);
- context._cmp(context.ax, 30000);
+ context._cmp(context.ax, (30000));
if (context.flags.c()) goto notnearframeend;
purgeanitem(context);
goto checkpurgeagain;
notnearframeend:
context.ax = context.data.word(kExtextpos);
context._add(context.ax, 400);
- context._cmp(context.ax, 18000);
+ context._cmp(context.ax, (18000));
if (context.flags.c()) goto notneartextend;
purgeanitem(context);
goto checkpurgeagain;
@@ -8574,7 +8574,7 @@ notneartextend:
void purgeanitem(Context & context) {
context.es = context.data.word(kExtras);
- context.di = 0+2080+30000;
+ context.di = (0+2080+30000);
context.bl = context.data.byte(kReallocation);
context.cx = 0;
lookforpurge:
@@ -8593,9 +8593,9 @@ iscup:
cantpurge:
context._add(context.di, 16);
context._add(context.cx, 1);
- context._cmp(context.cx, 114);
+ context._cmp(context.cx, (114));
if (!context.flags.z()) goto lookforpurge;
- context.di = 0+2080+30000;
+ context.di = (0+2080+30000);
context.bl = context.data.byte(kReallocation);
context.cx = 0;
lookforpurge2:
@@ -8609,7 +8609,7 @@ lookforpurge2:
cantpurge2:
context._add(context.di, 16);
context._add(context.cx, 1);
- context._cmp(context.cx, 114);
+ context._cmp(context.cx, (114));
if (!context.flags.z()) goto lookforpurge2;
return;
}
@@ -8638,7 +8638,7 @@ void deleteexobject(Context & context) {
context.bx = context.pop();
context.bh = context.bl;
context.bl = 4;
- context.di = 0+2080+30000;
+ context.di = (0+2080+30000);
context.cx = 0;
deleteconts:
context._cmp(context.es.word(context.di+2), context.bx);
@@ -8653,13 +8653,13 @@ deleteconts:
notinsideex:
context._add(context.di, 16);
context._add(context.cx, 1);
- context._cmp(context.cx, 114);
+ context._cmp(context.cx, (114));
if (!context.flags.z()) goto deleteconts;
return;
}
void deleteexframe(Context & context) {
- context.di = 0;
+ context.di = (0);
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.di, context.ax);
@@ -8672,8 +8672,8 @@ void deleteexframe(Context & context) {
context._mul(context.cx);
context.si = context.es.word(context.di+2);
context.push(context.si);
- context._add(context.si, 0+2080);
- context.cx = 30000;
+ context._add(context.si, (0+2080));
+ context.cx = (30000);
context._sub(context.cx, context.es.word(context.di+2));
context.di = context.si;
context._add(context.si, context.ax);
@@ -8683,8 +8683,8 @@ void deleteexframe(Context & context) {
context.bx = context.pop();
context._sub(context.data.word(kExframepos), context.bx);
context.si = context.pop();
- context.cx = 114*3;
- context.di = 0;
+ context.cx = (114)*3;
+ context.di = (0);
shuffleadsdown:
context.ax = context.es.word(context.di+2);
context._cmp(context.ax, context.si);
@@ -8698,15 +8698,15 @@ beforethisone:
}
void deleteextext(Context & context) {
- context.di = 0+2080+30000+(16*114);
+ context.di = (0+2080+30000+(16*114));
context.ah = 0;
context._add(context.ax, context.ax);
context._add(context.di, context.ax);
context.ax = context.es.word(context.di);
context.si = context.ax;
context.di = context.ax;
- context._add(context.si, 0+2080+30000+(16*114)+((114+2)*2));
- context._add(context.di, 0+2080+30000+(16*114)+((114+2)*2));
+ context._add(context.si, (0+2080+30000+(16*114)+((114+2)*2)));
+ context._add(context.di, (0+2080+30000+(16*114)+((114+2)*2)));
context.ax = 0;
findlenextext:
context.cl = context.es.byte(context.si);
@@ -8714,9 +8714,9 @@ findlenextext:
context._add(context.si, 1);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto findlenextext;
- context.cx = 18000;
+ context.cx = (18000);
context.bx = context.si;
- context._sub(context.bx, 0+2080+30000+(16*114)+((114+2)*2));
+ context._sub(context.bx, (0+2080+30000+(16*114)+((114+2)*2)));
context.push(context.bx);
context.push(context.ax);
context._sub(context.cx, context.bx);
@@ -8724,8 +8724,8 @@ findlenextext:
context.bx = context.pop();
context._sub(context.data.word(kExtextpos), context.bx);
context.si = context.pop();
- context.cx = 114;
- context.di = 0+2080+30000+(16*114);
+ context.cx = (114);
+ context.di = (0+2080+30000+(16*114));
shuffletextads:
context.ax = context.es.word(context.di);
context._cmp(context.ax, context.si);
@@ -8742,7 +8742,7 @@ void blockget(Context & context) {
context.ah = context.al;
context.al = 0;
context.ds = context.data.word(kBackdrop);
- context.si = 0+192;
+ context.si = (0+192);
context._add(context.si, context.ax);
return;
}
@@ -8794,7 +8794,7 @@ void calcmapad(Context & context) {
void getdimension(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32);
+ context.bx = (0+(228*13)+32+60+(32*32));
context.ch = 0;
dimloop1:
addalong(context);
@@ -8803,7 +8803,7 @@ dimloop1:
context._add(context.ch, 1);
goto dimloop1;
finishdim1:
- context.bx = 0+(228*13)+32+60+(32*32);
+ context.bx = (0+(228*13)+32+60+(32*32));
context.cl = 0;
dimloop2:
context.push(context.bx);
@@ -8815,7 +8815,7 @@ dimloop2:
context._add(context.bx, 3);
goto dimloop2;
finishdim2:
- context.bx = 0+(228*13)+32+60+(32*32)+(11*3*9);
+ context.bx = (0+(228*13)+32+60+(32*32))+(11*3*9);
context.dh = 10;
dimloop3:
context.push(context.bx);
@@ -8827,7 +8827,7 @@ dimloop3:
context._sub(context.bx, 11*3);
goto dimloop3;
finishdim3:
- context.bx = 0+(228*13)+32+60+(32*32)+(3*10);
+ context.bx = (0+(228*13)+32+60+(32*32))+(3*10);
context.dl = 11;
dimloop4:
context.push(context.bx);
@@ -8904,15 +8904,15 @@ gotlength:
void drawflags(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32);
+ context.di = (0+(228*13)+32+60+(32*32));
context.al = context.data.byte(kMapy);
context.ah = 0;
- context.cx = 66;
+ context.cx = (66);
context._mul(context.cx);
context.bl = context.data.byte(kMapx);
context.bh = 0;
context._add(context.ax, context.bx);
- context.si = 0;
+ context.si = (0);
context._add(context.si, context.ax);
context.cx = 10;
_tmp28:
@@ -8926,14 +8926,14 @@ _tmp28a:
context.push(context.ax);
context.ah = 0;
context._add(context.ax, context.ax);
- context.si = 0;
+ context.si = (0);
context._add(context.si, context.ax);
context._movsw();
context.ax = context.pop();
context._stosb();
context.si = context.pop();
if (--context.cx) goto _tmp28a;
- context._add(context.si, 66-11);
+ context._add(context.si, (66)-11);
context.cx = context.pop();
if (--context.cx) goto _tmp28;
return;
@@ -8943,7 +8943,7 @@ void eraseoldobs(Context & context) {
context._cmp(context.data.byte(kNewobs), 0);
if (context.flags.z()) goto donterase;
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
context.cx = 16;
oberase:
context.push(context.cx);
@@ -8953,12 +8953,12 @@ oberase:
if (context.flags.z()) goto notthisob;
context.di = context.bx;
context.al = 255;
- context.cx = 32;
+ context.cx = (32);
while(--context.cx) context._stosb();
notthisob:
context.bx = context.pop();
context.cx = context.pop();
- context._add(context.bx, 32);
+ context._add(context.bx, (32));
if (--context.cx) goto oberase;
donterase:
return;
@@ -8966,7 +8966,7 @@ donterase:
void showallobs(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
context.data.word(kListpos) = context.bx;
context.di = context.bx;
context.cx = 128*5;
@@ -8974,9 +8974,9 @@ void showallobs(Context & context) {
while(--context.cx) context._stosb();
context.es = context.data.word(kSetframes);
context.data.word(kFrsegment) = context.es;
- context.ax = 0;
+ context.ax = (0);
context.data.word(kDataad) = context.ax;
- context.ax = 0+2080;
+ context.ax = (0+2080);
context.data.word(kFramesad) = context.ax;
context.data.byte(kCurrentob) = 0;
context.ds = context.data.word(kSetdat);
@@ -9060,7 +9060,7 @@ void makebackob(Context & context) {
context.si = context.ax;
context.cx = 49520;
context.dx = context.data.word(kSetframes);
- context.di = 0;
+ context.di = (0);
makesprite(context);
context.ax = context.pop();
context.es.word(context.bx+20) = context.ax;
@@ -9081,17 +9081,17 @@ nomake:
void showallfree(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
context.data.word(kListpos) = context.bx;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
context.cx = 80*5;
context.al = 255;
while(--context.cx) context._stosb();
context.es = context.data.word(kFreeframes);
context.data.word(kFrsegment) = context.es;
- context.ax = 0;
+ context.ax = (0);
context.data.word(kDataad) = context.ax;
- context.ax = 0+2080;
+ context.ax = (0+2080);
context.data.word(kFramesad) = context.ax;
context.al = 0;
context.data.byte(kCurrentfree) = context.al;
@@ -9160,20 +9160,20 @@ finfree:
void showallex(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
context.data.word(kListpos) = context.bx;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
context.cx = 100*5;
context.al = 255;
while(--context.cx) context._stosb();
context.es = context.data.word(kExtras);
context.data.word(kFrsegment) = context.es;
- context.ax = 0;
+ context.ax = (0);
context.data.word(kDataad) = context.ax;
- context.ax = 0+2080;
+ context.ax = (0+2080);
context.data.word(kFramesad) = context.ax;
context.data.byte(kCurrentex) = 0;
- context.si = 0+2080+30000+2;
+ context.si = (0+2080+30000)+2;
context.cx = 0;
exloop:
context.push(context.cx);
@@ -9412,9 +9412,9 @@ void dolook(Context & context) {
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(kRoomdesc);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.si = context.es.word(context.bx);
- context._add(context.si, 0+(38*2));
+ context._add(context.si, (0+(38*2)));
findnextcolon(context);
context.di = 66;
context._cmp(context.data.byte(kReallocation), 50);
@@ -9545,7 +9545,7 @@ void getpersframe(Context & context) {
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(kPeople);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.ax = context.es.word(context.bx);
return;
}
@@ -9579,8 +9579,8 @@ void getpersontext(Context & context) {
context._mul(context.cx);
context.si = context.ax;
context.es = context.data.word(kPeople);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
+ context._add(context.si, (0+24));
+ context.cx = (0+24+(1026*2));
context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
@@ -9632,8 +9632,8 @@ watchtalk:
context._add(context.ax, context.ax);
context.si = context.ax;
context.es = context.data.word(kPeople);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
+ context._add(context.si, (0+24));
+ context.cx = (0+24+(1026*2));
context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
@@ -9672,8 +9672,8 @@ watchtalk:
context._add(context.ax, context.ax);
context.si = context.ax;
context.es = context.data.word(kPeople);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
+ context._add(context.si, (0+24));
+ context.cx = (0+24+(1026*2));
context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
@@ -9920,7 +9920,7 @@ alreadyinfo:
context._add(context.bx, context.bx);
context.es = context.data.word(kTraveltext);
context.si = context.es.word(context.bx);
- context._add(context.si, 66*2);
+ context._add(context.si, (66*2));
findnextcolon(context);
context.di = 63;
context.bx = 84+4;
@@ -9998,7 +9998,7 @@ notinthisone:
context._add(context.bx, context.bx);
context.es = context.data.word(kTraveltext);
context.si = context.es.word(context.bx);
- context._add(context.si, 66*2);
+ context._add(context.si, (66*2));
context.di = 50;
context.bx = 20;
context.dl = 241;
@@ -10441,7 +10441,7 @@ void lookininterface(Context & context) {
findsetobject(context);
context.ah = 1;
checkinside(context);
- context._cmp(context.cl, 114);
+ context._cmp(context.cl, (114));
if (context.flags.z()) goto emptyinterface;
context.al = context.es.byte(context.bx+15);
context._add(context.al, 1);
@@ -10827,7 +10827,7 @@ dirroot:
}
void searchforfiles(Context & context) {
- context.bx = 66*2;
+ context.bx = (66*2);
directloop1:
context.al = context.es.byte(context.bx);
context._add(context.bx, 1);
@@ -10975,21 +10975,21 @@ okcom:
context.ax = context.data.word(kTextfile1);
context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
- context.si = 66*2;
+ context.si = (66*2);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
context.ax = context.data.word(kTextfile2);
context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
- context.si = 66*2;
+ context.si = (66*2);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
context.ax = context.data.word(kTextfile3);
context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
- context.si = 66*2;
+ context.si = (66*2);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile2;
@@ -11049,7 +11049,7 @@ void dirfile(Context & context) {
context.push(context.es);
context.push(context.di);
context.ds = context.data.word(kTextfile1);
- context.si = 66*2;
+ context.si = (66*2);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile;
@@ -11058,7 +11058,7 @@ void dirfile(Context & context) {
context.push(context.es);
context.push(context.di);
context.ds = context.data.word(kTextfile2);
- context.si = 66*2;
+ context.si = (66*2);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile;
@@ -11067,7 +11067,7 @@ void dirfile(Context & context) {
context.push(context.es);
context.push(context.di);
context.ds = context.data.word(kTextfile3);
- context.si = 66*2;
+ context.si = (66*2);
searchforstring(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundfile;
@@ -11323,7 +11323,7 @@ finishfile:
void monmessage(Context & context) {
context.es = context.data.word(kTextfile1);
- context.bx = 66*2;
+ context.bx = (66*2);
context.cl = context.al;
context.ch = 0;
monmessageloop:
@@ -11410,7 +11410,7 @@ void printcurs(Context & context) {
context._sub(context.bx, 3);
context.ch = 11;
context.ds = context.data.word(kBuffers);
- context.si = 0;
+ context.si = (0);
context.push(context.di);
context.push(context.bx);
multiget(context);
@@ -11460,7 +11460,7 @@ void delcurs(Context & context) {
context.push(context.bx);
context.push(context.cx);
context.ds = context.data.word(kBuffers);
- context.si = 0;
+ context.si = (0);
multiput(context);
context.cx = context.pop();
context.bx = context.pop();
@@ -12265,14 +12265,14 @@ void usealtar(Context & context) {
context.cl = 'D';
context.ch = 'A';
findexobject(context);
- context._cmp(context.al, 114);
+ context._cmp(context.al, (114));
if (context.flags.z()) goto thingsonaltar;
context.al = 'C';
context.ah = 'N';
context.cl = 'D';
context.ch = 'B';
findexobject(context);
- context._cmp(context.al, 114);
+ context._cmp(context.al, (114));
if (context.flags.z()) goto thingsonaltar;
context._cmp(context.data.byte(kCanmovealtar), 1);
if (context.flags.z()) goto movealtar;
@@ -13283,7 +13283,7 @@ stereook2:
findsetobject(context);
context.ah = 1;
checkinside(context);
- context._cmp(context.cl, 114);
+ context._cmp(context.cl, (114));
if (!context.flags.z()) goto cdinside;
context.al = 6;
context.cx = 400;
@@ -13317,7 +13317,7 @@ void usecooker(Context & context) {
context.al = context.data.byte(kCommand);
context.ah = context.data.byte(kObjecttype);
checkinside(context);
- context._cmp(context.cl, 114);
+ context._cmp(context.cl, (114));
if (!context.flags.z()) goto foodinside;
showfirstuse(context);
putbackobstuff(context);
@@ -13519,7 +13519,7 @@ void findexobject(Context & context) {
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
context.es = context.data.word(kExtras);
- context.bx = 0+2080+30000;
+ context.bx = (0+2080+30000);
context.dl = 0;
findexloop:
context._cmp(context.al, context.es.byte(context.bx+12));
@@ -13535,7 +13535,7 @@ findexloop:
nofindex:
context._add(context.bx, 16);
context._add(context.dl, 1);
- context._cmp(context.dl, 114);
+ context._cmp(context.dl, (114));
if (!context.flags.z()) goto findexloop;
context.al = context.dl;
return;
@@ -13547,7 +13547,7 @@ void isryanholding(Context & context) {
context._sub(context.cl, 'A');
context._sub(context.ch, 'A');
context.es = context.data.word(kExtras);
- context.bx = 0+2080+30000;
+ context.bx = (0+2080+30000);
context.dl = 0;
searchinv:
context._cmp(context.es.byte(context.bx+2), 4);
@@ -13561,21 +13561,21 @@ searchinv:
context._cmp(context.ch, context.es.byte(context.bx+15));
if (!context.flags.z()) goto nofindininv;
context.al = context.dl;
- context._cmp(context.al, 114);
+ context._cmp(context.al, (114));
return;
nofindininv:
context._add(context.bx, 16);
context._add(context.dl, 1);
- context._cmp(context.dl, 114);
+ context._cmp(context.dl, (114));
if (!context.flags.z()) goto searchinv;
context.al = context.dl;
- context._cmp(context.al, 114);
+ context._cmp(context.al, (114));
return;
}
void checkinside(Context & context) {
context.es = context.data.word(kExtras);
- context.bx = 0+2080+30000;
+ context.bx = (0+2080+30000);
context.cl = 0;
insideloop:
context._cmp(context.al, context.es.byte(context.bx+3));
@@ -13586,7 +13586,7 @@ insideloop:
notfoundinside:
context._add(context.bx, 16);
context._add(context.cl, 1);
- context._cmp(context.cl, 114);
+ context._cmp(context.cl, (114));
if (!context.flags.z()) goto insideloop;
return;
}
@@ -13657,7 +13657,7 @@ void findpuztext(Context & context) {
context._add(context.si, context.si);
context.es = context.data.word(kPuzzletext);
context.ax = context.es.word(context.si);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
return;
}
@@ -13723,7 +13723,7 @@ void removefreeobject(Context & context) {
}
void findormake(Context & context) {
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
context.push(context.ax);
context.es = context.data.word(kBuffers);
context.ah = context.data.byte(kReallocation);
@@ -13760,7 +13760,7 @@ void switchryanoff(Context & context) {
void setallchanges(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
setallloop:
context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
@@ -13798,7 +13798,7 @@ path:
context._mul(context.cx);
context.bx = context.pop();
context._add(context.bx, context.ax);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.es = context.data.word(kReels);
context.cx = context.pop();
context.es.byte(context.bx+6) = context.cl;
@@ -13894,10 +13894,10 @@ void getundertimed(Context & context) {
context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
- context.ch = 30;
+ context.ch = (30);
context.cl = 240;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiget(context);
return;
}
@@ -13910,10 +13910,10 @@ void putundertimed(Context & context) {
context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
- context.ch = 30;
+ context.ch = (30);
context.cl = 240;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiput(context);
return;
}
@@ -13929,7 +13929,7 @@ void dumptimedtext(Context & context) {
context.ah = 0;
context.di = context.ax;
context.cl = 240;
- context.ch = 30;
+ context.ch = (30);
multidump(context);
context.data.byte(kNeedtodumptimed) = 0;
nodumptimed:
@@ -13948,7 +13948,7 @@ void setuptimeduse(Context & context) {
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(kPuzzletext);
- context.cx = 66*2;
+ context.cx = (66*2);
context.ax = context.es.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
@@ -13970,7 +13970,7 @@ void setuptimedtemp(Context & context) {
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(kTextfile1);
- context.cx = 66*2;
+ context.cx = (66*2);
context.ax = context.es.word(context.bx);
context._add(context.ax, context.cx);
context.bx = context.ax;
@@ -14370,7 +14370,7 @@ void usewinch(Context & context) {
context.al = 40;
context.ah = 1;
checkinside(context);
- context._cmp(context.cl, 114);
+ context._cmp(context.cl, (114));
if (context.flags.z()) goto nowinch;
context.al = context.cl;
context.ah = 4;
@@ -14614,14 +14614,14 @@ nonoise:
}
void showouterpad(Context & context) {
- context.di = 36+112-3;
- context.bx = 72-4;
+ context.di = (36+112)-3;
+ context.bx = (72)-4;
context.ds = context.data.word(kTempgraphics);
context.al = 1;
context.ah = 0;
showframe(context);
- context.di = 36+112+74;
- context.bx = 72+76;
+ context.di = (36+112)+74;
+ context.bx = (72)+76;
context.ds = context.data.word(kTempgraphics);
context.al = 37;
context.ah = 0;
@@ -14631,58 +14631,58 @@ void showouterpad(Context & context) {
void showkeypad(Context & context) {
context.al = 22;
- context.di = 36+112+9;
- context.bx = 72+5;
+ context.di = (36+112)+9;
+ context.bx = (72)+5;
singlekey(context);
context.al = 23;
- context.di = 36+112+31;
- context.bx = 72+5;
+ context.di = (36+112)+31;
+ context.bx = (72)+5;
singlekey(context);
context.al = 24;
- context.di = 36+112+53;
- context.bx = 72+5;
+ context.di = (36+112)+53;
+ context.bx = (72)+5;
singlekey(context);
context.al = 25;
- context.di = 36+112+9;
- context.bx = 72+23;
+ context.di = (36+112)+9;
+ context.bx = (72)+23;
singlekey(context);
context.al = 26;
- context.di = 36+112+31;
- context.bx = 72+23;
+ context.di = (36+112)+31;
+ context.bx = (72)+23;
singlekey(context);
context.al = 27;
- context.di = 36+112+53;
- context.bx = 72+23;
+ context.di = (36+112)+53;
+ context.bx = (72)+23;
singlekey(context);
context.al = 28;
- context.di = 36+112+9;
- context.bx = 72+41;
+ context.di = (36+112)+9;
+ context.bx = (72)+41;
singlekey(context);
context.al = 29;
- context.di = 36+112+31;
- context.bx = 72+41;
+ context.di = (36+112)+31;
+ context.bx = (72)+41;
singlekey(context);
context.al = 30;
- context.di = 36+112+53;
- context.bx = 72+41;
+ context.di = (36+112)+53;
+ context.bx = (72)+41;
singlekey(context);
context.al = 31;
- context.di = 36+112+9;
- context.bx = 72+59;
+ context.di = (36+112)+9;
+ context.bx = (72)+59;
singlekey(context);
context.al = 32;
- context.di = 36+112+31;
- context.bx = 72+59;
+ context.di = (36+112)+31;
+ context.bx = (72)+59;
singlekey(context);
context._cmp(context.data.byte(kLightcount), 0);
if (context.flags.z()) goto notenter;
context._sub(context.data.byte(kLightcount), 1);
context.al = 36;
- context.bx = 72-1+63;
+ context.bx = (72)-1+63;
context._cmp(context.data.byte(kLockstatus), 0);
if (!context.flags.z()) goto changelight;
context.al = 41;
- context.bx = 72+4+63;
+ context.bx = (72)+4+63;
changelight:
context._cmp(context.data.byte(kLightcount), 60);
if (context.flags.c()) goto gotlight;
@@ -14692,7 +14692,7 @@ changelight:
gotlight:
context.ds = context.data.word(kTempgraphics);
context.ah = 0;
- context.di = 36+112+60;
+ context.di = (36+112)+60;
showframe(context);
notenter:
return;
@@ -14714,8 +14714,8 @@ gotkey:
}
void dumpkeypad(Context & context) {
- context.di = 36+112-3;
- context.bx = 72-4;
+ context.di = (36+112)-3;
+ context.bx = (72)-4;
context.cl = 120;
context.ch = 90;
multidump(context);
@@ -14733,15 +14733,15 @@ void usemenu(Context & context) {
printsprites(context);
context.al = 4;
context.ah = 0;
- context.di = 80+40-48;
- context.bx = 60-4;
+ context.di = (80+40)-48;
+ context.bx = (60)-4;
context.ds = context.data.word(kTempgraphics2);
showframe(context);
getundermenu(context);
context.al = 5;
context.ah = 0;
- context.di = 80+40+54;
- context.bx = 60+72;
+ context.di = (80+40)+54;
+ context.bx = (60)+72;
context.ds = context.data.word(kTempgraphics2);
showframe(context);
worktoscreenm(context);
@@ -14772,8 +14772,8 @@ menulist:
}
void dumpmenu(Context & context) {
- context.di = 80+40;
- context.bx = 60;
+ context.di = (80+40);
+ context.bx = (60);
context.cl = 48;
context.ch = 48;
multidump(context);
@@ -14781,23 +14781,23 @@ void dumpmenu(Context & context) {
}
void getundermenu(Context & context) {
- context.di = 80+40;
- context.bx = 60;
+ context.di = (80+40);
+ context.bx = (60);
context.cl = 48;
context.ch = 48;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiget(context);
return;
}
void putundermenu(Context & context) {
- context.di = 80+40;
- context.bx = 60;
+ context.di = (80+40);
+ context.bx = (60);
context.cl = 48;
context.ch = 48;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiput(context);
return;
}
@@ -14805,26 +14805,26 @@ void putundermenu(Context & context) {
void showoutermenu(Context & context) {
context.al = 40;
context.ah = 0;
- context.di = 80+40-34;
- context.bx = 60-40;
+ context.di = (80+40)-34;
+ context.bx = (60)-40;
context.ds = context.data.word(kTempgraphics);
showframe(context);
context.al = 41;
context.ah = 0;
- context.di = 80+40+64-34;
- context.bx = 60-40;
+ context.di = (80+40)+64-34;
+ context.bx = (60)-40;
context.ds = context.data.word(kTempgraphics);
showframe(context);
context.al = 42;
context.ah = 0;
- context.di = 80+40-26;
- context.bx = 60+57-40;
+ context.di = (80+40)-26;
+ context.bx = (60)+57-40;
context.ds = context.data.word(kTempgraphics);
showframe(context);
context.al = 43;
context.ah = 0;
- context.di = 80+40+64-26;
- context.bx = 60+57-40;
+ context.di = (80+40)+64-26;
+ context.bx = (60)+57-40;
context.ds = context.data.word(kTempgraphics);
showframe(context);
return;
@@ -14839,8 +14839,8 @@ menuframeok:
context.al = context.data.byte(kMenucount);
context._shr(context.al, 1);
context.ah = 0;
- context.di = 80+40;
- context.bx = 60;
+ context.di = (80+40);
+ context.bx = (60);
context.ds = context.data.word(kTempgraphics);
showframe(context);
return;
@@ -15369,8 +15369,8 @@ nobotright:
void dumpsymbol(Context & context) {
context.data.byte(kNewtextline) = 0;
- context.di = 64;
- context.bx = 56+20;
+ context.di = (64);
+ context.bx = (56)+20;
context.cl = 104;
context.ch = 60;
multidump(context);
@@ -15380,16 +15380,16 @@ void dumpsymbol(Context & context) {
void showsymbol(Context & context) {
context.al = 12;
context.ah = 0;
- context.di = 64;
- context.bx = 56;
+ context.di = (64);
+ context.bx = (56);
context.ds = context.data.word(kTempgraphics);
showframe(context);
context.al = context.data.byte(kSymboltopx);
context.ah = 0;
context.di = context.ax;
- context._add(context.di, 64-44);
+ context._add(context.di, (64)-44);
context.al = context.data.byte(kSymboltopnum);
- context.bx = 56+20;
+ context.bx = (56)+20;
context.ds = context.data.word(kTempgraphics);
context.ah = 32;
context.push(context.ax);
@@ -15418,10 +15418,10 @@ void showsymbol(Context & context) {
context.al = context.data.byte(kSymbolbotx);
context.ah = 0;
context.di = context.ax;
- context._add(context.di, 64-44);
+ context._add(context.di, (64)-44);
context.al = context.data.byte(kSymbolbotnum);
context._add(context.al, 6);
- context.bx = 56+49;
+ context.bx = (56)+49;
context.ds = context.data.word(kTempgraphics);
context.ah = 32;
context.push(context.ax);
@@ -15598,14 +15598,14 @@ diarylist:
void showdiary(Context & context) {
context.al = 1;
context.ah = 0;
- context.di = 68+24;
- context.bx = 48+12+37;
+ context.di = (68+24);
+ context.bx = (48+12)+37;
context.ds = context.data.word(kTempgraphics);
showframe(context);
context.al = 2;
context.ah = 0;
- context.di = 68+24+176;
- context.bx = 48+12+108;
+ context.di = (68+24)+176;
+ context.bx = (48+12)+108;
context.ds = context.data.word(kTempgraphics);
showframe(context);
return;
@@ -15625,8 +15625,8 @@ void showdiarykeys(Context & context) {
context.al = 4;
gotkeyn:
context.ah = 0;
- context.di = 68+24+94;
- context.bx = 48+12+97;
+ context.di = (68+24)+94;
+ context.bx = (48+12)+97;
context.ds = context.data.word(kTempgraphics);
showframe(context);
context._cmp(context.data.byte(kPresscount), 1);
@@ -15641,8 +15641,8 @@ nokeyn:
context.al = 6;
gotkeyp:
context.ah = 0;
- context.di = 68+24+151;
- context.bx = 48+12+71;
+ context.di = (68+24)+151;
+ context.bx = (48+12)+71;
context.ds = context.data.word(kTempgraphics);
showframe(context);
context._cmp(context.data.byte(kPresscount), 1);
@@ -15688,19 +15688,19 @@ void dumpdiarykeys(Context & context) {
showpointer(context);
return;
notsartadd:
- context.di = 68+24+48;
- context.bx = 48+12+15;
+ context.di = (68+24)+48;
+ context.bx = (48+12)+15;
context.cl = 200;
context.ch = 16;
multidump(context);
notdumpdiary:
- context.di = 68+24+94;
- context.bx = 48+12+97;
+ context.di = (68+24)+94;
+ context.bx = (48+12)+97;
context.cl = 16;
context.ch = 16;
multidump(context);
- context.di = 68+24+151;
- context.bx = 48+12+71;
+ context.di = (68+24)+151;
+ context.bx = (48+12)+71;
context.cl = 16;
context.ch = 16;
multidump(context);
@@ -15762,27 +15762,27 @@ notkeyn:
void showdiarypage(Context & context) {
context.al = 0;
context.ah = 0;
- context.di = 68+24;
- context.bx = 48+12;
+ context.di = (68+24);
+ context.bx = (48+12);
context.ds = context.data.word(kTempgraphics);
showframe(context);
context.al = context.data.byte(kDiarypage);
findtext1(context);
context.data.byte(kKerning) = 1;
usetempcharset(context);
- context.di = 68+24+48;
- context.bx = 48+12+16;
+ context.di = (68+24)+48;
+ context.bx = (48+12)+16;
context.dl = 240;
context.ah = 16;
context.data.word(kCharshift) = 91+91;
printdirect(context);
- context.di = 68+24+129;
- context.bx = 48+12+16;
+ context.di = (68+24)+129;
+ context.bx = (48+12)+16;
context.dl = 240;
context.ah = 16;
printdirect(context);
- context.di = 68+24+48;
- context.bx = 48+12+23;
+ context.di = (68+24)+48;
+ context.bx = (48+12)+23;
context.dl = 240;
context.ah = 16;
printdirect(context);
@@ -15798,7 +15798,7 @@ void findtext1(Context & context) {
context._add(context.si, context.si);
context.es = context.data.word(kTextfile1);
context.ax = context.es.word(context.si);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
return;
}
@@ -15922,20 +15922,20 @@ opsblock1:
void showmainops(Context & context) {
context.ds = context.data.word(kTempgraphics);
- context.di = 60+10;
- context.bx = 52+10;
+ context.di = (60)+10;
+ context.bx = (52)+10;
context.al = 8;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+59;
- context.bx = 52+30;
+ context.di = (60)+59;
+ context.bx = (52)+30;
context.al = 7;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+128+4;
- context.bx = 52+12;
+ context.di = (60)+128+4;
+ context.bx = (52)+12;
context.al = 1;
context.ah = 0;
showframe(context);
@@ -15944,26 +15944,26 @@ void showmainops(Context & context) {
void showdiscops(Context & context) {
context.ds = context.data.word(kTempgraphics);
- context.di = 60+128+4;
- context.bx = 52+12;
+ context.di = (60)+128+4;
+ context.bx = (52)+12;
context.al = 1;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+10;
- context.bx = 52+10;
+ context.di = (60)+10;
+ context.bx = (52)+10;
context.al = 9;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+59;
- context.bx = 52+30;
+ context.di = (60)+59;
+ context.bx = (52)+30;
context.al = 10;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+176+2;
- context.bx = 52+60-4;
+ context.di = (60)+176+2;
+ context.bx = (52)+60-4;
context.al = 5;
context.ah = 0;
showframe(context);
@@ -16292,14 +16292,14 @@ void getnamepos(Context & context) {
void showopbox(Context & context) {
context.ds = context.data.word(kTempgraphics);
- context.di = 60;
- context.bx = 52;
+ context.di = (60);
+ context.bx = (52);
context.al = 0;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60;
- context.bx = 52+55;
+ context.di = (60);
+ context.bx = (52)+55;
context.al = 4;
context.ah = 0;
showframe(context);
@@ -16308,19 +16308,19 @@ void showopbox(Context & context) {
void showloadops(Context & context) {
context.ds = context.data.word(kTempgraphics);
- context.di = 60+128+4;
- context.bx = 52+12;
+ context.di = (60)+128+4;
+ context.bx = (52)+12;
context.al = 1;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+176+2;
- context.bx = 52+60-4;
+ context.di = (60)+176+2;
+ context.bx = (52)+60-4;
context.al = 5;
context.ah = 0;
showframe(context);
- context.di = 60+104;
- context.bx = 52+14;
+ context.di = (60)+104;
+ context.bx = (52)+14;
context.al = 55;
context.dl = 101;
printmessage(context);
@@ -16329,19 +16329,19 @@ void showloadops(Context & context) {
void showsaveops(Context & context) {
context.ds = context.data.word(kTempgraphics);
- context.di = 60+128+4;
- context.bx = 52+12;
+ context.di = (60)+128+4;
+ context.bx = (52)+12;
context.al = 1;
context.ah = 0;
showframe(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+176+2;
- context.bx = 52+60-4;
+ context.di = (60)+176+2;
+ context.bx = (52)+60-4;
context.al = 5;
context.ah = 0;
showframe(context);
- context.di = 60+104;
- context.bx = 52+14;
+ context.di = (60)+104;
+ context.bx = (52)+14;
context.al = 54;
context.dl = 101;
printmessage(context);
@@ -16366,7 +16366,7 @@ alreadysel:
notnocurs:
oldtonames(context);
context.ax = context.data.word(kMousey);
- context._sub(context.ax, 52+4);
+ context._sub(context.ax, (52)+4);
context.cl = -1;
getslotnum:
context._add(context.cl, 1);
@@ -16397,14 +16397,14 @@ noselslot:
}
void showslots(Context & context) {
- context.di = 60+7;
- context.bx = 52+8;
+ context.di = (60)+7;
+ context.bx = (52)+8;
context.al = 2;
context.ds = context.data.word(kTempgraphics);
context.ah = 0;
showframe(context);
- context.di = 60+10;
- context.bx = 52+11;
+ context.di = (60)+10;
+ context.bx = (52)+11;
context.cl = 0;
slotloop:
context.push(context.cx);
@@ -16431,8 +16431,8 @@ void shownames(Context & context) {
context.dx = context.ds;
context.es = context.dx;
context.si = 8350+1;
- context.di = 60+21;
- context.bx = 52+10;
+ context.di = (60)+21;
+ context.bx = (52)+10;
context.cl = 0;
shownameloop:
context.push(context.cx);
@@ -16496,7 +16496,7 @@ afterprintname:
void namestoold(Context & context) {
context.ds = context.cs;
context.si = 8350;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.es = context.data.word(kBuffers);
context.cx = 17*4;
while(--context.cx) context._movsb();
@@ -16506,7 +16506,7 @@ void namestoold(Context & context) {
void oldtonames(Context & context) {
context.es = context.cs;
context.di = 8350;
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.ds = context.data.word(kBuffers);
context.cx = 17*4;
while(--context.cx) context._movsb();
@@ -16519,15 +16519,15 @@ void makeheader(Context & context) {
context.di = 5912;
context.ax = 17;
storeit(context);
- context.ax = 68-0;
+ context.ax = (68-0);
storeit(context);
- context.ax = 0+2080+30000+(16*114)+((114+2)*2)+18000;
+ context.ax = (0+2080+30000+(16*114)+((114+2)*2)+18000);
storeit(context);
- context.ax = 250*4;
+ context.ax = (250)*4;
storeit(context);
context.ax = 48;
storeit(context);
- context.ax = 991-534;
+ context.ax = (991-534);
storeit(context);
return;
}
@@ -16596,8 +16596,8 @@ void showdecisions(Context & context) {
createpanel2(context);
showopbox(context);
context.ds = context.data.word(kTempgraphics);
- context.di = 60+17;
- context.bx = 52+13;
+ context.di = (60)+17;
+ context.bx = (52)+13;
context.al = 6;
context.ah = 0;
showframe(context);
@@ -17305,27 +17305,27 @@ enoughmem:
}
void allocatebuffers(Context & context) {
- context.bx = 0+2080+30000+(16*114)+((114+2)*2)+18000/16;
+ context.bx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/16;
allocatemem(context);
context.data.word(kExtras) = context.ax;
trysoundalloc(context);
- context.bx = 0+(66*60)/16;
+ context.bx = (0+(66*60))/16;
allocatemem(context);
context.data.word(kMapdata) = context.ax;
trysoundalloc(context);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0/16;
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0)/16;
allocatemem(context);
context.data.word(kBuffers) = context.ax;
trysoundalloc(context);
- context.bx = 16*80/16;
+ context.bx = (16*80)/16;
allocatemem(context);
context.data.word(kFreedat) = context.ax;
trysoundalloc(context);
- context.bx = 64*128/16;
+ context.bx = (64*128)/16;
allocatemem(context);
context.data.word(kSetdat) = context.ax;
trysoundalloc(context);
- context.bx = 22*8*20*8/16;
+ context.bx = (22*8*20*8)/16;
allocatemem(context);
context.data.word(kMapstore) = context.ax;
allocatework(context);
@@ -17340,26 +17340,26 @@ void allocatebuffers(Context & context) {
void clearbuffers(Context & context) {
context.es = context.data.word(kBuffers);
- context.cx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0/2;
+ context.cx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0)/2;
context.ax = 0;
context.di = 0;
while(--context.cx) context._stosw();
context.es = context.data.word(kExtras);
- context.cx = 0+2080+30000+(16*114)+((114+2)*2)+18000/2;
+ context.cx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/2;
context.ax = 0x0ffff;
context.di = 0;
while(--context.cx) context._stosw();
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
context.ds = context.cs;
context.si = 534;
- context.cx = 991-534;
+ context.cx = (991-534);
while(--context.cx) context._movsb();
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534;
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
context.ds = context.cs;
context.si = 0;
- context.cx = 68-0;
+ context.cx = (68-0);
while(--context.cx) context._movsb();
clearchanges(context);
return;
@@ -17367,27 +17367,27 @@ void clearbuffers(Context & context) {
void clearchanges(Context & context) {
context.es = context.data.word(kBuffers);
- context.cx = 250*2;
+ context.cx = (250)*2;
context.ax = 0x0ffff;
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80);
+ context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
while(--context.cx) context._stosw();
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
context.es = context.cs;
context.di = 534;
- context.cx = 991-534;
+ context.cx = (991-534);
while(--context.cx) context._movsb();
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534;
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
context.es = context.cs;
context.di = 0;
- context.cx = 68-0;
+ context.cx = (68-0);
while(--context.cx) context._movsb();
context.data.byte(kExpos) = 0;
context.data.word(kExframepos) = 0;
context.data.word(kExtextpos) = 0;
context.es = context.data.word(kExtras);
- context.cx = 0+2080+30000+(16*114)+((114+2)*2)+18000/2;
+ context.cx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/2;
context.ax = 0x0ffff;
context.di = 0;
while(--context.cx) context._stosw();
@@ -17428,9 +17428,9 @@ void clearreels(Context & context) {
void clearrest(Context & context) {
context.es = context.data.word(kMapdata);
- context.cx = 66*60/2;
+ context.cx = (66*60)/2;
context.ax = 0;
- context.di = 0;
+ context.di = (0);
while(--context.cx) context._stosw();
context.es = context.data.word(kBackdrop);
deallocatemem(context);
@@ -18100,7 +18100,7 @@ nothingund:
void checkifperson(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
context.cx = 12;
identifyreel:
context.push(context.cx);
@@ -18156,7 +18156,7 @@ notareelid:
void checkifset(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(127*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32))+(127*5);
context.cx = 127;
identifyset:
context._cmp(context.es.byte(context.bx+4), 255);
@@ -18189,7 +18189,7 @@ notasetid:
void checkifex(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(99*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5))+(99*5);
context.cx = 99;
identifyex:
context._cmp(context.es.byte(context.bx+4), 255);
@@ -18218,7 +18218,7 @@ notanexid:
void checkiffree(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(79*5);
+ context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5))+(79*5);
context.cx = 79;
identifyfree:
context._cmp(context.es.byte(context.bx+4), 255);
@@ -18255,9 +18255,9 @@ void isitdescribed(Context & context) {
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(kSetdesc);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.ax = context.es.word(context.bx);
- context._add(context.ax, 0+(130*2));
+ context._add(context.ax, (0+(130*2)));
context.bx = context.ax;
context.dl = context.es.byte(context.bx);
context.bx = context.pop();
@@ -18270,7 +18270,7 @@ void isitdescribed(Context & context) {
void findpathofpoint(Context & context) {
context.push(context.ax);
- context.bx = 0;
+ context.bx = (0);
context.es = context.data.word(kReels);
context.al = context.data.byte(kRoomnum);
context.ah = 0;
@@ -18308,7 +18308,7 @@ gotvalidpath:
void findfirstpath(Context & context) {
context.push(context.ax);
- context.bx = 0;
+ context.bx = (0);
context.es = context.data.word(kReels);
context.al = context.data.byte(kRoomnum);
context.ah = 0;
@@ -18402,7 +18402,7 @@ void turnanypathon(Context & context) {
context.cx = 144;
context._mul(context.cx);
context.es = context.data.word(kReels);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
context.ax = context.pop();
context.ah = 0;
@@ -18428,7 +18428,7 @@ void turnanypathoff(Context & context) {
context.cx = 144;
context._mul(context.cx);
context.es = context.data.word(kReels);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
context.ax = context.pop();
context.ah = 0;
@@ -18727,7 +18727,7 @@ void commandwithob(Context & context) {
context.bx = context.ax;
context.es = context.data.word(kCommandtext);
context.ax = context.es.word(context.bx);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
context.di = context.data.word(kTextaddressx);
context.bx = context.data.word(kTextaddressy);
@@ -18778,7 +18778,7 @@ void commandonly(Context & context) {
context.bx = context.ax;
context.es = context.data.word(kCommandtext);
context.ax = context.es.word(context.bx);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
context.di = context.data.word(kTextaddressx);
context.bx = context.data.word(kTextaddressy);
@@ -18799,7 +18799,7 @@ void printmessage(Context & context) {
context.bx = context.ax;
context.es = context.data.word(kCommandtext);
context.ax = context.es.word(context.bx);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
context.di = context.pop();
context.bx = context.pop();
@@ -18820,7 +18820,7 @@ void printmessage2(Context & context) {
context.bx = context.ax;
context.es = context.data.word(kCommandtext);
context.ax = context.es.word(context.bx);
- context._add(context.ax, 66*2);
+ context._add(context.ax, (66*2));
context.si = context.ax;
context.ax = context.pop();
searchmess:
@@ -19208,7 +19208,7 @@ void getroomspaths(Context & context) {
context.cx = 144;
context._mul(context.cx);
context.es = context.data.word(kReels);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
return;
}
@@ -19253,8 +19253,8 @@ void findobname(Context & context) {
context._mul(context.bx);
context.si = context.ax;
context.ds = context.data.word(kPeople);
- context._add(context.si, 0+24);
- context.cx = 0+24+(1026*2);
+ context._add(context.si, (0+24));
+ context.cx = (0+24+(1026*2));
context.ax = context.ds.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
@@ -19264,34 +19264,34 @@ notpersonname:
context._cmp(context.ah, 4);
if (!context.flags.z()) goto notextraname;
context.ds = context.data.word(kExtras);
- context._add(context.bx, 0+2080+30000+(16*114));
+ context._add(context.bx, (0+2080+30000+(16*114)));
context.ax = context.ds.word(context.bx);
- context._add(context.ax, 0+2080+30000+(16*114)+((114+2)*2));
+ context._add(context.ax, (0+2080+30000+(16*114)+((114+2)*2)));
context.si = context.ax;
return;
notextraname:
context._cmp(context.ah, 2);
if (!context.flags.z()) goto notfreename;
context.ds = context.data.word(kFreedesc);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.ax = context.ds.word(context.bx);
- context._add(context.ax, 0+(82*2));
+ context._add(context.ax, (0+(82*2)));
context.si = context.ax;
return;
notfreename:
context._cmp(context.ah, 1);
if (!context.flags.z()) goto notsetname;
context.ds = context.data.word(kSetdesc);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.ax = context.ds.word(context.bx);
- context._add(context.ax, 0+(130*2));
+ context._add(context.ax, (0+(130*2)));
context.si = context.ax;
return;
notsetname:
context.ds = context.data.word(kBlockdesc);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.ax = context.ds.word(context.bx);
- context._add(context.ax, 0+(98*2));
+ context._add(context.ax, (0+(98*2)));
context.si = context.ax;
return;
}
@@ -19429,9 +19429,9 @@ notover32:
context.bh = 0;
context._add(context.bx, context.bx);
context.es = context.data.word(kRoomdesc);
- context._add(context.bx, 0);
+ context._add(context.bx, (0));
context.ax = context.es.word(context.bx);
- context._add(context.ax, 0+(38*2));
+ context._add(context.ax, (0+(38*2)));
context.si = context.ax;
context.data.word(kLinespacing) = 7;
context.di = 88;
@@ -19518,8 +19518,8 @@ void zoomicon(Context & context) {
context._cmp(context.data.byte(kZoomon), 0);
if (context.flags.z()) goto nozoom1;
context.ds = context.data.word(kIcons1);
- context.di = 8;
- context.bx = 132-1;
+ context.di = (8);
+ context.bx = (132)-1;
context.al = 8;
context.ah = 0;
showframe(context);
@@ -19677,10 +19677,10 @@ monloop1:
}
void getunderzoom(Context & context) {
- context.di = 8+5;
- context.bx = 132+4;
+ context.di = (8)+5;
+ context.bx = (132)+4;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.cl = 46;
context.ch = 40;
multiget(context);
@@ -19690,8 +19690,8 @@ void getunderzoom(Context & context) {
void dumpzoom(Context & context) {
context._cmp(context.data.byte(kZoomon), 1);
if (!context.flags.z()) goto notzoomon;
- context.di = 8+5;
- context.bx = 132+4;
+ context.di = (8)+5;
+ context.bx = (132)+4;
context.cl = 46;
context.ch = 40;
multidump(context);
@@ -19700,10 +19700,10 @@ notzoomon:
}
void putunderzoom(Context & context) {
- context.di = 8+5;
- context.bx = 132+4;
+ context.di = (8)+5;
+ context.bx = (132)+4;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5);
+ context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.cl = 46;
context.ch = 40;
multiput(context);
@@ -19717,8 +19717,8 @@ void crosshair(Context & context) {
if (!context.flags.c()) goto nocross;
context.es = context.data.word(kWorkspace);
context.ds = context.data.word(kIcons1);
- context.di = 8+24;
- context.bx = 132+19;
+ context.di = (8)+24;
+ context.bx = (132)+19;
context.al = 9;
context.ah = 0;
showframe(context);
@@ -19726,8 +19726,8 @@ void crosshair(Context & context) {
nocross:
context.es = context.data.word(kWorkspace);
context.ds = context.data.word(kIcons1);
- context.di = 8+24;
- context.bx = 132+19;
+ context.di = (8)+24;
+ context.bx = (132)+19;
context.al = 29;
context.ah = 0;
showframe(context);
@@ -19765,7 +19765,7 @@ notsmally:
context.data.byte(kPointerys) = context.ch;
context.push(context.ds);
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60;
+ context.si = (0+(228*13)+32+60);
multiget(context);
context.ds = context.pop();
context.di = context.pop();
@@ -19825,7 +19825,7 @@ notsmally2:
context._sub(context.data.word(kOldpointery), context.ax);
context._sub(context.bx, context.ax);
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60;
+ context.si = (0+(228*13)+32+60);
multiget(context);
context.ds = context.pop();
context.di = context.pop();
@@ -19854,7 +19854,7 @@ void delpointer(Context & context) {
context.ch = context.data.byte(kPointerys);
context.data.byte(kDelys) = context.ch;
context.ds = context.data.word(kBuffers);
- context.si = 0+(228*13)+32+60;
+ context.si = (0+(228*13)+32+60);
context.di = context.data.word(kDelherex);
context.bx = context.data.word(kDelherey);
multiput(context);
@@ -19888,9 +19888,9 @@ void undertextline(Context & context) {
context.bx = context.data.word(kTextaddressy);
context._sub(context.bx, 3);
context.ds = context.data.word(kBuffers);
- context.si = 0;
- context.cl = 228;
- context.ch = 13;
+ context.si = (0);
+ context.cl = (228);
+ context.ch = (13);
multiget(context);
return;
}
@@ -19900,9 +19900,9 @@ void deltextline(Context & context) {
context.bx = context.data.word(kTextaddressy);
context._sub(context.bx, 3);
context.ds = context.data.word(kBuffers);
- context.si = 0;
- context.cl = 228;
- context.ch = 13;
+ context.si = (0);
+ context.cl = (228);
+ context.ch = (13);
multiput(context);
return;
}
@@ -19914,8 +19914,8 @@ void dumptextline(Context & context) {
context.di = context.data.word(kTextaddressx);
context.bx = context.data.word(kTextaddressy);
context._sub(context.bx, 3);
- context.cl = 228;
- context.ch = 13;
+ context.cl = (228);
+ context.ch = (13);
multidump(context);
nodumptextline:
return;
@@ -20300,10 +20300,10 @@ void restoreall(Context & context) {
allocateload(context);
context.ds = context.ax;
context.data.word(kBackdrop) = context.ax;
- context.dx = 0;
+ context.dx = (0);
loadseg(context);
context.ds = context.data.word(kWorkspace);
- context.dx = 0;
+ context.dx = (0);
context.cx = 132*66;
context.al = 0;
fillspace(context);
@@ -20312,7 +20312,7 @@ void restoreall(Context & context) {
allocateload(context);
context.data.word(kSetframes) = context.ax;
context.ds = context.ax;
- context.dx = 0;
+ context.dx = (0);
loadseg(context);
dontloadseg(context);
allocateload(context);
@@ -20364,7 +20364,7 @@ void restoreall(Context & context) {
allocateload(context);
context.data.word(kFreedesc) = context.ax;
context.ds = context.ax;
- context.dx = 0;
+ context.dx = (0);
loadseg(context);
closefile(context);
setallchanges(context);
@@ -20378,11 +20378,11 @@ void sortoutmap(Context & context) {
context.si = 0;
context.es = context.data.word(kMapdata);
context.di = 0;
- context.cx = 60;
+ context.cx = (60);
blimey:
context.push(context.cx);
context.push(context.si);
- context.cx = 66;
+ context.cx = (66);
while(--context.cx) context._movsb();
context.si = context.pop();
context.cx = context.pop();
@@ -20428,10 +20428,10 @@ void startloading(Context & context) {
allocateload(context);
context.ds = context.ax;
context.data.word(kBackdrop) = context.ax;
- context.dx = 0;
+ context.dx = (0);
loadseg(context);
context.ds = context.data.word(kWorkspace);
- context.dx = 0;
+ context.dx = (0);
context.cx = 132*66;
context.al = 0;
fillspace(context);
@@ -20440,11 +20440,11 @@ void startloading(Context & context) {
allocateload(context);
context.data.word(kSetframes) = context.ax;
context.ds = context.ax;
- context.dx = 0;
+ context.dx = (0);
loadseg(context);
context.ds = context.data.word(kSetdat);
context.dx = 0;
- context.cx = 64*128;
+ context.cx = (64*128);
context.al = 255;
fillspace(context);
loadseg(context);
@@ -20495,14 +20495,14 @@ void startloading(Context & context) {
loadseg(context);
context.ds = context.data.word(kFreedat);
context.dx = 0;
- context.cx = 16*80;
+ context.cx = (16*80);
context.al = 255;
fillspace(context);
loadseg(context);
allocateload(context);
context.data.word(kFreedesc) = context.ax;
context.ds = context.ax;
- context.dx = 0;
+ context.dx = (0);
loadseg(context);
closefile(context);
findroominloc(context);
@@ -20547,7 +20547,7 @@ lookx2:
context.cx = 144;
context._mul(context.cx);
context.es = context.data.word(kReels);
- context.bx = 0;
+ context.bx = (0);
context._add(context.bx, context.ax);
context.ax = context.pop();
context.ah = 0;
@@ -20605,7 +20605,7 @@ void getroomdata(Context & context) {
void readheader(Context & context) {
context.ds = context.cs;
context.dx = 5862;
- context.cx = 5958-5862;
+ context.cx = (5958-5862);
readfromfile(context);
context.es = context.cs;
context.di = 5912;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 0380304..228bf14 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -542,6 +542,98 @@ namespace dreamgen {
const static uint16 kSavefiles = 8469;
const static uint16 kRecname = 8560;
const static uint16 kStak = 8573;
+ const static uint16 kBlocktextdat = (0);
+ const static uint16 kPersonframes = (0);
+ const static uint16 kDebuglevel1 = (0);
+ const static uint16 kDebuglevel2 = (0);
+ const static uint16 kPlayback = (0);
+ const static uint16 kMap = (0);
+ const static uint16 kSettextdat = (0);
+ const static uint16 kFramedata = (0);
+ const static uint16 kRecording = (0);
+ const static uint16 kFlags = (0);
+ const static uint16 kGerman = (0);
+ const static uint16 kTextunder = (0);
+ const static uint16 kPathdata = (0);
+ const static uint16 kDemo = (0);
+ const static uint16 kExframedata = (0);
+ const static uint16 kCd = (0);
+ const static uint16 kIntextdat = (0);
+ const static uint16 kFreetextdat = (0);
+ const static uint16 kFrframedata = (0);
+ const static uint16 kSettext = (0+(130*2));
+ const static uint16 kOpeninvlist = (0+(228*13));
+ const static uint16 kRyaninvlist = (0+(228*13)+32);
+ const static uint16 kPointerback = (0+(228*13)+32+60);
+ const static uint16 kMapflags = (0+(228*13)+32+60+(32*32));
+ const static uint16 kStartpal = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ const static uint16 kEndpal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ const static uint16 kMaingamepal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ const static uint16 kSpritetable = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ const static uint16 kSetlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
+ const static uint16 kFreelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
+ const static uint16 kExlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
+ const static uint16 kPeoplelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
+ const static uint16 kZoomspace = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ const static uint16 kPrintedlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
+ const static uint16 kListofchanges = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ const static uint16 kUndertimedtext = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ const static uint16 kRainlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
+ const static uint16 kInitialreelrouts = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
+ const static uint16 kInitialvars = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
+ const static uint16 kLengthofbuffer = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0);
+ const static uint16 kReellist = (0+(36*144));
+ const static uint16 kIntext = (0+(38*2));
+ const static uint16 kLengthofmap = (0+(66*60));
+ const static uint16 kFreetext = (0+(82*2));
+ const static uint16 kBlocktext = (0+(98*2));
+ const static uint16 kBlocks = (0+192);
+ const static uint16 kFrframes = (0+2080);
+ const static uint16 kExframes = (0+2080);
+ const static uint16 kFrames = (0+2080);
+ const static uint16 kExdata = (0+2080+30000);
+ const static uint16 kExtextdat = (0+2080+30000+(16*114));
+ const static uint16 kExtext = (0+2080+30000+(16*114)+((114+2)*2));
+ const static uint16 kLengthofextra = (0+2080+30000+(16*114)+((114+2)*2)+18000);
+ const static uint16 kPersontxtdat = (0+24);
+ const static uint16 kPersontext = (0+24+(1026*2));
+ const static uint16 kInputport = (0x63);
+ const static uint16 kSpanish = (1);
+ const static uint16 kForeign = (1);
+ const static uint16 kNumexobjects = (114);
+ const static uint16 kUndertextsizey = (13);
+ const static uint16 kZoomy = (132);
+ const static uint16 kFreedatlen = (16*80);
+ const static uint16 kExtextlen = (18000);
+ const static uint16 kLenofmapstore = (22*8*20*8);
+ const static uint16 kUndertextsizex = (228);
+ const static uint16 kNumchanges = (250);
+ const static uint16 kUndertimedysize = (30);
+ const static uint16 kExframeslen = (30000);
+ const static uint16 kTablesize = (32);
+ const static uint16 kScreenwidth = (320);
+ const static uint16 kKeypadx = (36+112);
+ const static uint16 kItempicsize = (44);
+ const static uint16 kDiaryy = (48+12);
+ const static uint16 kOpsy = (52);
+ const static uint16 kSymboly = (56);
+ const static uint16 kInventy = (58);
+ const static uint16 kHeaderlen = (5958-5862);
+ const static uint16 kMenuy = (60);
+ const static uint16 kOpsx = (60);
+ const static uint16 kMaplength = (60);
+ const static uint16 kSymbolx = (64);
+ const static uint16 kSetdatlen = (64*128);
+ const static uint16 kMapwidth = (66);
+ const static uint16 kTextstart = (66*2);
+ const static uint16 kMaplen = (66*60);
+ const static uint16 kDiaryx = (68+24);
+ const static uint16 kLengthofvars = (68-0);
+ const static uint16 kKeypady = (72);
+ const static uint16 kZoomx = (8);
+ const static uint16 kInventx = (80);
+ const static uint16 kMenux = (80+40);
+ const static uint16 kLenofreelrouts = (991-534);
}
Commit: 2cb4eac5e02b1445583195d5190ecb1498e4a391
https://github.com/scummvm/scummvm/commit/2cb4eac5e02b1445583195d5190ecb1498e4a391
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:53-07:00
Commit Message:
DREAMWEB: removed hardcoded constant
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fe27f4f..94c6e7e 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -203,11 +203,9 @@ void DreamWebEngine::setGraphicsMode() {
}
void DreamWebEngine::fadeDos() {
- static const int startpal = 0+(228*13)+32+60+(32*32)+(11*10*3); //fixme: add equ to enum too
-
PaletteManager *palette = _system->getPaletteManager();
_context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
- uint8 *dst = _context.es.ptr(startpal, 768);
+ uint8 *dst = _context.es.ptr(dreamgen::kStartpal, 768);
palette->grabPalette(dst, 0, 64);
for(int fade = 0; fade < 64; ++fade) {
for(int c = 0; c < 768; ++c) { //original sources decrement 768 values -> 256 colors
Commit: 9b761735734356cb3f24f4d80e95ecc2f912020c
https://github.com/scummvm/scummvm/commit/9b761735734356cb3f24f4d80e95ecc2f912020c
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:54-07:00
Commit Message:
DREAMWEB: regenerating source
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index a4a35eb..07a69f4 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -6220,18 +6220,18 @@ afterslow:
context._add(context.bx, 10);
goto printloopslow6;
finishslow:
- context.cx = context.pop();
- context.si = context.pop();
context.es = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
context.al = 0;
return;
finishslow2:
- context.cx = context.pop();
- context.si = context.pop();
context.es = context.pop();
+ context.si = context.pop();
+ context.cx = context.pop();
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
Commit: 97310ab904eea1a80c2b2235e0a31a01f1fbaaae
https://github.com/scummvm/scummvm/commit/97310ab904eea1a80c2b2235e0a31a01f1fbaaae
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:54-07:00
Commit Message:
DREAMWEB: asserted invalid calls
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index e94231f..3caf21e 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -564,6 +564,7 @@ namespace %s {
self.proc_addr.sort(cmp = lambda x, y: x[1] - y[1])
for name,addr in self.proc_addr:
self.fd.write("\t\tcase 0x%04x: %s(context); break;\n" %(addr, name))
+ self.fd.write("\t\tdefault: ::error(\"invalid call to %04x dispatched\", (uint16)context.ax);")
self.fd.write("\n\t}\n}\n\n} /*namespace*/\n")
self.fd.close()
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 07a69f4..c9fcfb3 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -22131,7 +22131,7 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xcbac: walkandexamine(context); break;
case 0xcbb0: doload(context); break;
case 0xcbb4: generalerror(context); break;
-
+ default: ::error("invalid call to %04x dispatched", (uint16)context.ax);
}
}
Commit: 8cc8e73d1f80065c6359f98722e1a4de2cb62654
https://github.com/scummvm/scummvm/commit/8cc8e73d1f80065c6359f98722e1a4de2cb62654
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:55-07:00
Commit Message:
DREAMWEB: blacklisted vga blitting functions
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 159acac..1763a25 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -7,5 +7,5 @@ p = parser()
p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
p.link()
-generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2', 'seecommandtail'])
+generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2', 'seecommandtail', 'multiget', 'multiput', 'multidump', 'frameoutnm'])
generator.generate('dreamweb') #start routine
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index c9fcfb3..b27c44e 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -49,9 +49,6 @@ void switchryanon(Context &context);
void drawflags(Context &context);
void getdimension(Context &context);
void getflagunderp(Context &context);
-void multidump(Context &context);
-void multiput(Context &context);
-void multiget(Context &context);
void dumpblink(Context &context);
void showblink(Context &context);
void showframe(Context &context);
@@ -429,7 +426,6 @@ void rollendcredits2(Context &context);
void clearstartpal(Context &context);
void fadecalculation(Context &context);
void frameoutfx(Context &context);
-void frameoutnm(Context &context);
void frameoutbh(Context &context);
void frameoutv(Context &context);
void putunderzoom(Context &context);
@@ -4357,142 +4353,6 @@ deloneloop:
return;
}
-void multiget(Context & context) {
- context.ax = context.bx;
- context.bx = (320);
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.es = context.data.word(kWorkspace);
- context.es = context.ds;
- context.ds = context.es;
- context._xchg(context.di, context.si);
- context.al = context.cl;
- context.ah = 0;
- context.dx = (320);
- context._sub(context.dx, context.ax);
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidth2;
- context.bl = context.cl;
- context.bh = 0;
- context.ax = 1819;
- context._shr(context.bx, 1);
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop3:
- __dispatch_call(context, context.ax);
- context._add(context.si, context.dx);
- if (--context.cx) goto multiloop3;
- return;
-oddwidth2:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop4:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.si, context.dx);
- if (--context.cx) goto multiloop4;
- return;
-}
-
-void multiput(Context & context) {
- context.ax = context.bx;
- context.bx = (320);
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.es = context.data.word(kWorkspace);
- context.al = context.cl;
- context.ah = 0;
- context.dx = (320);
- context._sub(context.dx, context.ax);
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidth3;
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop5:
- __dispatch_call(context, context.ax);
- context._add(context.di, context.dx);
- if (--context.cx) goto multiloop5;
- return;
-oddwidth3:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop6:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.di, context.dx);
- if (--context.cx) goto multiloop6;
- return;
-}
-
-void multidump(Context & context) {
- context.dx = 0x0a000;
- context.es = context.dx;
- context.ds = context.data.word(kWorkspace);
- context.ax = context.bx;
- context.bx = (320);
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.dx = (320);
- context.si = context.di;
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidth;
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.bl = context.cl;
- context.bh = 0;
- context._neg(context.bx);
- context._add(context.bx, context.dx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop1:
- __dispatch_call(context, context.ax);
- context._add(context.di, context.bx);
- context._add(context.si, context.bx);
- if (--context.cx) goto multiloop1;
- return;
-oddwidth:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.bl = context.cl;
- context.bh = 0;
- context._neg(context.bx);
- context._add(context.bx, (320));
- context.cl = context.ch;
- context.ch = 0;
-multiloop2:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.di, context.bx);
- context._add(context.si, context.bx);
- if (--context.cx) goto multiloop2;
- return;
-}
-
void width160(Context & context) {
context._movsw();
context._movsw();
@@ -4978,48 +4838,6 @@ backtosolid:
return;
}
-void frameoutnm(Context & context) {
- context.push(context.dx);
- context.ax = context.bx;
- context.bx = context.dx;
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.dx = context.pop();
- context.push(context.cx);
- context.ch = 0;
- context._sub(context.dx, context.cx);
- context.cx = context.pop();
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidthframe;
- context.bl = context.cl;
- context.bh = 0;
- context.ax = 1819;
- context._shr(context.bx, 1);
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-nmloop1:
- __dispatch_call(context, context.ax);
- context._add(context.di, context.dx);
- if (--context.cx) goto nmloop1;
- return;
-oddwidthframe:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-nmloop2:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.di, context.dx);
- if (--context.cx) goto nmloop2;
- return;
-}
-
void frameoutbh(Context & context) {
context.push(context.dx);
context.ax = context.bx;
@@ -21517,14 +21335,10 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc20c: doshake(context); break;
case 0xc210: zoom(context); break;
case 0xc214: delthisone(context); break;
- case 0xc218: multiget(context); break;
- case 0xc21c: multiput(context); break;
- case 0xc220: multidump(context); break;
case 0xc224: width160(context); break;
case 0xc228: doblocks(context); break;
case 0xc22c: showframe(context); break;
case 0xc230: frameoutv(context); break;
- case 0xc234: frameoutnm(context); break;
case 0xc238: frameoutbh(context); break;
case 0xc23c: frameoutfx(context); break;
case 0xc240: transferinv(context); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 228bf14..fcbf738 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -12,6 +12,10 @@ namespace dreamgen {
void quickquit(Context &context);
void quickquit2(Context &context);
void seecommandtail(Context &context);
+ void multiget(Context &context);
+ void multiput(Context &context);
+ void multidump(Context &context);
+ void frameoutnm(Context &context);
void keyboardread(Context &context);
void resetkeyboard(Context &context);
void setkeyboardint(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 94c6e7e..adc2cbb 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -227,6 +227,22 @@ static inline DreamWeb::DreamWebEngine *engine() {
return DreamWeb::DreamWebEngine::instance();
}
+void multiget(Context &context) {
+ ::error("multiget");
+}
+
+void multiput(Context &context) {
+ ::error("multiput");
+}
+
+void multidump(Context &context) {
+ ::error("multidump");
+}
+
+void frameoutnm(Context &context) {
+ ::error("frameoutnm");
+}
+
void seecommandtail(Context &context) {
context.data.word(kSoundbaseadd) = 0x220;
context.data.byte(kSoundint) = 5;
Commit: 4c54bf9799329da3a030d4df524c8e2b87b7a7fa
https://github.com/scummvm/scummvm/commit/4c54bf9799329da3a030d4df524c8e2b87b7a7fa
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:55-07:00
Commit Message:
DREAMWEB: implemented multiXXX vga functions
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index adc2cbb..68370ff 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -228,15 +228,46 @@ static inline DreamWeb::DreamWebEngine *engine() {
}
void multiget(Context &context) {
- ::error("multiget");
+ unsigned w = (uint8)context.cl, h = (uint8)context.ch;
+ unsigned pitch = (uint16)context.data.word(kScreenwidth);
+ unsigned src = (uint16)context.di + (uint16)context.bx * pitch;
+ unsigned dst = (uint16)context.si;
+ context.es = context.ds;
+ context.ds = context.data.word(kWorkspace);
+ //debug(1, "multiget %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
+ for(unsigned y = 0; y < h; ++y) {
+ uint8 *src_p = context.ds.ptr(src + pitch * y, w);
+ uint8 *dst_p = context.es.ptr(dst + w * y, w);
+ memcpy(src_p, dst_p, w);
+ }
}
void multiput(Context &context) {
- ::error("multiput");
+ unsigned w = (uint8)context.cl, h = (uint8)context.ch;
+ unsigned pitch = (uint16)context.data.word(kScreenwidth);
+ unsigned src = (uint16)context.si;
+ unsigned dst = (uint16)context.di + (uint16)context.bx * pitch;
+ context.es = context.data.word(kWorkspace);
+ //debug(1, "multiput %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
+ for(unsigned y = 0; y < h; ++y) {
+ uint8 *src_p = context.ds.ptr(src + w * y, w);
+ uint8 *dst_p = context.es.ptr(dst + pitch * y, w);
+ memcpy(src_p, dst_p, w);
+ }
}
void multidump(Context &context) {
- ::error("multidump");
+ unsigned w = (uint8)context.cl, h = (uint8)context.ch;
+ context.es = 0xa000;
+ context.ds = context.data.word(kWorkspace);
+ //debug(1, "multidump %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
+ unsigned pitch = (uint16)context.data.word(kScreenwidth);
+ unsigned offset = (uint16)context.di + (uint16)context.bx * pitch;
+ for(unsigned y = 0; y < h; ++y, offset += pitch * y) {
+ uint8 *src_p = context.ds.ptr(offset, w);
+ uint8 *dst_p = context.es.ptr(offset, w);
+ memcpy(src_p, dst_p, w);
+ }
}
void frameoutnm(Context &context) {
Commit: 8a72645c16a76937eaa5faf824fe5ae2eef8bebe
https://github.com/scummvm/scummvm/commit/8a72645c16a76937eaa5faf824fe5ae2eef8bebe
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:56-07:00
Commit Message:
DREAMWEB: added setPalette instead of showgroup + framenm
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 68370ff..5480aa6 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -217,6 +217,14 @@ void DreamWebEngine::fadeDos() {
waitForVSync();
}
}
+void DreamWebEngine::setPalette() {
+ PaletteManager *palette = _system->getPaletteManager();
+ unsigned n = (uint16)_context.cx;
+ uint8 *colors = _context.ds.ptr(_context.si, n * 3);
+ palette->setPalette(colors, _context.al, n);
+ _context.si += n * 3;
+ _context.cx = 0;
+}
} // End of namespace DreamWeb
@@ -271,7 +279,16 @@ void multidump(Context &context) {
}
void frameoutnm(Context &context) {
- ::error("frameoutnm");
+ unsigned w = (uint8)context.cl, h = (uint8)context.ch;
+ unsigned pitch = (uint16)context.dx;
+ unsigned src = (uint16)context.si;
+ unsigned dst = (uint16)context.di + (uint16)context.bx * pitch;
+ //debug(1, "framenm %ux%u[pitch: %u] -> segment: %04x->%04x", w, h, pitch, (uint16)context.ds, (uint16)context.es);
+ for(unsigned y = 0; y < h; ++y) {
+ uint8 *src_p = context.ds.ptr(src + w * y, w);
+ uint8 *dst_p = context.es.ptr(dst + pitch * y, w);
+ memcpy(src_p, dst_p, w);
+ }
}
void seecommandtail(Context &context) {
@@ -534,16 +551,7 @@ void mode640x480(Context &context) {
}
void showgroup(Context &context) {
- debug(1, "setting palette entries %u, %u colors, ds: %04x", (uint8)context.al, (uint16)context.cx, (uint16)context.ds);
- for(unsigned idx = context.al; context.cx--; ++idx) {
- context._lodsb();
- unsigned r = context.al;
- context._lodsb();
- unsigned g = context.al;
- context._lodsb();
- unsigned b = context.al;
- //debug(1, "%u -> (%u,%u,%u)", idx, r, g, b);
- }
+ engine()->setPalette();
}
void fadedos(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index ed4359f..1e9ace9 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -85,6 +85,7 @@ public:
void mouseCall(); //fill mouse pos and button state
void processEvents();
void setGraphicsMode();
+ void setPalette();
void fadeDos();
private:
Commit: b04f5908980c3b042d8eeba8333f03a1b697b400
https://github.com/scummvm/scummvm/commit/b04f5908980c3b042d8eeba8333f03a1b697b400
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:56-07:00
Commit Message:
DREAMWEB: added forgotten updateScreen()
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 5480aa6..f8a8b55 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -95,6 +95,7 @@ void DreamWebEngine::waitForVSync() {
memcpy(scanline, src, 320);
}
_system->unlockScreen();
+ _system->updateScreen();
/*
while (!_vSyncInterrupt) {
_system->delayMillis(10);
@@ -199,10 +200,12 @@ void DreamWebEngine::mouseCall() {
}
void DreamWebEngine::setGraphicsMode() {
+ processEvents();
initGraphics(320, 200, false);
}
void DreamWebEngine::fadeDos() {
+ //processEvents will be called from vsync
PaletteManager *palette = _system->getPaletteManager();
_context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
uint8 *dst = _context.es.ptr(dreamgen::kStartpal, 768);
@@ -218,6 +221,7 @@ void DreamWebEngine::fadeDos() {
}
}
void DreamWebEngine::setPalette() {
+ processEvents();
PaletteManager *palette = _system->getPaletteManager();
unsigned n = (uint16)_context.cx;
uint8 *colors = _context.ds.ptr(_context.si, n * 3);
Commit: e535e6e2953ed91e3b66ee74d88af1a715a97f3d
https://github.com/scummvm/scummvm/commit/e535e6e2953ed91e3b66ee74d88af1a715a97f3d
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:56-07:00
Commit Message:
DREAMWEB: added keyboard handling
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index f8a8b55..c36e27a 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -138,6 +138,7 @@ void DreamWebEngine::processEvents() {
}
break;
default:
+ keyPressed(event.kbd.ascii);
break;
}
break;
@@ -183,6 +184,19 @@ void DreamWebEngine::closeFile() {
_file.close();
}
+void DreamWebEngine::keyPressed(uint16 ascii) {
+ debug(1, "key pressed = %04x", ascii);
+ uint8* keybuf = _context.data.ptr(5715, 16); //fixme: some hardcoded offsets are not added as consts
+ uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) % 0x0f;
+ uint16 out = _context.data.word(dreamgen::kBufferout);
+ if (in == out) {
+ warning("keyboard buffer is full");
+ return;
+ }
+ _context.data.word(dreamgen::kBufferin) = in;
+ keybuf[in] = ascii;
+}
+
void DreamWebEngine::mouseCall() {
processEvents();
Common::Point pos = _mouse;
@@ -215,8 +229,10 @@ void DreamWebEngine::fadeDos() {
if (dst[c]) {
--dst[c];
}
+ dst[c] = c / 3;
}
- palette->setPalette(dst, 0, 64);
+ //Common::hexdump(dst, 64 * 3);
+ //palette->setPalette(dst, 0, 64);
waitForVSync();
}
}
@@ -225,7 +241,8 @@ void DreamWebEngine::setPalette() {
PaletteManager *palette = _system->getPaletteManager();
unsigned n = (uint16)_context.cx;
uint8 *colors = _context.ds.ptr(_context.si, n * 3);
- palette->setPalette(colors, _context.al, n);
+ //Common::hexdump(colors, n * 3);
+ //palette->setPalette(colors, _context.al, n);
_context.si += n * 3;
_context.cx = 0;
}
@@ -318,7 +335,7 @@ void quickquit2(Context &context) {
}
void keyboardread(Context &context) {
- ::error("keyboardread");
+ ::error("keyboardread"); //this keyboard int handler, must never be called
}
void resetkeyboard(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 1e9ace9..5d2b71b 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -89,6 +89,9 @@ public:
void fadeDos();
private:
+
+ void keyPressed(uint16 ascii);
+
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
Common::Point _mouse;
Commit: 5c629e3849a8ca97adfd077284ffd224a0c879c3
https://github.com/scummvm/scummvm/commit/5c629e3849a8ca97adfd077284ffd224a0c879c3
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:33:57-07:00
Commit Message:
DREAMWEB: fixed invalid memcpys
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index c36e27a..249e80c 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -138,7 +138,8 @@ void DreamWebEngine::processEvents() {
}
break;
default:
- keyPressed(event.kbd.ascii);
+ if (event.kbd.ascii)
+ keyPressed(event.kbd.ascii);
break;
}
break;
@@ -229,20 +230,22 @@ void DreamWebEngine::fadeDos() {
if (dst[c]) {
--dst[c];
}
- dst[c] = c / 3;
}
//Common::hexdump(dst, 64 * 3);
//palette->setPalette(dst, 0, 64);
- waitForVSync();
+ //waitForVSync();
}
}
void DreamWebEngine::setPalette() {
+ uint8 colors[768];
processEvents();
PaletteManager *palette = _system->getPaletteManager();
unsigned n = (uint16)_context.cx;
- uint8 *colors = _context.ds.ptr(_context.si, n * 3);
+ uint8 *src = _context.ds.ptr(_context.si, n * 3);
+ for(int i = 0; i < n * 3; ++i)
+ colors[i] = src[i] * 3;
//Common::hexdump(colors, n * 3);
- //palette->setPalette(colors, _context.al, n);
+ palette->setPalette(colors, _context.al, n);
_context.si += n * 3;
_context.cx = 0;
}
@@ -267,7 +270,7 @@ void multiget(Context &context) {
for(unsigned y = 0; y < h; ++y) {
uint8 *src_p = context.ds.ptr(src + pitch * y, w);
uint8 *dst_p = context.es.ptr(dst + w * y, w);
- memcpy(src_p, dst_p, w);
+ memcpy(dst_p, src_p, w);
}
}
@@ -281,7 +284,7 @@ void multiput(Context &context) {
for(unsigned y = 0; y < h; ++y) {
uint8 *src_p = context.ds.ptr(src + w * y, w);
uint8 *dst_p = context.es.ptr(dst + pitch * y, w);
- memcpy(src_p, dst_p, w);
+ memcpy(dst_p, src_p, w);
}
}
@@ -295,7 +298,7 @@ void multidump(Context &context) {
for(unsigned y = 0; y < h; ++y, offset += pitch * y) {
uint8 *src_p = context.ds.ptr(offset, w);
uint8 *dst_p = context.es.ptr(offset, w);
- memcpy(src_p, dst_p, w);
+ memcpy(dst_p, src_p, w);
}
}
@@ -308,7 +311,7 @@ void frameoutnm(Context &context) {
for(unsigned y = 0; y < h; ++y) {
uint8 *src_p = context.ds.ptr(src + w * y, w);
uint8 *dst_p = context.es.ptr(dst + pitch * y, w);
- memcpy(src_p, dst_p, w);
+ memcpy(dst_p, src_p, w);
}
}
Commit: 9109f36c042518ab78c1085ce8794e8aa3e4e87b
https://github.com/scummvm/scummvm/commit/9109f36c042518ab78c1085ce8794e8aa3e4e87b
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:00-07:00
Commit Message:
DREAMWEB: fixed typo in multidump
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 249e80c..98efb3b 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -295,7 +295,7 @@ void multidump(Context &context) {
//debug(1, "multidump %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
unsigned pitch = (uint16)context.data.word(kScreenwidth);
unsigned offset = (uint16)context.di + (uint16)context.bx * pitch;
- for(unsigned y = 0; y < h; ++y, offset += pitch * y) {
+ for(unsigned y = 0; y < h; ++y, offset += pitch) {
uint8 *src_p = context.ds.ptr(offset, w);
uint8 *dst_p = context.es.ptr(offset, w);
memcpy(dst_p, src_p, w);
Commit: 47ed2ce38578cc2148507815ebd60e205576c6d9
https://github.com/scummvm/scummvm/commit/47ed2ce38578cc2148507815ebd60e205576c6d9
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:04-07:00
Commit Message:
DREAMWEB: Fix typo
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 98efb3b..39baa68 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -652,7 +652,7 @@ sameline:
readabyte(context);
context.cx = context.pop();
context._add(context.bx, context.cx);
- if (--context.cx) context._stosb();
+ while (--context.cx) context._stosb();
context._cmp(context.bx, 4 * 80);
if (!context.flags.z()) goto sameline;
goto endline;
Commit: 038f19dfe98756da94cbe3de47940951fae90e03
https://github.com/scummvm/scummvm/commit/038f19dfe98756da94cbe3de47940951fae90e03
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:04-07:00
Commit Message:
DREAMWEB: The PCX decode works now.
There will be cleanups, and quite possibly a complete rewrite,
later. For now, this is encouraging enough. (The image looks wrong,
but that's because something else draws over it almost immediately.)
It currently cheats and sets the palette, where the original seems
to just store it in a buffer. I don't know where this should be
done.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 39baa68..556ed11 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -605,6 +605,9 @@ void readoneblock(Context &context) {
void readabyte(Context & context);
void showpcx(Context &context) {
+ Graphics::Surface *s = g_system->lockScreen();
+ int y = 0;
+
openfile(context);
context.ds = context.data.word(kWorkspace);
context.cx = 128;
@@ -616,6 +619,7 @@ void showpcx(Context &context) {
context.cx = 48;
context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
+ uint8 *pal = context.es.ptr(context.di, 768);
pcxpal:
context.push(context.cx);
readabyte(context);
@@ -626,7 +630,18 @@ pcxpal:
if (--context.cx) goto pcxpal;
context.cx = 768 - 48;
context.ax = 0x0ffff;
- while (--context.cx) context._stosw();
+ while (context.cx--) context._stosw();
+
+ // TODO: I think this is wrong. I mean, it's the right palette but I
+ // don't think this is the place to set it in the backend.
+
+ byte pal16[48];
+ for (int i = 0; i < 48; i++) {
+ pal16[i] = 4 * pal[i];
+ }
+
+ PaletteManager *palette = g_system->getPaletteManager();
+ palette->setPalette(pal16, 0, 256);
readoneblock(context);
context.si = 0;
@@ -639,6 +654,9 @@ convertpcx:
context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60;
context.bx = 0;
+
+ uint8 *src = context.es.ptr(context.di, 320);
+
sameline:
readabyte(context);
context.ah = context.al;
@@ -652,7 +670,7 @@ sameline:
readabyte(context);
context.cx = context.pop();
context._add(context.bx, context.cx);
- while (--context.cx) context._stosb();
+ while (context.cx--) context._stosb();
context._cmp(context.bx, 4 * 80);
if (!context.flags.z()) goto sameline;
goto endline;
@@ -670,14 +688,30 @@ endline:
context.si = 0+(228*13)+32+60;
context.ds = context.data.word(kBuffers);
- // TODO: There's a bunch of code here which I assume draws data to the
- // screen or something like that.
+ uint8 *dst = (uint8 *)s->getBasePtr(0, y);
+ memset(dst, 0, 640);
+
+ for (int i = 0; i < 320; i++) {
+ int plane = i / 80;
+ int pos = i % 80;
+
+ for (int j = 0; j < 8; j++) {
+ byte bit = (src[i] >> (7 - j)) & 1;
+ dst[8 * pos + j] |= (bit << plane);
+ }
+ }
context.si = context.pop();
context.cx = context.pop();
+
+ y++;
+
if (--context.cx) goto convertpcx;
closefile(context);
+
+ g_system->unlockScreen();
+ g_system->updateScreen();
}
} /*namespace dreamgen */
Commit: 3f592047bb6e3558d9aca19e2e50fa2f533d8331
https://github.com/scummvm/scummvm/commit/3f592047bb6e3558d9aca19e2e50fa2f533d8331
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:05-07:00
Commit Message:
DREAMWEB: fixed rep prefix
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 3caf21e..0e87656 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -393,7 +393,7 @@ namespace %s {
self.body += p
def _rep(self):
- self.body += "\twhile(--context.cx) ";
+ self.body += "\twhile(context.cx--) ";
def _lodsb(self):
self.body += "\tcontext._lodsb();\n";
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index b27c44e..81d76fe 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2428,7 +2428,7 @@ void clearsprites(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = 255;
context.cx = (32)*16;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
return;
}
@@ -2455,7 +2455,7 @@ void delsprite(Context & context) {
context.di = context.bx;
context.cx = (32);
context.al = 255;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
return;
}
@@ -3646,7 +3646,7 @@ void updatepeople(Context & context) {
context.data.word(kListpos) = context.di;
context.cx = 12*5;
context.al = 255;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context._add(context.data.word(kMaintimer), 1);
context.es = context.cs;
context.bx = 534;
@@ -4040,7 +4040,7 @@ void cls(Context & context) {
context.di = 0;
context.cx = 0x7fff;
context.ax = 0;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
return;
}
@@ -4344,7 +4344,7 @@ void delthisone(Context & context) {
deloneloop:
context.push(context.cx);
context.ch = 0;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.cx = context.pop();
context._add(context.di, context.ax);
context._add(context.si, context.dx);
@@ -4953,7 +4953,7 @@ void transferinv(Context & context) {
context._mul(context.cx);
context.cx = context.ax;
context.push(context.cx);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.cx = context.pop();
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
@@ -5000,7 +5000,7 @@ void transfermap(Context & context) {
context._mul(context.cx);
context.cx = context.ax;
context.push(context.cx);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.cx = context.pop();
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
@@ -5036,7 +5036,7 @@ void clearendpal(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
return;
}
@@ -5062,7 +5062,7 @@ void fadetowhite(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 63;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.al = 0;
context._stosb();
@@ -5081,7 +5081,7 @@ void fadefromwhite(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768;
context.al = 63;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.al = 0;
context._stosb();
@@ -5122,11 +5122,11 @@ halfend:
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(56*3);
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(56*3);
context.cx = 3*5;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(77*3);
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(77*3);
context.cx = 3*2;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.data.byte(kFadedirection) = 1;
context.data.byte(kFadecount) = 31;
context.data.byte(kColourpos) = 0;
@@ -5418,7 +5418,7 @@ void paltostartpal(Context & context) {
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
return;
}
@@ -5428,7 +5428,7 @@ void endpaltostart(Context & context) {
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
return;
}
@@ -5438,7 +5438,7 @@ void startpaltoend(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
return;
}
@@ -5448,7 +5448,7 @@ void paltoendpal(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
return;
}
@@ -5458,7 +5458,7 @@ void allpalette(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
dumpcurrent(context);
return;
}
@@ -5484,7 +5484,7 @@ void fadedownmon(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
context.cx = 3*8;
context.ax = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
context._stosb();
context._stosw();
@@ -5504,7 +5504,7 @@ void fadeupmon(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
context.cx = 3*8;
context.ax = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
@@ -5524,7 +5524,7 @@ void fadeupmonfirst(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
context.cx = 3*8;
context.ax = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
@@ -5547,7 +5547,7 @@ void fadeupyellows(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
context.cx = 3*8;
context.ax = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
context._stosb();
context._stosw();
@@ -5566,7 +5566,7 @@ void initialmoncols(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
context.cx = 3*9;
context.ax = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
@@ -6495,7 +6495,7 @@ void findallryan(Context & context) {
context.push(context.di);
context.cx = 30;
context.ax = 0x0ffff;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.di = context.pop();
context.cl = 4;
context.ds = context.data.word(kExtras);
@@ -6527,7 +6527,7 @@ void findallopen(Context & context) {
context.push(context.di);
context.cx = 16;
context.ax = 0x0ffff;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.di = context.pop();
context.cl = context.data.byte(kOpenedob);
context.dl = context.data.byte(kOpenedtype);
@@ -8205,7 +8205,7 @@ void transfertoex(Context & context) {
context.ds = context.data.word(kFreedat);
context.si = context.ax;
context.cx = 8;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
context.di = context.pop();
context.al = context.data.byte(kReallocation);
context.es.byte(context.di) = context.al;
@@ -8280,7 +8280,7 @@ void transfercontoex(Context & context) {
context.ds = context.pop();
context.push(context.di);
context.cx = 8;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
context.di = context.pop();
context.dx = context.pop();
context.al = context.data.byte(kReallocation);
@@ -8439,7 +8439,7 @@ void deleteexobject(Context & context) {
context.push(context.cx);
context.al = 255;
context.cx = 16;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.ax = context.pop();
context.cl = context.al;
context._add(context.al, context.al);
@@ -8497,7 +8497,7 @@ void deleteexframe(Context & context) {
context._add(context.si, context.ax);
context.push(context.ax);
context.ds = context.es;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.bx = context.pop();
context._sub(context.data.word(kExframepos), context.bx);
context.si = context.pop();
@@ -8538,7 +8538,7 @@ findlenextext:
context.push(context.bx);
context.push(context.ax);
context._sub(context.cx, context.bx);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.bx = context.pop();
context._sub(context.data.word(kExtextpos), context.bx);
context.si = context.pop();
@@ -8772,7 +8772,7 @@ oberase:
context.di = context.bx;
context.al = 255;
context.cx = (32);
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
notthisob:
context.bx = context.pop();
context.cx = context.pop();
@@ -8789,7 +8789,7 @@ void showallobs(Context & context) {
context.di = context.bx;
context.cx = 128*5;
context.al = 255;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.es = context.data.word(kSetframes);
context.data.word(kFrsegment) = context.es;
context.ax = (0);
@@ -8904,7 +8904,7 @@ void showallfree(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
context.cx = 80*5;
context.al = 255;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.es = context.data.word(kFreeframes);
context.data.word(kFrsegment) = context.es;
context.ax = (0);
@@ -8983,7 +8983,7 @@ void showallex(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
context.cx = 100*5;
context.al = 255;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.es = context.data.word(kExtras);
context.data.word(kFrsegment) = context.es;
context.ax = (0);
@@ -10051,12 +10051,12 @@ void usemon(Context & context) {
context.di = 2892+1;
context.cx = 12;
context.al = 32;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.es = context.cs;
context.di = 2883+1;
context.cx = 12;
context.al = 32;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.es = context.cs;
context.di = 2807;
context.es.byte(context.di) = 1;
@@ -10412,7 +10412,7 @@ void input(Context & context) {
context.di = 7816;
context.cx = 64;
context.al = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.data.word(kCurpos) = 0;
context.al = '>';
context.di = context.data.word(kMonadx);
@@ -10629,7 +10629,7 @@ dirroot:
context.di = 2892;
context._add(context.di, 1);
context.cx = 12;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
monitorlogo(context);
scrollmonitor(context);
context.al = 9;
@@ -10909,7 +10909,7 @@ keyok2:
context.es = context.cs;
context.di = 2892+1;
context.cx = 12;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
monitorlogo(context);
scrollmonitor(context);
context.al = 10;
@@ -11019,7 +11019,7 @@ void parser(Context & context) {
context.di = 2883;
context.cx = 13;
context.al = 0;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.di = 2883;
context.al = '=';
context._stosb();
@@ -15984,7 +15984,7 @@ alreadyactsave:
context.bx = context.di;
context.es = context.cs;
context.cx = 16;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
context.al = context.data.byte(kRoomssample);
context.es.byte(context.bx+13) = context.al;
context.al = context.data.byte(kMapx);
@@ -16317,7 +16317,7 @@ void namestoold(Context & context) {
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.es = context.data.word(kBuffers);
context.cx = 17*4;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
return;
}
@@ -16327,7 +16327,7 @@ void oldtonames(Context & context) {
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.ds = context.data.word(kBuffers);
context.cx = 17*4;
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
return;
}
@@ -16566,7 +16566,7 @@ void trysoundalloc(Context & context) {
context.di = 0;
context.cx = 16384/2;
context.ax = 0x7f7f;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.data.byte(kNeedsoundbuff) = 1;
return;
soundfail:
@@ -16695,7 +16695,7 @@ notch0only:
context.di = context.data.word(kSoundbufferwrite);
context.cx = 1024;
context.ax = 0x7f7f;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context._and(context.di, 16384-1);
context.data.word(kSoundbufferwrite) = context.di;
return;
@@ -16758,7 +16758,7 @@ void channel0tran(Context & context) {
context._cmp(context.data.byte(kVolume), 0);
if (!context.flags.z()) goto lowvolumetran;
context.cx = 1024;
- while(--context.cx) context._movsw();
+ while(context.cx--) context._movsw();
return;
lowvolumetran:
context.cx = 1024;
@@ -17161,24 +17161,24 @@ void clearbuffers(Context & context) {
context.cx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0)/2;
context.ax = 0;
context.di = 0;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.es = context.data.word(kExtras);
context.cx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/2;
context.ax = 0x0ffff;
context.di = 0;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.es = context.data.word(kBuffers);
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
context.ds = context.cs;
context.si = 534;
context.cx = (991-534);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.es = context.data.word(kBuffers);
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
context.ds = context.cs;
context.si = 0;
context.cx = (68-0);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
clearchanges(context);
return;
}
@@ -17188,19 +17188,19 @@ void clearchanges(Context & context) {
context.cx = (250)*2;
context.ax = 0x0ffff;
context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.ds = context.data.word(kBuffers);
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
context.es = context.cs;
context.di = 534;
context.cx = (991-534);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.ds = context.data.word(kBuffers);
context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
context.es = context.cs;
context.di = 0;
context.cx = (68-0);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.data.byte(kExpos) = 0;
context.data.word(kExframepos) = 0;
context.data.word(kExtextpos) = 0;
@@ -17208,7 +17208,7 @@ void clearchanges(Context & context) {
context.cx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/2;
context.ax = 0x0ffff;
context.di = 0;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.es = context.cs;
context.di = 7782;
context.al = 1;
@@ -17220,7 +17220,7 @@ void clearchanges(Context & context) {
context._stosb();
context.ax = 0;
context.cx = 6;
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
return;
}
@@ -17249,7 +17249,7 @@ void clearrest(Context & context) {
context.cx = (66*60)/2;
context.ax = 0;
context.di = (0);
- while(--context.cx) context._stosw();
+ while(context.cx--) context._stosw();
context.es = context.data.word(kBackdrop);
deallocatemem(context);
context.es = context.data.word(kSetframes);
@@ -19052,7 +19052,7 @@ finishmakename:
context._stosb();
return;
context.al = 255;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
return;
}
@@ -20201,7 +20201,7 @@ blimey:
context.push(context.cx);
context.push(context.si);
context.cx = (66);
- while(--context.cx) context._movsb();
+ while(context.cx--) context._movsb();
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 132);
@@ -20450,7 +20450,7 @@ void fillspace(Context & context) {
context.push(context.bx);
context.di = context.dx;
context.es = context.ds;
- while(--context.cx) context._stosb();
+ while(context.cx--) context._stosb();
context.bx = context.pop();
context.di = context.pop();
context.dx = context.pop();
Commit: 9034191796702956e84067fd6cdfbc2bae1bf768
https://github.com/scummvm/scummvm/commit/9034191796702956e84067fd6cdfbc2bae1bf768
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:07-07:00
Commit Message:
DREAMWEB: removed dummy video segment, blacklisted video-related functions.
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
engines/dreamweb/runtime.h
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 1763a25..4c27cb5 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -7,5 +7,17 @@ p = parser()
p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
p.link()
-generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2', 'seecommandtail', 'multiget', 'multiput', 'multidump', 'frameoutnm'])
+generator = cpp(context, "dreamgen", blacklist = [
+ 'randomnumber',
+ 'quickquit',
+ 'quickquit2',
+ 'seecommandtail',
+ 'multiget',
+ 'multiput',
+ 'multidump',
+ 'frameoutnm',
+ 'cls',
+ 'printundermon',
+ 'worktoscreen',
+ ])
generator.generate('dreamweb') #start routine
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 81d76fe..2cb71e0 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -10,7 +10,6 @@ void readsetdata(Context &context);
void loadpalfromiff(Context &context);
void titles(Context &context);
void credits(Context &context);
-void cls(Context &context);
void decide(Context &context);
void clearchanges(Context &context);
void loadroom(Context &context);
@@ -60,7 +59,6 @@ void animpointer(Context &context);
void showpointer(Context &context);
void dumppointer(Context &context);
void commandonly(Context &context);
-void worktoscreen(Context &context);
void showtime(Context &context);
void showwatch(Context &context);
void printmessage(Context &context);
@@ -279,7 +277,6 @@ void modifychar(Context &context);
void printchar(Context &context);
void showcurrentfile(Context &context);
void printlogo(Context &context);
-void printundermon(Context &context);
void randomaccess(Context &context);
void locklighton(Context &context);
void locklightoff(Context &context);
@@ -430,7 +427,6 @@ void frameoutbh(Context &context);
void frameoutv(Context &context);
void putunderzoom(Context &context);
void crosshair(Context &context);
-void width160(Context &context);
void maptopanel(Context &context);
void movemap(Context &context);
void dealwithspecial(Context &context);
@@ -4034,71 +4030,6 @@ nought:
return;
}
-void cls(Context & context) {
- context.ax = 0x0a000;
- context.es = context.ax;
- context.di = 0;
- context.cx = 0x7fff;
- context.ax = 0;
- while(context.cx--) context._stosw();
- return;
-}
-
-void printundermon(Context & context) {
- context.si = ((320)*43)+76;
- context.di = context.si;
- context.es = context.data.word(kWorkspace);
- context._add(context.si, 8*(320));
- context.dx = 0x0a000;
- context.ds = context.dx;
- context.cx = 104;
-scrollmonloop1:
- context.push(context.cx);
- context.push(context.di);
- context.push(context.si);
- context.cx = 170;
-scrollmonloop2:
- context._lodsb();
- context._cmp(context.al, 231);
- if (!context.flags.c()) goto dontplace;
-placeit:
- context._stosb();
- if (--context.cx) goto scrollmonloop2;
- goto finmonscroll;
-dontplace:
- context._add(context.di, 1);
- if (--context.cx) goto scrollmonloop2;
-finmonscroll:
- context.si = context.pop();
- context.di = context.pop();
- context.cx = context.pop();
- context._add(context.si, (320));
- context._add(context.di, (320));
- if (--context.cx) goto scrollmonloop1;
- return;
-}
-
-void worktoscreen(Context & context) {
- vsync(context);
- context.si = 0;
- context.di = 0;
- context.cx = 25;
- context.ds = context.data.word(kWorkspace);
- context.dx = 0x0a000;
- context.es = context.dx;
-dumpallloop:
- width160(context);
- width160(context);
- width160(context);
- width160(context);
- width160(context);
- width160(context);
- width160(context);
- width160(context);
- if (--context.cx) goto dumpallloop;
- return;
-}
-
void paneltomap(Context & context) {
context.di = context.data.word(kMapxstart);
context._add(context.di, context.data.word(kMapadx));
@@ -21321,9 +21252,6 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc1d4: readoneblock(context); break;
case 0xc1d8: loadpalfromiff(context); break;
case 0xc1dc: setmode(context); break;
- case 0xc1e0: cls(context); break;
- case 0xc1e4: printundermon(context); break;
- case 0xc1e8: worktoscreen(context); break;
case 0xc1ec: paneltomap(context); break;
case 0xc1f0: maptopanel(context); break;
case 0xc1f4: dumpmap(context); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index fcbf738..40e3539 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -16,6 +16,9 @@ namespace dreamgen {
void multiput(Context &context);
void multidump(Context &context);
void frameoutnm(Context &context);
+ void cls(Context &context);
+ void printundermon(Context &context);
+ void worktoscreen(Context &context);
void keyboardread(Context &context);
void resetkeyboard(Context &context);
void setkeyboardint(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 556ed11..4e24c49 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -86,16 +86,6 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
void DreamWebEngine::waitForVSync() {
processEvents();
- Graphics::Surface *s = _system->lockScreen();
- if (!s)
- error("lockScreen failed");
- for(int y = 0; y < 200; ++y) {
- uint8 *scanline = (uint8*)s->getBasePtr(0, y);
- uint8 *src = _context.video.ptr(y * 320, 320);
- memcpy(scanline, src, 320);
- }
- _system->unlockScreen();
- _system->updateScreen();
/*
while (!_vSyncInterrupt) {
_system->delayMillis(10);
@@ -220,6 +210,7 @@ void DreamWebEngine::setGraphicsMode() {
}
void DreamWebEngine::fadeDos() {
+ waitForVSync();
//processEvents will be called from vsync
PaletteManager *palette = _system->getPaletteManager();
_context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
@@ -231,9 +222,8 @@ void DreamWebEngine::fadeDos() {
--dst[c];
}
}
- //Common::hexdump(dst, 64 * 3);
- //palette->setPalette(dst, 0, 64);
- //waitForVSync();
+ palette->setPalette(dst, 0, 64);
+ waitForVSync();
}
}
void DreamWebEngine::setPalette() {
@@ -242,7 +232,7 @@ void DreamWebEngine::setPalette() {
PaletteManager *palette = _system->getPaletteManager();
unsigned n = (uint16)_context.cx;
uint8 *src = _context.ds.ptr(_context.si, n * 3);
- for(int i = 0; i < n * 3; ++i)
+ for(unsigned i = 0; i < n * 3; ++i)
colors[i] = src[i] * 3;
//Common::hexdump(colors, n * 3);
palette->setPalette(colors, _context.al, n);
@@ -250,6 +240,15 @@ void DreamWebEngine::setPalette() {
_context.cx = 0;
}
+void DreamWebEngine::blit(uint8 *src, int pitch, int x, int y, int w, int h) {
+ _system->copyRectToScreen(src, pitch, x, y, w, h);
+}
+
+void DreamWebEngine::cls() {
+ _system->fillScreen(0);
+}
+
+
} // End of namespace DreamWeb
@@ -289,17 +288,25 @@ void multiput(Context &context) {
}
void multidump(Context &context) {
- unsigned w = (uint8)context.cl, h = (uint8)context.ch;
- context.es = 0xa000;
- context.ds = context.data.word(kWorkspace);
+ int w = (uint8)context.cl, h = (uint8)context.ch;
+ int x = (int16)context.di, y = (int16)context.bx;
+ int pitch = (uint16)context.data.word(kScreenwidth);
+ unsigned offset = x + y * pitch;
//debug(1, "multidump %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
- unsigned pitch = (uint16)context.data.word(kScreenwidth);
- unsigned offset = (uint16)context.di + (uint16)context.bx * pitch;
- for(unsigned y = 0; y < h; ++y, offset += pitch) {
- uint8 *src_p = context.ds.ptr(offset, w);
- uint8 *dst_p = context.es.ptr(offset, w);
- memcpy(dst_p, src_p, w);
- }
+ engine()->blit(context.ds.ptr(offset, w * h), pitch, x, y, w, h);
+}
+
+void worktoscreen(Context &context) {
+ context.ds = context.data.word(kWorkspace);
+ engine()->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200);
+}
+
+void printundermon(Context &context) {
+ warning("printundermon: STUB");
+}
+
+void cls(Context &context) {
+ engine()->cls();
}
void frameoutnm(Context &context) {
@@ -579,12 +586,11 @@ void showgroup(Context &context) {
}
void fadedos(Context &context) {
- vsync(context);
engine()->fadeDos();
}
void doshake(Context &context) {
- ::error("doshake");
+ warning("doshake: STUB");
}
void vsync(Context &context) {
@@ -683,8 +689,6 @@ normal:
endline:
context.di = context.pop();
context.push(context.si);
- context.dx = 0xa000;
- context.es = context.dx;
context.si = 0+(228*13)+32+60;
context.ds = context.data.word(kBuffers);
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 5d2b71b..3038de3 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -87,6 +87,8 @@ public:
void setGraphicsMode();
void setPalette();
void fadeDos();
+ void blit(uint8 *src, int pitch, int x, int y, int w, int h);
+ void cls();
private:
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 525a4df..80ab8db 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -199,7 +199,7 @@ class Context {
FreeSegmentList _freeSegments;
public:
- enum { kDefaultDataSegment = 0x1000, kVideoSegment = 0xa000 };
+ enum { kDefaultDataSegment = 0x1000 };
Register ax, dx, bx, cx, si, di;
LowPartOfRegister al;
@@ -211,21 +211,17 @@ public:
LowPartOfRegister dl;
HighPartOfRegister dh;
- SegmentRef cs, ds, es, data, video;
+ SegmentRef cs, ds, es, data;
//data == fake segment register always pointing to data segment
Flags flags;
inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx),
- cs(this), ds(this), es(this), data(this), video(this) {
+ cs(this), ds(this), es(this), data(this) {
_segments[kDefaultDataSegment] = SegmentPtr(new Segment());
- _segments[kVideoSegment] = SegmentPtr(new Segment());
- _segments[kVideoSegment]->data.resize(0x10000);
-
cs.reset(kDefaultDataSegment);
ds.reset(kDefaultDataSegment);
es.reset(kDefaultDataSegment);
data.reset(kDefaultDataSegment);
- video.reset(kVideoSegment);
}
SegmentRef getSegment(uint16 value) {
Commit: c8be54bbd85c0d86452cdd1f3b614e12dd52c7f0
https://github.com/scummvm/scummvm/commit/c8be54bbd85c0d86452cdd1f3b614e12dd52c7f0
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:10-07:00
Commit Message:
DREAMWEB: Cleaned up the PCX decoder slightly
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 4e24c49..788f98f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -612,7 +612,6 @@ void readabyte(Context & context);
void showpcx(Context &context) {
Graphics::Surface *s = g_system->lockScreen();
- int y = 0;
openfile(context);
context.ds = context.data.word(kWorkspace);
@@ -688,11 +687,9 @@ normal:
endline:
context.di = context.pop();
- context.push(context.si);
- context.si = 0+(228*13)+32+60;
- context.ds = context.data.word(kBuffers);
+ context.cx = context.pop();
- uint8 *dst = (uint8 *)s->getBasePtr(0, y);
+ uint8 *dst = (uint8 *)s->getBasePtr(0, 480 - (uint16)context.cx);
memset(dst, 0, 640);
for (int i = 0; i < 320; i++) {
@@ -705,16 +702,13 @@ endline:
}
}
- context.si = context.pop();
- context.cx = context.pop();
-
- y++;
-
if (--context.cx) goto convertpcx;
closefile(context);
g_system->unlockScreen();
+
+ // TODO: This is probably not the right place to do this
g_system->updateScreen();
}
Commit: d70bc05b8e2afb87a9a0033119fd312073905485
https://github.com/scummvm/scummvm/commit/d70bc05b8e2afb87a9a0033119fd312073905485
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:10-07:00
Commit Message:
DREAMWEB: added assertion
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 788f98f..9445f7f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -689,6 +689,7 @@ endline:
context.di = context.pop();
context.cx = context.pop();
+ assert((uint16)context.cx <= 480);
uint8 *dst = (uint8 *)s->getBasePtr(0, 480 - (uint16)context.cx);
memset(dst, 0, 640);
Commit: fd1360096b88156eb0eb4ef8305b5d62216c8248
https://github.com/scummvm/scummvm/commit/fd1360096b88156eb0eb4ef8305b5d62216c8248
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:10-07:00
Commit Message:
DREAMWEB: replace pitch with kScreenwidth
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 9445f7f..e0ed987 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -260,14 +260,13 @@ static inline DreamWeb::DreamWebEngine *engine() {
void multiget(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
- unsigned pitch = (uint16)context.data.word(kScreenwidth);
- unsigned src = (uint16)context.di + (uint16)context.bx * pitch;
+ unsigned src = (uint16)context.di + (uint16)context.bx * kScreenwidth;
unsigned dst = (uint16)context.si;
context.es = context.ds;
context.ds = context.data.word(kWorkspace);
//debug(1, "multiget %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
for(unsigned y = 0; y < h; ++y) {
- uint8 *src_p = context.ds.ptr(src + pitch * y, w);
+ uint8 *src_p = context.ds.ptr(src + kScreenwidth * y, w);
uint8 *dst_p = context.es.ptr(dst + w * y, w);
memcpy(dst_p, src_p, w);
}
@@ -275,14 +274,13 @@ void multiget(Context &context) {
void multiput(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
- unsigned pitch = (uint16)context.data.word(kScreenwidth);
unsigned src = (uint16)context.si;
- unsigned dst = (uint16)context.di + (uint16)context.bx * pitch;
+ unsigned dst = (uint16)context.di + (uint16)context.bx * kScreenwidth;
context.es = context.data.word(kWorkspace);
//debug(1, "multiput %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
for(unsigned y = 0; y < h; ++y) {
uint8 *src_p = context.ds.ptr(src + w * y, w);
- uint8 *dst_p = context.es.ptr(dst + pitch * y, w);
+ uint8 *dst_p = context.es.ptr(dst + kScreenwidth * y, w);
memcpy(dst_p, src_p, w);
}
}
@@ -290,10 +288,9 @@ void multiput(Context &context) {
void multidump(Context &context) {
int w = (uint8)context.cl, h = (uint8)context.ch;
int x = (int16)context.di, y = (int16)context.bx;
- int pitch = (uint16)context.data.word(kScreenwidth);
- unsigned offset = x + y * pitch;
- //debug(1, "multidump %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
- engine()->blit(context.ds.ptr(offset, w * h), pitch, x, y, w, h);
+ unsigned offset = x + y * kScreenwidth;
+ debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
+ engine()->blit(context.ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
}
void worktoscreen(Context &context) {
Commit: 938c14ddacbeb3669012bc64eab92a0f2d0654a9
https://github.com/scummvm/scummvm/commit/938c14ddacbeb3669012bc64eab92a0f2d0654a9
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:11-07:00
Commit Message:
DREAMWEB: increased vga frequency to 70Hz, fixed data segments
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index e0ed987..cab9863 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -86,12 +86,12 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
void DreamWebEngine::waitForVSync() {
processEvents();
-/*
+
while (!_vSyncInterrupt) {
_system->delayMillis(10);
}
setVSyncInterrupt(false);
-*/
+
// doshake
// dofade
}
@@ -144,7 +144,8 @@ Common::Error DreamWebEngine::run() {
_mouseState = 0;
_console = new DreamWebConsole(this);
- getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 60, this);
+ getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70, this);
+ //http://martin.hinner.info/vga/timing.html
dreamgen::__start(_context);
@@ -226,6 +227,7 @@ void DreamWebEngine::fadeDos() {
waitForVSync();
}
}
+
void DreamWebEngine::setPalette() {
uint8 colors[768];
processEvents();
@@ -286,7 +288,10 @@ void multiput(Context &context) {
}
void multidump(Context &context) {
+ context.ds = context.data.word(kWorkspace);
int w = (uint8)context.cl, h = (uint8)context.ch;
+ if (w == 0 || h == 0)
+ return;
int x = (int16)context.di, y = (int16)context.bx;
unsigned offset = x + y * kScreenwidth;
debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
Commit: d0404f4b617730024d28d56632821ea403bf8cb0
https://github.com/scummvm/scummvm/commit/d0404f4b617730024d28d56632821ea403bf8cb0
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:11-07:00
Commit Message:
DREAMWEB: moved palette fixes into set/getPalette
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index cab9863..12a43a9 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -213,36 +213,46 @@ void DreamWebEngine::setGraphicsMode() {
void DreamWebEngine::fadeDos() {
waitForVSync();
//processEvents will be called from vsync
- PaletteManager *palette = _system->getPaletteManager();
_context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
uint8 *dst = _context.es.ptr(dreamgen::kStartpal, 768);
- palette->grabPalette(dst, 0, 64);
+ getPalette(dst, 0, 64);
for(int fade = 0; fade < 64; ++fade) {
for(int c = 0; c < 768; ++c) { //original sources decrement 768 values -> 256 colors
if (dst[c]) {
--dst[c];
}
}
- palette->setPalette(dst, 0, 64);
+ setPalette(dst, 0, 64);
waitForVSync();
}
}
void DreamWebEngine::setPalette() {
- uint8 colors[768];
processEvents();
- PaletteManager *palette = _system->getPaletteManager();
unsigned n = (uint16)_context.cx;
uint8 *src = _context.ds.ptr(_context.si, n * 3);
- for(unsigned i = 0; i < n * 3; ++i)
- colors[i] = src[i] * 3;
- //Common::hexdump(colors, n * 3);
- palette->setPalette(colors, _context.al, n);
+ setPalette(src, _context.al, n);
_context.si += n * 3;
_context.cx = 0;
}
-void DreamWebEngine::blit(uint8 *src, int pitch, int x, int y, int w, int h) {
+void DreamWebEngine::getPalette(uint8 *data, uint start, uint count) {
+ _system->getPaletteManager()->grabPalette(data, start, count);
+ while(count--)
+ *data++ >>= 2;
+}
+
+void DreamWebEngine::setPalette(const uint8 *data, uint start, uint count) {
+ assert(start + count <= 256);
+ uint8 fixed[768];
+ for(uint i = 0; i < count * 3; ++i) {
+ fixed[i] = data[i] << 2;
+ }
+ _system->getPaletteManager()->setPalette(fixed, start, count);
+}
+
+
+void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int h) {
_system->copyRectToScreen(src, pitch, x, y, w, h);
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 3038de3..0666bb8 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -87,8 +87,11 @@ public:
void setGraphicsMode();
void setPalette();
void fadeDos();
- void blit(uint8 *src, int pitch, int x, int y, int w, int h);
+ void blit(const uint8 *src, int pitch, int x, int y, int w, int h);
void cls();
+
+ void getPalette(uint8 *data, uint start, uint count);
+ void setPalette(const uint8 *data, uint start, uint count);
private:
Commit: b01af82d09973ec72ff9d81ec2fd0f719465f133
https://github.com/scummvm/scummvm/commit/b01af82d09973ec72ff9d81ec2fd0f719465f133
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:12-07:00
Commit Message:
DREAMWEB: Make it easier to quit (albeit not yet very gracefully)
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 12a43a9..da6c590 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -99,11 +99,12 @@ void DreamWebEngine::waitForVSync() {
void DreamWebEngine::processEvents() {
Common::EventManager *event_manager = _system->getEventManager();
Common::Event event;
+ if (event_manager->shouldQuit()) {
+ warning("Engine should quit gracefully (but doesn't yet)");
+ g_system->quit();
+ }
while (event_manager->pollEvent(event)) {
switch(event.type) {
- case Common::EVENT_RTL:
- warning("quit requested");
- return;
case Common::EVENT_LBUTTONDOWN:
_mouseState |= 1;
break;
Commit: 9b7b93e8ea19c878544458f50c9469e24468963a
https://github.com/scummvm/scummvm/commit/9b7b93e8ea19c878544458f50c9469e24468963a
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:12-07:00
Commit Message:
DREAMWEB: fixed fades and palette setting
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index da6c590..3de79a6 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -44,6 +44,11 @@
#include "dreamweb/dreamweb.h"
#include "dreamweb/dreamgen.h"
+namespace dreamgen {
+ void doshake(dreamgen::Context &context);
+ void dofade(dreamgen::Context &context);
+}
+
namespace DreamWeb {
DreamWebEngine *DreamWebEngine::_instance;
@@ -92,8 +97,9 @@ void DreamWebEngine::waitForVSync() {
}
setVSyncInterrupt(false);
- // doshake
- // dofade
+ dreamgen::doshake(_context);
+ dreamgen::dofade(_context);
+ _system->updateScreen();
}
void DreamWebEngine::processEvents() {
@@ -212,6 +218,7 @@ void DreamWebEngine::setGraphicsMode() {
}
void DreamWebEngine::fadeDos() {
+ return; //fixme later
waitForVSync();
//processEvents will be called from vsync
_context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
@@ -603,7 +610,7 @@ void fadedos(Context &context) {
}
void doshake(Context &context) {
- warning("doshake: STUB");
+ //warning("doshake: STUB");
}
void vsync(Context &context) {
@@ -611,6 +618,7 @@ void vsync(Context &context) {
}
void setmode(Context &context) {
+ vsync(context);
engine()->setGraphicsMode();
}
@@ -637,7 +645,7 @@ void showpcx(Context &context) {
context.cx = 48;
context.es = context.data.word(kBuffers);
context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
- uint8 *pal = context.es.ptr(context.di, 768);
+
pcxpal:
context.push(context.cx);
readabyte(context);
@@ -649,18 +657,6 @@ pcxpal:
context.cx = 768 - 48;
context.ax = 0x0ffff;
while (context.cx--) context._stosw();
-
- // TODO: I think this is wrong. I mean, it's the right palette but I
- // don't think this is the place to set it in the backend.
-
- byte pal16[48];
- for (int i = 0; i < 48; i++) {
- pal16[i] = 4 * pal[i];
- }
-
- PaletteManager *palette = g_system->getPaletteManager();
- palette->setPalette(pal16, 0, 256);
-
readoneblock(context);
context.si = 0;
context.di = 0;
Commit: 3ecd3f9ca1a1b530bc01d5090ff91ed5d8dbe306
https://github.com/scummvm/scummvm/commit/3ecd3f9ca1a1b530bc01d5090ff91ed5d8dbe306
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:12-07:00
Commit Message:
DREAMWEB: commented out noisy debug
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 3de79a6..5b5f2c2 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -312,7 +312,7 @@ void multidump(Context &context) {
return;
int x = (int16)context.di, y = (int16)context.bx;
unsigned offset = x + y * kScreenwidth;
- debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
+ //debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
engine()->blit(context.ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
}
Commit: 985d2facf23718bf2dc6672914fc6dd4a59e8193
https://github.com/scummvm/scummvm/commit/985d2facf23718bf2dc6672914fc6dd4a59e8193
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:13-07:00
Commit Message:
DREAMWEB: Notice when the user presses ESC.
Unfortunately, skipping the intro does not work because of a stack
underrun. I have no idea what's wrong.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 5b5f2c2..6eee2e1 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -135,6 +135,16 @@ void DreamWebEngine::processEvents() {
}
break;
default:
+ // As far as I can see, the only keys checked
+ // for in 'lasthardkey' are 1 (ESC) and 57
+ // (space) so add special cases for them and
+ // treat everything else as 0.
+ if (event.kbd.keycode == Common::KEYCODE_ESCAPE)
+ _context.data.byte(dreamgen::kLasthardkey) = 1;
+ else if (event.kbd.keycode == Common::KEYCODE_SPACE)
+ _context.data.byte(dreamgen::kLasthardkey) = 57;
+ else
+ _context.data.byte(dreamgen::kLasthardkey) = 0;
if (event.kbd.ascii)
keyPressed(event.kbd.ascii);
break;
Commit: 92e2dc8899080a591e322bca3ec3e99e2ab12e6b
https://github.com/scummvm/scummvm/commit/92e2dc8899080a591e322bca3ec3e99e2ab12e6b
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:13-07:00
Commit Message:
DREAMWEB: cut rendering box to the screen size
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 6eee2e1..7a9619d 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -271,6 +271,12 @@ void DreamWebEngine::setPalette(const uint8 *data, uint start, uint count) {
void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int h) {
+ if (y + h > 200)
+ h = 200 - y;
+ if (x + w > 320)
+ w = 320 - x;
+ if (h <= 0 || w <= 0)
+ return;
_system->copyRectToScreen(src, pitch, x, y, w, h);
}
@@ -318,8 +324,6 @@ void multiput(Context &context) {
void multidump(Context &context) {
context.ds = context.data.word(kWorkspace);
int w = (uint8)context.cl, h = (uint8)context.ch;
- if (w == 0 || h == 0)
- return;
int x = (int16)context.di, y = (int16)context.bx;
unsigned offset = x + y * kScreenwidth;
//debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
Commit: 3e605f3cc41639d6d39a9ec7d1cc4369e50f24a2
https://github.com/scummvm/scummvm/commit/3e605f3cc41639d6d39a9ec7d1cc4369e50f24a2
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:14-07:00
Commit Message:
DREAMWEB: regenerated sources
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 2cb71e0..56d57be 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -5622,12 +5622,19 @@ void biblequote(Context & context) {
fadescreenups(context);
context.cx = 80;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto biblequotearly;
context.cx = 560;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto biblequotearly;
fadescreendowns(context);
context.cx = 200;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto biblequotearly;
cancelch0(context);
+biblequotearly:
return;
}
@@ -5639,10 +5646,7 @@ hangonloope:
context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto hangonearly;
if (--context.cx) goto hangonloope;
- return;
hangonearly:
- context.ax = context.pop();
- context.ax = context.pop();
return;
}
@@ -5662,21 +5666,30 @@ void intro(Context & context) {
playchannel0(context);
fadescreenups(context);
runintroseq(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto introearly;
clearbeforeload(context);
context.data.byte(kNewlocation) = 52;
loadintroroom(context);
runintroseq(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto introearly;
clearbeforeload(context);
context.data.byte(kNewlocation) = 53;
loadintroroom(context);
runintroseq(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto introearly;
clearbeforeload(context);
allpalette(context);
context.data.byte(kNewlocation) = 54;
loadintroroom(context);
runintroseq(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto introearly;
getridoftemptext(context);
clearbeforeload(context);
+introearly:
return;
}
@@ -5707,8 +5720,6 @@ moreintroseq:
if (!context.flags.z()) goto moreintroseq;
return;
earlyendrun:
- context.ax = context.pop();
- context.ax = context.pop();
getridoftemptext(context);
clearbeforeload(context);
return;
@@ -5769,12 +5780,18 @@ void realcredits(Context & context) {
playchannel0(context);
context.cx = 2;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
allpalette(context);
context.cx = 80;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
fadescreendowns(context);
context.cx = 256;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
context.dx = 2403;
showpcx(context);
context.al = 12;
@@ -5782,12 +5799,18 @@ void realcredits(Context & context) {
playchannel0(context);
context.cx = 2;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
allpalette(context);
context.cx = 80;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
fadescreendowns(context);
context.cx = 256;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
context.dx = 2416;
showpcx(context);
context.al = 12;
@@ -5795,12 +5818,18 @@ void realcredits(Context & context) {
playchannel0(context);
context.cx = 2;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
allpalette(context);
context.cx = 80;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
fadescreendowns(context);
context.cx = 256;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
context.dx = 2429;
showpcx(context);
context.al = 12;
@@ -5808,12 +5837,18 @@ void realcredits(Context & context) {
playchannel0(context);
context.cx = 2;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
allpalette(context);
context.cx = 80;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
fadescreendowns(context);
context.cx = 256;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
context.dx = 2442;
showpcx(context);
context.al = 12;
@@ -5821,25 +5856,36 @@ void realcredits(Context & context) {
playchannel0(context);
context.cx = 2;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
allpalette(context);
context.cx = 80;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
fadescreendowns(context);
context.cx = 256;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
context.dx = 2455;
showpcx(context);
fadescreenups(context);
context.cx = 60;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
context.al = 13;
context.ah = 0;
playchannel0(context);
context.cx = 350;
hangone(context);
+ context._cmp(context.data.byte(kLasthardkey), 1);
+ if (context.flags.z()) goto realcreditsearly;
fadescreendowns(context);
context.cx = 256;
hangone(context);
+realcreditsearly:
return;
}
Commit: 53e49d1a508e6864a67582716b9752d2edafdd55
https://github.com/scummvm/scummvm/commit/53e49d1a508e6864a67582716b9752d2edafdd55
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:14-07:00
Commit Message:
DREAMWEB: removed unused file
Changed paths:
R devtools/tasmrecover/runtime.h
diff --git a/devtools/tasmrecover/runtime.h b/devtools/tasmrecover/runtime.h
deleted file mode 100644
index 5824728..0000000
--- a/devtools/tasmrecover/runtime.h
+++ /dev/null
@@ -1,330 +0,0 @@
-#ifndef TASM_RECOVER_H__
-#define TASM_RECOVER_H__
-
-#include <stdint.h>
-#include <assert.h>
-#include <vector>
-
-typedef uint16_t uint16;
-typedef uint8_t uint8;
-typedef int16_t int16;
-typedef int8_t int8;
-
-//little endian
-#define REG_LOW 0
-#define REG_HIGH 1
-
-struct Register {
- union {
- uint16 _value;
- uint8 _part[2];
- };
- inline Register(): _value() {}
- inline Register& operator=(uint16_t v) { _value = v; return *this; }
- inline operator uint16&() { return _value; }
- inline void cbw() {
- if (_value & 0x80)
- _value |= 0xff00;
- else
- _value &= 0xff;
- }
-};
-
-template<unsigned PART>
-struct RegisterPart {
- uint8_t &_part;
-
- inline RegisterPart(Register ®) : _part(reg._part[PART]) {}
-
- inline operator uint8&() {
- return _part;
- }
- inline RegisterPart& operator=(const RegisterPart& o) {
- _part = o._part;
- return *this;
- }
- inline RegisterPart& operator=(uint8_t v) {
- _part = v;
- return *this;
- }
-};
-
-struct WordRef {
- std::vector<uint8> &data;
- unsigned index;
- bool changed;
- uint16_t value;
-
- inline WordRef(std::vector<uint8> &data, unsigned index) : data(data), index(index), changed(false) {
- assert(index + 1 < data.size());
- value = data[index] | (data[index + 1] << 8);
- }
- inline WordRef& operator=(const WordRef &ref) {
- changed = true;
- value = ref.value;
- return *this;
- }
- inline WordRef& operator=(uint16_t v) {
- changed = true;
- value = v;
- return *this;
- }
- inline operator uint16_t() const {
- return value;
- }
- inline operator uint16_t&() {
- return value;
- }
- inline ~WordRef() {
- if (changed) {
- data[index] = value & 0xff;
- data[index + 1] = value >> 8;
- }
- }
-};
-
-struct Segment {
- std::vector<uint8> data;
- inline uint8_t &byte(unsigned index) {
- assert(index < data.size());
- return data[index];
- }
- inline uint16_t word(unsigned index) const {
- assert(index + 1 < data.size());
- return data[index] | (data[index + 1] << 8);
- }
-
- inline WordRef word(unsigned index) {
- return WordRef(data, index);
- }
-};
-
-
-struct SegmentRef {
- public:
- uint16_t value;
- std::vector<uint8> *data;
- inline SegmentRef& operator=(const SegmentRef &o) {
- data = o.data;
- return *this;
- }
- inline SegmentRef& operator=(const uint16_t id) {
- return *this;
- }
- inline uint8_t &byte(unsigned index) {
- assert(index < data->size());
- return (*data)[index];
- }
- inline uint16_t word(unsigned index) const {
- assert(index + 1 < data->size());
- return (*data)[index] | ((*data)[index + 1] << 8);
- }
-
- inline operator uint16_t() const {
- return value;
- }
-
- inline WordRef word(unsigned index) {
- return WordRef(*data, index);
- }
-};
-
-struct Flags {
- bool _z, _c, _s, _o;
- inline Flags(): _z(true), _c(false), _s(false), _o(false) {}
-
- inline bool z() const { return _z; }
- inline bool c() const { return _c; }
- inline bool s() const { return _s; }
- //complex flags:
- inline bool g() const { return !_z && _s == _o; }
- inline bool ge() const { return _z || _s == _o; }
- inline bool l() const { return !_z && _s != _o; }
- inline bool le() const { return _z || _s != _o; }
-
- inline void update_sign(uint8 v) {
- bool s = v & 0x80;
- _o = s != _s;
- _s = s;
- _z = v == 0;
- }
-
- inline void update(uint16 v) {
- bool s = v & 0x8000;
- _o = s != _s;
- _s = s;
- _z = v == 0;
- }
-};
-
-template<typename Data>
-struct RegisterContext {
- Register ax, dx, bx, cx, si, di;
- RegisterPart<REG_LOW> al;
- RegisterPart<REG_HIGH> ah;
- RegisterPart<REG_LOW> bl;
- RegisterPart<REG_HIGH> bh;
- RegisterPart<REG_LOW> cl;
- RegisterPart<REG_HIGH> ch;
- RegisterPart<REG_LOW> dl;
- RegisterPart<REG_HIGH> dh;
-
- SegmentRef cs, ds, es;
- Flags flags;
-
- inline RegisterContext(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx) {}
-
- inline void _cmp(uint8 a, uint8 b) {
- uint8 x = a;
- _sub(x, b);
- }
- inline void _cmp(uint16 a, uint16 b) {
- uint16 x = a;
- _sub(x, b);
- }
- inline void _test(uint8 a, uint8 b) {
- uint8 x = a;
- _and(x, b);
- }
- inline void _test(uint16 a, uint16 b) {
- uint16 x = a;
- _and(x, b);
- }
-
- inline void _add(uint8 &dst, uint8 src) {
- flags._c = dst + src < dst;
- dst += src;
- flags.update(dst);
- }
- inline void _add(uint16 &dst, uint16 src) {
- flags._c = dst + src < dst;
- dst += src;
- flags.update(dst);
- }
- inline void _sub(uint8 &dst, uint8 src) {
- flags._c = dst < src;
- dst -= src;
- flags.update(dst);
- }
- inline void _sub(uint16 &dst, uint16 src) {
- flags._c = dst < src;
- dst -= src;
- flags.update(dst);
- }
-
- inline void _and(uint8 &dst, uint8 src) {
- dst &= src;
- flags._c = false;
- flags.update(dst);
- }
- inline void _and(uint16 &dst, uint16 src) {
- dst &= src;
- flags._c = false;
- flags.update(dst);
- }
- inline void _or(uint8 &dst, uint8 src) {
- dst |= src;
- flags._c = false;
- flags.update(dst);
- }
- inline void _or(uint16 &dst, uint16 src) {
- dst |= src;
- flags._c = false;
- flags.update(dst);
- }
-
- inline void _xor(uint8 &dst, uint8 src) {
- dst ^= src;
- flags._c = false;
- flags.update(dst);
- }
- inline void _xor(uint16 &dst, uint16 src) {
- dst ^= src;
- flags._c = false;
- flags.update(dst);
- }
-
- inline void _shr(uint8 &dst, uint8 src) {}
- inline void _shr(uint16 &dst, uint8 src) {}
- inline void _shl(uint8 &dst, uint8 src) {}
- inline void _shl(uint16 &dst, uint8 src) {}
- inline void _mul(uint8 src) {
- unsigned r = unsigned(al) * src;
- ax = (uint16)r;
- flags._c = r >= 0x10000;
- flags._z = r == 0;
- bool s = r & 0x8000;
- flags._o = s != flags._s;
- flags._s = s;
- }
- inline void _mul(uint16 src) {
- unsigned r = unsigned(ax) * src; //assuming here that we have at least 32 bits
- dx = (r >> 16) & 0xffff;
- ax = r & 0xffff;
- flags._c = false;//fixme
- flags._z = r == 0;
- bool s = r & 0x80000000;
- flags._o = s != flags._s;
- flags._s = s;
- }
- inline void _neg(uint8 &src) {
- src = ~src;
- flags._c = false;
- flags.update(src);
- }
- inline void _neg(uint16 &src) {
- src = ~src;
- flags._c = false;
- flags.update(src);
- }
-
- inline void _movsb() {
- es.byte(di++) = ds.byte(si++);
- }
- inline void _movsw() {
- es.word(di) = ds.word(si);
- di += 2;
- si += 2;
- }
- inline void _lodsb() {
- al = ds.byte(si++);
- }
- inline void _lodsw() {
- ax = ds.word(si);
- si += 2;
- }
- inline void _stosb() {
- es.byte(di++) = al;
- }
- inline void _stosw() {
- es.word(di) = al;
- di += 2;
- }
-
- inline void _xchg(uint16 &a, uint16 &b) {
- uint16 x = a;
- a = b;
- b = x;
- }
-
- inline void _xchg(uint8 &a, uint8 &b) {
- uint8 t = a;
- a = b;
- b = t;
- }
-
- std::vector<uint16> stack;
- inline void push(uint16 v) {
- stack.push_back(v);
- }
- inline uint16 pop() {
- uint16 v = stack.back();
- stack.pop_back();
- return v;
- }
-
- Data data;
-};
-
-#endif
-
Commit: f7b56a0d94bcf710ca52292577457a999d2a9fa8
https://github.com/scummvm/scummvm/commit/f7b56a0d94bcf710ca52292577457a999d2a9fa8
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:15-07:00
Commit Message:
DREAMWEB: fixed OF register handling once again
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 80ab8db..b08d564 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -177,17 +177,17 @@ struct Flags {
_z = v == 0;
}
- inline void update_o(uint8 v, uint8 old) {
- _o = (old & 0x80) != (v & 0x80);
- }
-
inline void update(uint16 v) {
_s = v & 0x8000;
_z = v == 0;
}
+ inline void update_o(uint8 v, uint8 old) {
+ _o = (old & 0x80) != (v & 0x80);
+ }
+
inline void update_o(uint16 v, uint16 old) {
- _o = (old & 0x8000) == (v & 0x8000);
+ _o = (old & 0x8000) != (v & 0x8000);
}
};
Commit: 4ccd7fd791e117117034925870dc4db2bfdad7b3
https://github.com/scummvm/scummvm/commit/4ccd7fd791e117117034925870dc4db2bfdad7b3
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:15-07:00
Commit Message:
DREAMWEB: fixed l/le/g/ge condition checks
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index b08d564..9890f95 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -167,10 +167,10 @@ struct Flags {
inline bool c() const { return _c; }
inline bool s() const { return _s; }
//complex flags:
- inline bool g() const { return !_z && _s == _o; }
- inline bool ge() const { return _s == _o; }
- inline bool l() const { return _s != _o; }
- inline bool le() const { return _z || _s != _o; }
+ inline bool g() const { return !_z && _o; }
+ inline bool ge() const { return _o; }
+ inline bool l() const { return !_o; }
+ inline bool le() const { return _z || !_o; }
inline void update(uint8 v) {
_s = v & 0x80;
Commit: 2bcc06f9eae89dcdc45a5430aa0e0395c2fa576e
https://github.com/scummvm/scummvm/commit/2bcc06f9eae89dcdc45a5430aa0e0395c2fa576e
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:16-07:00
Commit Message:
DREAMWEB: cleanup frameoutnm
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 7a9619d..b5e2a13 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -347,11 +347,12 @@ void frameoutnm(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
unsigned pitch = (uint16)context.dx;
unsigned src = (uint16)context.si;
- unsigned dst = (uint16)context.di + (uint16)context.bx * pitch;
- //debug(1, "framenm %ux%u[pitch: %u] -> segment: %04x->%04x", w, h, pitch, (uint16)context.ds, (uint16)context.es);
- for(unsigned y = 0; y < h; ++y) {
- uint8 *src_p = context.ds.ptr(src + w * y, w);
- uint8 *dst_p = context.es.ptr(dst + pitch * y, w);
+ int x = (uint16)context.di, y = (uint16)context.bx;
+ unsigned dst = x + y * pitch;
+ //debug(1, "framenm %ux%u[pitch: %u]-> %d,%d, segment: %04x->%04x", w, h, pitch, x, y, (uint16)context.ds, (uint16)context.es);
+ for(unsigned l = 0; l < h; ++l) {
+ uint8 *src_p = context.ds.ptr(src + w * l, w);
+ uint8 *dst_p = context.es.ptr(dst + pitch * l, w);
memcpy(dst_p, src_p, w);
}
}
Commit: 99a4bb86ddc6ab58d11c1cbab2ca2ff01aa8f835
https://github.com/scummvm/scummvm/commit/99a4bb86ddc6ab58d11c1cbab2ca2ff01aa8f835
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:16-07:00
Commit Message:
DREAMWEB: fixed invalid generated jump instructions
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/runtime.h
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 0e87656..20af0ea 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -353,13 +353,13 @@ namespace %s {
self.body += "\tif (context.flags.l()) %s;\n" %(self.jump_to_label(label))
def _jg(self, label):
- self.body += "\tif (!context.flags.g()) %s;\n" %(self.jump_to_label(label))
+ self.body += "\tif (!context.flags.le()) %s;\n" %(self.jump_to_label(label))
def _jle(self, label):
self.body += "\tif (context.flags.le()) %s;\n" %(self.jump_to_label(label))
def _jge(self, label):
- self.body += "\tif (!context.flags.ge()) %s;\n" %(self.jump_to_label(label))
+ self.body += "\tif (!context.flags.l()) %s;\n" %(self.jump_to_label(label))
def _jc(self, label):
self.body += "\tif (context.flags.c()) %s;\n" %(self.jump_to_label(label))
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 56d57be..16e4958 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -17818,13 +17818,13 @@ loop048:
if (context.flags.l()) goto over045;
context.ax = context.cs.word(context.bx+2);
context._cmp(context.data.word(kMousex), context.ax);
- if (!context.flags.ge()) goto over045;
+ if (!context.flags.l()) goto over045;
context.ax = context.cs.word(context.bx+4);
context._cmp(context.data.word(kMousey), context.ax);
if (context.flags.l()) goto over045;
context.ax = context.cs.word(context.bx+6);
context._cmp(context.data.word(kMousey), context.ax);
- if (!context.flags.ge()) goto over045;
+ if (!context.flags.l()) goto over045;
context.ax = context.cs.word(context.bx+8);
__dispatch_call(context, context.ax);
finished:
@@ -18859,7 +18859,7 @@ vertline:
context.bx = context.data.word(kLineendy);
context.cx = context.bx;
context._sub(context.cx, context.ax);
- if (!context.flags.ge()) goto line31;
+ if (!context.flags.l()) goto line31;
context._neg(context.cx);
context.ax = context.bx;
context.data.byte(kLinedirection) = 1;
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 9890f95..d92a8d6 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -166,11 +166,9 @@ struct Flags {
inline bool z() const { return _z; }
inline bool c() const { return _c; }
inline bool s() const { return _s; }
- //complex flags:
- inline bool g() const { return !_z && _o; }
- inline bool ge() const { return _o; }
- inline bool l() const { return !_o; }
- inline bool le() const { return _z || !_o; }
+
+ inline bool l() const { return _o; }
+ inline bool le() const { return _o || _z; }
inline void update(uint8 v) {
_s = v & 0x80;
@@ -270,7 +268,7 @@ public:
inline void _add(uint8 &dst, uint8 src) {
unsigned r = (unsigned)dst + src;
- flags.update_o(r, dst);
+ flags.update_o((uint8)r, dst);
flags._c = r >= 0x100;
dst = r;
flags.update(dst);
@@ -278,21 +276,21 @@ public:
inline void _add(uint16 &dst, uint16 src) {
unsigned r = (unsigned)dst + src;
- flags.update_o(r, dst);
+ flags.update_o((uint16)r, dst);
flags._c = r >= 0x10000;
dst = r;
flags.update(dst);
}
inline void _sub(uint8 &dst, uint8 src) {
- flags.update_o(dst - src, dst);
+ flags.update_o(uint8(dst - src), dst);
flags._c = dst < src;
dst -= src;
flags.update(dst);
}
inline void _sub(uint16 &dst, uint16 src) {
- flags.update_o(dst - src, dst);
+ flags.update_o(uint16(dst - src), dst);
flags._c = dst < src;
dst -= src;
flags.update(dst);
@@ -383,21 +381,21 @@ public:
inline void _mul(uint8 src) {
unsigned r = unsigned(al) * src;
- flags.update_o(r, al);
ax = (uint16)r;
flags._c = r >= 0x10000;
flags._z = r == 0;
flags._s = r & 0x8000;
+ flags._o = ah != 0;
}
inline void _mul(uint16 src) {
unsigned r = unsigned(ax) * src; //assuming here that we have at least 32 bits
- flags.update_o(r, ax);
dx = (r >> 16) & 0xffff;
ax = r & 0xffff;
- flags._c = false;//fixme
+ flags._c = false;
flags._z = r == 0;
flags._s = r & 0x80000000;
+ flags._o = dx != 0;
}
inline void _neg(uint8 &src) {
Commit: 8ea7a7a3d1e92bfd9b8f4836cba4492bb91fc8da
https://github.com/scummvm/scummvm/commit/8ea7a7a3d1e92bfd9b8f4836cba4492bb91fc8da
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:17-07:00
Commit Message:
DREAMWEB: fixed seg XXX construction in generator
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 20af0ea..5126cd6 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -125,7 +125,7 @@ namespace %s {
m = re.match(r'seg\s+(.*?)$', expr)
if m is not None:
- return "context.ds"
+ return "context.data"
match_id = True
m = re.match(r'offset\s+(.*?)$', expr)
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 16e4958..cad1987 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2760,7 +2760,7 @@ continuewalk:
context._add(context.ax, context.ax);
context.push(context.es);
context.push(context.bx);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.bx = 7944;
context._add(context.bx, context.ax);
@@ -9807,14 +9807,14 @@ void getdestinfo(Context & context) {
context.al = context.data.byte(kDestpos);
context.ah = 0;
context.push(context.ax);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.si = 7782;
context._add(context.si, context.ax);
context.cl = context.es.byte(context.si);
context.ax = context.pop();
context.push(context.cx);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.si = 7798;
context._add(context.si, context.ax);
@@ -9942,7 +9942,7 @@ notrav:
void getlocation(Context & context) {
context.ah = 0;
context.bx = context.ax;
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context._add(context.bx, 7782);
context.al = context.es.byte(context.bx);
@@ -9952,7 +9952,7 @@ void getlocation(Context & context) {
void setlocation(Context & context) {
context.ah = 0;
context.bx = context.ax;
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context._add(context.bx, 7782);
context.es.byte(context.bx) = 1;
@@ -9999,7 +9999,7 @@ clearedlocations:
context.ax = context.pop();
context.ah = 0;
context.bx = context.ax;
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context._add(context.bx, 7782);
context.es.byte(context.bx) = 0;
@@ -11303,7 +11303,7 @@ powerok:
context.data.byte(kPointerpower) = 0;
nodream7:
getanyad(context);
- context.dx = context.ds;
+ context.dx = context.data;
context.ds = context.dx;
context.si = 2895;
checkuselist:
@@ -12248,7 +12248,7 @@ void opensarters(Context & context) {
}
void isitright(Context & context) {
- context.bx = context.ds;
+ context.bx = context.data;
context.es = context.bx;
context.bx = 8344;
context._cmp(context.es.byte(context.bx+0), context.al);
@@ -14301,7 +14301,7 @@ void addtopresslist(Context & context) {
context.al = 0;
not10:
context.bx = context.data.word(kPresspointer);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context._add(context.bx, 8344);
context.es.byte(context.bx) = context.al;
@@ -15810,7 +15810,7 @@ loadops:
context._cmp(context.data.byte(kGetback), 2);
if (context.flags.z()) goto quitloaded;
getridoftemp(context);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.bx = 7750;
startloading(context);
@@ -15939,7 +15939,7 @@ alreadyactsave:
context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (context.flags.z()) goto noactsave;
- context.dx = context.ds;
+ context.dx = context.data;
context.ds = context.dx;
context.si = 8350;
context.al = context.data.byte(kCurrentslot);
@@ -16001,7 +16001,7 @@ alreadyactload:
if (context.flags.z()) goto notactload;
context._cmp(context.ax, 1);
if (!context.flags.z()) goto notactload;
- context.dx = context.ds;
+ context.dx = context.data;
context.ds = context.dx;
context.si = 8350;
context.al = context.data.byte(kCurrentslot);
@@ -16075,7 +16075,7 @@ void getnamepos(Context & context) {
context.ah = 0;
context.cx = 17;
context._mul(context.cx);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.bx = 8350;
context._add(context.bx, context.ax);
@@ -16223,7 +16223,7 @@ nomatchslot:
}
void shownames(Context & context) {
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.si = 8350+1;
context.di = (60)+21;
@@ -16309,7 +16309,7 @@ void oldtonames(Context & context) {
}
void makeheader(Context & context) {
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.di = 5912;
context.ax = 17;
@@ -16440,7 +16440,7 @@ loadops:
context._cmp(context.data.byte(kGetback), 2);
if (context.flags.z()) goto quitloaded;
getridoftemp(context);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.bx = 7750;
startloading(context);
@@ -18808,7 +18808,7 @@ nextcheck2:
void bresenhams(Context & context) {
workoutframes(context);
- context.dx = context.ds;
+ context.dx = context.data;
context.es = context.dx;
context.di = 7944;
context.si = 1;
Commit: 7eb8e0bbe7151a09bec7e3a4afb4f4e6ffd8b335
https://github.com/scummvm/scummvm/commit/7eb8e0bbe7151a09bec7e3a4afb4f4e6ffd8b335
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:17-07:00
Commit Message:
DREAMWEB: unstubbed dontloadseg
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b5e2a13..fb65e71 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -181,6 +181,12 @@ void DreamWebEngine::openFile(const Common::String &name) {
}
}
+uint32 DreamWebEngine::skipBytes(uint32 bytes) {
+ if (!_file.seek(bytes, SEEK_CUR))
+ error("seekk failed");
+ return _file.pos();
+}
+
uint32 DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
processEvents();
if (!_file.isOpen())
@@ -427,7 +433,13 @@ void createfile(Context &context) {
}
void dontloadseg(Context &context) {
- ::error("dontloadseg");
+ context.ax = context.es.word(context.di);
+ context._add(context.di, 2);
+ context.dx = context.ax;
+ context.cx = 0;
+ unsigned pos = engine()->skipBytes(context.dx);
+ context.dx = pos >> 16;
+ context.ax = pos & 0xffff;
}
void mousecall(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 0666bb8..78c8960 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -80,6 +80,7 @@ public:
void openFile(const Common::String &name);
uint32 readFromFile(uint8 *dst, unsigned size);
+ uint32 skipBytes(uint32 bytes);
void closeFile();
void mouseCall(); //fill mouse pos and button state
Commit: a3e9cef4d0dd1acf7e075cb7bda10905da7949cf
https://github.com/scummvm/scummvm/commit/a3e9cef4d0dd1acf7e075cb7bda10905da7949cf
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:18-07:00
Commit Message:
DREAMWEB: fixed a typo
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fb65e71..c1e885b 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -183,7 +183,7 @@ void DreamWebEngine::openFile(const Common::String &name) {
uint32 DreamWebEngine::skipBytes(uint32 bytes) {
if (!_file.seek(bytes, SEEK_CUR))
- error("seekk failed");
+ error("seek failed");
return _file.pos();
}
Commit: fdcb21ffee2688fec1c1b34ebf4a0a14fe4fcbf1
https://github.com/scummvm/scummvm/commit/fdcb21ffee2688fec1c1b34ebf4a0a14fe4fcbf1
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:18-07:00
Commit Message:
DREAMWEB: Unstub dosreturn().
Note that clicking on the "Return to DOS" button still calls a stub
function, but at least it no longer dies on mouse-over.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index c1e885b..db49b74 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -613,8 +613,21 @@ void generalerror(Context &context) {
::error("generalerror");
}
+void commandonly(Context &context);
+
void dosreturn(Context &context) {
- ::error("dosreturn");
+ context._cmp(context.data.byte(kCommandtype), 250);
+ if (context.flags.z()) goto alreadydos;
+ context.data.byte(kCommandtype) = 250;
+ context.al = 46;
+ commandonly(context);
+alreadydos:
+ context.ax = context.data.word(kMousebutton);
+ context._and(context.ax, 1);
+ if (context.flags.z()) return;
+
+ quickquit2(context);
+ quickquit(context);
}
void set16colpalette(Context &context) {
Commit: 8ddbbc0c504893dad7fbde6a48b6edb668b249f9
https://github.com/scummvm/scummvm/commit/8ddbbc0c504893dad7fbde6a48b6edb668b249f9
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:18-07:00
Commit Message:
DREAMWEB: moved out file write/read from sources
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index cad1987..10766a7 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -178,6 +178,8 @@ void showsaveops(Context &context);
void readkey(Context &context);
void getnamepos(Context &context);
void selectslot(Context &context);
+void loadposition(Context &context);
+void saveposition(Context &context);
void restoreall(Context &context);
void redrawmainscrn(Context &context);
void checkinput(Context &context);
@@ -16308,6 +16310,106 @@ void oldtonames(Context & context) {
return;
}
+void saveposition(Context & context) {
+ makeheader(context);
+ context.al = context.data.byte(kCurrentslot);
+ context.ah = 0;
+ context.push(context.ax);
+ context.cx = 13;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8469;
+ context._add(context.dx, context.ax);
+ openforsave(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 5862;
+ context.cx = (5958-5862);
+ savefilewrite(context);
+ context.dx = context.data;
+ context.es = context.dx;
+ context.di = 5912;
+ context.ax = context.pop();
+ context.cx = 17;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8350;
+ context._add(context.dx, context.ax);
+ saveseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 0;
+ saveseg(context);
+ context.ds = context.data.word(kExtras);
+ context.dx = (0);
+ saveseg(context);
+ context.ds = context.data.word(kBuffers);
+ context.dx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ saveseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 7750;
+ saveseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 534;
+ saveseg(context);
+fquit:
+ closefile(context);
+ return;
+}
+
+void loadposition(Context & context) {
+ context.data.word(kTimecount) = 0;
+ clearchanges(context);
+ context.al = context.data.byte(kCurrentslot);
+ context.ah = 0;
+ context.push(context.ax);
+ context.cx = 13;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8469;
+ context._add(context.dx, context.ax);
+ openfile(context);
+ context.ah = 0x3f;
+ context.ds = context.cs;
+ context.dx = 5862;
+ context.cx = (5958-5862);
+ savefileread(context);
+ context.es = context.cs;
+ context.di = 5912;
+ context.ax = context.pop();
+ context.cx = 17;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8350;
+ context._add(context.dx, context.ax);
+ loadseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 0;
+ loadseg(context);
+ context.ds = context.data.word(kExtras);
+ context.dx = (0);
+ loadseg(context);
+ context.ds = context.data.word(kBuffers);
+ context.dx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ loadseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 7750;
+ loadseg(context);
+ context.ds = context.cs;
+ context.dx = 534;
+ loadseg(context);
+ closefile(context);
+ return;
+}
+
void makeheader(Context & context) {
context.dx = context.data;
context.es = context.dx;
@@ -20779,21 +20881,21 @@ void __start(Context &context) {
0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0x04, 0x01, 0x2c, 0x01, 0x00, 0x00, 0x2c, 0x00,
0x84, 0xc5, 0xd2, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x2c, 0x00, 0xe0, 0xc3, 0x90, 0x00, 0xb0, 0x00,
0x40, 0x00, 0x60, 0x00, 0x84, 0xc3, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0xc8, 0x00, 0x88, 0xc3,
- 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
+ 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0xff, 0x00, 0x26, 0x01, 0x00, 0x00, 0x18, 0x00, 0xcc, 0xc3,
0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00, 0x00, 0x01, 0x9e, 0x00,
0xca, 0x00, 0xe4, 0xc3, 0x50, 0x00, 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0x9c, 0xc3, 0x00, 0x00,
- 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
0xc6, 0x00, 0x48, 0xc3, 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00,
0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0xc0, 0xc6, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
- 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0xf0, 0x00,
+ 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0xf0, 0x00,
0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x98, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
- 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00,
- 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
+ 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
0x2c, 0x00, 0xcc, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xd0, 0xc4, 0x18, 0x01,
0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb4, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00,
0xd4, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00, 0x40, 0x01,
- 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
+ 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
0x50, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x4c, 0x4f, 0x47, 0x4f,
0x4e, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20,
0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44,
@@ -20840,28 +20942,28 @@ void __start(Context &context) {
0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, 0x82, 0x00, 0x7c, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83,
0x00, 0x91, 0x00, 0x80, 0xc7, 0xb3, 0x00, 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x84, 0xc7, 0xdc,
0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, 0x54, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0x9c, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x54, 0xc7, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
+ 0x00, 0xa4, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x54, 0xc7, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
0x00, 0xc8, 0x00, 0x54, 0xc7, 0x8f, 0x00, 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xbc, 0xc7, 0x00,
0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, 0xc4, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0x9c, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xe0, 0xc7, 0x40,
+ 0x00, 0xa4, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xe0, 0xc7, 0x40,
0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe4, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a,
0x00, 0xe8, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, 0x74, 0x00, 0xa8,
- 0x00, 0x6a, 0x00, 0x88, 0x00, 0xf0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c,
+ 0x00, 0x6a, 0x00, 0x88, 0x00, 0xf0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4,
0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x20, 0xc8, 0xf3, 0x00, 0x03,
0x01, 0x83, 0x00, 0x93, 0x00, 0x1c, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x54,
- 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
+ 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
0x00, 0x52, 0x00, 0x80, 0x00, 0x38, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84,
0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x50, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00,
- 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c,
+ 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c,
0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x5c, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38,
- 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff,
+ 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff,
0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e,
0x00, 0x6f, 0x00, 0x54, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c, 0xc8, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
0x00, 0x80, 0x00, 0x4c, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x58, 0xc8, 0x3e,
0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0x9c, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
+ 0x00, 0xa4, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d,
@@ -20925,18 +21027,18 @@ void __start(Context &context) {
0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44,
0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f,
0x75, 0x72, 0x20, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d,
- 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xbc, 0xc8, 0x50, 0x00,
+ 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc4, 0xc8, 0x50, 0x00,
0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00,
- 0xc0, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x53, 0x50,
+ 0xc8, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x53, 0x50,
0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57,
0x00, 0x87, 0x83, 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00,
0x00, 0x32, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a,
0x00, 0x2c, 0xc8, 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04,
- 0x01, 0x64, 0x00, 0x7c, 0x00, 0xc8, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd0,
+ 0x01, 0x64, 0x00, 0x7c, 0x00, 0xd0, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd8,
0xc9, 0xff, 0xff, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00, 0x00, 0x32,
0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x2c,
0xc8, 0x12, 0x01, 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64,
- 0x00, 0x7c, 0x00, 0xc8, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd0, 0xc9, 0xff,
+ 0x00, 0x7c, 0x00, 0xd0, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd8, 0xc9, 0xff,
0xff, 0x00, 0x21, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff,
0x00, 0x0b, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01,
0x2c, 0x0a, 0x06, 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16,
@@ -21720,205 +21822,207 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc888: error(context); break;
case 0xc88c: namestoold(context); break;
case 0xc890: oldtonames(context); break;
- case 0xc894: saveposition(context); break;
- case 0xc898: loadposition(context); break;
- case 0xc89c: loadseg(context); break;
- case 0xc8a0: makeheader(context); break;
- case 0xc8a4: storeit(context); break;
- case 0xc8a8: saveseg(context); break;
- case 0xc8ac: findlen(context); break;
- case 0xc8b0: scanfornames(context); break;
- case 0xc8b4: decide(context); break;
- case 0xc8b8: showdecisions(context); break;
- case 0xc8bc: newgame(context); break;
- case 0xc8c0: loadold(context); break;
- case 0xc8c4: loadspeech(context); break;
- case 0xc8c8: createname(context); break;
- case 0xc8cc: loadsample(context); break;
- case 0xc8d0: loadsecondsample(context); break;
- case 0xc8d4: soundstartup(context); break;
- case 0xc8d8: trysoundalloc(context); break;
- case 0xc8dc: setsoundoff(context); break;
- case 0xc8e0: checksoundint(context); break;
- case 0xc8e4: enablesoundint(context); break;
- case 0xc8e8: disablesoundint(context); break;
- case 0xc8ec: interupttest(context); break;
- case 0xc8f0: soundend(context); break;
- case 0xc8f4: out22c(context); break;
- case 0xc8f8: playchannel0(context); break;
- case 0xc8fc: playchannel1(context); break;
- case 0xc900: makenextblock(context); break;
- case 0xc904: volumeadjust(context); break;
- case 0xc908: loopchannel0(context); break;
- case 0xc90c: cancelch0(context); break;
- case 0xc910: cancelch1(context); break;
- case 0xc914: channel0only(context); break;
- case 0xc918: channel1only(context); break;
- case 0xc91c: channel0tran(context); break;
- case 0xc920: bothchannels(context); break;
- case 0xc924: saveems(context); break;
- case 0xc928: restoreems(context); break;
- case 0xc92c: domix(context); break;
- case 0xc930: dmaend(context); break;
- case 0xc934: startdmablock(context); break;
- case 0xc938: setuppit(context); break;
- case 0xc93c: getridofpit(context); break;
- case 0xc940: pitinterupt(context); break;
- case 0xc944: dreamweb(context); break;
- case 0xc948: entrytexts(context); break;
- case 0xc94c: entryanims(context); break;
- case 0xc950: initialinv(context); break;
- case 0xc954: pickupob(context); break;
- case 0xc958: setupemm(context); break;
- case 0xc95c: removeemm(context); break;
- case 0xc960: checkforemm(context); break;
- case 0xc964: checkbasemem(context); break;
- case 0xc968: allocatebuffers(context); break;
- case 0xc96c: clearbuffers(context); break;
- case 0xc970: clearchanges(context); break;
- case 0xc974: clearbeforeload(context); break;
- case 0xc978: clearreels(context); break;
- case 0xc97c: clearrest(context); break;
- case 0xc980: deallocatemem(context); break;
- case 0xc984: allocatemem(context); break;
- case 0xc98c: parseblaster(context); break;
- case 0xc990: startup(context); break;
- case 0xc994: startup1(context); break;
- case 0xc998: screenupdate(context); break;
- case 0xc99c: watchreel(context); break;
- case 0xc9a0: checkforshake(context); break;
- case 0xc9a4: watchcount(context); break;
- case 0xc9a8: showtime(context); break;
- case 0xc9ac: dumpwatch(context); break;
- case 0xc9b0: showbyte(context); break;
- case 0xc9b4: onedigit(context); break;
- case 0xc9b8: twodigitnum(context); break;
- case 0xc9bc: showword(context); break;
- case 0xc9c0: convnum(context); break;
- case 0xc9c4: mainscreen(context); break;
- case 0xc9c8: madmanrun(context); break;
- case 0xc9cc: checkcoords(context); break;
- case 0xc9d0: identifyob(context); break;
- case 0xc9d4: checkifperson(context); break;
- case 0xc9d8: checkifset(context); break;
- case 0xc9dc: checkifex(context); break;
- case 0xc9e0: checkiffree(context); break;
- case 0xc9e4: isitdescribed(context); break;
- case 0xc9e8: findpathofpoint(context); break;
- case 0xc9ec: findfirstpath(context); break;
- case 0xc9f0: turnpathon(context); break;
- case 0xc9f4: turnpathoff(context); break;
- case 0xc9f8: turnanypathon(context); break;
- case 0xc9fc: turnanypathoff(context); break;
- case 0xca00: checkifpathison(context); break;
- case 0xca04: afternewroom(context); break;
- case 0xca08: atmospheres(context); break;
- case 0xca0c: walkintoroom(context); break;
- case 0xca10: afterintroroom(context); break;
- case 0xca14: obname(context); break;
- case 0xca18: finishedwalking(context); break;
- case 0xca1c: examineobtext(context); break;
- case 0xca20: commandwithob(context); break;
- case 0xca24: commandonly(context); break;
- case 0xca28: printmessage(context); break;
- case 0xca2c: printmessage2(context); break;
- case 0xca30: blocknametext(context); break;
- case 0xca34: personnametext(context); break;
- case 0xca38: walktotext(context); break;
- case 0xca3c: getflagunderp(context); break;
- case 0xca40: setwalk(context); break;
- case 0xca44: autosetwalk(context); break;
- case 0xca48: checkdest(context); break;
- case 0xca4c: bresenhams(context); break;
- case 0xca50: workoutframes(context); break;
- case 0xca54: getroomspaths(context); break;
- case 0xca58: copyname(context); break;
- case 0xca5c: findobname(context); break;
- case 0xca60: showicon(context); break;
- case 0xca64: middlepanel(context); break;
- case 0xca68: showman(context); break;
- case 0xca6c: showpanel(context); break;
- case 0xca70: roomname(context); break;
- case 0xca74: usecharset1(context); break;
- case 0xca78: usetempcharset(context); break;
- case 0xca7c: showexit(context); break;
- case 0xca80: panelicons1(context); break;
- case 0xca84: showwatch(context); break;
- case 0xca88: gettime(context); break;
- case 0xca8c: zoomicon(context); break;
- case 0xca90: showblink(context); break;
- case 0xca94: dumpblink(context); break;
- case 0xca98: worktoscreenm(context); break;
- case 0xca9c: blank(context); break;
- case 0xcaa0: allpointer(context); break;
- case 0xcaa4: hangonp(context); break;
- case 0xcaa8: hangonw(context); break;
- case 0xcaac: hangoncurs(context); break;
- case 0xcab0: getunderzoom(context); break;
- case 0xcab4: dumpzoom(context); break;
- case 0xcab8: putunderzoom(context); break;
- case 0xcabc: crosshair(context); break;
- case 0xcac0: showpointer(context); break;
- case 0xcac4: delpointer(context); break;
- case 0xcac8: dumppointer(context); break;
- case 0xcacc: undertextline(context); break;
- case 0xcad0: deltextline(context); break;
- case 0xcad4: dumptextline(context); break;
- case 0xcad8: animpointer(context); break;
- case 0xcadc: setmouse(context); break;
- case 0xcae0: readmouse(context); break;
- case 0xcae4: mousecall(context); break;
- case 0xcae8: readmouse1(context); break;
- case 0xcaec: readmouse2(context); break;
- case 0xcaf0: readmouse3(context); break;
- case 0xcaf4: readmouse4(context); break;
- case 0xcaf8: readkey(context); break;
- case 0xcafc: convertkey(context); break;
- case 0xcb00: randomnum1(context); break;
- case 0xcb04: randomnum2(context); break;
- case 0xcb0c: hangon(context); break;
- case 0xcb10: loadtraveltext(context); break;
- case 0xcb14: loadintotemp(context); break;
- case 0xcb18: loadintotemp2(context); break;
- case 0xcb1c: loadintotemp3(context); break;
- case 0xcb20: loadtempcharset(context); break;
- case 0xcb24: standardload(context); break;
- case 0xcb28: loadtemptext(context); break;
- case 0xcb2c: loadroom(context); break;
- case 0xcb30: loadroomssample(context); break;
- case 0xcb34: getridofreels(context); break;
- case 0xcb38: getridofall(context); break;
- case 0xcb3c: restorereels(context); break;
- case 0xcb40: restoreall(context); break;
- case 0xcb44: sortoutmap(context); break;
- case 0xcb48: startloading(context); break;
- case 0xcb4c: disablepath(context); break;
- case 0xcb50: findxyfrompath(context); break;
- case 0xcb54: findroominloc(context); break;
- case 0xcb58: getroomdata(context); break;
- case 0xcb5c: readheader(context); break;
- case 0xcb60: dontloadseg(context); break;
- case 0xcb64: allocateload(context); break;
- case 0xcb68: fillspace(context); break;
- case 0xcb6c: getridoftemp(context); break;
- case 0xcb70: getridoftemptext(context); break;
- case 0xcb74: getridoftemp2(context); break;
- case 0xcb78: getridoftemp3(context); break;
- case 0xcb7c: getridoftempcharset(context); break;
- case 0xcb80: getridoftempsp(context); break;
- case 0xcb84: readsetdata(context); break;
- case 0xcb88: createfile(context); break;
- case 0xcb8c: openfile(context); break;
- case 0xcb90: openfilenocheck(context); break;
- case 0xcb94: openforsave(context); break;
- case 0xcb98: closefile(context); break;
- case 0xcb9c: readfromfile(context); break;
- case 0xcba0: setkeyboardint(context); break;
- case 0xcba4: resetkeyboard(context); break;
- case 0xcba8: keyboardread(context); break;
- case 0xcbac: walkandexamine(context); break;
- case 0xcbb0: doload(context); break;
- case 0xcbb4: generalerror(context); break;
+ case 0xc894: savefilewrite(context); break;
+ case 0xc898: savefileread(context); break;
+ case 0xc89c: saveposition(context); break;
+ case 0xc8a0: loadposition(context); break;
+ case 0xc8a4: loadseg(context); break;
+ case 0xc8a8: makeheader(context); break;
+ case 0xc8ac: storeit(context); break;
+ case 0xc8b0: saveseg(context); break;
+ case 0xc8b4: findlen(context); break;
+ case 0xc8b8: scanfornames(context); break;
+ case 0xc8bc: decide(context); break;
+ case 0xc8c0: showdecisions(context); break;
+ case 0xc8c4: newgame(context); break;
+ case 0xc8c8: loadold(context); break;
+ case 0xc8cc: loadspeech(context); break;
+ case 0xc8d0: createname(context); break;
+ case 0xc8d4: loadsample(context); break;
+ case 0xc8d8: loadsecondsample(context); break;
+ case 0xc8dc: soundstartup(context); break;
+ case 0xc8e0: trysoundalloc(context); break;
+ case 0xc8e4: setsoundoff(context); break;
+ case 0xc8e8: checksoundint(context); break;
+ case 0xc8ec: enablesoundint(context); break;
+ case 0xc8f0: disablesoundint(context); break;
+ case 0xc8f4: interupttest(context); break;
+ case 0xc8f8: soundend(context); break;
+ case 0xc8fc: out22c(context); break;
+ case 0xc900: playchannel0(context); break;
+ case 0xc904: playchannel1(context); break;
+ case 0xc908: makenextblock(context); break;
+ case 0xc90c: volumeadjust(context); break;
+ case 0xc910: loopchannel0(context); break;
+ case 0xc914: cancelch0(context); break;
+ case 0xc918: cancelch1(context); break;
+ case 0xc91c: channel0only(context); break;
+ case 0xc920: channel1only(context); break;
+ case 0xc924: channel0tran(context); break;
+ case 0xc928: bothchannels(context); break;
+ case 0xc92c: saveems(context); break;
+ case 0xc930: restoreems(context); break;
+ case 0xc934: domix(context); break;
+ case 0xc938: dmaend(context); break;
+ case 0xc93c: startdmablock(context); break;
+ case 0xc940: setuppit(context); break;
+ case 0xc944: getridofpit(context); break;
+ case 0xc948: pitinterupt(context); break;
+ case 0xc94c: dreamweb(context); break;
+ case 0xc950: entrytexts(context); break;
+ case 0xc954: entryanims(context); break;
+ case 0xc958: initialinv(context); break;
+ case 0xc95c: pickupob(context); break;
+ case 0xc960: setupemm(context); break;
+ case 0xc964: removeemm(context); break;
+ case 0xc968: checkforemm(context); break;
+ case 0xc96c: checkbasemem(context); break;
+ case 0xc970: allocatebuffers(context); break;
+ case 0xc974: clearbuffers(context); break;
+ case 0xc978: clearchanges(context); break;
+ case 0xc97c: clearbeforeload(context); break;
+ case 0xc980: clearreels(context); break;
+ case 0xc984: clearrest(context); break;
+ case 0xc988: deallocatemem(context); break;
+ case 0xc98c: allocatemem(context); break;
+ case 0xc994: parseblaster(context); break;
+ case 0xc998: startup(context); break;
+ case 0xc99c: startup1(context); break;
+ case 0xc9a0: screenupdate(context); break;
+ case 0xc9a4: watchreel(context); break;
+ case 0xc9a8: checkforshake(context); break;
+ case 0xc9ac: watchcount(context); break;
+ case 0xc9b0: showtime(context); break;
+ case 0xc9b4: dumpwatch(context); break;
+ case 0xc9b8: showbyte(context); break;
+ case 0xc9bc: onedigit(context); break;
+ case 0xc9c0: twodigitnum(context); break;
+ case 0xc9c4: showword(context); break;
+ case 0xc9c8: convnum(context); break;
+ case 0xc9cc: mainscreen(context); break;
+ case 0xc9d0: madmanrun(context); break;
+ case 0xc9d4: checkcoords(context); break;
+ case 0xc9d8: identifyob(context); break;
+ case 0xc9dc: checkifperson(context); break;
+ case 0xc9e0: checkifset(context); break;
+ case 0xc9e4: checkifex(context); break;
+ case 0xc9e8: checkiffree(context); break;
+ case 0xc9ec: isitdescribed(context); break;
+ case 0xc9f0: findpathofpoint(context); break;
+ case 0xc9f4: findfirstpath(context); break;
+ case 0xc9f8: turnpathon(context); break;
+ case 0xc9fc: turnpathoff(context); break;
+ case 0xca00: turnanypathon(context); break;
+ case 0xca04: turnanypathoff(context); break;
+ case 0xca08: checkifpathison(context); break;
+ case 0xca0c: afternewroom(context); break;
+ case 0xca10: atmospheres(context); break;
+ case 0xca14: walkintoroom(context); break;
+ case 0xca18: afterintroroom(context); break;
+ case 0xca1c: obname(context); break;
+ case 0xca20: finishedwalking(context); break;
+ case 0xca24: examineobtext(context); break;
+ case 0xca28: commandwithob(context); break;
+ case 0xca2c: commandonly(context); break;
+ case 0xca30: printmessage(context); break;
+ case 0xca34: printmessage2(context); break;
+ case 0xca38: blocknametext(context); break;
+ case 0xca3c: personnametext(context); break;
+ case 0xca40: walktotext(context); break;
+ case 0xca44: getflagunderp(context); break;
+ case 0xca48: setwalk(context); break;
+ case 0xca4c: autosetwalk(context); break;
+ case 0xca50: checkdest(context); break;
+ case 0xca54: bresenhams(context); break;
+ case 0xca58: workoutframes(context); break;
+ case 0xca5c: getroomspaths(context); break;
+ case 0xca60: copyname(context); break;
+ case 0xca64: findobname(context); break;
+ case 0xca68: showicon(context); break;
+ case 0xca6c: middlepanel(context); break;
+ case 0xca70: showman(context); break;
+ case 0xca74: showpanel(context); break;
+ case 0xca78: roomname(context); break;
+ case 0xca7c: usecharset1(context); break;
+ case 0xca80: usetempcharset(context); break;
+ case 0xca84: showexit(context); break;
+ case 0xca88: panelicons1(context); break;
+ case 0xca8c: showwatch(context); break;
+ case 0xca90: gettime(context); break;
+ case 0xca94: zoomicon(context); break;
+ case 0xca98: showblink(context); break;
+ case 0xca9c: dumpblink(context); break;
+ case 0xcaa0: worktoscreenm(context); break;
+ case 0xcaa4: blank(context); break;
+ case 0xcaa8: allpointer(context); break;
+ case 0xcaac: hangonp(context); break;
+ case 0xcab0: hangonw(context); break;
+ case 0xcab4: hangoncurs(context); break;
+ case 0xcab8: getunderzoom(context); break;
+ case 0xcabc: dumpzoom(context); break;
+ case 0xcac0: putunderzoom(context); break;
+ case 0xcac4: crosshair(context); break;
+ case 0xcac8: showpointer(context); break;
+ case 0xcacc: delpointer(context); break;
+ case 0xcad0: dumppointer(context); break;
+ case 0xcad4: undertextline(context); break;
+ case 0xcad8: deltextline(context); break;
+ case 0xcadc: dumptextline(context); break;
+ case 0xcae0: animpointer(context); break;
+ case 0xcae4: setmouse(context); break;
+ case 0xcae8: readmouse(context); break;
+ case 0xcaec: mousecall(context); break;
+ case 0xcaf0: readmouse1(context); break;
+ case 0xcaf4: readmouse2(context); break;
+ case 0xcaf8: readmouse3(context); break;
+ case 0xcafc: readmouse4(context); break;
+ case 0xcb00: readkey(context); break;
+ case 0xcb04: convertkey(context); break;
+ case 0xcb08: randomnum1(context); break;
+ case 0xcb0c: randomnum2(context); break;
+ case 0xcb14: hangon(context); break;
+ case 0xcb18: loadtraveltext(context); break;
+ case 0xcb1c: loadintotemp(context); break;
+ case 0xcb20: loadintotemp2(context); break;
+ case 0xcb24: loadintotemp3(context); break;
+ case 0xcb28: loadtempcharset(context); break;
+ case 0xcb2c: standardload(context); break;
+ case 0xcb30: loadtemptext(context); break;
+ case 0xcb34: loadroom(context); break;
+ case 0xcb38: loadroomssample(context); break;
+ case 0xcb3c: getridofreels(context); break;
+ case 0xcb40: getridofall(context); break;
+ case 0xcb44: restorereels(context); break;
+ case 0xcb48: restoreall(context); break;
+ case 0xcb4c: sortoutmap(context); break;
+ case 0xcb50: startloading(context); break;
+ case 0xcb54: disablepath(context); break;
+ case 0xcb58: findxyfrompath(context); break;
+ case 0xcb5c: findroominloc(context); break;
+ case 0xcb60: getroomdata(context); break;
+ case 0xcb64: readheader(context); break;
+ case 0xcb68: dontloadseg(context); break;
+ case 0xcb6c: allocateload(context); break;
+ case 0xcb70: fillspace(context); break;
+ case 0xcb74: getridoftemp(context); break;
+ case 0xcb78: getridoftemptext(context); break;
+ case 0xcb7c: getridoftemp2(context); break;
+ case 0xcb80: getridoftemp3(context); break;
+ case 0xcb84: getridoftempcharset(context); break;
+ case 0xcb88: getridoftempsp(context); break;
+ case 0xcb8c: readsetdata(context); break;
+ case 0xcb90: createfile(context); break;
+ case 0xcb94: openfile(context); break;
+ case 0xcb98: openfilenocheck(context); break;
+ case 0xcb9c: openforsave(context); break;
+ case 0xcba0: closefile(context); break;
+ case 0xcba4: readfromfile(context); break;
+ case 0xcba8: setkeyboardint(context); break;
+ case 0xcbac: resetkeyboard(context); break;
+ case 0xcbb0: keyboardread(context); break;
+ case 0xcbb4: walkandexamine(context); break;
+ case 0xcbb8: doload(context); break;
+ case 0xcbbc: generalerror(context); break;
default: ::error("invalid call to %04x dispatched", (uint16)context.ax);
}
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 40e3539..d2db7f2 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -60,8 +60,8 @@ namespace dreamgen {
void scanfornames(Context &context);
void saveseg(Context &context);
void loadseg(Context &context);
- void loadposition(Context &context);
- void saveposition(Context &context);
+ void savefileread(Context &context);
+ void savefilewrite(Context &context);
void error(Context &context);
void generalerror(Context &context);
void dosreturn(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index db49b74..2c03e36 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -29,7 +29,7 @@
#include "common/EventRecorder.h"
#include "common/file.h"
#include "common/func.h"
-#include "common/iff_container.h"
+#include "common/savefile.h"
#include "common/system.h"
#include "common/timer.h"
#include "common/util.h"
@@ -290,7 +290,6 @@ void DreamWebEngine::cls() {
_system->fillScreen(0);
}
-
} // End of namespace DreamWeb
@@ -585,6 +584,12 @@ void saveseg(Context &context) {
::error("saveseg");
}
+void savefilewrite(Context &context) {
+}
+
+void savefileread(Context &context) {
+}
+
void loadseg(Context &context) {
context.ax = context.es.word(context.di);
context.di += 2;
@@ -597,14 +602,6 @@ void loadseg(Context &context) {
context.flags._c = false;
}
-void loadposition(Context &context) {
- ::error("loadposition");
-}
-
-void saveposition(Context &context) {
- ::error("saveposition");
-}
-
void error(Context &context) {
::error("error");
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 78c8960..633d507 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -36,10 +36,6 @@
#include "dreamweb/dreamgen.h"
#include "dreamweb/console.h"
-namespace Graphics {
- class Surface;
-}
-
namespace DreamWeb {
// Engine Debug Flags
@@ -79,7 +75,7 @@ public:
uint8 randomNumber() { return _rnd.getRandomNumber(255); }
void openFile(const Common::String &name);
- uint32 readFromFile(uint8 *dst, unsigned size);
+ uint32 readFromFile(uint8 *data, unsigned size);
uint32 skipBytes(uint32 bytes);
void closeFile();
Commit: c5ab591b791d96783d9fdb7796a162cbe246b08b
https://github.com/scummvm/scummvm/commit/c5ab591b791d96783d9fdb7796a162cbe246b08b
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:19-07:00
Commit Message:
DREAMWEB: unstabbed save
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 2c03e36..817496d 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -29,7 +29,6 @@
#include "common/EventRecorder.h"
#include "common/file.h"
#include "common/func.h"
-#include "common/savefile.h"
#include "common/system.h"
#include "common/timer.h"
#include "common/util.h"
@@ -196,7 +195,22 @@ uint32 DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
void DreamWebEngine::closeFile() {
processEvents();
- _file.close();
+ if (_file.isOpen())
+ _file.close();
+ delete _saveFile;
+ _saveFile = 0;
+}
+
+void DreamWebEngine::openSaveFile(const Common::String &name) {
+ processEvents();
+ _saveFile = _system->getSavefileManager()->openForSaving(name);
+}
+
+uint DreamWebEngine::writeToSaveFile(const uint8 *data, uint size) {
+ processEvents();
+ if (!_saveFile)
+ error("save file was not opened");
+ return _saveFile->write(data, size);
}
void DreamWebEngine::keyPressed(uint16 ascii) {
@@ -408,7 +422,9 @@ void closefile(Context &context) {
}
void openforsave(Context &context) {
- ::error("openforsave");
+ const char *name = (const char *)context.ds.ptr(context.dx, 13);
+ debug(1, "openforsave(%s)", name);
+ engine()->openSaveFile(name);
}
void openfilenocheck(Context &context) {
@@ -581,10 +597,13 @@ void scanfornames(Context &context) {
}
void saveseg(Context &context) {
- ::error("saveseg");
+ context.cx = context.es.word(context.di);
+ context._add(context.di, 2);
+ savefilewrite(context);
}
void savefilewrite(Context &context) {
+ engine()->writeToSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
}
void savefileread(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 633d507..7e99bf5 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -30,6 +30,7 @@
#include "common/file.h"
#include "common/random.h"
#include "common/rect.h"
+#include "common/savefile.h"
#include "common/scummsys.h"
#include "engines/engine.h"
@@ -89,6 +90,9 @@ public:
void getPalette(uint8 *data, uint start, uint count);
void setPalette(const uint8 *data, uint start, uint count);
+
+ void openSaveFile(const Common::String &name);
+ uint writeToSaveFile(const uint8 *data, uint size);
private:
@@ -100,6 +104,7 @@ private:
unsigned _mouseState;
Common::File _file;
+ Common::OutSaveFile *_saveFile;
dreamgen::Context _context;
};
Commit: f592fe188117e3f56cd19409afbed5b94c6d4d4a
https://github.com/scummvm/scummvm/commit/f592fe188117e3f56cd19409afbed5b94c6d4d4a
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:20-07:00
Commit Message:
DREAMWEB: unstubbed scanfornames
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 10766a7..604ff90 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -7,6 +7,7 @@ void allocatebuffers(Context &context);
void clearbuffers(Context &context);
void clearpalette(Context &context);
void readsetdata(Context &context);
+void scanfornames(Context &context);
void loadpalfromiff(Context &context);
void titles(Context &context);
void credits(Context &context);
@@ -16374,7 +16375,6 @@ void loadposition(Context & context) {
context.dx = 8469;
context._add(context.dx, context.ax);
openfile(context);
- context.ah = 0x3f;
context.ds = context.cs;
context.dx = 5862;
context.cx = (5958-5862);
@@ -16452,6 +16452,54 @@ foundlen:
return;
}
+void scanfornames(Context & context) {
+ context.dx = context.data;
+ context.es = context.dx;
+ context.di = 8350;
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8469;
+ context.cx = 7;
+scanloop:
+ context.push(context.es);
+ context.push(context.ds);
+ context.push(context.di);
+ context.push(context.dx);
+ context.push(context.cx);
+ openfilenocheck(context);
+ if (context.flags.c()) goto notexist;
+ context.cx = context.pop();
+ context._add(context.ch, 1);
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.es);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 5862;
+ context.cx = (5958-5862);
+ savefileread(context);
+ context.dx = context.data;
+ context.es = context.dx;
+ context.di = 5912;
+ context.ds = context.pop();
+ context.dx = context.pop();
+ loadseg(context);
+ context.bx = context.data.word(kHandle);
+ closefile(context);
+notexist:
+ context.cx = context.pop();
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.ds = context.pop();
+ context.es = context.pop();
+ context._add(context.dx, 13);
+ context._add(context.di, 17);
+ context._sub(context.cl, 1);
+ if (!context.flags.z()) goto scanloop;
+ context.al = context.ch;
+ return;
+}
+
void decide(Context & context) {
setmode(context);
loadpalfromiff(context);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index d2db7f2..da4bbb6 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -57,7 +57,6 @@ namespace dreamgen {
void loadsecondsample(Context &context);
void loadsample(Context &context);
void loadspeech(Context &context);
- void scanfornames(Context &context);
void saveseg(Context &context);
void loadseg(Context &context);
void savefileread(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 817496d..26c7afe 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -591,11 +591,6 @@ void loadspeech(Context &context) {
::error("loadspeech");
}
-void scanfornames(Context &context) {
- warning("scanfornames: STUB");
- context.ch = 0;
-}
-
void saveseg(Context &context) {
context.cx = context.es.word(context.di);
context._add(context.di, 2);
Commit: b673130bf4cf0c77a106770e32c5125dbb7fccf1
https://github.com/scummvm/scummvm/commit/b673130bf4cf0c77a106770e32c5125dbb7fccf1
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:20-07:00
Commit Message:
DREAMWEB: implemented somewhat hackish read from currently open file
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 26c7afe..159462e 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -65,6 +65,8 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
DebugMan.addDebugChannel(kDebugAnimation, "Animation", "Animation Debug Flag");
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
_instance = this;
+ _outSaveFile = 0;
+ _inSaveFile = 0;
}
DreamWebEngine::~DreamWebEngine() {
@@ -188,31 +190,51 @@ uint32 DreamWebEngine::skipBytes(uint32 bytes) {
uint32 DreamWebEngine::readFromFile(uint8 *dst, unsigned size) {
processEvents();
- if (!_file.isOpen())
- error("file was not opened (read before open)");
- return _file.read(dst, size);
+ if (_file.isOpen())
+ return _file.read(dst, size);
+ if (_inSaveFile)
+ return _inSaveFile->read(dst, size);
+ error("file was not opened (read before open)");
}
void DreamWebEngine::closeFile() {
processEvents();
if (_file.isOpen())
_file.close();
- delete _saveFile;
- _saveFile = 0;
+ delete _inSaveFile;
+ _inSaveFile = 0;
+ delete _outSaveFile;
+ _outSaveFile = 0;
}
-void DreamWebEngine::openSaveFile(const Common::String &name) {
+void DreamWebEngine::openSaveFileForWriting(const Common::String &name) {
processEvents();
- _saveFile = _system->getSavefileManager()->openForSaving(name);
+ delete _outSaveFile;
+ _outSaveFile = _system->getSavefileManager()->openForSaving(name);
+}
+
+bool DreamWebEngine::openSaveFileForReading(const Common::String &name) {
+ processEvents();
+ delete _inSaveFile;
+ _inSaveFile = _system->getSavefileManager()->openForLoading(name);
+ return _inSaveFile != 0;
}
uint DreamWebEngine::writeToSaveFile(const uint8 *data, uint size) {
processEvents();
- if (!_saveFile)
- error("save file was not opened");
- return _saveFile->write(data, size);
+ if (!_outSaveFile)
+ error("save file was not opened for writing");
+ return _outSaveFile->write(data, size);
}
+uint DreamWebEngine::readFromSaveFile(uint8 *data, uint size) {
+ processEvents();
+ if (!_inSaveFile)
+ error("save file was not opened for reading");
+ return _inSaveFile->read(data, size);
+}
+
+
void DreamWebEngine::keyPressed(uint16 ascii) {
debug(1, "key pressed = %04x", ascii);
uint8* keybuf = _context.data.ptr(5715, 16); //fixme: some hardcoded offsets are not added as consts
@@ -424,11 +446,14 @@ void closefile(Context &context) {
void openforsave(Context &context) {
const char *name = (const char *)context.ds.ptr(context.dx, 13);
debug(1, "openforsave(%s)", name);
- engine()->openSaveFile(name);
+ engine()->openSaveFileForWriting(name);
}
void openfilenocheck(Context &context) {
- ::error("openfilenocheck");
+ const char *name = (const char *)context.ds.ptr(context.dx, 13);
+ debug(1, "checksavefile(%s)", name);
+ bool ok = engine()->openSaveFileForReading(name);
+ context.flags._c = !ok;
}
void openfile(Context &context) {
@@ -598,10 +623,11 @@ void saveseg(Context &context) {
}
void savefilewrite(Context &context) {
- engine()->writeToSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
+ context.ax = engine()->writeToSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
}
void savefileread(Context &context) {
+ context.ax = engine()->readFromSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
}
void loadseg(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 7e99bf5..440a27b 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -91,9 +91,12 @@ public:
void getPalette(uint8 *data, uint start, uint count);
void setPalette(const uint8 *data, uint start, uint count);
- void openSaveFile(const Common::String &name);
+ void openSaveFileForWriting(const Common::String &name);
uint writeToSaveFile(const uint8 *data, uint size);
+ bool openSaveFileForReading(const Common::String &name);
+ uint readFromSaveFile(uint8 *data, uint size);
+
private:
void keyPressed(uint16 ascii);
@@ -104,7 +107,8 @@ private:
unsigned _mouseState;
Common::File _file;
- Common::OutSaveFile *_saveFile;
+ Common::OutSaveFile *_outSaveFile;
+ Common::InSaveFile *_inSaveFile;
dreamgen::Context _context;
};
Commit: 5fda321a80c006f6c55abcd48790165b25e678aa
https://github.com/scummvm/scummvm/commit/5fda321a80c006f6c55abcd48790165b25e678aa
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:21-07:00
Commit Message:
DREAMWEB: added the same magic for opening files
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 159462e..21baa8b 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -174,12 +174,13 @@ Common::Error DreamWebEngine::run() {
void DreamWebEngine::openFile(const Common::String &name) {
processEvents();
- if (_file.isOpen()) {
- _file.close();
- }
- if (!_file.open(name)) {
- error("cannot open file %s", name.c_str());
- }
+ closeFile();
+ if (_file.open(name))
+ return;
+ _inSaveFile = _system->getSavefileManager()->openForLoading(name);
+ if (_inSaveFile)
+ return;
+ error("cannot open file %s", name.c_str());
}
uint32 DreamWebEngine::skipBytes(uint32 bytes) {
Commit: bd285645944861771f7a9f1b2ddc4778a60c50f7
https://github.com/scummvm/scummvm/commit/bd285645944861771f7a9f1b2ddc4778a60c50f7
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:21-07:00
Commit Message:
DREAMWEB: removed ugly static engine
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 21baa8b..0b8146a 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -50,10 +50,10 @@ namespace dreamgen {
namespace DreamWeb {
-DreamWebEngine *DreamWebEngine::_instance;
-
DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc) :
Engine(syst), _gameDescription(gameDesc), _rnd("dreamweb") {
+
+ _context.engine = this;
// Setup mixer
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume"));
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
@@ -64,7 +64,6 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_console = 0;
DebugMan.addDebugChannel(kDebugAnimation, "Animation", "Animation Debug Flag");
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
- _instance = this;
_outSaveFile = 0;
_inSaveFile = 0;
}
@@ -332,10 +331,6 @@ void DreamWebEngine::cls() {
namespace dreamgen {
-static inline DreamWeb::DreamWebEngine *engine() {
- return DreamWeb::DreamWebEngine::instance();
-}
-
void multiget(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
unsigned src = (uint16)context.di + (uint16)context.bx * kScreenwidth;
@@ -369,12 +364,12 @@ void multidump(Context &context) {
int x = (int16)context.di, y = (int16)context.bx;
unsigned offset = x + y * kScreenwidth;
//debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
- engine()->blit(context.ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
+ context.engine->blit(context.ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
}
void worktoscreen(Context &context) {
context.ds = context.data.word(kWorkspace);
- engine()->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200);
+ context.engine->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200);
}
void printundermon(Context &context) {
@@ -382,7 +377,7 @@ void printundermon(Context &context) {
}
void cls(Context &context) {
- engine()->cls();
+ context.engine->cls();
}
void frameoutnm(Context &context) {
@@ -408,7 +403,7 @@ void seecommandtail(Context &context) {
}
void randomnumber(Context &context) {
- context.al = engine()->randomNumber();
+ context.al = context.engine->randomNumber();
}
void quickquit(Context &context) {
@@ -435,25 +430,25 @@ void readfromfile(Context &context) {
uint16 dst_offset = context.dx;
uint16 size = context.cx;
debug(1, "readfromfile(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
- context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
+ context.ax = context.engine->readFromFile(context.ds.ptr(dst_offset, size), size);
context.flags._c = false;
}
void closefile(Context &context) {
- engine()->closeFile();
+ context.engine->closeFile();
context.data.byte(kHandle) = 0;
}
void openforsave(Context &context) {
const char *name = (const char *)context.ds.ptr(context.dx, 13);
debug(1, "openforsave(%s)", name);
- engine()->openSaveFileForWriting(name);
+ context.engine->openSaveFileForWriting(name);
}
void openfilenocheck(Context &context) {
const char *name = (const char *)context.ds.ptr(context.dx, 13);
debug(1, "checksavefile(%s)", name);
- bool ok = engine()->openSaveFileForReading(name);
+ bool ok = context.engine->openSaveFileForReading(name);
context.flags._c = !ok;
}
@@ -464,7 +459,7 @@ void openfile(Context &context) {
while((c = context.cs.byte(name_ptr++)) != 0)
name += (char)c;
debug(1, "opening file: %s", name.c_str());
- engine()->openFile(name);
+ context.engine->openFile(name);
context.cs.word(kHandle) = 1; //only one handle
context.flags._c = false;
}
@@ -478,13 +473,13 @@ void dontloadseg(Context &context) {
context._add(context.di, 2);
context.dx = context.ax;
context.cx = 0;
- unsigned pos = engine()->skipBytes(context.dx);
+ unsigned pos = context.engine->skipBytes(context.dx);
context.dx = pos >> 16;
context.ax = pos & 0xffff;
}
void mousecall(Context &context) {
- engine()->mouseCall();
+ context.engine->mouseCall();
}
void setmouse(Context &context) {
@@ -624,11 +619,11 @@ void saveseg(Context &context) {
}
void savefilewrite(Context &context) {
- context.ax = engine()->writeToSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
+ context.ax = context.engine->writeToSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
}
void savefileread(Context &context) {
- context.ax = engine()->readFromSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
+ context.ax = context.engine->readFromSaveFile(context.ds.ptr(context.dx, context.cx), context.cx);
}
void loadseg(Context &context) {
@@ -639,7 +634,7 @@ void loadseg(Context &context) {
uint16 size = context.ax;
debug(1, "loadseg(%04x:%u, %u)", (uint16)context.ds, dst_offset, size);
- context.ax = engine()->readFromFile(context.ds.ptr(dst_offset, size), size);
+ context.ax = context.engine->readFromFile(context.ds.ptr(dst_offset, size), size);
context.flags._c = false;
}
@@ -680,11 +675,11 @@ void mode640x480(Context &context) {
}
void showgroup(Context &context) {
- engine()->setPalette();
+ context.engine->setPalette();
}
void fadedos(Context &context) {
- engine()->fadeDos();
+ context.engine->fadeDos();
}
void doshake(Context &context) {
@@ -692,12 +687,12 @@ void doshake(Context &context) {
}
void vsync(Context &context) {
- engine()->waitForVSync();
+ context.engine->waitForVSync();
}
void setmode(Context &context) {
vsync(context);
- engine()->setGraphicsMode();
+ context.engine->setGraphicsMode();
}
void readoneblock(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 440a27b..c0bd9d9 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -51,7 +51,6 @@ class DreamWebEngine : public Engine {
private:
DreamWebConsole *_console;
bool _vSyncInterrupt;
- static DreamWebEngine *_instance;
protected:
// Engine APIs
@@ -61,7 +60,6 @@ protected:
public:
DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc);
virtual ~DreamWebEngine();
- static DreamWebEngine* instance() { return _instance; }
void setVSyncInterrupt(bool flag);
void waitForVSync();
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index d92a8d6..3adc99b 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -9,6 +9,10 @@
#include "common/list.h"
#include "common/ptr.h"
+namespace DreamWeb {
+ class DreamWebEngine;
+}
+
namespace dreamgen {
//fixme: name clash
@@ -195,10 +199,12 @@ class Context {
typedef Common::List<uint16> FreeSegmentList;
FreeSegmentList _freeSegments;
-
+
public:
+ DreamWeb::DreamWebEngine *engine;
+
enum { kDefaultDataSegment = 0x1000 };
-
+
Register ax, dx, bx, cx, si, di;
LowPartOfRegister al;
HighPartOfRegister ah;
@@ -208,12 +214,12 @@ public:
HighPartOfRegister ch;
LowPartOfRegister dl;
HighPartOfRegister dh;
-
+
SegmentRef cs, ds, es, data;
//data == fake segment register always pointing to data segment
Flags flags;
- inline Context(): al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx),
+ inline Context(): engine(0), al(ax), ah(ax), bl(bx), bh(bx), cl(cx), ch(cx), dl(dx), dh(dx),
cs(this), ds(this), es(this), data(this) {
_segments[kDefaultDataSegment] = SegmentPtr(new Segment());
cs.reset(kDefaultDataSegment);
Commit: 04ee3aefae8ced07e69f42490859b3408d2c8cd8
https://github.com/scummvm/scummvm/commit/04ee3aefae8ced07e69f42490859b3408d2c8cd8
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:22-07:00
Commit Message:
DREAMWEB: implemented doshake
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 0b8146a..60462dc 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -683,7 +683,32 @@ void fadedos(Context &context) {
}
void doshake(Context &context) {
- //warning("doshake: STUB");
+ uint8 &counter = context.data.byte(kShakecounter);
+ context._cmp(counter, 48);
+ if (context.flags.z())
+ return;
+
+ context._add(counter, 1);
+ static const int shakeTable[] = {
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 2, 0, -2, 3, -2,
+ 0, 2, 4, -1, 1, -3, 3, 2,
+ 0, -2, 3, -2, 0, 2, 4, -1,
+
+ 1, -3, 3, 2, 0, -2, 3, -2,
+ 0, 2, 4, -1, 1, -3, 3, 2,
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 2, 0, -2, 3, -2,
+
+ 0, 2, 4, -1, 1, -3, 3, 2,
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 2, 0, -2, 3, -2,
+ 0, 2, 4, -1, 1, -3, 3, 2,
+
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 0,
+ };
+ context.engine->setShakePos(shakeTable[counter]);
}
void vsync(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index c0bd9d9..8cd489c 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -85,16 +85,18 @@ public:
void fadeDos();
void blit(const uint8 *src, int pitch, int x, int y, int w, int h);
void cls();
-
+
void getPalette(uint8 *data, uint start, uint count);
void setPalette(const uint8 *data, uint start, uint count);
-
+
void openSaveFileForWriting(const Common::String &name);
uint writeToSaveFile(const uint8 *data, uint size);
bool openSaveFileForReading(const Common::String &name);
uint readFromSaveFile(uint8 *data, uint size);
+ void setShakePos(int pos) { _system->setShakePos(pos); }
+
private:
void keyPressed(uint16 ascii);
@@ -103,11 +105,11 @@ private:
Common::RandomSource _rnd;
Common::Point _mouse;
unsigned _mouseState;
-
+
Common::File _file;
Common::OutSaveFile *_outSaveFile;
Common::InSaveFile *_inSaveFile;
-
+
dreamgen::Context _context;
};
Commit: 4ba74f73e1315430de0d86e3712a8ad2298f16f8
https://github.com/scummvm/scummvm/commit/4ba74f73e1315430de0d86e3712a8ad2298f16f8
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:22-07:00
Commit Message:
DREAMWEB: moved quit() into engine's method
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 60462dc..68cb902 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -102,13 +102,18 @@ void DreamWebEngine::waitForVSync() {
_system->updateScreen();
}
+void DreamWebEngine::quit() {
+ warning("Engine should quit gracefully (but doesn't yet)");
+ g_system->quit();
+}
+
void DreamWebEngine::processEvents() {
Common::EventManager *event_manager = _system->getEventManager();
- Common::Event event;
if (event_manager->shouldQuit()) {
- warning("Engine should quit gracefully (but doesn't yet)");
- g_system->quit();
+ quit();
+ return;
}
+ Common::Event event;
while (event_manager->pollEvent(event)) {
switch(event.type) {
case Common::EVENT_LBUTTONDOWN:
@@ -407,13 +412,11 @@ void randomnumber(Context &context) {
}
void quickquit(Context &context) {
- assert(0);
- ::error("quickquit");
+ context.engine->quit();
}
void quickquit2(Context &context) {
- assert(0);
- ::error("quickquit2");
+ context.engine->quit();
}
void keyboardread(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 8cd489c..455791d 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -97,6 +97,8 @@ public:
void setShakePos(int pos) { _system->setShakePos(pos); }
+ void quit();
+
private:
void keyPressed(uint16 ascii);
Commit: 1ac23aa8584bb8de523cb67abc125b078e0e29c0
https://github.com/scummvm/scummvm/commit/1ac23aa8584bb8de523cb67abc125b078e0e29c0
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:22-07:00
Commit Message:
DREAMWEB: added middle mouse key handling
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 68cb902..fc2f5a8 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -128,6 +128,12 @@ void DreamWebEngine::processEvents() {
case Common::EVENT_RBUTTONUP:
_mouseState &= ~2;
break;
+ case Common::EVENT_MBUTTONDOWN:
+ _mouseState |= 4;
+ break;
+ case Common::EVENT_MBUTTONUP:
+ _mouseState &= ~4;
+ break;
case Common::EVENT_MOUSEMOVE:
_mouse = event.mouse;
break;
Commit: 3f53cb924463e37fac5973affa498f97569ba80c
https://github.com/scummvm/scummvm/commit/3f53cb924463e37fac5973affa498f97569ba80c
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:23-07:00
Commit Message:
DREAMWEB: removed warning about 16 colors palette, initialize mouseState
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fc2f5a8..7e6e5e6 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -62,6 +62,7 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_vSyncInterrupt = false;
_console = 0;
+ _mouseState = 0;
DebugMan.addDebugChannel(kDebugAnimation, "Animation", "Animation Debug Flag");
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
_outSaveFile = 0;
@@ -673,7 +674,6 @@ alreadydos:
}
void set16colpalette(Context &context) {
- warning("set16colpalette: STUB");
}
void mode640x480(Context &context) {
Commit: 562f1ed8b89fa251f843ee2d8d6565429ea193d5
https://github.com/scummvm/scummvm/commit/562f1ed8b89fa251f843ee2d8d6565429ea193d5
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:23-07:00
Commit Message:
DREAMWEB: Rewrite the PCX decoder i C++
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 7e6e5e6..086aee2 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -739,94 +739,78 @@ void readoneblock(Context &context) {
void readabyte(Context & context);
void showpcx(Context &context) {
- Graphics::Surface *s = g_system->lockScreen();
+ uint16 name_ptr = context.dx;
+ Common::String name;
+ uint8 c;
+ while((c = context.cs.byte(name_ptr++)) != 0)
+ name += (char)c;
- openfile(context);
- context.ds = context.data.word(kWorkspace);
- context.cx = 128;
- context.dx = 0;
- readfromfile(context);
+ Common::File pcxFile;
- context.ds = context.data.word(kWorkspace);
- context.si = 16;
- context.cx = 48;
- context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60+(32*32)+(11*10*3)+768+768;
-
-pcxpal:
- context.push(context.cx);
- readabyte(context);
- context._shr(context.al, 1);
- context._shr(context.al, 1);
- context._stosb();
- context.cx = context.pop();
- if (--context.cx) goto pcxpal;
- context.cx = 768 - 48;
- context.ax = 0x0ffff;
- while (context.cx--) context._stosw();
- readoneblock(context);
- context.si = 0;
- context.di = 0;
- context.cx = 480;
-convertpcx:
- context.push(context.cx);
- context.push(context.di);
- context.ds = context.data.word(kWorkspace);
+ if (!pcxFile.open(name)) {
+ warning("showpcx: Could not open '%s'", name.c_str());
+ return;
+ }
+
+ uint8 *maingamepal;
+ int i, j;
+
+ // Read the 16-color palette into the 'maingamepal' buffer. Note that
+ // the color components have to be adjusted from 8 to 6 bits.
+
+ pcxFile.seek(16, SEEK_SET);
context.es = context.data.word(kBuffers);
- context.di = 0+(228*13)+32+60;
- context.bx = 0;
-
- uint8 *src = context.es.ptr(context.di, 320);
-
-sameline:
- readabyte(context);
- context.ah = context.al;
- context._and(context.ah, 0xc0);
- context._cmp(context.ah, 0xc0);
- if (!context.flags.z()) goto normal;
- context.cl = context.al;
- context._and(context.cl, 0x3f);
- context.ch = 0;
- context.push(context.cx);
- readabyte(context);
- context.cx = context.pop();
- context._add(context.bx, context.cx);
- while (context.cx--) context._stosb();
- context._cmp(context.bx, 4 * 80);
- if (!context.flags.z()) goto sameline;
- goto endline;
-normal:
- context._stosb();
- context._add(context.bx, 1);
- context._cmp(context.bx, 4 * 80);
- if (!context.flags.z()) goto sameline;
-
-endline:
- context.di = context.pop();
- context.cx = context.pop();
-
- assert((uint16)context.cx <= 480);
- uint8 *dst = (uint8 *)s->getBasePtr(0, 480 - (uint16)context.cx);
- memset(dst, 0, 640);
-
- for (int i = 0; i < 320; i++) {
- int plane = i / 80;
- int pos = i % 80;
-
- for (int j = 0; j < 8; j++) {
- byte bit = (src[i] >> (7 - j)) & 1;
- dst[8 * pos + j] |= (bit << plane);
- }
+ maingamepal = context.es.ptr(5946, 768);
+ pcxFile.read(maingamepal, 48);
+
+ memset(maingamepal + 48, 0xff, 720);
+ for (i = 0; i < 48; i++) {
+ maingamepal[i] >>= 2;
}
- if (--context.cx) goto convertpcx;
+ // Decode the image data.
- closefile(context);
+ Graphics::Surface *s = g_system->lockScreen();
+ Common::Rect rect(640, 480);
- g_system->unlockScreen();
+ s->fillRect(rect, 0);
+ pcxFile.seek(128, SEEK_SET);
+
+ for (int y = 0; y < 480; y++) {
+ byte *dst = (byte *)s->getBasePtr(0, y);
+ int decoded = 0;
+
+ while (decoded < 320) {
+ byte col = pcxFile.readByte();
+ byte len;
+
+ if ((col & 0xc0) == 0xc0) {
+ len = col & 0x3f;
+ col = pcxFile.readByte();
+ } else {
+ len = 1;
+ }
- // TODO: This is probably not the right place to do this
- g_system->updateScreen();
+ // The image uses 16 colors and is stored as four bit
+ // planes, one for each bit of the color, least
+ // significant bit plane first.
+
+ for (i = 0; i < len; i++) {
+ int plane = decoded / 80;
+ int pos = decoded % 80;
+
+ for (j = 0; j < 8; j++) {
+ byte bit = (col >> (7 - j)) & 1;
+ dst[8 * pos + j] |= (bit << plane);
+ }
+
+ decoded++;
+ }
+ }
+ }
+
+ g_system->unlockScreen();
+ pcxFile.close();
}
} /*namespace dreamgen */
Commit: f8422b56a99fe288719c3df592b12d742c0dabe0
https://github.com/scummvm/scummvm/commit/f8422b56a99fe288719c3df592b12d742c0dabe0
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:24-07:00
Commit Message:
DREAMWEB: renamed update to update_zs
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 3adc99b..f99563f 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -174,12 +174,12 @@ struct Flags {
inline bool l() const { return _o; }
inline bool le() const { return _o || _z; }
- inline void update(uint8 v) {
+ inline void update_zs(uint8 v) {
_s = v & 0x80;
_z = v == 0;
}
- inline void update(uint16 v) {
+ inline void update_zs(uint16 v) {
_s = v & 0x8000;
_z = v == 0;
}
@@ -277,7 +277,7 @@ public:
flags.update_o((uint8)r, dst);
flags._c = r >= 0x100;
dst = r;
- flags.update(dst);
+ flags.update_zs(dst);
}
inline void _add(uint16 &dst, uint16 src) {
@@ -285,56 +285,56 @@ public:
flags.update_o((uint16)r, dst);
flags._c = r >= 0x10000;
dst = r;
- flags.update(dst);
+ flags.update_zs(dst);
}
inline void _sub(uint8 &dst, uint8 src) {
flags.update_o(uint8(dst - src), dst);
flags._c = dst < src;
dst -= src;
- flags.update(dst);
+ flags.update_zs(dst);
}
inline void _sub(uint16 &dst, uint16 src) {
flags.update_o(uint16(dst - src), dst);
flags._c = dst < src;
dst -= src;
- flags.update(dst);
+ flags.update_zs(dst);
}
inline void _and(uint8 &dst, uint8 src) {
dst &= src;
- flags.update(dst);
+ flags.update_zs(dst);
flags._c = flags._o = false;
}
inline void _and(uint16 &dst, uint16 src) {
dst &= src;
- flags.update(dst);
+ flags.update_zs(dst);
flags._c = flags._o = false;
}
inline void _or(uint8 &dst, uint8 src) {
dst |= src;
- flags.update(dst);
+ flags.update_zs(dst);
flags._c = flags._o = false;
}
inline void _or(uint16 &dst, uint16 src) {
dst |= src;
- flags.update(dst);
+ flags.update_zs(dst);
flags._c = flags._o = false;
}
inline void _xor(uint8 &dst, uint8 src) {
dst ^= src;
- flags.update(dst);
+ flags.update_zs(dst);
flags._c = flags._o = false;
}
inline void _xor(uint16 &dst, uint16 src) {
dst ^= src;
- flags.update(dst);
+ flags.update_zs(dst);
flags._c = flags._o = false;
}
@@ -344,8 +344,8 @@ public:
dst >>= (src - 1);
flags._c = dst & 1;
dst >>= 1;
+ flags.update_zs(dst);
}
- flags.update(dst);
if (src == 1)
flags._o = dst & 0x80;
}
@@ -356,8 +356,8 @@ public:
dst >>= (src - 1);
flags._c = dst & 1;
dst >>= 1;
+ flags.update_zs(dst);
}
- flags.update(dst);
if (src == 1)
flags._o = dst & 0x8000;
}
@@ -368,8 +368,8 @@ public:
dst <<= (src - 1);
flags._c = dst & 0x80;
dst <<= 1;
+ flags.update_zs(dst);
}
- flags.update(dst);
if (src == 1)
flags._o = ((dst & 0x80) != 0) == flags._c;
}
@@ -379,8 +379,8 @@ public:
dst <<= (src - 1);
flags._c = dst & 0x8000;
dst <<= 1;
+ flags.update_zs(dst);
}
- flags.update(dst);
if (src == 1)
flags._o = ((dst & 0x8000) != 0) == flags._c;
}
@@ -407,14 +407,14 @@ public:
inline void _neg(uint8 &src) {
flags._c = src != 0;
src = ~src;
- flags.update(src);
+ flags.update_zs(src);
flags._o = false;
}
inline void _neg(uint16 &src) {
flags._c = src != 0;
src = ~src;
- flags.update(src);
+ flags.update_zs(src);
flags._o = false;
}
Commit: bf80a8a3ac6f40000a042e94af2e257dc67ec6e0
https://github.com/scummvm/scummvm/commit/bf80a8a3ac6f40000a042e94af2e257dc67ec6e0
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:24-07:00
Commit Message:
DREAMWEB: added inc/dec instructions.
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/runtime.h
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 5126cd6..52f21bd 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -303,17 +303,17 @@ namespace %s {
def _shl(self, dst, src):
self.body += "\tcontext._shl(%s, %s);\n" %self.parse2(dst, src)
- def _sar(self, dst, src):
- self.body += "\tcontext._sar(%s%s);\n" %self.parse2(dst, src)
+ #def _sar(self, dst, src):
+ # self.body += "\tcontext._sar(%s%s);\n" %self.parse2(dst, src)
- def _sal(self, dst, src):
- self.body += "\tcontext._sal(%s, %s);\n" %self.parse2(dst, src)
+ #def _sal(self, dst, src):
+ # self.body += "\tcontext._sal(%s, %s);\n" %self.parse2(dst, src)
- def _rcl(self, dst, src):
- self.body += "\tcontext._rcl(%s, %s);\n" %self.parse2(dst, src)
+ #def _rcl(self, dst, src):
+ # self.body += "\tcontext._rcl(%s, %s);\n" %self.parse2(dst, src)
- def _rcr(self, dst, src):
- self.body += "\tcontext._rcr(%s, %s);\n" %self.parse2(dst, src)
+ #def _rcr(self, dst, src):
+ # self.body += "\tcontext._rcr(%s, %s);\n" %self.parse2(dst, src)
def _mul(self, src):
src = self.expand(src)
@@ -325,11 +325,11 @@ namespace %s {
def _inc(self, dst):
dst = self.expand(dst)
- self.body += "\tcontext._add(%s, 1);\n" %(dst)
+ self.body += "\tcontext._inc(%s);\n" %(dst)
def _dec(self, dst):
dst = self.expand(dst)
- self.body += "\tcontext._sub(%s, 1);\n" %(dst)
+ self.body += "\tcontext._dec(%s);\n" %(dst)
def _cmp(self, a, b):
self.body += "\tcontext._cmp(%s, %s);\n" %self.parse2(a, b)
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 604ff90..b27de1f 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -477,7 +477,7 @@ void intro1text(Context &context);
void alleybarksound(Context & context) {
context.ax = context.es.word(context.bx+3);
- context._sub(context.ax, 1);
+ context._dec(context.ax);
context._cmp(context.ax, 0);
if (!context.flags.z()) goto nobark;
context.push(context.bx);
@@ -511,7 +511,7 @@ void receptionist(Context & context) {
if (!context.flags.z()) goto gotrecep;
context._cmp(context.data.byte(kCardpassflag), 1);
if (!context.flags.z()) goto notsetcard;
- context._add(context.data.byte(kCardpassflag), 1);
+ context._inc(context.data.byte(kCardpassflag));
context.es.byte(context.bx+7) = 1;
context.es.word(context.bx+3) = 64;
notsetcard:
@@ -536,7 +536,7 @@ notdes2:
context.es.word(context.bx+3) = 53;
goto gotrecep;
notendcard:
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
gotrecep:
showgamereel(context);
addtopeoplelist(context);
@@ -576,7 +576,7 @@ notsmokeb1:
context.es.word(context.bx+3) = 96;
goto gotsmokeb;
notsmokeb2:
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
gotsmokeb:
showgamereel(context);
addtopeoplelist(context);
@@ -654,7 +654,7 @@ void louischair(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notlouisanim;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 191);
if (context.flags.z()) goto restartlouis;
context._cmp(context.ax, 185);
@@ -700,7 +700,7 @@ void tattooman(Context & context) {
void drinker(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gotdrinker;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
context._cmp(context.es.word(context.bx+3), 115);
if (!context.flags.z()) goto notdrinker1;
context.es.word(context.bx+3) = 105;
@@ -734,7 +734,7 @@ notsmoket1:
context.es.word(context.bx+3) = 81;
goto gotsmoket;
notsmoket2:
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
gotsmoket:
showgamereel(context);
context._cmp(context.data.byte(kGunpassflag), 1);
@@ -760,7 +760,7 @@ void barwoman(Context & context) {
void interviewer(Context & context) {
context._cmp(context.data.word(kReeltowatch), 68);
if (!context.flags.z()) goto notgeneralstart;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
notgeneralstart:
context._cmp(context.es.word(context.bx+3), 250);
if (context.flags.z()) goto talking;
@@ -768,7 +768,7 @@ notgeneralstart:
if (!context.flags.z()) goto talking;
context._cmp(context.es.word(context.bx+3), 259);
if (context.flags.z()) goto talking;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
talking:
showgamereel(context);
return;
@@ -780,7 +780,7 @@ void soldier1(Context & context) {
context.data.word(kWatchingtime) = 10;
context._cmp(context.es.word(context.bx+3), 30);
if (!context.flags.z()) goto notaftersshot;
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotsoldframe;
context.data.byte(kMandead) = 2;
@@ -788,7 +788,7 @@ void soldier1(Context & context) {
notaftersshot:
checkspeed(context);
if (!context.flags.z()) goto gotsoldframe;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
goto gotsoldframe;
soldierwait:
context._cmp(context.data.byte(kLastweapon), 1);
@@ -798,7 +798,7 @@ soldierwait:
if (!context.flags.z()) goto gotsoldframe;
context._cmp(context.data.byte(kFacing), 4);
if (!context.flags.z()) goto gotsoldframe;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
context.data.byte(kLastweapon) = -1;
context.data.byte(kCombatcount) = 0;
gotsoldframe:
@@ -816,7 +816,7 @@ void rockstar(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto rockspeed;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 118);
if (!context.flags.z()) goto notbeforedead;
context.data.byte(kMandead) = 2;
@@ -824,14 +824,14 @@ void rockstar(Context & context) {
notbeforedead:
context._cmp(context.ax, 79);
if (!context.flags.z()) goto gotrockframe;
- context._sub(context.ax, 1);
+ context._dec(context.ax);
context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto notgunonrock;
context.data.byte(kLastweapon) = -1;
context.ax = 123;
goto gotrockframe;
notgunonrock:
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotrockframe;
context.data.byte(kCombatcount) = 0;
@@ -865,10 +865,10 @@ void helicopter(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto helispeed;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 53);
if (!context.flags.z()) goto notbeforehdead;
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 8);
if (context.flags.c()) goto waitabit;
context.data.byte(kMandead) = 2;
@@ -878,7 +878,7 @@ waitabit:
notbeforehdead:
context._cmp(context.ax, 9);
if (!context.flags.z()) goto gotheliframe;
- context._sub(context.ax, 1);
+ context._dec(context.ax);
context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto notgunonheli;
context.data.byte(kLastweapon) = -1;
@@ -886,7 +886,7 @@ notbeforehdead:
goto gotheliframe;
notgunonheli:
context.ax = 5;
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 20);
if (!context.flags.z()) goto gotheliframe;
context.data.byte(kCombatcount) = 0;
@@ -927,7 +927,7 @@ void mugger(Context & context) {
havesetwatch:
checkspeed(context);
if (!context.flags.z()) goto notmugger;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
notmugger:
showgamereel(context);
context.al = context.data.byte(kMapx);
@@ -1020,7 +1020,7 @@ notfirstbiz:
checkspeed(context);
if (!context.flags.z()) goto busspeed;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 48);
if (!context.flags.z()) goto notbeforedeadb;
context.data.byte(kMandead) = 2;
@@ -1028,7 +1028,7 @@ notfirstbiz:
notbeforedeadb:
context._cmp(context.ax, 15);
if (!context.flags.z()) goto buscombatwon;
- context._sub(context.ax, 1);
+ context._dec(context.ax);
context._cmp(context.data.byte(kLastweapon), 3);
if (!context.flags.z()) goto notshieldonbus;
context.data.byte(kLastweapon) = -1;
@@ -1036,7 +1036,7 @@ notbeforedeadb:
context.ax = 51;
goto gotbusframe;
notshieldonbus:
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 20);
if (!context.flags.z()) goto gotbusframe;
context.data.byte(kCombatcount) = 0;
@@ -1099,17 +1099,17 @@ notfirstpool:
checkspeed(context);
if (!context.flags.z()) goto guardspeed;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 122);
if (!context.flags.z()) goto notendguard1;
- context._sub(context.ax, 1);
+ context._dec(context.ax);
context._cmp(context.data.byte(kLastweapon), 2);
if (!context.flags.z()) goto notaxeonpool;
context.data.byte(kLastweapon) = -1;
context.ax = 122;
goto gotguardframe;
notaxeonpool:
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotguardframe;
context.data.byte(kCombatcount) = 0;
@@ -1118,14 +1118,14 @@ notaxeonpool:
notendguard1:
context._cmp(context.ax, 147);
if (!context.flags.z()) goto gotguardframe;
- context._sub(context.ax, 1);
+ context._dec(context.ax);
context._cmp(context.data.byte(kLastweapon), 1);
if (!context.flags.z()) goto notgunonpool;
context.data.byte(kLastweapon) = -1;
context.ax = 147;
goto gotguardframe;
notgunonpool:
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 40);
if (!context.flags.z()) goto gotguardframe;
context.data.byte(kCombatcount) = 0;
@@ -1158,7 +1158,7 @@ combatover2:
showgamereel(context);
context.data.word(kWatchingtime) = 2;
context.data.byte(kPointermode) = 0;
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 100);
if (context.flags.c()) goto doneover2;
context.data.word(kWatchingtime) = 0;
@@ -1177,7 +1177,7 @@ notaftersec:
context.data.word(kWatchingtime) = 10;
checkspeed(context);
if (!context.flags.z()) goto gotsecurframe;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
goto gotsecurframe;
securwait:
context._cmp(context.data.byte(kLastweapon), 1);
@@ -1188,7 +1188,7 @@ securwait:
context._cmp(context.data.byte(kFacing), 0);
if (!context.flags.z()) goto gotsecurframe;
context.data.byte(kLastweapon) = -1;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
gotsecurframe:
showgamereel(context);
addtopeoplelist(context);
@@ -1204,7 +1204,7 @@ void heavy(Context & context) {
context.data.word(kWatchingtime) = 10;
context._cmp(context.es.word(context.bx+3), 70);
if (!context.flags.z()) goto notafterhshot;
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context._cmp(context.data.byte(kCombatcount), 80);
if (!context.flags.z()) goto gotheavyframe;
context.data.byte(kMandead) = 2;
@@ -1212,7 +1212,7 @@ void heavy(Context & context) {
notafterhshot:
checkspeed(context);
if (!context.flags.z()) goto gotheavyframe;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
goto gotheavyframe;
heavywait:
context._cmp(context.data.byte(kLastweapon), 1);
@@ -1222,7 +1222,7 @@ heavywait:
context._cmp(context.data.byte(kFacing), 4);
if (!context.flags.z()) goto gotheavyframe;
context.data.byte(kLastweapon) = -1;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
context.data.byte(kCombatcount) = 0;
gotheavyframe:
showgamereel(context);
@@ -1234,7 +1234,7 @@ void bossman(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notboss;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 4);
if (context.flags.z()) goto firstdes;
context._cmp(context.ax, 20);
@@ -1242,7 +1242,7 @@ void bossman(Context & context) {
context._cmp(context.ax, 41);
if (!context.flags.z()) goto gotallboss;
context.ax = 0;
- context._add(context.data.byte(kGunpassflag), 1);
+ context._inc(context.data.byte(kGunpassflag));
context.es.byte(context.bx+7) = 10;
goto gotallboss;
firstdes:
@@ -1316,7 +1316,7 @@ void keeper(Context & context) {
if (!context.flags.z()) goto notwaiting;
context._cmp(context.data.word(kReeltowatch), 190);
if (context.flags.c()) goto waiting;
- context._add(context.data.byte(kKeeperflag), 1);
+ context._inc(context.data.byte(kKeeperflag));
context.ah = context.es.byte(context.bx+7);
context._and(context.ah, 127);
context._cmp(context.ah, context.data.byte(kDreamnumber));
@@ -1336,7 +1336,7 @@ void candles1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candle1;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 44);
if (!context.flags.z()) goto notendcandle1;
context.ax = 39;
@@ -1351,7 +1351,7 @@ void smallcandle(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto smallcandlef;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 37);
if (!context.flags.z()) goto notendsmallcandle;
context.ax = 25;
@@ -1366,7 +1366,7 @@ void intromagic1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm1fin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 145);
if (!context.flags.z()) goto gotintrom1;
context.ax = 121;
@@ -1374,7 +1374,7 @@ gotintrom1:
context.es.word(context.bx+3) = context.ax;
context._cmp(context.ax, 121);
if (!context.flags.z()) goto introm1fin;
- context._add(context.data.byte(kIntrocount), 1);
+ context._inc(context.data.byte(kIntrocount));
context.push(context.es);
context.push(context.bx);
intro1text(context);
@@ -1393,7 +1393,7 @@ void candles(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candlesfin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 167);
if (!context.flags.z()) goto gotcandles;
context.ax = 162;
@@ -1408,7 +1408,7 @@ void candles2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto candles2fin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 238);
if (!context.flags.z()) goto gotcandles2;
context.ax = 233;
@@ -1423,7 +1423,7 @@ void gates(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto gatesfin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 116);
if (!context.flags.z()) goto notbang;
context.push(context.ax);
@@ -1459,7 +1459,7 @@ void intromagic2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm2fin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 216);
if (!context.flags.z()) goto gotintrom2;
context.ax = 192;
@@ -1474,7 +1474,7 @@ void intromagic3(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto introm3fin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 218);
if (!context.flags.z()) goto gotintrom3;
context.data.byte(kGetback) = 1;
@@ -1491,7 +1491,7 @@ void intromonks1(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk1fin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 80);
if (!context.flags.z()) goto notendmonk1;
context._add(context.data.byte(kMapy), 10);
@@ -1535,10 +1535,10 @@ void intromonks2(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto intromonk2fin;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 87);
if (!context.flags.z()) goto nottalk1;
- context._add(context.data.byte(kIntrocount), 1);
+ context._inc(context.data.byte(kIntrocount));
context.push(context.es);
context.push(context.bx);
monks2text(context);
@@ -1554,7 +1554,7 @@ notlasttalk1:
nottalk1:
context._cmp(context.ax, 110);
if (!context.flags.z()) goto notraisearm;
- context._add(context.data.byte(kIntrocount), 1);
+ context._inc(context.data.byte(kIntrocount));
context.push(context.es);
context.push(context.bx);
monks2text(context);
@@ -1775,10 +1775,10 @@ void monkandryan(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notmonkryan;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 83);
if (!context.flags.z()) goto gotmonkryan;
- context._add(context.data.byte(kIntrocount), 1);
+ context._inc(context.data.byte(kIntrocount));
context.push(context.es);
context.push(context.bx);
textformonk(context);
@@ -1800,12 +1800,12 @@ void endgameseq(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto notendseq;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 51);
if (!context.flags.z()) goto gotendseq;
context._cmp(context.data.byte(kIntrocount), 140);
if (context.flags.z()) goto gotendseq;
- context._add(context.data.byte(kIntrocount), 1);
+ context._inc(context.data.byte(kIntrocount));
context.push(context.es);
context.push(context.bx);
textforend(context);
@@ -1921,12 +1921,12 @@ onelot:
context.di = context.pop();
context.si = context.pop();
context.cx = context.pop();
- context._sub(context.bx, 1);
+ context._dec(context.bx);
if (--context.cx) goto endcredits2;
context.cx = context.pop();
looknext:
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, ':');
if (context.flags.z()) goto gotnext;
context._cmp(context.al, 0);
@@ -1948,7 +1948,7 @@ void priest(Context & context) {
context.data.word(kWatchingtime) = 2;
checkspeed(context);
if (!context.flags.z()) goto priestwait;
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
context.push(context.es);
context.push(context.bx);
priesttext(context);
@@ -1962,7 +1962,7 @@ priestspoken:
void madmanstelly(Context & context) {
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 307);
if (!context.flags.z()) goto notendtelly;
context.ax = 300;
@@ -1992,12 +1992,12 @@ void madman(Context & context) {
context.data.byte(kCombatcount) = -1;
context.data.byte(kSpeechcount) = 0;
notfirstmad:
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 294);
if (context.flags.z()) goto madmanspoken;
context._cmp(context.ax, 66);
if (!context.flags.z()) goto nomadspeak;
- context._add(context.data.byte(kCombatcount), 1);
+ context._inc(context.data.byte(kCombatcount));
context.push(context.es);
context.push(context.bx);
madmantext(context);
@@ -2262,7 +2262,7 @@ void advisor(Context & context) {
if (!context.flags.z()) goto noadvisor;
goto noadvisor;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 123);
if (!context.flags.z()) goto notendadvis;
context.ax = 106;
@@ -2289,7 +2289,7 @@ void copper(Context & context) {
checkspeed(context);
if (!context.flags.z()) goto nocopper;
context.ax = context.es.word(context.bx+3);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context._cmp(context.ax, 94);
if (!context.flags.z()) goto notendcopper;
context.ax = 64;
@@ -2306,7 +2306,7 @@ mightwait:
context.ax = context.pop();
context._cmp(context.cl, 7);
if (context.flags.c()) goto gotcopframe;
- context._sub(context.ax, 1);
+ context._dec(context.ax);
gotcopframe:
context.es.word(context.bx+3) = context.ax;
nocopper:
@@ -2336,7 +2336,7 @@ notsparky1:
context.es.word(context.bx+3) = 27;
goto finishsparky;
dosparky:
- context._add(context.es.word(context.bx+3), 1);
+ context._inc(context.es.word(context.bx+3));
finishsparky:
showgamereel(context);
addtopeoplelist(context);
@@ -2353,7 +2353,7 @@ void train(Context & context) {
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 21);
if (!context.flags.c()) goto notrainyet;
- context._add(context.ax, 1);
+ context._inc(context.ax);
goto gottrainframe;
notrainyet:
randomnumber(context);
@@ -2408,7 +2408,7 @@ noshow:
void checkspeed(Context & context) {
context._cmp(context.data.byte(kLastweapon), -1);
if (!context.flags.z()) goto forcenext;
- context._add(context.es.byte(context.bx+6), 1);
+ context._inc(context.es.byte(context.bx+6));
context.al = context.es.byte(context.bx+6);
context._cmp(context.al, context.es.byte(context.bx+5));
if (!context.flags.z()) goto notspeed;
@@ -2516,7 +2516,7 @@ skipsprite:
context._add(context.bx, (32));
if (--context.cx) goto prtspriteloop;
context.cx = context.pop();
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, 7);
if (!context.flags.z()) goto priorityloop;
return;
@@ -2636,7 +2636,7 @@ void mainman(Context & context) {
context.es.byte(context.bx+29) = 0;
goto executewalk;
notinnewroom:
- context._sub(context.es.byte(context.bx+22), 1);
+ context._dec(context.es.byte(context.bx+22));
context._cmp(context.es.byte(context.bx+22), -1);
if (context.flags.z()) goto executewalk;
return;
@@ -2665,7 +2665,7 @@ alreadyturned:
goto notwalk;
walkman:
context.al = context.es.byte(context.bx+29);
- context._add(context.al, 1);
+ context._inc(context.al);
context._cmp(context.al, 11);
if (!context.flags.z()) goto notanimend1;
context.al = 1;
@@ -2728,7 +2728,7 @@ higher:
incdir:
context.data.byte(kTurndirection) = 1;
context.al = context.data.byte(kFacing);
- context._add(context.al, 1);
+ context._inc(context.al);
context._and(context.al, 7);
context.data.byte(kFacing) = context.al;
context.es.byte(context.bx+29) = 0;
@@ -2736,7 +2736,7 @@ incdir:
decdir:
context.data.byte(kTurndirection) = -1;
context.al = context.data.byte(kFacing);
- context._sub(context.al, 1);
+ context._dec(context.al);
context._and(context.al, 7);
context.data.byte(kFacing) = context.al;
context.es.byte(context.bx+29) = 0;
@@ -2747,14 +2747,14 @@ void walking(Context & context) {
context._cmp(context.data.byte(kLinedirection), 0);
if (context.flags.z()) goto normalwalk;
context.al = context.data.byte(kLinepointer);
- context._sub(context.al, 1);
+ context._dec(context.al);
context.data.byte(kLinepointer) = context.al;
context._cmp(context.al, 200);
if (!context.flags.c()) goto endofline;
goto continuewalk;
normalwalk:
context.al = context.data.byte(kLinepointer);
- context._add(context.al, 1);
+ context._inc(context.al);
context.data.byte(kLinepointer) = context.al;
context._cmp(context.al, context.data.byte(kLinelength));
if (!context.flags.c()) goto endofline;
@@ -2842,7 +2842,7 @@ notnewdirect:
isryanholding(context);
context.bx = context.pop();
if (context.flags.z()) goto noshoe1;
- context._add(context.bl, 1);
+ context._inc(context.bl);
noshoe1:
context.push(context.bx);
context.al = 'W';
@@ -2852,14 +2852,14 @@ noshoe1:
isryanholding(context);
context.bx = context.pop();
if (context.flags.z()) goto noshoe2;
- context._add(context.bl, 1);
+ context._inc(context.bl);
noshoe2:
context._cmp(context.bl, 2);
if (context.flags.z()) goto notlouis;
context.al = 42;
context._cmp(context.bl, 0);
if (context.flags.z()) goto notravmessage;
- context._add(context.al, 1);
+ context._inc(context.al);
notravmessage:
context.cx = 80;
context.dx = 10;
@@ -2993,7 +2993,7 @@ void reminders(Context & context) {
compare(context);
if (!context.flags.z()) goto forgotone;
havegotcard:
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
notfirst:
return;
forgotone:
@@ -3047,7 +3047,7 @@ initraintop:
goto initraintop;
initrainside:
context.cl = context.data.byte(kMapxsize);
- context._sub(context.cl, 1);
+ context._dec(context.cl);
initrainside2:
randomnumber(context);
context._and(context.al, 31);
@@ -3072,8 +3072,8 @@ lookforlinestart:
getblockofpixel(context);
context._cmp(context.al, 0);
if (!context.flags.z()) goto foundlinestart;
- context._sub(context.cl, 1);
- context._add(context.ch, 1);
+ context._dec(context.cl);
+ context._inc(context.ch);
context._cmp(context.cl, 0);
if (context.flags.z()) goto endofthisline;
context._cmp(context.ch, context.data.byte(kMapysize));
@@ -3086,13 +3086,13 @@ lookforlineend:
getblockofpixel(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto foundlineend;
- context._sub(context.cl, 1);
- context._add(context.ch, 1);
+ context._dec(context.cl);
+ context._inc(context.ch);
context._cmp(context.cl, 0);
if (context.flags.z()) goto foundlineend;
context._cmp(context.ch, context.data.byte(kMapysize));
if (!context.flags.c()) goto foundlineend;
- context._add(context.bh, 1);
+ context._inc(context.bh);
goto lookforlineend;
foundlineend:
context.push(context.cx);
@@ -3222,7 +3222,7 @@ void backobject(Context & context) {
context.al = context.es.byte(context.bx+18);
context._cmp(context.al, 0);
if (context.flags.z()) goto _tmp48z;
- context._sub(context.al, 1);
+ context._dec(context.al);
context.es.byte(context.bx+18) = context.al;
goto finishback;
_tmp48z:
@@ -3275,7 +3275,7 @@ void liftsprite(Context & context) {
context.al = context.es.byte(context.bx+19);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishclose;
- context._sub(context.al, 1);
+ context._dec(context.al);
context._cmp(context.al, 11);
if (!context.flags.z()) goto pokelift;
context.push(context.ax);
@@ -3290,7 +3290,7 @@ openlift:
context.al = context.es.byte(context.bx+19);
context._cmp(context.al, 12);
if (context.flags.z()) goto endoflist;
- context._add(context.al, 1);
+ context._inc(context.al);
context._cmp(context.al, 1);
if (!context.flags.z()) goto pokelift;
context.push(context.ax);
@@ -3319,7 +3319,7 @@ liftopen:
context.es = context.pop();
context._cmp(context.data.byte(kCounttoclose), 0);
if (context.flags.z()) goto nocountclose;
- context._sub(context.data.byte(kCounttoclose), 1);
+ context._dec(context.data.byte(kCounttoclose));
context._cmp(context.data.byte(kCounttoclose), 0);
if (!context.flags.z()) goto nocountclose;
context.data.byte(kLiftflag) = 2;
@@ -3335,7 +3335,7 @@ liftclosed:
context.es = context.pop();
context._cmp(context.data.byte(kCounttoopen), 0);
if (context.flags.z()) goto nocountopen;
- context._sub(context.data.byte(kCounttoopen), 1);
+ context._dec(context.data.byte(kCounttoopen));
context._cmp(context.data.byte(kCounttoopen), 0);
if (!context.flags.z()) goto nocountopen;
context.data.byte(kLiftflag) = 3;
@@ -3377,7 +3377,7 @@ void steady(Context & context) {
}
void constant(Context & context) {
- context._add(context.es.byte(context.bx+19), 1);
+ context._inc(context.es.byte(context.bx+19));
context.cl = context.es.byte(context.bx+19);
context.ch = 0;
context._add(context.di, context.cx);
@@ -3446,7 +3446,7 @@ opendoor:
if (!context.flags.z()) goto notthrough;
context.cl = 6;
notthrough:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._cmp(context.cl, 1);
if (!context.flags.z()) goto notdoorsound2;
context.al = 0;
@@ -3462,8 +3462,8 @@ notdoorsound2:
context.al = context.ds.byte(context.di+18);
context._cmp(context.al, 255);
if (!context.flags.z()) goto atlast1;
- context._sub(context.di, 1);
- context._sub(context.cl, 1);
+ context._dec(context.di);
+ context._dec(context.cl);
atlast1:
context.es.byte(context.bx+19) = context.cl;
context.al = context.ds.byte(context.di+18);
@@ -3485,7 +3485,7 @@ nothoteldoor1:
notdoorsound1:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast2;
- context._sub(context.cl, 1);
+ context._dec(context.cl);
context.es.byte(context.bx+19) = context.cl;
atlast2:
context.ch = 0;
@@ -3556,15 +3556,15 @@ noturnonyet:
if (!context.flags.z()) goto notthrough2;
context.cl = 6;
notthrough2:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context.ch = 0;
context.push(context.di);
context._add(context.di, context.cx);
context.al = context.ds.byte(context.di+18);
context._cmp(context.al, 255);
if (!context.flags.z()) goto atlast3;
- context._sub(context.di, 1);
- context._sub(context.cl, 1);
+ context._dec(context.di);
+ context._dec(context.cl);
atlast3:
context.es.byte(context.bx+19) = context.cl;
context.al = context.ds.byte(context.di+18);
@@ -3585,7 +3585,7 @@ shutdoor2:
notdoorsound3:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast4;
- context._sub(context.cl, 1);
+ context._dec(context.cl);
context.es.byte(context.bx+19) = context.cl;
atlast4:
context.ch = 0;
@@ -3621,7 +3621,7 @@ nothoteldoor1:
notdoorsound1:
context._cmp(context.cl, 0);
if (context.flags.z()) goto atlast2;
- context._sub(context.cl, 1);
+ context._dec(context.cl);
context.es.byte(context.bx+19) = context.cl;
atlast2:
context.ch = 0;
@@ -3646,7 +3646,7 @@ void updatepeople(Context & context) {
context.cx = 12*5;
context.al = 255;
while(context.cx--) context._stosb();
- context._add(context.data.word(kMaintimer), 1);
+ context._inc(context.data.word(kMaintimer));
context.es = context.cs;
context.bx = 534;
context.di = 991;
@@ -3709,7 +3709,7 @@ retryreel:
context._cmp(context.al, 255);
if (context.flags.z()) goto normalreel;
dealwithspecial(context);
- context._add(context.data.word(kReelpointer), 1);
+ context._inc(context.data.word(kReelpointer));
context.si = context.pop();
context.es = context.pop();
context._add(context.si, 40);
@@ -4282,7 +4282,7 @@ deloneloop:
context.cx = context.pop();
context._add(context.di, context.ax);
context._add(context.si, context.dx);
- context._sub(context.ch, 1);
+ context._dec(context.ch);
if (!context.flags.z()) goto deloneloop;
return;
}
@@ -4566,7 +4566,7 @@ firstbitofblock:
context._movsw();
context._movsw();
context._add(context.di, (320)-16);
- context._sub(context.bh, 1);
+ context._dec(context.bh);
if (!context.flags.z()) goto firstbitofblock;
context.bh = 12;
loop125:
@@ -4582,7 +4582,7 @@ loop125:
context._stosw();
context._stosw();
context._add(context.di, (320)-20);
- context._sub(context.bh, 1);
+ context._dec(context.bh);
if (!context.flags.z()) goto loop125;
context._add(context.di, 4);
context.ax = 0x0dfdf;
@@ -4751,11 +4751,11 @@ frameloop2:
context._cmp(context.al, 0);
if (!context.flags.z()) goto backtosolid;
backtoother:
- context._add(context.di, 1);
+ context._inc(context.di);
if (--context.cx) goto frameloop2;
context.cx = context.pop();
context._add(context.di, context.dx);
- context._sub(context.ch, 1);
+ context._dec(context.ch);
if (!context.flags.z()) goto frameloop1;
return;
frameloop3:
@@ -4767,7 +4767,7 @@ backtosolid:
if (--context.cx) goto frameloop3;
context.cx = context.pop();
context._add(context.di, context.dx);
- context._sub(context.ch, 1);
+ context._dec(context.ch);
if (!context.flags.z()) goto frameloop1;
return;
}
@@ -4794,13 +4794,13 @@ bhloop1:
if (--context.cx) goto bhloop1;
goto nextline;
nofill:
- context._add(context.di, 1);
- context._add(context.si, 1);
+ context._inc(context.di);
+ context._inc(context.si);
if (--context.cx) goto bhloop1;
nextline:
context._add(context.di, context.dx);
context.cx = context.pop();
- context._sub(context.ch, 1);
+ context._dec(context.ch);
if (!context.flags.z()) goto bhloop2;
return;
}
@@ -4824,11 +4824,11 @@ frameloopfx2:
context._cmp(context.al, 0);
if (!context.flags.z()) goto backtosolidfx;
backtootherfx:
- context._sub(context.di, 1);
+ context._dec(context.di);
if (--context.cx) goto frameloopfx2;
context.cx = context.pop();
context._add(context.di, context.dx);
- context._sub(context.ch, 1);
+ context._dec(context.ch);
if (!context.flags.z()) goto frameloopfx1;
return;
frameloopfx3:
@@ -4837,11 +4837,11 @@ frameloopfx3:
if (context.flags.z()) goto backtootherfx;
backtosolidfx:
context.es.byte(context.di) = context.al;
- context._sub(context.di, 1);
+ context._dec(context.di);
if (--context.cx) goto frameloopfx3;
context.cx = context.pop();
context._add(context.di, context.dx);
- context._sub(context.ch, 1);
+ context._dec(context.ch);
if (!context.flags.z()) goto frameloopfx1;
return;
}
@@ -4854,7 +4854,7 @@ void transferinv(Context & context) {
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context.cx = 6;
context._mul(context.cx);
context.es = context.data.word(kExtras);
@@ -4867,7 +4867,7 @@ void transferinv(Context & context) {
context.bx = context.ax;
context._add(context.ax, context.ax);
context._add(context.ax, context.bx);
- context._add(context.ax, 1);
+ context._inc(context.ax);
context.cx = 6;
context._mul(context.cx);
context.ds = context.data.word(kFreeframes);
@@ -5049,7 +5049,7 @@ halfend:
context.al = context.es.byte(context.bx);
context._shr(context.al, 1);
context.es.byte(context.bx) = context.al;
- context._add(context.bx, 1);
+ context._inc(context.bx);
if (--context.cx) goto halfend;
context.ds = context.data.word(kBuffers);
context.es = context.data.word(kBuffers);
@@ -5234,12 +5234,12 @@ onelot2:
context.cx = context.pop();
context._cmp(context.data.byte(kLasthardkey), 1);
if (context.flags.z()) goto endearly2;
- context._sub(context.bx, 1);
+ context._dec(context.bx);
if (--context.cx) goto endcredits22;
context.cx = context.pop();
looknext2:
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, ':');
if (context.flags.z()) goto gotnext2;
context._cmp(context.al, 0);
@@ -5272,19 +5272,19 @@ fadecolloop:
context._cmp(context.al, context.ah);
if (context.flags.z()) goto gotthere;
if (context.flags.c()) goto lesscolour;
- context._sub(context.es.byte(context.si), 1);
+ context._dec(context.es.byte(context.si));
goto gotthere;
lesscolour:
context._cmp(context.bl, context.ah);
if (context.flags.z()) goto withit;
if (!context.flags.c()) goto gotthere;
withit:
- context._add(context.es.byte(context.si), 1);
+ context._inc(context.es.byte(context.si));
gotthere:
- context._add(context.si, 1);
- context._add(context.di, 1);
+ context._inc(context.si);
+ context._inc(context.di);
if (--context.cx) goto fadecolloop;
- context._sub(context.data.byte(kFadecount), 1);
+ context._dec(context.data.byte(kFadecount));
return;
nomorefading:
context.data.byte(kFadedirection) = 0;
@@ -5316,7 +5316,7 @@ greysumloop1:
context._add(context.bx, context.ax);
context.al = -1;
greysumloop2:
- context._add(context.al, 1);
+ context._inc(context.al);
context._sub(context.bx, 100);
if (!context.flags.c()) goto greysumloop2;
context.bl = context.al;
@@ -5578,7 +5578,7 @@ nextbit:
context._cmp(context.al, 0);
if (!context.flags.z()) goto nextbit;
context.ax = context.pop();
- context._add(context.al, 1);
+ context._inc(context.al);
context._cmp(context.al, 44);
if (!context.flags.z()) goto nextmonkspeak;
context.data.byte(kVolumedirection) = 1;
@@ -5939,7 +5939,7 @@ iskern:
if (context.flags.z()) goto kernit;
return;
kernit:
- context._sub(context.cl, 1);
+ context._dec(context.cl);
return;
}
@@ -5971,7 +5971,7 @@ printloopslow5:
context.cx = context.pop();
context.bx = context.pop();
context.ax = context.es.word(context.si+1);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishslow;
context._cmp(context.al, ':');
@@ -6010,7 +6010,7 @@ afterslow:
context.es = context.pop();
context.si = context.pop();
context.cx = context.pop();
- context._add(context.si, 1);
+ context._inc(context.si);
if (--context.cx) goto printloopslow5;
context.dx = context.pop();
context.di = context.pop();
@@ -6085,7 +6085,7 @@ printloop6:
context.ch = 0;
printloop5:
context.ax = context.es.word(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishdirct;
context._cmp(context.al, ':');
@@ -6125,7 +6125,7 @@ printloop8:
context.ch = 0;
printloop7:
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, ':');
if (context.flags.z()) goto finishmon2;
context._cmp(context.al, 0);
@@ -6137,8 +6137,8 @@ printloop7:
context._cmp(context.al, '%');
if (!context.flags.z()) goto nottrigger;
context.ah = context.es.byte(context.si);
- context._add(context.si, 1);
- context._add(context.si, 1);
+ context._inc(context.si);
+ context._inc(context.si);
goto finishmon;
nottrigger:
context.push(context.cx);
@@ -6296,8 +6296,8 @@ void getnextword(Context & context) {
context.bx = 0;
getloop:
context.ax = context.es.word(context.di);
- context._add(context.di, 1);
- context._add(context.bh, 1);
+ context._inc(context.di);
+ context._inc(context.bh);
context._cmp(context.al, ':');
if (context.flags.z()) goto endall;
context._cmp(context.al, 0);
@@ -6464,7 +6464,7 @@ nextopenslot:
context.di = context.pop();
context.cx = context.pop();
context._add(context.di, (44));
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._cmp(context.cl, 5);
if (!context.flags.z()) goto openloop1;
undertextline(context);
@@ -6497,7 +6497,7 @@ findryanloop:
context.di = context.pop();
notinryaninv:
context._add(context.bx, 16);
- context._add(context.ch, 1);
+ context._inc(context.ch);
context._cmp(context.ch, (114));
if (!context.flags.z()) goto findryanloop;
return;
@@ -6536,7 +6536,7 @@ noloccheck:
context.di = context.pop();
findopen2:
context._add(context.bx, 16);
- context._add(context.ch, 1);
+ context._inc(context.ch);
context._cmp(context.ch, (114));
if (!context.flags.z()) goto findopen1;
context.cl = context.data.byte(kOpenedob);
@@ -6562,7 +6562,7 @@ findopen1a:
context.di = context.pop();
findopen2a:
context._add(context.bx, 16);
- context._add(context.ch, 1);
+ context._inc(context.ch);
context._cmp(context.ch, 80);
if (!context.flags.z()) goto findopen1a;
return;
@@ -6598,7 +6598,7 @@ isanextra:
context.cl = context.al;
context._add(context.al, context.al);
context._add(context.al, context.cl);
- context._add(context.al, 1);
+ context._inc(context.al);
context.ah = 128;
context._add(context.bx, 19);
context._add(context.di, 18);
@@ -6753,7 +6753,7 @@ doincryan:
context._sub(context.ax, (80)+167);
context.data.byte(kRyanpage) = -1;
findnewpage:
- context._add(context.data.byte(kRyanpage), 1);
+ context._inc(context.data.byte(kRyanpage));
context._sub(context.ax, 18);
if (!context.flags.c()) goto findnewpage;
delpointer(context);
@@ -6876,7 +6876,7 @@ void obpicture(Context & context) {
context.cl = context.al;
context._add(context.al, context.al);
context._add(context.al, context.cl);
- context._add(context.al, 1);
+ context._inc(context.al);
context.ah = 128;
showframe(context);
return;
@@ -6889,7 +6889,7 @@ exframe:
context.cl = context.al;
context._add(context.al, context.al);
context._add(context.al, context.cl);
- context._add(context.al, 1);
+ context._inc(context.al);
context.ah = 128;
showframe(context);
return;
@@ -7033,13 +7033,13 @@ findsometext:
void searchforsame(Context & context) {
context.si = context.cx;
searchagain:
- context._add(context.si, 1);
+ context._inc(context.si);
context.al = context.es.byte(context.bx);
search:
context._cmp(context.es.byte(context.si), context.al);
if (context.flags.z()) goto gotstartletter;
- context._add(context.cx, 1);
- context._add(context.si, 1);
+ context._inc(context.cx);
+ context._inc(context.si);
context._cmp(context.si, 8000);
if (context.flags.c()) goto search;
context.si = context.bx;
@@ -7049,8 +7049,8 @@ gotstartletter:
context.push(context.bx);
context.push(context.si);
keepchecking:
- context._add(context.si, 1);
- context._add(context.bx, 1);
+ context._inc(context.si);
+ context._inc(context.bx);
context.al = context.es.byte(context.bx);
context.ah = context.es.byte(context.si);
context._cmp(context.al, ':');
@@ -7071,7 +7071,7 @@ foundmatch:
void findnextcolon(Context & context) {
isntcolon:
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto endofcolon;
context._cmp(context.al, ':');
@@ -7672,7 +7672,7 @@ void findinvpos(Context & context) {
context._sub(context.cx, (80));
context.bx = -1;
findinv1:
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._sub(context.cx, (44));
if (!context.flags.c()) goto findinv1;
context.cx = context.data.word(kMousey);
@@ -7700,7 +7700,7 @@ void findopenpos(Context & context) {
context._sub(context.cx, (80));
context.bx = -1;
findopenp1:
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._sub(context.cx, (44));
if (!context.flags.c()) goto findopenp1;
context.al = context.bl;
@@ -8242,7 +8242,7 @@ notinsidethis:
context.es = context.pop();
context.cx = context.pop();
context._add(context.bx, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, 80);
if (!context.flags.z()) goto pickupcontloop;
notopenable:
@@ -8301,7 +8301,7 @@ void transfertext(Context & context) {
moretext:
context._lodsb();
context._stosb();
- context._add(context.data.word(kExtextpos), 1);
+ context._inc(context.data.word(kExtextpos));
context._cmp(context.al, 0);
if (!context.flags.z()) goto moretext;
return;
@@ -8315,7 +8315,7 @@ tryanotherex:
context._cmp(context.es.byte(context.di+2), 255);
if (context.flags.z()) goto foundnewex;
context._add(context.di, 16);
- context._add(context.al, 1);
+ context._inc(context.al);
context._cmp(context.al, (114));
if (!context.flags.z()) goto tryanotherex;
foundnewex:
@@ -8345,7 +8345,7 @@ purgeloc:
context.di = context.pop();
dontpurge:
context._add(context.di, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto purgeloc;
return;
@@ -8390,7 +8390,7 @@ iscup:
return;
cantpurge:
context._add(context.di, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto lookforpurge;
context.di = (0+2080+30000);
@@ -8406,7 +8406,7 @@ lookforpurge2:
return;
cantpurge2:
context._add(context.di, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto lookforpurge2;
return;
@@ -8429,7 +8429,7 @@ void deleteexobject(Context & context) {
context.cl = context.al;
context._add(context.al, context.al);
context._add(context.al, context.cl);
- context._add(context.al, 1);
+ context._inc(context.al);
deleteexframe(context);
context.ax = context.pop();
deleteextext(context);
@@ -8450,7 +8450,7 @@ deleteconts:
context.bx = context.pop();
notinsideex:
context._add(context.di, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto deleteconts;
return;
@@ -8508,8 +8508,8 @@ void deleteextext(Context & context) {
context.ax = 0;
findlenextext:
context.cl = context.es.byte(context.si);
- context._add(context.ax, 1);
- context._add(context.si, 1);
+ context._inc(context.ax);
+ context._inc(context.si);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto findlenextext;
context.cx = (18000);
@@ -8598,7 +8598,7 @@ dimloop1:
addalong(context);
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishdim1;
- context._add(context.ch, 1);
+ context._inc(context.ch);
goto dimloop1;
finishdim1:
context.bx = (0+(228*13)+32+60+(32*32));
@@ -8609,7 +8609,7 @@ dimloop2:
context.bx = context.pop();
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishdim2;
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._add(context.bx, 3);
goto dimloop2;
finishdim2:
@@ -8621,7 +8621,7 @@ dimloop3:
context.bx = context.pop();
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishdim3;
- context._sub(context.dh, 1);
+ context._dec(context.dh);
context._sub(context.bx, 11*3);
goto dimloop3;
finishdim3:
@@ -8633,7 +8633,7 @@ dimloop4:
context.bx = context.pop();
context._cmp(context.al, 0);
if (!context.flags.z()) goto finishdim4;
- context._sub(context.dl, 1);
+ context._dec(context.dl);
context._sub(context.bx, 3);
goto dimloop4;
finishdim4:
@@ -8676,7 +8676,7 @@ addloop:
context._cmp(context.es.byte(context.bx), 0);
if (!context.flags.z()) goto gotalong;
context._add(context.bx, 3);
- context._sub(context.ah, 1);
+ context._dec(context.ah);
if (!context.flags.z()) goto addloop;
context.al = 0;
return;
@@ -8691,7 +8691,7 @@ addloop2:
context._cmp(context.es.byte(context.bx), 0);
if (!context.flags.z()) goto gotlength;
context._add(context.bx, 3*11);
- context._sub(context.ah, 1);
+ context._dec(context.ah);
if (!context.flags.z()) goto addloop2;
context.al = 0;
return;
@@ -8833,11 +8833,11 @@ drawnsetob:
context._add(context.si, 5);
context.data.word(kListpos) = context.si;
blankframe:
- context._add(context.data.byte(kCurrentob), 1);
+ context._inc(context.data.byte(kCurrentob));
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 64);
- context._sub(context.cx, 1);
+ context._dec(context.cx);
if (context.flags.z()) goto finishedsetobs;
goto showobsloop;
finishedsetobs:
@@ -8944,11 +8944,11 @@ loop127:
context._add(context.si, 5);
context.data.word(kListpos) = context.si;
over138:
- context._add(context.data.byte(kCurrentfree), 1);
+ context._inc(context.data.byte(kCurrentfree));
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, 80);
if (context.flags.z()) goto finfree;
goto loop127;
@@ -9028,11 +9028,11 @@ notinroom:
context._add(context.si, 5);
context.data.word(kListpos) = context.si;
blankex:
- context._add(context.data.byte(kCurrentex), 1);
+ context._inc(context.data.byte(kCurrentex));
context.si = context.pop();
context.cx = context.pop();
context._add(context.si, 16);
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._cmp(context.cx, 100);
if (context.flags.z()) goto finex;
goto exloop;
@@ -9115,11 +9115,11 @@ over146:
void getxad(Context & context) {
context.cl = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context.ah = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.cl, 0);
if (!context.flags.z()) goto over148;
context._sub(context.al, context.data.byte(kMapx));
@@ -9139,9 +9139,9 @@ over148:
void getyad(Context & context) {
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context.ah = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._sub(context.al, context.data.byte(kMapy));
if (context.flags.c()) goto over147;
context._cmp(context.al, 10);
@@ -9164,7 +9164,7 @@ void autolook(Context & context) {
context.ax = context.data.word(kMousey);
context._cmp(context.ax, context.data.word(kOldy));
if (!context.flags.z()) goto diffmouse;
- context._sub(context.data.word(kLookcounter), 1);
+ context._dec(context.data.word(kLookcounter));
context._cmp(context.data.word(kLookcounter), 0);
if (!context.flags.z()) goto noautolook;
context._cmp(context.data.word(kWatchingtime), 0);
@@ -9456,7 +9456,7 @@ watchtalk:
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
- context._add(context.data.byte(kTalkpos), 1);
+ context._inc(context.data.byte(kTalkpos));
context.al = context.data.byte(kTalkpos);
context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
@@ -9501,7 +9501,7 @@ watchtalk:
context.cx = 180;
hangonpq(context);
skiptalk:
- context._add(context.data.byte(kTalkpos), 1);
+ context._inc(context.data.byte(kTalkpos));
goto watchtalk;
endwatchtalk:
context.data.byte(kPointermode) = 0;
@@ -9531,7 +9531,7 @@ hangloopq:
if (!context.flags.z()) goto notspeaking;
context._cmp(context.data.byte(kCh1playing), 255);
if (!context.flags.z()) goto notspeaking;
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.bx, 40);
if (context.flags.z()) goto finishconv;
notspeaking:
@@ -9861,7 +9861,7 @@ alreadydu:
context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nodu;
searchdestup:
- context._add(context.data.byte(kDestpos), 1);
+ context._inc(context.data.byte(kDestpos));
context._cmp(context.data.byte(kDestpos), 15);
if (!context.flags.z()) goto notlastdest;
context.data.byte(kDestpos) = 0;
@@ -9899,7 +9899,7 @@ alreadydd:
context._cmp(context.ax, context.data.word(kOldbutton));
if (context.flags.z()) goto nodd;
searchdestdown:
- context._sub(context.data.byte(kDestpos), 1);
+ context._dec(context.data.byte(kDestpos));
context._cmp(context.data.byte(kDestpos), -1);
if (!context.flags.z()) goto notfirstdest;
context.data.byte(kDestpos) = 15;
@@ -10242,7 +10242,7 @@ void lookininterface(Context & context) {
context._cmp(context.cl, (114));
if (context.flags.z()) goto emptyinterface;
context.al = context.es.byte(context.bx+15);
- context._add(context.al, 1);
+ context._inc(context.al);
return;
emptyinterface:
context.al = 0;
@@ -10469,7 +10469,7 @@ notleadingspace:
context.es.byte(context.si+1) = context.cl;
context.ch = 0;
context._add(context.data.word(kMonadx), context.cx);
- context._add(context.data.word(kCurpos), 1);
+ context._inc(context.data.word(kCurpos));
context._add(context.data.word(kCurslocx), context.cx);
goto waitkey;
endofinput:
@@ -10485,7 +10485,7 @@ notupperc:
}
void delchar(Context & context) {
- context._sub(context.data.word(kCurpos), 1);
+ context._dec(context.data.word(kCurpos));
context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
context.es = context.cs;
@@ -10531,7 +10531,7 @@ comloop2:
context.al = context.ds.byte(context.si);
context._add(context.si, 2);
context.ah = context.es.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.ah, 32);
if (context.flags.z()) goto foundcom;
context._cmp(context.al, context.ah);
@@ -10539,7 +10539,7 @@ comloop2:
context.si = context.pop();
context.bx = context.pop();
context._add(context.bx, 10);
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._cmp(context.cl, 6);
if (!context.flags.z()) goto comloop;
neterror(context);
@@ -10604,10 +10604,10 @@ dirroot:
context.data.byte(kLogonum) = 0;
context.ds = context.cs;
context.si = 2885;
- context._add(context.si, 1);
+ context._inc(context.si);
context.es = context.cs;
context.di = 2892;
- context._add(context.di, 1);
+ context._inc(context.di);
context.cx = 12;
while(context.cx--) context._movsb();
monitorlogo(context);
@@ -10628,7 +10628,7 @@ void searchforfiles(Context & context) {
context.bx = (66*2);
directloop1:
context.al = context.es.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.al, '*');
if (context.flags.z()) goto endofdir;
context._cmp(context.al, 34);
@@ -10641,7 +10641,7 @@ endofdir:
void signon(Context & context) {
parser(context);
- context._add(context.di, 1);
+ context._inc(context.di);
context.ds = context.cs;
context.si = 2807;
context.cx = 4;
@@ -10657,7 +10657,7 @@ signonloop2:
if (context.flags.z()) goto foundsign;
makecaps(context);
context.ah = context.es.byte(context.di);
- context._add(context.di, 1);
+ context._inc(context.di);
context._cmp(context.al, context.ah);
if (!context.flags.z()) goto nomatch;
if (--context.cx) goto signonloop2;
@@ -10706,7 +10706,7 @@ notyetassigned:
checkpass:
context._lodsw();
context.ah = context.es.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.ah, 32);
if (context.flags.z()) goto passpassed;
context._cmp(context.al, context.ah);
@@ -10812,7 +10812,7 @@ keyok1:
monmessage(context);
return;
findtopictext:
- context._add(context.bx, 1);
+ context._inc(context.bx);
context.push(context.es);
context.push(context.bx);
monitorlogo(context);
@@ -10898,7 +10898,7 @@ keyok2:
context.es = context.pop();
directloop2:
context.al = context.es.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.al, 34);
if (context.flags.z()) goto endofdir2;
context._cmp(context.al, '*');
@@ -10913,7 +10913,7 @@ endofdir2:
}
void getkeyandlogo(Context & context) {
- context._add(context.bx, 1);
+ context._inc(context.bx);
context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
context.data.byte(kNewlogonum) = context.al;
@@ -10921,7 +10921,7 @@ void getkeyandlogo(Context & context) {
context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
context.data.byte(kKeynum) = context.al;
- context._add(context.bx, 1);
+ context._inc(context.bx);
context.push(context.es);
context.push(context.bx);
context.al = context.data.byte(kKeynum);
@@ -10976,13 +10976,13 @@ nofindingtopic:
context.ah = context.es.byte(context.di);
context._cmp(context.al, context.dl);
if (!context.flags.z()) goto notbracket;
- context._add(context.dh, 1);
+ context._inc(context.dh);
context._cmp(context.dh, 2);
if (context.flags.z()) goto complete;
notbracket:
context._cmp(context.al, context.ah);
if (!context.flags.z()) goto restartlook;
- context._add(context.di, 1);
+ context._inc(context.di);
goto keeplooking;
complete:
context.es = context.ds;
@@ -11107,7 +11107,7 @@ curfileloop:
context.al = context.cs.byte(context.si);
context._cmp(context.al, 0);
if (context.flags.z()) goto finishfile;
- context._add(context.si, 1);
+ context._inc(context.si);
context.push(context.si);
modifychar(context);
context.ds = context.data.word(kTempcharset);
@@ -11126,7 +11126,7 @@ void monmessage(Context & context) {
context.ch = 0;
monmessageloop:
context.al = context.es.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.al, '+');
if (!context.flags.z()) goto monmessageloop;
if (--context.cx) goto monmessageloop;
@@ -11216,7 +11216,7 @@ void printcurs(Context & context) {
context.di = context.pop();
context.push(context.bx);
context.push(context.di);
- context._add(context.data.word(kMaintimer), 1);
+ context._inc(context.data.word(kMaintimer));
context.ax = context.data.word(kMaintimer);
context._and(context.al, 16);
if (!context.flags.z()) goto flashcurs;
@@ -11456,7 +11456,7 @@ void hotelbell(Context & context) {
}
void opentomb(Context & context) {
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.word(kWatchingtime) = 35*2;
context.data.word(kReeltowatch) = 1;
@@ -11471,7 +11471,7 @@ void usetrainer(Context & context) {
getanyad(context);
context._cmp(context.es.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
makeworn(context);
showseconduse(context);
putbackobstuff(context);
@@ -11545,7 +11545,7 @@ alreadyfull:
}
void usefullcart(Context & context) {
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.al = 2;
context.ah = context.data.byte(kRoomnum);
context._add(context.ah, 6);
@@ -11584,7 +11584,7 @@ plinthwith:
putbackobstuff(context);
return;
isrightkey:
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showseconduse(context);
context.data.word(kWatchingtime) = 220;
context.data.word(kReeltowatch) = 0;
@@ -11643,7 +11643,7 @@ void slabdoora(Context & context) {
context.data.word(kReeltowatch) = 13;
context._cmp(context.data.byte(kDreamnumber), 3);
if (!context.flags.z()) goto slabawrong;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 42;
context.data.byte(kNewlocation) = 47;
@@ -11672,7 +11672,7 @@ void slabdoorb(Context & context) {
return;
gotcrystal:
showfirstuse(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
@@ -11702,7 +11702,7 @@ void slabdoord(Context & context) {
context.data.word(kReeltowatch) = 75;
context._cmp(context.data.byte(kDreamnumber), 0);
if (!context.flags.z()) goto slabcwrong;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 102;
context.data.byte(kNewlocation) = 47;
@@ -11723,7 +11723,7 @@ void slabdoorc(Context & context) {
context.data.word(kReeltowatch) = 108;
context._cmp(context.data.byte(kDreamnumber), 4);
if (!context.flags.z()) goto slabdwrong;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 135;
context.data.byte(kNewlocation) = 47;
@@ -11744,7 +11744,7 @@ void slabdoore(Context & context) {
context.data.word(kReeltowatch) = 141;
context._cmp(context.data.byte(kDreamnumber), 5);
if (!context.flags.z()) goto slabewrong;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 168;
context.data.byte(kNewlocation) = 47;
@@ -11765,7 +11765,7 @@ void slabdoorf(Context & context) {
context.data.word(kReeltowatch) = 171;
context._cmp(context.data.byte(kDreamnumber), 2);
if (!context.flags.z()) goto slabfwrong;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 197;
context.data.byte(kNewlocation) = 47;
@@ -11805,7 +11805,7 @@ nextslab:
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
- context._add(context.al, 1);
+ context._inc(context.al);
context.push(context.ax);
placesetobject(context);
context.ax = context.pop();
@@ -11819,7 +11819,7 @@ nextslab:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
notlastslab:
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.byte(kGetback) = 1;
return;
@@ -11852,9 +11852,9 @@ nextcart:
context.push(context.ax);
removesetobject(context);
context.ax = context.pop();
- context._add(context.al, 1);
+ context._inc(context.al);
placesetobject(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.al = 17;
playchannel1(context);
showfirstuse(context);
@@ -11882,7 +11882,7 @@ clearboxwith:
putbackobstuff(context);
return;
openbox:
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.word(kWatchingtime) = 80;
context.data.word(kReeltowatch) = 67;
@@ -11894,7 +11894,7 @@ openbox:
}
void usecoveredbox(Context & context) {
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.word(kWatchingtime) = 50;
context.data.word(kReeltowatch) = 41;
@@ -11942,7 +11942,7 @@ openboxwith:
showfirstuse(context);
return;
destoryopenbox:
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.cx = 300;
context.al = 37;
showpuztext(context);
@@ -12080,7 +12080,7 @@ void usealtar(Context & context) {
context.data.byte(kGetback) = 1;
return;
movealtar:
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showseconduse(context);
context.data.word(kWatchingtime) = 160;
context.data.word(kReeltowatch) = 81;
@@ -12148,7 +12148,7 @@ void openlouis(Context & context) {
void nextcolon(Context & context) {
lookcolon:
context.al = context.es.byte(context.si);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.al, ':');
if (!context.flags.z()) goto lookcolon;
return;
@@ -12167,7 +12167,7 @@ void openyourneighbour(Context & context) {
void usewindow(Context & context) {
context._cmp(context.data.byte(kManspath), 6);
if (!context.flags.z()) goto notonbalc;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.byte(kNewlocation) = 29;
context.data.byte(kGetback) = 1;
@@ -12194,7 +12194,7 @@ void usebalcony(Context & context) {
turnpathoff(context);
context.al = 5;
turnpathoff(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kManspath) = 6;
context.data.byte(kDestination) = 6;
context.data.byte(kFinaldest) = 6;
@@ -12354,7 +12354,7 @@ dograf:
}
void trapdoor(Context & context) {
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
switchryanoff(context);
context.data.word(kWatchingtime) = 20*2;
@@ -12513,7 +12513,7 @@ getscash:
context.cx = 300;
context.al = 18;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kCard1money) = 12432;
context.data.byte(kGetback) = 1;
return;
@@ -12558,7 +12558,7 @@ correctcard2:
placesetobject(context);
context.data.byte(kGunpassflag) = 1;
context._sub(context.data.word(kCard1money), 2000);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
return;
nocash:
@@ -12608,7 +12608,7 @@ rightcard:
context.cx = 300;
context.al = 25;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context._sub(context.data.word(kCard1money), 8300);
context.data.byte(kCardpassflag) = 1;
context.data.byte(kGetback) = 1;
@@ -12732,31 +12732,31 @@ void moneypoke(Context & context) {
context.bx = 3385;
context.cl = 48-1;
numberpoke0:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 10000);
if (!context.flags.c()) goto numberpoke0;
context._add(context.ax, 10000);
context.cs.byte(context.bx) = context.cl;
- context._add(context.bx, 1);
+ context._inc(context.bx);
context.cl = 48-1;
numberpoke1:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 1000);
if (!context.flags.c()) goto numberpoke1;
context._add(context.ax, 1000);
context.cs.byte(context.bx) = context.cl;
- context._add(context.bx, 1);
+ context._inc(context.bx);
context.cl = 48-1;
numberpoke2:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 100);
if (!context.flags.c()) goto numberpoke2;
context._add(context.ax, 100);
context.cs.byte(context.bx) = context.cl;
- context._add(context.bx, 1);
+ context._inc(context.bx);
context.cl = 48-1;
numberpoke3:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 10);
if (!context.flags.c()) goto numberpoke3;
context._add(context.ax, 10);
@@ -12845,14 +12845,14 @@ jimmycontrols:
context.cx = 300;
context.al = 10;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
return;
axeoncontrols:
context.cx = 300;
context.al = 16;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
putbackobstuff(context);
return;
}
@@ -12905,7 +12905,7 @@ wireknife:
context.cx = 300;
context.al = 11;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
return;
}
@@ -13132,7 +13132,7 @@ void useaxe(Context & context) {
context._cmp(context.data.byte(kMapy), 10);
if (context.flags.z()) goto axeondoor;
showseconduse(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kLastweapon) = 2;
context.data.byte(kGetback) = 1;
removeobfrominv(context);
@@ -13145,7 +13145,7 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 46*2;
context.data.word(kReeltowatch) = 31;
context.data.word(kEndwatchreel) = 77;
@@ -13179,7 +13179,7 @@ axeondoor:
context.al = 15;
context.cx = 300;
showpuztext(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.word(kWatchingtime) = 46*2;
context.data.word(kReeltowatch) = 31;
context.data.word(kEndwatchreel) = 77;
@@ -13304,7 +13304,7 @@ findsetloop:
return;
nofind:
context._add(context.bx, 64);
- context._add(context.dl, 1);
+ context._inc(context.dl);
context._cmp(context.dl, 128);
if (!context.flags.z()) goto findsetloop;
context.al = context.dl;
@@ -13332,7 +13332,7 @@ findexloop:
return;
nofindex:
context._add(context.bx, 16);
- context._add(context.dl, 1);
+ context._inc(context.dl);
context._cmp(context.dl, (114));
if (!context.flags.z()) goto findexloop;
context.al = context.dl;
@@ -13363,7 +13363,7 @@ searchinv:
return;
nofindininv:
context._add(context.bx, 16);
- context._add(context.dl, 1);
+ context._inc(context.dl);
context._cmp(context.dl, (114));
if (!context.flags.z()) goto searchinv;
context.al = context.dl;
@@ -13383,7 +13383,7 @@ insideloop:
return;
notfoundinside:
context._add(context.bx, 16);
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._cmp(context.cl, (114));
if (!context.flags.z()) goto insideloop;
return;
@@ -13633,7 +13633,7 @@ notinalley:
if (!context.flags.z()) goto notinedens;
context._cmp(context.data.byte(kGeneraldead), 1);
if (!context.flags.z()) goto edenspart2;
- context._add(context.data.byte(kGeneraldead), 1);
+ context._inc(context.data.byte(kGeneraldead));
context.al = 44;
placesetobject(context);
context.al = 18;
@@ -13660,7 +13660,7 @@ edenspart2:
removesetobject(context);
context.al = 55;
placesetobject(context);
- context._add(context.data.byte(kSartaindead), 1);
+ context._inc(context.data.byte(kSartaindead));
notedens2:
return;
notinedens:
@@ -13781,7 +13781,7 @@ cantsetup2:
void usetimedtext(Context & context) {
context._cmp(context.data.word(kTimecount), 0);
if (context.flags.z()) goto notext;
- context._sub(context.data.word(kTimecount), 1);
+ context._dec(context.data.word(kTimecount));
context._cmp(context.data.word(kTimecount), 0);
if (context.flags.z()) goto deltimedtext;
context.ax = context.data.word(kTimecount);
@@ -13904,7 +13904,7 @@ cutgate:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.al = 3;
turnpathon(context);
context._cmp(context.data.byte(kAidedead), 0);
@@ -13930,7 +13930,7 @@ istakengun:
context.data.byte(kLastweapon) = 1;
context.data.byte(kCombatcount) = 39;
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
notinpoolroom:
context._cmp(context.data.byte(kReallocation), 25);
@@ -13944,7 +13944,7 @@ notinpoolroom:
context.data.byte(kDreamnumber) = 2;
context.data.byte(kRoomafterdream) = 38;
context.data.byte(kSartaindead) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
nothelicopter:
context._cmp(context.data.byte(kReallocation), 27);
@@ -13959,7 +13959,7 @@ nothelicopter:
context.data.byte(kGetback) = 1;
context.data.byte(kRoomafterdream) = 32;
context.data.byte(kDreamnumber) = 0;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
notinrockroom:
context._cmp(context.data.byte(kReallocation), 8);
@@ -13978,7 +13978,7 @@ notinrockroom:
autosetwalk(context);
context.data.byte(kLastweapon) = 1;
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
notbystudio:
context._cmp(context.data.byte(kReallocation), 6);
@@ -13999,7 +13999,7 @@ notbystudio:
placesetobject(context);
context.al = 1;
context.ah = context.data.byte(kRoomnum);
- context._sub(context.ah, 1);
+ context._dec(context.ah);
turnanypathon(context);
context.data.byte(kLiftflag) = 1;
context.data.word(kWatchingtime) = 40*2;
@@ -14008,7 +14008,7 @@ notbystudio:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
notsarters:
context._cmp(context.data.byte(kReallocation), 29);
@@ -14030,7 +14030,7 @@ notsarters:
context.data.byte(kAidedead) = 1;
context.data.byte(kDreamnumber) = 3;
context.data.byte(kRoomafterdream) = 33;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
notaide:
context._cmp(context.data.byte(kReallocation), 23);
@@ -14078,7 +14078,7 @@ void useshield(Context & context) {
context.data.byte(kLastweapon) = 3;
showseconduse(context);
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
removeobfrominv(context);
return;
notinsartroom:
@@ -14094,7 +14094,7 @@ void usebuttona(Context & context) {
showfirstuse(context);
context.al = 0;
context.ah = context.data.byte(kRoomnum);
- context._sub(context.ah, 1);
+ context._dec(context.ah);
turnanypathon(context);
context.al = 9;
removesetobject(context);
@@ -14106,7 +14106,7 @@ void usebuttona(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
donethisbit:
showseconduse(context);
@@ -14153,7 +14153,7 @@ unscrewplate:
removesetobject(context);
context.al = 0;
placefreeobject(context);
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
return;
triedknife:
@@ -14190,7 +14190,7 @@ void usewinch(Context & context) {
context.data.byte(kGeneraldead) = 1;
context.data.byte(kNewsitem) = 2;
context.data.byte(kGetback) = 1;
- context._add(context.data.byte(kProgresspoints), 1);
+ context._inc(context.data.byte(kProgresspoints));
return;
nowinch:
showfirstuse(context);
@@ -14220,7 +14220,7 @@ keypadloop:
showpointer(context);
context._cmp(context.data.byte(kPresscount), 0);
if (context.flags.z()) goto nopresses;
- context._sub(context.data.byte(kPresscount), 1);
+ context._dec(context.data.byte(kPresscount));
goto afterpress;
nopresses:
context.data.byte(kPressed) = 255;
@@ -14308,7 +14308,7 @@ not10:
context.es = context.dx;
context._add(context.bx, 8344);
context.es.byte(context.bx) = context.al;
- context._add(context.data.word(kPresspointer), 1);
+ context._inc(context.data.word(kPresspointer));
nomorekeys:
return;
}
@@ -14474,7 +14474,7 @@ void showkeypad(Context & context) {
singlekey(context);
context._cmp(context.data.byte(kLightcount), 0);
if (context.flags.z()) goto notenter;
- context._sub(context.data.byte(kLightcount), 1);
+ context._dec(context.data.byte(kLightcount));
context.al = 36;
context.bx = (72)-1+63;
context._cmp(context.data.byte(kLockstatus), 0);
@@ -14486,7 +14486,7 @@ changelight:
if (context.flags.c()) goto gotlight;
context._cmp(context.data.byte(kLightcount), 100);
if (!context.flags.c()) goto gotlight;
- context._sub(context.al, 1);
+ context._dec(context.al);
gotlight:
context.ds = context.data.word(kTempgraphics);
context.ah = 0;
@@ -14629,7 +14629,7 @@ void showoutermenu(Context & context) {
}
void showmenu(Context & context) {
- context._add(context.data.byte(kMenucount), 1);
+ context._inc(context.data.byte(kMenucount));
context._cmp(context.data.byte(kMenucount), 37*2);
if (!context.flags.z()) goto menuframeok;
context.data.byte(kMenucount) = 0;
@@ -14702,7 +14702,7 @@ alreadynextf:
notnextf:
return;
donextf:
- context._add(context.data.byte(kFolderpage), 1);
+ context._inc(context.data.byte(kFolderpage));
folderhints(context);
delpointer(context);
showfolder(context);
@@ -14782,7 +14782,7 @@ alreadylastf:
notlastf:
return;
dolastf:
- context._sub(context.data.byte(kFolderpage), 1);
+ context._dec(context.data.byte(kFolderpage));
delpointer(context);
showfolder(context);
context.data.word(kMousebutton) = 0;
@@ -14907,8 +14907,8 @@ leftpageloop:
context.data.word(kCharshift) = 91;
context.data.byte(kKerning) = 1;
context.bl = context.data.byte(kFolderpage);
- context._sub(context.bl, 1);
- context._sub(context.bl, 1);
+ context._dec(context.bl);
+ context._dec(context.bl);
context._add(context.bl, context.bl);
context.bh = 0;
context._add(context.bx, context.bx);
@@ -14946,8 +14946,8 @@ flipfolderline:
context.ah = context.es.byte(context.si);
context.es.byte(context.di) = context.ah;
context.es.byte(context.si) = context.al;
- context._sub(context.si, 1);
- context._add(context.di, 1);
+ context._dec(context.si);
+ context._inc(context.di);
if (--context.cx) goto flipfolderline;
context.si = context.pop();
context.di = context.pop();
@@ -14987,7 +14987,7 @@ rightpageloop:
context.data.word(kLinespacing) = 8;
context.data.byte(kKerning) = 1;
context.bl = context.data.byte(kFolderpage);
- context._sub(context.bl, 1);
+ context._dec(context.bl);
context._add(context.bl, context.bl);
context.bh = 0;
context._add(context.bx, context.bx);
@@ -15249,7 +15249,7 @@ void showsymbol(Context & context) {
}
void nextsymbol(Context & context) {
- context._add(context.al, 1);
+ context._inc(context.al);
context._cmp(context.al, 6);
if (context.flags.z()) goto topwrap;
context._cmp(context.al, 12);
@@ -15268,11 +15268,11 @@ void updatesymboltop(Context & context) {
if (context.flags.z()) goto topfinished;
context._cmp(context.data.byte(kSymboltopdir), -1);
if (context.flags.z()) goto backwards;
- context._add(context.data.byte(kSymboltopx), 1);
+ context._inc(context.data.byte(kSymboltopx));
context._cmp(context.data.byte(kSymboltopx), 49);
if (!context.flags.z()) goto notwrapfor;
context.data.byte(kSymboltopx) = 0;
- context._sub(context.data.byte(kSymboltopnum), 1);
+ context._dec(context.data.byte(kSymboltopnum));
context._cmp(context.data.byte(kSymboltopnum), -1);
if (!context.flags.z()) goto topfinished;
context.data.byte(kSymboltopnum) = 5;
@@ -15283,11 +15283,11 @@ notwrapfor:
context.data.byte(kSymboltopdir) = 0;
return;
backwards:
- context._sub(context.data.byte(kSymboltopx), 1);
+ context._dec(context.data.byte(kSymboltopx));
context._cmp(context.data.byte(kSymboltopx), -1);
if (!context.flags.z()) goto notwrapback;
context.data.byte(kSymboltopx) = 48;
- context._add(context.data.byte(kSymboltopnum), 1);
+ context._inc(context.data.byte(kSymboltopnum));
context._cmp(context.data.byte(kSymboltopnum), 6);
if (!context.flags.z()) goto topfinished;
context.data.byte(kSymboltopnum) = 0;
@@ -15305,11 +15305,11 @@ void updatesymbolbot(Context & context) {
if (context.flags.z()) goto botfinished;
context._cmp(context.data.byte(kSymbolbotdir), -1);
if (context.flags.z()) goto backwardsbot;
- context._add(context.data.byte(kSymbolbotx), 1);
+ context._inc(context.data.byte(kSymbolbotx));
context._cmp(context.data.byte(kSymbolbotx), 49);
if (!context.flags.z()) goto notwrapforb;
context.data.byte(kSymbolbotx) = 0;
- context._sub(context.data.byte(kSymbolbotnum), 1);
+ context._dec(context.data.byte(kSymbolbotnum));
context._cmp(context.data.byte(kSymbolbotnum), -1);
if (!context.flags.z()) goto botfinished;
context.data.byte(kSymbolbotnum) = 5;
@@ -15320,11 +15320,11 @@ notwrapforb:
context.data.byte(kSymbolbotdir) = 0;
return;
backwardsbot:
- context._sub(context.data.byte(kSymbolbotx), 1);
+ context._dec(context.data.byte(kSymbolbotx));
context._cmp(context.data.byte(kSymbolbotx), -1);
if (!context.flags.z()) goto notwrapbackb;
context.data.byte(kSymbolbotx) = 48;
- context._add(context.data.byte(kSymbolbotnum), 1);
+ context._inc(context.data.byte(kSymbolbotnum));
context._cmp(context.data.byte(kSymbolbotnum), 6);
if (!context.flags.z()) goto botfinished;
context.data.byte(kSymbolbotnum) = 0;
@@ -15412,7 +15412,7 @@ void showdiary(Context & context) {
void showdiarykeys(Context & context) {
context._cmp(context.data.byte(kPresscount), 0);
if (context.flags.z()) goto nokeyatall;
- context._sub(context.data.byte(kPresscount), 1);
+ context._dec(context.data.byte(kPresscount));
context._cmp(context.data.byte(kPresscount), 0);
if (context.flags.z()) goto nokeyatall;
context._cmp(context.data.byte(kPressed), 'N');
@@ -15523,7 +15523,7 @@ alreadykeyp:
playchannel1(context);
context.data.byte(kPresscount) = 12;
context.data.byte(kPressed) = 'P';
- context._sub(context.data.byte(kDiarypage), 1);
+ context._dec(context.data.byte(kDiarypage));
context._cmp(context.data.byte(kDiarypage), -1);
if (!context.flags.z()) goto notkeyp;
context.data.byte(kDiarypage) = 11;
@@ -15549,7 +15549,7 @@ alreadykeyn:
playchannel1(context);
context.data.byte(kPresscount) = 12;
context.data.byte(kPressed) = 'N';
- context._add(context.data.byte(kDiarypage), 1);
+ context._inc(context.data.byte(kDiarypage));
context._cmp(context.data.byte(kDiarypage), 12);
if (!context.flags.z()) goto notkeyn;
context.data.byte(kDiarypage) = 0;
@@ -15950,7 +15950,7 @@ alreadyactsave:
context.cx = 17;
context._mul(context.cx);
context._add(context.si, context.ax);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.ds.byte(context.si), 0);
if (context.flags.z()) goto noactsave;
context.al = context.data.byte(kLocation);
@@ -16012,7 +16012,7 @@ alreadyactload:
context.cx = 17;
context._mul(context.cx);
context._add(context.si, context.ax);
- context._add(context.si, 1);
+ context._inc(context.si);
context._cmp(context.ds.byte(context.si), 0);
if (context.flags.z()) goto notactload;
loadposition(context);
@@ -16047,7 +16047,7 @@ notret:
context._cmp(context.data.byte(kCursorpos), 0);
if (context.flags.z()) goto nokeypress;
getnamepos(context);
- context._sub(context.data.byte(kCursorpos), 1);
+ context._dec(context.data.byte(kCursorpos));
context.es.byte(context.bx) = 0;
context.es.byte(context.bx+1) = 1;
goto afterkey;
@@ -16056,7 +16056,7 @@ spacepress:
context._cmp(context.data.byte(kCursorpos), 14);
if (context.flags.z()) goto nokeypress;
getnamepos(context);
- context._add(context.data.byte(kCursorpos), 1);
+ context._inc(context.data.byte(kCursorpos));
context.al = context.data.byte(kCurrentkey);
context.es.byte(context.bx+1) = context.al;
context.es.byte(context.bx+2) = 0;
@@ -16160,14 +16160,14 @@ alreadysel:
if (context.flags.z()) goto noselslot;
context._cmp(context.data.byte(kLoadingorsave), 3);
if (!context.flags.z()) goto notnocurs;
- context._sub(context.data.byte(kLoadingorsave), 1);
+ context._dec(context.data.byte(kLoadingorsave));
notnocurs:
oldtonames(context);
context.ax = context.data.word(kMousey);
context._sub(context.ax, (52)+4);
context.cl = -1;
getslotnum:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 11);
if (!context.flags.c()) goto getslotnum;
context.data.byte(kCurrentslot) = context.cl;
@@ -16219,7 +16219,7 @@ nomatchslot:
context.di = context.pop();
context.cx = context.pop();
context._add(context.bx, 10);
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._cmp(context.cl, 7);
if (!context.flags.z()) goto slotloop;
return;
@@ -16247,8 +16247,8 @@ shownameloop:
context.cx = 15;
context._add(context.si, 15);
zerostill:
- context._sub(context.si, 1);
- context._sub(context.cl, 1);
+ context._dec(context.si);
+ context._dec(context.cl);
context._cmp(context.es.byte(context.si), 1);
if (!context.flags.z()) goto foundcharacter;
goto zerostill;
@@ -16285,7 +16285,7 @@ afterprintname:
context.cx = context.pop();
context._add(context.si, 17);
context._add(context.bx, 10);
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._cmp(context.cl, 7);
if (!context.flags.z()) goto shownameloop;
return;
@@ -16432,20 +16432,20 @@ void makeheader(Context & context) {
void storeit(Context & context) {
context._cmp(context.ax, 0);
if (!context.flags.z()) goto isntblank;
- context._add(context.ax, 1);
+ context._inc(context.ax);
isntblank:
context._stosw();
return;
}
void findlen(Context & context) {
- context._sub(context.bx, 1);
+ context._dec(context.bx);
context._add(context.bx, context.ax);
nextone:
context._cmp(context.cl, context.ds.byte(context.bx));
if (!context.flags.z()) goto foundlen;
- context._sub(context.bx, 1);
- context._sub(context.ax, 1);
+ context._dec(context.bx);
+ context._dec(context.ax);
context._cmp(context.ax, 0);
if (!context.flags.z()) goto nextone;
foundlen:
@@ -16469,7 +16469,7 @@ scanloop:
openfilenocheck(context);
if (context.flags.c()) goto notexist;
context.cx = context.pop();
- context._add(context.ch, 1);
+ context._inc(context.ch);
context.push(context.cx);
context.push(context.di);
context.push(context.es);
@@ -16494,7 +16494,7 @@ notexist:
context.es = context.pop();
context._add(context.dx, 13);
context._add(context.di, 17);
- context._sub(context.cl, 1);
+ context._dec(context.cl);
if (!context.flags.z()) goto scanloop;
context.al = context.ch;
return;
@@ -16638,7 +16638,7 @@ void createname(Context & context) {
context.al = context.dh;
context.ah = '0'-1;
findten:
- context._add(context.ah, 1);
+ context._inc(context.ah);
context._sub(context.al, 10);
if (!context.flags.c()) goto findten;
context.cs.byte(context.di+1) = context.ah;
@@ -16647,21 +16647,21 @@ findten:
context.ax = context.pop();
context.cl = '0'-1;
thousandsc:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 1000);
if (!context.flags.c()) goto thousandsc;
context._add(context.ax, 1000);
context.cs.byte(context.di+4) = context.cl;
context.cl = '0'-1;
hundredsc:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 100);
if (!context.flags.c()) goto hundredsc;
context._add(context.ax, 100);
context.cs.byte(context.di+5) = context.cl;
context.cl = '0'-1;
tensc:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, 10);
if (!context.flags.c()) goto tensc;
context._add(context.ax, 10);
@@ -16674,7 +16674,7 @@ tensc:
void trysoundalloc(Context & context) {
context._cmp(context.data.byte(kNeedsoundbuff), 1);
if (context.flags.z()) goto gotsoundbuff;
- context._add(context.data.byte(kSoundtimes), 1);
+ context._inc(context.data.byte(kSoundtimes));
context.bx = (16384+2048)/16;
allocatemem(context);
context.data.word(kSoundbuffer) = context.ax;
@@ -16798,15 +16798,15 @@ void makenextblock(Context & context) {
if (context.flags.z()) goto mightbeonlych0;
context._cmp(context.data.word(kCh0blockstocopy), 0);
if (context.flags.z()) goto mightbeonlych1;
- context._sub(context.data.word(kCh0blockstocopy), 1);
- context._sub(context.data.word(kCh1blockstocopy), 1);
+ context._dec(context.data.word(kCh0blockstocopy));
+ context._dec(context.data.word(kCh1blockstocopy));
bothchannels(context);
return;
mightbeonlych1:
context.data.byte(kCh0playing) = 255;
context._cmp(context.data.word(kCh1blockstocopy), 0);
if (context.flags.z()) goto notch1only;
- context._sub(context.data.word(kCh1blockstocopy), 1);
+ context._dec(context.data.word(kCh1blockstocopy));
channel1only(context);
notch1only:
return;
@@ -16814,7 +16814,7 @@ mightbeonlych0:
context.data.byte(kCh1playing) = 255;
context._cmp(context.data.word(kCh0blockstocopy), 0);
if (context.flags.z()) goto notch0only;
- context._sub(context.data.word(kCh0blockstocopy), 1);
+ context._dec(context.data.word(kCh0blockstocopy));
channel0only(context);
return;
notch0only:
@@ -16854,7 +16854,7 @@ void loopchannel0(Context & context) {
if (context.flags.z()) goto notloop;
context._cmp(context.data.byte(kCh0repeat), 255);
if (context.flags.z()) goto endlessloop;
- context._sub(context.data.byte(kCh0repeat), 1);
+ context._dec(context.data.byte(kCh0repeat));
endlessloop:
context.ax = context.data.word(kCh0oldemmpage);
context.data.word(kCh0emmpage) = context.ax;
@@ -16909,7 +16909,7 @@ void domix(Context & context) {
slow:
context._lodsb();
context.ah = context.ds.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.al, context.dh);
if (!context.flags.c()) goto toplot;
botlot:
@@ -16955,7 +16955,7 @@ lowvolumemix:
context.al = context.es.byte(context.bx);
context.bx = context.pop();
context.ah = context.ds.byte(context.bx);
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._cmp(context.al, context.dh);
if (!context.flags.c()) goto toplotv;
botlotv:
@@ -17180,7 +17180,7 @@ notalley:
if (!context.flags.z()) goto notedensagain;
context.al = 2;
context.ah = context.data.byte(kRoomnum);
- context._sub(context.ah, 1);
+ context._dec(context.ah);
turnanypathon(context);
notedensagain:
return;
@@ -17425,20 +17425,20 @@ lookattail:
if (context.flags.z()) goto isdma;
context._cmp(context.al, 'D');
if (context.flags.z()) goto isdma;
- context._add(context.bx, 1);
+ context._inc(context.bx);
if (--context.cx) goto lookattail;
return;
issoundint:
context.al = context.es.byte(context.bx+1);
context._sub(context.al, '0');
context.data.byte(kSoundint) = context.al;
- context._add(context.bx, 1);
+ context._inc(context.bx);
goto lookattail;
isdma:
context.al = context.es.byte(context.bx+1);
context._sub(context.al, '0');
context.data.byte(kSounddmachannel) = context.al;
- context._add(context.bx, 1);
+ context._inc(context.bx);
goto lookattail;
isbaseadd:
context.push(context.cx);
@@ -17450,15 +17450,15 @@ isbaseadd:
context._add(context.ax, 0x200);
context.data.word(kSoundbaseadd) = context.ax;
context.cx = context.pop();
- context._add(context.bx, 1);
+ context._inc(context.bx);
goto lookattail;
isbright:
context.data.byte(kBrightness) = 1;
- context._add(context.bx, 1);
+ context._inc(context.bx);
goto lookattail;
isnosound:
context.data.byte(kSoundint) = 255;
- context._add(context.bx, 1);
+ context._inc(context.bx);
goto lookattail;
endtail:
return;
@@ -17560,7 +17560,7 @@ void watchreel(Context & context) {
waitstopwalk:
return;
notwatchpath:
- context._sub(context.data.byte(kSpeedcount), 1);
+ context._dec(context.data.byte(kSpeedcount));
context._cmp(context.data.byte(kSpeedcount), -1);
if (!context.flags.z()) goto showwatchreel;
context.al = context.data.byte(kWatchspeed);
@@ -17577,7 +17577,7 @@ notwatchpath:
context.data.byte(kWatchmode) = 1;
goto notplayingreel;
ismorereel:
- context._add(context.data.word(kReeltowatch), 1);
+ context._inc(context.data.word(kReeltowatch));
showwatchreel:
context.ax = context.data.word(kReeltowatch);
context.data.word(kReelpointer) = context.ax;
@@ -17597,12 +17597,12 @@ notplayingreel:
notholdingreel:
context._cmp(context.data.byte(kWatchmode), 2);
if (!context.flags.z()) goto notreleasehold;
- context._sub(context.data.byte(kSpeedcount), 1);
+ context._dec(context.data.byte(kSpeedcount));
context._cmp(context.data.byte(kSpeedcount), -1);
if (!context.flags.z()) goto notlastspeed2;
context.al = context.data.byte(kWatchspeed);
context.data.byte(kSpeedcount) = context.al;
- context._add(context.data.word(kReeltohold), 1);
+ context._inc(context.data.word(kReeltohold));
notlastspeed2:
context.ax = context.data.word(kReeltohold);
context._cmp(context.ax, context.data.word(kEndofholdreel));
@@ -17636,7 +17636,7 @@ notstartshake:
void watchcount(Context & context) {
context._cmp(context.data.byte(kWatchon), 0);
if (context.flags.z()) goto nowatchworn;
- context._add(context.data.byte(kTimercount), 1);
+ context._inc(context.data.byte(kTimercount));
context._cmp(context.data.byte(kTimercount), 9);
if (context.flags.z()) goto flashdots;
context._cmp(context.data.byte(kTimercount), 18);
@@ -17656,11 +17656,11 @@ uptime:
context._cmp(context.data.byte(kSecondcount), 60);
if (!context.flags.z()) goto finishtime;
context.data.byte(kSecondcount) = 0;
- context._add(context.data.byte(kMinutecount), 1);
+ context._inc(context.data.byte(kMinutecount));
context._cmp(context.data.byte(kMinutecount), 60);
if (!context.flags.z()) goto finishtime;
context.data.byte(kMinutecount) = 0;
- context._add(context.data.byte(kHourcount), 1);
+ context._inc(context.data.byte(kHourcount));
context._cmp(context.data.byte(kHourcount), 24);
if (!context.flags.z()) goto finishtime;
context.data.byte(kHourcount) = 0;
@@ -17779,9 +17779,9 @@ morethan10:
void twodigitnum(Context & context) {
context.ah = context.cl;
- context._sub(context.ah, 1);
+ context._dec(context.ah);
numloop1:
- context._add(context.ah, 1);
+ context._inc(context.ah);
context._sub(context.al, 10);
if (!context.flags.c()) goto numloop1;
context._add(context.al, 10);
@@ -17794,7 +17794,7 @@ void showword(Context & context) {
context.bx = 10000;
context.cl = 47;
word1:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, context.bx);
if (!context.flags.c()) goto word1;
context._add(context.ax, context.bx);
@@ -17803,7 +17803,7 @@ word1:
context.bx = 1000;
context.cl = 47;
word2:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, context.bx);
if (!context.flags.c()) goto word2;
context._add(context.ax, context.bx);
@@ -17812,7 +17812,7 @@ word2:
context.bx = 100;
context.cl = 47;
word3:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, context.bx);
if (!context.flags.c()) goto word3;
context._add(context.ax, context.bx);
@@ -17821,7 +17821,7 @@ word3:
context.bx = 10;
context.cl = 47;
word4:
- context._add(context.cl, 1);
+ context._inc(context.cl);
context._sub(context.ax, context.bx);
if (!context.flags.c()) goto word4;
context._add(context.ax, context.bx);
@@ -18094,7 +18094,7 @@ notblankpers:
notareelid:
context.cx = context.pop();
context._add(context.bx, 5);
- context._sub(context.cx, 1);
+ context._dec(context.cx);
if (!context.flags.z()) goto identifyreel;
return;
}
@@ -18126,7 +18126,7 @@ identifyset:
return;
notasetid:
context._sub(context.bx, 5);
- context._sub(context.cx, 1);
+ context._dec(context.cx);
context._cmp(context.cx, -1);
if (!context.flags.z()) goto identifyset;
return;
@@ -18155,7 +18155,7 @@ identifyex:
return;
notanexid:
context._sub(context.bx, 5);
- context._sub(context.cx, 1);
+ context._dec(context.cx);
context._cmp(context.cx, -1);
if (!context.flags.z()) goto identifyex;
return;
@@ -18184,7 +18184,7 @@ identifyfree:
return;
notafreeid:
context._sub(context.bx, 5);
- context._sub(context.cx, 1);
+ context._dec(context.cx);
context._cmp(context.cx, -1);
if (!context.flags.z()) goto identifyfree;
return;
@@ -18243,7 +18243,7 @@ pathloop:
goto gotvalidpath;
flunkedit:
context._add(context.bx, 8);
- context._add(context.dl, 1);
+ context._inc(context.dl);
context._cmp(context.dl, 12);
if (!context.flags.z()) goto pathloop;
context.dl = 255;
@@ -18278,7 +18278,7 @@ fpathloop:
goto gotfirst;
nofirst:
context._add(context.bx, 8);
- context._add(context.dl, 1);
+ context._inc(context.dl);
context._cmp(context.dl, 12);
if (!context.flags.z()) goto fpathloop;
context.al = 0;
@@ -18772,7 +18772,7 @@ searchmess:
context.push(context.ax);
findnextcolon(context);
context.ax = context.pop();
- context._sub(context.ah, 1);
+ context._dec(context.ah);
if (!context.flags.z()) goto searchmess;
context.di = context.pop();
context.bx = context.pop();
@@ -18900,7 +18900,7 @@ notsamealready:
context._cmp(context.data.byte(kLinedirection), 0);
if (context.flags.z()) goto normalline;
context.al = context.data.byte(kLinelength);
- context._sub(context.al, 1);
+ context._dec(context.al);
context.data.byte(kLinepointer) = context.al;
context.data.byte(kLinedirection) = 1;
return;
@@ -18949,7 +18949,7 @@ nextcheck:
context._and(context.ch, 15);
nextcheck2:
context._add(context.bx, 2);
- context._sub(context.cl, 1);
+ context._dec(context.cl);
if (!context.flags.z()) goto checkdestloop;
context.data.byte(kDestination) = context.ch;
context.bx = context.pop();
@@ -18999,7 +18999,7 @@ line4:
context.ax = context.data.word(kLinestartx);
context.bx = context.data.word(kLinestarty);
context.ah = context.bl;
- context._add(context.cx, 1);
+ context._inc(context.cx);
context.bx = context.pop();
context._cmp(context.data.byte(kLineroutine), 1);
if (context.flags.z()) goto hislope;
@@ -19014,7 +19014,7 @@ vertline:
context.ax = context.bx;
context.data.byte(kLinedirection) = 1;
line31:
- context._add(context.cx, 1);
+ context._inc(context.cx);
context.bx = context.data.word(kLinestartx);
context._xchg(context.ax, context.bx);
context.ah = context.bl;
@@ -19028,16 +19028,16 @@ horizline:
context.ax = context.data.word(kLinestartx);
context.bx = context.data.word(kLinestarty);
context.ah = context.bl;
- context._add(context.cx, 1);
+ context._inc(context.cx);
horizloop:
context._stosw();
- context._add(context.al, 1);
+ context._inc(context.al);
if (--context.cx) goto horizloop;
goto lineexit;
loslope:
loloop:
context._stosw();
- context._add(context.al, 1);
+ context._inc(context.al);
context._or(context.si, context.si);
if (!context.flags.s()) goto line12;
context._add(context.si, context.data.word(kIncrement1));
@@ -19059,7 +19059,7 @@ hiloop:
goto lineexit;
line23:
context._add(context.si, context.data.word(kIncrement2));
- context._add(context.al, 1);
+ context._inc(context.al);
if (--context.cx) goto hiloop;
lineexit:
context._sub(context.di, 7944);
@@ -19174,7 +19174,7 @@ make:
context._stosb();
if (--context.cx) goto make;
finishmakename:
- context._add(context.cx, 1);
+ context._inc(context.cx);
context.al = 0;
context._stosb();
return;
@@ -19475,7 +19475,7 @@ nozoom1:
void showblink(Context & context) {
context._cmp(context.data.byte(kManisoffscreen), 1);
if (context.flags.z()) goto finblink1;
- context._add(context.data.byte(kBlinkcount), 1);
+ context._inc(context.data.byte(kBlinkcount));
context._cmp(context.data.byte(kShadeson), 0);
if (!context.flags.z()) goto finblink1;
context._cmp(context.data.byte(kReallocation), 50);
@@ -19485,7 +19485,7 @@ void showblink(Context & context) {
if (!context.flags.z()) goto finblink1;
context.data.byte(kBlinkcount) = 0;
context.al = context.data.byte(kBlinkframe);
- context._add(context.al, 1);
+ context._inc(context.al);
context.data.byte(kBlinkframe) = context.al;
context._cmp(context.al, 6);
if (context.flags.c()) goto nomorethan6;
@@ -19734,7 +19734,7 @@ itsfrominv:
context.cl = context.al;
context._add(context.al, context.al);
context._add(context.al, context.cl);
- context._add(context.al, 1);
+ context._inc(context.al);
context.ah = 0;
context.push(context.ax);
context._add(context.ax, context.ax);
@@ -19905,11 +19905,11 @@ gothand:
mousehand:
context._cmp(context.data.byte(kPointerspeed), 0);
if (context.flags.z()) goto rightspeed3;
- context._sub(context.data.byte(kPointerspeed), 1);
+ context._dec(context.data.byte(kPointerspeed));
goto finflashmouse;
rightspeed3:
context.data.byte(kPointerspeed) = 5;
- context._add(context.data.byte(kPointercount), 1);
+ context._inc(context.data.byte(kPointercount));
context._cmp(context.data.byte(kPointercount), 16);
if (!context.flags.z()) goto finflashmouse;
context.data.byte(kPointercount) = 0;
@@ -20004,7 +20004,7 @@ void readkey(Context & context) {
context.bx = context.data.word(kBufferout);
context._cmp(context.bx, context.data.word(kBufferin));
if (context.flags.z()) goto nokey;
- context._add(context.bx, 1);
+ context._inc(context.bx);
context._and(context.bx, 15);
context.data.word(kBufferout) = context.bx;
context.di = 5715;
@@ -20482,9 +20482,9 @@ looky2:
context._sub(context.al, 10);
if (!context.flags.c()) goto looky2;
context.al = context.ah;
- context._sub(context.cx, 1);
+ context._dec(context.cx);
lookx2:
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._sub(context.al, 11);
if (!context.flags.c()) goto lookx2;
context.al = context.cl;
@@ -20529,9 +20529,9 @@ looky:
context._sub(context.al, 10);
if (!context.flags.c()) goto looky;
context.al = context.data.byte(kMapx);
- context._sub(context.cx, 1);
+ context._dec(context.cx);
lookx:
- context._add(context.cx, 1);
+ context._inc(context.cx);
context._sub(context.al, 11);
if (!context.flags.c()) goto lookx;
context.data.byte(kRoomnum) = context.cl;
@@ -20742,7 +20742,7 @@ mainloop:
context.al = context.data.byte(kFinaldest);
context._cmp(context.al, context.data.byte(kManspath));
if (!context.flags.z()) goto mainloop;
- context._sub(context.data.word(kWatchingtime), 1);
+ context._dec(context.data.word(kWatchingtime));
if (!context.flags.z()) goto mainloop;
notwatching:
context._cmp(context.data.byte(kMandead), 4);
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index f99563f..aaed686 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -302,6 +302,30 @@ public:
flags.update_zs(dst);
}
+ inline void _inc(uint8 &dst) {
+ flags.update_o((uint8)(dst + 1), dst);
+ ++dst;
+ flags.update_zs(dst);
+ }
+
+ inline void _inc(uint16 &dst) {
+ flags.update_o((uint16)(dst + 1), dst);
+ ++dst;
+ flags.update_zs(dst);
+ }
+
+ inline void _dec(uint8 &dst) {
+ flags.update_o(uint8(dst - 1), dst);
+ --dst;
+ flags.update_zs(dst);
+ }
+
+ inline void _dec(uint16 &dst) {
+ flags.update_o(uint16(dst - 1), dst);
+ --dst;
+ flags.update_zs(dst);
+ }
+
inline void _and(uint8 &dst, uint8 src) {
dst &= src;
flags.update_zs(dst);
Commit: c330f5d0b893a9f303addc3e7f20aa20678fc651
https://github.com/scummvm/scummvm/commit/c330f5d0b893a9f303addc3e7f20aa20678fc651
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:25-07:00
Commit Message:
DREAMWEB: modify register after raster operations
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 086aee2..2ca38ce 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -355,6 +355,9 @@ void multiget(Context &context) {
uint8 *dst_p = context.es.ptr(dst + w * y, w);
memcpy(dst_p, src_p, w);
}
+ context.si += w * h;
+ context.di = src + kScreenwidth * h;
+ context.cx = 0;
}
void multiput(Context &context) {
@@ -368,6 +371,9 @@ void multiput(Context &context) {
uint8 *dst_p = context.es.ptr(dst + kScreenwidth * y, w);
memcpy(dst_p, src_p, w);
}
+ context.si += w * h;
+ context.di = dst + kScreenwidth * h;
+ context.cx = 0;
}
void multidump(Context &context) {
@@ -377,11 +383,14 @@ void multidump(Context &context) {
unsigned offset = x + y * kScreenwidth;
//debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);
context.engine->blit(context.ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
+ context.si = context.di = offset + h * kScreenwidth;
+ context.cx = 0;
}
void worktoscreen(Context &context) {
context.ds = context.data.word(kWorkspace);
context.engine->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200);
+ context.cx = 0;
}
void printundermon(Context &context) {
Commit: 70bbb1a2aeb6f545cc73bbd3ba9ccf7646a665eb
https://github.com/scummvm/scummvm/commit/70bbb1a2aeb6f545cc73bbd3ba9ccf7646a665eb
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:25-07:00
Commit Message:
DREAMWEB: switched off foreign/spanish flags for recompilation
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index b27de1f..01992ed 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -276,7 +276,6 @@ void isryanholding(Context &context);
void nothelderror(Context &context);
void triggermessage(Context &context);
void monprint(Context &context);
-void modifychar(Context &context);
void printchar(Context &context);
void showcurrentfile(Context &context);
void printlogo(Context &context);
@@ -2424,7 +2423,7 @@ forcenext:
void clearsprites(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = 255;
context.cx = (32)*16;
while(context.cx--) context._stosb();
@@ -2433,7 +2432,7 @@ void clearsprites(Context & context) {
void makesprite(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
_tmp17:
context._cmp(context.es.byte(context.bx+15), 255);
if (context.flags.z()) goto _tmp17a;
@@ -2460,11 +2459,11 @@ void delsprite(Context & context) {
void spriteupdate(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = context.data.byte(kRyanon);
context.es.byte(context.bx+31) = context.al;
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.cx = 16;
_tmp18:
context.push(context.cx);
@@ -2496,7 +2495,7 @@ void printsprites(Context & context) {
priorityloop:
context.push(context.cx);
context.data.byte(kPriority) = context.cl;
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.cx = 16;
prtspriteloop:
context.push(context.cx);
@@ -2585,7 +2584,7 @@ void checkone(Context & context) {
context._mul(context.cx);
context.si = context.ax;
context.ds = context.data.word(kBuffers);
- context._add(context.si, (0+(228*13)+32+60+(32*32)));
+ context._add(context.si, (0+(180*10)+32+60+(32*32)));
context._lodsw();
context.cx = context.ax;
context._lodsb();
@@ -3010,7 +3009,7 @@ notinedenslift:
void initrain(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24));
context.bx = 1113;
checkmorerain:
context.al = context.cs.byte(context.bx);
@@ -3145,7 +3144,7 @@ void showrain(Context & context) {
context.ax = context.ds.word(context.si+2);
context.si = context.ax;
context._add(context.si, 2080);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24));
context.es = context.data.word(kBuffers);
context._cmp(context.es.byte(context.bx), 255);
if (context.flags.z()) goto nothunder;
@@ -3641,7 +3640,7 @@ notnearly:
void updatepeople(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
context.data.word(kListpos) = context.di;
context.cx = 12*5;
context.al = 255;
@@ -3783,10 +3782,6 @@ void reconstruct(Context & context) {
drawfloor(context);
spriteupdate(context);
printsprites(context);
- context._cmp(context.data.byte(kReallocation), 20);
- if (!context.flags.z()) goto notfudge;
- undertextline(context);
-notfudge:
context.data.byte(kHavedoneobs) = 0;
noneedtorecon:
return;
@@ -3918,7 +3913,7 @@ bigroom:
void dumpeverything(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
dumpevery1:
context.ax = context.es.word(context.bx);
context.cx = context.es.word(context.bx+2);
@@ -3946,7 +3941,7 @@ skip1:
context._add(context.bx, 5);
goto dumpevery1;
finishevery1:
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40))+(40*5);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40))+(40*5);
dumpevery2:
context.ax = context.es.word(context.bx);
context.cx = context.es.word(context.bx+2);
@@ -4007,7 +4002,7 @@ void loadpalfromiff(Context & context) {
readfromfile(context);
closefile(context);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
context.ds = context.data.word(kMapstore);
context.si = 0x30;
context.cx = 768;
@@ -4950,7 +4945,7 @@ void dofade(Context & context) {
context.al = context.data.byte(kColourpos);
context.ah = 0;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3));
context._add(context.si, context.ax);
context._add(context.si, context.ax);
context._add(context.si, context.ax);
@@ -4967,7 +4962,7 @@ finishfade:
void clearendpal(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 0;
while(context.cx--) context._stosb();
@@ -4993,11 +4988,11 @@ void fadescreenup(Context & context) {
void fadetowhite(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 63;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.al = 0;
context._stosb();
context._stosb();
@@ -5012,11 +5007,11 @@ void fadetowhite(Context & context) {
void fadefromwhite(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768;
context.al = 63;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.al = 0;
context._stosb();
context._stosb();
@@ -5044,7 +5039,7 @@ void fadescreendownhalf(Context & context) {
paltoendpal(context);
context.cx = 768;
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
halfend:
context.al = context.es.byte(context.bx);
context._shr(context.al, 1);
@@ -5053,12 +5048,12 @@ halfend:
if (--context.cx) goto halfend;
context.ds = context.data.word(kBuffers);
context.es = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(56*3);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(56*3);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3))+(56*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(56*3);
context.cx = 3*5;
while(context.cx--) context._movsb();
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(77*3);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(77*3);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3))+(77*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(77*3);
context.cx = 3*2;
while(context.cx--) context._movsb();
context.data.byte(kFadedirection) = 1;
@@ -5100,7 +5095,7 @@ void fadescreendowns(Context & context) {
void clearstartpal(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 256;
wholeloop1:
context.ax = 0;
@@ -5263,8 +5258,8 @@ void fadecalculation(Context & context) {
if (context.flags.z()) goto nomorefading;
context.bl = context.data.byte(kFadecount);
context.es = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
fadecolloop:
context.al = context.es.byte(context.si);
@@ -5293,8 +5288,8 @@ nomorefading:
void greyscalesum(Context & context) {
context.es = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.cx = 256;
greysumloop1:
context.push(context.cx);
@@ -5349,8 +5344,8 @@ noaddb:
void paltostartpal(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(context.cx--) context._movsw();
return;
@@ -5359,8 +5354,8 @@ void paltostartpal(Context & context) {
void endpaltostart(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(context.cx--) context._movsw();
return;
@@ -5369,8 +5364,8 @@ void endpaltostart(Context & context) {
void startpaltoend(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(context.cx--) context._movsw();
return;
@@ -5379,8 +5374,8 @@ void startpaltoend(Context & context) {
void paltoendpal(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
while(context.cx--) context._movsw();
return;
@@ -5389,8 +5384,8 @@ void paltoendpal(Context & context) {
void allpalette(Context & context) {
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
while(context.cx--) context._movsw();
dumpcurrent(context);
@@ -5398,7 +5393,7 @@ void allpalette(Context & context) {
}
void dumpcurrent(Context & context) {
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.ds = context.data.word(kBuffers);
vsync(context);
context.al = 0;
@@ -5415,11 +5410,11 @@ void fadedownmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(231*3);
context.cx = 3*8;
context.ax = 0;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5435,11 +5430,11 @@ void fadeupmon(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(231*3);
context.cx = 3*8;
context.ax = 0;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5455,11 +5450,11 @@ void fadeupmonfirst(Context & context) {
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(231*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(231*3);
context.cx = 3*8;
context.ax = 0;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5478,11 +5473,11 @@ void fadeupmonfirst(Context & context) {
void fadeupyellows(Context & context) {
paltoendpal(context);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(231*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(231*3);
context.cx = 3*8;
context.ax = 0;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768)+(246*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(246*3);
context._stosb();
context._stosw();
context.data.byte(kFadedirection) = 1;
@@ -5497,15 +5492,15 @@ void fadeupyellows(Context & context) {
void initialmoncols(Context & context) {
paltostartpal(context);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(230*3);
context.cx = 3*9;
context.ax = 0;
while(context.cx--) context._stosb();
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3))+(246*3);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(246*3);
context._stosb();
context._stosw();
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3))+(230*3);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3))+(230*3);
context.al = 230;
context.cx = 18;
showgroup(context);
@@ -5898,7 +5893,6 @@ void printchar(Context & context) {
context.push(context.si);
context.push(context.bx);
context.push(context.di);
- context._sub(context.bx, 3);
context.push(context.ax);
context._sub(context.al, 32);
context.ah = 0;
@@ -5963,7 +5957,6 @@ printloopslow5:
context.push(context.es);
context.push(context.si);
context.push(context.ds);
- modifychar(context);
printboth(context);
context.ds = context.pop();
context.si = context.pop();
@@ -5984,7 +5977,6 @@ printloopslow5:
context.push(context.cx);
context.push(context.es);
context.push(context.si);
- modifychar(context);
context.data.word(kCharshift) = 91;
printboth(context);
context.data.word(kCharshift) = 0;
@@ -6092,7 +6084,6 @@ printloop5:
if (context.flags.z()) goto finishdirct;
context.push(context.cx);
context.push(context.es);
- modifychar(context);
printchar(context);
context.data.word(kLastxpos) = context.di;
context.es = context.pop();
@@ -6143,7 +6134,6 @@ printloop7:
nottrigger:
context.push(context.cx);
context.push(context.es);
- modifychar(context);
printchar(context);
context.data.word(kCurslocx) = context.di;
context.data.word(kCurslocy) = context.bx;
@@ -6304,7 +6294,6 @@ getloop:
if (context.flags.z()) goto endall;
context._cmp(context.al, 32);
if (context.flags.z()) goto endword;
- modifychar(context);
context._cmp(context.al, 255);
if (context.flags.z()) goto getloop;
context.push(context.ax);
@@ -6330,68 +6319,11 @@ endall:
return;
}
-void modifychar(Context & context) {
- context._cmp(context.al, 128);
- if (context.flags.c()) goto nomod;
- context._cmp(context.al, 160);
- if (!context.flags.z()) goto not160;
- context.al = 'Z'+1;
- return;
-not160:
- context._cmp(context.al, 130);
- if (!context.flags.z()) goto not130;
- context.al = 'Z'+2;
- return;
-not130:
- context._cmp(context.al, 161);
- if (!context.flags.z()) goto not161;
- context.al = 'Z'+3;
- return;
-not161:
- context._cmp(context.al, 162);
- if (!context.flags.z()) goto not162;
- context.al = 'Z'+4;
- return;
-not162:
- context._cmp(context.al, 163);
- if (!context.flags.z()) goto not163;
- context.al = 'Z'+5;
- return;
-not163:
- context._cmp(context.al, 164);
- if (!context.flags.z()) goto not164;
- context.al = 'Z'+6;
- return;
-not164:
- context._cmp(context.al, 165);
- if (!context.flags.z()) goto not165;
- context.al = ','-1;
- return;
-not165:
- context._cmp(context.al, 168);
- if (!context.flags.z()) goto not168;
- context.al = 'A'-1;
- return;
-not168:
- context._cmp(context.al, 173);
- if (!context.flags.z()) goto not173;
- context.al = 'A'-4;
- return;
-not173:
- context._cmp(context.al, 129);
- if (!context.flags.z()) goto not129;
- context.al = 'A'-5;
-not129:
- return;
-nomod:
- return;
-}
-
void fillryan(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32);
+ context.di = (0+(180*10)+32);
findallryan(context);
- context.si = (0+(228*13)+32);
+ context.si = (0+(180*10)+32);
context.al = context.data.byte(kRyanpage);
context.ah = 0;
context.cx = 20;
@@ -6440,9 +6372,9 @@ lessthanapage:
context.al = 1;
context.push(context.ax);
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13));
+ context.di = (0+(180*10));
findallopen(context);
- context.si = (0+(228*13));
+ context.si = (0+(180*10));
context.di = (80);
context.bx = (58)+96;
context.cx = context.pop();
@@ -6899,10 +6831,6 @@ void describeob(Context & context) {
getobtextstart(context);
context.di = 33;
context.bx = 92;
- context._cmp(context.data.byte(kObjecttype), 1);
- if (!context.flags.z()) goto notsetd;
- context.bx = 82;
-notsetd:
context.dl = 241;
context.ah = 16;
context.data.word(kCharshift) = 91+91;
@@ -6910,10 +6838,6 @@ notsetd:
context.data.word(kCharshift) = 0;
context.di = 36;
context.bx = 104;
- context._cmp(context.data.byte(kObjecttype), 1);
- if (!context.flags.z()) goto notsetd2;
- context.bx = 94;
-notsetd2:
context.dl = 241;
context.ah = 0;
printdirect(context);
@@ -7691,7 +7615,7 @@ findinv2:
context.data.byte(kLastinvpos) = context.al;
context._add(context.bx, context.bx);
context.es = context.data.word(kBuffers);
- context._add(context.bx, (0+(228*13)+32));
+ context._add(context.bx, (0+(180*10)+32));
return;
}
@@ -7707,7 +7631,7 @@ findopenp1:
context.data.byte(kLastinvpos) = context.al;
context._add(context.bx, context.bx);
context.es = context.data.word(kBuffers);
- context._add(context.bx, (0+(228*13)));
+ context._add(context.bx, (0+(180*10)));
return;
}
@@ -8592,7 +8516,7 @@ void calcmapad(Context & context) {
void getdimension(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32));
+ context.bx = (0+(180*10)+32+60+(32*32));
context.ch = 0;
dimloop1:
addalong(context);
@@ -8601,7 +8525,7 @@ dimloop1:
context._inc(context.ch);
goto dimloop1;
finishdim1:
- context.bx = (0+(228*13)+32+60+(32*32));
+ context.bx = (0+(180*10)+32+60+(32*32));
context.cl = 0;
dimloop2:
context.push(context.bx);
@@ -8613,7 +8537,7 @@ dimloop2:
context._add(context.bx, 3);
goto dimloop2;
finishdim2:
- context.bx = (0+(228*13)+32+60+(32*32))+(11*3*9);
+ context.bx = (0+(180*10)+32+60+(32*32))+(11*3*9);
context.dh = 10;
dimloop3:
context.push(context.bx);
@@ -8625,7 +8549,7 @@ dimloop3:
context._sub(context.bx, 11*3);
goto dimloop3;
finishdim3:
- context.bx = (0+(228*13)+32+60+(32*32))+(3*10);
+ context.bx = (0+(180*10)+32+60+(32*32))+(3*10);
context.dl = 11;
dimloop4:
context.push(context.bx);
@@ -8702,7 +8626,7 @@ gotlength:
void drawflags(Context & context) {
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32));
+ context.di = (0+(180*10)+32+60+(32*32));
context.al = context.data.byte(kMapy);
context.ah = 0;
context.cx = (66);
@@ -8741,7 +8665,7 @@ void eraseoldobs(Context & context) {
context._cmp(context.data.byte(kNewobs), 0);
if (context.flags.z()) goto donterase;
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.cx = 16;
oberase:
context.push(context.cx);
@@ -8764,7 +8688,7 @@ donterase:
void showallobs(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
context.data.word(kListpos) = context.bx;
context.di = context.bx;
context.cx = 128*5;
@@ -8879,9 +8803,9 @@ nomake:
void showallfree(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
context.data.word(kListpos) = context.bx;
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
context.cx = 80*5;
context.al = 255;
while(context.cx--) context._stosb();
@@ -8958,9 +8882,9 @@ finfree:
void showallex(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
context.data.word(kListpos) = context.bx;
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
context.cx = 100*5;
context.al = 255;
while(context.cx--) context._stosb();
@@ -9708,11 +9632,6 @@ alreadyinfo:
context.di = 60;
context.bx = 72+55;
showframe(context);
- context.al = 4;
- context.ah = 0;
- context.di = 60;
- context.bx = 72+55+21;
- showframe(context);
context.bx = context.pop();
context.bh = 0;
context._add(context.bx, context.bx);
@@ -9721,7 +9640,7 @@ alreadyinfo:
context._add(context.si, (66*2));
findnextcolon(context);
context.di = 63;
- context.bx = 84+4;
+ context.bx = 84;
context.dl = 191;
context.al = 0;
context.ah = 0;
@@ -11109,7 +11028,6 @@ curfileloop:
if (context.flags.z()) goto finishfile;
context._inc(context.si);
context.push(context.si);
- modifychar(context);
context.ds = context.data.word(kTempcharset);
context.ah = 0;
printchar(context);
@@ -11205,8 +11123,6 @@ void printcurs(Context & context) {
context.bx = context.data.word(kCurslocy);
context.cl = 6;
context.ch = 8;
- context._sub(context.bx, 3);
- context.ch = 11;
context.ds = context.data.word(kBuffers);
context.si = (0);
context.push(context.di);
@@ -11230,7 +11146,7 @@ flashcurs:
context.bx = context.pop();
context._sub(context.di, 6);
context.cl = 12;
- context.ch = 11;
+ context.ch = 8;
multidump(context);
context.es = context.pop();
context.bx = context.pop();
@@ -11252,8 +11168,6 @@ void delcurs(Context & context) {
context.bx = context.data.word(kCurslocy);
context.cl = 6;
context.ch = 8;
- context._sub(context.bx, 3);
- context.ch = 11;
context.push(context.di);
context.push(context.bx);
context.push(context.cx);
@@ -12633,7 +12547,7 @@ void usecashcard(Context & context) {
showexit(context);
showman(context);
context.di = 114;
- context.bx = 120-3;
+ context.bx = 120;
context.ds = context.data.word(kTempgraphics);
context.al = 39;
context.ah = 0;
@@ -13521,7 +13435,7 @@ void removefreeobject(Context & context) {
}
void findormake(Context & context) {
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
context.push(context.ax);
context.es = context.data.word(kBuffers);
context.ah = context.data.byte(kReallocation);
@@ -13558,7 +13472,7 @@ void switchryanoff(Context & context) {
void setallchanges(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
setallloop:
context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
@@ -13686,32 +13600,30 @@ notinlouiss:
void getundertimed(Context & context) {
context.al = context.data.byte(kTimedy);
- context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
- context.ch = (30);
+ context.ch = (24);
context.cl = 240;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiget(context);
return;
}
void putundertimed(Context & context) {
context.al = context.data.byte(kTimedy);
- context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
- context.ch = (30);
+ context.ch = (24);
context.cl = 240;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiput(context);
return;
}
@@ -13720,14 +13632,13 @@ void dumptimedtext(Context & context) {
context._cmp(context.data.byte(kNeedtodumptimed), 1);
if (!context.flags.z()) goto nodumptimed;
context.al = context.data.byte(kTimedy);
- context._sub(context.al, 3);
context.ah = 0;
context.bx = context.ax;
context.al = context.data.byte(kTimedx);
context.ah = 0;
context.di = context.ax;
context.cl = 240;
- context.ch = (30);
+ context.ch = (24);
multidump(context);
context.data.byte(kNeedtodumptimed) = 0;
nodumptimed:
@@ -14584,7 +14495,7 @@ void getundermenu(Context & context) {
context.cl = 48;
context.ch = 48;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiget(context);
return;
}
@@ -14595,7 +14506,7 @@ void putundermenu(Context & context) {
context.cl = 48;
context.ch = 48;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiput(context);
return;
}
@@ -16294,7 +16205,7 @@ afterprintname:
void namestoold(Context & context) {
context.ds = context.cs;
context.si = 8350;
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.es = context.data.word(kBuffers);
context.cx = 17*4;
while(context.cx--) context._movsb();
@@ -16304,7 +16215,7 @@ void namestoold(Context & context) {
void oldtonames(Context & context) {
context.es = context.cs;
context.di = 8350;
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.ds = context.data.word(kBuffers);
context.cx = 17*4;
while(context.cx--) context._movsb();
@@ -16347,7 +16258,7 @@ void saveposition(Context & context) {
context.dx = (0);
saveseg(context);
context.ds = context.data.word(kBuffers);
- context.dx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ context.dx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
saveseg(context);
context.dx = context.data;
context.ds = context.dx;
@@ -16397,7 +16308,7 @@ void loadposition(Context & context) {
context.dx = (0);
loadseg(context);
context.ds = context.data.word(kBuffers);
- context.dx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ context.dx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
loadseg(context);
context.dx = context.data;
context.ds = context.dx;
@@ -17258,7 +17169,7 @@ void allocatebuffers(Context & context) {
allocatemem(context);
context.data.word(kMapdata) = context.ax;
trysoundalloc(context);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0)/16;
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534+68-0)/16;
allocatemem(context);
context.data.word(kBuffers) = context.ax;
trysoundalloc(context);
@@ -17285,7 +17196,7 @@ void allocatebuffers(Context & context) {
void clearbuffers(Context & context) {
context.es = context.data.word(kBuffers);
- context.cx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0)/2;
+ context.cx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534+68-0)/2;
context.ax = 0;
context.di = 0;
while(context.cx--) context._stosw();
@@ -17295,13 +17206,13 @@ void clearbuffers(Context & context) {
context.di = 0;
while(context.cx--) context._stosw();
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64));
context.ds = context.cs;
context.si = 534;
context.cx = (991-534);
while(context.cx--) context._movsb();
context.es = context.data.word(kBuffers);
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534);
context.ds = context.cs;
context.si = 0;
context.cx = (68-0);
@@ -17314,16 +17225,16 @@ void clearchanges(Context & context) {
context.es = context.data.word(kBuffers);
context.cx = (250)*2;
context.ax = 0x0ffff;
- context.di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
while(context.cx--) context._stosw();
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64));
context.es = context.cs;
context.di = 534;
context.cx = (991-534);
while(context.cx--) context._movsb();
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534);
context.es = context.cs;
context.di = 0;
context.cx = (68-0);
@@ -18045,7 +17956,7 @@ nothingund:
void checkifperson(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
context.cx = 12;
identifyreel:
context.push(context.cx);
@@ -18101,7 +18012,7 @@ notareelid:
void checkifset(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32))+(127*5);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32))+(127*5);
context.cx = 127;
identifyset:
context._cmp(context.es.byte(context.bx+4), 255);
@@ -18134,7 +18045,7 @@ notasetid:
void checkifex(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5))+(99*5);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5))+(99*5);
context.cx = 99;
identifyex:
context._cmp(context.es.byte(context.bx+4), 255);
@@ -18163,7 +18074,7 @@ notanexid:
void checkiffree(Context & context) {
context.es = context.data.word(kBuffers);
- context.bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5))+(79*5);
+ context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5))+(79*5);
context.cx = 79;
identifyfree:
context._cmp(context.es.byte(context.bx+4), 255);
@@ -19625,7 +19536,7 @@ void getunderzoom(Context & context) {
context.di = (8)+5;
context.bx = (132)+4;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.cl = 46;
context.ch = 40;
multiget(context);
@@ -19648,7 +19559,7 @@ void putunderzoom(Context & context) {
context.di = (8)+5;
context.bx = (132)+4;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.cl = 46;
context.ch = 40;
multiput(context);
@@ -19710,7 +19621,7 @@ notsmally:
context.data.byte(kPointerys) = context.ch;
context.push(context.ds);
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60);
+ context.si = (0+(180*10)+32+60);
multiget(context);
context.ds = context.pop();
context.di = context.pop();
@@ -19770,7 +19681,7 @@ notsmally2:
context._sub(context.data.word(kOldpointery), context.ax);
context._sub(context.bx, context.ax);
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60);
+ context.si = (0+(180*10)+32+60);
multiget(context);
context.ds = context.pop();
context.di = context.pop();
@@ -19799,7 +19710,7 @@ void delpointer(Context & context) {
context.ch = context.data.byte(kPointerys);
context.data.byte(kDelys) = context.ch;
context.ds = context.data.word(kBuffers);
- context.si = (0+(228*13)+32+60);
+ context.si = (0+(180*10)+32+60);
context.di = context.data.word(kDelherex);
context.bx = context.data.word(kDelherey);
multiput(context);
@@ -19831,11 +19742,10 @@ notboth:
void undertextline(Context & context) {
context.di = context.data.word(kTextaddressx);
context.bx = context.data.word(kTextaddressy);
- context._sub(context.bx, 3);
context.ds = context.data.word(kBuffers);
context.si = (0);
- context.cl = (228);
- context.ch = (13);
+ context.cl = (180);
+ context.ch = (10);
multiget(context);
return;
}
@@ -19843,11 +19753,10 @@ void undertextline(Context & context) {
void deltextline(Context & context) {
context.di = context.data.word(kTextaddressx);
context.bx = context.data.word(kTextaddressy);
- context._sub(context.bx, 3);
context.ds = context.data.word(kBuffers);
context.si = (0);
- context.cl = (228);
- context.ch = (13);
+ context.cl = (180);
+ context.ch = (10);
multiput(context);
return;
}
@@ -19858,9 +19767,8 @@ void dumptextline(Context & context) {
context.data.byte(kNewtextline) = 0;
context.di = context.data.word(kTextaddressx);
context.bx = context.data.word(kTextaddressy);
- context._sub(context.bx, 3);
- context.cl = (228);
- context.ch = (13);
+ context.cl = (180);
+ context.ch = (10);
multidump(context);
nodumptextline:
return;
@@ -20926,24 +20834,24 @@ void __start(Context &context) {
0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e,
0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x37,
0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, 0x4c, 0x00, 0x11, 0x01,
- 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0x04, 0x01, 0x2c, 0x01, 0x00, 0x00, 0x2c, 0x00,
- 0x84, 0xc5, 0xd2, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x2c, 0x00, 0xe0, 0xc3, 0x90, 0x00, 0xb0, 0x00,
- 0x40, 0x00, 0x60, 0x00, 0x84, 0xc3, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0xc8, 0x00, 0x88, 0xc3,
- 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
- 0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0xff, 0x00, 0x26, 0x01, 0x00, 0x00, 0x18, 0x00, 0xcc, 0xc3,
- 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00, 0x00, 0x01, 0x9e, 0x00,
- 0xca, 0x00, 0xe4, 0xc3, 0x50, 0x00, 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0x9c, 0xc3, 0x00, 0x00,
- 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
- 0xc6, 0x00, 0x48, 0xc3, 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00,
- 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0xc0, 0xc6, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
- 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0xf0, 0x00,
- 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x98, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
- 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00,
- 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
- 0x2c, 0x00, 0xcc, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xd0, 0xc4, 0x18, 0x01,
- 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb4, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00,
- 0xd4, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00, 0x40, 0x01,
- 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
+ 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x44, 0xc3, 0x04, 0x01, 0x2c, 0x01, 0x00, 0x00, 0x2c, 0x00,
+ 0x80, 0xc5, 0xd2, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x2c, 0x00, 0xdc, 0xc3, 0x90, 0x00, 0xb0, 0x00,
+ 0x40, 0x00, 0x60, 0x00, 0x80, 0xc3, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0xc8, 0x00, 0x84, 0xc3,
+ 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
+ 0x9d, 0x00, 0xc6, 0x00, 0x44, 0xc3, 0xff, 0x00, 0x26, 0x01, 0x00, 0x00, 0x18, 0x00, 0xc8, 0xc3,
+ 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x48, 0xc3, 0x50, 0x00, 0x00, 0x01, 0x9e, 0x00,
+ 0xca, 0x00, 0xe0, 0xc3, 0x50, 0x00, 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0x98, 0xc3, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
+ 0xc6, 0x00, 0x44, 0xc3, 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x48, 0xc3, 0x50, 0x00,
+ 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0xbc, 0xc6, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
+ 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00,
+ 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
+ 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
+ 0x2c, 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01,
+ 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00,
+ 0xd0, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01,
+ 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
0x50, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x4c, 0x4f, 0x47, 0x4f,
0x4e, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20,
0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44,
@@ -20951,67 +20859,67 @@ void __start(Context &context) {
0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x00, 0x00, 0x00, 0x53,
0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20,
0x00, 0xff, 0xff, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x00, 0x22, 0x20, 0x00, 0x4e,
- 0x45, 0x54, 0x57, 0xec, 0xc4, 0x45, 0x4c, 0x56, 0x41, 0x90, 0xc6, 0x45, 0x4c, 0x56, 0x42, 0xa0,
- 0xc6, 0x45, 0x4c, 0x56, 0x43, 0x98, 0xc6, 0x45, 0x4c, 0x56, 0x45, 0x9c, 0xc6, 0x45, 0x4c, 0x56,
- 0x46, 0xa4, 0xc6, 0x43, 0x47, 0x41, 0x54, 0x34, 0xc7, 0x52, 0x45, 0x4d, 0x4f, 0xac, 0xc6, 0x42,
- 0x55, 0x54, 0x41, 0x40, 0xc7, 0x43, 0x42, 0x4f, 0x58, 0x48, 0xc7, 0x4c, 0x49, 0x54, 0x45, 0x60,
- 0xc6, 0x50, 0x4c, 0x41, 0x54, 0x44, 0xc7, 0x4c, 0x49, 0x46, 0x54, 0x80, 0xc6, 0x57, 0x49, 0x52,
- 0x45, 0x88, 0xc6, 0x48, 0x4e, 0x44, 0x4c, 0x8c, 0xc6, 0x48, 0x41, 0x43, 0x48, 0x84, 0xc6, 0x44,
- 0x4f, 0x4f, 0x52, 0xb8, 0xc6, 0x43, 0x53, 0x48, 0x52, 0x74, 0xc6, 0x47, 0x55, 0x4e, 0x41, 0x38,
- 0xc7, 0x43, 0x52, 0x41, 0x41, 0x68, 0xc6, 0x43, 0x52, 0x42, 0x42, 0x6c, 0xc6, 0x43, 0x52, 0x43,
- 0x43, 0x70, 0xc6, 0x53, 0x45, 0x41, 0x54, 0xfc, 0xc5, 0x4d, 0x45, 0x4e, 0x55, 0x9c, 0xc7, 0x43,
- 0x4f, 0x4f, 0x4b, 0xb0, 0xc6, 0x45, 0x4c, 0x43, 0x41, 0x50, 0xc6, 0x45, 0x44, 0x43, 0x41, 0x54,
- 0xc6, 0x44, 0x44, 0x43, 0x41, 0x58, 0xc6, 0x41, 0x4c, 0x54, 0x52, 0x08, 0xc6, 0x4c, 0x4f, 0x4b,
- 0x41, 0x40, 0xc6, 0x4c, 0x4f, 0x4b, 0x42, 0x44, 0xc6, 0x45, 0x4e, 0x54, 0x41, 0x14, 0xc6, 0x45,
- 0x4e, 0x54, 0x42, 0x28, 0xc6, 0x45, 0x4e, 0x54, 0x45, 0x2c, 0xc6, 0x45, 0x4e, 0x54, 0x43, 0x1c,
- 0xc6, 0x45, 0x4e, 0x54, 0x44, 0x30, 0xc6, 0x45, 0x4e, 0x54, 0x48, 0x34, 0xc6, 0x57, 0x57, 0x41,
- 0x54, 0xf4, 0xc5, 0x50, 0x4f, 0x4f, 0x4c, 0x5c, 0xc6, 0x57, 0x53, 0x48, 0x44, 0xf8, 0xc5, 0x47,
- 0x52, 0x41, 0x46, 0x48, 0xc6, 0x54, 0x52, 0x41, 0x50, 0x4c, 0xc6, 0x43, 0x44, 0x50, 0x45, 0x2c,
- 0xc7, 0x44, 0x4c, 0x4f, 0x4b, 0x0c, 0xc6, 0x48, 0x4f, 0x4c, 0x45, 0x04, 0xc6, 0x44, 0x52, 0x59,
- 0x52, 0x10, 0xc6, 0x48, 0x4f, 0x4c, 0x59, 0x00, 0xc6, 0x57, 0x41, 0x4c, 0x4c, 0x30, 0xc7, 0x42,
- 0x4f, 0x4f, 0x4b, 0x0c, 0xc8, 0x41, 0x58, 0x45, 0x44, 0xb4, 0xc6, 0x53, 0x48, 0x4c, 0x44, 0x3c,
- 0xc7, 0x42, 0x43, 0x4e, 0x59, 0xec, 0xc5, 0x4c, 0x49, 0x44, 0x43, 0xe8, 0xc5, 0x4c, 0x49, 0x44,
- 0x55, 0xe4, 0xc5, 0x4c, 0x49, 0x44, 0x4f, 0xf0, 0xc5, 0x50, 0x49, 0x50, 0x45, 0xac, 0xc5, 0x42,
- 0x41, 0x4c, 0x43, 0x24, 0xc6, 0x57, 0x49, 0x4e, 0x44, 0x20, 0xc6, 0x50, 0x41, 0x50, 0x52, 0xb8,
- 0xc7, 0x55, 0x57, 0x54, 0x41, 0xa4, 0xc5, 0x55, 0x57, 0x54, 0x42, 0xa4, 0xc5, 0x53, 0x54, 0x41,
- 0x54, 0xdc, 0xc7, 0x54, 0x4c, 0x49, 0x44, 0xa0, 0xc5, 0x53, 0x4c, 0x41, 0x42, 0xdc, 0xc5, 0x43,
- 0x41, 0x52, 0x54, 0xe0, 0xc5, 0x46, 0x43, 0x41, 0x52, 0xb0, 0xc5, 0x53, 0x4c, 0x42, 0x41, 0xc4,
- 0xc5, 0x53, 0x4c, 0x42, 0x42, 0xc8, 0xc5, 0x53, 0x4c, 0x42, 0x43, 0xd0, 0xc5, 0x53, 0x4c, 0x42,
- 0x44, 0xcc, 0xc5, 0x53, 0x4c, 0x42, 0x45, 0xd4, 0xc5, 0x53, 0x4c, 0x42, 0x46, 0xd8, 0xc5, 0x50,
- 0x4c, 0x49, 0x4e, 0xb4, 0xc5, 0x4c, 0x41, 0x44, 0x44, 0xbc, 0xc5, 0x4c, 0x41, 0x44, 0x42, 0xc0,
- 0xc5, 0x47, 0x55, 0x4d, 0x41, 0xb8, 0xc5, 0x53, 0x51, 0x45, 0x45, 0x8c, 0xc5, 0x54, 0x41, 0x50,
- 0x50, 0x90, 0xc5, 0x47, 0x55, 0x49, 0x54, 0x94, 0xc5, 0x43, 0x4f, 0x4e, 0x54, 0x98, 0xc5, 0x42,
- 0x45, 0x4c, 0x4c, 0x9c, 0xc5, 0x8c, 0x8c, 0x8c, 0x8c, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30,
- 0x00, 0x9d, 0x00, 0xb2, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x5c, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x51,
- 0x00, 0x5e, 0x00, 0x60, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x64, 0xc7, 0x9d,
- 0x00, 0xb2, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x68, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x5f, 0x00, 0x70,
- 0x00, 0x6c, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x70, 0xc7, 0x9d, 0x00, 0xb2,
- 0x00, 0x71, 0x00, 0x82, 0x00, 0x74, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x71, 0x00, 0x82, 0x00, 0x78,
- 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, 0x82, 0x00, 0x7c, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83,
- 0x00, 0x91, 0x00, 0x80, 0xc7, 0xb3, 0x00, 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x84, 0xc7, 0xdc,
- 0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, 0x54, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0xa4, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x54, 0xc7, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
- 0x00, 0xc8, 0x00, 0x54, 0xc7, 0x8f, 0x00, 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xbc, 0xc7, 0x00,
- 0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, 0xc4, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0xa4, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xe0, 0xc7, 0x40,
- 0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe4, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a,
- 0x00, 0xe8, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, 0x74, 0x00, 0xa8,
- 0x00, 0x6a, 0x00, 0x88, 0x00, 0xf0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4,
- 0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x20, 0xc8, 0xf3, 0x00, 0x03,
- 0x01, 0x83, 0x00, 0x93, 0x00, 0x1c, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x54,
- 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
- 0x00, 0x52, 0x00, 0x80, 0x00, 0x38, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84,
- 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x50, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00,
- 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c,
- 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x5c, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38,
- 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff,
- 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e,
- 0x00, 0x6f, 0x00, 0x54, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c, 0xc8, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
- 0x00, 0x80, 0x00, 0x4c, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x58, 0xc8, 0x3e,
- 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0xa4, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
+ 0x45, 0x54, 0x57, 0xe8, 0xc4, 0x45, 0x4c, 0x56, 0x41, 0x8c, 0xc6, 0x45, 0x4c, 0x56, 0x42, 0x9c,
+ 0xc6, 0x45, 0x4c, 0x56, 0x43, 0x94, 0xc6, 0x45, 0x4c, 0x56, 0x45, 0x98, 0xc6, 0x45, 0x4c, 0x56,
+ 0x46, 0xa0, 0xc6, 0x43, 0x47, 0x41, 0x54, 0x30, 0xc7, 0x52, 0x45, 0x4d, 0x4f, 0xa8, 0xc6, 0x42,
+ 0x55, 0x54, 0x41, 0x3c, 0xc7, 0x43, 0x42, 0x4f, 0x58, 0x44, 0xc7, 0x4c, 0x49, 0x54, 0x45, 0x5c,
+ 0xc6, 0x50, 0x4c, 0x41, 0x54, 0x40, 0xc7, 0x4c, 0x49, 0x46, 0x54, 0x7c, 0xc6, 0x57, 0x49, 0x52,
+ 0x45, 0x84, 0xc6, 0x48, 0x4e, 0x44, 0x4c, 0x88, 0xc6, 0x48, 0x41, 0x43, 0x48, 0x80, 0xc6, 0x44,
+ 0x4f, 0x4f, 0x52, 0xb4, 0xc6, 0x43, 0x53, 0x48, 0x52, 0x70, 0xc6, 0x47, 0x55, 0x4e, 0x41, 0x34,
+ 0xc7, 0x43, 0x52, 0x41, 0x41, 0x64, 0xc6, 0x43, 0x52, 0x42, 0x42, 0x68, 0xc6, 0x43, 0x52, 0x43,
+ 0x43, 0x6c, 0xc6, 0x53, 0x45, 0x41, 0x54, 0xf8, 0xc5, 0x4d, 0x45, 0x4e, 0x55, 0x98, 0xc7, 0x43,
+ 0x4f, 0x4f, 0x4b, 0xac, 0xc6, 0x45, 0x4c, 0x43, 0x41, 0x4c, 0xc6, 0x45, 0x44, 0x43, 0x41, 0x50,
+ 0xc6, 0x44, 0x44, 0x43, 0x41, 0x54, 0xc6, 0x41, 0x4c, 0x54, 0x52, 0x04, 0xc6, 0x4c, 0x4f, 0x4b,
+ 0x41, 0x3c, 0xc6, 0x4c, 0x4f, 0x4b, 0x42, 0x40, 0xc6, 0x45, 0x4e, 0x54, 0x41, 0x10, 0xc6, 0x45,
+ 0x4e, 0x54, 0x42, 0x24, 0xc6, 0x45, 0x4e, 0x54, 0x45, 0x28, 0xc6, 0x45, 0x4e, 0x54, 0x43, 0x18,
+ 0xc6, 0x45, 0x4e, 0x54, 0x44, 0x2c, 0xc6, 0x45, 0x4e, 0x54, 0x48, 0x30, 0xc6, 0x57, 0x57, 0x41,
+ 0x54, 0xf0, 0xc5, 0x50, 0x4f, 0x4f, 0x4c, 0x58, 0xc6, 0x57, 0x53, 0x48, 0x44, 0xf4, 0xc5, 0x47,
+ 0x52, 0x41, 0x46, 0x44, 0xc6, 0x54, 0x52, 0x41, 0x50, 0x48, 0xc6, 0x43, 0x44, 0x50, 0x45, 0x28,
+ 0xc7, 0x44, 0x4c, 0x4f, 0x4b, 0x08, 0xc6, 0x48, 0x4f, 0x4c, 0x45, 0x00, 0xc6, 0x44, 0x52, 0x59,
+ 0x52, 0x0c, 0xc6, 0x48, 0x4f, 0x4c, 0x59, 0xfc, 0xc5, 0x57, 0x41, 0x4c, 0x4c, 0x2c, 0xc7, 0x42,
+ 0x4f, 0x4f, 0x4b, 0x08, 0xc8, 0x41, 0x58, 0x45, 0x44, 0xb0, 0xc6, 0x53, 0x48, 0x4c, 0x44, 0x38,
+ 0xc7, 0x42, 0x43, 0x4e, 0x59, 0xe8, 0xc5, 0x4c, 0x49, 0x44, 0x43, 0xe4, 0xc5, 0x4c, 0x49, 0x44,
+ 0x55, 0xe0, 0xc5, 0x4c, 0x49, 0x44, 0x4f, 0xec, 0xc5, 0x50, 0x49, 0x50, 0x45, 0xa8, 0xc5, 0x42,
+ 0x41, 0x4c, 0x43, 0x20, 0xc6, 0x57, 0x49, 0x4e, 0x44, 0x1c, 0xc6, 0x50, 0x41, 0x50, 0x52, 0xb4,
+ 0xc7, 0x55, 0x57, 0x54, 0x41, 0xa0, 0xc5, 0x55, 0x57, 0x54, 0x42, 0xa0, 0xc5, 0x53, 0x54, 0x41,
+ 0x54, 0xd8, 0xc7, 0x54, 0x4c, 0x49, 0x44, 0x9c, 0xc5, 0x53, 0x4c, 0x41, 0x42, 0xd8, 0xc5, 0x43,
+ 0x41, 0x52, 0x54, 0xdc, 0xc5, 0x46, 0x43, 0x41, 0x52, 0xac, 0xc5, 0x53, 0x4c, 0x42, 0x41, 0xc0,
+ 0xc5, 0x53, 0x4c, 0x42, 0x42, 0xc4, 0xc5, 0x53, 0x4c, 0x42, 0x43, 0xcc, 0xc5, 0x53, 0x4c, 0x42,
+ 0x44, 0xc8, 0xc5, 0x53, 0x4c, 0x42, 0x45, 0xd0, 0xc5, 0x53, 0x4c, 0x42, 0x46, 0xd4, 0xc5, 0x50,
+ 0x4c, 0x49, 0x4e, 0xb0, 0xc5, 0x4c, 0x41, 0x44, 0x44, 0xb8, 0xc5, 0x4c, 0x41, 0x44, 0x42, 0xbc,
+ 0xc5, 0x47, 0x55, 0x4d, 0x41, 0xb4, 0xc5, 0x53, 0x51, 0x45, 0x45, 0x88, 0xc5, 0x54, 0x41, 0x50,
+ 0x50, 0x8c, 0xc5, 0x47, 0x55, 0x49, 0x54, 0x90, 0xc5, 0x43, 0x4f, 0x4e, 0x54, 0x94, 0xc5, 0x42,
+ 0x45, 0x4c, 0x4c, 0x98, 0xc5, 0x8c, 0x8c, 0x8c, 0x8c, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30,
+ 0x00, 0x9d, 0x00, 0xb2, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x58, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x51,
+ 0x00, 0x5e, 0x00, 0x5c, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x60, 0xc7, 0x9d,
+ 0x00, 0xb2, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x64, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x5f, 0x00, 0x70,
+ 0x00, 0x68, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x6c, 0xc7, 0x9d, 0x00, 0xb2,
+ 0x00, 0x71, 0x00, 0x82, 0x00, 0x70, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x71, 0x00, 0x82, 0x00, 0x74,
+ 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, 0x82, 0x00, 0x78, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83,
+ 0x00, 0x91, 0x00, 0x7c, 0xc7, 0xb3, 0x00, 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x80, 0xc7, 0xdc,
+ 0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
+ 0x00, 0xa0, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x50, 0xc7, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
+ 0x00, 0xc8, 0x00, 0x50, 0xc7, 0x8f, 0x00, 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xb8, 0xc7, 0x00,
+ 0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, 0xc0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
+ 0x00, 0xa0, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xdc, 0xc7, 0x40,
+ 0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe0, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a,
+ 0x00, 0xe4, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xe8, 0xc7, 0x74, 0x00, 0xa8,
+ 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0,
+ 0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03,
+ 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50,
+ 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
+ 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80,
+ 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00,
+ 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48,
+ 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x58, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38,
+ 0x00, 0x85, 0x00, 0x74, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff,
+ 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e,
+ 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
+ 0x00, 0x80, 0x00, 0x48, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x54, 0xc8, 0x3e,
+ 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x74, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
+ 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d,
@@ -21075,18 +20983,18 @@ void __start(Context &context) {
0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44,
0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f,
0x75, 0x72, 0x20, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d,
- 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc4, 0xc8, 0x50, 0x00,
- 0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00,
- 0xc8, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x53, 0x50,
+ 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00,
+ 0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00,
+ 0xc4, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50,
0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57,
- 0x00, 0x87, 0x83, 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00,
- 0x00, 0x32, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a,
- 0x00, 0x2c, 0xc8, 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04,
- 0x01, 0x64, 0x00, 0x7c, 0x00, 0xd0, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd8,
- 0xc9, 0xff, 0xff, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00, 0x00, 0x32,
- 0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x2c,
- 0xc8, 0x12, 0x01, 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64,
- 0x00, 0x7c, 0x00, 0xd0, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd8, 0xc9, 0xff,
+ 0x00, 0x87, 0x83, 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00,
+ 0x00, 0x32, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x7c, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a,
+ 0x00, 0x28, 0xc8, 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04,
+ 0x01, 0x64, 0x00, 0x7c, 0x00, 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4,
+ 0xc9, 0xff, 0xff, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00, 0x00, 0x32,
+ 0x00, 0x00, 0x00, 0xb4, 0x00, 0x7c, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x28,
+ 0xc8, 0x12, 0x01, 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64,
+ 0x00, 0x7c, 0x00, 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4, 0xc9, 0xff,
0xff, 0x00, 0x21, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff,
0x00, 0x0b, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01,
0x2c, 0x0a, 0x06, 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16,
@@ -21521,556 +21429,555 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc314: monprint(context); break;
case 0xc318: getnumber(context); break;
case 0xc31c: getnextword(context); break;
- case 0xc320: modifychar(context); break;
- case 0xc324: fillryan(context); break;
- case 0xc328: fillopen(context); break;
- case 0xc32c: findallryan(context); break;
- case 0xc330: findallopen(context); break;
- case 0xc334: obtoinv(context); break;
- case 0xc338: isitworn(context); break;
- case 0xc33c: makeworn(context); break;
- case 0xc340: examineob(context); break;
- case 0xc344: makemainscreen(context); break;
- case 0xc348: getbackfromob(context); break;
- case 0xc34c: incryanpage(context); break;
- case 0xc350: openinv(context); break;
- case 0xc354: showryanpage(context); break;
- case 0xc358: openob(context); break;
- case 0xc35c: obicons(context); break;
- case 0xc360: examicon(context); break;
- case 0xc364: obpicture(context); break;
- case 0xc368: describeob(context); break;
- case 0xc36c: additionaltext(context); break;
- case 0xc370: obsthatdothings(context); break;
- case 0xc374: getobtextstart(context); break;
- case 0xc378: searchforsame(context); break;
- case 0xc37c: findnextcolon(context); break;
- case 0xc380: inventory(context); break;
- case 0xc384: setpickup(context); break;
- case 0xc388: examinventory(context); break;
- case 0xc38c: reexfrominv(context); break;
- case 0xc390: reexfromopen(context); break;
- case 0xc394: swapwithinv(context); break;
- case 0xc398: swapwithopen(context); break;
- case 0xc39c: intoinv(context); break;
- case 0xc3a0: deletetaken(context); break;
- case 0xc3a4: outofinv(context); break;
- case 0xc3a8: getfreead(context); break;
- case 0xc3ac: getexad(context); break;
- case 0xc3b0: geteitherad(context); break;
- case 0xc3b4: getanyad(context); break;
- case 0xc3b8: getanyaddir(context); break;
- case 0xc3bc: getopenedsize(context); break;
- case 0xc3c0: getsetad(context); break;
- case 0xc3c4: findinvpos(context); break;
- case 0xc3c8: findopenpos(context); break;
- case 0xc3cc: dropobject(context); break;
- case 0xc3d0: droperror(context); break;
- case 0xc3d4: cantdrop(context); break;
- case 0xc3d8: wornerror(context); break;
- case 0xc3dc: removeobfrominv(context); break;
- case 0xc3e0: selectopenob(context); break;
- case 0xc3e4: useopened(context); break;
- case 0xc3e8: errormessage1(context); break;
- case 0xc3ec: errormessage2(context); break;
- case 0xc3f0: errormessage3(context); break;
- case 0xc3f4: checkobjectsize(context); break;
- case 0xc3f8: outofopen(context); break;
- case 0xc3fc: transfertoex(context); break;
- case 0xc400: pickupconts(context); break;
- case 0xc404: transfercontoex(context); break;
- case 0xc408: transfertext(context); break;
- case 0xc40c: getexpos(context); break;
- case 0xc410: purgealocation(context); break;
- case 0xc414: emergencypurge(context); break;
- case 0xc418: purgeanitem(context); break;
- case 0xc41c: deleteexobject(context); break;
- case 0xc420: deleteexframe(context); break;
- case 0xc424: deleteextext(context); break;
- case 0xc428: blockget(context); break;
- case 0xc42c: drawfloor(context); break;
- case 0xc430: calcmapad(context); break;
- case 0xc434: getdimension(context); break;
- case 0xc438: addalong(context); break;
- case 0xc43c: addlength(context); break;
- case 0xc440: drawflags(context); break;
- case 0xc444: eraseoldobs(context); break;
- case 0xc448: showallobs(context); break;
- case 0xc44c: makebackob(context); break;
- case 0xc450: showallfree(context); break;
- case 0xc454: showallex(context); break;
- case 0xc458: calcfrframe(context); break;
- case 0xc45c: finalframe(context); break;
- case 0xc460: adjustlen(context); break;
- case 0xc464: getmapad(context); break;
- case 0xc468: getxad(context); break;
- case 0xc46c: getyad(context); break;
- case 0xc470: autolook(context); break;
- case 0xc474: look(context); break;
- case 0xc478: dolook(context); break;
- case 0xc47c: redrawmainscrn(context); break;
- case 0xc480: getback1(context); break;
- case 0xc484: talk(context); break;
- case 0xc488: convicons(context); break;
- case 0xc48c: getpersframe(context); break;
- case 0xc490: starttalk(context); break;
- case 0xc494: getpersontext(context); break;
- case 0xc498: moretalk(context); break;
- case 0xc49c: dosometalk(context); break;
- case 0xc4a0: hangonpq(context); break;
- case 0xc4a4: redes(context); break;
- case 0xc4a8: newplace(context); break;
- case 0xc4ac: selectlocation(context); break;
- case 0xc4b0: showcity(context); break;
- case 0xc4b4: lookatplace(context); break;
- case 0xc4b8: getundercentre(context); break;
- case 0xc4bc: putundercentre(context); break;
- case 0xc4c0: locationpic(context); break;
- case 0xc4c4: getdestinfo(context); break;
- case 0xc4c8: showarrows(context); break;
- case 0xc4cc: nextdest(context); break;
- case 0xc4d0: lastdest(context); break;
- case 0xc4d4: destselect(context); break;
- case 0xc4d8: getlocation(context); break;
- case 0xc4dc: setlocation(context); break;
- case 0xc4e0: resetlocation(context); break;
- case 0xc4e4: readdesticon(context); break;
- case 0xc4e8: readcitypic(context); break;
- case 0xc4ec: usemon(context); break;
- case 0xc4f0: printoutermon(context); break;
- case 0xc4f4: loadpersonal(context); break;
- case 0xc4f8: loadnews(context); break;
- case 0xc4fc: loadcart(context); break;
- case 0xc500: lookininterface(context); break;
- case 0xc504: turnonpower(context); break;
- case 0xc508: randomaccess(context); break;
- case 0xc50c: powerlighton(context); break;
- case 0xc510: powerlightoff(context); break;
- case 0xc514: accesslighton(context); break;
- case 0xc518: accesslightoff(context); break;
- case 0xc51c: locklighton(context); break;
- case 0xc520: locklightoff(context); break;
- case 0xc524: input(context); break;
- case 0xc528: makecaps(context); break;
- case 0xc52c: delchar(context); break;
- case 0xc530: execcommand(context); break;
- case 0xc534: neterror(context); break;
- case 0xc538: dircom(context); break;
- case 0xc53c: searchforfiles(context); break;
- case 0xc540: signon(context); break;
- case 0xc544: showkeys(context); break;
- case 0xc548: read(context); break;
- case 0xc54c: dirfile(context); break;
- case 0xc550: getkeyandlogo(context); break;
- case 0xc554: searchforstring(context); break;
- case 0xc558: parser(context); break;
- case 0xc55c: scrollmonitor(context); break;
- case 0xc560: lockmon(context); break;
- case 0xc564: monitorlogo(context); break;
- case 0xc568: printlogo(context); break;
- case 0xc56c: showcurrentfile(context); break;
- case 0xc570: monmessage(context); break;
- case 0xc574: processtrigger(context); break;
- case 0xc578: triggermessage(context); break;
- case 0xc57c: printcurs(context); break;
- case 0xc580: delcurs(context); break;
- case 0xc584: useobject(context); break;
- case 0xc588: useroutine(context); break;
- case 0xc58c: wheelsound(context); break;
- case 0xc590: runtap(context); break;
- case 0xc594: playguitar(context); break;
- case 0xc598: hotelcontrol(context); break;
- case 0xc59c: hotelbell(context); break;
- case 0xc5a0: opentomb(context); break;
- case 0xc5a4: usetrainer(context); break;
- case 0xc5a8: nothelderror(context); break;
- case 0xc5ac: usepipe(context); break;
- case 0xc5b0: usefullcart(context); break;
- case 0xc5b4: useplinth(context); break;
- case 0xc5b8: chewy(context); break;
- case 0xc5bc: useladder(context); break;
- case 0xc5c0: useladderb(context); break;
- case 0xc5c4: slabdoora(context); break;
- case 0xc5c8: slabdoorb(context); break;
- case 0xc5cc: slabdoord(context); break;
- case 0xc5d0: slabdoorc(context); break;
- case 0xc5d4: slabdoore(context); break;
- case 0xc5d8: slabdoorf(context); break;
- case 0xc5dc: useslab(context); break;
- case 0xc5e0: usecart(context); break;
- case 0xc5e4: useclearbox(context); break;
- case 0xc5e8: usecoveredbox(context); break;
- case 0xc5ec: userailing(context); break;
- case 0xc5f0: useopenbox(context); break;
- case 0xc5f4: wearwatch(context); break;
- case 0xc5f8: wearshades(context); break;
- case 0xc5fc: sitdowninbar(context); break;
- case 0xc600: usechurchhole(context); break;
- case 0xc604: usehole(context); break;
- case 0xc608: usealtar(context); break;
- case 0xc60c: opentvdoor(context); break;
- case 0xc610: usedryer(context); break;
- case 0xc614: openlouis(context); break;
- case 0xc618: nextcolon(context); break;
- case 0xc61c: openyourneighbour(context); break;
- case 0xc620: usewindow(context); break;
- case 0xc624: usebalcony(context); break;
- case 0xc628: openryan(context); break;
- case 0xc62c: openpoolboss(context); break;
- case 0xc630: openeden(context); break;
- case 0xc634: opensarters(context); break;
- case 0xc638: isitright(context); break;
- case 0xc63c: drawitall(context); break;
- case 0xc640: openhoteldoor(context); break;
- case 0xc644: openhoteldoor2(context); break;
- case 0xc648: grafittidoor(context); break;
- case 0xc64c: trapdoor(context); break;
- case 0xc650: callhotellift(context); break;
- case 0xc654: calledenslift(context); break;
- case 0xc658: calledensdlift(context); break;
- case 0xc65c: usepoolreader(context); break;
- case 0xc660: uselighter(context); break;
- case 0xc664: showseconduse(context); break;
- case 0xc668: usecardreader1(context); break;
- case 0xc66c: usecardreader2(context); break;
- case 0xc670: usecardreader3(context); break;
- case 0xc674: usecashcard(context); break;
- case 0xc678: lookatcard(context); break;
- case 0xc67c: moneypoke(context); break;
- case 0xc680: usecontrol(context); break;
- case 0xc684: usehatch(context); break;
- case 0xc688: usewire(context); break;
- case 0xc68c: usehandle(context); break;
- case 0xc690: useelevator1(context); break;
- case 0xc694: showfirstuse(context); break;
- case 0xc698: useelevator3(context); break;
- case 0xc69c: useelevator4(context); break;
- case 0xc6a0: useelevator2(context); break;
- case 0xc6a4: useelevator5(context); break;
- case 0xc6a8: usekey(context); break;
- case 0xc6ac: usestereo(context); break;
- case 0xc6b0: usecooker(context); break;
- case 0xc6b4: useaxe(context); break;
- case 0xc6b8: useelvdoor(context); break;
- case 0xc6bc: withwhat(context); break;
- case 0xc6c0: selectob(context); break;
- case 0xc6c4: compare(context); break;
- case 0xc6c8: findsetobject(context); break;
- case 0xc6cc: findexobject(context); break;
- case 0xc6d0: isryanholding(context); break;
- case 0xc6d4: checkinside(context); break;
- case 0xc6d8: usetext(context); break;
- case 0xc6dc: putbackobstuff(context); break;
- case 0xc6e0: showpuztext(context); break;
- case 0xc6e4: findpuztext(context); break;
- case 0xc6e8: placesetobject(context); break;
- case 0xc6ec: removesetobject(context); break;
- case 0xc6f0: issetobonmap(context); break;
- case 0xc6f4: placefreeobject(context); break;
- case 0xc6f8: removefreeobject(context); break;
- case 0xc6fc: findormake(context); break;
- case 0xc700: switchryanon(context); break;
- case 0xc704: switchryanoff(context); break;
- case 0xc708: setallchanges(context); break;
- case 0xc70c: dochange(context); break;
- case 0xc710: autoappear(context); break;
- case 0xc714: getundertimed(context); break;
- case 0xc718: putundertimed(context); break;
- case 0xc71c: dumptimedtext(context); break;
- case 0xc720: setuptimeduse(context); break;
- case 0xc724: setuptimedtemp(context); break;
- case 0xc728: usetimedtext(context); break;
- case 0xc72c: edenscdplayer(context); break;
- case 0xc730: usewall(context); break;
- case 0xc734: usechurchgate(context); break;
- case 0xc738: usegun(context); break;
- case 0xc73c: useshield(context); break;
- case 0xc740: usebuttona(context); break;
- case 0xc744: useplate(context); break;
- case 0xc748: usewinch(context); break;
- case 0xc74c: entercode(context); break;
- case 0xc750: loadkeypad(context); break;
- case 0xc754: quitkey(context); break;
- case 0xc758: addtopresslist(context); break;
- case 0xc75c: buttonone(context); break;
- case 0xc760: buttontwo(context); break;
- case 0xc764: buttonthree(context); break;
- case 0xc768: buttonfour(context); break;
- case 0xc76c: buttonfive(context); break;
- case 0xc770: buttonsix(context); break;
- case 0xc774: buttonseven(context); break;
- case 0xc778: buttoneight(context); break;
- case 0xc77c: buttonnine(context); break;
- case 0xc780: buttonnought(context); break;
- case 0xc784: buttonenter(context); break;
- case 0xc788: buttonpress(context); break;
- case 0xc78c: showouterpad(context); break;
- case 0xc790: showkeypad(context); break;
- case 0xc794: singlekey(context); break;
- case 0xc798: dumpkeypad(context); break;
- case 0xc79c: usemenu(context); break;
- case 0xc7a0: dumpmenu(context); break;
- case 0xc7a4: getundermenu(context); break;
- case 0xc7a8: putundermenu(context); break;
- case 0xc7ac: showoutermenu(context); break;
- case 0xc7b0: showmenu(context); break;
- case 0xc7b4: loadmenu(context); break;
- case 0xc7b8: viewfolder(context); break;
- case 0xc7bc: nextfolder(context); break;
- case 0xc7c0: folderhints(context); break;
- case 0xc7c4: lastfolder(context); break;
- case 0xc7c8: loadfolder(context); break;
- case 0xc7cc: showfolder(context); break;
- case 0xc7d0: folderexit(context); break;
- case 0xc7d4: showleftpage(context); break;
- case 0xc7d8: showrightpage(context); break;
- case 0xc7dc: entersymbol(context); break;
- case 0xc7e0: quitsymbol(context); break;
- case 0xc7e4: settopleft(context); break;
- case 0xc7e8: settopright(context); break;
- case 0xc7ec: setbotleft(context); break;
- case 0xc7f0: setbotright(context); break;
- case 0xc7f4: dumpsymbol(context); break;
- case 0xc7f8: showsymbol(context); break;
- case 0xc7fc: nextsymbol(context); break;
- case 0xc800: updatesymboltop(context); break;
- case 0xc804: updatesymbolbot(context); break;
- case 0xc808: dumpsymbox(context); break;
- case 0xc80c: usediary(context); break;
- case 0xc810: showdiary(context); break;
- case 0xc814: showdiarykeys(context); break;
- case 0xc818: dumpdiarykeys(context); break;
- case 0xc81c: diarykeyp(context); break;
- case 0xc820: diarykeyn(context); break;
- case 0xc824: showdiarypage(context); break;
- case 0xc828: findtext1(context); break;
- case 0xc82c: zoomonoff(context); break;
- case 0xc830: saveload(context); break;
- case 0xc834: dosaveload(context); break;
- case 0xc838: getbackfromops(context); break;
- case 0xc83c: showmainops(context); break;
- case 0xc840: showdiscops(context); break;
- case 0xc844: loadsavebox(context); break;
- case 0xc848: loadgame(context); break;
- case 0xc84c: getbacktoops(context); break;
- case 0xc850: discops(context); break;
- case 0xc854: savegame(context); break;
- case 0xc858: actualsave(context); break;
- case 0xc85c: actualload(context); break;
- case 0xc860: selectslot2(context); break;
- case 0xc864: checkinput(context); break;
- case 0xc868: getnamepos(context); break;
- case 0xc86c: showopbox(context); break;
- case 0xc870: showloadops(context); break;
- case 0xc874: showsaveops(context); break;
- case 0xc878: selectslot(context); break;
- case 0xc87c: showslots(context); break;
- case 0xc880: shownames(context); break;
- case 0xc884: dosreturn(context); break;
- case 0xc888: error(context); break;
- case 0xc88c: namestoold(context); break;
- case 0xc890: oldtonames(context); break;
- case 0xc894: savefilewrite(context); break;
- case 0xc898: savefileread(context); break;
- case 0xc89c: saveposition(context); break;
- case 0xc8a0: loadposition(context); break;
- case 0xc8a4: loadseg(context); break;
- case 0xc8a8: makeheader(context); break;
- case 0xc8ac: storeit(context); break;
- case 0xc8b0: saveseg(context); break;
- case 0xc8b4: findlen(context); break;
- case 0xc8b8: scanfornames(context); break;
- case 0xc8bc: decide(context); break;
- case 0xc8c0: showdecisions(context); break;
- case 0xc8c4: newgame(context); break;
- case 0xc8c8: loadold(context); break;
- case 0xc8cc: loadspeech(context); break;
- case 0xc8d0: createname(context); break;
- case 0xc8d4: loadsample(context); break;
- case 0xc8d8: loadsecondsample(context); break;
- case 0xc8dc: soundstartup(context); break;
- case 0xc8e0: trysoundalloc(context); break;
- case 0xc8e4: setsoundoff(context); break;
- case 0xc8e8: checksoundint(context); break;
- case 0xc8ec: enablesoundint(context); break;
- case 0xc8f0: disablesoundint(context); break;
- case 0xc8f4: interupttest(context); break;
- case 0xc8f8: soundend(context); break;
- case 0xc8fc: out22c(context); break;
- case 0xc900: playchannel0(context); break;
- case 0xc904: playchannel1(context); break;
- case 0xc908: makenextblock(context); break;
- case 0xc90c: volumeadjust(context); break;
- case 0xc910: loopchannel0(context); break;
- case 0xc914: cancelch0(context); break;
- case 0xc918: cancelch1(context); break;
- case 0xc91c: channel0only(context); break;
- case 0xc920: channel1only(context); break;
- case 0xc924: channel0tran(context); break;
- case 0xc928: bothchannels(context); break;
- case 0xc92c: saveems(context); break;
- case 0xc930: restoreems(context); break;
- case 0xc934: domix(context); break;
- case 0xc938: dmaend(context); break;
- case 0xc93c: startdmablock(context); break;
- case 0xc940: setuppit(context); break;
- case 0xc944: getridofpit(context); break;
- case 0xc948: pitinterupt(context); break;
- case 0xc94c: dreamweb(context); break;
- case 0xc950: entrytexts(context); break;
- case 0xc954: entryanims(context); break;
- case 0xc958: initialinv(context); break;
- case 0xc95c: pickupob(context); break;
- case 0xc960: setupemm(context); break;
- case 0xc964: removeemm(context); break;
- case 0xc968: checkforemm(context); break;
- case 0xc96c: checkbasemem(context); break;
- case 0xc970: allocatebuffers(context); break;
- case 0xc974: clearbuffers(context); break;
- case 0xc978: clearchanges(context); break;
- case 0xc97c: clearbeforeload(context); break;
- case 0xc980: clearreels(context); break;
- case 0xc984: clearrest(context); break;
- case 0xc988: deallocatemem(context); break;
- case 0xc98c: allocatemem(context); break;
- case 0xc994: parseblaster(context); break;
- case 0xc998: startup(context); break;
- case 0xc99c: startup1(context); break;
- case 0xc9a0: screenupdate(context); break;
- case 0xc9a4: watchreel(context); break;
- case 0xc9a8: checkforshake(context); break;
- case 0xc9ac: watchcount(context); break;
- case 0xc9b0: showtime(context); break;
- case 0xc9b4: dumpwatch(context); break;
- case 0xc9b8: showbyte(context); break;
- case 0xc9bc: onedigit(context); break;
- case 0xc9c0: twodigitnum(context); break;
- case 0xc9c4: showword(context); break;
- case 0xc9c8: convnum(context); break;
- case 0xc9cc: mainscreen(context); break;
- case 0xc9d0: madmanrun(context); break;
- case 0xc9d4: checkcoords(context); break;
- case 0xc9d8: identifyob(context); break;
- case 0xc9dc: checkifperson(context); break;
- case 0xc9e0: checkifset(context); break;
- case 0xc9e4: checkifex(context); break;
- case 0xc9e8: checkiffree(context); break;
- case 0xc9ec: isitdescribed(context); break;
- case 0xc9f0: findpathofpoint(context); break;
- case 0xc9f4: findfirstpath(context); break;
- case 0xc9f8: turnpathon(context); break;
- case 0xc9fc: turnpathoff(context); break;
- case 0xca00: turnanypathon(context); break;
- case 0xca04: turnanypathoff(context); break;
- case 0xca08: checkifpathison(context); break;
- case 0xca0c: afternewroom(context); break;
- case 0xca10: atmospheres(context); break;
- case 0xca14: walkintoroom(context); break;
- case 0xca18: afterintroroom(context); break;
- case 0xca1c: obname(context); break;
- case 0xca20: finishedwalking(context); break;
- case 0xca24: examineobtext(context); break;
- case 0xca28: commandwithob(context); break;
- case 0xca2c: commandonly(context); break;
- case 0xca30: printmessage(context); break;
- case 0xca34: printmessage2(context); break;
- case 0xca38: blocknametext(context); break;
- case 0xca3c: personnametext(context); break;
- case 0xca40: walktotext(context); break;
- case 0xca44: getflagunderp(context); break;
- case 0xca48: setwalk(context); break;
- case 0xca4c: autosetwalk(context); break;
- case 0xca50: checkdest(context); break;
- case 0xca54: bresenhams(context); break;
- case 0xca58: workoutframes(context); break;
- case 0xca5c: getroomspaths(context); break;
- case 0xca60: copyname(context); break;
- case 0xca64: findobname(context); break;
- case 0xca68: showicon(context); break;
- case 0xca6c: middlepanel(context); break;
- case 0xca70: showman(context); break;
- case 0xca74: showpanel(context); break;
- case 0xca78: roomname(context); break;
- case 0xca7c: usecharset1(context); break;
- case 0xca80: usetempcharset(context); break;
- case 0xca84: showexit(context); break;
- case 0xca88: panelicons1(context); break;
- case 0xca8c: showwatch(context); break;
- case 0xca90: gettime(context); break;
- case 0xca94: zoomicon(context); break;
- case 0xca98: showblink(context); break;
- case 0xca9c: dumpblink(context); break;
- case 0xcaa0: worktoscreenm(context); break;
- case 0xcaa4: blank(context); break;
- case 0xcaa8: allpointer(context); break;
- case 0xcaac: hangonp(context); break;
- case 0xcab0: hangonw(context); break;
- case 0xcab4: hangoncurs(context); break;
- case 0xcab8: getunderzoom(context); break;
- case 0xcabc: dumpzoom(context); break;
- case 0xcac0: putunderzoom(context); break;
- case 0xcac4: crosshair(context); break;
- case 0xcac8: showpointer(context); break;
- case 0xcacc: delpointer(context); break;
- case 0xcad0: dumppointer(context); break;
- case 0xcad4: undertextline(context); break;
- case 0xcad8: deltextline(context); break;
- case 0xcadc: dumptextline(context); break;
- case 0xcae0: animpointer(context); break;
- case 0xcae4: setmouse(context); break;
- case 0xcae8: readmouse(context); break;
- case 0xcaec: mousecall(context); break;
- case 0xcaf0: readmouse1(context); break;
- case 0xcaf4: readmouse2(context); break;
- case 0xcaf8: readmouse3(context); break;
- case 0xcafc: readmouse4(context); break;
- case 0xcb00: readkey(context); break;
- case 0xcb04: convertkey(context); break;
- case 0xcb08: randomnum1(context); break;
- case 0xcb0c: randomnum2(context); break;
- case 0xcb14: hangon(context); break;
- case 0xcb18: loadtraveltext(context); break;
- case 0xcb1c: loadintotemp(context); break;
- case 0xcb20: loadintotemp2(context); break;
- case 0xcb24: loadintotemp3(context); break;
- case 0xcb28: loadtempcharset(context); break;
- case 0xcb2c: standardload(context); break;
- case 0xcb30: loadtemptext(context); break;
- case 0xcb34: loadroom(context); break;
- case 0xcb38: loadroomssample(context); break;
- case 0xcb3c: getridofreels(context); break;
- case 0xcb40: getridofall(context); break;
- case 0xcb44: restorereels(context); break;
- case 0xcb48: restoreall(context); break;
- case 0xcb4c: sortoutmap(context); break;
- case 0xcb50: startloading(context); break;
- case 0xcb54: disablepath(context); break;
- case 0xcb58: findxyfrompath(context); break;
- case 0xcb5c: findroominloc(context); break;
- case 0xcb60: getroomdata(context); break;
- case 0xcb64: readheader(context); break;
- case 0xcb68: dontloadseg(context); break;
- case 0xcb6c: allocateload(context); break;
- case 0xcb70: fillspace(context); break;
- case 0xcb74: getridoftemp(context); break;
- case 0xcb78: getridoftemptext(context); break;
- case 0xcb7c: getridoftemp2(context); break;
- case 0xcb80: getridoftemp3(context); break;
- case 0xcb84: getridoftempcharset(context); break;
- case 0xcb88: getridoftempsp(context); break;
- case 0xcb8c: readsetdata(context); break;
- case 0xcb90: createfile(context); break;
- case 0xcb94: openfile(context); break;
- case 0xcb98: openfilenocheck(context); break;
- case 0xcb9c: openforsave(context); break;
- case 0xcba0: closefile(context); break;
- case 0xcba4: readfromfile(context); break;
- case 0xcba8: setkeyboardint(context); break;
- case 0xcbac: resetkeyboard(context); break;
- case 0xcbb0: keyboardread(context); break;
- case 0xcbb4: walkandexamine(context); break;
- case 0xcbb8: doload(context); break;
- case 0xcbbc: generalerror(context); break;
+ case 0xc320: fillryan(context); break;
+ case 0xc324: fillopen(context); break;
+ case 0xc328: findallryan(context); break;
+ case 0xc32c: findallopen(context); break;
+ case 0xc330: obtoinv(context); break;
+ case 0xc334: isitworn(context); break;
+ case 0xc338: makeworn(context); break;
+ case 0xc33c: examineob(context); break;
+ case 0xc340: makemainscreen(context); break;
+ case 0xc344: getbackfromob(context); break;
+ case 0xc348: incryanpage(context); break;
+ case 0xc34c: openinv(context); break;
+ case 0xc350: showryanpage(context); break;
+ case 0xc354: openob(context); break;
+ case 0xc358: obicons(context); break;
+ case 0xc35c: examicon(context); break;
+ case 0xc360: obpicture(context); break;
+ case 0xc364: describeob(context); break;
+ case 0xc368: additionaltext(context); break;
+ case 0xc36c: obsthatdothings(context); break;
+ case 0xc370: getobtextstart(context); break;
+ case 0xc374: searchforsame(context); break;
+ case 0xc378: findnextcolon(context); break;
+ case 0xc37c: inventory(context); break;
+ case 0xc380: setpickup(context); break;
+ case 0xc384: examinventory(context); break;
+ case 0xc388: reexfrominv(context); break;
+ case 0xc38c: reexfromopen(context); break;
+ case 0xc390: swapwithinv(context); break;
+ case 0xc394: swapwithopen(context); break;
+ case 0xc398: intoinv(context); break;
+ case 0xc39c: deletetaken(context); break;
+ case 0xc3a0: outofinv(context); break;
+ case 0xc3a4: getfreead(context); break;
+ case 0xc3a8: getexad(context); break;
+ case 0xc3ac: geteitherad(context); break;
+ case 0xc3b0: getanyad(context); break;
+ case 0xc3b4: getanyaddir(context); break;
+ case 0xc3b8: getopenedsize(context); break;
+ case 0xc3bc: getsetad(context); break;
+ case 0xc3c0: findinvpos(context); break;
+ case 0xc3c4: findopenpos(context); break;
+ case 0xc3c8: dropobject(context); break;
+ case 0xc3cc: droperror(context); break;
+ case 0xc3d0: cantdrop(context); break;
+ case 0xc3d4: wornerror(context); break;
+ case 0xc3d8: removeobfrominv(context); break;
+ case 0xc3dc: selectopenob(context); break;
+ case 0xc3e0: useopened(context); break;
+ case 0xc3e4: errormessage1(context); break;
+ case 0xc3e8: errormessage2(context); break;
+ case 0xc3ec: errormessage3(context); break;
+ case 0xc3f0: checkobjectsize(context); break;
+ case 0xc3f4: outofopen(context); break;
+ case 0xc3f8: transfertoex(context); break;
+ case 0xc3fc: pickupconts(context); break;
+ case 0xc400: transfercontoex(context); break;
+ case 0xc404: transfertext(context); break;
+ case 0xc408: getexpos(context); break;
+ case 0xc40c: purgealocation(context); break;
+ case 0xc410: emergencypurge(context); break;
+ case 0xc414: purgeanitem(context); break;
+ case 0xc418: deleteexobject(context); break;
+ case 0xc41c: deleteexframe(context); break;
+ case 0xc420: deleteextext(context); break;
+ case 0xc424: blockget(context); break;
+ case 0xc428: drawfloor(context); break;
+ case 0xc42c: calcmapad(context); break;
+ case 0xc430: getdimension(context); break;
+ case 0xc434: addalong(context); break;
+ case 0xc438: addlength(context); break;
+ case 0xc43c: drawflags(context); break;
+ case 0xc440: eraseoldobs(context); break;
+ case 0xc444: showallobs(context); break;
+ case 0xc448: makebackob(context); break;
+ case 0xc44c: showallfree(context); break;
+ case 0xc450: showallex(context); break;
+ case 0xc454: calcfrframe(context); break;
+ case 0xc458: finalframe(context); break;
+ case 0xc45c: adjustlen(context); break;
+ case 0xc460: getmapad(context); break;
+ case 0xc464: getxad(context); break;
+ case 0xc468: getyad(context); break;
+ case 0xc46c: autolook(context); break;
+ case 0xc470: look(context); break;
+ case 0xc474: dolook(context); break;
+ case 0xc478: redrawmainscrn(context); break;
+ case 0xc47c: getback1(context); break;
+ case 0xc480: talk(context); break;
+ case 0xc484: convicons(context); break;
+ case 0xc488: getpersframe(context); break;
+ case 0xc48c: starttalk(context); break;
+ case 0xc490: getpersontext(context); break;
+ case 0xc494: moretalk(context); break;
+ case 0xc498: dosometalk(context); break;
+ case 0xc49c: hangonpq(context); break;
+ case 0xc4a0: redes(context); break;
+ case 0xc4a4: newplace(context); break;
+ case 0xc4a8: selectlocation(context); break;
+ case 0xc4ac: showcity(context); break;
+ case 0xc4b0: lookatplace(context); break;
+ case 0xc4b4: getundercentre(context); break;
+ case 0xc4b8: putundercentre(context); break;
+ case 0xc4bc: locationpic(context); break;
+ case 0xc4c0: getdestinfo(context); break;
+ case 0xc4c4: showarrows(context); break;
+ case 0xc4c8: nextdest(context); break;
+ case 0xc4cc: lastdest(context); break;
+ case 0xc4d0: destselect(context); break;
+ case 0xc4d4: getlocation(context); break;
+ case 0xc4d8: setlocation(context); break;
+ case 0xc4dc: resetlocation(context); break;
+ case 0xc4e0: readdesticon(context); break;
+ case 0xc4e4: readcitypic(context); break;
+ case 0xc4e8: usemon(context); break;
+ case 0xc4ec: printoutermon(context); break;
+ case 0xc4f0: loadpersonal(context); break;
+ case 0xc4f4: loadnews(context); break;
+ case 0xc4f8: loadcart(context); break;
+ case 0xc4fc: lookininterface(context); break;
+ case 0xc500: turnonpower(context); break;
+ case 0xc504: randomaccess(context); break;
+ case 0xc508: powerlighton(context); break;
+ case 0xc50c: powerlightoff(context); break;
+ case 0xc510: accesslighton(context); break;
+ case 0xc514: accesslightoff(context); break;
+ case 0xc518: locklighton(context); break;
+ case 0xc51c: locklightoff(context); break;
+ case 0xc520: input(context); break;
+ case 0xc524: makecaps(context); break;
+ case 0xc528: delchar(context); break;
+ case 0xc52c: execcommand(context); break;
+ case 0xc530: neterror(context); break;
+ case 0xc534: dircom(context); break;
+ case 0xc538: searchforfiles(context); break;
+ case 0xc53c: signon(context); break;
+ case 0xc540: showkeys(context); break;
+ case 0xc544: read(context); break;
+ case 0xc548: dirfile(context); break;
+ case 0xc54c: getkeyandlogo(context); break;
+ case 0xc550: searchforstring(context); break;
+ case 0xc554: parser(context); break;
+ case 0xc558: scrollmonitor(context); break;
+ case 0xc55c: lockmon(context); break;
+ case 0xc560: monitorlogo(context); break;
+ case 0xc564: printlogo(context); break;
+ case 0xc568: showcurrentfile(context); break;
+ case 0xc56c: monmessage(context); break;
+ case 0xc570: processtrigger(context); break;
+ case 0xc574: triggermessage(context); break;
+ case 0xc578: printcurs(context); break;
+ case 0xc57c: delcurs(context); break;
+ case 0xc580: useobject(context); break;
+ case 0xc584: useroutine(context); break;
+ case 0xc588: wheelsound(context); break;
+ case 0xc58c: runtap(context); break;
+ case 0xc590: playguitar(context); break;
+ case 0xc594: hotelcontrol(context); break;
+ case 0xc598: hotelbell(context); break;
+ case 0xc59c: opentomb(context); break;
+ case 0xc5a0: usetrainer(context); break;
+ case 0xc5a4: nothelderror(context); break;
+ case 0xc5a8: usepipe(context); break;
+ case 0xc5ac: usefullcart(context); break;
+ case 0xc5b0: useplinth(context); break;
+ case 0xc5b4: chewy(context); break;
+ case 0xc5b8: useladder(context); break;
+ case 0xc5bc: useladderb(context); break;
+ case 0xc5c0: slabdoora(context); break;
+ case 0xc5c4: slabdoorb(context); break;
+ case 0xc5c8: slabdoord(context); break;
+ case 0xc5cc: slabdoorc(context); break;
+ case 0xc5d0: slabdoore(context); break;
+ case 0xc5d4: slabdoorf(context); break;
+ case 0xc5d8: useslab(context); break;
+ case 0xc5dc: usecart(context); break;
+ case 0xc5e0: useclearbox(context); break;
+ case 0xc5e4: usecoveredbox(context); break;
+ case 0xc5e8: userailing(context); break;
+ case 0xc5ec: useopenbox(context); break;
+ case 0xc5f0: wearwatch(context); break;
+ case 0xc5f4: wearshades(context); break;
+ case 0xc5f8: sitdowninbar(context); break;
+ case 0xc5fc: usechurchhole(context); break;
+ case 0xc600: usehole(context); break;
+ case 0xc604: usealtar(context); break;
+ case 0xc608: opentvdoor(context); break;
+ case 0xc60c: usedryer(context); break;
+ case 0xc610: openlouis(context); break;
+ case 0xc614: nextcolon(context); break;
+ case 0xc618: openyourneighbour(context); break;
+ case 0xc61c: usewindow(context); break;
+ case 0xc620: usebalcony(context); break;
+ case 0xc624: openryan(context); break;
+ case 0xc628: openpoolboss(context); break;
+ case 0xc62c: openeden(context); break;
+ case 0xc630: opensarters(context); break;
+ case 0xc634: isitright(context); break;
+ case 0xc638: drawitall(context); break;
+ case 0xc63c: openhoteldoor(context); break;
+ case 0xc640: openhoteldoor2(context); break;
+ case 0xc644: grafittidoor(context); break;
+ case 0xc648: trapdoor(context); break;
+ case 0xc64c: callhotellift(context); break;
+ case 0xc650: calledenslift(context); break;
+ case 0xc654: calledensdlift(context); break;
+ case 0xc658: usepoolreader(context); break;
+ case 0xc65c: uselighter(context); break;
+ case 0xc660: showseconduse(context); break;
+ case 0xc664: usecardreader1(context); break;
+ case 0xc668: usecardreader2(context); break;
+ case 0xc66c: usecardreader3(context); break;
+ case 0xc670: usecashcard(context); break;
+ case 0xc674: lookatcard(context); break;
+ case 0xc678: moneypoke(context); break;
+ case 0xc67c: usecontrol(context); break;
+ case 0xc680: usehatch(context); break;
+ case 0xc684: usewire(context); break;
+ case 0xc688: usehandle(context); break;
+ case 0xc68c: useelevator1(context); break;
+ case 0xc690: showfirstuse(context); break;
+ case 0xc694: useelevator3(context); break;
+ case 0xc698: useelevator4(context); break;
+ case 0xc69c: useelevator2(context); break;
+ case 0xc6a0: useelevator5(context); break;
+ case 0xc6a4: usekey(context); break;
+ case 0xc6a8: usestereo(context); break;
+ case 0xc6ac: usecooker(context); break;
+ case 0xc6b0: useaxe(context); break;
+ case 0xc6b4: useelvdoor(context); break;
+ case 0xc6b8: withwhat(context); break;
+ case 0xc6bc: selectob(context); break;
+ case 0xc6c0: compare(context); break;
+ case 0xc6c4: findsetobject(context); break;
+ case 0xc6c8: findexobject(context); break;
+ case 0xc6cc: isryanholding(context); break;
+ case 0xc6d0: checkinside(context); break;
+ case 0xc6d4: usetext(context); break;
+ case 0xc6d8: putbackobstuff(context); break;
+ case 0xc6dc: showpuztext(context); break;
+ case 0xc6e0: findpuztext(context); break;
+ case 0xc6e4: placesetobject(context); break;
+ case 0xc6e8: removesetobject(context); break;
+ case 0xc6ec: issetobonmap(context); break;
+ case 0xc6f0: placefreeobject(context); break;
+ case 0xc6f4: removefreeobject(context); break;
+ case 0xc6f8: findormake(context); break;
+ case 0xc6fc: switchryanon(context); break;
+ case 0xc700: switchryanoff(context); break;
+ case 0xc704: setallchanges(context); break;
+ case 0xc708: dochange(context); break;
+ case 0xc70c: autoappear(context); break;
+ case 0xc710: getundertimed(context); break;
+ case 0xc714: putundertimed(context); break;
+ case 0xc718: dumptimedtext(context); break;
+ case 0xc71c: setuptimeduse(context); break;
+ case 0xc720: setuptimedtemp(context); break;
+ case 0xc724: usetimedtext(context); break;
+ case 0xc728: edenscdplayer(context); break;
+ case 0xc72c: usewall(context); break;
+ case 0xc730: usechurchgate(context); break;
+ case 0xc734: usegun(context); break;
+ case 0xc738: useshield(context); break;
+ case 0xc73c: usebuttona(context); break;
+ case 0xc740: useplate(context); break;
+ case 0xc744: usewinch(context); break;
+ case 0xc748: entercode(context); break;
+ case 0xc74c: loadkeypad(context); break;
+ case 0xc750: quitkey(context); break;
+ case 0xc754: addtopresslist(context); break;
+ case 0xc758: buttonone(context); break;
+ case 0xc75c: buttontwo(context); break;
+ case 0xc760: buttonthree(context); break;
+ case 0xc764: buttonfour(context); break;
+ case 0xc768: buttonfive(context); break;
+ case 0xc76c: buttonsix(context); break;
+ case 0xc770: buttonseven(context); break;
+ case 0xc774: buttoneight(context); break;
+ case 0xc778: buttonnine(context); break;
+ case 0xc77c: buttonnought(context); break;
+ case 0xc780: buttonenter(context); break;
+ case 0xc784: buttonpress(context); break;
+ case 0xc788: showouterpad(context); break;
+ case 0xc78c: showkeypad(context); break;
+ case 0xc790: singlekey(context); break;
+ case 0xc794: dumpkeypad(context); break;
+ case 0xc798: usemenu(context); break;
+ case 0xc79c: dumpmenu(context); break;
+ case 0xc7a0: getundermenu(context); break;
+ case 0xc7a4: putundermenu(context); break;
+ case 0xc7a8: showoutermenu(context); break;
+ case 0xc7ac: showmenu(context); break;
+ case 0xc7b0: loadmenu(context); break;
+ case 0xc7b4: viewfolder(context); break;
+ case 0xc7b8: nextfolder(context); break;
+ case 0xc7bc: folderhints(context); break;
+ case 0xc7c0: lastfolder(context); break;
+ case 0xc7c4: loadfolder(context); break;
+ case 0xc7c8: showfolder(context); break;
+ case 0xc7cc: folderexit(context); break;
+ case 0xc7d0: showleftpage(context); break;
+ case 0xc7d4: showrightpage(context); break;
+ case 0xc7d8: entersymbol(context); break;
+ case 0xc7dc: quitsymbol(context); break;
+ case 0xc7e0: settopleft(context); break;
+ case 0xc7e4: settopright(context); break;
+ case 0xc7e8: setbotleft(context); break;
+ case 0xc7ec: setbotright(context); break;
+ case 0xc7f0: dumpsymbol(context); break;
+ case 0xc7f4: showsymbol(context); break;
+ case 0xc7f8: nextsymbol(context); break;
+ case 0xc7fc: updatesymboltop(context); break;
+ case 0xc800: updatesymbolbot(context); break;
+ case 0xc804: dumpsymbox(context); break;
+ case 0xc808: usediary(context); break;
+ case 0xc80c: showdiary(context); break;
+ case 0xc810: showdiarykeys(context); break;
+ case 0xc814: dumpdiarykeys(context); break;
+ case 0xc818: diarykeyp(context); break;
+ case 0xc81c: diarykeyn(context); break;
+ case 0xc820: showdiarypage(context); break;
+ case 0xc824: findtext1(context); break;
+ case 0xc828: zoomonoff(context); break;
+ case 0xc82c: saveload(context); break;
+ case 0xc830: dosaveload(context); break;
+ case 0xc834: getbackfromops(context); break;
+ case 0xc838: showmainops(context); break;
+ case 0xc83c: showdiscops(context); break;
+ case 0xc840: loadsavebox(context); break;
+ case 0xc844: loadgame(context); break;
+ case 0xc848: getbacktoops(context); break;
+ case 0xc84c: discops(context); break;
+ case 0xc850: savegame(context); break;
+ case 0xc854: actualsave(context); break;
+ case 0xc858: actualload(context); break;
+ case 0xc85c: selectslot2(context); break;
+ case 0xc860: checkinput(context); break;
+ case 0xc864: getnamepos(context); break;
+ case 0xc868: showopbox(context); break;
+ case 0xc86c: showloadops(context); break;
+ case 0xc870: showsaveops(context); break;
+ case 0xc874: selectslot(context); break;
+ case 0xc878: showslots(context); break;
+ case 0xc87c: shownames(context); break;
+ case 0xc880: dosreturn(context); break;
+ case 0xc884: error(context); break;
+ case 0xc888: namestoold(context); break;
+ case 0xc88c: oldtonames(context); break;
+ case 0xc890: savefilewrite(context); break;
+ case 0xc894: savefileread(context); break;
+ case 0xc898: saveposition(context); break;
+ case 0xc89c: loadposition(context); break;
+ case 0xc8a0: loadseg(context); break;
+ case 0xc8a4: makeheader(context); break;
+ case 0xc8a8: storeit(context); break;
+ case 0xc8ac: saveseg(context); break;
+ case 0xc8b0: findlen(context); break;
+ case 0xc8b4: scanfornames(context); break;
+ case 0xc8b8: decide(context); break;
+ case 0xc8bc: showdecisions(context); break;
+ case 0xc8c0: newgame(context); break;
+ case 0xc8c4: loadold(context); break;
+ case 0xc8c8: loadspeech(context); break;
+ case 0xc8cc: createname(context); break;
+ case 0xc8d0: loadsample(context); break;
+ case 0xc8d4: loadsecondsample(context); break;
+ case 0xc8d8: soundstartup(context); break;
+ case 0xc8dc: trysoundalloc(context); break;
+ case 0xc8e0: setsoundoff(context); break;
+ case 0xc8e4: checksoundint(context); break;
+ case 0xc8e8: enablesoundint(context); break;
+ case 0xc8ec: disablesoundint(context); break;
+ case 0xc8f0: interupttest(context); break;
+ case 0xc8f4: soundend(context); break;
+ case 0xc8f8: out22c(context); break;
+ case 0xc8fc: playchannel0(context); break;
+ case 0xc900: playchannel1(context); break;
+ case 0xc904: makenextblock(context); break;
+ case 0xc908: volumeadjust(context); break;
+ case 0xc90c: loopchannel0(context); break;
+ case 0xc910: cancelch0(context); break;
+ case 0xc914: cancelch1(context); break;
+ case 0xc918: channel0only(context); break;
+ case 0xc91c: channel1only(context); break;
+ case 0xc920: channel0tran(context); break;
+ case 0xc924: bothchannels(context); break;
+ case 0xc928: saveems(context); break;
+ case 0xc92c: restoreems(context); break;
+ case 0xc930: domix(context); break;
+ case 0xc934: dmaend(context); break;
+ case 0xc938: startdmablock(context); break;
+ case 0xc93c: setuppit(context); break;
+ case 0xc940: getridofpit(context); break;
+ case 0xc944: pitinterupt(context); break;
+ case 0xc948: dreamweb(context); break;
+ case 0xc94c: entrytexts(context); break;
+ case 0xc950: entryanims(context); break;
+ case 0xc954: initialinv(context); break;
+ case 0xc958: pickupob(context); break;
+ case 0xc95c: setupemm(context); break;
+ case 0xc960: removeemm(context); break;
+ case 0xc964: checkforemm(context); break;
+ case 0xc968: checkbasemem(context); break;
+ case 0xc96c: allocatebuffers(context); break;
+ case 0xc970: clearbuffers(context); break;
+ case 0xc974: clearchanges(context); break;
+ case 0xc978: clearbeforeload(context); break;
+ case 0xc97c: clearreels(context); break;
+ case 0xc980: clearrest(context); break;
+ case 0xc984: deallocatemem(context); break;
+ case 0xc988: allocatemem(context); break;
+ case 0xc990: parseblaster(context); break;
+ case 0xc994: startup(context); break;
+ case 0xc998: startup1(context); break;
+ case 0xc99c: screenupdate(context); break;
+ case 0xc9a0: watchreel(context); break;
+ case 0xc9a4: checkforshake(context); break;
+ case 0xc9a8: watchcount(context); break;
+ case 0xc9ac: showtime(context); break;
+ case 0xc9b0: dumpwatch(context); break;
+ case 0xc9b4: showbyte(context); break;
+ case 0xc9b8: onedigit(context); break;
+ case 0xc9bc: twodigitnum(context); break;
+ case 0xc9c0: showword(context); break;
+ case 0xc9c4: convnum(context); break;
+ case 0xc9c8: mainscreen(context); break;
+ case 0xc9cc: madmanrun(context); break;
+ case 0xc9d0: checkcoords(context); break;
+ case 0xc9d4: identifyob(context); break;
+ case 0xc9d8: checkifperson(context); break;
+ case 0xc9dc: checkifset(context); break;
+ case 0xc9e0: checkifex(context); break;
+ case 0xc9e4: checkiffree(context); break;
+ case 0xc9e8: isitdescribed(context); break;
+ case 0xc9ec: findpathofpoint(context); break;
+ case 0xc9f0: findfirstpath(context); break;
+ case 0xc9f4: turnpathon(context); break;
+ case 0xc9f8: turnpathoff(context); break;
+ case 0xc9fc: turnanypathon(context); break;
+ case 0xca00: turnanypathoff(context); break;
+ case 0xca04: checkifpathison(context); break;
+ case 0xca08: afternewroom(context); break;
+ case 0xca0c: atmospheres(context); break;
+ case 0xca10: walkintoroom(context); break;
+ case 0xca14: afterintroroom(context); break;
+ case 0xca18: obname(context); break;
+ case 0xca1c: finishedwalking(context); break;
+ case 0xca20: examineobtext(context); break;
+ case 0xca24: commandwithob(context); break;
+ case 0xca28: commandonly(context); break;
+ case 0xca2c: printmessage(context); break;
+ case 0xca30: printmessage2(context); break;
+ case 0xca34: blocknametext(context); break;
+ case 0xca38: personnametext(context); break;
+ case 0xca3c: walktotext(context); break;
+ case 0xca40: getflagunderp(context); break;
+ case 0xca44: setwalk(context); break;
+ case 0xca48: autosetwalk(context); break;
+ case 0xca4c: checkdest(context); break;
+ case 0xca50: bresenhams(context); break;
+ case 0xca54: workoutframes(context); break;
+ case 0xca58: getroomspaths(context); break;
+ case 0xca5c: copyname(context); break;
+ case 0xca60: findobname(context); break;
+ case 0xca64: showicon(context); break;
+ case 0xca68: middlepanel(context); break;
+ case 0xca6c: showman(context); break;
+ case 0xca70: showpanel(context); break;
+ case 0xca74: roomname(context); break;
+ case 0xca78: usecharset1(context); break;
+ case 0xca7c: usetempcharset(context); break;
+ case 0xca80: showexit(context); break;
+ case 0xca84: panelicons1(context); break;
+ case 0xca88: showwatch(context); break;
+ case 0xca8c: gettime(context); break;
+ case 0xca90: zoomicon(context); break;
+ case 0xca94: showblink(context); break;
+ case 0xca98: dumpblink(context); break;
+ case 0xca9c: worktoscreenm(context); break;
+ case 0xcaa0: blank(context); break;
+ case 0xcaa4: allpointer(context); break;
+ case 0xcaa8: hangonp(context); break;
+ case 0xcaac: hangonw(context); break;
+ case 0xcab0: hangoncurs(context); break;
+ case 0xcab4: getunderzoom(context); break;
+ case 0xcab8: dumpzoom(context); break;
+ case 0xcabc: putunderzoom(context); break;
+ case 0xcac0: crosshair(context); break;
+ case 0xcac4: showpointer(context); break;
+ case 0xcac8: delpointer(context); break;
+ case 0xcacc: dumppointer(context); break;
+ case 0xcad0: undertextline(context); break;
+ case 0xcad4: deltextline(context); break;
+ case 0xcad8: dumptextline(context); break;
+ case 0xcadc: animpointer(context); break;
+ case 0xcae0: setmouse(context); break;
+ case 0xcae4: readmouse(context); break;
+ case 0xcae8: mousecall(context); break;
+ case 0xcaec: readmouse1(context); break;
+ case 0xcaf0: readmouse2(context); break;
+ case 0xcaf4: readmouse3(context); break;
+ case 0xcaf8: readmouse4(context); break;
+ case 0xcafc: readkey(context); break;
+ case 0xcb00: convertkey(context); break;
+ case 0xcb04: randomnum1(context); break;
+ case 0xcb08: randomnum2(context); break;
+ case 0xcb10: hangon(context); break;
+ case 0xcb14: loadtraveltext(context); break;
+ case 0xcb18: loadintotemp(context); break;
+ case 0xcb1c: loadintotemp2(context); break;
+ case 0xcb20: loadintotemp3(context); break;
+ case 0xcb24: loadtempcharset(context); break;
+ case 0xcb28: standardload(context); break;
+ case 0xcb2c: loadtemptext(context); break;
+ case 0xcb30: loadroom(context); break;
+ case 0xcb34: loadroomssample(context); break;
+ case 0xcb38: getridofreels(context); break;
+ case 0xcb3c: getridofall(context); break;
+ case 0xcb40: restorereels(context); break;
+ case 0xcb44: restoreall(context); break;
+ case 0xcb48: sortoutmap(context); break;
+ case 0xcb4c: startloading(context); break;
+ case 0xcb50: disablepath(context); break;
+ case 0xcb54: findxyfrompath(context); break;
+ case 0xcb58: findroominloc(context); break;
+ case 0xcb5c: getroomdata(context); break;
+ case 0xcb60: readheader(context); break;
+ case 0xcb64: dontloadseg(context); break;
+ case 0xcb68: allocateload(context); break;
+ case 0xcb6c: fillspace(context); break;
+ case 0xcb70: getridoftemp(context); break;
+ case 0xcb74: getridoftemptext(context); break;
+ case 0xcb78: getridoftemp2(context); break;
+ case 0xcb7c: getridoftemp3(context); break;
+ case 0xcb80: getridoftempcharset(context); break;
+ case 0xcb84: getridoftempsp(context); break;
+ case 0xcb88: readsetdata(context); break;
+ case 0xcb8c: createfile(context); break;
+ case 0xcb90: openfile(context); break;
+ case 0xcb94: openfilenocheck(context); break;
+ case 0xcb98: openforsave(context); break;
+ case 0xcb9c: closefile(context); break;
+ case 0xcba0: readfromfile(context); break;
+ case 0xcba4: setkeyboardint(context); break;
+ case 0xcba8: resetkeyboard(context); break;
+ case 0xcbac: keyboardread(context); break;
+ case 0xcbb0: walkandexamine(context); break;
+ case 0xcbb4: doload(context); break;
+ case 0xcbb8: generalerror(context); break;
default: ::error("invalid call to %04x dispatched", (uint16)context.ax);
}
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index da4bbb6..621c0c2 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -555,11 +555,13 @@ namespace dreamgen {
const static uint16 kPlayback = (0);
const static uint16 kMap = (0);
const static uint16 kSettextdat = (0);
+ const static uint16 kSpanish = (0);
const static uint16 kFramedata = (0);
const static uint16 kRecording = (0);
const static uint16 kFlags = (0);
const static uint16 kGerman = (0);
const static uint16 kTextunder = (0);
+ const static uint16 kForeign = (0);
const static uint16 kPathdata = (0);
const static uint16 kDemo = (0);
const static uint16 kExframedata = (0);
@@ -568,26 +570,26 @@ namespace dreamgen {
const static uint16 kFreetextdat = (0);
const static uint16 kFrframedata = (0);
const static uint16 kSettext = (0+(130*2));
- const static uint16 kOpeninvlist = (0+(228*13));
- const static uint16 kRyaninvlist = (0+(228*13)+32);
- const static uint16 kPointerback = (0+(228*13)+32+60);
- const static uint16 kMapflags = (0+(228*13)+32+60+(32*32));
- const static uint16 kStartpal = (0+(228*13)+32+60+(32*32)+(11*10*3));
- const static uint16 kEndpal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- const static uint16 kMaingamepal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- const static uint16 kSpritetable = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- const static uint16 kSetlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
- const static uint16 kFreelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
- const static uint16 kExlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
- const static uint16 kPeoplelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
- const static uint16 kZoomspace = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
- const static uint16 kPrintedlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
- const static uint16 kListofchanges = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
- const static uint16 kUndertimedtext = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
- const static uint16 kRainlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
- const static uint16 kInitialreelrouts = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
- const static uint16 kInitialvars = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
- const static uint16 kLengthofbuffer = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0);
+ const static uint16 kOpeninvlist = (0+(180*10));
+ const static uint16 kRyaninvlist = (0+(180*10)+32);
+ const static uint16 kPointerback = (0+(180*10)+32+60);
+ const static uint16 kMapflags = (0+(180*10)+32+60+(32*32));
+ const static uint16 kStartpal = (0+(180*10)+32+60+(32*32)+(11*10*3));
+ const static uint16 kEndpal = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
+ const static uint16 kMaingamepal = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
+ const static uint16 kSpritetable = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
+ const static uint16 kSetlist = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
+ const static uint16 kFreelist = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
+ const static uint16 kExlist = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
+ const static uint16 kPeoplelist = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
+ const static uint16 kZoomspace = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ const static uint16 kPrintedlist = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
+ const static uint16 kListofchanges = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ const static uint16 kUndertimedtext = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ const static uint16 kRainlist = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24));
+ const static uint16 kInitialreelrouts = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64));
+ const static uint16 kInitialvars = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534);
+ const static uint16 kLengthofbuffer = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534+68-0);
const static uint16 kReellist = (0+(36*144));
const static uint16 kIntext = (0+(38*2));
const static uint16 kLengthofmap = (0+(66*60));
@@ -604,17 +606,15 @@ namespace dreamgen {
const static uint16 kPersontxtdat = (0+24);
const static uint16 kPersontext = (0+24+(1026*2));
const static uint16 kInputport = (0x63);
- const static uint16 kSpanish = (1);
- const static uint16 kForeign = (1);
+ const static uint16 kUndertextsizey = (10);
const static uint16 kNumexobjects = (114);
- const static uint16 kUndertextsizey = (13);
const static uint16 kZoomy = (132);
const static uint16 kFreedatlen = (16*80);
+ const static uint16 kUndertextsizex = (180);
const static uint16 kExtextlen = (18000);
const static uint16 kLenofmapstore = (22*8*20*8);
- const static uint16 kUndertextsizex = (228);
+ const static uint16 kUndertimedysize = (24);
const static uint16 kNumchanges = (250);
- const static uint16 kUndertimedysize = (30);
const static uint16 kExframeslen = (30000);
const static uint16 kTablesize = (32);
const static uint16 kScreenwidth = (320);
Commit: 0f8eacf0bdab45f574f0e02af89633cf8d9c8300
https://github.com/scummvm/scummvm/commit/0f8eacf0bdab45f574f0e02af89633cf8d9c8300
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:26-07:00
Commit Message:
DREAMWEB: Fix the maingamepal offset. (It changed recently.)
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 2ca38ce..c722152 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -769,7 +769,7 @@ void showpcx(Context &context) {
pcxFile.seek(16, SEEK_SET);
context.es = context.data.word(kBuffers);
- maingamepal = context.es.ptr(5946, 768);
+ maingamepal = context.es.ptr(4782, 768);
pcxFile.read(maingamepal, 48);
memset(maingamepal + 48, 0xff, 720);
Commit: d65083ecaed475f88fac11ff99c72ad8c956ced3
https://github.com/scummvm/scummvm/commit/d65083ecaed475f88fac11ff99c72ad8c956ced3
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:31-07:00
Commit Message:
DREAMWEB: fixed neg instruction
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index aaed686..573179d 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -429,17 +429,15 @@ public:
}
inline void _neg(uint8 &src) {
- flags._c = src != 0;
- src = ~src;
- flags.update_zs(src);
- flags._o = false;
+ uint8 r = 0;
+ _sub(r, src);
+ src = r;
}
inline void _neg(uint16 &src) {
- flags._c = src != 0;
- src = ~src;
- flags.update_zs(src);
- flags._o = false;
+ uint16 r = 0;
+ _sub(r, src);
+ src = r;
}
inline void _movsb() {
Commit: de65cf35c10e7b3dcd5eba64c5a922428518f626
https://github.com/scummvm/scummvm/commit/de65cf35c10e7b3dcd5eba64c5a922428518f626
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:36-07:00
Commit Message:
DREAMWEB: Simplify the tracking of the mouse position and buttons
The event manager keeps track of the mouse position and button
state, so using that should be both simpler and more reliable
than tracking it ourselves.
This loses the support for middle-clicking, but it's not clear
that this is needed anyway. (If necessary, it could be added to
the event manager.)
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index c722152..4fe9b41 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -62,7 +62,6 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_vSyncInterrupt = false;
_console = 0;
- _mouseState = 0;
DebugMan.addDebugChannel(kDebugAnimation, "Animation", "Animation Debug Flag");
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
_outSaveFile = 0;
@@ -117,27 +116,6 @@ void DreamWebEngine::processEvents() {
Common::Event event;
while (event_manager->pollEvent(event)) {
switch(event.type) {
- case Common::EVENT_LBUTTONDOWN:
- _mouseState |= 1;
- break;
- case Common::EVENT_LBUTTONUP:
- _mouseState &= ~1;
- break;
- case Common::EVENT_RBUTTONDOWN:
- _mouseState |= 2;
- break;
- case Common::EVENT_RBUTTONUP:
- _mouseState &= ~2;
- break;
- case Common::EVENT_MBUTTONDOWN:
- _mouseState |= 4;
- break;
- case Common::EVENT_MBUTTONUP:
- _mouseState &= ~4;
- break;
- case Common::EVENT_MOUSEMOVE:
- _mouse = event.mouse;
- break;
case Common::EVENT_KEYDOWN:
switch (event.kbd.keycode) {
case Common::KEYCODE_d:
@@ -170,7 +148,6 @@ void DreamWebEngine::processEvents() {
Common::Error DreamWebEngine::run() {
- _mouseState = 0;
_console = new DreamWebConsole(this);
getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70, this);
@@ -262,7 +239,8 @@ void DreamWebEngine::keyPressed(uint16 ascii) {
void DreamWebEngine::mouseCall() {
processEvents();
- Common::Point pos = _mouse;
+ Common::EventManager *eventMan = _system->getEventManager();
+ Common::Point pos = eventMan->getMousePos();
if (pos.x > 298)
pos.x = 298;
if (pos.x < 15)
@@ -273,7 +251,7 @@ void DreamWebEngine::mouseCall() {
pos.y = 184;
_context.cx = pos.x;
_context.dx = pos.y;
- _context.bx = _mouseState;
+ _context.bx = eventMan->getButtonState();
}
void DreamWebEngine::setGraphicsMode() {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 455791d..f459d8b 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -105,8 +105,6 @@ private:
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
- Common::Point _mouse;
- unsigned _mouseState;
Common::File _file;
Common::OutSaveFile *_outSaveFile;
Commit: 39d8f43bf3371f6617b831a98c9947a0d6b1a55a
https://github.com/scummvm/scummvm/commit/39d8f43bf3371f6617b831a98c9947a0d6b1a55a
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:37-07:00
Commit Message:
DREAMWEB: hopefully fixed OF value
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 573179d..adbf333 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -171,8 +171,8 @@ struct Flags {
inline bool c() const { return _c; }
inline bool s() const { return _s; }
- inline bool l() const { return _o; }
- inline bool le() const { return _o || _z; }
+ inline bool l() const { return _o != _s; }
+ inline bool le() const { return _o != _s|| _z; }
inline void update_zs(uint8 v) {
_s = v & 0x80;
@@ -184,12 +184,14 @@ struct Flags {
_z = v == 0;
}
- inline void update_o(uint8 v, uint8 old) {
- _o = (old & 0x80) != (v & 0x80);
+ inline void update_o(uint8 v, uint8 a, uint8 b) {
+ uint8 s1 = a & 0x80, s2 = b & 0x80;
+ _o = (s1 == s2) && (v & 0x80) != s1;
}
- inline void update_o(uint16 v, uint16 old) {
- _o = (old & 0x8000) != (v & 0x8000);
+ inline void update_o(uint16 v, uint16 a, uint16 b) {
+ uint16 s1 = a & 0x8000, s2 = b & 0x8000;
+ _o = (s1 == s2) && (v & 0x8000) != s1;
}
};
@@ -274,7 +276,7 @@ public:
inline void _add(uint8 &dst, uint8 src) {
unsigned r = (unsigned)dst + src;
- flags.update_o((uint8)r, dst);
+ flags.update_o((uint8)r, dst, src);
flags._c = r >= 0x100;
dst = r;
flags.update_zs(dst);
@@ -282,46 +284,46 @@ public:
inline void _add(uint16 &dst, uint16 src) {
unsigned r = (unsigned)dst + src;
- flags.update_o((uint16)r, dst);
+ flags.update_o((uint16)r, dst, src);
flags._c = r >= 0x10000;
dst = r;
flags.update_zs(dst);
}
inline void _sub(uint8 &dst, uint8 src) {
- flags.update_o(uint8(dst - src), dst);
+ flags.update_o(uint8(dst - src), dst, (uint8)-src);
flags._c = dst < src;
dst -= src;
flags.update_zs(dst);
}
inline void _sub(uint16 &dst, uint16 src) {
- flags.update_o(uint16(dst - src), dst);
+ flags.update_o(uint16(dst - src), dst, (uint16)-src);
flags._c = dst < src;
dst -= src;
flags.update_zs(dst);
}
inline void _inc(uint8 &dst) {
- flags.update_o((uint8)(dst + 1), dst);
+ flags.update_o((uint8)(dst + 1), dst, 1);
++dst;
flags.update_zs(dst);
}
inline void _inc(uint16 &dst) {
- flags.update_o((uint16)(dst + 1), dst);
+ flags.update_o((uint16)(dst + 1), dst, 1);
++dst;
flags.update_zs(dst);
}
inline void _dec(uint8 &dst) {
- flags.update_o(uint8(dst - 1), dst);
+ flags.update_o(uint8(dst - 1), dst, 1);
--dst;
flags.update_zs(dst);
}
inline void _dec(uint16 &dst) {
- flags.update_o(uint16(dst - 1), dst);
+ flags.update_o(uint16(dst - 1), dst, 1);
--dst;
flags.update_zs(dst);
}
Commit: 6deff847492e33bf270806cacb85ae4db3cc530c
https://github.com/scummvm/scummvm/commit/6deff847492e33bf270806cacb85ae4db3cc530c
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:37-07:00
Commit Message:
DREAMWEB: fixed crash on room changing
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 01992ed..29b0955 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -17870,6 +17870,9 @@ norun:
}
void checkcoords(Context & context) {
+ context._cmp(context.data.byte(kNewlocation), 255);
+ if (context.flags.z()) goto loop048;
+ return;
loop048:
context.ax = context.cs.word(context.bx);
context._cmp(context.ax, 0x0ffff);
Commit: edf7d9b42bb4f88b8681e0d3732b4e2daad377c9
https://github.com/scummvm/scummvm/commit/edf7d9b42bb4f88b8681e0d3732b4e2daad377c9
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:38-07:00
Commit Message:
DREAMWEB: unstubbed printundermon
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 4fe9b41..6883580 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -312,6 +312,29 @@ void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int
_system->copyRectToScreen(src, pitch, x, y, w, h);
}
+void DreamWebEngine::printUnderMonitor() {
+ _context.di = dreamgen::kScreenwidth * 43 + 76;
+ _context.si = _context.di + 8 * dreamgen::kScreenwidth;
+ _context.es = _context.data.word(dreamgen::kWorkspace);
+
+ Graphics::Surface *s = _system->lockScreen();
+ if (!s)
+ error("lockScreen failed");
+
+ for(uint y = 0; y < 104; ++y) {
+ uint8 *src = (uint8 *)s->getBasePtr(76 + 8, 43 + y);
+ uint8 *dst = _context.es.ptr(_context.di, 170);
+ for(uint x = 0; x < 170; ++x) {
+ if (*src < 231)
+ *dst++ = *src++;
+ }
+ _context._add(_context.di, dreamgen::kScreenwidth);
+ _context._add(_context.si, dreamgen::kScreenwidth);
+ }
+ _system->unlockScreen();
+}
+
+
void DreamWebEngine::cls() {
_system->fillScreen(0);
}
@@ -372,7 +395,7 @@ void worktoscreen(Context &context) {
}
void printundermon(Context &context) {
- warning("printundermon: STUB");
+ context.engine->printUnderMonitor();
}
void cls(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index f459d8b..33a88e0 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -96,6 +96,7 @@ public:
uint readFromSaveFile(uint8 *data, uint size);
void setShakePos(int pos) { _system->setShakePos(pos); }
+ void printUnderMonitor();
void quit();
Commit: 6fb25cdde4381233f3aa98f92f7dfa62aa10b2fa
https://github.com/scummvm/scummvm/commit/6fb25cdde4381233f3aa98f92f7dfa62aa10b2fa
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:38-07:00
Commit Message:
DREAMWEB: added stack depth check to code generator
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 52f21bd..9d42dd9 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -257,7 +257,7 @@ namespace %s {
self.schedule(name)
def _ret(self):
- self.body += "\treturn;\n"
+ self.body += "\t{assert(stack_depth == context.stack.size()); return; }\n"
def parse2(self, dst, src):
dst_size, src_size = self.get_size(dst), self.get_size(src)
@@ -437,7 +437,7 @@ namespace %s {
self.proc_addr.append((name, self.proc.offset))
self.body = str()
- self.body += "void %s(Context & context) {\n" %name;
+ self.body += "void %s(Context & context) {\n\tuint stack_depth = context.stack.size();\n" %name;
self.proc.optimize()
self.unbounded = []
self.proc.visit(self, skip)
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 29b0955..de9a7c1 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -475,6 +475,7 @@ void intro3text(Context &context);
void intro1text(Context &context);
void alleybarksound(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._dec(context.ax);
context._cmp(context.ax, 0);
@@ -488,24 +489,27 @@ void alleybarksound(Context & context) {
context.ax = 1000;
nobark:
context.es.word(context.bx+3) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intromusic(Context & context) {
- return;
+ uint stack_depth = context.stack.size();
+ {assert(stack_depth == context.stack.size()); return; }
}
void foghornsound(Context & context) {
+ uint stack_depth = context.stack.size();
randomnumber(context);
context._cmp(context.al, 198);
if (!context.flags.z()) goto nofog;
context.al = 13;
playchannel1(context);
nofog:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void receptionist(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto gotrecep;
context._cmp(context.data.byte(kCardpassflag), 1);
@@ -544,10 +548,11 @@ gotrecep:
if (context.flags.z()) goto nottalkedrecep;
context.data.byte(kTalkedtorecep) = 1;
nottalkedrecep:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void smokebloke(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kRockstardead), 0);
if (!context.flags.z()) goto notspokento;
context.al = context.es.byte(context.bx+7);
@@ -579,10 +584,11 @@ notsmokeb2:
gotsmokeb:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void attendant(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
context.al = context.es.byte(context.bx+7);
@@ -590,28 +596,31 @@ void attendant(Context & context) {
if (context.flags.z()) goto nottalked;
context.data.byte(kTalkedtoattendant) = 1;
nottalked:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void manasleep(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
context.es.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void eden(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kGeneraldead), 0);
if (!context.flags.z()) goto notinbed;
showgamereel(context);
addtopeoplelist(context);
notinbed:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void edeninbath(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kGeneraldead), 0);
if (context.flags.z()) goto notinbed;
context._cmp(context.data.byte(kSartaindead), 0);
@@ -619,35 +628,39 @@ void edeninbath(Context & context) {
showgamereel(context);
addtopeoplelist(context);
notinbath:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
/*continuing to unbounded code: notinbed from eden:5-6*/
notinbed:
- return;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
+ {assert(stack_depth == context.stack.size()); return; }
}
void malefan(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void femalefan(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void louis(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kRockstardead), 0);
if (!context.flags.z()) goto notlouis1;
showgamereel(context);
addtopeoplelist(context);
notlouis1:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void louischair(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kRockstardead), 0);
if (context.flags.z()) goto notlouis2;
checkspeed(context);
@@ -672,31 +685,35 @@ notlouisanim:
showgamereel(context);
addtopeoplelist(context);
notlouis2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void manasleep2(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
context.es.byte(context.bx+7) = context.al;
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void mansatstill(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void tattooman(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void drinker(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto gotdrinker;
context._inc(context.es.word(context.bx+3));
@@ -714,10 +731,11 @@ notdrinker1:
gotdrinker:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void bartender(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto gotsmoket;
context._cmp(context.es.word(context.bx+3), 86);
@@ -741,22 +759,25 @@ gotsmoket:
context.es.byte(context.bx+7) = 9;
notgotgun:
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void othersmoker(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void barwoman(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void interviewer(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kReeltowatch), 68);
if (!context.flags.z()) goto notgeneralstart;
context._inc(context.es.word(context.bx+3));
@@ -770,10 +791,11 @@ notgeneralstart:
context._inc(context.es.word(context.bx+3));
talking:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void soldier1(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.es.word(context.bx+3), 0);
if (context.flags.z()) goto soldierwait;
context.data.word(kWatchingtime) = 10;
@@ -803,10 +825,11 @@ soldierwait:
gotsoldframe:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void rockstar(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 303);
if (context.flags.z()) goto rockcombatend;
@@ -844,20 +867,21 @@ rockspeed:
addtopeoplelist(context);
context.data.byte(kPointermode) = 2;
context.data.word(kWatchingtime) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notalkrock:
context.data.word(kWatchingtime) = 2;
context.data.byte(kPointermode) = 0;
context.al = context.data.byte(kMapy);
context.es.byte(context.bx+2) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
rockcombatend:
context.data.byte(kNewlocation) = 45;
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void helicopter(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 203);
if (context.flags.z()) goto heliwon;
@@ -904,17 +928,18 @@ helicombatend:
if (context.flags.c()) goto notwaitingheli;
context.data.byte(kPointermode) = 2;
context.data.word(kWatchingtime) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwaitingheli:
context.data.byte(kPointermode) = 0;
context.data.word(kWatchingtime) = 2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
heliwon:
context.data.byte(kPointermode) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void mugger(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 138);
if (context.flags.z()) goto endmugger1;
@@ -931,7 +956,7 @@ notmugger:
showgamereel(context);
context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endmugger1:
context.push(context.es);
context.push(context.bx);
@@ -982,18 +1007,20 @@ endmugger1:
context.data.byte(kBeenmugged) = 1;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endmugger2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void aide(Context & context) {
+ uint stack_depth = context.stack.size();
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void businessman(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kPointermode) = 0;
context.data.word(kWatchingtime) = 2;
context.ax = context.es.word(context.bx+3);
@@ -1073,16 +1100,17 @@ busspeed:
if (!context.flags.z()) goto buscombatend;
context.data.word(kWatchingtime) = 0;
context.data.byte(kPointermode) = 2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
buscombatend:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
buscombatwonend:
context.data.byte(kPointermode) = 0;
context.data.word(kWatchingtime) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void poolguard(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 214);
if (context.flags.z()) goto combatover2;
@@ -1140,11 +1168,11 @@ guardspeed:
if (context.flags.z()) goto iswaitingpool;
context.data.byte(kPointermode) = 0;
context.data.word(kWatchingtime) = 2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
iswaitingpool:
context.data.byte(kPointermode) = 2;
context.data.word(kWatchingtime) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
combatover1:
context.data.word(kWatchingtime) = 0;
context.data.byte(kPointermode) = 0;
@@ -1152,7 +1180,7 @@ combatover1:
turnpathon(context);
context.al = 1;
turnpathoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
combatover2:
showgamereel(context);
context.data.word(kWatchingtime) = 2;
@@ -1163,15 +1191,16 @@ combatover2:
context.data.word(kWatchingtime) = 0;
context.data.byte(kMandead) = 2;
doneover2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void security(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.es.word(context.bx+3), 32);
if (context.flags.z()) goto securwait;
context._cmp(context.es.word(context.bx+3), 69);
if (!context.flags.z()) goto notaftersec;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notaftersec:
context.data.word(kWatchingtime) = 10;
checkspeed(context);
@@ -1191,10 +1220,11 @@ securwait:
gotsecurframe:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void heavy(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.es.byte(context.bx+7);
context._and(context.al, 127);
context.es.byte(context.bx+7) = context.al;
@@ -1226,10 +1256,11 @@ heavywait:
gotheavyframe:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void bossman(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto notboss;
context.ax = context.es.word(context.bx+3);
@@ -1269,10 +1300,11 @@ notboss:
if (context.flags.z()) goto nottalkedboss;
context.data.byte(kTalkedtoboss) = 1;
nottalkedboss:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void gamer(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto gamerfin;
gameragain:
@@ -1288,29 +1320,32 @@ gameragain:
gamerfin:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void sparkydrip(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto cantdrip;
context.al = 14;
context.ah = 0;
playchannel0(context);
cantdrip:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void carparkdrip(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto cantdrip2;
context.al = 14;
playchannel1(context);
cantdrip2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void keeper(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kKeeperflag), 0);
if (!context.flags.z()) goto notwaiting;
context._cmp(context.data.word(kReeltowatch), 190);
@@ -1323,15 +1358,16 @@ void keeper(Context & context) {
context.al = context.data.byte(kDreamnumber);
context.es.byte(context.bx+7) = context.al;
notdiff:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwaiting:
addtopeoplelist(context);
showgamereel(context);
waiting:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void candles1(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto candle1;
context.ax = context.es.word(context.bx+3);
@@ -1343,10 +1379,11 @@ notendcandle1:
context.es.word(context.bx+3) = context.ax;
candle1:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void smallcandle(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto smallcandlef;
context.ax = context.es.word(context.bx+3);
@@ -1358,10 +1395,11 @@ notendsmallcandle:
context.es.word(context.bx+3) = context.ax;
smallcandlef:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intromagic1(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto introm1fin;
context.ax = context.es.word(context.bx+3);
@@ -1385,10 +1423,11 @@ gotintrom1:
context.data.byte(kNowinnewroom) = 1;
introm1fin:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void candles(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto candlesfin;
context.ax = context.es.word(context.bx+3);
@@ -1400,10 +1439,11 @@ gotcandles:
context.es.word(context.bx+3) = context.ax;
candlesfin:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void candles2(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto candles2fin;
context.ax = context.es.word(context.bx+3);
@@ -1415,10 +1455,11 @@ gotcandles2:
context.es.word(context.bx+3) = context.ax;
candles2fin:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void gates(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto gatesfin;
context.ax = context.es.word(context.bx+3);
@@ -1451,10 +1492,11 @@ gotgates:
context.es = context.pop();
gatesfin:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intromagic2(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto introm2fin;
context.ax = context.es.word(context.bx+3);
@@ -1466,10 +1508,11 @@ gotintrom2:
context.es.word(context.bx+3) = context.ax;
introm2fin:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intromagic3(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto introm3fin;
context.ax = context.es.word(context.bx+3);
@@ -1483,10 +1526,11 @@ introm3fin:
showgamereel(context);
context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intromonks1(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto intromonk1fin;
context.ax = context.es.word(context.bx+3);
@@ -1496,7 +1540,7 @@ void intromonks1(Context & context) {
context._add(context.data.byte(kMapy), 10);
context.data.byte(kNowinnewroom) = 1;
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notendmonk1:
context._cmp(context.ax, 30);
if (!context.flags.z()) goto gotintromonk1;
@@ -1527,10 +1571,11 @@ intromonk1fin:
showgamereel(context);
context.al = context.data.byte(kMapy);
context.es.byte(context.bx+2) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intromonks2(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto intromonk2fin;
context.ax = context.es.word(context.bx+3);
@@ -1579,14 +1624,16 @@ gotintromonk2:
context.es.word(context.bx+3) = context.ax;
intromonk2fin:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void handclap(Context & context) {
- return;
+ uint stack_depth = context.stack.size();
+ {assert(stack_depth == context.stack.size()); return; }
}
void monks2text(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kIntrocount), 1);
if (!context.flags.z()) goto notmonk2text1;
context.al = 8;
@@ -1677,16 +1724,17 @@ notmonk2text10:
context.cx = 100;
goto gotmonks2text;
notmonk2text11:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotmonks2text:
context.dx = 1;
context.cx = 120;
context.ah = 82;
setuptimedtemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intro1text(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kIntrocount), 2);
if (!context.flags.z()) goto notintro1text1;
context.al = 40;
@@ -1711,16 +1759,17 @@ notintro1text2:
context.cx = 90;
goto gotintro1text;
notintro1text3:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotintro1text:
context.dx = 1;
context.ah = 82;
oktalk2:
setuptimedtemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intro2text(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ax, 5);
if (!context.flags.z()) goto notintro2text1;
context.al = 43;
@@ -1737,15 +1786,16 @@ notintro2text1:
context.cx = 90;
goto gotintro2text;
notintro2text2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotintro2text:
context.dx = 1;
context.ah = 82;
setuptimedtemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intro3text(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ax, 107);
if (!context.flags.z()) goto notintro3text1;
context.al = 45;
@@ -1762,15 +1812,16 @@ notintro3text1:
context.cx = 100;
goto gotintro3text;
notintro3text2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotintro3text:
context.dx = 1;
context.ah = 82;
setuptimedtemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void monkandryan(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto notmonkryan;
context.ax = context.es.word(context.bx+3);
@@ -1787,15 +1838,16 @@ void monkandryan(Context & context) {
context._cmp(context.data.byte(kIntrocount), 57);
if (!context.flags.z()) goto gotmonkryan;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotmonkryan:
context.es.word(context.bx+3) = context.ax;
notmonkryan:
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void endgameseq(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto notendseq;
context.ax = context.es.word(context.bx+3);
@@ -1849,10 +1901,11 @@ notendseq:
context.es.word(context.bx+3) = 146;
rollendcredits(context);
notendcreds:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void rollendcredits(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 16;
context.ah = 255;
playchannel0(context);
@@ -1937,10 +1990,11 @@ gotnext:
hangon(context);
paneltomap(context);
fadescreenuphalf(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void priest(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.es.word(context.bx+3), 8);
if (context.flags.z()) goto priestspoken;
context.data.byte(kPointermode) = 0;
@@ -1954,12 +2008,13 @@ void priest(Context & context) {
context.bx = context.pop();
context.es = context.pop();
priestwait:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
priestspoken:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void madmanstelly(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._inc(context.ax);
context._cmp(context.ax, 307);
@@ -1968,10 +2023,11 @@ void madmanstelly(Context & context) {
notendtelly:
context.es.word(context.bx+3) = context.ax;
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void madman(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kWatchingtime) = 2;
checkspeed(context);
if (!context.flags.z()) goto nomadspeed;
@@ -2023,7 +2079,7 @@ nomadspeed:
context.al = context.data.byte(kMapx);
context.es.byte(context.bx+1) = context.al;
madmode(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
madmanspoken:
context._cmp(context.data.byte(kWongame), 1);
if (context.flags.z()) goto alreadywon;
@@ -2034,14 +2090,15 @@ madmanspoken:
context.bx = context.pop();
context.es = context.pop();
alreadywon:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
ryansded:
context.data.byte(kMandead) = 2;
showgamereel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void madmantext(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCombatcount), 61);
if (!context.flags.c()) goto nomadtext;
context.al = context.data.byte(kCombatcount);
@@ -2058,10 +2115,11 @@ void madmantext(Context & context) {
context.ah = 82;
setuptimedtemp(context);
nomadtext:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void madmode(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kWatchingtime) = 2;
context.data.byte(kPointermode) = 0;
context._cmp(context.data.byte(kCombatcount), 63);
@@ -2070,10 +2128,11 @@ void madmode(Context & context) {
if (!context.flags.c()) goto iswatchmad;
context.data.byte(kPointermode) = 2;
iswatchmad:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void priesttext(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.es.word(context.bx+3), 2);
if (context.flags.c()) goto nopriesttext;
context._cmp(context.es.word(context.bx+3), 7);
@@ -2090,10 +2149,11 @@ void priesttext(Context & context) {
context.dx = 1;
setuptimeduse(context);
nopriesttext:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void textforend(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kIntrocount), 20);
if (!context.flags.z()) goto notendtext1;
context.al = 0;
@@ -2118,15 +2178,16 @@ notendtext2:
context.cx = 60;
goto gotendtext;
notendtext3:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotendtext:
context.dx = 1;
context.ah = 83;
setuptimedtemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void textformonk(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kIntrocount), 1);
if (!context.flags.z()) goto notmonktext1;
context.al = 19;
@@ -2235,16 +2296,17 @@ notmonktext13:
if (!context.flags.z()) goto notendtitles;
fadescreendowns(context);
notendtitles:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotmonktext:
context.dx = 1;
context.ah = 82;
oktalk:
setuptimedtemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void drunk(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kGeneraldead), 0);
if (!context.flags.z()) goto trampgone;
context.al = context.es.byte(context.bx+7);
@@ -2253,10 +2315,11 @@ void drunk(Context & context) {
showgamereel(context);
addtopeoplelist(context);
trampgone:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void advisor(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto noadvisor;
goto noadvisor;
@@ -2281,10 +2344,11 @@ gotadvframe:
noadvisor:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void copper(Context & context) {
+ uint stack_depth = context.stack.size();
checkspeed(context);
if (!context.flags.z()) goto nocopper;
context.ax = context.es.word(context.bx+3);
@@ -2311,10 +2375,11 @@ gotcopframe:
nocopper:
showgamereel(context);
addtopeoplelist(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void sparky(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kCard1money), 0);
if (context.flags.z()) goto animsparky;
context.es.byte(context.bx+7) = 3;
@@ -2344,11 +2409,12 @@ finishsparky:
if (context.flags.z()) goto nottalkedsparky;
context.data.byte(kTalkedtosparky) = 1;
nottalkedsparky:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void train(Context & context) {
- return;
+ uint stack_depth = context.stack.size();
+ {assert(stack_depth == context.stack.size()); return; }
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 21);
if (!context.flags.c()) goto notrainyet;
@@ -2367,10 +2433,11 @@ gottrainframe:
context.es.word(context.bx+3) = context.ax;
showgamereel(context);
notrainatall:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void addtopeoplelist(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.push(context.bx);
@@ -2385,10 +2452,11 @@ void addtopeoplelist(Context & context) {
context.bx = context.pop();
context.es = context.pop();
context._add(context.data.word(kListpos), 5);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showgamereel(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.es.word(context.bx+3);
context._cmp(context.ax, 512);
if (!context.flags.c()) goto noshow;
@@ -2401,10 +2469,11 @@ void showgamereel(Context & context) {
context.ax = context.data.word(kReelpointer);
context.es.word(context.bx+3) = context.ax;
noshow:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkspeed(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLastweapon), -1);
if (!context.flags.z()) goto forcenext;
context._inc(context.es.byte(context.bx+6));
@@ -2415,22 +2484,24 @@ void checkspeed(Context & context) {
context.es.byte(context.bx+6) = context.al;
context._cmp(context.al, context.al);
notspeed:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
forcenext:
context._cmp(context.al, context.al);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearsprites(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = 255;
context.cx = (32)*16;
while(context.cx--) context._stosb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makesprite(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
_tmp17:
@@ -2446,18 +2517,20 @@ _tmp17a:
context.es.word(context.bx+2) = 0x0ffff;
context.es.byte(context.bx+15) = 0;
context.es.byte(context.bx+18) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void delsprite(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = context.bx;
context.cx = (32);
context.al = 255;
while(context.cx--) context._stosb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void spriteupdate(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768);
context.al = context.data.byte(kRyanon);
@@ -2486,10 +2559,11 @@ _tmp18a:
context._add(context.bx, (32));
if (--context.cx) goto _tmp18;
_tmp18b:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printsprites(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.cx = 0;
priorityloop:
@@ -2518,10 +2592,11 @@ skipsprite:
context._inc(context.cx);
context._cmp(context.cx, 7);
if (!context.flags.z()) goto priorityloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printasprite(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.si = context.bx;
@@ -2554,10 +2629,11 @@ notquickp:
showframe(context);
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkone(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.cx);
context.al = context.ch;
context.ah = 0;
@@ -2589,29 +2665,31 @@ void checkone(Context & context) {
context.cx = context.ax;
context._lodsb();
context.dx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findsource(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.data.word(kCurrentframe);
context._cmp(context.ax, 160);
if (!context.flags.c()) goto over1000;
context.ds = context.data.word(kReel1);
context.data.word(kTakeoff) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
over1000:
context._cmp(context.ax, 320);
if (!context.flags.c()) goto over1001;
context.ds = context.data.word(kReel2);
context.data.word(kTakeoff) = 160;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
over1001:
context.ds = context.data.word(kReel3);
context.data.word(kTakeoff) = 320;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void initman(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kRyanx);
context.ah = context.data.byte(kRyany);
context.si = context.ax;
@@ -2622,10 +2700,11 @@ void initman(Context & context) {
context.es.byte(context.bx+23) = 4;
context.es.byte(context.bx+22) = 0;
context.es.byte(context.bx+29) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void mainman(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kResetmanxy), 1);
if (!context.flags.z()) goto notinnewroom;
context.data.byte(kResetmanxy) = 0;
@@ -2638,7 +2717,7 @@ notinnewroom:
context._dec(context.es.byte(context.bx+22));
context._cmp(context.es.byte(context.bx+22), -1);
if (context.flags.z()) goto executewalk;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
executewalk:
context.es.byte(context.bx+22) = 0;
context.al = context.data.byte(kTurntoface);
@@ -2705,10 +2784,11 @@ notwalk:
context.ax = context.es.word(context.bx+10);
context.data.byte(kRyanx) = context.al;
context.data.byte(kRyany) = context.ah;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void aboutturn(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kTurndirection), 1);
if (context.flags.z()) goto incdir;
context._cmp(context.data.byte(kTurndirection), -1);
@@ -2731,7 +2811,7 @@ incdir:
context._and(context.al, 7);
context.data.byte(kFacing) = context.al;
context.es.byte(context.bx+29) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
decdir:
context.data.byte(kTurndirection) = -1;
context.al = context.data.byte(kFacing);
@@ -2739,10 +2819,11 @@ decdir:
context._and(context.al, 7);
context.data.byte(kFacing) = context.al;
context.es.byte(context.bx+29) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void walking(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLinedirection), 0);
if (context.flags.z()) goto normalwalk;
context.al = context.data.byte(kLinepointer);
@@ -2771,7 +2852,7 @@ continuewalk:
context.es = context.pop();
stillline:
context.es.word(context.bx+10) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endofline:
context.data.byte(kLinepointer) = 254;
context.al = context.data.byte(kDestination);
@@ -2785,13 +2866,14 @@ endofline:
autosetwalk(context);
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
finishedwalk:
facerightway(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void facerightway(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
getroomspaths(context);
@@ -2806,10 +2888,11 @@ void facerightway(Context & context) {
context.data.byte(kLeavedirection) = context.al;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkforexit(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = context.data.byte(kRyanx);
context._add(context.cl, 12);
context.ch = context.data.byte(kRyany);
@@ -2824,7 +2907,7 @@ void checkforexit(Context & context) {
if (context.flags.z()) goto notnewdirect;
context.al = context.data.byte(kLastflagex);
context.data.byte(kAutolocation) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notnewdirect:
context._test(context.al, 32);
if (context.flags.z()) goto notleave;
@@ -2871,37 +2954,38 @@ notravmessage:
context.data.byte(kTurntoface) = context.al;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notlouis:
context.bx = context.pop();
context.es = context.pop();
context.data.byte(kNeedtotravel) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notleave:
context._test(context.al, 4);
if (context.flags.z()) goto notaleft;
adjustleft(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notaleft:
context._test(context.al, 2);
if (context.flags.z()) goto notaright;
adjustright(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notaright:
context._test(context.al, 8);
if (context.flags.z()) goto notadown;
adjustdown(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notadown:
context._test(context.al, 16);
if (context.flags.z()) goto notanup;
adjustup(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notanup:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void adjustdown(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context._add(context.data.byte(kMapy), 10);
@@ -2912,10 +2996,11 @@ void adjustdown(Context & context) {
context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void adjustup(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context._sub(context.data.byte(kMapy), 10);
@@ -2926,10 +3011,11 @@ void adjustup(Context & context) {
context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void adjustleft(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.data.byte(kLastflag) = 0;
@@ -2941,10 +3027,11 @@ void adjustleft(Context & context) {
context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void adjustright(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context._add(context.data.byte(kMapx), 11);
@@ -2956,10 +3043,11 @@ void adjustright(Context & context) {
context.data.byte(kNowinnewroom) = 1;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void reminders(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 24);
if (!context.flags.z()) goto notinedenslift;
context._cmp(context.data.byte(kMapx), 44);
@@ -2994,7 +3082,7 @@ void reminders(Context & context) {
havegotcard:
context._inc(context.data.byte(kProgresspoints));
notfirst:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
forgotone:
context.al = 50;
context.bl = 54;
@@ -3002,12 +3090,13 @@ forgotone:
context.cx = 48;
context.dx = 8;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinedenslift:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void initrain(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24));
context.bx = 1113;
@@ -3063,10 +3152,11 @@ initrainside2:
finishinitrain:
context.al = 255;
context._stosb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void splitintolines(Context & context) {
+ uint stack_depth = context.stack.size();
lookforlinestart:
getblockofpixel(context);
context._cmp(context.al, 0);
@@ -3112,10 +3202,11 @@ foundlineend:
if (!context.flags.c()) goto endofthisline;
goto lookforlinestart;
endofthisline:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getblockofpixel(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.cx);
context.push(context.es);
context.push(context.di);
@@ -3129,16 +3220,17 @@ void getblockofpixel(Context & context) {
context.di = context.pop();
context.es = context.pop();
context.cx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
failrain:
context.di = context.pop();
context.es = context.pop();
context.cx = context.pop();
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showrain(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kMainsprites);
context.si = 6*58;
context.ax = context.ds.word(context.si+2);
@@ -3212,10 +3304,11 @@ notlouisthund:
isthunder1:
playchannel1(context);
nothunder:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void backobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kSetdat);
context.di = context.es.word(context.bx+20);
context.al = context.es.byte(context.bx+18);
@@ -3260,10 +3353,11 @@ notdoor:
steadyob:
steady(context);
finishback:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void liftsprite(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kLiftflag);
context._cmp(context.al, 0);
if (context.flags.z()) goto liftclosed;
@@ -3284,7 +3378,7 @@ void liftsprite(Context & context) {
goto pokelift;
finishclose:
context.data.byte(kLiftflag) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
openlift:
context.al = context.es.byte(context.bx+19);
context._cmp(context.al, 12);
@@ -3305,10 +3399,10 @@ pokelift:
context.di = context.pop();
context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endoflist:
context.data.byte(kLiftflag) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
liftopen:
context.al = context.data.byte(kLiftpath);
context.push(context.es);
@@ -3344,19 +3438,21 @@ nocountopen:
}
void liftnoise(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 5);
if (context.flags.z()) goto hissnoise;
context._cmp(context.data.byte(kReallocation), 21);
if (context.flags.z()) goto hissnoise;
playchannel1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
hissnoise:
context.al = 13;
playchannel1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void random(Context & context) {
+ uint stack_depth = context.stack.size();
randomnum1(context);
context.push(context.di);
context._and(context.ax, 7);
@@ -3365,17 +3461,19 @@ void random(Context & context) {
context.al = context.ds.byte(context.di);
context.di = context.pop();
context.es.byte(context.bx+15) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void steady(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.ds.byte(context.di+18);
context.ds.byte(context.di+17) = context.al;
context.es.byte(context.bx+15) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void constant(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.es.byte(context.bx+19));
context.cl = context.es.byte(context.bx+19);
context.ch = 0;
@@ -3390,28 +3488,31 @@ gotconst:
context._sub(context.di, context.cx);
context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void doorway(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kDoorcheck1) = -24;
context.data.byte(kDoorcheck2) = 10;
context.data.byte(kDoorcheck3) = -30;
context.data.byte(kDoorcheck4) = 10;
dodoor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void widedoor(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kDoorcheck1) = -24;
context.data.byte(kDoorcheck2) = 24;
context.data.byte(kDoorcheck3) = -30;
context.data.byte(kDoorcheck4) = 24;
dodoor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dodoor(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kRyanx);
context.ah = context.data.byte(kRyany);
context.cl = context.es.byte(context.bx+10);
@@ -3470,7 +3571,7 @@ atlast1:
context.es.byte(context.bx+15) = context.al;
context.ds.byte(context.di+17) = context.al;
context.data.byte(kThroughdoor) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
shutdoor:
context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 5);
@@ -3498,10 +3599,11 @@ atlast2:
if (!context.flags.z()) goto notnearly;
context.data.byte(kThroughdoor) = 0;
notnearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lockeddoorway(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kRyanx);
context.ah = context.data.byte(kRyany);
context.cl = context.es.byte(context.bx+10);
@@ -3574,7 +3676,7 @@ atlast3:
if (!context.flags.z()) goto justshutting;
context.data.byte(kThroughdoor) = 1;
justshutting:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
shutdoor2:
context.cl = context.es.byte(context.bx+19);
context._cmp(context.cl, 5);
@@ -3605,7 +3707,7 @@ atlast4:
context.es = context.pop();
context.data.byte(kLockstatus) = 1;
notlocky:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
shutdoor:
context.cl = context.es.byte(context.bx+19);
@@ -3634,11 +3736,12 @@ atlast2:
if (!context.flags.z()) goto notnearly;
context.data.byte(kThroughdoor) = 0;
notnearly:
- return;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
+ {assert(stack_depth == context.stack.size()); return; }
}
void updatepeople(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
context.data.word(kListpos) = context.di;
@@ -3669,10 +3772,11 @@ notinthisroom:
context._add(context.di, 2);
goto updateloop;
endupdate:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getreelframeax(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ds);
context.data.word(kCurrentframe) = context.ax;
findsource(context);
@@ -3685,19 +3789,21 @@ void getreelframeax(Context & context) {
context._add(context.ax, context.ax);
context._add(context.ax, context.cx);
context.bx = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void reelsonscreen(Context & context) {
+ uint stack_depth = context.stack.size();
reconstruct(context);
updatepeople(context);
watchreel(context);
showrain(context);
usetimedtext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void plotreel(Context & context) {
+ uint stack_depth = context.stack.size();
getreelstart(context);
retryreel:
context.push(context.es);
@@ -3732,10 +3838,11 @@ notplot:
soundonreels(context);
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void soundonreels(Context & context) {
+ uint stack_depth = context.stack.size();
context.bl = context.data.byte(kReallocation);
context._add(context.bl, context.bl);
context._xor(context.bh, context.bh);
@@ -3772,10 +3879,11 @@ endreelsound:
if (context.flags.z()) goto nochange2;
context.data.word(kLastsoundreel) = -1;
nochange2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void reconstruct(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kHavedoneobs), 0);
if (context.flags.z()) goto noneedtorecon;
context.data.byte(kNewobs) = 1;
@@ -3784,101 +3892,105 @@ void reconstruct(Context & context) {
printsprites(context);
context.data.byte(kHavedoneobs) = 0;
noneedtorecon:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dealwithspecial(Context & context) {
+ uint stack_depth = context.stack.size();
context._sub(context.al, 220);
context._cmp(context.al, 0);
if (!context.flags.z()) goto notplset;
context.al = context.ah;
placesetobject(context);
context.data.byte(kHavedoneobs) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notplset:
context._cmp(context.al, 1);
if (!context.flags.z()) goto notremset;
context.al = context.ah;
removesetobject(context);
context.data.byte(kHavedoneobs) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notremset:
context._cmp(context.al, 2);
if (!context.flags.z()) goto notplfree;
context.al = context.ah;
placefreeobject(context);
context.data.byte(kHavedoneobs) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notplfree:
context._cmp(context.al, 3);
if (!context.flags.z()) goto notremfree;
context.al = context.ah;
removefreeobject(context);
context.data.byte(kHavedoneobs) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notremfree:
context._cmp(context.al, 4);
if (!context.flags.z()) goto notryanoff;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notryanoff:
context._cmp(context.al, 5);
if (!context.flags.z()) goto notryanon;
context.data.byte(kTurntoface) = context.ah;
context.data.byte(kFacing) = context.ah;
switchryanon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notryanon:
context._cmp(context.al, 6);
if (!context.flags.z()) goto notchangeloc;
context.data.byte(kNewlocation) = context.ah;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notchangeloc:
movemap(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void movemap(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ah, 32);
if (!context.flags.z()) goto notmapup2;
context._sub(context.data.byte(kMapy), 20);
context.data.byte(kNowinnewroom) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notmapup2:
context._cmp(context.ah, 16);
if (!context.flags.z()) goto notmapupspec;
context._sub(context.data.byte(kMapy), 10);
context.data.byte(kNowinnewroom) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notmapupspec:
context._cmp(context.ah, 8);
if (!context.flags.z()) goto notmapdownspec;
context._add(context.data.byte(kMapy), 10);
context.data.byte(kNowinnewroom) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notmapdownspec:
context._cmp(context.ah, 2);
if (!context.flags.z()) goto notmaprightspec;
context._add(context.data.byte(kMapx), 11);
context.data.byte(kNowinnewroom) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notmaprightspec:
context._sub(context.data.byte(kMapx), 11);
context.data.byte(kNowinnewroom) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getreelstart(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.data.word(kReelpointer);
context.cx = 40;
context._mul(context.cx);
context.es = context.data.word(kReels);
context.si = context.ax;
context._add(context.si, (0+(36*144)));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showreelframe(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.es.byte(context.si+2);
context.ah = 0;
context.di = context.ax;
@@ -3893,25 +4005,27 @@ void showreelframe(Context & context) {
context._sub(context.ax, context.data.word(kTakeoff));
context.ah = 8;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void deleverything(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kMapysize);
context.ah = 0;
context._add(context.ax, context.data.word(kMapoffsety));
context._cmp(context.ax, 182);
if (!context.flags.c()) goto bigroom;
maptopanel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
bigroom:
context._sub(context.data.byte(kMapysize), 8);
maptopanel(context);
context._add(context.data.byte(kMapysize), 8);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpeverything(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
dumpevery1:
@@ -3963,17 +4077,19 @@ dumpevery2:
context._add(context.bx, 5);
goto dumpevery2;
finishevery2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void allocatework(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = 0x1000;
allocatemem(context);
context.data.word(kWorkspace) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void readabyte(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.si, 30000);
if (!context.flags.z()) goto notendblock;
context.push(context.bx);
@@ -3990,10 +4106,11 @@ void readabyte(Context & context) {
context.si = 0;
notendblock:
context._lodsb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadpalfromiff(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 2481;
openfile(context);
context.cx = 2000;
@@ -4025,10 +4142,11 @@ palloop:
nought:
context._stosb();
if (--context.cx) goto palloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void paneltomap(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = context.data.word(kMapxstart);
context._add(context.di, context.data.word(kMapadx));
context.bx = context.data.word(kMapystart);
@@ -4038,10 +4156,11 @@ void paneltomap(Context & context) {
context.cl = context.data.byte(kMapxsize);
context.ch = context.data.byte(kMapysize);
multiget(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void maptopanel(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = context.data.word(kMapxstart);
context._add(context.di, context.data.word(kMapadx));
context.bx = context.data.word(kMapystart);
@@ -4051,10 +4170,11 @@ void maptopanel(Context & context) {
context.cl = context.data.byte(kMapxsize);
context.ch = context.data.byte(kMapysize);
multiput(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpmap(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = context.data.word(kMapxstart);
context._add(context.di, context.data.word(kMapadx));
context.bx = context.data.word(kMapystart);
@@ -4062,10 +4182,11 @@ void dumpmap(Context & context) {
context.cl = context.data.byte(kMapxsize);
context.ch = context.data.byte(kMapysize);
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void pixelcheckset(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context._sub(context.al, context.es.byte(context.bx));
context._sub(context.ah, context.es.byte(context.bx+1));
@@ -4102,10 +4223,11 @@ void pixelcheckset(Context & context) {
context.es = context.pop();
context.ax = context.pop();
context._cmp(context.dl, 0);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void createpanel(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 0;
context.bx = 8;
context.ds = context.data.word(kIcons2);
@@ -4130,10 +4252,11 @@ void createpanel(Context & context) {
context.al = 0;
context.ah = 2;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void createpanel2(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
context.di = 0;
context.bx = 0;
@@ -4147,10 +4270,11 @@ void createpanel2(Context & context) {
context.al = 5;
context.ah = 2;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearwork(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = 0x0;
context.es = context.data.word(kWorkspace);
context.di = 0;
@@ -4189,22 +4313,23 @@ clearloop:
context._stosw();
context._stosw();
if (--context.cx) goto clearloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void zoom(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) goto inwatching;
context._cmp(context.data.byte(kZoomon), 1);
if (context.flags.z()) goto zoomswitch;
inwatching:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
zoomswitch:
context._cmp(context.data.byte(kCommandtype), 199);
if (context.flags.c()) goto zoomit;
cantzoom:
putunderzoom(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
zoomit:
context.ax = context.data.word(kOldpointery);
context._sub(context.ax, 9);
@@ -4236,10 +4361,11 @@ zoomloop2:
if (--context.cx) goto zoomloop;
crosshair(context);
context.data.byte(kDidzoom) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void delthisone(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.ax);
context.al = context.ah;
@@ -4279,10 +4405,11 @@ deloneloop:
context._add(context.si, context.dx);
context._dec(context.ch);
if (!context.flags.z()) goto deloneloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void width160(Context & context) {
+ uint stack_depth = context.stack.size();
context._movsw();
context._movsw();
context._movsw();
@@ -4512,10 +4639,11 @@ void width160(Context & context) {
width1:
context._movsw();
width0:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void doblocks(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kWorkspace);
context.ax = context.data.word(kMapady);
context.cx = (320);
@@ -4627,10 +4755,11 @@ zeroblock:
context.di = context.pop();
context._add(context.di, (320)*16);
if (--context.cx) goto loop120;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showframe(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.dx);
context.push(context.ax);
context.cx = context.ax;
@@ -4642,7 +4771,7 @@ void showframe(Context & context) {
context._cmp(context.ds.word(context.si), 0);
if (!context.flags.z()) goto notblankshow;
context.cx = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notblankshow:
context._test(context.ah, 128);
if (!context.flags.z()) goto skipoffsets;
@@ -4679,7 +4808,7 @@ notcentred:
context.push(context.cx);
frameoutfx(context);
context.cx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notdiffdest:
context._test(context.ah, 8);
if (context.flags.z()) goto notprintlist;
@@ -4699,7 +4828,7 @@ notprintlist:
context.push(context.cx);
frameoutfx(context);
context.cx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notflippedx:
context._test(context.ah, 2);
if (context.flags.z()) goto notnomask;
@@ -4708,7 +4837,7 @@ notflippedx:
context.push(context.cx);
frameoutnm(context);
context.cx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notnomask:
context._test(context.ah, 32);
if (context.flags.z()) goto noeffects;
@@ -4717,17 +4846,18 @@ notnomask:
context.push(context.cx);
frameoutbh(context);
context.cx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
noeffects:
context.dx = (320);
context.es = context.data.word(kWorkspace);
context.push(context.cx);
frameoutv(context);
context.cx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void frameoutv(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -4752,7 +4882,7 @@ backtoother:
context._add(context.di, context.dx);
context._dec(context.ch);
if (!context.flags.z()) goto frameloop1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
frameloop3:
context._lodsb();
context._cmp(context.al, 0);
@@ -4764,10 +4894,11 @@ backtosolid:
context._add(context.di, context.dx);
context._dec(context.ch);
if (!context.flags.z()) goto frameloop1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void frameoutbh(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -4797,10 +4928,11 @@ nextline:
context.cx = context.pop();
context._dec(context.ch);
if (!context.flags.z()) goto bhloop2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void frameoutfx(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.dx);
context.ax = context.bx;
context.bx = context.dx;
@@ -4825,7 +4957,7 @@ backtootherfx:
context._add(context.di, context.dx);
context._dec(context.ch);
if (!context.flags.z()) goto frameloopfx1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
frameloopfx3:
context._lodsb();
context._cmp(context.al, 0);
@@ -4838,10 +4970,11 @@ backtosolidfx:
context._add(context.di, context.dx);
context._dec(context.ch);
if (!context.flags.z()) goto frameloopfx1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void transferinv(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = context.data.word(kExframepos);
context.push(context.di);
context.al = context.data.byte(kExpos);
@@ -4887,10 +5020,11 @@ void transferinv(Context & context) {
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
context._add(context.data.word(kExframepos), context.cx);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void transfermap(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = context.data.word(kExframepos);
context.push(context.di);
context.al = context.data.byte(kExpos);
@@ -4934,10 +5068,11 @@ void transfermap(Context & context) {
context.ax = context.pop();
context.es.word(context.bx+2) = context.ax;
context._add(context.data.word(kExframepos), context.cx);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dofade(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kFadedirection), 0);
if (context.flags.z()) goto finishfade;
context.cl = context.data.byte(kNumtofade);
@@ -4957,36 +5092,40 @@ void dofade(Context & context) {
if (!context.flags.z()) goto finishfade;
fadecalculation(context);
finishfade:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearendpal(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
context.al = 0;
while(context.cx--) context._stosb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearpalette(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kFadedirection) = 0;
clearstartpal(context);
dumpcurrent(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadescreenup(Context & context) {
+ uint stack_depth = context.stack.size();
clearstartpal(context);
paltoendpal(context);
context.data.byte(kFadedirection) = 1;
context.data.byte(kFadecount) = 63;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 128;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadetowhite(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.cx = 768;
@@ -5002,10 +5141,11 @@ void fadetowhite(Context & context) {
context.data.byte(kFadecount) = 63;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 128;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadefromwhite(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768;
@@ -5021,20 +5161,22 @@ void fadefromwhite(Context & context) {
context.data.byte(kFadecount) = 63;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 128;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadescreenups(Context & context) {
+ uint stack_depth = context.stack.size();
clearstartpal(context);
paltoendpal(context);
context.data.byte(kFadedirection) = 1;
context.data.byte(kFadecount) = 63;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 64;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadescreendownhalf(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
paltoendpal(context);
context.cx = 768;
@@ -5060,40 +5202,44 @@ halfend:
context.data.byte(kFadecount) = 31;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 32;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadescreenuphalf(Context & context) {
+ uint stack_depth = context.stack.size();
endpaltostart(context);
paltoendpal(context);
context.data.byte(kFadedirection) = 1;
context.data.byte(kFadecount) = 31;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 32;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadescreendown(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
clearendpal(context);
context.data.byte(kFadedirection) = 1;
context.data.byte(kFadecount) = 63;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 128;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadescreendowns(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
clearendpal(context);
context.data.byte(kFadedirection) = 1;
context.data.byte(kFadecount) = 63;
context.data.byte(kColourpos) = 0;
context.data.byte(kNumtofade) = 64;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearstartpal(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 256;
@@ -5103,10 +5249,11 @@ wholeloop1:
context.al = 0;
context._stosb();
if (--context.cx) goto wholeloop1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showgun(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kAddtored) = 0;
context.data.byte(kAddtogreen) = 0;
context.data.byte(kAddtoblue) = 0;
@@ -5157,15 +5304,17 @@ void showgun(Context & context) {
loadtemptext(context);
rollendcredits2(context);
getridoftemptext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void rollendcredits2(Context & context) {
+ uint stack_depth = context.stack.size();
rollem(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void rollem(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 160;
context.ch = 160;
context.di = 25;
@@ -5246,14 +5395,15 @@ gotnext2:
if (--context.cx) goto endcredits21;
context.cx = 120;
hangone(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endearly2:
context.cx = context.pop();
endearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadecalculation(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kFadecount), 0);
if (context.flags.z()) goto nomorefading;
context.bl = context.data.byte(kFadecount);
@@ -5280,13 +5430,14 @@ gotthere:
context._inc(context.di);
if (--context.cx) goto fadecolloop;
context._dec(context.data.byte(kFadecount));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nomorefading:
context.data.byte(kFadedirection) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void greyscalesum(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
@@ -5338,50 +5489,55 @@ noaddb:
context._add(context.si, 3);
context.cx = context.pop();
if (--context.cx) goto greysumloop1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void paltostartpal(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(context.cx--) context._movsw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void endpaltostart(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(context.cx--) context._movsw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void startpaltoend(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.cx = 768/2;
while(context.cx--) context._movsw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void paltoendpal(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768);
context.cx = 768/2;
while(context.cx--) context._movsw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void allpalette(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.ds = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3));
@@ -5389,10 +5545,11 @@ void allpalette(Context & context) {
context.cx = 768/2;
while(context.cx--) context._movsw();
dumpcurrent(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpcurrent(Context & context) {
+ uint stack_depth = context.stack.size();
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3));
context.ds = context.data.word(kBuffers);
vsync(context);
@@ -5403,10 +5560,11 @@ void dumpcurrent(Context & context) {
context.al = 128;
context.cx = 128;
showgroup(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadedownmon(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
@@ -5423,10 +5581,11 @@ void fadedownmon(Context & context) {
context.data.byte(kNumtofade) = 128;
context.cx = 64;
hangon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadeupmon(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
@@ -5443,10 +5602,11 @@ void fadeupmon(Context & context) {
context.data.byte(kNumtofade) = 128;
context.cx = 128;
hangon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadeupmonfirst(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
paltoendpal(context);
context.es = context.data.word(kBuffers);
@@ -5467,10 +5627,11 @@ void fadeupmonfirst(Context & context) {
playchannel1(context);
context.cx = 64;
hangon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fadeupyellows(Context & context) {
+ uint stack_depth = context.stack.size();
paltoendpal(context);
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768)+(231*3);
@@ -5486,10 +5647,11 @@ void fadeupyellows(Context & context) {
context.data.byte(kNumtofade) = 128;
context.cx = 128;
hangon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void initialmoncols(Context & context) {
+ uint stack_depth = context.stack.size();
paltostartpal(context);
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3))+(230*3);
@@ -5504,17 +5666,19 @@ void initialmoncols(Context & context) {
context.al = 230;
context.cx = 18;
showgroup(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void titles(Context & context) {
+ uint stack_depth = context.stack.size();
clearpalette(context);
biblequote(context);
intro(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void endgame(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 2260;
loadtemptext(context);
monkspeaking(context);
@@ -5524,10 +5688,11 @@ void endgame(Context & context) {
context.data.byte(kVolumedirection) = 1;
context.cx = 200;
hangon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void monkspeaking(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kRoomssample) = 35;
loadroomssample(context);
context.dx = 2364;
@@ -5582,20 +5747,22 @@ nextbit:
context.cx = 300;
hangon(context);
getridoftemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showmonk(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 0;
context.ah = 128;
context.di = 160;
context.bx = 72;
context.ds = context.data.word(kTempgraphics);
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void gettingshot(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kNewlocation) = 55;
clearpalette(context);
loadintroroom(context);
@@ -5604,16 +5771,18 @@ void gettingshot(Context & context) {
context.data.byte(kVolumedirection) = -1;
runendseq(context);
clearbeforeload(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void credits(Context & context) {
+ uint stack_depth = context.stack.size();
clearpalette(context);
realcredits(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void biblequote(Context & context) {
+ uint stack_depth = context.stack.size();
mode640x480(context);
context.dx = 2377;
showpcx(context);
@@ -5633,10 +5802,11 @@ void biblequote(Context & context) {
if (context.flags.z()) goto biblequotearly;
cancelch0(context);
biblequotearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void hangone(Context & context) {
+ uint stack_depth = context.stack.size();
hangonloope:
context.push(context.cx);
vsync(context);
@@ -5645,10 +5815,11 @@ hangonloope:
if (context.flags.z()) goto hangonearly;
if (--context.cx) goto hangonloope;
hangonearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intro(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 2247;
loadtemptext(context);
loadpalfromiff(context);
@@ -5688,10 +5859,11 @@ void intro(Context & context) {
getridoftemptext(context);
clearbeforeload(context);
introearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void runintroseq(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kGetback) = 0;
moreintroseq:
vsync(context);
@@ -5716,14 +5888,15 @@ moreintroseq:
if (context.flags.z()) goto earlyendrun;
context._cmp(context.data.byte(kGetback), 1);
if (!context.flags.z()) goto moreintroseq;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
earlyendrun:
getridoftemptext(context);
clearbeforeload(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void runendseq(Context & context) {
+ uint stack_depth = context.stack.size();
atmospheres(context);
context.data.byte(kGetback) = 0;
moreendseq:
@@ -5741,10 +5914,11 @@ moreendseq:
vsync(context);
context._cmp(context.data.byte(kGetback), 1);
if (!context.flags.z()) goto moreendseq;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadintroroom(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kIntrocount) = 0;
context.data.byte(kLocation) = 255;
loadroom(context);
@@ -5761,10 +5935,11 @@ void loadintroroom(Context & context) {
spriteupdate(context);
printsprites(context);
worktoscreen(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void realcredits(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kRoomssample) = 33;
loadroomssample(context);
context.data.byte(kVolume) = 0;
@@ -5884,10 +6059,11 @@ void realcredits(Context & context) {
context.cx = 256;
hangone(context);
realcreditsearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printchar(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.al, 255);
if (context.flags.z()) goto ignoreit;
context.push(context.si);
@@ -5911,15 +6087,16 @@ nokern:
context._add(context.di, context.cx);
context.cx = context.pop();
ignoreit:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void kernchars(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.al, 'a');
if (context.flags.z()) goto iskern;
context._cmp(context.al, 'u');
if (context.flags.z()) goto iskern;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
iskern:
context._cmp(context.ah, 'n');
if (context.flags.z()) goto kernit;
@@ -5931,13 +6108,14 @@ iskern:
if (context.flags.z()) goto kernit;
context._cmp(context.ah, 'l');
if (context.flags.z()) goto kernit;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
kernit:
context._dec(context.cl);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printslow(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kPointerframe) = 1;
context.data.byte(kPointermode) = 3;
context.ds = context.data.word(kCharset1);
@@ -6017,7 +6195,7 @@ finishslow:
context.di = context.pop();
context.bx = context.pop();
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
finishslow2:
context.es = context.pop();
context.si = context.pop();
@@ -6026,10 +6204,11 @@ finishslow2:
context.di = context.pop();
context.bx = context.pop();
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void waitframes(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.di);
context.push(context.bx);
context.push(context.es);
@@ -6046,10 +6225,11 @@ void waitframes(Context & context) {
context.es = context.pop();
context.bx = context.pop();
context.di = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printboth(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.cx);
context.push(context.bx);
@@ -6063,10 +6243,11 @@ void printboth(Context & context) {
context.bx = context.pop();
context.cx = context.pop();
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printdirect(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kLastxpos) = context.di;
context.ds = context.data.word(kCurrentset);
printloop6:
@@ -6098,10 +6279,11 @@ finishdirct:
context.dx = context.pop();
context.di = context.pop();
context.bx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void monprint(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kKerning) = 1;
context.si = context.bx;
context.dl = 166;
@@ -6176,10 +6358,11 @@ nottrigger2:
scrollmonitor(context);
context.bx = context.si;
context.data.byte(kKerning) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getnumber(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = 0;
context.push(context.si);
context.push(context.bx);
@@ -6228,7 +6411,7 @@ gotoverend:
context.si = context.pop();
context._add(context.di, context.ax);
context.cl = context.ch;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notcentre:
context.es = context.pop();
context.ds = context.pop();
@@ -6236,7 +6419,7 @@ notcentre:
context.bx = context.pop();
context.si = context.pop();
context.cl = context.ch;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endoftext:
context.al = context.cl;
context.ah = 0;
@@ -6271,7 +6454,7 @@ gotoverend2:
context.si = context.pop();
context._add(context.di, context.ax);
context.cl = context.ch;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notcent2:
context.es = context.pop();
context.ds = context.pop();
@@ -6279,10 +6462,11 @@ notcent2:
context.bx = context.pop();
context.si = context.pop();
context.cl = context.ch;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getnextword(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = 0;
getloop:
context.ax = context.es.word(context.di);
@@ -6312,14 +6496,15 @@ getloop:
endword:
context._add(context.bl, 6);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
endall:
context._add(context.bl, 6);
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fillryan(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32);
findallryan(context);
@@ -6359,10 +6544,11 @@ ryanloop1:
context._add(context.bx, (44));
if (--context.cx) goto ryanloop2;
showryanpage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void fillopen(Context & context) {
+ uint stack_depth = context.stack.size();
deltextline(context);
getopenedsize(context);
context._cmp(context.ah, 4);
@@ -6400,10 +6586,11 @@ nextopenslot:
context._cmp(context.cl, 5);
if (!context.flags.z()) goto openloop1;
undertextline(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findallryan(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.di);
context.cx = 30;
context.ax = 0x0ffff;
@@ -6432,10 +6619,11 @@ notinryaninv:
context._inc(context.ch);
context._cmp(context.ch, (114));
if (!context.flags.z()) goto findryanloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findallopen(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.di);
context.cx = 16;
context.ax = 0x0ffff;
@@ -6497,10 +6685,11 @@ findopen2a:
context._inc(context.ch);
context._cmp(context.ch, 80);
if (!context.flags.z()) goto findopen1a;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void obtoinv(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.bx);
context.push(context.es);
context.push(context.si);
@@ -6554,26 +6743,29 @@ finishfill:
context.si = context.pop();
context.es = context.pop();
context.bx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void isitworn(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.es.byte(context.bx+12);
context._cmp(context.al, 'W'-'A');
if (!context.flags.z()) goto notworn;
context.al = context.es.byte(context.bx+13);
context._cmp(context.al, 'E'-'A');
notworn:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makeworn(Context & context) {
+ uint stack_depth = context.stack.size();
context.es.byte(context.bx+12) = 'W'-'A';
context.es.byte(context.bx+13) = 'E'-'A';
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void examineob(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kPointermode) = 0;
context.data.word(kTimecount) = 0;
examineagain:
@@ -6631,14 +6823,15 @@ iswatching:
makemainscreen(context);
context.data.byte(kInvopen) = 0;
context.data.byte(kOpenedob) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
justgetback:
context.data.byte(kInvopen) = 0;
context.data.byte(kOpenedob) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makemainscreen(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
context.data.byte(kNewobs) = 1;
drawfloor(context);
@@ -6653,20 +6846,22 @@ void makemainscreen(Context & context) {
worktoscreenm(context);
context.data.byte(kCommandtype) = 200;
context.data.byte(kManisoffscreen) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getbackfromob(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kPickup), 1);
if (!context.flags.z()) goto notheldob;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notheldob:
getback1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void incryanpage(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 222);
if (context.flags.z()) goto alreadyincryan;
context.data.byte(kCommandtype) = 222;
@@ -6679,7 +6874,7 @@ alreadyincryan:
context._and(context.ax, 1);
if (!context.flags.z()) goto doincryan;
noincryan:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doincryan:
context.ax = context.data.word(kMousex);
context._sub(context.ax, (80)+167);
@@ -6694,10 +6889,11 @@ findnewpage:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openinv(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kInvopen) = 1;
context.al = 61;
context.di = (80);
@@ -6706,10 +6902,11 @@ void openinv(Context & context) {
printmessage(context);
fillryan(context);
context.data.byte(kCommandtype) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showryanpage(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kIcons1);
context.di = (80)+167;
context.bx = (58)-12;
@@ -6730,10 +6927,11 @@ void showryanpage(Context & context) {
context.ax = context.pop();
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openob(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kOpenedob);
context.ah = context.data.byte(kOpenedtype);
context.di = 5674;
@@ -6761,10 +6959,11 @@ void openob(Context & context) {
context._add(context.ax, (80));
context.bx = 2588;
context.cs.word(context.bx) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void obicons(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCommand);
getanyad(context);
context._cmp(context.al, 255);
@@ -6782,20 +6981,22 @@ cantopenit:
context.al = 1;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void examicon(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kIcons2);
context.di = 254;
context.bx = 5;
context.al = 3;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void obpicture(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCommand);
context.ah = context.data.byte(kObjecttype);
context._cmp(context.ah, 1);
@@ -6811,9 +7012,9 @@ void obpicture(Context & context) {
context._inc(context.al);
context.ah = 128;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
setframe:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
exframe:
context.ds = context.data.word(kExtras);
context.di = 160;
@@ -6824,10 +7025,11 @@ exframe:
context._inc(context.al);
context.ah = 128;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void describeob(Context & context) {
+ uint stack_depth = context.stack.size();
getobtextstart(context);
context.di = 33;
context.bx = 92;
@@ -6845,10 +7047,11 @@ void describeob(Context & context) {
obsthatdothings(context);
context.bx = context.pop();
additionaltext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void additionaltext(Context & context) {
+ uint stack_depth = context.stack.size();
context._add(context.bx, 10);
context.push(context.bx);
context.al = context.data.byte(kCommand);
@@ -6868,7 +7071,7 @@ void additionaltext(Context & context) {
compare(context);
if (context.flags.z()) goto fullcup;
context.bx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
emptycup:
context.al = 40;
findpuztext(context);
@@ -6877,7 +7080,7 @@ emptycup:
context.dl = 241;
context.ah = 0;
printdirect(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
fullcup:
context.al = 39;
findpuztext(context);
@@ -6886,10 +7089,11 @@ fullcup:
context.dl = 241;
context.ah = 0;
printdirect(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void obsthatdothings(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCommand);
context.ah = context.data.byte(kObjecttype);
context.cl = 'M';
@@ -6906,12 +7110,13 @@ void obsthatdothings(Context & context) {
setlocation(context);
lookatcard(context);
seencard:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notlouiscard:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getobtextstart(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kFreedesc);
context.si = (0);
context.cx = (0+(82*2));
@@ -6947,14 +7152,15 @@ tryagain:
context._cmp(context.al, ':');
if (context.flags.z()) goto findsometext;
cantmakeoneup:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
findsometext:
searchforsame(context);
goto tryagain;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void searchforsame(Context & context) {
+ uint stack_depth = context.stack.size();
context.si = context.cx;
searchagain:
context._inc(context.si);
@@ -6968,7 +7174,7 @@ search:
if (context.flags.c()) goto search;
context.si = context.bx;
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotstartletter:
context.push(context.bx);
context.push(context.si);
@@ -6989,10 +7195,11 @@ keepchecking:
foundmatch:
context.si = context.pop();
context.bx = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findnextcolon(Context & context) {
+ uint stack_depth = context.stack.size();
isntcolon:
context.al = context.es.byte(context.si);
context._inc(context.si);
@@ -7001,17 +7208,18 @@ isntcolon:
context._cmp(context.al, ':');
if (!context.flags.z()) goto isntcolon;
endofcolon:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void inventory(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kMandead), 1);
if (context.flags.z()) goto iswatchinv;
context._cmp(context.data.word(kWatchingtime), 0);
if (context.flags.z()) goto notwatchinv;
iswatchinv:
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwatchinv:
context._cmp(context.data.byte(kCommandtype), 239);
if (context.flags.z()) goto alreadyopinv;
@@ -7025,7 +7233,7 @@ alreadyopinv:
context._and(context.ax, 1);
if (!context.flags.z()) goto doopeninv;
cantopinv:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doopeninv:
context.data.word(kTimecount) = 0;
context.data.byte(kPointermode) = 0;
@@ -7102,19 +7310,20 @@ iswatching:
makemainscreen(context);
context.data.byte(kInvopen) = 0;
context.data.byte(kOpenedob) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
justgetback:
context.data.byte(kInvopen) = 0;
context.data.byte(kOpenedob) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
examlist:
invlist1:
openchangesize:
withlist1:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setpickup(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kObjecttype), 1);
if (context.flags.z()) goto cantpick;
context._cmp(context.data.byte(kObjecttype), 3);
@@ -7125,7 +7334,7 @@ void setpickup(Context & context) {
if (!context.flags.z()) goto canpick;
cantpick:
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canpick:
context._cmp(context.data.byte(kCommandtype), 209);
if (context.flags.z()) goto alreadysp;
@@ -7141,7 +7350,7 @@ alreadysp:
context._cmp(context.ax, context.data.word(kOldbutton));
if (!context.flags.z()) goto dosetpick;
nosetpick:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dosetpick:
createpanel(context);
showpanel(context);
@@ -7163,17 +7372,18 @@ dosetpick:
context.es.byte(context.bx+3) = 255;
openinv(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
pickupexob:
context.al = context.data.byte(kCommand);
context.data.byte(kItemframe) = context.al;
context.data.byte(kOpenedob) = 255;
openinv(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void examinventory(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 249);
if (context.flags.z()) goto alreadyexinv;
context.data.byte(kCommandtype) = 249;
@@ -7183,7 +7393,7 @@ alreadyexinv:
context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (!context.flags.z()) goto doexinv;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doexinv:
createpanel(context);
showpanel(context);
@@ -7194,31 +7404,34 @@ doexinv:
context.data.byte(kInvopen) = 2;
openinv(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void reexfrominv(Context & context) {
+ uint stack_depth = context.stack.size();
findinvpos(context);
context.ax = context.es.word(context.bx);
context.data.byte(kCommandtype) = context.ah;
context.data.byte(kCommand) = context.al;
context.data.byte(kExamagain) = 1;
context.data.byte(kPointermode) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void reexfromopen(Context & context) {
- return;
+ uint stack_depth = context.stack.size();
+ {assert(stack_depth == context.stack.size()); return; }
findopenpos(context);
context.ax = context.es.word(context.bx);
context.data.byte(kCommandtype) = context.ah;
context.data.byte(kCommand) = context.al;
context.data.byte(kExamagain) = 1;
context.data.byte(kPointermode) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void swapwithinv(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kItemframe);
context.ah = context.data.byte(kObjecttype);
context._cmp(context.ax, context.data.word(kOldsubject));
@@ -7238,7 +7451,7 @@ alreadyswap1:
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap1;
cantswap1:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doswap1:
context.ah = context.data.byte(kObjecttype);
context.al = context.data.byte(kItemframe);
@@ -7272,10 +7485,11 @@ doswap1:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void swapwithopen(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kItemframe);
context.ah = context.data.byte(kObjecttype);
context._cmp(context.ax, context.data.word(kOldsubject));
@@ -7295,13 +7509,13 @@ alreadyswap2:
context._and(context.ax, 1);
if (!context.flags.z()) goto doswap2;
cantswap2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doswap2:
geteitherad(context);
isitworn(context);
if (!context.flags.z()) goto notwornswap;
wornerror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwornswap:
delpointer(context);
context.al = context.data.byte(kItemframe);
@@ -7311,12 +7525,12 @@ notwornswap:
context._cmp(context.al, context.data.byte(kOpenedtype));
if (!context.flags.z()) goto isntsame2;
errormessage1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isntsame2:
checkobjectsize(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto sizeok2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
sizeok2:
context.ah = context.data.byte(kObjecttype);
context.al = context.data.byte(kItemframe);
@@ -7366,21 +7580,22 @@ actuallyswap:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void intoinv(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kPickup), 0);
if (!context.flags.z()) goto notout;
outofinv(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notout:
findinvpos(context);
context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (context.flags.z()) goto canplace1;
swapwithinv(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canplace1:
context.al = context.data.byte(kItemframe);
context.ah = context.data.byte(kObjecttype);
@@ -7401,7 +7616,7 @@ alreadyplce:
context._and(context.ax, 1);
if (!context.flags.z()) goto doplace;
notletgo2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doplace:
delpointer(context);
context.al = context.data.byte(kItemframe);
@@ -7417,10 +7632,11 @@ doplace:
outofinv(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void deletetaken(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kFreedat);
context.ah = context.data.byte(kReallocation);
context.ds = context.data.word(kExtras);
@@ -7440,22 +7656,23 @@ takenloop:
notinhere:
context._add(context.si, 16);
if (--context.cx) goto takenloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void outofinv(Context & context) {
+ uint stack_depth = context.stack.size();
findinvpos(context);
context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canpick2;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canpick2:
context.bx = context.data.word(kMousebutton);
context._cmp(context.bx, 2);
if (!context.flags.z()) goto canpick2a;
reexfrominv(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canpick2a:
context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub3;
@@ -7474,7 +7691,7 @@ alreadygrab:
context._and(context.ax, 1);
if (!context.flags.z()) goto dograb;
notletgo:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dograb:
delpointer(context);
context.data.byte(kPickup) = 1;
@@ -7491,41 +7708,45 @@ dograb:
intoinv(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getfreead(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.cl = 4;
context._shl(context.ax, context.cl);
context.bx = context.ax;
context.es = context.data.word(kFreedat);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getexad(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.bx = 16;
context._mul(context.bx);
context.bx = context.ax;
context.es = context.data.word(kExtras);
context._add(context.bx, (0+2080+30000));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void geteitherad(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto isinexlist;
context.al = context.data.byte(kItemframe);
getfreead(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isinexlist:
context.al = context.data.byte(kItemframe);
getexad(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getanyad(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto isex;
context._cmp(context.data.byte(kObjecttype), 2);
@@ -7533,35 +7754,37 @@ void getanyad(Context & context) {
context.al = context.data.byte(kCommand);
getsetad(context);
context.ax = context.es.word(context.bx+4);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isfree:
context.al = context.data.byte(kCommand);
getfreead(context);
context.ax = context.es.word(context.bx+7);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isex:
context.al = context.data.byte(kCommand);
getexad(context);
context.ax = context.es.word(context.bx+7);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getanyaddir(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ah, 4);
if (context.flags.z()) goto isex3;
context._cmp(context.ah, 2);
if (context.flags.z()) goto isfree3;
getsetad(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isfree3:
getfreead(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isex3:
getexad(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getopenedsize(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kOpenedtype), 4);
if (context.flags.z()) goto isex2;
context._cmp(context.data.byte(kOpenedtype), 2);
@@ -7569,29 +7792,31 @@ void getopenedsize(Context & context) {
context.al = context.data.byte(kOpenedob);
getsetad(context);
context.ax = context.es.word(context.bx+3);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isfree2:
context.al = context.data.byte(kOpenedob);
getfreead(context);
context.ax = context.es.word(context.bx+7);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isex2:
context.al = context.data.byte(kOpenedob);
getexad(context);
context.ax = context.es.word(context.bx+7);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getsetad(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.bx = 64;
context._mul(context.bx);
context.bx = context.ax;
context.es = context.data.word(kSetdat);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findinvpos(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = context.data.word(kMousex);
context._sub(context.cx, (80));
context.bx = -1;
@@ -7616,10 +7841,11 @@ findinv2:
context._add(context.bx, context.bx);
context.es = context.data.word(kBuffers);
context._add(context.bx, (0+(180*10)+32));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findopenpos(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = context.data.word(kMousex);
context._sub(context.cx, (80));
context.bx = -1;
@@ -7632,10 +7858,11 @@ findopenp1:
context._add(context.bx, context.bx);
context.es = context.data.word(kBuffers);
context._add(context.bx, (0+(180*10)));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dropobject(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 223);
if (context.flags.z()) goto alreadydrop;
context.data.byte(kCommandtype) = 223;
@@ -7652,13 +7879,13 @@ alreadydrop:
context._and(context.ax, 1);
if (!context.flags.z()) goto dodrop;
nodrop:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dodrop:
geteitherad(context);
isitworn(context);
if (!context.flags.z()) goto nowornerror;
wornerror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nowornerror:
context._cmp(context.data.byte(kReallocation), 47);
if (context.flags.z()) goto nodrop2;
@@ -7671,14 +7898,14 @@ nowornerror:
if (context.flags.c()) goto nodroperror;
nodrop2:
droperror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nodroperror:
context._cmp(context.data.byte(kMapxsize), 64);
if (!context.flags.z()) goto notinlift;
context._cmp(context.data.byte(kMapysize), 64);
if (!context.flags.z()) goto notinlift;
droperror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinlift:
context.al = context.data.byte(kItemframe);
context.ah = 4;
@@ -7723,10 +7950,11 @@ notinlift:
context.data.byte(kPickup) = 0;
context.al = context.data.byte(kReallocation);
context.es.byte(context.bx) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void droperror(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
@@ -7742,10 +7970,11 @@ void droperror(Context & context) {
examicon(context);
context.data.byte(kCommandtype) = 255;
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void cantdrop(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
@@ -7761,10 +7990,11 @@ void cantdrop(Context & context) {
examicon(context);
context.data.byte(kCommandtype) = 255;
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void wornerror(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
@@ -7780,10 +8010,11 @@ void wornerror(Context & context) {
examicon(context);
context.data.byte(kCommandtype) = 255;
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void removeobfrominv(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommand), 100);
if (context.flags.z()) goto obnotexist;
getanyad(context);
@@ -7792,16 +8023,17 @@ void removeobfrominv(Context & context) {
context.ch = 0;
deleteexobject(context);
obnotexist:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void selectopenob(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCommand);
getanyad(context);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canopenit1;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canopenit1:
context._cmp(context.data.byte(kCommandtype), 224);
if (context.flags.z()) goto alreadyopob;
@@ -7817,7 +8049,7 @@ alreadyopob:
context._and(context.ax, 1);
if (!context.flags.z()) goto doopenob;
noopenob:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doopenob:
context.al = context.data.byte(kCommand);
context.data.byte(kOpenedob) = context.al;
@@ -7835,16 +8067,17 @@ doopenob:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useopened(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kOpenedob), 255);
if (context.flags.z()) goto cannotuseopen;
context._cmp(context.data.byte(kPickup), 0);
if (!context.flags.z()) goto notout2;
outofopen(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notout2:
findopenpos(context);
context.ax = context.es.word(context.bx);
@@ -7852,12 +8085,12 @@ notout2:
if (context.flags.z()) goto canplace3;
swapwithopen(context);
cannotuseopen:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canplace3:
context._cmp(context.data.byte(kPickup), 1);
if (context.flags.z()) goto intoopen;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
intoopen:
context.al = context.data.byte(kItemframe);
context.ah = context.data.byte(kObjecttype);
@@ -7878,13 +8111,13 @@ alreadyplc2:
context._cmp(context.ax, 1);
if (context.flags.z()) goto doplace2;
notletgo3:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doplace2:
geteitherad(context);
isitworn(context);
if (!context.flags.z()) goto notworntoopen;
wornerror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notworntoopen:
delpointer(context);
context.al = context.data.byte(kItemframe);
@@ -7894,12 +8127,12 @@ notworntoopen:
context._cmp(context.al, context.data.byte(kOpenedtype));
if (!context.flags.z()) goto isntsame;
errormessage1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isntsame:
checkobjectsize(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto sizeok1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
sizeok1:
context.data.byte(kPickup) = 0;
context.al = context.data.byte(kItemframe);
@@ -7919,10 +8152,11 @@ sizeok1:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void errormessage1(Context & context) {
+ uint stack_depth = context.stack.size();
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -7943,10 +8177,11 @@ void errormessage1(Context & context) {
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void errormessage2(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCommandtype) = 255;
delpointer(context);
context.di = 76;
@@ -7968,10 +8203,11 @@ void errormessage2(Context & context) {
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void errormessage3(Context & context) {
+ uint stack_depth = context.stack.size();
delpointer(context);
context.di = 76;
context.bx = 21;
@@ -7989,10 +8225,11 @@ void errormessage3(Context & context) {
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkobjectsize(Context & context) {
+ uint stack_depth = context.stack.size();
getopenedsize(context);
context.push(context.ax);
context.al = context.data.byte(kItemframe);
@@ -8027,13 +8264,14 @@ bothspecial:
errormessage3(context);
sizewrong:
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
sizeok:
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void outofopen(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kOpenedob), 255);
if (context.flags.z()) goto cantuseopen;
findopenpos(context);
@@ -8042,7 +8280,7 @@ void outofopen(Context & context) {
if (!context.flags.z()) goto canpick4;
cantuseopen:
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canpick4:
context._cmp(context.ax, context.data.word(kOldsubject));
if (!context.flags.z()) goto difsub4;
@@ -8064,7 +8302,7 @@ alreadygrb:
if (!context.flags.z()) goto notletgo4;
reexfromopen(context);
notletgo4:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dogrb:
delpointer(context);
context.data.byte(kPickup) = 1;
@@ -8093,10 +8331,11 @@ actuallyout:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void transfertoex(Context & context) {
+ uint stack_depth = context.stack.size();
emergencypurge(context);
getexpos(context);
context.al = context.data.byte(kExpos);
@@ -8134,10 +8373,11 @@ void transfertoex(Context & context) {
context.ds.byte(context.si+2) = 254;
pickupconts(context);
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void pickupconts(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.ds.byte(context.si+7);
context._cmp(context.al, 255);
if (context.flags.z()) goto notopenable;
@@ -8170,10 +8410,11 @@ notinsidethis:
context._cmp(context.cx, 80);
if (!context.flags.z()) goto pickupcontloop;
notopenable:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void transfercontoex(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.push(context.dx);
@@ -8200,10 +8441,11 @@ void transfercontoex(Context & context) {
context.si = context.pop();
context.ds = context.pop();
context.ds.byte(context.si+2) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void transfertext(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kExtras);
context.al = context.data.byte(kExpos);
context.ah = 0;
@@ -8228,10 +8470,11 @@ moretext:
context._inc(context.data.word(kExtextpos));
context._cmp(context.al, 0);
if (!context.flags.z()) goto moretext;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getexpos(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kExtras);
context.al = 0;
context.di = (0+2080+30000);
@@ -8244,10 +8487,11 @@ tryanotherex:
if (!context.flags.z()) goto tryanotherex;
foundnewex:
context.data.byte(kExpos) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void purgealocation(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.es = context.data.word(kExtras);
context.di = (0+2080+30000);
@@ -8272,10 +8516,11 @@ dontpurge:
context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto purgeloc;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void emergencypurge(Context & context) {
+ uint stack_depth = context.stack.size();
checkpurgeagain:
context.ax = context.data.word(kExframepos);
context._add(context.ax, 4000);
@@ -8291,10 +8536,11 @@ notnearframeend:
purgeanitem(context);
goto checkpurgeagain;
notneartextend:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void purgeanitem(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kExtras);
context.di = (0+2080+30000);
context.bl = context.data.byte(kReallocation);
@@ -8311,7 +8557,7 @@ iscup:
context._cmp(context.es.byte(context.di+11), context.bl);
if (context.flags.z()) goto cantpurge;
deleteexobject(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cantpurge:
context._add(context.di, 16);
context._inc(context.cx);
@@ -8327,16 +8573,17 @@ lookforpurge2:
context._cmp(context.es.byte(context.di+12), 255);
if (!context.flags.z()) goto cantpurge2;
deleteexobject(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cantpurge2:
context._add(context.di, 16);
context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto lookforpurge2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void deleteexobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.cx);
context.push(context.cx);
context.push(context.cx);
@@ -8377,10 +8624,11 @@ notinsideex:
context._inc(context.cx);
context._cmp(context.cx, (114));
if (!context.flags.z()) goto deleteconts;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void deleteexframe(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (0);
context.ah = 0;
context._add(context.ax, context.ax);
@@ -8416,10 +8664,11 @@ beforethisone:
context.es.word(context.di+2) = context.ax;
context._add(context.di, 6);
if (--context.cx) goto shuffleadsdown;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void deleteextext(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (0+2080+30000+(16*114));
context.ah = 0;
context._add(context.ax, context.ax);
@@ -8457,19 +8706,21 @@ beforethistext:
context.es.word(context.di) = context.ax;
context._add(context.di, 2);
if (--context.cx) goto shuffletextads;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void blockget(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = context.al;
context.al = 0;
context.ds = context.data.word(kBackdrop);
context.si = (0+192);
context._add(context.si, context.ax);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void drawfloor(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
eraseoldobs(context);
@@ -8484,10 +8735,11 @@ void drawfloor(Context & context) {
context.data.byte(kNewobs) = 0;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void calcmapad(Context & context) {
+ uint stack_depth = context.stack.size();
getdimension(context);
context.push(context.cx);
context.push(context.dx);
@@ -8511,10 +8763,11 @@ void calcmapad(Context & context) {
context._mul(context.bx);
context._add(context.ax, context.data.word(kMapoffsety));
context.data.word(kMapady) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getdimension(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32));
context.ch = 0;
@@ -8591,10 +8844,11 @@ finishdim4:
context._shl(context.ax, 1);
context._shl(context.ax, 1);
context.data.byte(kMapysize) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void addalong(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 11;
addloop:
context._cmp(context.es.byte(context.bx), 0);
@@ -8603,13 +8857,14 @@ addloop:
context._dec(context.ah);
if (!context.flags.z()) goto addloop;
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotalong:
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void addlength(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 10;
addloop2:
context._cmp(context.es.byte(context.bx), 0);
@@ -8618,13 +8873,14 @@ addloop2:
context._dec(context.ah);
if (!context.flags.z()) goto addloop2;
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotlength:
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void drawflags(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.di = (0+(180*10)+32+60+(32*32));
context.al = context.data.byte(kMapy);
@@ -8658,10 +8914,11 @@ _tmp28a:
context._add(context.si, (66)-11);
context.cx = context.pop();
if (--context.cx) goto _tmp28;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void eraseoldobs(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kNewobs), 0);
if (context.flags.z()) goto donterase;
context.es = context.data.word(kBuffers);
@@ -8683,10 +8940,11 @@ notthisob:
context._add(context.bx, (32));
if (--context.cx) goto oberase;
donterase:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showallobs(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
context.data.word(kListpos) = context.bx;
@@ -8765,10 +9023,11 @@ blankframe:
if (context.flags.z()) goto finishedsetobs;
goto showobsloop;
finishedsetobs:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makebackob(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kNewobs), 0);
if (context.flags.z()) goto nomake;
context.al = context.es.byte(context.si+5);
@@ -8798,10 +9057,11 @@ usedpriority:
context.es.byte(context.bx+19) = 0;
context.si = context.pop();
nomake:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showallfree(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
context.data.word(kListpos) = context.bx;
@@ -8877,10 +9137,11 @@ over138:
if (context.flags.z()) goto finfree;
goto loop127;
finfree:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showallex(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
context.data.word(kListpos) = context.bx;
@@ -8961,10 +9222,11 @@ blankex:
if (context.flags.z()) goto finex;
goto exloop;
finex:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void calcfrframe(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = context.data.word(kFrsegment);
context.ax = context.data.word(kFramesad);
context.push(context.ax);
@@ -8991,15 +9253,16 @@ void calcfrframe(Context & context) {
context.al = context.ah;
context.ah = 0;
context.data.word(kOffsety) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nullframe:
context.ax = context.pop();
context.cx = 0;
context.data.word(kSavesize) = context.cx;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void finalframe(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.data.word(kObjecty);
context._add(context.ax, context.data.word(kOffsety));
context.bx = context.data.word(kObjectx);
@@ -9008,10 +9271,11 @@ void finalframe(Context & context) {
context.data.byte(kSavey) = context.al;
context.di = context.data.word(kObjectx);
context.bx = context.data.word(kObjecty);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void adjustlen(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = context.al;
context._add(context.al, context.ch);
context._cmp(context.al, 100);
@@ -9020,10 +9284,11 @@ void adjustlen(Context & context) {
context._sub(context.al, context.ch);
context.ch = context.al;
over242:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getmapad(Context & context) {
+ uint stack_depth = context.stack.size();
getxad(context);
context._cmp(context.ch, 0);
if (context.flags.z()) goto over146;
@@ -9034,10 +9299,11 @@ void getmapad(Context & context) {
context.data.word(kObjecty) = context.ax;
context.ch = 1;
over146:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getxad(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = context.es.byte(context.si);
context._inc(context.si);
context.al = context.es.byte(context.si);
@@ -9055,13 +9321,14 @@ void getxad(Context & context) {
context._or(context.al, context.ah);
context.ah = 0;
context.ch = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
over148:
context.ch = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getyad(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.es.byte(context.si);
context._inc(context.si);
context.ah = context.es.byte(context.si);
@@ -9075,13 +9342,14 @@ void getyad(Context & context) {
context._or(context.al, context.ah);
context.ah = 0;
context.ch = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
over147:
context.ch = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void autolook(Context & context) {
+ uint stack_depth = context.stack.size();
context.ax = context.data.word(kMousex);
context._cmp(context.ax, context.data.word(kOldx));
if (!context.flags.z()) goto diffmouse;
@@ -9095,13 +9363,14 @@ void autolook(Context & context) {
if (!context.flags.z()) goto noautolook;
dolook(context);
noautolook:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
diffmouse:
context.data.word(kLookcounter) = 1000;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void look(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kPointermode), 2);
@@ -9119,10 +9388,11 @@ alreadylook:
if (context.flags.z()) goto nolook;
dolook(context);
nolook:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dolook(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
showicon(context);
undertextline(context);
@@ -9155,10 +9425,11 @@ afterlook:
context.data.byte(kCommandtype) = 0;
redrawmainscrn(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void redrawmainscrn(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kTimecount) = 0;
createpanel(context);
context.data.byte(kNewobs) = 0;
@@ -9170,14 +9441,15 @@ void redrawmainscrn(Context & context) {
undertextline(context);
readmouse(context);
context.data.byte(kCommandtype) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getback1(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kPickup), 0);
if (context.flags.z()) goto notgotobject;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notgotobject:
context._cmp(context.data.byte(kCommandtype), 202);
if (context.flags.z()) goto alreadyget;
@@ -9191,14 +9463,15 @@ alreadyget:
context._and(context.ax, 1);
if (!context.flags.z()) goto dogetback;
nogetback:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dogetback:
context.data.byte(kGetback) = 1;
context.data.byte(kPickup) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void talk(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kTalkpos) = 0;
context.data.byte(kInmaparea) = 0;
context.al = context.data.byte(kCommand);
@@ -9244,10 +9517,11 @@ notnexttalk:
context.data.byte(kVolumedirection) = -1;
context.data.byte(kVolumeto) = 0;
nospeech:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void convicons(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
getpersframe(context);
@@ -9259,20 +9533,22 @@ void convicons(Context & context) {
context._sub(context.ax, context.data.word(kTakeoff));
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getpersframe(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context._add(context.ax, context.ax);
context.bx = context.ax;
context.es = context.data.word(kPeople);
context._add(context.bx, (0));
context.ax = context.es.word(context.bx);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void starttalk(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kTalkmode) = 0;
context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
@@ -9292,10 +9568,11 @@ void starttalk(Context & context) {
context.ah = 0;
printdirect(context);
nospeech1:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getpersontext(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.cx = 64*2;
context._mul(context.cx);
@@ -9306,14 +9583,15 @@ void getpersontext(Context & context) {
context.ax = context.es.word(context.si);
context._add(context.ax, context.cx);
context.si = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void moretalk(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kTalkmode), 0);
if (context.flags.z()) goto canmore;
redes(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canmore:
context._cmp(context.data.byte(kCommandtype), 215);
if (context.flags.z()) goto alreadymore;
@@ -9327,7 +9605,7 @@ alreadymore:
context._and(context.ax, 1);
if (!context.flags.z()) goto domoretalk;
nomore:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
domoretalk:
context.data.byte(kTalkmode) = 2;
context.data.byte(kTalkpos) = 4;
@@ -9336,10 +9614,11 @@ domoretalk:
context.data.byte(kTalkpos) = 48;
notsecondpart:
dosometalk(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dosometalk(Context & context) {
+ uint stack_depth = context.stack.size();
watchtalk:
context.al = context.data.byte(kTalkpos);
context.al = context.data.byte(kCharacter);
@@ -9429,10 +9708,11 @@ skiptalk:
goto watchtalk;
endwatchtalk:
context.data.byte(kPointermode) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void hangonpq(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kGetback) = 0;
context.bx = 0;
hangloopq:
@@ -9466,23 +9746,24 @@ notspeaking:
finishconv:
delpointer(context);
context.data.byte(kPointermode) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
quitconv:
delpointer(context);
context.data.byte(kPointermode) = 0;
context.ax = context.pop();
cancelch1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void redes(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCh1playing), 255);
if (!context.flags.z()) goto cantredes;
context._cmp(context.data.byte(kTalkmode), 2);
if (context.flags.z()) goto canredes;
cantredes:
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canredes:
context._cmp(context.data.byte(kCommandtype), 217);
if (context.flags.z()) goto alreadyreds;
@@ -9493,7 +9774,7 @@ alreadyreds:
context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (!context.flags.z()) goto doredes;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doredes:
delpointer(context);
createpanel(context);
@@ -9506,27 +9787,29 @@ doredes:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void newplace(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kNeedtotravel), 1);
if (context.flags.z()) goto istravel;
context._cmp(context.data.byte(kAutolocation), -1);
if (!context.flags.z()) goto isautoloc;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isautoloc:
context.al = context.data.byte(kAutolocation);
context.data.byte(kNewlocation) = context.al;
context.data.byte(kAutolocation) = -1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
istravel:
context.data.byte(kNeedtotravel) = 0;
selectlocation(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void selectlocation(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kInmaparea) = 0;
clearbeforeload(context);
context.data.byte(kGetback) = 0;
@@ -9572,7 +9855,7 @@ select:
getridoftemp3(context);
context.es = context.data.word(kTraveltext);
deallocatemem(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
quittravel:
context.al = context.data.byte(kReallocation);
context.data.byte(kNewlocation) = context.al;
@@ -9582,10 +9865,11 @@ quittravel:
getridoftemp3(context);
context.es = context.data.word(kTraveltext);
deallocatemem(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showcity(Context & context) {
+ uint stack_depth = context.stack.size();
clearwork(context);
context.ds = context.data.word(kTempgraphics);
context.di = 57;
@@ -9599,10 +9883,11 @@ void showcity(Context & context) {
context.al = 1;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lookatplace(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 224);
if (context.flags.z()) goto alreadyinfo;
context.data.byte(kCommandtype) = 224;
@@ -9654,10 +9939,11 @@ afterinfo:
putundercentre(context);
worktoscreenm(context);
noinfo:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getundercentre(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 58;
context.bx = 72;
context.ds = context.data.word(kMapstore);
@@ -9665,10 +9951,11 @@ void getundercentre(Context & context) {
context.cl = 254;
context.ch = 110;
multiget(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void putundercentre(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 58;
context.bx = 72;
context.ds = context.data.word(kMapstore);
@@ -9676,10 +9963,11 @@ void putundercentre(Context & context) {
context.cl = 254;
context.ch = 110;
multiput(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void locationpic(Context & context) {
+ uint stack_depth = context.stack.size();
getdestinfo(context);
context.al = context.es.byte(context.si);
context.push(context.es);
@@ -9722,10 +10010,11 @@ notinthisone:
context.al = 0;
context.ah = 0;
printdirect(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getdestinfo(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kDestpos);
context.ah = 0;
context.push(context.ax);
@@ -9741,10 +10030,11 @@ void getdestinfo(Context & context) {
context.si = 7798;
context._add(context.si, context.ax);
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showarrows(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 116-12;
context.bx = 16;
context.ds = context.data.word(kTempgraphics);
@@ -9763,10 +10053,11 @@ void showarrows(Context & context) {
context.al = 2;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void nextdest(Context & context) {
+ uint stack_depth = context.stack.size();
duok:
context._cmp(context.data.byte(kCommandtype), 218);
if (context.flags.z()) goto alreadydu;
@@ -9801,10 +10092,11 @@ notlastdest:
worktoscreen(context);
delpointer(context);
nodu:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lastdest(Context & context) {
+ uint stack_depth = context.stack.size();
ddok:
context._cmp(context.data.byte(kCommandtype), 219);
if (context.flags.z()) goto alreadydd;
@@ -9839,10 +10131,11 @@ notfirstdest:
worktoscreen(context);
delpointer(context);
nodd:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void destselect(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 222);
if (context.flags.z()) goto alreadytrav;
context.data.byte(kCommandtype) = 222;
@@ -9858,30 +10151,33 @@ alreadytrav:
context.al = context.data.byte(kDestpos);
context.data.byte(kNewlocation) = context.al;
notrav:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getlocation(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
context._add(context.bx, 7782);
context.al = context.es.byte(context.bx);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setlocation(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
context._add(context.bx, 7782);
context.es.byte(context.bx) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void resetlocation(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context._cmp(context.al, 5);
if (!context.flags.z()) goto notdelhotel;
@@ -9925,26 +10221,29 @@ clearedlocations:
context.es = context.dx;
context._add(context.bx, 7782);
context.es.byte(context.bx) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void readdesticon(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 2013;
loadintotemp(context);
context.dx = 2026;
loadintotemp2(context);
context.dx = 1961;
loadintotemp3(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void readcitypic(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 2000;
loadintotemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usemon(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kLasttrigger) = 0;
context.es = context.cs;
context.di = 2892+1;
@@ -10031,10 +10330,11 @@ endmon:
restoreall(context);
redrawmainscrn(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printoutermon(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 40;
context.bx = 32;
context.ds = context.data.word(kTempgraphics);
@@ -10059,10 +10359,11 @@ void printoutermon(Context & context) {
context.al = 4;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadpersonal(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kLocation);
context.dx = 2052;
context._cmp(context.al, 0);
@@ -10086,10 +10387,11 @@ foundpersonal:
context.dx = 0;
readfromfile(context);
closefile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadnews(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kNewsitem);
context.dx = 2078;
context._cmp(context.al, 0);
@@ -10115,10 +10417,11 @@ foundnews:
context.dx = 0;
readfromfile(context);
closefile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadcart(Context & context) {
+ uint stack_depth = context.stack.size();
lookininterface(context);
context.dx = 2130;
context._cmp(context.al, 0);
@@ -10147,10 +10450,11 @@ gotcart:
context.dx = 0;
readfromfile(context);
closefile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lookininterface(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 'I';
context.ah = 'N';
context.cl = 'T';
@@ -10162,13 +10466,14 @@ void lookininterface(Context & context) {
if (context.flags.z()) goto emptyinterface;
context.al = context.es.byte(context.bx+15);
context._inc(context.al);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
emptyinterface:
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void turnonpower(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = 3;
powerloop:
context.push(context.cx);
@@ -10181,10 +10486,11 @@ powerloop:
context.cx = context.pop();
if (--context.cx) goto powerloop;
powerlighton(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void randomaccess(Context & context) {
+ uint stack_depth = context.stack.size();
accessloop:
context.push(context.cx);
vsync(context);
@@ -10201,10 +10507,11 @@ chosenaccess:
context.cx = context.pop();
if (--context.cx) goto accessloop;
accesslightoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void powerlighton(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 257+4;
context.bx = 182;
context.ds = context.data.word(kTempgraphics);
@@ -10218,10 +10525,11 @@ void powerlighton(Context & context) {
context.cl = 12;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void powerlightoff(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 257+4;
context.bx = 182;
context.ds = context.data.word(kTempgraphics);
@@ -10235,10 +10543,11 @@ void powerlightoff(Context & context) {
context.cl = 12;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void accesslighton(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 74;
context.bx = 182;
context.ds = context.data.word(kTempgraphics);
@@ -10252,10 +10561,11 @@ void accesslighton(Context & context) {
context.cl = 12;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void accesslightoff(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 74;
context.bx = 182;
context.ds = context.data.word(kTempgraphics);
@@ -10269,10 +10579,11 @@ void accesslightoff(Context & context) {
context.cl = 12;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void locklighton(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 56;
context.bx = 182;
context.ds = context.data.word(kTempgraphics);
@@ -10286,10 +10597,11 @@ void locklighton(Context & context) {
context.cl = 12;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void locklightoff(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 56;
context.bx = 182;
context.ds = context.data.word(kTempgraphics);
@@ -10303,10 +10615,11 @@ void locklightoff(Context & context) {
context.cl = 12;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void input(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.cs;
context.di = 7816;
context.cx = 64;
@@ -10392,18 +10705,20 @@ notleadingspace:
context._add(context.data.word(kCurslocx), context.cx);
goto waitkey;
endofinput:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makecaps(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.al, 'a');
if (context.flags.c()) goto notupperc;
context._sub(context.al, 32);
notupperc:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void delchar(Context & context) {
+ uint stack_depth = context.stack.size();
context._dec(context.data.word(kCurpos));
context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
@@ -10428,10 +10743,11 @@ void delchar(Context & context) {
context.cl = context.al;
context.ch = 8;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void execcommand(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.cs;
context.bx = 2776;
context.ds = context.cs;
@@ -10440,7 +10756,7 @@ void execcommand(Context & context) {
context._cmp(context.al, 0);
if (!context.flags.z()) goto notblankinp;
scrollmonitor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notblankinp:
context.cl = 0;
comloop:
@@ -10463,7 +10779,7 @@ comloop2:
if (!context.flags.z()) goto comloop;
neterror(context);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
foundcom:
context.si = context.pop();
context.bx = context.pop();
@@ -10481,44 +10797,46 @@ foundcom:
directory:
dircom(context);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
signoncom:
signon(context);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
accesscom:
read(context);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyscom:
showkeys(context);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
testcom:
context.al = 6;
monmessage(context);
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
quitcom:
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void neterror(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 5;
monmessage(context);
scrollmonitor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dircom(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = 30;
randomaccess(context);
parser(context);
context._cmp(context.es.byte(context.di+1), 0);
if (context.flags.z()) goto dirroot;
dirfile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dirroot:
context.data.byte(kLogonum) = 0;
context.ds = context.cs;
@@ -10540,10 +10858,11 @@ dirroot:
context.es = context.data.word(kTextfile3);
searchforfiles(context);
scrollmonitor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void searchforfiles(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = (66*2);
directloop1:
context.al = context.es.byte(context.bx);
@@ -10555,10 +10874,11 @@ directloop1:
monprint(context);
goto directloop1;
endofdir:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void signon(Context & context) {
+ uint stack_depth = context.stack.size();
parser(context);
context._inc(context.di);
context.ds = context.cs;
@@ -10588,7 +10908,7 @@ nomatch:
if (--context.cx) goto signonloop;
context.al = 13;
monmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
foundsign:
context.di = context.pop();
context.si = context.pop();
@@ -10599,7 +10919,7 @@ foundsign:
if (context.flags.z()) goto notyetassigned;
context.al = 17;
monmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notyetassigned:
context.push(context.es);
context.push(context.bx);
@@ -10636,7 +10956,7 @@ passerror:
scrollmonitor(context);
context.al = 16;
monmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
passpassed:
context.al = 14;
monmessage(context);
@@ -10650,10 +10970,11 @@ passpassed:
context.bx = context.pop();
context.es = context.pop();
context.es.byte(context.bx) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showkeys(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = 10;
randomaccess(context);
scrollmonitor(context);
@@ -10675,17 +10996,18 @@ notheld:
context._add(context.bx, 26);
if (--context.cx) goto keysloop;
scrollmonitor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void read(Context & context) {
+ uint stack_depth = context.stack.size();
context.cx = 40;
randomaccess(context);
parser(context);
context._cmp(context.es.byte(context.di+1), 0);
if (!context.flags.z()) goto okcom;
neterror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
okcom:
context.es = context.cs;
context.di = 2892;
@@ -10712,12 +11034,12 @@ okcom:
if (context.flags.z()) goto foundfile2;
context.al = 7;
monmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
foundfile2:
getkeyandlogo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto keyok1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyok1:
context.es = context.cs;
context.di = 2883;
@@ -10729,7 +11051,7 @@ keyok1:
context.data.byte(kLogonum) = context.al;
context.al = 11;
monmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
findtopictext:
context._inc(context.bx);
context.push(context.es);
@@ -10757,10 +11079,11 @@ moretopic:
goto moretopic;
endoftopic:
scrollmonitor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dirfile(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 34;
context.es.byte(context.di) = context.al;
context.push(context.es);
@@ -10792,14 +11115,14 @@ void dirfile(Context & context) {
context.es = context.pop();
context.al = 7;
monmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
foundfile:
context.ax = context.pop();
context.ax = context.pop();
getkeyandlogo(context);
context._cmp(context.al, 0);
if (context.flags.z()) goto keyok2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyok2:
context.push(context.es);
context.push(context.bx);
@@ -10828,10 +11151,11 @@ directloop2:
goto directloop2;
endofdir2:
scrollmonitor(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getkeyandlogo(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.bx);
context.al = context.es.byte(context.bx);
context._sub(context.al, 48);
@@ -10865,17 +11189,18 @@ void getkeyandlogo(Context & context) {
context.bx = context.pop();
context.es = context.pop();
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyok:
context.bx = context.pop();
context.es = context.pop();
context.al = context.data.byte(kNewlogonum);
context.data.byte(kLogonum) = context.al;
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void searchforstring(Context & context) {
+ uint stack_depth = context.stack.size();
context.dl = context.es.byte(context.di);
context.cx = context.di;
restartlook:
@@ -10907,13 +11232,14 @@ complete:
context.es = context.ds;
context.al = 0;
context.bx = context.si;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notfound:
context.al = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void parser(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.cs;
context.di = 2883;
context.cx = 13;
@@ -10944,10 +11270,11 @@ copyin1:
if (!context.flags.z()) goto copyin1;
finishpars:
context.di = 2883;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void scrollmonitor(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.bx);
context.push(context.cx);
@@ -10972,10 +11299,11 @@ void scrollmonitor(Context & context) {
context.cx = context.pop();
context.bx = context.pop();
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lockmon(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLasthardkey), 57);
if (!context.flags.z()) goto notlock;
locklighton(context);
@@ -10984,10 +11312,11 @@ lockloop:
if (context.flags.z()) goto lockloop;
locklightoff(context);
notlock:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void monitorlogo(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kLogonum);
context._cmp(context.al, context.data.byte(kOldlogonum));
if (context.flags.z()) goto notnewlogo;
@@ -11001,13 +11330,14 @@ void monitorlogo(Context & context) {
playchannel1(context);
context.cx = 20;
randomaccess(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notnewlogo:
printlogo(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printlogo(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 56;
context.bx = 32;
context.ds = context.data.word(kTempgraphics);
@@ -11015,10 +11345,11 @@ void printlogo(Context & context) {
context.ah = 0;
showframe(context);
showcurrentfile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showcurrentfile(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = 178;
context.bx = 37;
context.si = 2892+1;
@@ -11034,10 +11365,11 @@ curfileloop:
context.si = context.pop();
goto curfileloop;
finishfile:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void monmessage(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kTextfile1);
context.bx = (66*2);
context.cl = context.al;
@@ -11049,17 +11381,18 @@ monmessageloop:
if (!context.flags.z()) goto monmessageloop;
if (--context.cx) goto monmessageloop;
monprint(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void processtrigger(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLasttrigger), '1');
if (!context.flags.z()) goto notfirsttrigger;
context.al = 8;
setlocation(context);
context.al = 45;
triggermessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notfirsttrigger:
context._cmp(context.data.byte(kLasttrigger), '2');
if (!context.flags.z()) goto notsecondtrigger;
@@ -11067,7 +11400,7 @@ notfirsttrigger:
setlocation(context);
context.al = 55;
triggermessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notsecondtrigger:
context._cmp(context.data.byte(kLasttrigger), '3');
if (!context.flags.z()) goto notthirdtrigger;
@@ -11076,10 +11409,11 @@ notsecondtrigger:
context.al = 59;
triggermessage(context);
notthirdtrigger:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void triggermessage(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.di = 174;
context.bx = 153;
@@ -11109,10 +11443,11 @@ void triggermessage(Context & context) {
multiput(context);
worktoscreen(context);
context.data.byte(kLasttrigger) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void printcurs(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.si);
context.push(context.di);
context.push(context.ds);
@@ -11154,10 +11489,11 @@ flashcurs:
context.ds = context.pop();
context.di = context.pop();
context.si = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void delcurs(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.push(context.di);
@@ -11185,10 +11521,11 @@ finishcurdel:
context.di = context.pop();
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kWithobject) = 255;
context._cmp(context.data.byte(kCommandtype), 229);
if (context.flags.z()) goto alreadyuse;
@@ -11204,18 +11541,19 @@ alreadyuse:
context._and(context.ax, 1);
if (!context.flags.z()) goto douse;
nouse:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
douse:
useroutine(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useroutine(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 50);
if (context.flags.c()) goto nodream7;
context._cmp(context.data.byte(kPointerpower), 0);
if (!context.flags.z()) goto powerok;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
powerok:
context.data.byte(kPointerpower) = 0;
nodream7:
@@ -11244,7 +11582,7 @@ checkuselist:
context._lodsw();
context.si = context.pop();
__dispatch_call(context, context.ax);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
failed:
context.si = context.pop();
context._add(context.si, 6);
@@ -11265,7 +11603,7 @@ failed:
context.cx = 400;
hangonp(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cantuse2:
createpanel(context);
showpanel(context);
@@ -11282,22 +11620,24 @@ cantuse2:
hangonp(context);
putbackobstuff(context);
context.data.byte(kCommandtype) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void wheelsound(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 17;
playchannel1(context);
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void runtap(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto tapwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
tapwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11319,7 +11659,7 @@ tapwith:
context.al = 56;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
fillcupfromtap:
context.al = context.data.byte(kWithobject);
getexad(context);
@@ -11330,46 +11670,50 @@ fillcupfromtap:
context.al = 57;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cupfromtapfull:
context.cx = 300;
context.al = 58;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void playguitar(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 14;
playchannel1(context);
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void hotelcontrol(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 21);
if (!context.flags.z()) goto notrightcont;
context._cmp(context.data.byte(kMapx), 33);
if (!context.flags.z()) goto notrightcont;
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notrightcont:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void hotelbell(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 12;
playchannel1(context);
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void opentomb(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.word(kWatchingtime) = 35*2;
@@ -11378,10 +11722,11 @@ void opentomb(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usetrainer(Context & context) {
+ uint stack_depth = context.stack.size();
getanyad(context);
context._cmp(context.es.byte(context.bx+2), 4);
if (!context.flags.z()) goto notheldtrainer;
@@ -11389,13 +11734,14 @@ void usetrainer(Context & context) {
makeworn(context);
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notheldtrainer:
nothelderror(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void nothelderror(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
showpanel(context);
showman(context);
@@ -11411,14 +11757,15 @@ void nothelderror(Context & context) {
context.cx = 50;
hangonp(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usepipe(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto pipewith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
pipewith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11440,7 +11787,7 @@ pipewith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
fillcup:
context.cx = 300;
context.al = 36;
@@ -11449,16 +11796,17 @@ fillcup:
context.al = context.data.byte(kWithobject);
getexad(context);
context.es.byte(context.bx+15) = 'F'-'A';
- return;
+ {assert(stack_depth == context.stack.size()); return; }
alreadyfull:
context.cx = 300;
context.al = 35;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usefullcart(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.data.byte(kProgresspoints));
context.al = 2;
context.ah = context.data.byte(kRoomnum);
@@ -11477,14 +11825,15 @@ void usefullcart(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useplinth(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto plinthwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
plinthwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11496,7 +11845,7 @@ plinthwith:
if (context.flags.z()) goto isrightkey;
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isrightkey:
context._inc(context.data.byte(kProgresspoints));
showseconduse(context);
@@ -11508,18 +11857,20 @@ isrightkey:
context.data.byte(kGetback) = 1;
context.al = context.data.byte(kRoomafterdream);
context.data.byte(kNewlocation) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void chewy(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
getanyad(context);
context.es.byte(context.bx+2) = 255;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useladder(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context._sub(context.data.byte(kMapx), 11);
findroominloc(context);
@@ -11531,10 +11882,11 @@ void useladder(Context & context) {
findxyfrompath(context);
context.data.byte(kResetmanxy) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useladderb(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context._add(context.data.byte(kMapx), 11);
findroominloc(context);
@@ -11546,10 +11898,11 @@ void useladderb(Context & context) {
findxyfrompath(context);
context.data.byte(kResetmanxy) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void slabdoora(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kGetback) = 1;
context.data.byte(kWatchspeed) = 1;
@@ -11561,16 +11914,17 @@ void slabdoora(Context & context) {
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 42;
context.data.byte(kNewlocation) = 47;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabawrong:
context.data.word(kWatchingtime) = 40;
context.data.word(kEndwatchreel) = 34;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void slabdoorb(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kDreamnumber), 1);
if (!context.flags.z()) goto slabbwrong;
context.al = 'S';
@@ -11583,7 +11937,7 @@ void slabdoorb(Context & context) {
context.cx = 200;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotcrystal:
showfirstuse(context);
context._inc(context.data.byte(kProgresspoints));
@@ -11594,7 +11948,7 @@ gotcrystal:
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 71;
context.data.byte(kNewlocation) = 47;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabbwrong:
showfirstuse(context);
context.data.byte(kGetback) = 1;
@@ -11605,10 +11959,11 @@ slabbwrong:
context.data.word(kEndwatchreel) = 63;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void slabdoord(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kGetback) = 1;
context.data.byte(kWatchspeed) = 1;
@@ -11620,16 +11975,17 @@ void slabdoord(Context & context) {
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 102;
context.data.byte(kNewlocation) = 47;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabcwrong:
context.data.word(kWatchingtime) = 40;
context.data.word(kEndwatchreel) = 94;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void slabdoorc(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kGetback) = 1;
context.data.byte(kWatchspeed) = 1;
@@ -11641,16 +11997,17 @@ void slabdoorc(Context & context) {
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 135;
context.data.byte(kNewlocation) = 47;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabdwrong:
context.data.word(kWatchingtime) = 40;
context.data.word(kEndwatchreel) = 127;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void slabdoore(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kGetback) = 1;
context.data.byte(kWatchspeed) = 1;
@@ -11662,16 +12019,17 @@ void slabdoore(Context & context) {
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 168;
context.data.byte(kNewlocation) = 47;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabewrong:
context.data.word(kWatchingtime) = 40;
context.data.word(kEndwatchreel) = 160;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void slabdoorf(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kGetback) = 1;
context.data.byte(kWatchspeed) = 1;
@@ -11683,20 +12041,21 @@ void slabdoorf(Context & context) {
context.data.word(kWatchingtime) = 60;
context.data.word(kEndwatchreel) = 197;
context.data.byte(kNewlocation) = 47;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabfwrong:
context.data.word(kWatchingtime) = 40;
context.data.word(kEndwatchreel) = 189;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useslab(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto slabwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
slabwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11710,7 +12069,7 @@ slabwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nextslab:
context.al = context.data.byte(kWithobject);
getexad(context);
@@ -11736,14 +12095,15 @@ notlastslab:
context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecart(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto cartwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cartwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11757,7 +12117,7 @@ cartwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nextcart:
context.al = context.data.byte(kWithobject);
getexad(context);
@@ -11773,14 +12133,15 @@ nextcart:
playchannel1(context);
showfirstuse(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useclearbox(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto clearboxwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
clearboxwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11794,7 +12155,7 @@ clearboxwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
openbox:
context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
@@ -11804,10 +12165,11 @@ openbox:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecoveredbox(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.word(kWatchingtime) = 50;
@@ -11816,10 +12178,11 @@ void usecoveredbox(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void userailing(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.word(kWatchingtime) = 80;
context.data.word(kReeltowatch) = 0;
@@ -11828,14 +12191,15 @@ void userailing(Context & context) {
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
context.data.byte(kMandead) = 4;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useopenbox(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto openboxwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
openboxwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11854,7 +12218,7 @@ openboxwith:
compare(context);
if (context.flags.z()) goto openboxwrong;
showfirstuse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
destoryopenbox:
context._inc(context.data.byte(kProgresspoints));
context.cx = 300;
@@ -11871,16 +12235,17 @@ destoryopenbox:
context.al = 4;
turnpathon(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
openboxwrong:
context.cx = 300;
context.al = 38;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void wearwatch(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWatchon), 1);
if (context.flags.z()) goto wearingwatch;
showfirstuse(context);
@@ -11888,14 +12253,15 @@ void wearwatch(Context & context) {
context.data.byte(kGetback) = 1;
getanyad(context);
makeworn(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
wearingwatch:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void wearshades(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kShadeson), 1);
if (context.flags.z()) goto wearingshades;
context.data.byte(kShadeson) = 1;
@@ -11903,14 +12269,15 @@ void wearshades(Context & context) {
context.data.byte(kGetback) = 1;
getanyad(context);
makeworn(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
wearingshades:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void sitdowninbar(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWatchmode), -1);
if (!context.flags.z()) goto satdown;
showfirstuse(context);
@@ -11922,14 +12289,15 @@ void sitdowninbar(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
satdown:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usechurchhole(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kGetback) = 1;
context.data.word(kWatchingtime) = 28;
@@ -11937,14 +12305,15 @@ void usechurchhole(Context & context) {
context.data.word(kEndwatchreel) = 26;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usehole(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto holewith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
holewith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -11958,7 +12327,7 @@ holewith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
righthand:
showfirstuse(context);
context.al = 86;
@@ -11968,10 +12337,11 @@ righthand:
context.es.byte(context.bx+2) = 255;
context.data.byte(kCanmovealtar) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usealtar(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 'C';
context.ah = 'N';
context.cl = 'D';
@@ -11992,7 +12362,7 @@ void usealtar(Context & context) {
context.al = 23;
showpuztext(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
movealtar:
context._inc(context.data.byte(kProgresspoints));
showseconduse(context);
@@ -12008,18 +12378,19 @@ movealtar:
context.dx = 98;
setuptimeduse(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
thingsonaltar:
showfirstuse(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void opentvdoor(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto tvdoorwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
tvdoorwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12033,66 +12404,72 @@ tvdoorwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyontv:
showfirstuse(context);
context.data.byte(kLockstatus) = 0;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usedryer(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 12;
playchannel1(context);
showfirstuse(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openlouis(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 5;
context.ah = 2;
context.cl = 3;
context.ch = 8;
entercode(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void nextcolon(Context & context) {
+ uint stack_depth = context.stack.size();
lookcolon:
context.al = context.es.byte(context.si);
context._inc(context.si);
context._cmp(context.al, ':');
if (!context.flags.z()) goto lookcolon;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openyourneighbour(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 255;
context.ah = 255;
context.cl = 255;
context.ch = 255;
entercode(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usewindow(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kManspath), 6);
if (!context.flags.z()) goto notonbalc;
context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
context.data.byte(kNewlocation) = 29;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notonbalc:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usebalcony(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.al = 6;
turnpathon(context);
@@ -12121,50 +12498,55 @@ void usebalcony(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openryan(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 5;
context.ah = 1;
context.cl = 0;
context.ch = 6;
entercode(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openpoolboss(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 5;
context.ah = 2;
context.cl = 2;
context.ch = 2;
entercode(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openeden(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 2;
context.ah = 8;
context.cl = 6;
context.ch = 5;
entercode(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void opensarters(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 7;
context.ah = 8;
context.cl = 3;
context.ch = 3;
entercode(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void isitright(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = context.data;
context.es = context.bx;
context.bx = 8344;
@@ -12176,22 +12558,24 @@ void isitright(Context & context) {
if (!context.flags.z()) goto notright;
context._cmp(context.es.byte(context.bx+3), context.ch);
notright:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void drawitall(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
drawfloor(context);
printsprites(context);
showicon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openhoteldoor(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto hoteldoorwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
hoteldoorwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12205,21 +12589,22 @@ hoteldoorwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyonhotel1:
context.al = 16;
playchannel1(context);
showfirstuse(context);
context.data.byte(kLockstatus) = 0;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void openhoteldoor2(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto hoteldoorwith2;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
hoteldoorwith2:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12233,20 +12618,21 @@ hoteldoorwith2:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
keyonhotel2:
context.al = 16;
playchannel1(context);
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void grafittidoor(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto grafwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
grafwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12260,14 +12646,15 @@ grafwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dograf:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void trapdoor(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.data.byte(kProgresspoints));
showfirstuse(context);
switchryanoff(context);
@@ -12278,10 +12665,11 @@ void trapdoor(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void callhotellift(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 12;
playchannel1(context);
showfirstuse(context);
@@ -12292,19 +12680,21 @@ void callhotellift(Context & context) {
autosetwalk(context);
context.al = 4;
turnpathon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void calledenslift(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kCounttoopen) = 8;
context.data.byte(kGetback) = 1;
context.al = 2;
turnpathon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void calledensdlift(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLiftflag), 1);
if (context.flags.z()) goto edensdhere;
showfirstuse(context);
@@ -12312,18 +12702,19 @@ void calledensdlift(Context & context) {
context.data.byte(kGetback) = 1;
context.al = 2;
turnpathon(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
edensdhere:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usepoolreader(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto poolwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
poolwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12337,27 +12728,28 @@ poolwith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
openpool:
context._cmp(context.data.byte(kTalkedtoattendant), 1);
if (context.flags.z()) goto canopenpool;
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canopenpool:
context.al = 17;
playchannel1(context);
showfirstuse(context);
context.data.byte(kCounttoopen) = 6;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void uselighter(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotlighterwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotlighterwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12369,7 +12761,7 @@ gotlighterwith:
if (context.flags.z()) goto cigarette;
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cigarette:
context.cx = 300;
context.al = 9;
@@ -12378,10 +12770,11 @@ cigarette:
getexad(context);
context.es.byte(context.bx+2) = 255;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showseconduse(Context & context) {
+ uint stack_depth = context.stack.size();
getobtextstart(context);
nextcolon(context);
nextcolon(context);
@@ -12389,14 +12782,15 @@ void showseconduse(Context & context) {
usetext(context);
context.cx = 400;
hangonp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecardreader1(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotreader1with;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotreader1with:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12410,7 +12804,7 @@ gotreader1with:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
correctcard:
context._cmp(context.data.byte(kTalkedtosparky), 0);
if (context.flags.z()) goto notyet;
@@ -12420,7 +12814,7 @@ correctcard:
context.al = 17;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
getscash:
context.al = 16;
playchannel1(context);
@@ -12430,18 +12824,19 @@ getscash:
context._inc(context.data.byte(kProgresspoints));
context.data.word(kCard1money) = 12432;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notyet:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecardreader2(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotreader2with;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotreader2with:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12455,7 +12850,7 @@ gotreader2with:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
correctcard2:
context._cmp(context.data.byte(kTalkedtoboss), 0);
if (context.flags.z()) goto notyetboss;
@@ -12474,30 +12869,31 @@ correctcard2:
context._sub(context.data.word(kCard1money), 2000);
context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nocash:
context.cx = 300;
context.al = 20;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
alreadygotnew:
context.cx = 300;
context.al = 22;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notyetboss:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecardreader3(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotreader3with;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotreader3with:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12511,7 +12907,7 @@ gotreader3with:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
rightcard:
context._cmp(context.data.byte(kTalkedtorecep), 0);
if (context.flags.z()) goto notyetrecep;
@@ -12526,20 +12922,21 @@ rightcard:
context._sub(context.data.word(kCard1money), 8300);
context.data.byte(kCardpassflag) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
alreadyusedit:
context.cx = 300;
context.al = 26;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notyetrecep:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecashcard(Context & context) {
+ uint stack_depth = context.stack.size();
getridofreels(context);
loadkeypad(context);
createpanel(context);
@@ -12588,10 +12985,11 @@ void usecashcard(Context & context) {
getridoftemp(context);
restorereels(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lookatcard(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kManisoffscreen) = 1;
getridofreels(context);
loadkeypad(context);
@@ -12639,10 +13037,11 @@ void lookatcard(Context & context) {
getridoftemp(context);
restorereels(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void moneypoke(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = 3385;
context.cl = 48-1;
numberpoke0:
@@ -12678,14 +13077,15 @@ numberpoke3:
context.bx = 3390;
context._add(context.al, 48);
context.cs.byte(context.bx) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecontrol(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotcontrolwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotcontrolwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12716,7 +13116,7 @@ gotcontrolwith:
balls:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
rightkey:
context.al = 16;
playchannel1(context);
@@ -12730,7 +13130,7 @@ rightkey:
context.data.byte(kCounttoopen) = 0;
context.data.word(kWatchingtime) = 80;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
goingdown:
context.cx = 300;
context.al = 3;
@@ -12740,7 +13140,7 @@ goingdown:
context.data.byte(kCounttoopen) = 0;
context.data.word(kWatchingtime) = 80;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
jimmycontrols:
context.al = 50;
placesetobject(context);
@@ -12761,28 +13161,30 @@ jimmycontrols:
showpuztext(context);
context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
axeoncontrols:
context.cx = 300;
context.al = 16;
showpuztext(context);
context._inc(context.data.byte(kProgresspoints));
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usehatch(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kNewlocation) = 40;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usewire(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotwirewith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotwirewith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -12804,13 +13206,13 @@ gotwirewith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
wireaxe:
context.cx = 300;
context.al = 16;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
wireknife:
context.al = 51;
removesetobject(context);
@@ -12821,10 +13223,11 @@ wireknife:
showpuztext(context);
context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usehandle(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 'C';
context.ah = 'U';
context.cl = 'T';
@@ -12837,34 +13240,37 @@ void usehandle(Context & context) {
context.al = 12;
showpuztext(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
havecutwire:
context.cx = 300;
context.al = 13;
showpuztext(context);
context.data.byte(kNewlocation) = 22;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useelevator1(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
selectlocation(context);
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showfirstuse(Context & context) {
+ uint stack_depth = context.stack.size();
getobtextstart(context);
findnextcolon(context);
findnextcolon(context);
usetext(context);
context.cx = 400;
hangonp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useelevator3(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.byte(kCounttoclose) = 20;
context.data.byte(kNewlocation) = 34;
@@ -12874,10 +13280,11 @@ void useelevator3(Context & context) {
context.data.byte(kSpeedcount) = 1;
context.data.word(kWatchingtime) = 80;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useelevator4(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.word(kReeltowatch) = 0;
context.data.word(kEndwatchreel) = 11;
@@ -12887,10 +13294,11 @@ void useelevator4(Context & context) {
context.data.word(kWatchingtime) = 80;
context.data.byte(kGetback) = 1;
context.data.byte(kNewlocation) = 24;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useelevator2(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLocation), 23);
if (context.flags.z()) goto inpoolhall;
showfirstuse(context);
@@ -12899,7 +13307,7 @@ void useelevator2(Context & context) {
context.data.byte(kCounttoopen) = 0;
context.data.word(kWatchingtime) = 80;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
inpoolhall:
showfirstuse(context);
context.data.byte(kNewlocation) = 31;
@@ -12907,10 +13315,11 @@ inpoolhall:
context.data.byte(kCounttoopen) = 0;
context.data.word(kWatchingtime) = 80;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useelevator5(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 4;
placesetobject(context);
context.al = 0;
@@ -12920,10 +13329,11 @@ void useelevator5(Context & context) {
context.data.byte(kLiftflag) = 1;
context.data.byte(kCounttoclose) = 8;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usekey(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLocation), 5);
if (context.flags.z()) goto usekey1;
context._cmp(context.data.byte(kLocation), 30);
@@ -12934,7 +13344,7 @@ void usekey(Context & context) {
context.al = 1;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
usekey1:
context._cmp(context.data.byte(kMapx), 22);
if (!context.flags.z()) goto wrongroom1;
@@ -12945,7 +13355,7 @@ usekey1:
showpuztext(context);
context.data.byte(kCounttoclose) = 100;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
usekey2:
context._cmp(context.data.byte(kMapx), 11);
if (!context.flags.z()) goto wrongroom1;
@@ -12959,23 +13369,24 @@ usekey2:
fadescreendown(context);
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
wrongroom1:
context.cx = 200;
context.al = 2;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usestereo(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLocation), 0);
if (context.flags.z()) goto stereook;
context.cx = 400;
context.al = 4;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
stereook:
context._cmp(context.data.byte(kMapx), 11);
if (!context.flags.z()) goto stereonotok;
@@ -12986,7 +13397,7 @@ stereonotok:
context.al = 5;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
stereook2:
context.al = 'C';
context.ah = 'D';
@@ -13004,7 +13415,7 @@ stereook2:
getanyad(context);
context.al = 255;
context.es.byte(context.bx+10) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cdinside:
getanyad(context);
context.al = context.es.byte(context.bx+10);
@@ -13016,16 +13427,17 @@ cdinside:
context.cx = 400;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
stereoon:
context.al = 8;
context.cx = 400;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usecooker(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCommand);
context.ah = context.data.byte(kObjecttype);
checkinside(context);
@@ -13033,14 +13445,15 @@ void usecooker(Context & context) {
if (!context.flags.z()) goto foodinside;
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
foodinside:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useaxe(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 22);
if (!context.flags.z()) goto notinpool;
context._cmp(context.data.byte(kMapy), 10);
@@ -13050,10 +13463,10 @@ void useaxe(Context & context) {
context.data.byte(kLastweapon) = 2;
context.data.byte(kGetback) = 1;
removeobfrominv(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinpool:
showfirstuse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
/*continuing to unbounded code: axeondoor from useelvdoor:19-30*/
axeondoor:
context.al = 15;
@@ -13066,15 +13479,16 @@ axeondoor:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
+ {assert(stack_depth == context.stack.size()); return; }
}
void useelvdoor(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gotdoorwith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotdoorwith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -13088,7 +13502,7 @@ gotdoorwith:
context.cx = 300;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
axeondoor:
context.al = 15;
context.cx = 300;
@@ -13100,10 +13514,11 @@ axeondoor:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void withwhat(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
showpanel(context);
showman(context);
@@ -13142,16 +13557,17 @@ void withwhat(Context & context) {
worktoscreen(context);
delpointer(context);
context.data.byte(kInvopen) = 2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void selectob(Context & context) {
+ uint stack_depth = context.stack.size();
findinvpos(context);
context.ax = context.es.word(context.bx);
context._cmp(context.al, 255);
if (!context.flags.z()) goto canselectob;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canselectob:
context.data.byte(kWithobject) = context.al;
context.data.byte(kWithtype) = context.ah;
@@ -13172,15 +13588,16 @@ alreadyselob:
context._and(context.ax, 1);
if (!context.flags.z()) goto doselob;
notselob:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doselob:
delpointer(context);
context.data.byte(kInvopen) = 0;
useroutine(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void compare(Context & context) {
+ uint stack_depth = context.stack.size();
context._sub(context.dl, 'A');
context._sub(context.dh, 'A');
context._sub(context.cl, 'A');
@@ -13194,10 +13611,11 @@ void compare(Context & context) {
if (!context.flags.z()) goto comparefin;
context._cmp(context.es.word(context.bx+14), context.dx);
comparefin:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findsetobject(Context & context) {
+ uint stack_depth = context.stack.size();
context._sub(context.al, 'A');
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
@@ -13215,17 +13633,18 @@ findsetloop:
context._cmp(context.ch, context.es.byte(context.bx+15));
if (!context.flags.z()) goto nofind;
context.al = context.dl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nofind:
context._add(context.bx, 64);
context._inc(context.dl);
context._cmp(context.dl, 128);
if (!context.flags.z()) goto findsetloop;
context.al = context.dl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findexobject(Context & context) {
+ uint stack_depth = context.stack.size();
context._sub(context.al, 'A');
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
@@ -13243,17 +13662,18 @@ findexloop:
context._cmp(context.ch, context.es.byte(context.bx+15));
if (!context.flags.z()) goto nofindex;
context.al = context.dl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nofindex:
context._add(context.bx, 16);
context._inc(context.dl);
context._cmp(context.dl, (114));
if (!context.flags.z()) goto findexloop;
context.al = context.dl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void isryanholding(Context & context) {
+ uint stack_depth = context.stack.size();
context._sub(context.al, 'A');
context._sub(context.ah, 'A');
context._sub(context.cl, 'A');
@@ -13274,7 +13694,7 @@ searchinv:
if (!context.flags.z()) goto nofindininv;
context.al = context.dl;
context._cmp(context.al, (114));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nofindininv:
context._add(context.bx, 16);
context._inc(context.dl);
@@ -13282,10 +13702,11 @@ nofindininv:
if (!context.flags.z()) goto searchinv;
context.al = context.dl;
context._cmp(context.al, (114));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkinside(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kExtras);
context.bx = (0+2080+30000);
context.cl = 0;
@@ -13294,16 +13715,17 @@ insideloop:
if (!context.flags.z()) goto notfoundinside;
context._cmp(context.ah, context.es.byte(context.bx+2));
if (!context.flags.z()) goto notfoundinside;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notfoundinside:
context._add(context.bx, 16);
context._inc(context.cl);
context._cmp(context.cl, (114));
if (!context.flags.z()) goto insideloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usetext(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.si);
createpanel(context);
@@ -13320,10 +13742,11 @@ void usetext(Context & context) {
context.ah = 0;
printdirect(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void putbackobstuff(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel(context);
showpanel(context);
showman(context);
@@ -13337,10 +13760,11 @@ void putbackobstuff(Context & context) {
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showpuztext(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.cx);
findpuztext(context);
context.push(context.es);
@@ -13360,10 +13784,11 @@ void showpuztext(Context & context) {
worktoscreenm(context);
context.cx = context.pop();
hangonp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findpuztext(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
@@ -13371,10 +13796,11 @@ void findpuztext(Context & context) {
context.ax = context.es.word(context.si);
context._add(context.ax, (66*2));
context.si = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void placesetobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.cl = 0;
@@ -13384,10 +13810,11 @@ void placesetobject(Context & context) {
context.es.byte(context.bx+58) = 0;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void removesetobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.cl = 255;
@@ -13397,10 +13824,11 @@ void removesetobject(Context & context) {
context.es.byte(context.bx+58) = 255;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void issetobonmap(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
getsetad(context);
@@ -13408,10 +13836,11 @@ void issetobonmap(Context & context) {
context.bx = context.pop();
context.es = context.pop();
context._cmp(context.al, 0);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void placefreeobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
context.cl = 0;
@@ -13421,20 +13850,22 @@ void placefreeobject(Context & context) {
context.es.byte(context.bx+2) = 0;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void removefreeobject(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.es);
context.push(context.bx);
getfreead(context);
context.es.byte(context.bx+2) = 255;
context.bx = context.pop();
context.es = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findormake(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
context.push(context.ax);
context.es = context.data.word(kBuffers);
@@ -13452,25 +13883,28 @@ nofoundchange:
foundchange:
context.ax = context.pop();
context.es.byte(context.bx+2) = context.cl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
haventfound:
context.es.word(context.bx) = context.ax;
context.es.word(context.bx+2) = context.cx;
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void switchryanon(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kRyanon) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void switchryanoff(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kRyanon) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setallchanges(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
setallloop:
@@ -13488,10 +13922,11 @@ setallloop:
context.es = context.pop();
goto setallloop;
endsetloop:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dochange(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ch, 0);
if (context.flags.z()) goto object;
context._cmp(context.ch, 1);
@@ -13515,13 +13950,13 @@ path:
context.cx = context.pop();
context.es.byte(context.bx+6) = context.cl;
nopath:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
object:
context.push(context.cx);
getsetad(context);
context.cx = context.pop();
context.es.byte(context.bx+58) = context.cl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
freeobject:
context.push(context.cx);
getfreead(context);
@@ -13530,10 +13965,11 @@ freeobject:
if (!context.flags.z()) goto beenpickedup;
context.es.byte(context.bx+2) = context.cl;
beenpickedup:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void autoappear(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLocation), 32);
if (!context.flags.z()) goto notinalley;
context.al = 5;
@@ -13541,7 +13977,7 @@ void autoappear(Context & context) {
context.al = 10;
setlocation(context);
context.data.byte(kDestpos) = 10;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinalley:
context._cmp(context.data.byte(kReallocation), 24);
if (!context.flags.z()) goto notinedens;
@@ -13564,7 +14000,7 @@ notinalley:
removesetobject(context);
context.al = 85;
removesetobject(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
edenspart2:
context._cmp(context.data.byte(kSartaindead), 1);
if (!context.flags.z()) goto notedens2;
@@ -13576,7 +14012,7 @@ edenspart2:
placesetobject(context);
context._inc(context.data.byte(kSartaindead));
notedens2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinedens:
context._cmp(context.data.byte(kReallocation), 25);
if (!context.flags.z()) goto notonsartroof;
@@ -13586,7 +14022,7 @@ notinedens:
context.al = 11;
setlocation(context);
context.data.byte(kDestpos) = 11;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notonsartroof:
context._cmp(context.data.byte(kReallocation), 2);
if (!context.flags.z()) goto notinlouiss;
@@ -13595,10 +14031,11 @@ notonsartroof:
context.al = 23;
placesetobject(context);
notinlouiss:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getundertimed(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kTimedy);
context.ah = 0;
context.bx = context.ax;
@@ -13610,10 +14047,11 @@ void getundertimed(Context & context) {
context.ds = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiget(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void putundertimed(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kTimedy);
context.ah = 0;
context.bx = context.ax;
@@ -13625,10 +14063,11 @@ void putundertimed(Context & context) {
context.ds = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiput(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumptimedtext(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kNeedtodumptimed), 1);
if (!context.flags.z()) goto nodumptimed;
context.al = context.data.byte(kTimedy);
@@ -13642,10 +14081,11 @@ void dumptimedtext(Context & context) {
multidump(context);
context.data.byte(kNeedtodumptimed) = 0;
nodumptimed:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setuptimeduse(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kTimecount), 0);
if (!context.flags.z()) goto cantsetup;
context.data.byte(kTimedy) = context.bh;
@@ -13664,10 +14104,11 @@ void setuptimeduse(Context & context) {
context.data.word(kTimedseg) = context.es;
context.data.word(kTimedoffset) = context.bx;
cantsetup:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setuptimedtemp(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kTimecount), 0);
if (!context.flags.z()) goto cantsetup2;
context.data.byte(kTimedy) = context.bh;
@@ -13686,10 +14127,11 @@ void setuptimedtemp(Context & context) {
context.data.word(kTimedseg) = context.es;
context.data.word(kTimedoffset) = context.bx;
cantsetup2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usetimedtext(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kTimecount), 0);
if (context.flags.z()) goto notext;
context._dec(context.data.word(kTimecount));
@@ -13715,14 +14157,15 @@ notfirsttimed:
printdirect(context);
context.data.byte(kNeedtodumptimed) = 1;
notext:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
deltimedtext:
putundertimed(context);
context.data.byte(kNeedtodumptimed) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void edenscdplayer(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context.data.word(kWatchingtime) = 18*2;
context.data.word(kReeltowatch) = 25;
@@ -13730,10 +14173,11 @@ void edenscdplayer(Context & context) {
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usewall(Context & context) {
+ uint stack_depth = context.stack.size();
showfirstuse(context);
context._cmp(context.data.byte(kManspath), 3);
if (context.flags.z()) goto gobackover;
@@ -13760,7 +14204,7 @@ void usewall(Context & context) {
findxyfrompath(context);
context.data.byte(kResetmanxy) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gobackover:
context.data.word(kWatchingtime) = 30*2;
context.data.word(kReeltowatch) = 34;
@@ -13785,14 +14229,15 @@ gobackover:
findxyfrompath(context);
context.data.byte(kResetmanxy) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usechurchgate(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto gatewith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gatewith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -13806,7 +14251,7 @@ gatewith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cutgate:
showfirstuse(context);
context.data.word(kWatchingtime) = 64*2;
@@ -13823,15 +14268,16 @@ cutgate:
context.al = 2;
turnpathon(context);
notopenchurch:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usegun(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kObjecttype), 4);
if (context.flags.z()) goto istakengun;
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
istakengun:
context._cmp(context.data.byte(kReallocation), 22);
if (!context.flags.z()) goto notinpoolroom;
@@ -13842,7 +14288,7 @@ istakengun:
context.data.byte(kCombatcount) = 39;
context.data.byte(kGetback) = 1;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinpoolroom:
context._cmp(context.data.byte(kReallocation), 25);
if (!context.flags.z()) goto nothelicopter;
@@ -13856,7 +14302,7 @@ notinpoolroom:
context.data.byte(kRoomafterdream) = 38;
context.data.byte(kSartaindead) = 1;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nothelicopter:
context._cmp(context.data.byte(kReallocation), 27);
if (!context.flags.z()) goto notinrockroom;
@@ -13871,7 +14317,7 @@ nothelicopter:
context.data.byte(kRoomafterdream) = 32;
context.data.byte(kDreamnumber) = 0;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinrockroom:
context._cmp(context.data.byte(kReallocation), 8);
if (!context.flags.z()) goto notbystudio;
@@ -13890,7 +14336,7 @@ notinrockroom:
context.data.byte(kLastweapon) = 1;
context.data.byte(kGetback) = 1;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notbystudio:
context._cmp(context.data.byte(kReallocation), 6);
if (!context.flags.z()) goto notsarters;
@@ -13920,7 +14366,7 @@ notbystudio:
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notsarters:
context._cmp(context.data.byte(kReallocation), 29);
if (!context.flags.z()) goto notaide;
@@ -13942,7 +14388,7 @@ notsarters:
context.data.byte(kDreamnumber) = 3;
context.data.byte(kRoomafterdream) = 33;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notaide:
context._cmp(context.data.byte(kReallocation), 23);
if (!context.flags.z()) goto notwithboss;
@@ -13958,7 +14404,7 @@ notaide:
pathokboss:
context.data.byte(kLastweapon) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwithboss:
context._cmp(context.data.byte(kReallocation), 8);
if (!context.flags.z()) goto nottvsoldier;
@@ -13974,14 +14420,15 @@ notwithboss:
pathoktv:
context.data.byte(kLastweapon) = 1;
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nottvsoldier:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useshield(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 20);
if (!context.flags.z()) goto notinsartroom;
context._cmp(context.data.byte(kCombatcount), 0);
@@ -13991,14 +14438,15 @@ void useshield(Context & context) {
context.data.byte(kGetback) = 1;
context._inc(context.data.byte(kProgresspoints));
removeobfrominv(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinsartroom:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usebuttona(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 95;
issetobonmap(context);
if (context.flags.z()) goto donethisbit;
@@ -14018,18 +14466,19 @@ void usebuttona(Context & context) {
context.data.byte(kSpeedcount) = 1;
context.data.byte(kGetback) = 1;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
donethisbit:
showseconduse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void useplate(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWithobject), 255);
if (!context.flags.z()) goto platewith;
withwhat(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
platewith:
context.al = context.data.byte(kWithobject);
context.ah = context.data.byte(kWithtype);
@@ -14051,7 +14500,7 @@ platewith:
context.al = 14;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
unscrewplate:
context.al = 20;
playchannel1(context);
@@ -14066,16 +14515,17 @@ unscrewplate:
placefreeobject(context);
context._inc(context.data.byte(kProgresspoints));
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
triedknife:
context.cx = 300;
context.al = 54;
showpuztext(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usewinch(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 40;
context.ah = 1;
checkinside(context);
@@ -14102,14 +14552,15 @@ void usewinch(Context & context) {
context.data.byte(kNewsitem) = 2;
context.data.byte(kGetback) = 1;
context._inc(context.data.byte(kProgresspoints));
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nowinch:
showfirstuse(context);
putbackobstuff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void entercode(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kKeypadax) = context.ax;
context.data.word(kKeypadcx) = context.cx;
getridofreels(context);
@@ -14178,16 +14629,18 @@ numberright:
restorereels(context);
redrawmainscrn(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadkeypad(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 1948;
loadintotemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void quitkey(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 222);
if (context.flags.z()) goto alreadyqk;
context.data.byte(kCommandtype) = 222;
@@ -14200,13 +14653,14 @@ alreadyqk:
context._and(context.ax, 1);
if (!context.flags.z()) goto doqk;
notqk:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doqk:
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void addtopresslist(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kPresspointer), 5);
if (context.flags.z()) goto nomorekeys;
context.al = context.data.byte(kPressed);
@@ -14221,76 +14675,88 @@ not10:
context.es.byte(context.bx) = context.al;
context._inc(context.data.word(kPresspointer));
nomorekeys:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonone(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 1;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttontwo(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 2;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonthree(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 3;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonfour(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 4;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonfive(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 5;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonsix(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 6;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonseven(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 7;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttoneight(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 8;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonnine(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 9;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonnought(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 10;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonenter(Context & context) {
+ uint stack_depth = context.stack.size();
context.cl = 11;
buttonpress(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void buttonpress(Context & context) {
+ uint stack_depth = context.stack.size();
context.ch = context.cl;
context._add(context.ch, 100);
context._cmp(context.data.byte(kCommandtype), context.ch);
@@ -14308,7 +14774,7 @@ alreadyb:
context._and(context.ax, 1);
if (!context.flags.z()) goto dob;
notb:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dob:
context.data.byte(kPressed) = context.cl;
context._add(context.cl, 21);
@@ -14319,10 +14785,11 @@ dob:
context.al = 10;
playchannel1(context);
nonoise:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showouterpad(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (36+112)-3;
context.bx = (72)-4;
context.ds = context.data.word(kTempgraphics);
@@ -14335,10 +14802,11 @@ void showouterpad(Context & context) {
context.al = 37;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showkeypad(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 22;
context.di = (36+112)+9;
context.bx = (72)+5;
@@ -14404,10 +14872,11 @@ gotlight:
context.di = (36+112)+60;
showframe(context);
notenter:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void singlekey(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kGraphicpress), context.al);
if (!context.flags.z()) goto gotkey;
context._add(context.al, 11);
@@ -14419,19 +14888,21 @@ gotkey:
context._sub(context.al, 20);
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpkeypad(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (36+112)-3;
context.bx = (72)-4;
context.cl = 120;
context.ch = 90;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usemenu(Context & context) {
+ uint stack_depth = context.stack.size();
getridofreels(context);
loadmenu(context);
createpanel(context);
@@ -14475,21 +14946,23 @@ menuloop:
getridoftemp2(context);
restorereels(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
menulist:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpmenu(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (80+40);
context.bx = (60);
context.cl = 48;
context.ch = 48;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getundermenu(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (80+40);
context.bx = (60);
context.cl = 48;
@@ -14497,10 +14970,11 @@ void getundermenu(Context & context) {
context.ds = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiget(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void putundermenu(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (80+40);
context.bx = (60);
context.cl = 48;
@@ -14508,10 +14982,11 @@ void putundermenu(Context & context) {
context.ds = context.data.word(kBuffers);
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
multiput(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showoutermenu(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 40;
context.ah = 0;
context.di = (80+40)-34;
@@ -14536,10 +15011,11 @@ void showoutermenu(Context & context) {
context.bx = (60)+57-40;
context.ds = context.data.word(kTempgraphics);
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showmenu(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.data.byte(kMenucount));
context._cmp(context.data.byte(kMenucount), 37*2);
if (!context.flags.z()) goto menuframeok;
@@ -14552,18 +15028,20 @@ menuframeok:
context.bx = (60);
context.ds = context.data.word(kTempgraphics);
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadmenu(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 1832;
loadintotemp(context);
context.dx = 1987;
loadintotemp2(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void viewfolder(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kManisoffscreen) = 1;
getridofall(context);
loadfolder(context);
@@ -14590,14 +15068,15 @@ folderloop:
restoreall(context);
redrawmainscrn(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void nextfolder(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kFolderpage), 12);
if (!context.flags.z()) goto cannextf;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cannextf:
context._cmp(context.data.byte(kCommandtype), 201);
if (context.flags.z()) goto alreadynextf;
@@ -14611,7 +15090,7 @@ alreadynextf:
context._cmp(context.ax, 1);
if (context.flags.z()) goto donextf;
notnextf:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
donextf:
context._inc(context.data.byte(kFolderpage));
folderhints(context);
@@ -14621,10 +15100,11 @@ donextf:
context.bx = 3547;
checkcoords(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void folderhints(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kFolderpage), 5);
if (!context.flags.z()) goto notaideadd;
context._cmp(context.data.byte(kAidedead), 1);
@@ -14646,7 +15126,7 @@ void folderhints(Context & context) {
worktoscreenm(context);
context.cx = 200;
hangonp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notaideadd:
context._cmp(context.data.byte(kFolderpage), 9);
if (!context.flags.z()) goto notaristoadd;
@@ -14668,14 +15148,15 @@ notaideadd:
context.cx = 200;
hangonp(context);
notaristoadd:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void lastfolder(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kFolderpage), 0);
if (!context.flags.z()) goto canlastf;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
canlastf:
context._cmp(context.data.byte(kCommandtype), 202);
if (context.flags.z()) goto alreadylastf;
@@ -14691,7 +15172,7 @@ alreadylastf:
context._cmp(context.ax, 1);
if (context.flags.z()) goto dolastf;
notlastf:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dolastf:
context._dec(context.data.byte(kFolderpage));
delpointer(context);
@@ -14700,10 +15181,11 @@ dolastf:
context.bx = 3547;
checkcoords(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadfolder(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 2299;
loadintotemp(context);
context.dx = 2312;
@@ -14714,10 +15196,11 @@ void loadfolder(Context & context) {
loadtempcharset(context);
context.dx = 2195;
loadtemptext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showfolder(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCommandtype) = 255;
context._cmp(context.data.byte(kFolderpage), 0);
if (context.flags.z()) goto closedfolder;
@@ -14758,7 +15241,7 @@ noleftpage:
norightpage:
usecharset1(context);
undertextline(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
closedfolder:
createpanel2(context);
context.ds = context.data.word(kTempgraphics3);
@@ -14775,20 +15258,22 @@ closedfolder:
showframe(context);
folderexit(context);
undertextline(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void folderexit(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics2);
context.di = 296;
context.bx = 178;
context.al = 6;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showleftpage(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics2);
context.di = 0;
context.bx = 12;
@@ -14866,10 +15351,11 @@ flipfolderline:
context._add(context.si, 320);
context._add(context.di, 320);
if (--context.cx) goto flipfolder;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showrightpage(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics2);
context.di = 143;
context.bx = 12;
@@ -14920,10 +15406,11 @@ contrightpage:
if (--context.cx) goto twolotsright;
context.data.byte(kKerning) = 0;
context.data.word(kLinespacing) = 10;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void entersymbol(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kManisoffscreen) = 1;
getridofreels(context);
context.dx = 2338;
@@ -14971,7 +15458,7 @@ symbolloop:
worktoscreenm(context);
context.al = 13;
playchannel1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
symbolwrong:
context.al = 46;
removesetobject(context);
@@ -14986,10 +15473,11 @@ symbolwrong:
getridoftemp(context);
restorereels(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void quitsymbol(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymboltopx), 24);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kSymbolbotx), 24);
@@ -15006,13 +15494,14 @@ alreadyqs:
context._and(context.ax, 1);
if (!context.flags.z()) goto doqs;
notqs:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doqs:
context.data.byte(kGetback) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void settopleft(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymboltopdir), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kCommandtype), 210);
@@ -15025,10 +15514,11 @@ alreadytopl:
if (context.flags.z()) goto notopleft;
context.data.byte(kSymboltopdir) = -1;
notopleft:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void settopright(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymboltopdir), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kCommandtype), 211);
@@ -15041,10 +15531,11 @@ alreadytopr:
if (context.flags.z()) goto notopright;
context.data.byte(kSymboltopdir) = 1;
notopright:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setbotleft(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymbolbotdir), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kCommandtype), 212);
@@ -15057,10 +15548,11 @@ alreadybotl:
if (context.flags.z()) goto nobotleft;
context.data.byte(kSymbolbotdir) = -1;
nobotleft:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void setbotright(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymbolbotdir), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kCommandtype), 213);
@@ -15073,20 +15565,22 @@ alreadybotr:
if (context.flags.z()) goto nobotright;
context.data.byte(kSymbolbotdir) = 1;
nobotright:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpsymbol(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kNewtextline) = 0;
context.di = (64);
context.bx = (56)+20;
context.cl = 104;
context.ch = 60;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showsymbol(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 12;
context.ah = 0;
context.di = (64);
@@ -15156,25 +15650,27 @@ void showsymbol(Context & context) {
nextsymbol(context);
context._add(context.di, 49);
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void nextsymbol(Context & context) {
+ uint stack_depth = context.stack.size();
context._inc(context.al);
context._cmp(context.al, 6);
if (context.flags.z()) goto topwrap;
context._cmp(context.al, 12);
if (context.flags.z()) goto botwrap;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
topwrap:
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
botwrap:
context.al = 6;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void updatesymboltop(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymboltopdir), 0);
if (context.flags.z()) goto topfinished;
context._cmp(context.data.byte(kSymboltopdir), -1);
@@ -15187,12 +15683,12 @@ void updatesymboltop(Context & context) {
context._cmp(context.data.byte(kSymboltopnum), -1);
if (!context.flags.z()) goto topfinished;
context.data.byte(kSymboltopnum) = 5;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwrapfor:
context._cmp(context.data.byte(kSymboltopx), 24);
if (!context.flags.z()) goto topfinished;
context.data.byte(kSymboltopdir) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
backwards:
context._dec(context.data.byte(kSymboltopx));
context._cmp(context.data.byte(kSymboltopx), -1);
@@ -15202,16 +15698,17 @@ backwards:
context._cmp(context.data.byte(kSymboltopnum), 6);
if (!context.flags.z()) goto topfinished;
context.data.byte(kSymboltopnum) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwrapback:
context._cmp(context.data.byte(kSymboltopx), 24);
if (!context.flags.z()) goto topfinished;
context.data.byte(kSymboltopdir) = 0;
topfinished:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void updatesymbolbot(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSymbolbotdir), 0);
if (context.flags.z()) goto botfinished;
context._cmp(context.data.byte(kSymbolbotdir), -1);
@@ -15224,12 +15721,12 @@ void updatesymbolbot(Context & context) {
context._cmp(context.data.byte(kSymbolbotnum), -1);
if (!context.flags.z()) goto botfinished;
context.data.byte(kSymbolbotnum) = 5;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwrapforb:
context._cmp(context.data.byte(kSymbolbotx), 24);
if (!context.flags.z()) goto botfinished;
context.data.byte(kSymbolbotdir) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
backwardsbot:
context._dec(context.data.byte(kSymbolbotx));
context._cmp(context.data.byte(kSymbolbotx), -1);
@@ -15239,16 +15736,17 @@ backwardsbot:
context._cmp(context.data.byte(kSymbolbotnum), 6);
if (!context.flags.z()) goto botfinished;
context.data.byte(kSymbolbotnum) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwrapbackb:
context._cmp(context.data.byte(kSymbolbotx), 24);
if (!context.flags.z()) goto botfinished;
context.data.byte(kSymbolbotdir) = 0;
botfinished:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpsymbox(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kDumpx), -1);
if (context.flags.z()) goto nodumpsym;
context.di = context.data.word(kDumpx);
@@ -15258,10 +15756,11 @@ void dumpsymbox(Context & context) {
multidump(context);
context.data.word(kDumpx) = -1;
nodumpsym:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void usediary(Context & context) {
+ uint stack_depth = context.stack.size();
getridofreels(context);
context.dx = 2039;
loadintotemp(context);
@@ -15299,12 +15798,13 @@ diaryloop:
context.data.byte(kManisoffscreen) = 0;
redrawmainscrn(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
diarylist:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showdiary(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 1;
context.ah = 0;
context.di = (68+24);
@@ -15317,10 +15817,11 @@ void showdiary(Context & context) {
context.bx = (48+12)+108;
context.ds = context.data.word(kTempgraphics);
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showdiarykeys(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kPresscount), 0);
if (context.flags.z()) goto nokeyatall;
context._dec(context.data.byte(kPresscount));
@@ -15342,7 +15843,7 @@ gotkeyn:
if (!context.flags.z()) goto notshown;
showdiarypage(context);
notshown:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nokeyn:
context.al = 5;
context._cmp(context.data.byte(kPresscount), 1);
@@ -15358,12 +15859,13 @@ gotkeyp:
if (!context.flags.z()) goto notshowp;
showdiarypage(context);
notshowp:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nokeyatall:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpdiarykeys(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kPresscount), 1);
if (!context.flags.z()) goto notdumpdiary;
context._cmp(context.data.byte(kSartaindead), 1);
@@ -15395,7 +15897,7 @@ void dumpdiarykeys(Context & context) {
showdiarypage(context);
worktoscreenm(context);
showpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notsartadd:
context.di = (68+24)+48;
context.bx = (48+12)+15;
@@ -15413,10 +15915,11 @@ notdumpdiary:
context.cl = 16;
context.ch = 16;
multidump(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void diarykeyp(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 214);
if (context.flags.z()) goto alreadykeyp;
context.data.byte(kCommandtype) = 214;
@@ -15439,10 +15942,11 @@ alreadykeyp:
if (!context.flags.z()) goto notkeyp;
context.data.byte(kDiarypage) = 11;
notkeyp:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void diarykeyn(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 213);
if (context.flags.z()) goto alreadykeyn;
context.data.byte(kCommandtype) = 213;
@@ -15465,10 +15969,11 @@ alreadykeyn:
if (!context.flags.z()) goto notkeyn;
context.data.byte(kDiarypage) = 0;
notkeyn:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showdiarypage(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = 0;
context.ah = 0;
context.di = (68+24);
@@ -15498,10 +16003,11 @@ void showdiarypage(Context & context) {
context.data.byte(kKerning) = 0;
context.data.word(kCharshift) = 0;
usecharset1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findtext1(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = 0;
context.si = context.ax;
context._add(context.si, context.si);
@@ -15509,10 +16015,11 @@ void findtext1(Context & context) {
context.ax = context.es.word(context.si);
context._add(context.ax, (66*2));
context.si = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void zoomonoff(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kPointermode), 2);
@@ -15529,7 +16036,7 @@ alreadyonoff:
context._and(context.ax, 1);
if (!context.flags.z()) goto dozoomonoff;
nozoomonoff:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dozoomonoff:
context.al = context.data.byte(kZoomon);
context._xor(context.al, 1);
@@ -15546,10 +16053,11 @@ dozoomonoff:
commandonly(context);
readmouse(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void saveload(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) { blank(context); return; };
context._cmp(context.data.byte(kPointermode), 2);
@@ -15567,10 +16075,11 @@ alreadyops:
if (context.flags.z()) goto noops;
dosaveload(context);
noops:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dosaveload(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kPointerframe) = 0;
context.data.word(kTextaddressx) = 70;
context.data.word(kTextaddressy) = 182-8;
@@ -15616,20 +16125,22 @@ waitops:
context.data.byte(kCommandtype) = 200;
justret:
context.data.byte(kManisoffscreen) = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getbackfromops(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kMandead), 2);
if (context.flags.z()) goto opsblock1;
getback1(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
opsblock1:
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showmainops(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics);
context.di = (60)+10;
context.bx = (52)+10;
@@ -15648,10 +16159,11 @@ void showmainops(Context & context) {
context.al = 1;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showdiscops(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics);
context.di = (60)+128+4;
context.bx = (52)+12;
@@ -15676,16 +16188,18 @@ void showdiscops(Context & context) {
context.al = 5;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadsavebox(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = 1961;
loadintotemp(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadgame(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 246);
if (context.flags.z()) goto alreadyload;
context.data.byte(kCommandtype) = 246;
@@ -15698,7 +16212,7 @@ alreadyload:
context._cmp(context.ax, 1);
if (context.flags.z()) goto doload;
noload:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
doload:
context.data.byte(kLoadingorsave) = 1;
showopbox(context);
@@ -15741,10 +16255,11 @@ loadops:
worktoscreen(context);
context.data.byte(kGetback) = 4;
quitloaded:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getbacktoops(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 201);
if (context.flags.z()) goto alreadygetops;
context.data.byte(kCommandtype) = 201;
@@ -15757,14 +16272,15 @@ alreadygetops:
context._and(context.ax, 1);
if (!context.flags.z()) goto dogetbackops;
nogetbackops:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dogetbackops:
oldtonames(context);
context.data.byte(kGetback) = 2;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void discops(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 249);
if (context.flags.z()) goto alreadydiscops;
context.data.byte(kCommandtype) = 249;
@@ -15777,7 +16293,7 @@ alreadydiscops:
context._and(context.ax, 1);
if (!context.flags.z()) goto dodiscops;
nodiscops:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dodiscops:
scanfornames(context);
context.data.byte(kLoadingorsave) = 2;
@@ -15797,14 +16313,15 @@ discopsloop:
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto discopsloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void savegame(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kMandead), 2);
if (!context.flags.z()) goto cansaveok;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
cansaveok:
context._cmp(context.data.byte(kCommandtype), 247);
if (context.flags.z()) goto alreadysave;
@@ -15815,7 +16332,7 @@ alreadysave:
context.ax = context.data.word(kMousebutton);
context._and(context.ax, 1);
if (!context.flags.z()) goto dosave;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
dosave:
context.data.byte(kLoadingorsave) = 2;
showopbox(context);
@@ -15840,10 +16357,11 @@ saveops:
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto saveops;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void actualsave(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 222);
if (context.flags.z()) goto alreadyactsave;
context.data.byte(kCommandtype) = 222;
@@ -15900,10 +16418,11 @@ alreadyactsave:
worktoscreenm(context);
context.data.byte(kGetback) = 4;
noactsave:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void actualload(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 221);
if (context.flags.z()) goto alreadyactload;
context.data.byte(kCommandtype) = 221;
@@ -15929,19 +16448,21 @@ alreadyactload:
loadposition(context);
context.data.byte(kGetback) = 1;
notactload:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void selectslot2(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kMousebutton), 0);
if (context.flags.z()) goto noselslot2;
context.data.byte(kLoadingorsave) = 2;
noselslot2:
selectslot(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkinput(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLoadingorsave), 3);
if (context.flags.z()) goto nokeypress;
readkey(context);
@@ -15974,17 +16495,18 @@ spacepress:
context.es.byte(context.bx+3) = 1;
goto afterkey;
nokeypress:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
afterkey:
showopbox(context);
shownames(context);
showslots(context);
showsaveops(context);
worktoscreenm(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void getnamepos(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kCurrentslot);
context.ah = 0;
context.cx = 17;
@@ -15996,10 +16518,11 @@ void getnamepos(Context & context) {
context.al = context.data.byte(kCursorpos);
context.ah = 0;
context._add(context.bx, context.ax);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showopbox(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics);
context.di = (60);
context.bx = (52);
@@ -16012,10 +16535,11 @@ void showopbox(Context & context) {
context.al = 4;
context.ah = 0;
showframe(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showloadops(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics);
context.di = (60)+128+4;
context.bx = (52)+12;
@@ -16033,10 +16557,11 @@ void showloadops(Context & context) {
context.al = 55;
context.dl = 101;
printmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showsaveops(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.data.word(kTempgraphics);
context.di = (60)+128+4;
context.bx = (52)+12;
@@ -16054,10 +16579,11 @@ void showsaveops(Context & context) {
context.al = 54;
context.dl = 101;
printmessage(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void selectslot(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 244);
if (context.flags.z()) goto alreadysel;
context.data.byte(kCommandtype) = 244;
@@ -16093,19 +16619,20 @@ getslotnum:
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isloadmode:
showloadops(context);
readmouse(context);
showpointer(context);
worktoscreen(context);
delpointer(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
noselslot:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showslots(Context & context) {
+ uint stack_depth = context.stack.size();
context.di = (60)+7;
context.bx = (52)+8;
context.al = 2;
@@ -16133,10 +16660,11 @@ nomatchslot:
context._inc(context.cl);
context._cmp(context.cl, 7);
if (!context.flags.z()) goto slotloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void shownames(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
context.si = 8350+1;
@@ -16199,30 +16727,33 @@ afterprintname:
context._inc(context.cl);
context._cmp(context.cl, 7);
if (!context.flags.z()) goto shownameloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void namestoold(Context & context) {
+ uint stack_depth = context.stack.size();
context.ds = context.cs;
context.si = 8350;
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.es = context.data.word(kBuffers);
context.cx = 17*4;
while(context.cx--) context._movsb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void oldtonames(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.cs;
context.di = 8350;
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.ds = context.data.word(kBuffers);
context.cx = 17*4;
while(context.cx--) context._movsb();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void saveposition(Context & context) {
+ uint stack_depth = context.stack.size();
makeheader(context);
context.al = context.data.byte(kCurrentslot);
context.ah = 0;
@@ -16270,10 +16801,11 @@ void saveposition(Context & context) {
saveseg(context);
fquit:
closefile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadposition(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kTimecount) = 0;
clearchanges(context);
context.al = context.data.byte(kCurrentslot);
@@ -16318,10 +16850,11 @@ void loadposition(Context & context) {
context.dx = 534;
loadseg(context);
closefile(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makeheader(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
context.di = 5912;
@@ -16337,19 +16870,21 @@ void makeheader(Context & context) {
storeit(context);
context.ax = (991-534);
storeit(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void storeit(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ax, 0);
if (!context.flags.z()) goto isntblank;
context._inc(context.ax);
isntblank:
context._stosw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findlen(Context & context) {
+ uint stack_depth = context.stack.size();
context._dec(context.bx);
context._add(context.bx, context.ax);
nextone:
@@ -16360,10 +16895,11 @@ nextone:
context._cmp(context.ax, 0);
if (!context.flags.z()) goto nextone;
foundlen:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void scanfornames(Context & context) {
+ uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
context.di = 8350;
@@ -16408,10 +16944,11 @@ notexist:
context._dec(context.cl);
if (!context.flags.z()) goto scanloop;
context.al = context.ch;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void decide(Context & context) {
+ uint stack_depth = context.stack.size();
setmode(context);
loadpalfromiff(context);
clearpalette(context);
@@ -16445,10 +16982,11 @@ hasloadedroom:
context.data.word(kTextaddressx) = 13;
context.data.word(kTextaddressy) = 182;
context.data.byte(kTextlen) = 240;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showdecisions(Context & context) {
+ uint stack_depth = context.stack.size();
createpanel2(context);
showopbox(context);
context.ds = context.data.word(kTempgraphics);
@@ -16458,10 +16996,11 @@ void showdecisions(Context & context) {
context.ah = 0;
showframe(context);
undertextline(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void newgame(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 251);
if (context.flags.z()) goto alreadynewgame;
context.data.byte(kCommandtype) = 251;
@@ -16473,10 +17012,11 @@ alreadynewgame:
if (!context.flags.z()) goto nonewgame;
context.data.byte(kGetback) = 3;
nonewgame:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void doload(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kLoadingorsave) = 1;
showopbox(context);
showloadops(context);
@@ -16518,10 +17058,11 @@ loadops:
worktoscreen(context);
context.data.byte(kGetback) = 4;
quitloaded:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loadold(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kCommandtype), 252);
if (context.flags.z()) goto alreadyloadold;
context.data.byte(kCommandtype) = 252;
@@ -16538,10 +17079,11 @@ alreadyloadold:
worktoscreenm(context);
context.data.byte(kGetback) = 0;
noloadold:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void createname(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.di = 4932;
context.cs.byte(context.di+0) = context.dl;
@@ -16579,10 +17121,11 @@ tensc:
context.cs.byte(context.di+6) = context.cl;
context._add(context.al, '0');
context.cs.byte(context.di+7) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void trysoundalloc(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kNeedsoundbuff), 1);
if (context.flags.z()) goto gotsoundbuff;
context._inc(context.data.byte(kSoundtimes));
@@ -16606,15 +17149,16 @@ void trysoundalloc(Context & context) {
context.ax = 0x7f7f;
while(context.cx--) context._stosw();
context.data.byte(kNeedsoundbuff) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
soundfail:
context.es = context.data.word(kSoundbuffer);
deallocatemem(context);
gotsoundbuff:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void playchannel0(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSoundint), 255);
if (context.flags.z()) goto dontbother4;
context.push(context.es);
@@ -16659,10 +17203,11 @@ nosetloop:
context.ds = context.pop();
context.es = context.pop();
dontbother4:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void playchannel1(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kSoundint), 255);
if (context.flags.z()) goto dontbother5;
context._cmp(context.data.byte(kCh1playing), 7);
@@ -16699,10 +17244,11 @@ notsecondbank1:
context.ds = context.pop();
context.es = context.pop();
dontbother5:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void makenextblock(Context & context) {
+ uint stack_depth = context.stack.size();
volumeadjust(context);
loopchannel0(context);
context._cmp(context.data.word(kCh1blockstocopy), 0);
@@ -16712,7 +17258,7 @@ void makenextblock(Context & context) {
context._dec(context.data.word(kCh0blockstocopy));
context._dec(context.data.word(kCh1blockstocopy));
bothchannels(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
mightbeonlych1:
context.data.byte(kCh0playing) = 255;
context._cmp(context.data.word(kCh1blockstocopy), 0);
@@ -16720,14 +17266,14 @@ mightbeonlych1:
context._dec(context.data.word(kCh1blockstocopy));
channel1only(context);
notch1only:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
mightbeonlych0:
context.data.byte(kCh1playing) = 255;
context._cmp(context.data.word(kCh0blockstocopy), 0);
if (context.flags.z()) goto notch0only;
context._dec(context.data.word(kCh0blockstocopy));
channel0only(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notch0only:
context.es = context.data.word(kSoundbuffer);
context.di = context.data.word(kSoundbufferwrite);
@@ -16736,10 +17282,11 @@ notch0only:
while(context.cx--) context._stosw();
context._and(context.di, 16384-1);
context.data.word(kSoundbufferwrite) = context.di;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void volumeadjust(Context & context) {
+ uint stack_depth = context.stack.size();
context.al = context.data.byte(kVolumedirection);
context._cmp(context.al, 0);
if (context.flags.z()) goto volok;
@@ -16751,14 +17298,15 @@ void volumeadjust(Context & context) {
context.al = context.data.byte(kVolume);
context._add(context.al, context.data.byte(kVolumedirection));
context.data.byte(kVolume) = context.al;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
volfinish:
context.data.byte(kVolumedirection) = 0;
volok:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void loopchannel0(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kCh0blockstocopy), 0);
if (!context.flags.z()) goto notloop;
context._cmp(context.data.byte(kCh0repeat), 0);
@@ -16774,30 +17322,33 @@ endlessloop:
context.ax = context.data.word(kCh0blockstocopy);
context._add(context.ax, context.data.word(kCh0oldblockstocopy));
context.data.word(kCh0blockstocopy) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notloop:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void cancelch0(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCh0repeat) = 0;
context.data.word(kCh0blockstocopy) = 0;
context.data.byte(kCh0playing) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void cancelch1(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kCh1blockstocopy) = 0;
context.data.byte(kCh1playing) = 255;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void channel0tran(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kVolume), 0);
if (!context.flags.z()) goto lowvolumetran;
context.cx = 1024;
while(context.cx--) context._movsw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
lowvolumetran:
context.cx = 1024;
context.bh = context.data.byte(kVolume);
@@ -16811,10 +17362,11 @@ volloop:
context.ah = context.es.byte(context.bx);
context._stosw();
if (--context.cx) goto volloop;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void domix(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kVolume), 0);
if (!context.flags.z()) goto lowvolumemix;
slow:
@@ -16903,10 +17455,11 @@ nodistortv:
context._stosb();
if (--context.cx) goto lowvolumemix;
doneit:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void entrytexts(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLocation), 21);
if (!context.flags.z()) goto notloc15;
context.al = 28;
@@ -16915,7 +17468,7 @@ void entrytexts(Context & context) {
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notloc15:
context._cmp(context.data.byte(kLocation), 30);
if (!context.flags.z()) goto notloc43;
@@ -16925,7 +17478,7 @@ notloc15:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notloc43:
context._cmp(context.data.byte(kLocation), 23);
if (!context.flags.z()) goto notloc23;
@@ -16935,7 +17488,7 @@ notloc43:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notloc23:
context._cmp(context.data.byte(kLocation), 31);
if (!context.flags.z()) goto notloc44;
@@ -16945,7 +17498,7 @@ notloc23:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notloc44:
context._cmp(context.data.byte(kLocation), 20);
if (!context.flags.z()) goto notsarters2;
@@ -16955,7 +17508,7 @@ notloc44:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notsarters2:
context._cmp(context.data.byte(kLocation), 24);
if (!context.flags.z()) goto notedenlob;
@@ -16965,7 +17518,7 @@ notsarters2:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notedenlob:
context._cmp(context.data.byte(kLocation), 34);
if (!context.flags.z()) goto noteden2;
@@ -16975,12 +17528,13 @@ notedenlob:
context.bl = 68;
context.bh = 64;
setuptimeduse(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
noteden2:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void entryanims(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.word(kReeltowatch) = -1;
context.data.byte(kWatchmode) = -1;
context._cmp(context.data.byte(kLocation), 33);
@@ -16991,7 +17545,7 @@ void entryanims(Context & context) {
context.data.word(kEndwatchreel) = 76;
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinthebeach:
context._cmp(context.data.byte(kLocation), 44);
if (!context.flags.z()) goto notsparkys;
@@ -17003,7 +17557,7 @@ notinthebeach:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notsparkys:
context._cmp(context.data.byte(kLocation), 22);
if (!context.flags.z()) goto notinthelift;
@@ -17013,13 +17567,13 @@ notsparkys:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notinthelift:
context._cmp(context.data.byte(kLocation), 26);
if (!context.flags.z()) goto notunderchurch;
context.data.byte(kSymboltopnum) = 2;
context.data.byte(kSymbolbotnum) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notunderchurch:
context._cmp(context.data.byte(kLocation), 45);
if (!context.flags.z()) goto notenterdream;
@@ -17030,7 +17584,7 @@ notunderchurch:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notenterdream:
context._cmp(context.data.byte(kReallocation), 46);
if (!context.flags.z()) goto notcrystal;
@@ -17038,7 +17592,7 @@ notenterdream:
if (!context.flags.z()) goto notcrystal;
context.al = 0;
removefreeobject(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notcrystal:
context._cmp(context.data.byte(kLocation), 9);
if (!context.flags.z()) goto nottopchurch;
@@ -17057,7 +17611,7 @@ makedoorsopen:
removesetobject(context);
context.al = 5;
placesetobject(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nottopchurch:
context._cmp(context.data.byte(kLocation), 47);
if (!context.flags.z()) goto notdreamcentre;
@@ -17065,7 +17619,7 @@ nottopchurch:
placesetobject(context);
context.al = 5;
placesetobject(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notdreamcentre:
context._cmp(context.data.byte(kLocation), 38);
if (!context.flags.z()) goto notcarpark;
@@ -17075,7 +17629,7 @@ notdreamcentre:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notcarpark:
context._cmp(context.data.byte(kLocation), 32);
if (!context.flags.z()) goto notalley;
@@ -17085,7 +17639,7 @@ notcarpark:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notalley:
context._cmp(context.data.byte(kLocation), 24);
if (!context.flags.z()) goto notedensagain;
@@ -17094,13 +17648,14 @@ notalley:
context._dec(context.ah);
turnanypathon(context);
notedensagain:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void initialinv(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 24);
if (context.flags.z()) goto isedens;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isedens:
context.al = 11;
context.ah = 5;
@@ -17133,34 +17688,38 @@ isedens:
context.data.byte(kWatchspeed) = 1;
context.data.byte(kSpeedcount) = 1;
switchryanoff(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void pickupob(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kLastinvpos) = context.ah;
context.data.byte(kObjecttype) = 2;
context.data.byte(kItemframe) = context.al;
context.data.byte(kCommand) = context.al;
getanyad(context);
transfertoex(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkforemm(Context & context) {
- return;
+ uint stack_depth = context.stack.size();
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkbasemem(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = context.data.word(kHowmuchalloc);
context._cmp(context.bx, 0x9360);
if (!context.flags.c()) goto enoughmem;
context.data.byte(kGameerror) = 5;
{ quickquit(context); return; };
enoughmem:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void allocatebuffers(Context & context) {
+ uint stack_depth = context.stack.size();
context.bx = (0+2080+30000+(16*114)+((114+2)*2)+18000)/16;
allocatemem(context);
context.data.word(kExtras) = context.ax;
@@ -17191,10 +17750,11 @@ void allocatebuffers(Context & context) {
context.bx = 2048/16;
allocatemem(context);
context.data.word(kSounddata2) = context.ax;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearbuffers(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.cx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*24)+(6*64)+991-534+68-0)/2;
context.ax = 0;
@@ -17218,10 +17778,11 @@ void clearbuffers(Context & context) {
context.cx = (68-0);
while(context.cx--) context._movsb();
clearchanges(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearchanges(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.cx = (250)*2;
context.ax = 0x0ffff;
@@ -17259,30 +17820,33 @@ void clearchanges(Context & context) {
context.ax = 0;
context.cx = 6;
while(context.cx--) context._stosw();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearbeforeload(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kRoomloaded), 1);
if (!context.flags.z()) goto noclear;
clearreels(context);
clearrest(context);
context.data.byte(kRoomloaded) = 0;
noclear:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearreels(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kReel1);
deallocatemem(context);
context.es = context.data.word(kReel2);
deallocatemem(context);
context.es = context.data.word(kReel3);
deallocatemem(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void clearrest(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kMapdata);
context.cx = (66*60)/2;
context.ax = 0;
@@ -17306,10 +17870,11 @@ void clearrest(Context & context) {
deallocatemem(context);
context.es = context.data.word(kFreedesc);
deallocatemem(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void parseblaster(Context & context) {
+ uint stack_depth = context.stack.size();
lookattail:
context.al = context.es.byte(context.bx);
context._cmp(context.al, 0);
@@ -17338,7 +17903,7 @@ lookattail:
if (context.flags.z()) goto isdma;
context._inc(context.bx);
if (--context.cx) goto lookattail;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
issoundint:
context.al = context.es.byte(context.bx+1);
context._sub(context.al, '0');
@@ -17372,10 +17937,11 @@ isnosound:
context._inc(context.bx);
goto lookattail;
endtail:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void startup(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kCurrentkey) = 0;
context.data.byte(kMainmode) = 0;
createpanel(context);
@@ -17388,10 +17954,11 @@ void startup(Context & context) {
undertextline(context);
reelsonscreen(context);
atmospheres(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void startup1(Context & context) {
+ uint stack_depth = context.stack.size();
clearpalette(context);
context.data.byte(kThroughdoor) = 0;
context.data.byte(kCurrentkey) = '0';
@@ -17408,10 +17975,11 @@ void startup1(Context & context) {
atmospheres(context);
worktoscreen(context);
fadescreenup(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void screenupdate(Context & context) {
+ uint stack_depth = context.stack.size();
newplace(context);
mainscreen(context);
animpointer(context);
@@ -17456,10 +18024,11 @@ iswatchingmode:
dumpwatch(context);
delpointer(context);
finishearly:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void watchreel(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kReeltowatch), -1);
if (context.flags.z()) goto notplayingreel;
context.al = context.data.byte(kManspath);
@@ -17469,7 +18038,7 @@ void watchreel(Context & context) {
context._cmp(context.al, context.data.byte(kFacing));
if (context.flags.z()) goto notwatchpath;
waitstopwalk:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notwatchpath:
context._dec(context.data.byte(kSpeedcount));
context._cmp(context.data.byte(kSpeedcount), -1);
@@ -17497,14 +18066,14 @@ showwatchreel:
context.data.word(kReeltowatch) = context.ax;
checkforshake(context);
nomorereel:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notplayingreel:
context._cmp(context.data.byte(kWatchmode), 1);
if (!context.flags.z()) goto notholdingreel;
context.ax = context.data.word(kReeltohold);
context.data.word(kReelpointer) = context.ax;
plotreel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notholdingreel:
context._cmp(context.data.byte(kWatchmode), 2);
if (!context.flags.z()) goto notreleasehold;
@@ -17524,27 +18093,29 @@ notlastspeed2:
context.data.byte(kDestination) = context.al;
context.data.byte(kFinaldest) = context.al;
autosetwalk(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
ismorereel2:
context.ax = context.data.word(kReeltohold);
context.data.word(kReelpointer) = context.ax;
plotreel(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notreleasehold:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkforshake(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kReallocation), 26);
if (!context.flags.z()) goto notstartshake;
context._cmp(context.ax, 104);
if (!context.flags.z()) goto notstartshake;
context.data.byte(kShakecounter) = -1;
notstartshake:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void watchcount(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWatchon), 0);
if (context.flags.z()) goto nowatchworn;
context._inc(context.data.byte(kTimercount));
@@ -17553,7 +18124,7 @@ void watchcount(Context & context) {
context._cmp(context.data.byte(kTimercount), 18);
if (context.flags.z()) goto uptime;
nowatchworn:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
flashdots:
context.ax = 91*3+21;
context.di = 268+4;
@@ -17579,10 +18150,11 @@ finishtime:
showtime(context);
finishwatch:
context.data.byte(kWatchdump) = 1;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showtime(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWatchon), 0);
if (context.flags.z()) goto nowatch;
context.al = context.data.byte(kSecondcount);
@@ -17645,10 +18217,11 @@ void showtime(Context & context) {
context.bx = 21;
showframe(context);
nowatch:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void dumpwatch(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kWatchdump), 1);
if (!context.flags.z()) goto nodumpwatch;
context.di = 256;
@@ -17658,10 +18231,11 @@ void dumpwatch(Context & context) {
multidump(context);
context.data.byte(kWatchdump) = 0;
nodumpwatch:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showbyte(Context & context) {
+ uint stack_depth = context.stack.size();
context.dl = context.al;
context._shr(context.dl, 1);
context._shr(context.dl, 1);
@@ -17674,21 +18248,23 @@ void showbyte(Context & context) {
onedigit(context);
context.es.byte(context.di+1) = context.dl;
context._add(context.di, 3);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void onedigit(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.dl, 10);
if (!context.flags.c()) goto morethan10;
context._add(context.dl, '0');
- return;
+ {assert(stack_depth == context.stack.size()); return; }
morethan10:
context._sub(context.dl, 10);
context._add(context.dl, 'A');
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void twodigitnum(Context & context) {
+ uint stack_depth = context.stack.size();
context.ah = context.cl;
context._dec(context.ah);
numloop1:
@@ -17697,10 +18273,11 @@ numloop1:
if (!context.flags.c()) goto numloop1;
context._add(context.al, 10);
context._add(context.al, context.cl);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void showword(Context & context) {
+ uint stack_depth = context.stack.size();
context.ch = 0;
context.bx = 10000;
context.cl = 47;
@@ -17742,10 +18319,11 @@ word4:
context.cl = context.al;
convnum(context);
context.cs.byte(context.di+4) = context.cl;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void convnum(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.ch, 0);
if (!context.flags.z()) goto noconvnum;
context._cmp(context.cl, '0');
@@ -17755,10 +18333,11 @@ void convnum(Context & context) {
notzeronum:
context.ch = 1;
noconvnum:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void walkandexamine(Context & context) {
+ uint stack_depth = context.stack.size();
finishedwalking(context);
if (!context.flags.z()) goto noobselect;
context.al = context.data.byte(kWalkexamtype);
@@ -17769,12 +18348,12 @@ void walkandexamine(Context & context) {
context._cmp(context.data.byte(kCommandtype), 5);
if (context.flags.z()) goto noobselect;
examineob(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
wantstowalk:
setwalk(context);
context.data.byte(kReasseschanges) = 1;
noobselect:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
diff:
context.data.byte(kCommand) = context.al;
context.data.byte(kCommandtype) = context.ah;
@@ -17814,22 +18393,23 @@ notblock:
context._cmp(context.data.byte(kCommandtype), 5);
if (context.flags.z()) goto isaperson;
examineobtext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
middleofwalk:
blocknametext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isblock:
blocknametext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
isaperson:
personnametext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
toofaraway:
walktotext(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void mainscreen(Context & context) {
+ uint stack_depth = context.stack.size();
context.data.byte(kInmaparea) = 0;
context.bx = 4949;
context._cmp(context.data.byte(kWatchon), 1);
@@ -17841,10 +18421,11 @@ checkmain:
if (context.flags.z()) goto finishmain;
walkandexamine(context);
finishmain:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void madmanrun(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kLocation), 14);
if (!context.flags.z()) { identifyob(context); return; };
context._cmp(context.data.byte(kMapx), 22);
@@ -17866,13 +18447,14 @@ alreadyrun:
if (context.flags.z()) goto norun;
context.data.byte(kLastweapon) = 8;
norun:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkcoords(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.byte(kNewlocation), 255);
if (context.flags.z()) goto loop048;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
loop048:
context.ax = context.cs.word(context.bx);
context._cmp(context.ax, 0x0ffff);
@@ -17893,16 +18475,17 @@ loop048:
__dispatch_call(context, context.ax);
finished:
context.ax = context.pop();
- return;
+ {assert(stack_depth == context.stack.size()); return; }
over045:
context.bx = context.pop();
context._add(context.bx, 10);
goto loop048;
nonefound:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void identifyob(Context & context) {
+ uint stack_depth = context.stack.size();
context._cmp(context.data.word(kWatchingtime), 0);
if (!context.flags.z()) { blank(context); return; };
context.ax = context.data.word(kMousex);
@@ -17910,14 +18493,14 @@ void identifyob(Context & context) {
context._cmp(context.ax, 22*8);
if (context.flags.c()) goto notover1;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notover1:
context.bx = context.data.word(kMousey);
context._sub(context.bx, context.data.word(kMapady));
context._cmp(context.bx, 20*8);
if (context.flags.c()) goto notover2;
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notover2:
context.data.byte(kInmaparea) = 1;
context.ah = context.bl;
@@ -17951,13 +18534,14 @@ notover2:
context.ah = 3;
obname(context);
finishidentify:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
nothingund:
blank(context);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkifperson(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
context.cx = 12;
@@ -18004,16 +18588,17 @@ notblankpers:
obname(context);
context.al = 0;
context._cmp(context.al, 1);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notareelid:
context.cx = context.pop();
context._add(context.bx, 5);
context._dec(context.cx);
if (!context.flags.z()) goto identifyreel;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkifset(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32))+(127*5);
context.cx = 127;
@@ -18037,16 +18622,17 @@ identifyset:
obname(context);
context.al = 0;
context._cmp(context.al, 1);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notasetid:
context._sub(context.bx, 5);
context._dec(context.cx);
context._cmp(context.cx, -1);
if (!context.flags.z()) goto identifyset;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkifex(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5))+(99*5);
context.cx = 99;
@@ -18066,16 +18652,17 @@ identifyex:
obname(context);
context.al = 1;
context._cmp(context.al, 0);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notanexid:
context._sub(context.bx, 5);
context._dec(context.cx);
context._cmp(context.cx, -1);
if (!context.flags.z()) goto identifyex;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void checkiffree(Context & context) {
+ uint stack_depth = context.stack.size();
context.es = context.data.word(kBuffers);
context.bx = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5))+(79*5);
context.cx = 79;
@@ -18095,16 +18682,17 @@ identifyfree:
obname(context);
context.al = 0;
context._cmp(context.al, 1);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
notafreeid:
context._sub(context.bx, 5);
context._dec(context.cx);
context._cmp(context.cx, -1);
if (!context.flags.z()) goto identifyfree;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void isitdescribed(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.cx);
context.push(context.es);
@@ -18124,10 +18712,11 @@ void isitdescribed(Context & context) {
context.cx = context.pop();
context.ax = context.pop();
context._cmp(context.dl, 0);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findpathofpoint(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.bx = (0);
context.es = context.data.word(kReels);
@@ -18162,10 +18751,11 @@ flunkedit:
if (!context.flags.z()) goto pathloop;
context.dl = 255;
gotvalidpath:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void findfirstpath(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.bx = (0);
context.es = context.data.word(kReels);
@@ -18196,13 +18786,14 @@ nofirst:
context._cmp(context.dl, 12);
if (!context.flags.z()) goto fpathloop;
context.al = 0;
- return;
+ {assert(stack_depth == context.stack.size()); return; }
gotfirst:
context.al = context.es.byte(context.bx+6);
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void turnpathon(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.ax);
context.cl = 255;
@@ -18222,10 +18813,11 @@ void turnpathon(Context & context) {
context.al = 255;
context.es.byte(context.bx+6) = context.al;
nopathon:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void turnpathoff(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.ax);
context.cl = 0;
@@ -18245,10 +18837,11 @@ void turnpathoff(Context & context) {
context.al = 0;
context.es.byte(context.bx+6) = context.al;
nopathoff:
- return;
+ {assert(stack_depth == context.stack.size()); return; }
}
void turnanypathon(Context & context) {
+ uint stack_depth = context.stack.size();
context.push(context.ax);
context.push(context.ax);
context.cl = 255;
@@ -18271,10 +18864,11 @@ void turnanypathon(Context & context) {
context._add(context.bx, context.ax);
context.al = 255;
context.es.byte(context.bx+6) = context.al;
Commit: 4547e7314cd64777c7807595dcacc369be338583
https://github.com/scummvm/scummvm/commit/4547e7314cd64777c7807595dcacc369be338583
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:38-07:00
Commit Message:
DREAMWEB: Make it possible to type the letter D
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 6883580..02e93e1 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -115,6 +115,7 @@ void DreamWebEngine::processEvents() {
}
Common::Event event;
while (event_manager->pollEvent(event)) {
+ bool keyHandled = false;
switch(event.type) {
case Common::EVENT_KEYDOWN:
switch (event.kbd.keycode) {
@@ -122,9 +123,14 @@ void DreamWebEngine::processEvents() {
if (event.kbd.flags & Common::KBD_CTRL) {
_console->attach();
_console->onFrame();
+ keyHandled = true;
}
break;
default:
+ break;
+ }
+
+ if (!keyHandled) {
// As far as I can see, the only keys checked
// for in 'lasthardkey' are 1 (ESC) and 57
// (space) so add special cases for them and
@@ -137,8 +143,8 @@ void DreamWebEngine::processEvents() {
_context.data.byte(dreamgen::kLasthardkey) = 0;
if (event.kbd.ascii)
keyPressed(event.kbd.ascii);
- break;
}
+
break;
default:
break;
Commit: c808844ad6ac37171db1fa56cc0eeb96142a59b1
https://github.com/scummvm/scummvm/commit/c808844ad6ac37171db1fa56cc0eeb96142a59b1
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:39-07:00
Commit Message:
DREAMWEB: regenerated the source
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index de9a7c1..b17d469 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -4770,6 +4770,8 @@ void showframe(Context & context) {
context._add(context.si, context.cx);
context._cmp(context.ds.word(context.si), 0);
if (!context.flags.z()) goto notblankshow;
+ context.ax = context.pop();
+ context.dx = context.pop();
context.cx = 0;
{assert(stack_depth == context.stack.size()); return; }
notblankshow:
Commit: 92a11ea59d36e46a2a0cc0beaeac98310efed433
https://github.com/scummvm/scummvm/commit/92a11ea59d36e46a2a0cc0beaeac98310efed433
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:34:39-07:00
Commit Message:
DREAMWEB: Make new function for getting name of file to open.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 02e93e1..ecab433 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -350,6 +350,15 @@ void DreamWebEngine::cls() {
namespace dreamgen {
+Common::String getFilename(Context &context) {
+ uint16 name_ptr = context.dx;
+ Common::String name;
+ uint8 c;
+ while((c = context.cs.byte(name_ptr++)) != 0)
+ name += (char)c;
+ return name;
+}
+
void multiget(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
unsigned src = (uint16)context.di + (uint16)context.bx * kScreenwidth;
@@ -479,11 +488,7 @@ void openfilenocheck(Context &context) {
}
void openfile(Context &context) {
- uint16 name_ptr = context.dx;
- Common::String name;
- uint8 c;
- while((c = context.cs.byte(name_ptr++)) != 0)
- name += (char)c;
+ Common::String name = getFilename(context);
debug(1, "opening file: %s", name.c_str());
context.engine->openFile(name);
context.cs.word(kHandle) = 1; //only one handle
@@ -755,12 +760,7 @@ void readoneblock(Context &context) {
void readabyte(Context & context);
void showpcx(Context &context) {
- uint16 name_ptr = context.dx;
- Common::String name;
- uint8 c;
- while((c = context.cs.byte(name_ptr++)) != 0)
- name += (char)c;
-
+ Common::String name = getFilename(context);
Common::File pcxFile;
if (!pcxFile.open(name)) {
Commit: 308fcf0953ab4974d997710debdaa72b0b44ed3e
https://github.com/scummvm/scummvm/commit/308fcf0953ab4974d997710debdaa72b0b44ed3e
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:40-07:00
Commit Message:
DREAMWEB: added setSpeed, CTRL-F shortcut and removed erik's comment because it's good idea :)
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index ecab433..b3bae38 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -66,6 +66,7 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
_outSaveFile = 0;
_inSaveFile = 0;
+ _speed = 1;
}
DreamWebEngine::~DreamWebEngine() {
@@ -73,10 +74,6 @@ DreamWebEngine::~DreamWebEngine() {
delete _console;
}
-// Let's see if it's a good idea to emulate VSYNC interrupts with a timer like
-// this. There's a chance we'll miss interrupts, which could be countered by
-// counting them instead of just flagging them, but we'll see...
-
static void vSyncInterrupt(void *refCon) {
DreamWebEngine *vm = (DreamWebEngine *)refCon;
@@ -126,6 +123,15 @@ void DreamWebEngine::processEvents() {
keyHandled = true;
}
break;
+ case Common::KEYCODE_f:
+ if (event.kbd.flags & Common::KBD_CTRL) {
+ if (_speed != 10)
+ setSpeed(10);
+ else
+ setSpeed(1);
+ keyHandled = true;
+ }
+ break;
default:
break;
}
@@ -166,6 +172,13 @@ Common::Error DreamWebEngine::run() {
return Common::kNoError;
}
+void DreamWebEngine::setSpeed(uint speed) {
+ debug(0, "setting speed %u", speed);
+ _speed = speed;
+ getTimerManager()->removeTimerProc(vSyncInterrupt);
+ getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70 / speed, this);
+}
+
void DreamWebEngine::openFile(const Common::String &name) {
processEvents();
closeFile();
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 33a88e0..50d2779 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -104,6 +104,8 @@ private:
void keyPressed(uint16 ascii);
+ void setSpeed(uint speed);
+
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
@@ -111,6 +113,8 @@ private:
Common::OutSaveFile *_outSaveFile;
Common::InSaveFile *_inSaveFile;
+ uint _speed;
+
dreamgen::Context _context;
};
Commit: 77624071bcb8c4b938dd054db05dd512d5e73edb
https://github.com/scummvm/scummvm/commit/77624071bcb8c4b938dd054db05dd512d5e73edb
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:40-07:00
Commit Message:
DREAMWEB: removed detection params
Changed paths:
engines/dreamweb/detection.cpp
diff --git a/engines/dreamweb/detection.cpp b/engines/dreamweb/detection.cpp
index f0d0f9e..10ff15d 100644
--- a/engines/dreamweb/detection.cpp
+++ b/engines/dreamweb/detection.cpp
@@ -49,34 +49,15 @@ static const ADObsoleteGameID obsoleteGameIDsTable[] = {
#include "dreamweb/detection_tables.h"
-static const ADParams detectionParams = {
- // Pointer to ADGameDescription or its superset structure
- (const byte *)DreamWeb::gameDescriptions,
- // Size of that superset structure
- sizeof(DreamWeb::DreamWebGameDescription),
- // Number of bytes to compute MD5 sum for
- 5000,
- // List of all engine targets
- dreamWebGames,
- // Structure for autoupgrading obsolete targets
- obsoleteGameIDsTable,
- // Name of single gameid (optional)
- "dreamweb",
- // List of files for file-based fallback detection (optional)
- 0,
- // Flags
- 0,
- // Additional GUI options (for every game}
- Common::GUIO_NOMIDI,
- // Maximum directory depth
- 1,
- // List of directory globs
- 0
-};
-
class DreamWebMetaEngine : public AdvancedMetaEngine {
public:
- DreamWebMetaEngine() : AdvancedMetaEngine(detectionParams) {}
+ DreamWebMetaEngine():
+ AdvancedMetaEngine(DreamWeb::gameDescriptions,
+ sizeof(DreamWeb::DreamWebGameDescription), dreamWebGames) {
+ params.obsoleteList = obsoleteGameIDsTable;
+ params.singleid = "dreamweb";
+ params.guioptions = Common::GUIO_NOMIDI;
+ }
virtual const char *getName() const {
return "DreamWeb engine";
Commit: 55c366b988e4e49342690f0fc4b180822f005272
https://github.com/scummvm/scummvm/commit/55c366b988e4e49342690f0fc4b180822f005272
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:41-07:00
Commit Message:
DREAMWEB: fixed monitor scrolling
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b3bae38..af7ccc8 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -332,24 +332,28 @@ void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int
}
void DreamWebEngine::printUnderMonitor() {
+ _context.es = _context.data.word(dreamgen::kWorkspace);
_context.di = dreamgen::kScreenwidth * 43 + 76;
_context.si = _context.di + 8 * dreamgen::kScreenwidth;
- _context.es = _context.data.word(dreamgen::kWorkspace);
Graphics::Surface *s = _system->lockScreen();
if (!s)
error("lockScreen failed");
for(uint y = 0; y < 104; ++y) {
- uint8 *src = (uint8 *)s->getBasePtr(76 + 8, 43 + y);
+ uint8 *src = (uint8 *)s->getBasePtr(76, 43 + 8 + y);
uint8 *dst = _context.es.ptr(_context.di, 170);
for(uint x = 0; x < 170; ++x) {
if (*src < 231)
*dst++ = *src++;
+ else {
+ ++dst; ++src;
+ }
}
_context._add(_context.di, dreamgen::kScreenwidth);
_context._add(_context.si, dreamgen::kScreenwidth);
}
+ _context.cx = 0;
_system->unlockScreen();
}
Commit: d69e437d42b50273eabd8d77fc76ec7a9216326c
https://github.com/scummvm/scummvm/commit/d69e437d42b50273eabd8d77fc76ec7a9216326c
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:41-07:00
Commit Message:
DREAMWEB: do not return invalid register from the deallocate memory
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index af7ccc8..6b9fda8 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -561,6 +561,7 @@ void allocatemem(Context &context) {
void deallocatemem(Context &context) {
debug(1, "deallocating segment %04x", (uint16)context.es);
context.deallocateSegment(context.es);
+ context.es = context.data;
}
void removeemm(Context &context) {
Commit: 93cf9993eaeb26f2dcb8f60a7c74559007f7a014
https://github.com/scummvm/scummvm/commit/93cf9993eaeb26f2dcb8f60a7c74559007f7a014
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:42-07:00
Commit Message:
DREAMWEB: report click only once, this fixes phantom clicks after loading or between screens.
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 6b9fda8..3d74570 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -67,6 +67,7 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_outSaveFile = 0;
_inSaveFile = 0;
_speed = 1;
+ _oldMouseState = 0;
}
DreamWebEngine::~DreamWebEngine() {
@@ -270,7 +271,10 @@ void DreamWebEngine::mouseCall() {
pos.y = 184;
_context.cx = pos.x;
_context.dx = pos.y;
- _context.bx = eventMan->getButtonState();
+
+ unsigned state = eventMan->getButtonState();
+ _context.bx = state == _oldMouseState? 0: state;
+ _oldMouseState = state;
}
void DreamWebEngine::setGraphicsMode() {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 50d2779..f61c113 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -114,6 +114,7 @@ private:
Common::InSaveFile *_inSaveFile;
uint _speed;
+ uint _oldMouseState;
dreamgen::Context _context;
};
Commit: 167d401ad70868479613e3f8a2d66e8667c5f4c4
https://github.com/scummvm/scummvm/commit/167d401ad70868479613e3f8a2d66e8667c5f4c4
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:42-07:00
Commit Message:
DREAMWEB: fix registers on exit from stubs
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 3d74570..6bf0fff 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -275,6 +275,7 @@ void DreamWebEngine::mouseCall() {
unsigned state = eventMan->getButtonState();
_context.bx = state == _oldMouseState? 0: state;
_oldMouseState = state;
+ _context.flags._c = false;
}
void DreamWebEngine::setGraphicsMode() {
@@ -426,7 +427,9 @@ void multidump(Context &context) {
void worktoscreen(Context &context) {
context.ds = context.data.word(kWorkspace);
- context.engine->blit(context.ds.ptr(0, 320 * 200), 320, 0, 0, 320, 200);
+ uint size = 320 * 200;
+ context.engine->blit(context.ds.ptr(0, size), 320, 0, 0, 320, 200);
+ context.di = context.si = size;
context.cx = 0;
}
@@ -450,6 +453,9 @@ void frameoutnm(Context &context) {
uint8 *dst_p = context.es.ptr(dst + pitch * l, w);
memcpy(dst_p, src_p, w);
}
+ context.di += dst + pitch * h;
+ context.si += w * h;
+ context.cx = 0;
}
void seecommandtail(Context &context) {
@@ -528,6 +534,7 @@ void dontloadseg(Context &context) {
unsigned pos = context.engine->skipBytes(context.dx);
context.dx = pos >> 16;
context.ax = pos & 0xffff;
+ context.flags._c = false;
}
void mousecall(Context &context) {
Commit: cf6b88b174d7f81a38beaa5b8420b71649e0747a
https://github.com/scummvm/scummvm/commit/cf6b88b174d7f81a38beaa5b8420b71649e0747a
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:42-07:00
Commit Message:
DREAMWEB: report uppercased letters to the code
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 6bf0fff..8b0d710 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -245,6 +245,8 @@ uint DreamWebEngine::readFromSaveFile(uint8 *data, uint size) {
void DreamWebEngine::keyPressed(uint16 ascii) {
+ if (ascii >= 'a' && ascii <= 'z')
+ ascii = (ascii - 'a') + 'A';
debug(1, "key pressed = %04x", ascii);
uint8* keybuf = _context.data.ptr(5715, 16); //fixme: some hardcoded offsets are not added as consts
uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) % 0x0f;
Commit: f46a889e6df85a9046a7468ce7acc0c4c34bf1e4
https://github.com/scummvm/scummvm/commit/f46a889e6df85a9046a7468ce7acc0c4c34bf1e4
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:43-07:00
Commit Message:
DREAMWEB: fixed invalid buffer len
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 8b0d710..3af8675 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -249,7 +249,7 @@ void DreamWebEngine::keyPressed(uint16 ascii) {
ascii = (ascii - 'a') + 'A';
debug(1, "key pressed = %04x", ascii);
uint8* keybuf = _context.data.ptr(5715, 16); //fixme: some hardcoded offsets are not added as consts
- uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) % 0x0f;
+ uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) & 0x0f;
uint16 out = _context.data.word(dreamgen::kBufferout);
if (in == out) {
warning("keyboard buffer is full");
@@ -286,10 +286,10 @@ void DreamWebEngine::setGraphicsMode() {
}
void DreamWebEngine::fadeDos() {
+ _context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
return; //fixme later
waitForVSync();
//processEvents will be called from vsync
- _context.ds = _context.es = _context.data.word(dreamgen::kBuffers);
uint8 *dst = _context.es.ptr(dreamgen::kStartpal, 768);
getPalette(dst, 0, 64);
for(int fade = 0; fade < 64; ++fade) {
Commit: 49e7c7a7355b78a3dc4e0aae120a95dba9600bbf
https://github.com/scummvm/scummvm/commit/49e7c7a7355b78a3dc4e0aae120a95dba9600bbf
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:43-07:00
Commit Message:
DREAMWEB: fixed occasional stripping of the strings in data segment
Changed paths:
devtools/tasmrecover/tasm/lex.py
devtools/tasmrecover/tasm/parser.py
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
diff --git a/devtools/tasmrecover/tasm/lex.py b/devtools/tasmrecover/tasm/lex.py
index ba66611..cf7e6e1 100644
--- a/devtools/tasmrecover/tasm/lex.py
+++ b/devtools/tasmrecover/tasm/lex.py
@@ -41,7 +41,7 @@ def parse_args(text):
break
token += c
- token = token.strip()
+ #token = token.strip()
if len(token):
result.append(token)
#print result
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index b1d7995..0583d85 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -169,15 +169,17 @@ class parser:
if len(line) == 0 or line[0] == ';' or line[0] == chr(0x1a):
continue
- #print cmd
+ #print line
m = re.match('(\w+)\s*?:', line)
if m is not None:
- line = line[len(m.group(0)):]
+ line = line[len(m.group(0)):].strip()
if self.visible():
name = m.group(1)
if self.proc is not None:
self.proc.add_label(name)
+ print "offset %s -> %d" %(name, len(self.binary_data))
self.set_offset(name, (len(self.binary_data), self.proc, len(self.proc.stmts) if self.proc is not None else 0))
+ #print line
cmd = line.split()
if len(cmd) == 0:
@@ -198,8 +200,8 @@ class parser:
continue
if cmd0 == 'db' or cmd0 == 'dw' or cmd0 == 'dd':
- arg = " ".join(cmd[1:])
- print "%d: %s" %(len(self.binary_data), line) #fixme: COPYPASTE
+ arg = line[len(cmd0):].strip()
+ print "%d:1: %s" %(len(self.binary_data), arg) #fixme: COPYPASTE
binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd0[1]]
self.binary_data += self.compact_data(binary_width, lex.parse_args(arg))
continue
@@ -223,10 +225,12 @@ class parser:
v = cmd[2]
self.set_global(cmd0, op.const(self.fix_dollar(v)))
elif cmd1 == 'db' or cmd1 == 'dw' or cmd1 == 'dd':
- print "%d: %s" %(len(self.binary_data), line)
binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd1[1]]
offset = len(self.binary_data)
- self.binary_data += self.compact_data(binary_width, lex.parse_args(" ".join(cmd[2:])))
+ arg = line[len(cmd0):].strip()
+ arg = arg[len(cmd1):].strip()
+ print "%d: %s" %(offset, arg)
+ self.binary_data += self.compact_data(binary_width, lex.parse_args(arg))
self.set_global(cmd0.lower(), op.var(binary_width, offset))
continue
elif cmd1 == 'proc':
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index b17d469..dca8d5f 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2845,7 +2845,7 @@ continuewalk:
context.push(context.bx);
context.dx = context.data;
context.es = context.dx;
- context.bx = 7944;
+ context.bx = 8141;
context._add(context.bx, context.ax);
context.ax = context.es.word(context.bx);
context.bx = context.pop();
@@ -6936,7 +6936,7 @@ void openob(Context & context) {
uint stack_depth = context.stack.size();
context.al = context.data.byte(kOpenedob);
context.ah = context.data.byte(kOpenedtype);
- context.di = 5674;
+ context.di = 5847;
copyname(context);
context.di = (80);
context.bx = (58)+86;
@@ -6947,7 +6947,7 @@ void openob(Context & context) {
context._add(context.di, 5);
context.bx = (58)+86;
context.es = context.cs;
- context.si = 5674;
+ context.si = 5847;
context.dl = 220;
context.al = 0;
context.ah = 0;
@@ -10022,14 +10022,14 @@ void getdestinfo(Context & context) {
context.push(context.ax);
context.dx = context.data;
context.es = context.dx;
- context.si = 7782;
+ context.si = 7979;
context._add(context.si, context.ax);
context.cl = context.es.byte(context.si);
context.ax = context.pop();
context.push(context.cx);
context.dx = context.data;
context.es = context.dx;
- context.si = 7798;
+ context.si = 7995;
context._add(context.si, context.ax);
context.ax = context.pop();
{assert(stack_depth == context.stack.size()); return; }
@@ -10162,7 +10162,7 @@ void getlocation(Context & context) {
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 7782);
+ context._add(context.bx, 7979);
context.al = context.es.byte(context.bx);
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10173,7 +10173,7 @@ void setlocation(Context & context) {
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 7782);
+ context._add(context.bx, 7979);
context.es.byte(context.bx) = 1;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10221,7 +10221,7 @@ clearedlocations:
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 7782);
+ context._add(context.bx, 7979);
context.es.byte(context.bx) = 0;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10248,17 +10248,17 @@ void usemon(Context & context) {
uint stack_depth = context.stack.size();
context.data.byte(kLasttrigger) = 0;
context.es = context.cs;
- context.di = 2892+1;
+ context.di = 2970+1;
context.cx = 12;
context.al = 32;
while(context.cx--) context._stosb();
context.es = context.cs;
- context.di = 2883+1;
+ context.di = 2942+1;
context.cx = 12;
context.al = 32;
while(context.cx--) context._stosb();
context.es = context.cs;
- context.di = 2807;
+ context.di = 2836;
context.es.byte(context.di) = 1;
context._add(context.di, 26);
context.cx = 3;
@@ -10623,7 +10623,7 @@ void locklightoff(Context & context) {
void input(Context & context) {
uint stack_depth = context.stack.size();
context.es = context.cs;
- context.di = 7816;
+ context.di = 8013;
context.cx = 64;
context.al = 0;
while(context.cx--) context._stosb();
@@ -10672,7 +10672,7 @@ notleadingspace:
context.es = context.cs;
context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
- context._add(context.si, 7816);
+ context._add(context.si, 8013);
context.es.byte(context.si) = context.al;
context._cmp(context.al, 'Z'+1);
if (!context.flags.c()) goto waitkey;
@@ -10725,7 +10725,7 @@ void delchar(Context & context) {
context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
context.es = context.cs;
- context._add(context.si, 7816);
+ context._add(context.si, 8013);
context.es.byte(context.si) = 0;
context.al = context.es.byte(context.si+1);
context.ah = 0;
@@ -10753,7 +10753,7 @@ void execcommand(Context & context) {
context.es = context.cs;
context.bx = 2776;
context.ds = context.cs;
- context.si = 7816;
+ context.si = 8013;
context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
if (!context.flags.z()) goto notblankinp;
@@ -10842,10 +10842,10 @@ void dircom(Context & context) {
dirroot:
context.data.byte(kLogonum) = 0;
context.ds = context.cs;
- context.si = 2885;
+ context.si = 2956;
context._inc(context.si);
context.es = context.cs;
- context.di = 2892;
+ context.di = 2970;
context._inc(context.di);
context.cx = 12;
while(context.cx--) context._movsb();
@@ -10884,7 +10884,7 @@ void signon(Context & context) {
parser(context);
context._inc(context.di);
context.ds = context.cs;
- context.si = 2807;
+ context.si = 2836;
context.cx = 4;
signonloop:
context.push(context.cx);
@@ -10943,7 +10943,7 @@ notyetassigned:
context.push(context.bx);
context._add(context.bx, 2);
context.ds = context.cs;
- context.si = 7816;
+ context.si = 8013;
checkpass:
context._lodsw();
context.ah = context.es.byte(context.bx);
@@ -10983,7 +10983,7 @@ void showkeys(Context & context) {
context.al = 18;
monmessage(context);
context.es = context.cs;
- context.bx = 2807;
+ context.bx = 2836;
context.cx = 4;
keysloop:
context.push(context.cx);
@@ -11012,7 +11012,7 @@ void read(Context & context) {
{assert(stack_depth == context.stack.size()); return; }
okcom:
context.es = context.cs;
- context.di = 2892;
+ context.di = 2970;
context.ax = context.data.word(kTextfile1);
context.data.word(kMonsource) = context.ax;
context.ds = context.ax;
@@ -11044,7 +11044,7 @@ foundfile2:
{assert(stack_depth == context.stack.size()); return; }
keyok1:
context.es = context.cs;
- context.di = 2883;
+ context.di = 2942;
context.ds = context.data.word(kMonsource);
searchforstring(context);
context._cmp(context.al, 0);
@@ -11129,9 +11129,9 @@ keyok2:
context.push(context.es);
context.push(context.bx);
context.ds = context.cs;
- context.si = 2883+1;
+ context.si = 2942+1;
context.es = context.cs;
- context.di = 2892+1;
+ context.di = 2970+1;
context.cx = 12;
while(context.cx--) context._movsb();
monitorlogo(context);
@@ -11174,7 +11174,7 @@ void getkeyandlogo(Context & context) {
context.cx = 26;
context._mul(context.cx);
context.es = context.cs;
- context.bx = 2807;
+ context.bx = 2836;
context._add(context.bx, context.ax);
context.al = context.es.byte(context.bx);
context._cmp(context.al, 1);
@@ -11243,15 +11243,15 @@ notfound:
void parser(Context & context) {
uint stack_depth = context.stack.size();
context.es = context.cs;
- context.di = 2883;
+ context.di = 2942;
context.cx = 13;
context.al = 0;
while(context.cx--) context._stosb();
- context.di = 2883;
+ context.di = 2942;
context.al = '=';
context._stosb();
context.ds = context.cs;
- context.si = 7816;
+ context.si = 8013;
notspace1:
context._lodsw();
context._cmp(context.al, 32);
@@ -11271,7 +11271,7 @@ copyin1:
context._cmp(context.al, 32);
if (!context.flags.z()) goto copyin1;
finishpars:
- context.di = 2883;
+ context.di = 2942;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -11354,7 +11354,7 @@ void showcurrentfile(Context & context) {
uint stack_depth = context.stack.size();
context.di = 178;
context.bx = 37;
- context.si = 2892+1;
+ context.si = 2970+1;
curfileloop:
context.al = context.cs.byte(context.si);
context._cmp(context.al, 0);
@@ -11562,7 +11562,7 @@ nodream7:
getanyad(context);
context.dx = context.data;
context.ds = context.dx;
- context.si = 2895;
+ context.si = 2984;
checkuselist:
context.push(context.si);
context._lodsb();
@@ -12551,7 +12551,7 @@ void isitright(Context & context) {
uint stack_depth = context.stack.size();
context.bx = context.data;
context.es = context.bx;
- context.bx = 8344;
+ context.bx = 8541;
context._cmp(context.es.byte(context.bx+0), context.al);
if (!context.flags.z()) goto notright;
context._cmp(context.es.byte(context.bx+1), context.ah);
@@ -12965,7 +12965,7 @@ void usecashcard(Context & context) {
context.di = 160;
context.bx = 155;
context.es = context.cs;
- context.si = 3385;
+ context.si = 3474;
context.data.word(kCharshift) = 91*2+75;
context.al = 0;
context.ah = 0;
@@ -12974,7 +12974,7 @@ void usecashcard(Context & context) {
context.di = 187;
context.bx = 155;
context.es = context.cs;
- context.si = 3390;
+ context.si = 3479;
context.data.word(kCharshift) = 91*2+85;
context.al = 0;
context.ah = 0;
@@ -13044,7 +13044,7 @@ void lookatcard(Context & context) {
void moneypoke(Context & context) {
uint stack_depth = context.stack.size();
- context.bx = 3385;
+ context.bx = 3474;
context.cl = 48-1;
numberpoke0:
context._inc(context.cl);
@@ -13076,7 +13076,7 @@ numberpoke3:
if (!context.flags.c()) goto numberpoke3;
context._add(context.ax, 10);
context.cs.byte(context.bx) = context.cl;
- context.bx = 3390;
+ context.bx = 3479;
context._add(context.al, 48);
context.cs.byte(context.bx) = context.al;
{assert(stack_depth == context.stack.size()); return; }
@@ -13528,7 +13528,7 @@ void withwhat(Context & context) {
context.al = context.data.byte(kCommand);
context.ah = context.data.byte(kObjecttype);
context.es = context.cs;
- context.di = 5674;
+ context.di = 5847;
copyname(context);
context.di = 100;
context.bx = 21;
@@ -13540,7 +13540,7 @@ void withwhat(Context & context) {
context._add(context.di, 5);
context.bx = 21;
context.es = context.cs;
- context.si = 5674;
+ context.si = 5847;
context.dl = 220;
context.al = 0;
context.ah = 0;
@@ -14594,7 +14594,7 @@ afterpress:
dumppointer(context);
dumpkeypad(context);
dumptextline(context);
- context.bx = 3393;
+ context.bx = 3482;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 1);
if (context.flags.z()) goto numberright;
@@ -14673,7 +14673,7 @@ not10:
context.bx = context.data.word(kPresspointer);
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 8344);
+ context._add(context.bx, 8541);
context.es.byte(context.bx) = context.al;
context._inc(context.data.word(kPresspointer));
nomorekeys:
@@ -14938,7 +14938,7 @@ menuloop:
dumppointer(context);
dumpmenu(context);
dumptextline(context);
- context.bx = 3525;
+ context.bx = 3614;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 1);
if (!context.flags.z()) goto menuloop;
@@ -15058,7 +15058,7 @@ folderloop:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.bx = 3547;
+ context.bx = 3636;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto folderloop;
@@ -15099,7 +15099,7 @@ donextf:
delpointer(context);
showfolder(context);
context.data.word(kMousebutton) = 0;
- context.bx = 3547;
+ context.bx = 3636;
checkcoords(context);
worktoscreenm(context);
{assert(stack_depth == context.stack.size()); return; }
@@ -15180,7 +15180,7 @@ dolastf:
delpointer(context);
showfolder(context);
context.data.word(kMousebutton) = 0;
- context.bx = 3547;
+ context.bx = 3636;
checkcoords(context);
worktoscreenm(context);
{assert(stack_depth == context.stack.size()); return; }
@@ -15437,7 +15437,7 @@ symbolloop:
dumppointer(context);
dumptextline(context);
dumpsymbol(context);
- context.bx = 3589;
+ context.bx = 3678;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto symbolloop;
@@ -15789,7 +15789,7 @@ diaryloop:
dumppointer(context);
dumpdiarykeys(context);
dumptextline(context);
- context.bx = 3651;
+ context.bx = 3740;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto diaryloop;
@@ -16109,7 +16109,7 @@ waitops:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.bx = 3693;
+ context.bx = 3782;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto waitops;
@@ -16233,7 +16233,7 @@ loadops:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.bx = 3735;
+ context.bx = 3824;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto loadops;
@@ -16242,7 +16242,7 @@ loadops:
getridoftemp(context);
context.dx = context.data;
context.es = context.dx;
- context.bx = 7750;
+ context.bx = 7947;
startloading(context);
loadroomssample(context);
context.data.byte(kRoomloaded) = 1;
@@ -16311,7 +16311,7 @@ discopsloop:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.bx = 3777;
+ context.bx = 3866;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto discopsloop;
@@ -16355,7 +16355,7 @@ saveops:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.bx = 3819;
+ context.bx = 3908;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto saveops;
@@ -16375,7 +16375,7 @@ alreadyactsave:
if (context.flags.z()) goto noactsave;
context.dx = context.data;
context.ds = context.dx;
- context.si = 8350;
+ context.si = 8547;
context.al = context.data.byte(kCurrentslot);
context.ah = 0;
context.cx = 17;
@@ -16389,9 +16389,9 @@ alreadyactsave:
context.cx = 32;
context._mul(context.cx);
context.ds = context.cs;
- context.si = 5958;
+ context.si = 6155;
context._add(context.si, context.ax);
- context.di = 7750;
+ context.di = 7947;
context.bx = context.di;
context.es = context.cs;
context.cx = 16;
@@ -16438,7 +16438,7 @@ alreadyactload:
if (!context.flags.z()) goto notactload;
context.dx = context.data;
context.ds = context.dx;
- context.si = 8350;
+ context.si = 8547;
context.al = context.data.byte(kCurrentslot);
context.ah = 0;
context.cx = 17;
@@ -16515,7 +16515,7 @@ void getnamepos(Context & context) {
context._mul(context.cx);
context.dx = context.data;
context.es = context.dx;
- context.bx = 8350;
+ context.bx = 8547;
context._add(context.bx, context.ax);
context.al = context.data.byte(kCursorpos);
context.ah = 0;
@@ -16669,7 +16669,7 @@ void shownames(Context & context) {
uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
- context.si = 8350+1;
+ context.si = 8547+1;
context.di = (60)+21;
context.bx = (52)+10;
context.cl = 0;
@@ -16735,7 +16735,7 @@ afterprintname:
void namestoold(Context & context) {
uint stack_depth = context.stack.size();
context.ds = context.cs;
- context.si = 8350;
+ context.si = 8547;
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.es = context.data.word(kBuffers);
context.cx = 17*4;
@@ -16746,7 +16746,7 @@ void namestoold(Context & context) {
void oldtonames(Context & context) {
uint stack_depth = context.stack.size();
context.es = context.cs;
- context.di = 8350;
+ context.di = 8547;
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.ds = context.data.word(kBuffers);
context.cx = 17*4;
@@ -16764,23 +16764,23 @@ void saveposition(Context & context) {
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8469;
+ context.dx = 8666;
context._add(context.dx, context.ax);
openforsave(context);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 5862;
- context.cx = (5958-5862);
+ context.dx = 6059;
+ context.cx = (6155-6059);
savefilewrite(context);
context.dx = context.data;
context.es = context.dx;
- context.di = 5912;
+ context.di = 6109;
context.ax = context.pop();
context.cx = 17;
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8350;
+ context.dx = 8547;
context._add(context.dx, context.ax);
saveseg(context);
context.dx = context.data;
@@ -16795,7 +16795,7 @@ void saveposition(Context & context) {
saveseg(context);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 7750;
+ context.dx = 7947;
saveseg(context);
context.dx = context.data;
context.ds = context.dx;
@@ -16817,21 +16817,21 @@ void loadposition(Context & context) {
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8469;
+ context.dx = 8666;
context._add(context.dx, context.ax);
openfile(context);
context.ds = context.cs;
- context.dx = 5862;
- context.cx = (5958-5862);
+ context.dx = 6059;
+ context.cx = (6155-6059);
savefileread(context);
context.es = context.cs;
- context.di = 5912;
+ context.di = 6109;
context.ax = context.pop();
context.cx = 17;
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8350;
+ context.dx = 8547;
context._add(context.dx, context.ax);
loadseg(context);
context.dx = context.data;
@@ -16846,7 +16846,7 @@ void loadposition(Context & context) {
loadseg(context);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 7750;
+ context.dx = 7947;
loadseg(context);
context.ds = context.cs;
context.dx = 534;
@@ -16859,7 +16859,7 @@ void makeheader(Context & context) {
uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
- context.di = 5912;
+ context.di = 6109;
context.ax = 17;
storeit(context);
context.ax = (68-0);
@@ -16904,10 +16904,10 @@ void scanfornames(Context & context) {
uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
- context.di = 8350;
+ context.di = 8547;
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8469;
+ context.dx = 8666;
context.cx = 7;
scanloop:
context.push(context.es);
@@ -16924,12 +16924,12 @@ scanloop:
context.push(context.es);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 5862;
- context.cx = (5958-5862);
+ context.dx = 6059;
+ context.cx = (6155-6059);
savefileread(context);
context.dx = context.data;
context.es = context.dx;
- context.di = 5912;
+ context.di = 6109;
context.ds = context.pop();
context.dx = context.pop();
loadseg(context);
@@ -16973,7 +16973,7 @@ waitdecide:
dumppointer(context);
dumptextline(context);
delpointer(context);
- context.bx = 4884;
+ context.bx = 5057;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto waitdecide;
@@ -17036,7 +17036,7 @@ loadops:
vsync(context);
dumppointer(context);
dumptextline(context);
- context.bx = 3735;
+ context.bx = 3824;
checkcoords(context);
context._cmp(context.data.byte(kGetback), 0);
if (context.flags.z()) goto loadops;
@@ -17045,7 +17045,7 @@ loadops:
getridoftemp(context);
context.dx = context.data;
context.es = context.dx;
- context.bx = 7750;
+ context.bx = 7947;
startloading(context);
loadroomssample(context);
context.data.byte(kRoomloaded) = 1;
@@ -17087,7 +17087,7 @@ noloadold:
void createname(Context & context) {
uint stack_depth = context.stack.size();
context.push(context.ax);
- context.di = 4932;
+ context.di = 5105;
context.cs.byte(context.di+0) = context.dl;
context.cs.byte(context.di+3) = context.cl;
context.al = context.dh;
@@ -17811,7 +17811,7 @@ void clearchanges(Context & context) {
context.di = 0;
while(context.cx--) context._stosw();
context.es = context.cs;
- context.di = 7782;
+ context.di = 7979;
context.al = 1;
context._stosb();
context._stosb();
@@ -18413,10 +18413,10 @@ toofaraway:
void mainscreen(Context & context) {
uint stack_depth = context.stack.size();
context.data.byte(kInmaparea) = 0;
- context.bx = 4949;
+ context.bx = 5122;
context._cmp(context.data.byte(kWatchon), 1);
if (context.flags.z()) goto checkmain;
- context.bx = 5011;
+ context.bx = 5184;
checkmain:
checkcoords(context);
context._cmp(context.data.byte(kWalkandexam), 0);
@@ -18954,7 +18954,7 @@ void atmospheres(Context & context) {
uint stack_depth = context.stack.size();
context.cl = context.data.byte(kMapx);
context.ch = context.data.byte(kMapy);
- context.bx = 5073;
+ context.bx = 5246;
nextatmos:
context.al = context.cs.byte(context.bx);
context._cmp(context.al, 255);
@@ -19200,7 +19200,7 @@ void commandwithob(Context & context) {
context.ah = 0;
printdirect(context);
context.ax = context.pop();
- context.di = 5674;
+ context.di = 5847;
copyname(context);
context.ax = context.pop();
context.di = context.data.word(kLastxpos);
@@ -19210,7 +19210,7 @@ void commandwithob(Context & context) {
noadd:
context.bx = context.data.word(kTextaddressy);
context.es = context.cs;
- context.si = 5674;
+ context.si = 5847;
context.dl = context.data.byte(kTextlen);
context.al = 0;
context.ah = 0;
@@ -19490,7 +19490,7 @@ void bresenhams(Context & context) {
workoutframes(context);
context.dx = context.data;
context.es = context.dx;
- context.di = 7944;
+ context.di = 8141;
context.si = 1;
context.data.byte(kLinedirection) = 0;
context.cx = context.data.word(kLineendx);
@@ -19592,7 +19592,7 @@ line23:
context._inc(context.al);
if (--context.cx) goto hiloop;
lineexit:
- context._sub(context.di, 7944);
+ context._sub(context.di, 8141);
context.ax = context.di;
context._shr(context.ax, 1);
context.data.byte(kLinelength) = context.al;
@@ -20038,7 +20038,7 @@ void showblink(Context & context) {
context.al = 6;
nomorethan6:
context.ah = 0;
- context.bx = 5691;
+ context.bx = 5888;
context._add(context.bx, context.ax);
context.al = context.cs.byte(context.bx);
context.ds = context.data.word(kIcons1);
@@ -20477,7 +20477,7 @@ rightspeed3:
finflashmouse:
context.al = context.data.byte(kPointercount);
context.ah = 0;
- context.bx = 5698;
+ context.bx = 5895;
context._add(context.bx, context.ax);
context.al = context.cs.byte(context.bx);
context.data.byte(kPointerframe) = context.al;
@@ -20574,7 +20574,7 @@ void readkey(Context & context) {
context._inc(context.bx);
context._and(context.bx, 15);
context.data.word(kBufferout) = context.bx;
- context.di = 5715;
+ context.di = 5912;
context._add(context.di, context.bx);
context.al = context.cs.byte(context.di);
context.data.byte(kCurrentkey) = context.al;
@@ -20588,7 +20588,7 @@ void convertkey(Context & context) {
uint stack_depth = context.stack.size();
context._and(context.al, 127);
context.ah = 0;
- context.di = 5731;
+ context.di = 5928;
context._add(context.di, context.ax);
context.al = context.cs.byte(context.di);
{assert(stack_depth == context.stack.size()); return; }
@@ -21132,7 +21132,7 @@ void getroomdata(Context & context) {
context.ah = 0;
context.cx = 32;
context._mul(context.cx);
- context.bx = 5958;
+ context.bx = 6155;
context._add(context.bx, context.ax);
{assert(stack_depth == context.stack.size()); return; }
}
@@ -21140,11 +21140,11 @@ void getroomdata(Context & context) {
void readheader(Context & context) {
uint stack_depth = context.stack.size();
context.ds = context.cs;
- context.dx = 5862;
- context.cx = (5958-5862);
+ context.dx = 6059;
+ context.cx = (6155-6059);
readfromfile(context);
context.es = context.cs;
- context.di = 5912;
+ context.di = 6109;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -21544,236 +21544,248 @@ void __start(Context &context) {
0x2c, 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01,
0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00,
0xd0, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01,
- 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
- 0x50, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x4c, 0x4f, 0x47, 0x4f,
- 0x4e, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20,
- 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44,
- 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45,
- 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x00, 0x00, 0x00, 0x53,
- 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20,
- 0x00, 0xff, 0xff, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x00, 0x22, 0x20, 0x00, 0x4e,
- 0x45, 0x54, 0x57, 0xe8, 0xc4, 0x45, 0x4c, 0x56, 0x41, 0x8c, 0xc6, 0x45, 0x4c, 0x56, 0x42, 0x9c,
- 0xc6, 0x45, 0x4c, 0x56, 0x43, 0x94, 0xc6, 0x45, 0x4c, 0x56, 0x45, 0x98, 0xc6, 0x45, 0x4c, 0x56,
- 0x46, 0xa0, 0xc6, 0x43, 0x47, 0x41, 0x54, 0x30, 0xc7, 0x52, 0x45, 0x4d, 0x4f, 0xa8, 0xc6, 0x42,
- 0x55, 0x54, 0x41, 0x3c, 0xc7, 0x43, 0x42, 0x4f, 0x58, 0x44, 0xc7, 0x4c, 0x49, 0x54, 0x45, 0x5c,
- 0xc6, 0x50, 0x4c, 0x41, 0x54, 0x40, 0xc7, 0x4c, 0x49, 0x46, 0x54, 0x7c, 0xc6, 0x57, 0x49, 0x52,
- 0x45, 0x84, 0xc6, 0x48, 0x4e, 0x44, 0x4c, 0x88, 0xc6, 0x48, 0x41, 0x43, 0x48, 0x80, 0xc6, 0x44,
- 0x4f, 0x4f, 0x52, 0xb4, 0xc6, 0x43, 0x53, 0x48, 0x52, 0x70, 0xc6, 0x47, 0x55, 0x4e, 0x41, 0x34,
- 0xc7, 0x43, 0x52, 0x41, 0x41, 0x64, 0xc6, 0x43, 0x52, 0x42, 0x42, 0x68, 0xc6, 0x43, 0x52, 0x43,
- 0x43, 0x6c, 0xc6, 0x53, 0x45, 0x41, 0x54, 0xf8, 0xc5, 0x4d, 0x45, 0x4e, 0x55, 0x98, 0xc7, 0x43,
- 0x4f, 0x4f, 0x4b, 0xac, 0xc6, 0x45, 0x4c, 0x43, 0x41, 0x4c, 0xc6, 0x45, 0x44, 0x43, 0x41, 0x50,
- 0xc6, 0x44, 0x44, 0x43, 0x41, 0x54, 0xc6, 0x41, 0x4c, 0x54, 0x52, 0x04, 0xc6, 0x4c, 0x4f, 0x4b,
- 0x41, 0x3c, 0xc6, 0x4c, 0x4f, 0x4b, 0x42, 0x40, 0xc6, 0x45, 0x4e, 0x54, 0x41, 0x10, 0xc6, 0x45,
- 0x4e, 0x54, 0x42, 0x24, 0xc6, 0x45, 0x4e, 0x54, 0x45, 0x28, 0xc6, 0x45, 0x4e, 0x54, 0x43, 0x18,
- 0xc6, 0x45, 0x4e, 0x54, 0x44, 0x2c, 0xc6, 0x45, 0x4e, 0x54, 0x48, 0x30, 0xc6, 0x57, 0x57, 0x41,
- 0x54, 0xf0, 0xc5, 0x50, 0x4f, 0x4f, 0x4c, 0x58, 0xc6, 0x57, 0x53, 0x48, 0x44, 0xf4, 0xc5, 0x47,
- 0x52, 0x41, 0x46, 0x44, 0xc6, 0x54, 0x52, 0x41, 0x50, 0x48, 0xc6, 0x43, 0x44, 0x50, 0x45, 0x28,
- 0xc7, 0x44, 0x4c, 0x4f, 0x4b, 0x08, 0xc6, 0x48, 0x4f, 0x4c, 0x45, 0x00, 0xc6, 0x44, 0x52, 0x59,
- 0x52, 0x0c, 0xc6, 0x48, 0x4f, 0x4c, 0x59, 0xfc, 0xc5, 0x57, 0x41, 0x4c, 0x4c, 0x2c, 0xc7, 0x42,
- 0x4f, 0x4f, 0x4b, 0x08, 0xc8, 0x41, 0x58, 0x45, 0x44, 0xb0, 0xc6, 0x53, 0x48, 0x4c, 0x44, 0x38,
- 0xc7, 0x42, 0x43, 0x4e, 0x59, 0xe8, 0xc5, 0x4c, 0x49, 0x44, 0x43, 0xe4, 0xc5, 0x4c, 0x49, 0x44,
- 0x55, 0xe0, 0xc5, 0x4c, 0x49, 0x44, 0x4f, 0xec, 0xc5, 0x50, 0x49, 0x50, 0x45, 0xa8, 0xc5, 0x42,
- 0x41, 0x4c, 0x43, 0x20, 0xc6, 0x57, 0x49, 0x4e, 0x44, 0x1c, 0xc6, 0x50, 0x41, 0x50, 0x52, 0xb4,
- 0xc7, 0x55, 0x57, 0x54, 0x41, 0xa0, 0xc5, 0x55, 0x57, 0x54, 0x42, 0xa0, 0xc5, 0x53, 0x54, 0x41,
- 0x54, 0xd8, 0xc7, 0x54, 0x4c, 0x49, 0x44, 0x9c, 0xc5, 0x53, 0x4c, 0x41, 0x42, 0xd8, 0xc5, 0x43,
- 0x41, 0x52, 0x54, 0xdc, 0xc5, 0x46, 0x43, 0x41, 0x52, 0xac, 0xc5, 0x53, 0x4c, 0x42, 0x41, 0xc0,
- 0xc5, 0x53, 0x4c, 0x42, 0x42, 0xc4, 0xc5, 0x53, 0x4c, 0x42, 0x43, 0xcc, 0xc5, 0x53, 0x4c, 0x42,
- 0x44, 0xc8, 0xc5, 0x53, 0x4c, 0x42, 0x45, 0xd0, 0xc5, 0x53, 0x4c, 0x42, 0x46, 0xd4, 0xc5, 0x50,
- 0x4c, 0x49, 0x4e, 0xb0, 0xc5, 0x4c, 0x41, 0x44, 0x44, 0xb8, 0xc5, 0x4c, 0x41, 0x44, 0x42, 0xbc,
- 0xc5, 0x47, 0x55, 0x4d, 0x41, 0xb4, 0xc5, 0x53, 0x51, 0x45, 0x45, 0x88, 0xc5, 0x54, 0x41, 0x50,
- 0x50, 0x8c, 0xc5, 0x47, 0x55, 0x49, 0x54, 0x90, 0xc5, 0x43, 0x4f, 0x4e, 0x54, 0x94, 0xc5, 0x42,
- 0x45, 0x4c, 0x4c, 0x98, 0xc5, 0x8c, 0x8c, 0x8c, 0x8c, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30,
- 0x00, 0x9d, 0x00, 0xb2, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x58, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x51,
- 0x00, 0x5e, 0x00, 0x5c, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x60, 0xc7, 0x9d,
- 0x00, 0xb2, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x64, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x5f, 0x00, 0x70,
- 0x00, 0x68, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x6c, 0xc7, 0x9d, 0x00, 0xb2,
- 0x00, 0x71, 0x00, 0x82, 0x00, 0x70, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x71, 0x00, 0x82, 0x00, 0x74,
- 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, 0x82, 0x00, 0x78, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83,
- 0x00, 0x91, 0x00, 0x7c, 0xc7, 0xb3, 0x00, 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x80, 0xc7, 0xdc,
- 0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0xa0, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x50, 0xc7, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
- 0x00, 0xc8, 0x00, 0x50, 0xc7, 0x8f, 0x00, 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xb8, 0xc7, 0x00,
- 0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, 0xc0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0xa0, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xdc, 0xc7, 0x40,
- 0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe0, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a,
- 0x00, 0xe4, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xe8, 0xc7, 0x74, 0x00, 0xa8,
- 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0,
- 0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03,
- 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50,
- 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
- 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80,
- 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00,
- 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48,
- 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x58, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38,
- 0x00, 0x85, 0x00, 0x74, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff,
- 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e,
- 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
- 0x00, 0x80, 0x00, 0x48, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x54, 0xc8, 0x3e,
- 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x74, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
- 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
- 0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
- 0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d,
- 0x6f, 0x72, 0x79, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65,
- 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72,
- 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74,
- 0x65, 0x72, 0x20, 0x63, 0x61, 0x72, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
- 0x64, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30,
- 0x20, 0x48, 0x65, 0x78, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72,
- 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72,
- 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x4f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x61, 0x73,
- 0x65, 0x20, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a,
+ 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,
+ 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49,
+ 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20,
+ 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f,
+ 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x4e, 0x45, 0x54, 0x57, 0xe8, 0xc4, 0x45, 0x4c,
+ 0x56, 0x41, 0x8c, 0xc6, 0x45, 0x4c, 0x56, 0x42, 0x9c, 0xc6, 0x45, 0x4c, 0x56, 0x43, 0x94, 0xc6,
+ 0x45, 0x4c, 0x56, 0x45, 0x98, 0xc6, 0x45, 0x4c, 0x56, 0x46, 0xa0, 0xc6, 0x43, 0x47, 0x41, 0x54,
+ 0x30, 0xc7, 0x52, 0x45, 0x4d, 0x4f, 0xa8, 0xc6, 0x42, 0x55, 0x54, 0x41, 0x3c, 0xc7, 0x43, 0x42,
+ 0x4f, 0x58, 0x44, 0xc7, 0x4c, 0x49, 0x54, 0x45, 0x5c, 0xc6, 0x50, 0x4c, 0x41, 0x54, 0x40, 0xc7,
+ 0x4c, 0x49, 0x46, 0x54, 0x7c, 0xc6, 0x57, 0x49, 0x52, 0x45, 0x84, 0xc6, 0x48, 0x4e, 0x44, 0x4c,
+ 0x88, 0xc6, 0x48, 0x41, 0x43, 0x48, 0x80, 0xc6, 0x44, 0x4f, 0x4f, 0x52, 0xb4, 0xc6, 0x43, 0x53,
+ 0x48, 0x52, 0x70, 0xc6, 0x47, 0x55, 0x4e, 0x41, 0x34, 0xc7, 0x43, 0x52, 0x41, 0x41, 0x64, 0xc6,
+ 0x43, 0x52, 0x42, 0x42, 0x68, 0xc6, 0x43, 0x52, 0x43, 0x43, 0x6c, 0xc6, 0x53, 0x45, 0x41, 0x54,
+ 0xf8, 0xc5, 0x4d, 0x45, 0x4e, 0x55, 0x98, 0xc7, 0x43, 0x4f, 0x4f, 0x4b, 0xac, 0xc6, 0x45, 0x4c,
+ 0x43, 0x41, 0x4c, 0xc6, 0x45, 0x44, 0x43, 0x41, 0x50, 0xc6, 0x44, 0x44, 0x43, 0x41, 0x54, 0xc6,
+ 0x41, 0x4c, 0x54, 0x52, 0x04, 0xc6, 0x4c, 0x4f, 0x4b, 0x41, 0x3c, 0xc6, 0x4c, 0x4f, 0x4b, 0x42,
+ 0x40, 0xc6, 0x45, 0x4e, 0x54, 0x41, 0x10, 0xc6, 0x45, 0x4e, 0x54, 0x42, 0x24, 0xc6, 0x45, 0x4e,
+ 0x54, 0x45, 0x28, 0xc6, 0x45, 0x4e, 0x54, 0x43, 0x18, 0xc6, 0x45, 0x4e, 0x54, 0x44, 0x2c, 0xc6,
+ 0x45, 0x4e, 0x54, 0x48, 0x30, 0xc6, 0x57, 0x57, 0x41, 0x54, 0xf0, 0xc5, 0x50, 0x4f, 0x4f, 0x4c,
+ 0x58, 0xc6, 0x57, 0x53, 0x48, 0x44, 0xf4, 0xc5, 0x47, 0x52, 0x41, 0x46, 0x44, 0xc6, 0x54, 0x52,
+ 0x41, 0x50, 0x48, 0xc6, 0x43, 0x44, 0x50, 0x45, 0x28, 0xc7, 0x44, 0x4c, 0x4f, 0x4b, 0x08, 0xc6,
+ 0x48, 0x4f, 0x4c, 0x45, 0x00, 0xc6, 0x44, 0x52, 0x59, 0x52, 0x0c, 0xc6, 0x48, 0x4f, 0x4c, 0x59,
+ 0xfc, 0xc5, 0x57, 0x41, 0x4c, 0x4c, 0x2c, 0xc7, 0x42, 0x4f, 0x4f, 0x4b, 0x08, 0xc8, 0x41, 0x58,
+ 0x45, 0x44, 0xb0, 0xc6, 0x53, 0x48, 0x4c, 0x44, 0x38, 0xc7, 0x42, 0x43, 0x4e, 0x59, 0xe8, 0xc5,
+ 0x4c, 0x49, 0x44, 0x43, 0xe4, 0xc5, 0x4c, 0x49, 0x44, 0x55, 0xe0, 0xc5, 0x4c, 0x49, 0x44, 0x4f,
+ 0xec, 0xc5, 0x50, 0x49, 0x50, 0x45, 0xa8, 0xc5, 0x42, 0x41, 0x4c, 0x43, 0x20, 0xc6, 0x57, 0x49,
+ 0x4e, 0x44, 0x1c, 0xc6, 0x50, 0x41, 0x50, 0x52, 0xb4, 0xc7, 0x55, 0x57, 0x54, 0x41, 0xa0, 0xc5,
+ 0x55, 0x57, 0x54, 0x42, 0xa0, 0xc5, 0x53, 0x54, 0x41, 0x54, 0xd8, 0xc7, 0x54, 0x4c, 0x49, 0x44,
+ 0x9c, 0xc5, 0x53, 0x4c, 0x41, 0x42, 0xd8, 0xc5, 0x43, 0x41, 0x52, 0x54, 0xdc, 0xc5, 0x46, 0x43,
+ 0x41, 0x52, 0xac, 0xc5, 0x53, 0x4c, 0x42, 0x41, 0xc0, 0xc5, 0x53, 0x4c, 0x42, 0x42, 0xc4, 0xc5,
+ 0x53, 0x4c, 0x42, 0x43, 0xcc, 0xc5, 0x53, 0x4c, 0x42, 0x44, 0xc8, 0xc5, 0x53, 0x4c, 0x42, 0x45,
+ 0xd0, 0xc5, 0x53, 0x4c, 0x42, 0x46, 0xd4, 0xc5, 0x50, 0x4c, 0x49, 0x4e, 0xb0, 0xc5, 0x4c, 0x41,
+ 0x44, 0x44, 0xb8, 0xc5, 0x4c, 0x41, 0x44, 0x42, 0xbc, 0xc5, 0x47, 0x55, 0x4d, 0x41, 0xb4, 0xc5,
+ 0x53, 0x51, 0x45, 0x45, 0x88, 0xc5, 0x54, 0x41, 0x50, 0x50, 0x8c, 0xc5, 0x47, 0x55, 0x49, 0x54,
+ 0x90, 0xc5, 0x43, 0x4f, 0x4e, 0x54, 0x94, 0xc5, 0x42, 0x45, 0x4c, 0x4c, 0x98, 0xc5, 0x8c, 0x8c,
+ 0x8c, 0x8c, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x9d, 0x00, 0xb2, 0x00, 0x51, 0x00,
+ 0x5e, 0x00, 0x58, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x5c, 0xc7, 0xc9, 0x00,
+ 0xde, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x60, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x5f, 0x00, 0x70, 0x00,
+ 0x64, 0xc7, 0xb3, 0x00, 0xc8, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x68, 0xc7, 0xc9, 0x00, 0xde, 0x00,
+ 0x5f, 0x00, 0x70, 0x00, 0x6c, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x71, 0x00, 0x82, 0x00, 0x70, 0xc7,
+ 0xb3, 0x00, 0xc8, 0x00, 0x71, 0x00, 0x82, 0x00, 0x74, 0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00,
+ 0x82, 0x00, 0x78, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83, 0x00, 0x91, 0x00, 0x7c, 0xc7, 0xb3, 0x00,
+ 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x80, 0xc7, 0xdc, 0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00,
+ 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xae, 0x00,
+ 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
+ 0xa0, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0, 0x00, 0xc8, 0x00, 0x50, 0xc7, 0x8f, 0x00,
+ 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xb8, 0xc7, 0x00, 0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00,
+ 0xc0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x68, 0x00,
+ 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xdc, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00,
+ 0xe0, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe4, 0xc7, 0x40, 0x00, 0x74, 0x00,
+ 0x6a, 0x00, 0x88, 0x00, 0xe8, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7,
+ 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00,
+ 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 0xc8,
+ 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00,
+ 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 0xc8,
+ 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00,
+ 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff,
+ 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00,
+ 0x98, 0x00, 0x58, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x74, 0xc8, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00,
+ 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00,
+ 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
+ 0xa0, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0xbc, 0x00,
+ 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x54, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00,
+ 0x74, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a,
0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61,
- 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
- 0x20, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72,
- 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44,
- 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45,
- 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x41, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20,
- 0x35, 0x39, 0x30, 0x4b, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x6d,
- 0x6f, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e,
- 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
- 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
- 0x0a, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x6e,
- 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65,
- 0x72, 0x75, 0x70, 0x74, 0x20, 0x30, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44,
- 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45,
- 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f,
- 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x45, 0x4d, 0x4d, 0x20, 0x70, 0x61, 0x67, 0x65,
- 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77,
- 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a,
- 0x0d, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64,
- 0x2e, 0x63, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20,
- 0x6c, 0x6f, 0x6f, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20,
- 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x0d, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x42, 0x4c, 0x41, 0x53,
- 0x54, 0x45, 0x52, 0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20,
- 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75,
- 0x72, 0x20, 0x41, 0x55, 0x54, 0x4f, 0x45, 0x58, 0x45, 0x43, 0x2e, 0x42, 0x41, 0x54, 0x29, 0x0d,
- 0x0a, 0x0d, 0x0a, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f,
- 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x52, 0x51,
- 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20,
- 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x61, 0x64, 0x64, 0x72,
- 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x73, 0x73,
- 0x75, 0x6d, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x6f, 0x20, 0x61, 0x6c, 0x74, 0x65,
- 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20,
- 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x79,
- 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x74,
- 0x68, 0x65, 0x6d, 0x0d, 0x0a, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
- 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78,
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x20, 0x44,
- 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x20, 0x49, 0x37, 0x20, 0x41, 0x32, 0x32, 0x30, 0x20,
- 0x44, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77,
- 0x65, 0x62, 0x20, 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41,
- 0x0d, 0x0a, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x31, 0x20, 0x61, 0x6e, 0x64,
- 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32,
- 0x30, 0x68, 0x0d, 0x0a, 0x20, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x20, 0x49, 0x35,
- 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62,
- 0x20, 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x35, 0x20, 0x61, 0x6e, 0x64, 0x0d, 0x0a, 0x20,
- 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20,
- 0x6f, 0x66, 0x20, 0x32, 0x32, 0x30, 0x68, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x31, 0x0d, 0x0a,
- 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44,
- 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f,
- 0x75, 0x72, 0x20, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d,
- 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00,
- 0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00,
- 0xc4, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50,
- 0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57,
- 0x00, 0x87, 0x83, 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00,
- 0x00, 0x32, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x7c, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a,
- 0x00, 0x28, 0xc8, 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04,
- 0x01, 0x64, 0x00, 0x7c, 0x00, 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4,
- 0xc9, 0xff, 0xff, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00, 0x00, 0x32,
- 0x00, 0x00, 0x00, 0xb4, 0x00, 0x7c, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x28,
- 0xc8, 0x12, 0x01, 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64,
- 0x00, 0x7c, 0x00, 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4, 0xc9, 0xff,
- 0xff, 0x00, 0x21, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff,
- 0x00, 0x0b, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01,
- 0x2c, 0x0a, 0x06, 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16,
- 0x00, 0x05, 0xff, 0x02, 0x16, 0x0a, 0x10, 0xff, 0x02, 0x0b, 0x0a, 0x10, 0xff, 0x03, 0x2c, 0x00,
- 0x0f, 0xff, 0x03, 0x21, 0x0a, 0x06, 0xff, 0x03, 0x21, 0x00, 0x05, 0xff, 0x04, 0x0b, 0x1e, 0x06,
- 0xff, 0x04, 0x16, 0x1e, 0x05, 0xff, 0x04, 0x16, 0x14, 0x0d, 0xff, 0x0a, 0x21, 0x1e, 0x06, 0xff,
- 0x0a, 0x16, 0x1e, 0x06, 0xff, 0x09, 0x16, 0x0a, 0x06, 0xff, 0x09, 0x16, 0x14, 0x10, 0xff, 0x09,
- 0x16, 0x1e, 0x10, 0xff, 0x09, 0x16, 0x28, 0x10, 0xff, 0x09, 0x16, 0x32, 0x10, 0xff, 0x06, 0x0b,
- 0x1e, 0x06, 0xff, 0x06, 0x00, 0x0a, 0x0f, 0xff, 0x06, 0x00, 0x14, 0x0f, 0xff, 0x06, 0x0b, 0x14,
- 0x0f, 0xff, 0x06, 0x16, 0x14, 0x0f, 0xff, 0x07, 0x0b, 0x14, 0x06, 0xff, 0x07, 0x00, 0x14, 0x06,
- 0xff, 0x07, 0x00, 0x1e, 0x06, 0xff, 0x37, 0x2c, 0x00, 0x05, 0xff, 0x37, 0x2c, 0x0a, 0x05, 0xff,
- 0x05, 0x16, 0x1e, 0x06, 0xff, 0x05, 0x16, 0x14, 0x0f, 0xff, 0x05, 0x16, 0x0a, 0x0f, 0xff, 0x18,
- 0x16, 0x00, 0x0f, 0xff, 0x18, 0x21, 0x00, 0x0f, 0xff, 0x18, 0x2c, 0x00, 0x0f, 0xff, 0x18, 0x21,
- 0x0a, 0x0f, 0xff, 0x08, 0x00, 0x0a, 0x06, 0xff, 0x08, 0x0b, 0x0a, 0x06, 0xff, 0x08, 0x16, 0x0a,
- 0x06, 0xff, 0x08, 0x21, 0x0a, 0x06, 0xff, 0x08, 0x21, 0x14, 0x06, 0xff, 0x08, 0x21, 0x1e, 0x06,
- 0xff, 0x08, 0x21, 0x28, 0x06, 0xff, 0x08, 0x16, 0x28, 0x06, 0xff, 0x08, 0x0b, 0x28, 0x06, 0xff,
- 0x0b, 0x0b, 0x14, 0x0c, 0xff, 0x0b, 0x0b, 0x1e, 0x0c, 0xff, 0x0b, 0x16, 0x14, 0x0c, 0xff, 0x0b,
- 0x16, 0x1e, 0x0c, 0xff, 0x0c, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x21,
- 0x14, 0x0c, 0xff, 0x0e, 0x2c, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x00, 0x0c, 0xff, 0x0e, 0x21, 0x0a,
- 0x0c, 0xff, 0x0e, 0x21, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x1e, 0x0c, 0xff, 0x0e, 0x21, 0x28, 0x0c,
- 0xff, 0x0e, 0x16, 0x00, 0x10, 0xff, 0x13, 0x00, 0x00, 0x0c, 0xff, 0x14, 0x00, 0x14, 0x10, 0xff,
- 0x14, 0x00, 0x1e, 0x10, 0xff, 0x14, 0x0b, 0x1e, 0x10, 0xff, 0x14, 0x00, 0x28, 0x10, 0xff, 0x14,
- 0x0b, 0x28, 0x10, 0xff, 0x15, 0x0b, 0x0a, 0x0f, 0xff, 0x15, 0x0b, 0x14, 0x0f, 0xff, 0x15, 0x00,
- 0x14, 0x0f, 0xff, 0x15, 0x16, 0x14, 0x0f, 0xff, 0x15, 0x21, 0x14, 0x0f, 0xff, 0x15, 0x2c, 0x14,
- 0x0f, 0xff, 0x15, 0x2c, 0x0a, 0x0f, 0xff, 0x16, 0x16, 0x0a, 0x10, 0xff, 0x16, 0x16, 0x14, 0x10,
- 0xff, 0x17, 0x16, 0x1e, 0x0d, 0xff, 0x17, 0x16, 0x28, 0x0d, 0xff, 0x17, 0x21, 0x28, 0x0d, 0xff,
- 0x17, 0x0b, 0x28, 0x0d, 0xff, 0x17, 0x00, 0x28, 0x0d, 0xff, 0x17, 0x00, 0x32, 0x0d, 0xff, 0x19,
- 0x0b, 0x28, 0x10, 0xff, 0x19, 0x0b, 0x32, 0x10, 0xff, 0x19, 0x00, 0x32, 0x10, 0xff, 0x1b, 0x0b,
- 0x14, 0x10, 0xff, 0x1b, 0x0b, 0x1e, 0x10, 0xff, 0x1d, 0x0b, 0x0a, 0x10, 0xff, 0x2d, 0x16, 0x1e,
- 0x0c, 0xff, 0x2d, 0x16, 0x28, 0x0c, 0xff, 0x2d, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x28, 0x0c,
- 0xff, 0x2e, 0x0b, 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x21, 0x32, 0x0c, 0xff,
- 0x2f, 0x00, 0x00, 0x0c, 0xff, 0x1a, 0x16, 0x14, 0x10, 0xff, 0x1a, 0x21, 0x0a, 0x10, 0xff, 0x1a,
- 0x21, 0x14, 0x10, 0xff, 0x1a, 0x21, 0x1e, 0x10, 0xff, 0x1a, 0x2c, 0x1e, 0x10, 0xff, 0x1a, 0x16,
- 0x1e, 0x10, 0xff, 0x1a, 0x0b, 0x1e, 0x10, 0xff, 0x1a, 0x0b, 0x14, 0x10, 0xff, 0x1a, 0x00, 0x14,
- 0x10, 0xff, 0x1a, 0x0b, 0x28, 0x10, 0xff, 0x1a, 0x00, 0x28, 0x10, 0xff, 0x1a, 0x16, 0x28, 0x10,
- 0xff, 0x1a, 0x0b, 0x32, 0x10, 0xff, 0x1c, 0x00, 0x1e, 0x0f, 0xff, 0x1c, 0x00, 0x14, 0x0f, 0xff,
- 0x1c, 0x00, 0x28, 0x0f, 0xff, 0x1c, 0x0b, 0x1e, 0x0f, 0xff, 0x1c, 0x0b, 0x14, 0x0f, 0xff, 0x1c,
- 0x16, 0x1e, 0x0f, 0xff, 0x1c, 0x16, 0x14, 0x0f, 0xff, 0xff, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54,
- 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10,
- 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x2d,
- 0x00, 0x08, 0x00, 0x51, 0x57, 0x45, 0x52, 0x54, 0x59, 0x55, 0x49, 0x4f, 0x50, 0x00, 0x00, 0x0d,
- 0x00, 0x41, 0x53, 0x44, 0x46, 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a,
- 0x58, 0x43, 0x56, 0x42, 0x4e, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70,
+ 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2e, 0x0d, 0x0a, 0x0d,
+ 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68,
+ 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x53, 0x6f,
+ 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x72, 0x64,
+ 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, 0x74, 0x20, 0x61, 0x64,
+ 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, 0x20, 0x48, 0x65, 0x78, 0x2e, 0x0d, 0x0a,
+ 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20,
+ 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x4f,
+ 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x61, 0x73, 0x65, 0x20, 0x4d, 0x65, 0x6d, 0x6f, 0x72,
+ 0x79, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d,
+ 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72,
+ 0x3a, 0x0d, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x2e, 0x0d,
+ 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62,
+ 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a,
+ 0x41, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x35, 0x39, 0x30, 0x4b, 0x20, 0x6f, 0x66,
+ 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20,
+ 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a,
+ 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61,
+ 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20,
+ 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
+ 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x75, 0x70, 0x74, 0x20, 0x30, 0x0d,
+ 0x0a, 0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62,
+ 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a,
+ 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x20, 0x45, 0x4d, 0x4d, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x0d,
+ 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20,
+ 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x20,
+ 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x63, 0x0d, 0x0a, 0x0d, 0x0a, 0x24,
+ 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x73, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72,
+ 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x0d,
+ 0x0a, 0x74, 0x68, 0x65, 0x20, 0x42, 0x4c, 0x41, 0x53, 0x54, 0x45, 0x52, 0x20, 0x65, 0x6e, 0x76,
+ 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c,
+ 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x41, 0x55, 0x54, 0x4f, 0x45,
+ 0x58, 0x45, 0x43, 0x2e, 0x42, 0x41, 0x54, 0x29, 0x0d, 0x0a, 0x0d, 0x0a, 0x49, 0x66, 0x20, 0x74,
+ 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64,
+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41,
+ 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62,
+ 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30,
+ 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x2e, 0x0d, 0x0a,
+ 0x0d, 0x0a, 0x54, 0x6f, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f,
+ 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x73,
+ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20,
+ 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x0d, 0x0a, 0x6f, 0x6e,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e,
+ 0x65, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x0d,
+ 0x0a, 0x0d, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x20, 0x49, 0x37, 0x20, 0x41, 0x32, 0x32, 0x30, 0x20, 0x44, 0x31, 0x20, 0x20,
+ 0x20, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
+ 0x62, 0x20, 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x37, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x0d,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x61,
+ 0x73, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x32, 0x32, 0x30, 0x68, 0x0d,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
+ 0x42, 0x20, 0x49, 0x35, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20,
+ 0x6f, 0x6e, 0x20, 0x49, 0x52, 0x51, 0x20, 0x35, 0x20, 0x61, 0x6e, 0x64, 0x0d, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66,
+ 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20,
+ 0x32, 0x32, 0x30, 0x68, 0x2c, 0x20, 0x44, 0x4d, 0x41, 0x20, 0x31, 0x0d, 0x0a, 0x0d, 0x0a, 0x24,
+ 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x72, 0x65, 0x61,
+ 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20,
+ 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x0d, 0x0a,
+ 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, 0x3e,
+ 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, 0x43,
+ 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x87, 0x83,
+ 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00, 0x00, 0x32, 0x00,
+ 0x00, 0x00, 0xb4, 0x00, 0x7c, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a, 0x00, 0x28, 0xc8,
+ 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64, 0x00,
+ 0x7c, 0x00, 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4, 0xc9, 0xff, 0xff,
+ 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x70, 0xc4, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
+ 0xb4, 0x00, 0x7c, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x28, 0xc8, 0x12, 0x01,
+ 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x2c, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64, 0x00, 0x7c, 0x00,
+ 0xcc, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd4, 0xc9, 0xff, 0xff, 0x00, 0x21,
+ 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x00,
+ 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01, 0x2c, 0x0a, 0x06,
+ 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16, 0x00, 0x05, 0xff,
+ 0x02, 0x16, 0x0a, 0x10, 0xff, 0x02, 0x0b, 0x0a, 0x10, 0xff, 0x03, 0x2c, 0x00, 0x0f, 0xff, 0x03,
+ 0x21, 0x0a, 0x06, 0xff, 0x03, 0x21, 0x00, 0x05, 0xff, 0x04, 0x0b, 0x1e, 0x06, 0xff, 0x04, 0x16,
+ 0x1e, 0x05, 0xff, 0x04, 0x16, 0x14, 0x0d, 0xff, 0x0a, 0x21, 0x1e, 0x06, 0xff, 0x0a, 0x16, 0x1e,
+ 0x06, 0xff, 0x09, 0x16, 0x0a, 0x06, 0xff, 0x09, 0x16, 0x14, 0x10, 0xff, 0x09, 0x16, 0x1e, 0x10,
+ 0xff, 0x09, 0x16, 0x28, 0x10, 0xff, 0x09, 0x16, 0x32, 0x10, 0xff, 0x06, 0x0b, 0x1e, 0x06, 0xff,
+ 0x06, 0x00, 0x0a, 0x0f, 0xff, 0x06, 0x00, 0x14, 0x0f, 0xff, 0x06, 0x0b, 0x14, 0x0f, 0xff, 0x06,
+ 0x16, 0x14, 0x0f, 0xff, 0x07, 0x0b, 0x14, 0x06, 0xff, 0x07, 0x00, 0x14, 0x06, 0xff, 0x07, 0x00,
+ 0x1e, 0x06, 0xff, 0x37, 0x2c, 0x00, 0x05, 0xff, 0x37, 0x2c, 0x0a, 0x05, 0xff, 0x05, 0x16, 0x1e,
+ 0x06, 0xff, 0x05, 0x16, 0x14, 0x0f, 0xff, 0x05, 0x16, 0x0a, 0x0f, 0xff, 0x18, 0x16, 0x00, 0x0f,
+ 0xff, 0x18, 0x21, 0x00, 0x0f, 0xff, 0x18, 0x2c, 0x00, 0x0f, 0xff, 0x18, 0x21, 0x0a, 0x0f, 0xff,
+ 0x08, 0x00, 0x0a, 0x06, 0xff, 0x08, 0x0b, 0x0a, 0x06, 0xff, 0x08, 0x16, 0x0a, 0x06, 0xff, 0x08,
+ 0x21, 0x0a, 0x06, 0xff, 0x08, 0x21, 0x14, 0x06, 0xff, 0x08, 0x21, 0x1e, 0x06, 0xff, 0x08, 0x21,
+ 0x28, 0x06, 0xff, 0x08, 0x16, 0x28, 0x06, 0xff, 0x08, 0x0b, 0x28, 0x06, 0xff, 0x0b, 0x0b, 0x14,
+ 0x0c, 0xff, 0x0b, 0x0b, 0x1e, 0x0c, 0xff, 0x0b, 0x16, 0x14, 0x0c, 0xff, 0x0b, 0x16, 0x1e, 0x0c,
+ 0xff, 0x0c, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x16, 0x14, 0x0c, 0xff, 0x0d, 0x21, 0x14, 0x0c, 0xff,
+ 0x0e, 0x2c, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x00, 0x0c, 0xff, 0x0e, 0x21, 0x0a, 0x0c, 0xff, 0x0e,
+ 0x21, 0x14, 0x0c, 0xff, 0x0e, 0x21, 0x1e, 0x0c, 0xff, 0x0e, 0x21, 0x28, 0x0c, 0xff, 0x0e, 0x16,
+ 0x00, 0x10, 0xff, 0x13, 0x00, 0x00, 0x0c, 0xff, 0x14, 0x00, 0x14, 0x10, 0xff, 0x14, 0x00, 0x1e,
+ 0x10, 0xff, 0x14, 0x0b, 0x1e, 0x10, 0xff, 0x14, 0x00, 0x28, 0x10, 0xff, 0x14, 0x0b, 0x28, 0x10,
+ 0xff, 0x15, 0x0b, 0x0a, 0x0f, 0xff, 0x15, 0x0b, 0x14, 0x0f, 0xff, 0x15, 0x00, 0x14, 0x0f, 0xff,
+ 0x15, 0x16, 0x14, 0x0f, 0xff, 0x15, 0x21, 0x14, 0x0f, 0xff, 0x15, 0x2c, 0x14, 0x0f, 0xff, 0x15,
+ 0x2c, 0x0a, 0x0f, 0xff, 0x16, 0x16, 0x0a, 0x10, 0xff, 0x16, 0x16, 0x14, 0x10, 0xff, 0x17, 0x16,
+ 0x1e, 0x0d, 0xff, 0x17, 0x16, 0x28, 0x0d, 0xff, 0x17, 0x21, 0x28, 0x0d, 0xff, 0x17, 0x0b, 0x28,
+ 0x0d, 0xff, 0x17, 0x00, 0x28, 0x0d, 0xff, 0x17, 0x00, 0x32, 0x0d, 0xff, 0x19, 0x0b, 0x28, 0x10,
+ 0xff, 0x19, 0x0b, 0x32, 0x10, 0xff, 0x19, 0x00, 0x32, 0x10, 0xff, 0x1b, 0x0b, 0x14, 0x10, 0xff,
+ 0x1b, 0x0b, 0x1e, 0x10, 0xff, 0x1d, 0x0b, 0x0a, 0x10, 0xff, 0x2d, 0x16, 0x1e, 0x0c, 0xff, 0x2d,
+ 0x16, 0x28, 0x0c, 0xff, 0x2d, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x28, 0x0c, 0xff, 0x2e, 0x0b,
+ 0x32, 0x0c, 0xff, 0x2e, 0x16, 0x32, 0x0c, 0xff, 0x2e, 0x21, 0x32, 0x0c, 0xff, 0x2f, 0x00, 0x00,
+ 0x0c, 0xff, 0x1a, 0x16, 0x14, 0x10, 0xff, 0x1a, 0x21, 0x0a, 0x10, 0xff, 0x1a, 0x21, 0x14, 0x10,
+ 0xff, 0x1a, 0x21, 0x1e, 0x10, 0xff, 0x1a, 0x2c, 0x1e, 0x10, 0xff, 0x1a, 0x16, 0x1e, 0x10, 0xff,
+ 0x1a, 0x0b, 0x1e, 0x10, 0xff, 0x1a, 0x0b, 0x14, 0x10, 0xff, 0x1a, 0x00, 0x14, 0x10, 0xff, 0x1a,
+ 0x0b, 0x28, 0x10, 0xff, 0x1a, 0x00, 0x28, 0x10, 0xff, 0x1a, 0x16, 0x28, 0x10, 0xff, 0x1a, 0x0b,
+ 0x32, 0x10, 0xff, 0x1c, 0x00, 0x1e, 0x0f, 0xff, 0x1c, 0x00, 0x14, 0x0f, 0xff, 0x1c, 0x00, 0x28,
+ 0x0f, 0xff, 0x1c, 0x0b, 0x1e, 0x0f, 0xff, 0x1c, 0x0b, 0x14, 0x0f, 0xff, 0x1c, 0x16, 0x1e, 0x0f,
+ 0xff, 0x1c, 0x16, 0x14, 0x0f, 0xff, 0xff, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41,
+ 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+ 0x37, 0x38, 0x39, 0x30, 0x2d, 0x00, 0x08, 0x00, 0x51, 0x57, 0x45, 0x52, 0x54, 0x59, 0x55, 0x49,
+ 0x4f, 0x50, 0x00, 0x00, 0x0d, 0x00, 0x41, 0x53, 0x44, 0x46, 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5a, 0x58, 0x43, 0x56, 0x42, 0x4e, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x20, 0x44,
- 0x41, 0x54, 0x41, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, 0x47,
- 0x48, 0x54, 0x20, 0x31, 0x39, 0x39, 0x32, 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x56, 0x45,
- 0x20, 0x52, 0x45, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x20, 0x44, 0x41, 0x54, 0x41, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x20, 0x43, 0x4f,
+ 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x31, 0x39, 0x39, 0x32, 0x20, 0x43, 0x52, 0x45,
+ 0x41, 0x54, 0x49, 0x56, 0x45, 0x20, 0x52, 0x45, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x30, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x06, 0x02, 0xff, 0x03,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x07, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0x06, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x32, 0x00, 0x02, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0xff, 0xff, 0x01,
- 0xff, 0x03, 0xff, 0xff, 0xff, 0x02, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x33, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0x00, 0x02, 0x04,
- 0xff, 0x00, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x34, 0x00, 0x17, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x00, 0x05, 0xff,
- 0xff, 0x03, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0x00, 0x04, 0xff,
- 0xff, 0x03, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x36, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02,
- 0xff, 0x00, 0xff, 0xff, 0xff, 0x06, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x37, 0x00, 0xff, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0xff, 0xff, 0xff, 0x07, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x38, 0x00, 0x08, 0xff, 0x00, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0x0b, 0x28, 0x00, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x39, 0x00, 0x09, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x04, 0x06, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0xff, 0xff, 0xff, 0x09, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x30, 0x00, 0x0a, 0xff, 0x21, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x02, 0x00, 0xff, 0xff, 0x02,
- 0x02, 0x04, 0x16, 0x1e, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x31, 0x00, 0x0b, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x33, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x34, 0x00, 0x0e, 0xff, 0x2c, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x30, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x06, 0x02, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x07, 0x02, 0xff, 0xff, 0xff, 0xff, 0x06, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x32, 0x00, 0x02, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x00, 0xff, 0xff, 0x01, 0xff, 0x03, 0xff, 0xff, 0xff, 0x02, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x33, 0x00, 0x05, 0xff, 0x21, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x02, 0x02, 0x00, 0x02, 0x04, 0xff, 0x00, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x34, 0x00, 0x17, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x00, 0x05, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x02, 0x00, 0x04, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x36, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x00, 0x00, 0x01, 0x02, 0xff, 0x00, 0xff, 0xff, 0xff, 0x06, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x37, 0x00, 0xff, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x07, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x38, 0x00, 0x08, 0xff, 0x00, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0b, 0x28, 0x00, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x39, 0x00, 0x09, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x04, 0x06, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x09, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x30, 0x00, 0x0a, 0xff, 0x21, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x02, 0x00, 0xff, 0xff, 0x02, 0x02, 0x04, 0x16, 0x1e, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x31, 0x00, 0x0b, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x33, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x34, 0x00, 0x0e, 0xff, 0x2c, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -21781,85 +21793,85 @@ void __start(Context &context) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x30, 0x00, 0x16, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x14, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0x01,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0x01,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x33, 0x00, 0x17, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0x03,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x34, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x06, 0x02, 0x0f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x35, 0x00, 0x16, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x36, 0x00, 0x09, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x04, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x37, 0x00, 0x16, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x02,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x39, 0x00, 0x16, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x01, 0x0f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x34, 0x00, 0x17, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x30, 0x00, 0x0a, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x03, 0x06, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x33, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x06, 0x02, 0xff, 0x04,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x34, 0x00, 0x05, 0xff, 0x16, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x06, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0x21, 0x00, 0x03, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x31, 0x00, 0x0b, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0x02,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x01, 0x04, 0x02, 0x0f, 0x01,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x32, 0x36, 0x00, 0x09, 0xff, 0x00, 0x28, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x38, 0x00, 0x08, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x03, 0x06, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x28, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x34, 0x37, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x04, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x32, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x35, 0x30, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x35, 0x31, 0x00, 0x23, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x33, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x35, 0x32, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x35, 0x33, 0x00, 0x23, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x35, 0x34, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x52,
- 0x35, 0x35, 0x00, 0x0e, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x30, 0x00, 0x16, 0xff, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x14, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x02, 0x0f, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x04, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x33, 0x00, 0x17, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x02, 0x0f, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x34, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x06, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x35, 0x00, 0x16, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x36, 0x00, 0x09, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x04, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x37, 0x00, 0x16, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x39, 0x00, 0x16, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x35, 0x00, 0x05, 0xff, 0x16, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x05, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x34, 0x00, 0x17, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x02, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x04, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x30, 0x00, 0x0a, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x03, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x32, 0x00, 0x0c, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x33, 0x00, 0x05, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x06, 0x02, 0xff, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x34, 0x00, 0x05, 0xff, 0x16, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x03, 0x06, 0x00, 0xff, 0xff, 0xff, 0xff, 0x21, 0x00, 0x03, 0x18, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x32, 0x00, 0x16, 0xff, 0x16, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x31, 0x00, 0x0b, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x38, 0x00, 0x05, 0xff, 0x0b, 0x14, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x06, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x31, 0x00, 0x05, 0xff, 0x0b, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x01, 0x04, 0x02, 0x0f, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x32, 0x36, 0x00, 0x09, 0xff, 0x00, 0x28, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x31, 0x39, 0x00, 0x13, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x38, 0x00, 0x08, 0xff, 0x0b, 0x28, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x30, 0x31, 0x00, 0x01, 0xff, 0x2c, 0x0a, 0xff, 0xff, 0xff, 0x00,
+ 0x03, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x28, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x37, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x35, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x34, 0x36, 0x00, 0x23, 0xff, 0x16, 0x32, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x30, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x31, 0x00, 0x23, 0xff, 0x0b, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x33, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x32, 0x00, 0x23, 0xff, 0x16, 0x1e, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x33, 0x00, 0x23, 0xff, 0x21, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x34, 0x00, 0x23, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x52, 0x35, 0x35, 0x00, 0x0e, 0xff, 0x2c, 0x00, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06,
- 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04,
+ 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -21867,7 +21879,8 @@ void __start(Context &context) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
@@ -21892,21 +21905,21 @@ void __start(Context &context) {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
- 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30,
- 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44,
- 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41,
- 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
- 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44,
- 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00,
- 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x45, 0x4d, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57,
+ 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e,
+ 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32,
+ 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x33, 0x00, 0x44, 0x52,
+ 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
+ 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,
+ 0x2e, 0x44, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x45,
+ 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -21922,7 +21935,7 @@ void __start(Context &context) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
+ 0x00, 0x00, };
context.ds.assign(src, src + sizeof(src));
dreamweb(context);
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 621c0c2..f97099d 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -531,23 +531,23 @@ namespace dreamgen {
const static uint16 kTitle6graphics = 2455;
const static uint16 kTitle7graphics = 2468;
const static uint16 kPalettescreen = 2481;
- const static uint16 kCurrentfile = 2892;
- const static uint16 kDmaaddresses = 4945;
- const static uint16 kFileheader = 5862;
- const static uint16 kFiledata = 5912;
- const static uint16 kExtradata = 5952;
- const static uint16 kRoomdata = 5958;
- const static uint16 kMadeuproomdat = 7750;
- const static uint16 kRoomscango = 7782;
- const static uint16 kRoompics = 7798;
- const static uint16 kOplist = 7813;
- const static uint16 kInputline = 7816;
- const static uint16 kLinedata = 7944;
- const static uint16 kPresslist = 8344;
- const static uint16 kSavenames = 8350;
- const static uint16 kSavefiles = 8469;
- const static uint16 kRecname = 8560;
- const static uint16 kStak = 8573;
+ const static uint16 kCurrentfile = 2970;
+ const static uint16 kDmaaddresses = 5118;
+ const static uint16 kFileheader = 6059;
+ const static uint16 kFiledata = 6109;
+ const static uint16 kExtradata = 6149;
+ const static uint16 kRoomdata = 6155;
+ const static uint16 kMadeuproomdat = 7947;
+ const static uint16 kRoomscango = 7979;
+ const static uint16 kRoompics = 7995;
+ const static uint16 kOplist = 8010;
+ const static uint16 kInputline = 8013;
+ const static uint16 kLinedata = 8141;
+ const static uint16 kPresslist = 8541;
+ const static uint16 kSavenames = 8547;
+ const static uint16 kSavefiles = 8666;
+ const static uint16 kRecname = 8757;
+ const static uint16 kStak = 8770;
const static uint16 kBlocktextdat = (0);
const static uint16 kPersonframes = (0);
const static uint16 kDebuglevel1 = (0);
@@ -624,10 +624,10 @@ namespace dreamgen {
const static uint16 kOpsy = (52);
const static uint16 kSymboly = (56);
const static uint16 kInventy = (58);
- const static uint16 kHeaderlen = (5958-5862);
const static uint16 kMenuy = (60);
const static uint16 kOpsx = (60);
const static uint16 kMaplength = (60);
+ const static uint16 kHeaderlen = (6155-6059);
const static uint16 kSymbolx = (64);
const static uint16 kSetdatlen = (64*128);
const static uint16 kMapwidth = (66);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 3af8675..8925817 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -248,7 +248,7 @@ void DreamWebEngine::keyPressed(uint16 ascii) {
if (ascii >= 'a' && ascii <= 'z')
ascii = (ascii - 'a') + 'A';
debug(1, "key pressed = %04x", ascii);
- uint8* keybuf = _context.data.ptr(5715, 16); //fixme: some hardcoded offsets are not added as consts
+ uint8* keybuf = _context.data.ptr(5912, 16); //fixme: some hardcoded offsets are not added as consts
uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) & 0x0f;
uint16 out = _context.data.word(dreamgen::kBufferout);
if (in == out) {
@@ -807,7 +807,7 @@ void showpcx(Context &context) {
pcxFile.seek(16, SEEK_SET);
context.es = context.data.word(kBuffers);
- maingamepal = context.es.ptr(4782, 768);
+ maingamepal = context.es.ptr(4782, 768); //fixme: hardcoded offset
pcxFile.read(maingamepal, 48);
memset(maingamepal + 48, 0xff, 720);
Commit: ff128eae14276f5ce92f2222088e1b47b905ce28
https://github.com/scummvm/scummvm/commit/ff128eae14276f5ce92f2222088e1b47b905ce28
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:44-07:00
Commit Message:
DREAMWEB: fixed crash after exit of the monitor
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index dca8d5f..de1a204 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -10330,8 +10330,6 @@ endmon:
playchannel1(context);
context.data.byte(kManisoffscreen) = 0;
restoreall(context);
- redrawmainscrn(context);
- worktoscreenm(context);
{assert(stack_depth == context.stack.size()); return; }
}
Commit: e7b6859274cf20d665be151253fcef635e06774c
https://github.com/scummvm/scummvm/commit/e7b6859274cf20d665be151253fcef635e06774c
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:44-07:00
Commit Message:
DREAMWEB: fixed memory corruption in multiput/multiget
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 8925817..dbc2a8f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -247,7 +247,7 @@ uint DreamWebEngine::readFromSaveFile(uint8 *data, uint size) {
void DreamWebEngine::keyPressed(uint16 ascii) {
if (ascii >= 'a' && ascii <= 'z')
ascii = (ascii - 'a') + 'A';
- debug(1, "key pressed = %04x", ascii);
+ debug(2, "key pressed = %04x", ascii);
uint8* keybuf = _context.data.ptr(5912, 16); //fixme: some hardcoded offsets are not added as consts
uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) & 0x0f;
uint16 out = _context.data.word(dreamgen::kBufferout);
@@ -385,14 +385,19 @@ Common::String getFilename(Context &context) {
void multiget(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
- unsigned src = (uint16)context.di + (uint16)context.bx * kScreenwidth;
+ unsigned x = (uint16)context.di, y = (uint16)context.bx;
+ unsigned src = x + y * kScreenwidth;
unsigned dst = (uint16)context.si;
context.es = context.ds;
context.ds = context.data.word(kWorkspace);
- //debug(1, "multiget %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
- for(unsigned y = 0; y < h; ++y) {
- uint8 *src_p = context.ds.ptr(src + kScreenwidth * y, w);
- uint8 *dst_p = context.es.ptr(dst + w * y, w);
+ if (y + h > 200)
+ h = 200 - y;
+ if (x + w > 320)
+ w = 320 - x;
+ //debug(1, "multiget %u,%u %ux%u -> segment: %04x->%04x", x, y, w, h, (uint16)context.ds, (uint16)context.es);
+ for(unsigned l = 0; l < h; ++l) {
+ uint8 *src_p = context.ds.ptr(src + kScreenwidth * l, w);
+ uint8 *dst_p = context.es.ptr(dst + w * l, w);
memcpy(dst_p, src_p, w);
}
context.si += w * h;
@@ -402,13 +407,18 @@ void multiget(Context &context) {
void multiput(Context &context) {
unsigned w = (uint8)context.cl, h = (uint8)context.ch;
+ unsigned x = (uint16)context.di, y = (uint16)context.bx;
unsigned src = (uint16)context.si;
- unsigned dst = (uint16)context.di + (uint16)context.bx * kScreenwidth;
+ unsigned dst = x + y * kScreenwidth;
context.es = context.data.word(kWorkspace);
+ if (y + h > 200)
+ h = 200 - y;
+ if (x + w > 320)
+ w = 320 - x;
//debug(1, "multiput %ux%u -> segment: %04x->%04x", w, h, (uint16)context.ds, (uint16)context.es);
- for(unsigned y = 0; y < h; ++y) {
- uint8 *src_p = context.ds.ptr(src + w * y, w);
- uint8 *dst_p = context.es.ptr(dst + kScreenwidth * y, w);
+ for(unsigned l = 0; l < h; ++l) {
+ uint8 *src_p = context.ds.ptr(src + w * l, w);
+ uint8 *dst_p = context.es.ptr(dst + kScreenwidth * l, w);
memcpy(dst_p, src_p, w);
}
context.si += w * h;
Commit: 09346f01d7caa18dbfeed94f4913686e5f00169d
https://github.com/scummvm/scummvm/commit/09346f01d7caa18dbfeed94f4913686e5f00169d
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:45-07:00
Commit Message:
DREAMWEB: added sound handling stub
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index dbc2a8f..6b7eef1 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -111,6 +111,7 @@ void DreamWebEngine::processEvents() {
quit();
return;
}
+ soundHandler();
Common::Event event;
while (event_manager->pollEvent(event)) {
bool keyHandled = false;
@@ -364,11 +365,28 @@ void DreamWebEngine::printUnderMonitor() {
_system->unlockScreen();
}
-
void DreamWebEngine::cls() {
_system->fillScreen(0);
}
+void DreamWebEngine::soundHandler() {
+ uint volume = _context.data.byte(dreamgen::kVolume);
+ uint ch0 = _context.data.byte(dreamgen::kCh0playing);
+ if (ch0 == 255)
+ ch0 = 0;
+ uint ch1 = _context.data.byte(dreamgen::kCh1playing);
+ if (ch1 == 255)
+ ch1 = 0;
+ uint ch0loop = _context.data.byte(dreamgen::kCh0repeat);
+ if (ch0 || ch1)
+ debug("volume: %u, samples: %u, %u, loop0: %u", volume, ch0, ch1, ch0loop);
+}
+
+void DreamWebEngine::loadSounds(uint bank, const Common::String &file) {
+ debug(1, "loadSounds(%u, %s)", bank, file.c_str());
+}
+
+
} // End of namespace DreamWeb
@@ -669,15 +687,46 @@ void setsoundoff(Context &context) {
void readheader(Context &context);
void loadsample(Context &context) {
- warning("loadsample: STUB");
+ context.engine->loadSounds(1, (const char *)context.data.ptr(context.dx, 13));
+ /*
openfile(context);
+ readheader(context);
+ context.bx = context.es.word(context.di);
+ context.push(context.es);
+ context.push(context.di);
+ context.push(context.bx);
+ context.ds = context.data.word(kSounddata);
+ context.cx = context.pop();
+ context.dx = 0;
+ readfromfile(context);
+ context.di = context.pop();
+ context.es = context.pop();
+ context._add(context.di, 2);
+ context.bx = 0;
+ context.dx = context.es.word(context.di);
+ context._add(context.dx, 1);
+ context._shr(context.dx, 1);
+ //debug(1, "dx = %u", (uint16)context.dx);
+ uint32 size = 0x8000 * context.dx;
+ debug(1, "file size = %u", size);
+ context.engine->loadSounds(0, size);
+
closefile(context);
+ */
}
+void cancelch0(Context &context);
+void cancelch1(Context &context);
+
+
void loadsecondsample(Context &context) {
- warning("loadsecondsample: STUB");
- openfile(context);
- closefile(context);
+ uint8 ch0 = context.data.byte(kCh0playing);
+ if (ch0 >= 12 && ch0 != 255)
+ cancelch0(context);
+ uint8 ch1 = context.data.byte(kCh1playing);
+ if (ch1 >= 12)
+ cancelch1(context);
+ context.engine->loadSounds(1, (const char *)context.data.ptr(context.dx, 13));
}
void loadspeech(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index f61c113..507a3a9 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -100,11 +100,12 @@ public:
void quit();
-private:
+ void loadSounds(uint bank, const Common::String &file);
+private:
void keyPressed(uint16 ascii);
-
void setSpeed(uint speed);
+ void soundHandler();
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
@@ -115,6 +116,7 @@ private:
uint _speed;
uint _oldMouseState;
+ Common::Array<uint8> _samples[2];
dreamgen::Context _context;
};
Commit: 5a8b1dbfff587fe0eb689d81eed60fe879fb8f36
https://github.com/scummvm/scummvm/commit/5a8b1dbfff587fe0eb689d81eed60fe879fb8f36
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:45-07:00
Commit Message:
DREAMWEB: catch the sample changing, more stubs
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 6b7eef1..0c2f7b4 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -68,6 +68,8 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_inSaveFile = 0;
_speed = 1;
_oldMouseState = 0;
+ _channel0 = 0;
+ _channel1 = 0;
}
DreamWebEngine::~DreamWebEngine() {
@@ -378,8 +380,21 @@ void DreamWebEngine::soundHandler() {
if (ch1 == 255)
ch1 = 0;
uint ch0loop = _context.data.byte(dreamgen::kCh0repeat);
- if (ch0 || ch1)
- debug("volume: %u, samples: %u, %u, loop0: %u", volume, ch0, ch1, ch0loop);
+
+ if (_channel0 != ch0) {
+ _channel0 = ch0;
+ if (ch0) {
+ //Audio::AudioStream *stream = LoopingAudioStream(Audio::makeRawStream(data, size, 22050, 0), ch0loops);
+ //_mixer->playStream(Audio::Mixer::kMusicType, &_musicHandle, stream); //dispose is YES by default
+ debug(1, "playing sound %u at channel 0, loop: %u", ch0, ch0loop);
+ }
+ }
+ if (_channel1 != ch1) {
+ _channel1 = ch1;
+ if (ch1) {
+ debug(1, "playing sound %u at channel 1", ch1);
+ }
+ }
}
void DreamWebEngine::loadSounds(uint bank, const Common::String &file) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 507a3a9..7dabbc8 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -33,6 +33,9 @@
#include "common/savefile.h"
#include "common/scummsys.h"
+#include "audio/audiostream.h"
+#include "audio/mixer.h"
+
#include "engines/engine.h"
#include "dreamweb/dreamgen.h"
#include "dreamweb/console.h"
@@ -117,6 +120,8 @@ private:
uint _speed;
uint _oldMouseState;
Common::Array<uint8> _samples[2];
+ Audio::SoundHandle _musicHandle, _soundHandle;
+ uint _channel0, _channel1;
dreamgen::Context _context;
};
Commit: 74dfc349373e04d4243f3449c3f4939f8027c54f
https://github.com/scummvm/scummvm/commit/74dfc349373e04d4243f3449c3f4939f8027c54f
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:46-07:00
Commit Message:
DREAMWEB: added sounds loading
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 0c2f7b4..4614637 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -372,7 +372,7 @@ void DreamWebEngine::cls() {
}
void DreamWebEngine::soundHandler() {
- uint volume = _context.data.byte(dreamgen::kVolume);
+ //uint volume = _context.data.byte(dreamgen::kVolume);
uint ch0 = _context.data.byte(dreamgen::kCh0playing);
if (ch0 == 255)
ch0 = 0;
@@ -397,8 +397,34 @@ void DreamWebEngine::soundHandler() {
}
}
-void DreamWebEngine::loadSounds(uint bank, const Common::String &file) {
- debug(1, "loadSounds(%u, %s)", bank, file.c_str());
+void DreamWebEngine::loadSounds(uint bank, const Common::String &filename) {
+ debug(1, "loadSounds(%u, %s)", bank, filename.c_str());
+ Common::File file;
+ if (!file.open(filename)) {
+ warning("cannot open %s", filename.c_str());
+ return;
+ }
+
+ uint8 header[0x60];
+ file.read(header, sizeof(header));
+ uint tablesize = READ_LE_UINT16(header + 0x32);
+ debug(1, "table size = %u", tablesize);
+
+ SoundData &soundData = _soundData[bank];
+ soundData.samples.resize(tablesize / 6);
+ uint total = 0;
+ for(uint i = 0; i < tablesize / 6; ++i) {
+ uint8 entry[6];
+ Sample &sample = soundData.samples[i];
+ file.read(entry, sizeof(entry));
+ sample.offset = entry[0] * 0x4000 + READ_LE_UINT16(entry + 1);
+ sample.size = READ_LE_UINT16(entry + 3) * 0x800;
+ total += sample.size;
+ debug(1, "offset: %08x, size: %u", sample.offset, sample.size);
+ }
+ soundData.data.resize(total);
+ file.read(soundData.data.begin(), total);
+ file.close();
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 7dabbc8..eff955c 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -119,7 +119,19 @@ private:
uint _speed;
uint _oldMouseState;
- Common::Array<uint8> _samples[2];
+
+ struct Sample {
+ uint offset;
+ uint size;
+ };
+
+ struct SoundData {
+ Common::Array<Sample> samples;
+ Common::Array<uint8> data;
+ };
+
+ SoundData _soundData[2];
+
Audio::SoundHandle _musicHandle, _soundHandle;
uint _channel0, _channel1;
Commit: 1955df129fc1dc17181b1ec18c3fa7c98a18f79f
https://github.com/scummvm/scummvm/commit/1955df129fc1dc17181b1ec18c3fa7c98a18f79f
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:46-07:00
Commit Message:
DREAMWEB: added sound support
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 4614637..0996aae 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -36,6 +36,7 @@
#include "engines/util.h"
#include "audio/mixer.h"
+#include "audio/decoders/raw.h"
#include "graphics/palette.h"
#include "graphics/surface.h"
@@ -371,15 +372,50 @@ void DreamWebEngine::cls() {
_system->fillScreen(0);
}
+void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
+ const SoundData &data = _soundData[id >= 12? 1: 0];
+
+ Audio::Mixer::SoundType type;
+ if (id >= 12) {
+ id -= 12;
+ type = Audio::Mixer::kSFXSoundType;
+ } else
+ type = Audio::Mixer::kMusicSoundType;
+
+ if (id >= data.samples.size()) {
+ warning("invalid sample #%u played", id);
+ return;
+ }
+
+ const Sample &sample = data.samples[id];
+
+ uint8 *buffer = (uint8 *)malloc(sample.size);
+ if (!buffer)
+ error("out of memory: cannot allocate memory for sound(%u bytes)", sample.size);
+ memcpy(buffer, data.data.begin() + sample.offset, sample.size);
+
+ Audio::SeekableAudioStream *raw = Audio::makeRawStream(
+ buffer,
+ sample.size, 22050, Audio::FLAG_UNSIGNED);
+
+ Audio::AudioStream *stream;
+ if (loops > 1) {
+ stream = new Audio::LoopingAudioStream(raw, loops < 255? loops: 0);
+ } else
+ stream = raw;
+
+ _mixer->playStream(type, &_channelHandle[channel], stream);
+}
+
void DreamWebEngine::soundHandler() {
- //uint volume = _context.data.byte(dreamgen::kVolume);
- uint ch0 = _context.data.byte(dreamgen::kCh0playing);
+ //uint8 volume = _context.data.byte(dreamgen::kVolume);
+ uint8 ch0 = _context.data.byte(dreamgen::kCh0playing);
if (ch0 == 255)
ch0 = 0;
- uint ch1 = _context.data.byte(dreamgen::kCh1playing);
+ uint8 ch1 = _context.data.byte(dreamgen::kCh1playing);
if (ch1 == 255)
ch1 = 0;
- uint ch0loop = _context.data.byte(dreamgen::kCh0repeat);
+ uint8 ch0loop = _context.data.byte(dreamgen::kCh0repeat);
if (_channel0 != ch0) {
_channel0 = ch0;
@@ -387,12 +423,14 @@ void DreamWebEngine::soundHandler() {
//Audio::AudioStream *stream = LoopingAudioStream(Audio::makeRawStream(data, size, 22050, 0), ch0loops);
//_mixer->playStream(Audio::Mixer::kMusicType, &_musicHandle, stream); //dispose is YES by default
debug(1, "playing sound %u at channel 0, loop: %u", ch0, ch0loop);
+ playSound(0, ch0, ch0loop);
}
}
if (_channel1 != ch1) {
_channel1 = ch1;
if (ch1) {
debug(1, "playing sound %u at channel 1", ch1);
+ playSound(1, ch1, ch0loop);
}
}
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index eff955c..447aff9 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -109,6 +109,7 @@ private:
void keyPressed(uint16 ascii);
void setSpeed(uint speed);
void soundHandler();
+ void playSound(uint8 channel, uint8 id, uint8 loops);
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
@@ -129,11 +130,10 @@ private:
Common::Array<Sample> samples;
Common::Array<uint8> data;
};
-
SoundData _soundData[2];
- Audio::SoundHandle _musicHandle, _soundHandle;
- uint _channel0, _channel1;
+ Audio::SoundHandle _channelHandle[2];
+ uint8 _channel0, _channel1;
dreamgen::Context _context;
};
Commit: 7e7152df286c84b9e6592d3d6823bde87a557659
https://github.com/scummvm/scummvm/commit/7e7152df286c84b9e6592d3d6823bde87a557659
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:47-07:00
Commit Message:
DREAMWEB: removed looping on channel1
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 0996aae..b318c85 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -430,7 +430,7 @@ void DreamWebEngine::soundHandler() {
_channel1 = ch1;
if (ch1) {
debug(1, "playing sound %u at channel 1", ch1);
- playSound(1, ch1, ch0loop);
+ playSound(1, ch1, 1);
}
}
}
Commit: daab18a7be8b5302699dc55f6dd3505195396852
https://github.com/scummvm/scummvm/commit/daab18a7be8b5302699dc55f6dd3505195396852
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:47-07:00
Commit Message:
DREAMWEB: stop previous sound if it's still active
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b318c85..b36a372 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -404,6 +404,8 @@ void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
} else
stream = raw;
+ if (_mixer->isSoundHandleActive(_channelHandle[channel]))
+ _mixer->stopHandle(_channelHandle[channel]);
_mixer->playStream(type, &_channelHandle[channel], stream);
}
Commit: 8ede458e7766e0c3335e59129bc3ef29509a01cd
https://github.com/scummvm/scummvm/commit/8ede458e7766e0c3335e59129bc3ef29509a01cd
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:48-07:00
Commit Message:
DREAMWEB: fixed invalid channel, removed junk
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index b36a372..01bedbf 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -768,32 +768,7 @@ void setsoundoff(Context &context) {
void readheader(Context &context);
void loadsample(Context &context) {
- context.engine->loadSounds(1, (const char *)context.data.ptr(context.dx, 13));
- /*
- openfile(context);
- readheader(context);
- context.bx = context.es.word(context.di);
- context.push(context.es);
- context.push(context.di);
- context.push(context.bx);
- context.ds = context.data.word(kSounddata);
- context.cx = context.pop();
- context.dx = 0;
- readfromfile(context);
- context.di = context.pop();
- context.es = context.pop();
- context._add(context.di, 2);
- context.bx = 0;
- context.dx = context.es.word(context.di);
- context._add(context.dx, 1);
- context._shr(context.dx, 1);
- //debug(1, "dx = %u", (uint16)context.dx);
- uint32 size = 0x8000 * context.dx;
- debug(1, "file size = %u", size);
- context.engine->loadSounds(0, size);
-
- closefile(context);
- */
+ context.engine->loadSounds(0, (const char *)context.data.ptr(context.dx, 13));
}
void cancelch0(Context &context);
Commit: 0946aa81bd2bf8c02a4f2d75b01709173fcda3da
https://github.com/scummvm/scummvm/commit/0946aa81bd2bf8c02a4f2d75b01709173fcda3da
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:48-07:00
Commit Message:
DREAMWEB: added operator= for segmentref
Changed paths:
engines/dreamweb/runtime.h
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index adbf333..e9caf37 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -137,6 +137,13 @@ public:
return *this;
}
+ inline SegmentRef& operator=(const SegmentRef &ref) {
+ _context = ref._context;
+ _value = ref._value;
+ _segment = ref._segment;
+ return *this;
+ }
+
inline uint8 &byte(unsigned index) {
assert(_segment != 0);
return _segment->byte(index);
Commit: 5cccea42e5a9bccdb85a764253d5fba2ed9fa3f3
https://github.com/scummvm/scummvm/commit/5cccea42e5a9bccdb85a764253d5fba2ed9fa3f3
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:49-07:00
Commit Message:
DREAMWEB: regenerated the source
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index de1a204..5891e71 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -20819,6 +20819,7 @@ dontrestore:
void restoreall(Context & context) {
uint stack_depth = context.stack.size();
+ clearsprites(context);
context.al = context.data.byte(kLocation);
getroomdata(context);
context.dx = context.bx;
Commit: 8c9d00966fa061f44db6ceb3b14bed931157f46c
https://github.com/scummvm/scummvm/commit/8c9d00966fa061f44db6ceb3b14bed931157f46c
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:51-07:00
Commit Message:
DREAMWEB: removed hacks, regenerated source
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 5891e71..dca8d5f 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -10330,6 +10330,8 @@ endmon:
playchannel1(context);
context.data.byte(kManisoffscreen) = 0;
restoreall(context);
+ redrawmainscrn(context);
+ worktoscreenm(context);
{assert(stack_depth == context.stack.size()); return; }
}
@@ -20819,7 +20821,6 @@ dontrestore:
void restoreall(Context & context) {
uint stack_depth = context.stack.size();
- clearsprites(context);
context.al = context.data.byte(kLocation);
getroomdata(context);
context.dx = context.bx;
Commit: 78b1a6061147b4f47d5ac61d1b50a83784e58ea7
https://github.com/scummvm/scummvm/commit/78b1a6061147b4f47d5ac61d1b50a83784e58ea7
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:55-07:00
Commit Message:
DREAMWEB: patch sprite table after deallocating segment with sprites.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 01bedbf..eea3b72 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -681,9 +681,25 @@ void allocatemem(Context &context) {
}
void deallocatemem(Context &context) {
- debug(1, "deallocating segment %04x", (uint16)context.es);
- context.deallocateSegment(context.es);
+ uint16 id = (uint16)context.es;
+ debug(1, "deallocating segment %04x", id);
+ context.deallocateSegment(id);
+
+ //fixing invalid entries in the sprite table
context.es = context.data;
+ uint tsize = 16 * 32;
+ uint16 bseg = context.data.word(kBuffers);
+ if (!bseg)
+ return;
+ SegmentRef buffers(&context);
+ buffers = bseg;
+ uint8 *ptr = buffers.ptr(kSpritetable, tsize);
+ for(uint i = 0; i < tsize; i += 32) {
+ uint16 seg = READ_LE_UINT16(ptr + i + 6);
+ //debug(1, "sprite segment = %04x", seg);
+ if (seg == id)
+ memset(ptr + i, 0xff, 32);
+ }
}
void removeemm(Context &context) {
Commit: bf28698bca958081481f189b01aaf8a20a1d4f36
https://github.com/scummvm/scummvm/commit/bf28698bca958081481f189b01aaf8a20a1d4f36
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:56-07:00
Commit Message:
DREAMWEB: fixed shakeTable to do not pass negative values into backend, added CTRL-c statue puzzle solver shortcut
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index eea3b72..2daf905 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -137,6 +137,13 @@ void DreamWebEngine::processEvents() {
keyHandled = true;
}
break;
+ case Common::KEYCODE_c: //skip statue puzzle
+ if (event.kbd.flags & Common::KBD_CTRL) {
+ _context.data.byte(dreamgen::kSymbolbotnum) = 3;
+ _context.data.byte(dreamgen::kSymboltopnum) = 5;
+ keyHandled = true;
+ }
+ break;
default:
break;
}
@@ -900,7 +907,8 @@ void doshake(Context &context) {
0, -2, 3, -2, 0, 2, 4, -1,
1, -3, 3, 0,
};
- context.engine->setShakePos(shakeTable[counter]);
+ int offset = shakeTable[counter];
+ context.engine->setShakePos(offset >= 0? offset: -offset);
}
void vsync(Context &context) {
Commit: 932abf8c3bf023d635e8903ae7132c7c2b388762
https://github.com/scummvm/scummvm/commit/932abf8c3bf023d635e8903ae7132c7c2b388762
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:56-07:00
Commit Message:
DREAMWEB: regenerated sources with CD option on
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index dca8d5f..187f1f9 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -29,6 +29,7 @@ void fadescreendown(Context &context);
void hangon(Context &context);
void fadescreendowns(Context &context);
void endgame(Context &context);
+void makename(Context &context);
void standardload(Context &context);
void getroomspaths(Context &context);
void readheader(Context &context);
@@ -1660,6 +1661,7 @@ notmonk2text2:
notmonk2text3:
context._cmp(context.data.byte(kIntrocount), 10);
if (!context.flags.z()) goto notmonk2text4;
+ context.data.byte(kIntrocount) = 12;
context.al = 11;
context.bl = 0;
context.bh = 105;
@@ -1668,6 +1670,8 @@ notmonk2text3:
notmonk2text4:
context._cmp(context.data.byte(kIntrocount), 13);
if (!context.flags.z()) goto notmonk2text5;
+ context.data.byte(kIntrocount) = 17;
+ {assert(stack_depth == context.stack.size()); return; }
context.al = 12;
context.bl = 0;
context.bh = 120;
@@ -1708,7 +1712,7 @@ notmonk2text8:
context.cx = 100;
goto gotmonks2text;
notmonk2text9:
- context._cmp(context.data.byte(kIntrocount), 28);
+ context._cmp(context.data.byte(kIntrocount), 27);
if (!context.flags.z()) goto notmonk2text10;
context.al = 17;
context.bl = 36;
@@ -1763,6 +1767,10 @@ notintro1text3:
gotintro1text:
context.dx = 1;
context.ah = 82;
+ context._cmp(context.data.byte(kCh1playing), 255);
+ if (context.flags.z()) goto oktalk2;
+ context._dec(context.data.byte(kIntrocount));
+ {assert(stack_depth == context.stack.size()); return; }
oktalk2:
setuptimedtemp(context);
{assert(stack_depth == context.stack.size()); return; }
@@ -1804,7 +1812,7 @@ void intro3text(Context & context) {
context.cx = 100;
goto gotintro3text;
notintro3text1:
- context._cmp(context.ax, 109);
+ context._cmp(context.ax, 108);
if (!context.flags.z()) goto notintro3text2;
context.al = 46;
context.bl = 36;
@@ -2059,13 +2067,13 @@ notfirstmad:
context.bx = context.pop();
context.es = context.pop();
context.ax = 53;
- context._cmp(context.data.byte(kCombatcount), 62);
+ context._cmp(context.data.byte(kCombatcount), 64);
if (context.flags.c()) goto nomadspeak;
- context._cmp(context.data.byte(kCombatcount), 68);
+ context._cmp(context.data.byte(kCombatcount), 70);
if (context.flags.z()) goto killryan;
context._cmp(context.data.byte(kLastweapon), 8);
if (!context.flags.z()) goto nomadspeak;
- context.data.byte(kCombatcount) = 70;
+ context.data.byte(kCombatcount) = 72;
context.data.byte(kLastweapon) = -1;
context.data.byte(kMadmanflag) = 1;
context.ax = 67;
@@ -2099,14 +2107,12 @@ ryansded:
void madmantext(Context & context) {
uint stack_depth = context.stack.size();
- context._cmp(context.data.byte(kCombatcount), 61);
+ context._cmp(context.data.byte(kSpeechcount), 63);
if (!context.flags.c()) goto nomadtext;
- context.al = context.data.byte(kCombatcount);
- context._and(context.al, 3);
+ context._cmp(context.data.byte(kCh1playing), 255);
if (!context.flags.z()) goto nomadtext;
- context.al = context.data.byte(kCombatcount);
- context._shr(context.al, 1);
- context._shr(context.al, 1);
+ context.al = context.data.byte(kSpeechcount);
+ context._inc(context.data.byte(kSpeechcount));
context._add(context.al, 47);
context.bl = 72;
context.bh = 80;
@@ -2122,9 +2128,9 @@ void madmode(Context & context) {
uint stack_depth = context.stack.size();
context.data.word(kWatchingtime) = 2;
context.data.byte(kPointermode) = 0;
- context._cmp(context.data.byte(kCombatcount), 63);
+ context._cmp(context.data.byte(kCombatcount), 65);
if (context.flags.c()) goto iswatchmad;
- context._cmp(context.data.byte(kCombatcount), 68);
+ context._cmp(context.data.byte(kCombatcount), 70);
if (!context.flags.c()) goto iswatchmad;
context.data.byte(kPointermode) = 2;
iswatchmad:
@@ -2162,7 +2168,7 @@ void textforend(Context & context) {
context.cx = 60;
goto gotendtext;
notendtext1:
- context._cmp(context.data.byte(kIntrocount), 65);
+ context._cmp(context.data.byte(kIntrocount), 50);
if (!context.flags.z()) goto notendtext2;
context.al = 1;
context.bl = 34;
@@ -2170,7 +2176,7 @@ notendtext1:
context.cx = 60;
goto gotendtext;
notendtext2:
- context._cmp(context.data.byte(kIntrocount), 110);
+ context._cmp(context.data.byte(kIntrocount), 85);
if (!context.flags.z()) goto notendtext3;
context.al = 2;
context.bl = 34;
@@ -2220,7 +2226,7 @@ notmonktext3:
context.cx = 120;
goto gotmonktext;
notmonktext4:
- context._cmp(context.data.byte(kIntrocount), 17);
+ context._cmp(context.data.byte(kIntrocount), 15);
if (!context.flags.z()) goto notmonktext5;
context.al = 23;
context.bl = 68;
@@ -2284,7 +2290,7 @@ notmonktext11:
context.cx = 120;
goto gotmonktext;
notmonktext12:
- context._cmp(context.data.byte(kIntrocount), 49);
+ context._cmp(context.data.byte(kIntrocount), 52);
if (!context.flags.z()) goto notmonktext13;
context.al = 31;
context.bl = 68;
@@ -2295,11 +2301,17 @@ notmonktext13:
context._cmp(context.data.byte(kIntrocount), 53);
if (!context.flags.z()) goto notendtitles;
fadescreendowns(context);
+ context.data.byte(kVolumeto) = 7;
+ context.data.byte(kVolumedirection) = 1;
notendtitles:
{assert(stack_depth == context.stack.size()); return; }
gotmonktext:
context.dx = 1;
context.ah = 82;
+ context._cmp(context.data.byte(kCh1playing), 255);
+ if (context.flags.z()) goto oktalk;
+ context._dec(context.data.byte(kIntrocount));
+ {assert(stack_depth == context.stack.size()); return; }
oktalk:
setuptimedtemp(context);
{assert(stack_depth == context.stack.size()); return; }
@@ -2845,7 +2857,7 @@ continuewalk:
context.push(context.bx);
context.dx = context.data;
context.es = context.dx;
- context.bx = 8141;
+ context.bx = 8173;
context._add(context.bx, context.ax);
context.ax = context.es.word(context.bx);
context.bx = context.pop();
@@ -5704,7 +5716,7 @@ void monkspeaking(Context & context) {
worktoscreen(context);
context.data.byte(kVolume) = 7;
context.data.byte(kVolumedirection) = -1;
- context.data.byte(kVolumeto) = 0;
+ context.data.byte(kVolumeto) = 5;
context.al = 12;
context.ah = 255;
playchannel0(context);
@@ -5712,37 +5724,22 @@ void monkspeaking(Context & context) {
context.cx = 300;
hangon(context);
context.al = 40;
-nextmonkspeak:
+loadspeech2:
context.push(context.ax);
+ context.dl = 'T';
+ context.dh = 83;
+ context.cl = 'T';
context.ah = 0;
- context.si = context.ax;
- context._add(context.si, context.si);
- context.es = context.data.word(kTextfile1);
- context.ax = context.es.word(context.si);
- context._add(context.ax, (66*2));
- context.si = context.ax;
-nextbit:
- context.di = 36;
- context.bx = 140;
- context.dl = 239;
- printdirect(context);
- context.push(context.ax);
- context.push(context.si);
- context.push(context.es);
- worktoscreen(context);
- clearwork(context);
- showmonk(context);
- context.cx = 240;
- hangon(context);
- context.es = context.pop();
- context.si = context.pop();
- context.ax = context.pop();
- context._cmp(context.al, 0);
- if (!context.flags.z()) goto nextbit;
+ loadspeech(context);
+ context.al = 50+12;
+ playchannel1(context);
+notloadspeech2:
+ context._cmp(context.data.byte(kCh1playing), 255);
+ if (!context.flags.z()) goto notloadspeech2;
context.ax = context.pop();
context._inc(context.al);
- context._cmp(context.al, 44);
- if (!context.flags.z()) goto nextmonkspeak;
+ context._cmp(context.al, 48);
+ if (!context.flags.z()) goto loadspeech2;
context.data.byte(kVolumedirection) = 1;
context.data.byte(kVolumeto) = 7;
fadescreendowns(context);
@@ -5831,7 +5828,7 @@ void intro(Context & context) {
loadintroroom(context);
context.data.byte(kVolume) = 7;
context.data.byte(kVolumedirection) = -1;
- context.data.byte(kVolumeto) = 0;
+ context.data.byte(kVolumeto) = 4;
context.al = 12;
context.ah = 255;
playchannel0(context);
@@ -9569,6 +9566,22 @@ void starttalk(Context & context) {
context.al = 0;
context.ah = 0;
printdirect(context);
+ context.data.byte(kSpeechloaded) = 0;
+ context.al = context.data.byte(kCharacter);
+ context._and(context.al, 127);
+ context.ah = 0;
+ context.cx = 64;
+ context._mul(context.cx);
+ context.cl = 'C';
+ context.dl = 'R';
+ context.dh = context.data.byte(kReallocation);
+ loadspeech(context);
+ context._cmp(context.data.byte(kSpeechloaded), 1);
+ if (!context.flags.z()) goto nospeech1;
+ context.data.byte(kVolumedirection) = 1;
+ context.data.byte(kVolumeto) = 6;
+ context.al = 50+12;
+ playchannel1(context);
nospeech1:
{assert(stack_depth == context.stack.size()); return; }
}
@@ -9621,7 +9634,7 @@ notsecondpart:
void dosometalk(Context & context) {
uint stack_depth = context.stack.size();
-watchtalk:
+dospeech:
context.al = context.data.byte(kTalkpos);
context.al = context.data.byte(kCharacter);
context._and(context.al, 127);
@@ -9641,7 +9654,7 @@ watchtalk:
context._add(context.ax, context.cx);
context.si = context.ax;
context._cmp(context.es.byte(context.si), 0);
- if (context.flags.z()) goto endwatchtalk;
+ if (context.flags.z()) goto endheartalk;
context.push(context.es);
context.push(context.si);
createpanel(context);
@@ -9657,6 +9670,23 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
+ context.al = context.data.byte(kCharacter);
+ context._and(context.al, 127);
+ context.ah = 0;
+ context.cx = 64;
+ context._mul(context.cx);
+ context.cl = context.data.byte(kTalkpos);
+ context.ch = 0;
+ context._add(context.ax, context.cx);
+ context.cl = 'C';
+ context.dl = 'R';
+ context.dh = context.data.byte(kReallocation);
+ loadspeech(context);
+ context._cmp(context.data.byte(kSpeechloaded), 0);
+ if (context.flags.z()) goto noplay1;
+ context.al = 62;
+ playchannel1(context);
+noplay1:
context.data.byte(kPointermode) = 3;
worktoscreenm(context);
context.cx = 180;
@@ -9681,11 +9711,11 @@ watchtalk:
context._add(context.ax, context.cx);
context.si = context.ax;
context._cmp(context.es.byte(context.si), 0);
- if (context.flags.z()) goto endwatchtalk;
+ if (context.flags.z()) goto endheartalk;
context._cmp(context.es.byte(context.si), ':');
- if (context.flags.z()) goto skiptalk;
+ if (context.flags.z()) goto skiptalk2;
context._cmp(context.es.byte(context.si), 32);
- if (context.flags.z()) goto skiptalk;
+ if (context.flags.z()) goto skiptalk2;
context.push(context.es);
context.push(context.si);
createpanel(context);
@@ -9701,14 +9731,31 @@ watchtalk:
context.al = 0;
context.ah = 0;
printdirect(context);
+ context.al = context.data.byte(kCharacter);
+ context._and(context.al, 127);
+ context.ah = 0;
+ context.cx = 64;
+ context._mul(context.cx);
+ context.cl = context.data.byte(kTalkpos);
+ context.ch = 0;
+ context._add(context.ax, context.cx);
+ context.cl = 'C';
+ context.dl = 'R';
+ context.dh = context.data.byte(kReallocation);
+ loadspeech(context);
+ context._cmp(context.data.byte(kSpeechloaded), 0);
+ if (context.flags.z()) goto noplay2;
+ context.al = 62;
+ playchannel1(context);
+noplay2:
context.data.byte(kPointermode) = 3;
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
-skiptalk:
+skiptalk2:
context._inc(context.data.byte(kTalkpos));
- goto watchtalk;
-endwatchtalk:
+ goto dospeech;
+endheartalk:
context.data.byte(kPointermode) = 0;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10022,14 +10069,14 @@ void getdestinfo(Context & context) {
context.push(context.ax);
context.dx = context.data;
context.es = context.dx;
- context.si = 7979;
+ context.si = 8011;
context._add(context.si, context.ax);
context.cl = context.es.byte(context.si);
context.ax = context.pop();
context.push(context.cx);
context.dx = context.data;
context.es = context.dx;
- context.si = 7995;
+ context.si = 8027;
context._add(context.si, context.ax);
context.ax = context.pop();
{assert(stack_depth == context.stack.size()); return; }
@@ -10162,7 +10209,7 @@ void getlocation(Context & context) {
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 7979);
+ context._add(context.bx, 8011);
context.al = context.es.byte(context.bx);
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10173,7 +10220,7 @@ void setlocation(Context & context) {
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 7979);
+ context._add(context.bx, 8011);
context.es.byte(context.bx) = 1;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10221,7 +10268,7 @@ clearedlocations:
context.bx = context.ax;
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 7979);
+ context._add(context.bx, 8011);
context.es.byte(context.bx) = 0;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -10623,7 +10670,7 @@ void locklightoff(Context & context) {
void input(Context & context) {
uint stack_depth = context.stack.size();
context.es = context.cs;
- context.di = 8013;
+ context.di = 8045;
context.cx = 64;
context.al = 0;
while(context.cx--) context._stosb();
@@ -10672,7 +10719,7 @@ notleadingspace:
context.es = context.cs;
context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
- context._add(context.si, 8013);
+ context._add(context.si, 8045);
context.es.byte(context.si) = context.al;
context._cmp(context.al, 'Z'+1);
if (!context.flags.c()) goto waitkey;
@@ -10725,7 +10772,7 @@ void delchar(Context & context) {
context.si = context.data.word(kCurpos);
context._add(context.si, context.si);
context.es = context.cs;
- context._add(context.si, 8013);
+ context._add(context.si, 8045);
context.es.byte(context.si) = 0;
context.al = context.es.byte(context.si+1);
context.ah = 0;
@@ -10753,7 +10800,7 @@ void execcommand(Context & context) {
context.es = context.cs;
context.bx = 2776;
context.ds = context.cs;
- context.si = 8013;
+ context.si = 8045;
context.al = context.ds.byte(context.si);
context._cmp(context.al, 0);
if (!context.flags.z()) goto notblankinp;
@@ -10943,7 +10990,7 @@ notyetassigned:
context.push(context.bx);
context._add(context.bx, 2);
context.ds = context.cs;
- context.si = 8013;
+ context.si = 8045;
checkpass:
context._lodsw();
context.ah = context.es.byte(context.bx);
@@ -11251,7 +11298,7 @@ void parser(Context & context) {
context.al = '=';
context._stosb();
context.ds = context.cs;
- context.si = 8013;
+ context.si = 8045;
notspace1:
context._lodsw();
context._cmp(context.al, 32);
@@ -12551,7 +12598,7 @@ void isitright(Context & context) {
uint stack_depth = context.stack.size();
context.bx = context.data;
context.es = context.bx;
- context.bx = 8541;
+ context.bx = 8573;
context._cmp(context.es.byte(context.bx+0), context.al);
if (!context.flags.z()) goto notright;
context._cmp(context.es.byte(context.bx+1), context.ah);
@@ -14111,6 +14158,19 @@ cantsetup:
void setuptimedtemp(Context & context) {
uint stack_depth = context.stack.size();
+ context._cmp(context.ah, 0);
+ if (context.flags.z()) goto notloadspeech3;
+ context.dl = 'T';
+ context.dh = context.ah;
+ context.cl = 'T';
+ context.ah = 0;
+ loadspeech(context);
+ context._cmp(context.data.byte(kSpeechloaded), 1);
+ if (!context.flags.z()) goto notloadspeech3;
+ context.al = 50+12;
+ playchannel1(context);
+ {assert(stack_depth == context.stack.size()); return; }
+notloadspeech3:
context._cmp(context.data.word(kTimecount), 0);
if (!context.flags.z()) goto cantsetup2;
context.data.byte(kTimedy) = context.bh;
@@ -14673,7 +14733,7 @@ not10:
context.bx = context.data.word(kPresspointer);
context.dx = context.data;
context.es = context.dx;
- context._add(context.bx, 8541);
+ context._add(context.bx, 8573);
context.es.byte(context.bx) = context.al;
context._inc(context.data.word(kPresspointer));
nomorekeys:
@@ -16242,7 +16302,7 @@ loadops:
getridoftemp(context);
context.dx = context.data;
context.es = context.dx;
- context.bx = 7947;
+ context.bx = 7979;
startloading(context);
loadroomssample(context);
context.data.byte(kRoomloaded) = 1;
@@ -16375,7 +16435,7 @@ alreadyactsave:
if (context.flags.z()) goto noactsave;
context.dx = context.data;
context.ds = context.dx;
- context.si = 8547;
+ context.si = 8579;
context.al = context.data.byte(kCurrentslot);
context.ah = 0;
context.cx = 17;
@@ -16389,9 +16449,9 @@ alreadyactsave:
context.cx = 32;
context._mul(context.cx);
context.ds = context.cs;
- context.si = 6155;
+ context.si = 6187;
context._add(context.si, context.ax);
- context.di = 7947;
+ context.di = 7979;
context.bx = context.di;
context.es = context.cs;
context.cx = 16;
@@ -16438,7 +16498,7 @@ alreadyactload:
if (!context.flags.z()) goto notactload;
context.dx = context.data;
context.ds = context.dx;
- context.si = 8547;
+ context.si = 8579;
context.al = context.data.byte(kCurrentslot);
context.ah = 0;
context.cx = 17;
@@ -16515,7 +16575,7 @@ void getnamepos(Context & context) {
context._mul(context.cx);
context.dx = context.data;
context.es = context.dx;
- context.bx = 8547;
+ context.bx = 8579;
context._add(context.bx, context.ax);
context.al = context.data.byte(kCursorpos);
context.ah = 0;
@@ -16669,7 +16729,7 @@ void shownames(Context & context) {
uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
- context.si = 8547+1;
+ context.si = 8579+1;
context.di = (60)+21;
context.bx = (52)+10;
context.cl = 0;
@@ -16735,7 +16795,7 @@ afterprintname:
void namestoold(Context & context) {
uint stack_depth = context.stack.size();
context.ds = context.cs;
- context.si = 8547;
+ context.si = 8579;
context.di = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.es = context.data.word(kBuffers);
context.cx = 17*4;
@@ -16746,7 +16806,7 @@ void namestoold(Context & context) {
void oldtonames(Context & context) {
uint stack_depth = context.stack.size();
context.es = context.cs;
- context.di = 8547;
+ context.di = 8579;
context.si = (0+(180*10)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
context.ds = context.data.word(kBuffers);
context.cx = 17*4;
@@ -16764,23 +16824,23 @@ void saveposition(Context & context) {
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8666;
+ context.dx = 8698;
context._add(context.dx, context.ax);
openforsave(context);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 6059;
- context.cx = (6155-6059);
+ context.dx = 6091;
+ context.cx = (6187-6091);
savefilewrite(context);
context.dx = context.data;
context.es = context.dx;
- context.di = 6109;
+ context.di = 6141;
context.ax = context.pop();
context.cx = 17;
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8547;
+ context.dx = 8579;
context._add(context.dx, context.ax);
saveseg(context);
context.dx = context.data;
@@ -16795,7 +16855,7 @@ void saveposition(Context & context) {
saveseg(context);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 7947;
+ context.dx = 7979;
saveseg(context);
context.dx = context.data;
context.ds = context.dx;
@@ -16817,21 +16877,21 @@ void loadposition(Context & context) {
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8666;
+ context.dx = 8698;
context._add(context.dx, context.ax);
- openfile(context);
+ openfilefromc(context);
context.ds = context.cs;
- context.dx = 6059;
- context.cx = (6155-6059);
+ context.dx = 6091;
+ context.cx = (6187-6091);
savefileread(context);
context.es = context.cs;
- context.di = 6109;
+ context.di = 6141;
context.ax = context.pop();
context.cx = 17;
context._mul(context.cx);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8547;
+ context.dx = 8579;
context._add(context.dx, context.ax);
loadseg(context);
context.dx = context.data;
@@ -16846,7 +16906,7 @@ void loadposition(Context & context) {
loadseg(context);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 7947;
+ context.dx = 7979;
loadseg(context);
context.ds = context.cs;
context.dx = 534;
@@ -16859,7 +16919,7 @@ void makeheader(Context & context) {
uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
- context.di = 6109;
+ context.di = 6141;
context.ax = 17;
storeit(context);
context.ax = (68-0);
@@ -16904,10 +16964,10 @@ void scanfornames(Context & context) {
uint stack_depth = context.stack.size();
context.dx = context.data;
context.es = context.dx;
- context.di = 8547;
+ context.di = 8579;
context.dx = context.data;
context.ds = context.dx;
- context.dx = 8666;
+ context.dx = 8698;
context.cx = 7;
scanloop:
context.push(context.es);
@@ -16915,7 +16975,7 @@ scanloop:
context.push(context.di);
context.push(context.dx);
context.push(context.cx);
- openfilenocheck(context);
+ openfilefromc(context);
if (context.flags.c()) goto notexist;
context.cx = context.pop();
context._inc(context.ch);
@@ -16924,12 +16984,12 @@ scanloop:
context.push(context.es);
context.dx = context.data;
context.ds = context.dx;
- context.dx = 6059;
- context.cx = (6155-6059);
+ context.dx = 6091;
+ context.cx = (6187-6091);
savefileread(context);
context.dx = context.data;
context.es = context.dx;
- context.di = 6109;
+ context.di = 6141;
context.ds = context.pop();
context.dx = context.pop();
loadseg(context);
@@ -17045,7 +17105,7 @@ loadops:
getridoftemp(context);
context.dx = context.data;
context.es = context.dx;
- context.bx = 7947;
+ context.bx = 7979;
startloading(context);
loadroomssample(context);
context.data.byte(kRoomloaded) = 1;
@@ -17811,7 +17871,7 @@ void clearchanges(Context & context) {
context.di = 0;
while(context.cx--) context._stosw();
context.es = context.cs;
- context.di = 7979;
+ context.di = 8011;
context.al = 1;
context._stosb();
context._stosb();
@@ -18983,6 +19043,18 @@ notweb:
if (!context.flags.z()) goto notlouisvol;
context.data.byte(kVolume) = 5;
notlouisvol:
+ context._cmp(context.data.byte(kReallocation), 14);
+ if (!context.flags.z()) goto notmad1;
+ context._cmp(context.data.byte(kMapx), 33);
+ if (context.flags.z()) goto ismad2;
+ context._cmp(context.data.byte(kMapx), 22);
+ if (!context.flags.z()) goto notmad1;
+ context.data.byte(kVolume) = 5;
+ {assert(stack_depth == context.stack.size()); return; }
+ismad2:
+ context.data.byte(kVolume) = 0;
+ {assert(stack_depth == context.stack.size()); return; }
+notmad1:
playingalready:
context._cmp(context.data.byte(kReallocation), 2);
if (!context.flags.z()) goto notlouisvol2;
@@ -19490,7 +19562,7 @@ void bresenhams(Context & context) {
workoutframes(context);
context.dx = context.data;
context.es = context.dx;
- context.di = 8141;
+ context.di = 8173;
context.si = 1;
context.data.byte(kLinedirection) = 0;
context.cx = context.data.word(kLineendx);
@@ -19592,7 +19664,7 @@ line23:
context._inc(context.al);
if (--context.cx) goto hiloop;
lineexit:
- context._sub(context.di, 8141);
+ context._sub(context.di, 8173);
context.ax = context.di;
context._shr(context.ax, 1);
context.data.byte(kLinelength) = context.al;
@@ -21132,7 +21204,7 @@ void getroomdata(Context & context) {
context.ah = 0;
context.cx = 32;
context._mul(context.cx);
- context.bx = 6155;
+ context.bx = 6187;
context._add(context.bx, context.ax);
{assert(stack_depth == context.stack.size()); return; }
}
@@ -21140,11 +21212,11 @@ void getroomdata(Context & context) {
void readheader(Context & context) {
uint stack_depth = context.stack.size();
context.ds = context.cs;
- context.dx = 6059;
- context.cx = (6155-6059);
+ context.dx = 6091;
+ context.cx = (6187-6091);
readfromfile(context);
context.es = context.cs;
- context.di = 6109;
+ context.di = 6141;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -21256,6 +21328,21 @@ novolumeload:
{assert(stack_depth == context.stack.size()); return; }
}
+void makename(Context & context) {
+ uint stack_depth = context.stack.size();
+ context.si = context.dx;
+ context.di = 6061;
+transfer:
+ context.al = context.cs.byte(context.si);
+ context.cs.byte(context.di) = context.al;
+ context._inc(context.si);
+ context._inc(context.di);
+ context._cmp(context.al, 0);
+ if (!context.flags.z()) goto transfer;
+ context.dx = 6059;
+ {assert(stack_depth == context.stack.size()); return; }
+}
+
void dreamweb(Context & context) {
uint stack_depth = context.stack.size();
seecommandtail(context);
@@ -21749,6 +21836,8 @@ void __start(Context &context) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x3a, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d,
0x57, 0x45, 0x42, 0x20, 0x44, 0x41, 0x54, 0x41, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x20, 0x43, 0x4f,
0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x31, 0x39, 0x39, 0x32, 0x20, 0x43, 0x52, 0x45,
@@ -22674,16 +22763,18 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xcb88: readsetdata(context); break;
case 0xcb8c: createfile(context); break;
case 0xcb90: openfile(context); break;
- case 0xcb94: openfilenocheck(context); break;
- case 0xcb98: openforsave(context); break;
- case 0xcb9c: closefile(context); break;
- case 0xcba0: readfromfile(context); break;
- case 0xcba4: setkeyboardint(context); break;
- case 0xcba8: resetkeyboard(context); break;
- case 0xcbac: keyboardread(context); break;
- case 0xcbb0: walkandexamine(context); break;
- case 0xcbb4: doload(context); break;
- case 0xcbb8: generalerror(context); break;
+ case 0xcb94: openfilefromc(context); break;
+ case 0xcb98: makename(context); break;
+ case 0xcb9c: openfilenocheck(context); break;
+ case 0xcba0: openforsave(context); break;
+ case 0xcba4: closefile(context); break;
+ case 0xcba8: readfromfile(context); break;
+ case 0xcbac: setkeyboardint(context); break;
+ case 0xcbb0: resetkeyboard(context); break;
+ case 0xcbb4: keyboardread(context); break;
+ case 0xcbb8: walkandexamine(context); break;
+ case 0xcbbc: doload(context); break;
+ case 0xcbc0: generalerror(context); break;
default: ::error("invalid call to %04x dispatched", (uint16)context.ax);
}
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index f97099d..a09fb7b 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -26,6 +26,7 @@ namespace dreamgen {
void closefile(Context &context);
void openforsave(Context &context);
void openfilenocheck(Context &context);
+ void openfilefromc(Context &context);
void openfile(Context &context);
void createfile(Context &context);
void dontloadseg(Context &context);
@@ -533,21 +534,21 @@ namespace dreamgen {
const static uint16 kPalettescreen = 2481;
const static uint16 kCurrentfile = 2970;
const static uint16 kDmaaddresses = 5118;
- const static uint16 kFileheader = 6059;
- const static uint16 kFiledata = 6109;
- const static uint16 kExtradata = 6149;
- const static uint16 kRoomdata = 6155;
- const static uint16 kMadeuproomdat = 7947;
- const static uint16 kRoomscango = 7979;
- const static uint16 kRoompics = 7995;
- const static uint16 kOplist = 8010;
- const static uint16 kInputline = 8013;
- const static uint16 kLinedata = 8141;
- const static uint16 kPresslist = 8541;
- const static uint16 kSavenames = 8547;
- const static uint16 kSavefiles = 8666;
- const static uint16 kRecname = 8757;
- const static uint16 kStak = 8770;
+ const static uint16 kFileheader = 6091;
+ const static uint16 kFiledata = 6141;
+ const static uint16 kExtradata = 6181;
+ const static uint16 kRoomdata = 6187;
+ const static uint16 kMadeuproomdat = 7979;
+ const static uint16 kRoomscango = 8011;
+ const static uint16 kRoompics = 8027;
+ const static uint16 kOplist = 8042;
+ const static uint16 kInputline = 8045;
+ const static uint16 kLinedata = 8173;
+ const static uint16 kPresslist = 8573;
+ const static uint16 kSavenames = 8579;
+ const static uint16 kSavefiles = 8698;
+ const static uint16 kRecname = 8789;
+ const static uint16 kStak = 8802;
const static uint16 kBlocktextdat = (0);
const static uint16 kPersonframes = (0);
const static uint16 kDebuglevel1 = (0);
@@ -565,7 +566,6 @@ namespace dreamgen {
const static uint16 kPathdata = (0);
const static uint16 kDemo = (0);
const static uint16 kExframedata = (0);
- const static uint16 kCd = (0);
const static uint16 kIntextdat = (0);
const static uint16 kFreetextdat = (0);
const static uint16 kFrframedata = (0);
@@ -606,6 +606,7 @@ namespace dreamgen {
const static uint16 kPersontxtdat = (0+24);
const static uint16 kPersontext = (0+24+(1026*2));
const static uint16 kInputport = (0x63);
+ const static uint16 kCd = (1);
const static uint16 kUndertextsizey = (10);
const static uint16 kNumexobjects = (114);
const static uint16 kZoomy = (132);
@@ -627,7 +628,7 @@ namespace dreamgen {
const static uint16 kMenuy = (60);
const static uint16 kOpsx = (60);
const static uint16 kMaplength = (60);
- const static uint16 kHeaderlen = (6155-6059);
+ const static uint16 kHeaderlen = (6187-6091);
const static uint16 kSymbolx = (64);
const static uint16 kSetdatlen = (64*128);
const static uint16 kMapwidth = (66);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 2daf905..fc8753f 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -380,30 +380,45 @@ void DreamWebEngine::cls() {
}
void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
+ debug(1, "playSound(%u, %u, %u)", channel, id, loops);
const SoundData &data = _soundData[id >= 12? 1: 0];
Audio::Mixer::SoundType type;
+ bool speech = id == 62; //actually 50
if (id >= 12) {
id -= 12;
type = Audio::Mixer::kSFXSoundType;
- } else
+ } else if (speech)
+ type = Audio::Mixer::kSpeechSoundType;
+ else
type = Audio::Mixer::kMusicSoundType;
- if (id >= data.samples.size()) {
- warning("invalid sample #%u played", id);
- return;
- }
-
- const Sample &sample = data.samples[id];
-
- uint8 *buffer = (uint8 *)malloc(sample.size);
- if (!buffer)
- error("out of memory: cannot allocate memory for sound(%u bytes)", sample.size);
- memcpy(buffer, data.data.begin() + sample.offset, sample.size);
+ Audio::SeekableAudioStream *raw;
+ if (!speech) {
+ if (id >= data.samples.size() || data.samples[id].size == 0) {
+ warning("invalid sample #%u played", id);
+ return;
+ }
- Audio::SeekableAudioStream *raw = Audio::makeRawStream(
- buffer,
- sample.size, 22050, Audio::FLAG_UNSIGNED);
+ const Sample &sample = data.samples[id];
+ uint8 *buffer = (uint8 *)malloc(sample.size);
+ if (!buffer)
+ error("out of memory: cannot allocate memory for sound(%u bytes)", sample.size);
+ memcpy(buffer, data.data.begin() + sample.offset, sample.size);
+
+ raw = Audio::makeRawStream(
+ buffer,
+ sample.size, 22050, Audio::FLAG_UNSIGNED);
+ } else {
+ uint8 *buffer = (uint8 *)malloc(_speechData.size());
+ memcpy(buffer, _speechData.begin(), _speechData.size());
+ if (!buffer)
+ error("out of memory: cannot allocate memory for sound(%u bytes)", _speechData.size());
+ raw = Audio::makeRawStream(
+ buffer,
+ _speechData.size(), 22050, Audio::FLAG_UNSIGNED);
+
+ }
Audio::AudioStream *stream;
if (loops > 1) {
@@ -416,6 +431,21 @@ void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
_mixer->playStream(type, &_channelHandle[channel], stream);
}
+bool DreamWebEngine::playSpeech(const Common::String &filename) {
+ debug(1, "playSpeech(%s)", filename.c_str());
+ Common::File file;
+ if (!file.open("speech/" + filename))
+ return false;
+
+ debug(1, "\tfound speech file");
+ uint size = file.size();
+ _speechData.resize(size);
+ file.read(_speechData.begin(), size);
+ file.close();
+ return true;
+}
+
+
void DreamWebEngine::soundHandler() {
//uint8 volume = _context.data.byte(dreamgen::kVolume);
uint8 ch0 = _context.data.byte(dreamgen::kCh0playing);
@@ -429,16 +459,12 @@ void DreamWebEngine::soundHandler() {
if (_channel0 != ch0) {
_channel0 = ch0;
if (ch0) {
- //Audio::AudioStream *stream = LoopingAudioStream(Audio::makeRawStream(data, size, 22050, 0), ch0loops);
- //_mixer->playStream(Audio::Mixer::kMusicType, &_musicHandle, stream); //dispose is YES by default
- debug(1, "playing sound %u at channel 0, loop: %u", ch0, ch0loop);
playSound(0, ch0, ch0loop);
}
}
if (_channel1 != ch1) {
_channel1 = ch1;
if (ch1) {
- debug(1, "playing sound %u at channel 1", ch1);
playSound(1, ch1, 1);
}
}
@@ -632,6 +658,10 @@ void openfilenocheck(Context &context) {
context.flags._c = !ok;
}
+void openfilefromc(Context &context) {
+ openfile(context);
+}
+
void openfile(Context &context) {
Common::String name = getFilename(context);
debug(1, "opening file: %s", name.c_str());
@@ -797,7 +827,6 @@ void loadsample(Context &context) {
void cancelch0(Context &context);
void cancelch1(Context &context);
-
void loadsecondsample(Context &context) {
uint8 ch0 = context.data.byte(kCh0playing);
if (ch0 >= 12 && ch0 != 255)
@@ -808,8 +837,16 @@ void loadsecondsample(Context &context) {
context.engine->loadSounds(1, (const char *)context.data.ptr(context.dx, 13));
}
+void createname(Context &context);
+
void loadspeech(Context &context) {
- ::error("loadspeech");
+ cancelch1(context);
+ context.data.byte(kSpeechloaded) = 0;
+ createname(context);
+ const char *name = (const char *)context.data.ptr(context.di, 13);
+ //warning("name = %s", name);
+ if (context.engine->playSpeech(name))
+ context.data.byte(kSpeechloaded) = 1;
}
void saveseg(Context &context) {
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 447aff9..0645fba 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -104,6 +104,7 @@ public:
void quit();
void loadSounds(uint bank, const Common::String &file);
+ bool playSpeech(const Common::String &filename);
private:
void keyPressed(uint16 ascii);
@@ -124,6 +125,7 @@ private:
struct Sample {
uint offset;
uint size;
+ Sample(): offset(), size() {}
};
struct SoundData {
@@ -131,6 +133,7 @@ private:
Common::Array<uint8> data;
};
SoundData _soundData[2];
+ Common::Array<uint8> _speechData;
Audio::SoundHandle _channelHandle[2];
uint8 _channel0, _channel1;
Commit: 074436985f8c706915c567e31362f0dbb4026008
https://github.com/scummvm/scummvm/commit/074436985f8c706915c567e31362f0dbb4026008
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:57-07:00
Commit Message:
DREAMWEB: renamed playSpeech to loadSpeech
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fc8753f..cf8205c 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -431,8 +431,8 @@ void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
_mixer->playStream(type, &_channelHandle[channel], stream);
}
-bool DreamWebEngine::playSpeech(const Common::String &filename) {
- debug(1, "playSpeech(%s)", filename.c_str());
+bool DreamWebEngine::loadSpeech(const Common::String &filename) {
+ debug(1, "loadSpeech(%s)", filename.c_str());
Common::File file;
if (!file.open("speech/" + filename))
return false;
@@ -845,7 +845,7 @@ void loadspeech(Context &context) {
createname(context);
const char *name = (const char *)context.data.ptr(context.di, 13);
//warning("name = %s", name);
- if (context.engine->playSpeech(name))
+ if (context.engine->loadSpeech(name))
context.data.byte(kSpeechloaded) = 1;
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 0645fba..f683fca 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -104,7 +104,7 @@ public:
void quit();
void loadSounds(uint bank, const Common::String &file);
- bool playSpeech(const Common::String &filename);
+ bool loadSpeech(const Common::String &filename);
private:
void keyPressed(uint16 ascii);
Commit: 25824b20edf81a52a0648fc55d64d6f5973af2c6
https://github.com/scummvm/scummvm/commit/25824b20edf81a52a0648fc55d64d6f5973af2c6
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:57-07:00
Commit Message:
DREAMWEB: added sound status check
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index cf8205c..5ec60b4 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -432,12 +432,12 @@ void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
}
bool DreamWebEngine::loadSpeech(const Common::String &filename) {
- debug(1, "loadSpeech(%s)", filename.c_str());
Common::File file;
if (!file.open("speech/" + filename))
return false;
- debug(1, "\tfound speech file");
+ debug(1, "loadSpeech(%s)", filename.c_str());
+
uint size = file.size();
_speechData.resize(size);
file.read(_speechData.begin(), size);
@@ -468,6 +468,10 @@ void DreamWebEngine::soundHandler() {
playSound(1, ch1, 1);
}
}
+ if (!_mixer->isSoundHandleActive(_channelHandle[0]))
+ _context.data.byte(dreamgen::kCh0playing) = 255;
+ if (!_mixer->isSoundHandleActive(_channelHandle[1]))
+ _context.data.byte(dreamgen::kCh1playing) = 255;
}
void DreamWebEngine::loadSounds(uint bank, const Common::String &filename) {
Commit: 84745add6e92d33949e71e53f253fea5c5ce4a0a
https://github.com/scummvm/scummvm/commit/84745add6e92d33949e71e53f253fea5c5ce4a0a
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:58-07:00
Commit Message:
DREAMWEB: added volume support (stubs for now)
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 5ec60b4..8a144b2 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -47,6 +47,7 @@
namespace dreamgen {
void doshake(dreamgen::Context &context);
void dofade(dreamgen::Context &context);
+ void volumeadjust(dreamgen::Context &context);
}
namespace DreamWeb {
@@ -447,7 +448,13 @@ bool DreamWebEngine::loadSpeech(const Common::String &filename) {
void DreamWebEngine::soundHandler() {
- //uint8 volume = _context.data.byte(dreamgen::kVolume);
+ _context.push(_context.ax);
+ volumeadjust(_context);
+ _context.ax = _context.pop();
+
+ uint8 volume = _context.data.byte(dreamgen::kVolume);
+ //if (volume)
+ // debug(1, "volume = %u", volume);
uint8 ch0 = _context.data.byte(dreamgen::kCh0playing);
if (ch0 == 255)
ch0 = 0;
Commit: dca78aa964f3ddce337f218c649219753eafc513
https://github.com/scummvm/scummvm/commit/dca78aa964f3ddce337f218c649219753eafc513
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:58-07:00
Commit Message:
DREAMWEB: fixed cd-version without savefiles
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 8a144b2..1e4558e 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -670,7 +670,7 @@ void openfilenocheck(Context &context) {
}
void openfilefromc(Context &context) {
- openfile(context);
+ openfilenocheck(context);
}
void openfile(Context &context) {
Commit: 9008f2c4426a65fb248e4d96e5094490fb125b45
https://github.com/scummvm/scummvm/commit/9008f2c4426a65fb248e4d96e5094490fb125b45
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:58-07:00
Commit Message:
DREAMWEB: added volume setting (maybe wrong)
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 1e4558e..fd56c2d 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -452,9 +452,10 @@ void DreamWebEngine::soundHandler() {
volumeadjust(_context);
_context.ax = _context.pop();
- uint8 volume = _context.data.byte(dreamgen::kVolume);
- //if (volume)
- // debug(1, "volume = %u", volume);
+ uint volume = _context.data.byte(dreamgen::kVolume);
+ volume = (8 - volume) * Audio::Mixer::kMaxChannelVolume / 8;
+ _mixer->setChannelVolume(_channelHandle[0], volume);
+
uint8 ch0 = _context.data.byte(dreamgen::kCh0playing);
if (ch0 == 255)
ch0 = 0;
Commit: 8a878356383d039f225acfe330aa999322a128e0
https://github.com/scummvm/scummvm/commit/8a878356383d039f225acfe330aa999322a128e0
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:59-07:00
Commit Message:
DREAMWEB: added comment about volumes
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index fd56c2d..818c864 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -453,6 +453,16 @@ void DreamWebEngine::soundHandler() {
_context.ax = _context.pop();
uint volume = _context.data.byte(dreamgen::kVolume);
+ //.vol file loaded into soundbuf:0x4000
+ //volume table at (volume * 0x100 + 0x3f00)
+ //volume value could be from 1 to 7
+ //1 - 0x10-0xff
+ //2 - 0x1f-0xdf
+ //3 - 0x2f-0xd0
+ //4 - 0x3e-0xc1
+ //5 - 0x4d-0xb2
+ //6 - 0x5d-0xa2
+ //7 - 0x6f-0x91
volume = (8 - volume) * Audio::Mixer::kMaxChannelVolume / 8;
_mixer->setChannelVolume(_channelHandle[0], volume);
Commit: 5826ae88aee4f682d7a5b74b093e419db9b35f9f
https://github.com/scummvm/scummvm/commit/5826ae88aee4f682d7a5b74b093e419db9b35f9f
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:34:59-07:00
Commit Message:
DREAMWEB: cut upper volume limit
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 818c864..bbf25a7 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -463,6 +463,8 @@ void DreamWebEngine::soundHandler() {
//5 - 0x4d-0xb2
//6 - 0x5d-0xa2
//7 - 0x6f-0x91
+ if (volume >= 8)
+ volume = 7;
volume = (8 - volume) * Audio::Mixer::kMaxChannelVolume / 8;
_mixer->setChannelVolume(_channelHandle[0], volume);
Commit: cf942d930884be0c71f654403a15065385d61eb3
https://github.com/scummvm/scummvm/commit/cf942d930884be0c71f654403a15065385d61eb3
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:00-07:00
Commit Message:
DREAMWEB: cleanup keys handling, added turbo shortcut
Changed paths:
engines/dreamweb/dreamweb.cpp
engines/dreamweb/dreamweb.h
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index bbf25a7..ea347d1 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -69,6 +69,7 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_outSaveFile = 0;
_inSaveFile = 0;
_speed = 1;
+ _turbo = false;
_oldMouseState = 0;
_channel0 = 0;
_channel1 = 0;
@@ -94,10 +95,12 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
void DreamWebEngine::waitForVSync() {
processEvents();
- while (!_vSyncInterrupt) {
- _system->delayMillis(10);
+ if (!_turbo) {
+ while (!_vSyncInterrupt) {
+ _system->delayMillis(10);
+ }
+ setVSyncInterrupt(false);
}
- setVSyncInterrupt(false);
dreamgen::doshake(_context);
dreamgen::dofade(_context);
@@ -118,52 +121,48 @@ void DreamWebEngine::processEvents() {
soundHandler();
Common::Event event;
while (event_manager->pollEvent(event)) {
- bool keyHandled = false;
switch(event.type) {
case Common::EVENT_KEYDOWN:
- switch (event.kbd.keycode) {
- case Common::KEYCODE_d:
- if (event.kbd.flags & Common::KBD_CTRL) {
+ if (event.kbd.flags & Common::KBD_CTRL) {
+ switch (event.kbd.keycode) {
+
+ case Common::KEYCODE_d:
_console->attach();
_console->onFrame();
- keyHandled = true;
- }
- break;
- case Common::KEYCODE_f:
- if (event.kbd.flags & Common::KBD_CTRL) {
- if (_speed != 10)
- setSpeed(10);
- else
- setSpeed(1);
- keyHandled = true;
- }
- break;
- case Common::KEYCODE_c: //skip statue puzzle
- if (event.kbd.flags & Common::KBD_CTRL) {
+ break;
+
+ case Common::KEYCODE_f:
+ setSpeed(_speed != 20? 20: 1);
+ break;
+
+ case Common::KEYCODE_g:
+ _turbo = !_turbo;
+ break;
+
+ case Common::KEYCODE_c: //skip statue puzzle
_context.data.byte(dreamgen::kSymbolbotnum) = 3;
_context.data.byte(dreamgen::kSymboltopnum) = 5;
- keyHandled = true;
+ break;
+
+ default:
+ break;
}
- break;
- default:
- break;
- }
- if (!keyHandled) {
- // As far as I can see, the only keys checked
- // for in 'lasthardkey' are 1 (ESC) and 57
- // (space) so add special cases for them and
- // treat everything else as 0.
- if (event.kbd.keycode == Common::KEYCODE_ESCAPE)
- _context.data.byte(dreamgen::kLasthardkey) = 1;
- else if (event.kbd.keycode == Common::KEYCODE_SPACE)
- _context.data.byte(dreamgen::kLasthardkey) = 57;
- else
- _context.data.byte(dreamgen::kLasthardkey) = 0;
- if (event.kbd.ascii)
- keyPressed(event.kbd.ascii);
+ return; //do not pass ctrl + key to the engine
}
+ // As far as I can see, the only keys checked
+ // for in 'lasthardkey' are 1 (ESC) and 57
+ // (space) so add special cases for them and
+ // treat everything else as 0.
+ if (event.kbd.keycode == Common::KEYCODE_ESCAPE)
+ _context.data.byte(dreamgen::kLasthardkey) = 1;
+ else if (event.kbd.keycode == Common::KEYCODE_SPACE)
+ _context.data.byte(dreamgen::kLasthardkey) = 57;
+ else
+ _context.data.byte(dreamgen::kLasthardkey) = 0;
+ if (event.kbd.ascii)
+ keyPressed(event.kbd.ascii);
break;
default:
break;
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index f683fca..0f5e5bd 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -120,6 +120,7 @@ private:
Common::InSaveFile *_inSaveFile;
uint _speed;
+ bool _turbo;
uint _oldMouseState;
struct Sample {
Commit: 7d93f81aba271fea54bc739870d82d822ad5d363
https://github.com/scummvm/scummvm/commit/7d93f81aba271fea54bc739870d82d822ad5d363
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:00-07:00
Commit Message:
DREAMWEB: added detection of the cd version
Changed paths:
engines/dreamweb/detection_tables.h
diff --git a/engines/dreamweb/detection_tables.h b/engines/dreamweb/detection_tables.h
index 394236a..1062b50 100644
--- a/engines/dreamweb/detection_tables.h
+++ b/engines/dreamweb/detection_tables.h
@@ -35,14 +35,32 @@ static const DreamWebGameDescription gameDescriptions[] = {
{
"dreamweb",
"",
- AD_ENTRY1s("dreamweb.r00", "3b5c87717fc40cc5a5ae19c155662ee3", 152918),
+ {
+ {"dreamweb.r00", 0, "3b5c87717fc40cc5a5ae19c155662ee3", 152918},
+ {"dreamweb.r02", 0, "28458718167a040d7e988cf7d2298eae", 210466},
+ AD_LISTEND
+ },
Common::EN_ANY,
Common::kPlatformPC,
ADGF_NO_FLAGS,
GUIO_NONE
},
},
-
+ {
+ {
+ "dreamweb",
+ "CD",
+ {
+ {"dreamweb.r00", 0, "3b5c87717fc40cc5a5ae19c155662ee3", 152918},
+ {"dreamweb.r02", 0, "d6fe5e3590ec1eea42ff65c10b023e0f", 198681},
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_CD,
+ GUIO_NONE
+ },
+ },
{ AD_TABLE_END_MARKER }
};
Commit: f4936e6b42a8a1a0346375928e8f74605780b729
https://github.com/scummvm/scummvm/commit/f4936e6b42a8a1a0346375928e8f74605780b729
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:00-07:00
Commit Message:
DREAMWEB: implemented stc/clc, fixed preliminary exit from the dialogue
Changed paths:
devtools/tasmrecover/tasm/cpp.py
devtools/tasmrecover/tasm/op.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 9d42dd9..888f0bf 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -413,6 +413,12 @@ namespace %s {
def _movsw(self):
self.body += "\tcontext._movsw();\n ";
+ def _stc(self):
+ self.body += "\tcontext.flags._c = true;\n ";
+
+ def _clc(self):
+ self.body += "\tcontext.flags._c = false;\n ";
+
def __proc(self, name, def_skip = 0):
try:
skip = def_skip
diff --git a/devtools/tasmrecover/tasm/op.py b/devtools/tasmrecover/tasm/op.py
index c77eda2..33f79c3 100644
--- a/devtools/tasmrecover/tasm/op.py
+++ b/devtools/tasmrecover/tasm/op.py
@@ -386,6 +386,18 @@ class _nop(baseop):
def visit(self, visitor):
pass
+class _stc(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._stc()
+
+class _clc(baseop):
+ def __init__(self, arg):
+ pass
+ def visit(self, visitor):
+ visitor._clc()
+
class label(baseop):
def __init__(self, name):
self.name = name
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 187f1f9..2591c36 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9691,6 +9691,9 @@ noplay1:
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
+ if (!context.flags.c()) goto _tmp1;
+ {assert(stack_depth == context.stack.size()); return; }
+_tmp1:
context._inc(context.data.byte(kTalkpos));
context.al = context.data.byte(kTalkpos);
context.al = context.data.byte(kCharacter);
@@ -9752,6 +9755,8 @@ noplay2:
worktoscreenm(context);
context.cx = 180;
hangonpq(context);
+ if (!context.flags.c()) goto skiptalk2;
+ {assert(stack_depth == context.stack.size()); return; }
skiptalk2:
context._inc(context.data.byte(kTalkpos));
goto dospeech;
@@ -9795,13 +9800,14 @@ notspeaking:
finishconv:
delpointer(context);
context.data.byte(kPointermode) = 0;
- {assert(stack_depth == context.stack.size()); return; }
+ context.flags._c = false;
+ {assert(stack_depth == context.stack.size()); return; }
quitconv:
delpointer(context);
context.data.byte(kPointermode) = 0;
- context.ax = context.pop();
cancelch1(context);
- {assert(stack_depth == context.stack.size()); return; }
+ context.flags._c = true;
+ {assert(stack_depth == context.stack.size()); return; }
}
void redes(Context & context) {
Commit: cd4b0a8b6a389913986ac386a812e0dc16c760bd
https://github.com/scummvm/scummvm/commit/cd4b0a8b6a389913986ac386a812e0dc16c760bd
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:01-07:00
Commit Message:
DREAMWEB: cleaned up keys handling
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index ea347d1..f53b7bd 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -155,14 +155,17 @@ void DreamWebEngine::processEvents() {
// for in 'lasthardkey' are 1 (ESC) and 57
// (space) so add special cases for them and
// treat everything else as 0.
- if (event.kbd.keycode == Common::KEYCODE_ESCAPE)
+ switch(event.kbd.keycode) {
+ case Common::KEYCODE_ESCAPE:
_context.data.byte(dreamgen::kLasthardkey) = 1;
- else if (event.kbd.keycode == Common::KEYCODE_SPACE)
+ break;
+ case Common::KEYCODE_SPACE:
_context.data.byte(dreamgen::kLasthardkey) = 57;
- else
+ break;
+ default:
_context.data.byte(dreamgen::kLasthardkey) = 0;
- if (event.kbd.ascii)
- keyPressed(event.kbd.ascii);
+ break;
+ }
break;
default:
break;
Commit: cde28452f793858878fac66d20e7f9caf5f3e974
https://github.com/scummvm/scummvm/commit/cde28452f793858878fac66d20e7f9caf5f3e974
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:35:01-07:00
Commit Message:
DREAMWEB: The readabyte() function is no longer needed.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index f53b7bd..478e134 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -990,8 +990,6 @@ void readoneblock(Context &context) {
readfromfile(context);
}
-void readabyte(Context & context);
-
void showpcx(Context &context) {
Common::String name = getFilename(context);
Common::File pcxFile;
Commit: dfaa1e32b770257b43348ac042a2d7aa5a28bcfd
https://github.com/scummvm/scummvm/commit/dfaa1e32b770257b43348ac042a2d7aa5a28bcfd
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:35:02-07:00
Commit Message:
DREAMWEB: Filter out "illegal" characters
This is fairly restrictive (just like the original) so we may went
to let through a few more characters eventually. For now, let's be
conservative. It was possible to enter characters that would show
up in the save dialog as weird or underlined characters.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 478e134..789db03 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -120,6 +120,7 @@ void DreamWebEngine::processEvents() {
}
soundHandler();
Common::Event event;
+ int key = 0;
while (event_manager->pollEvent(event)) {
switch(event.type) {
case Common::EVENT_KEYDOWN:
@@ -166,6 +167,33 @@ void DreamWebEngine::processEvents() {
_context.data.byte(dreamgen::kLasthardkey) = 0;
break;
}
+
+ // This is pretty much the equivalent of convertkey(),
+ // but we can't use that one because we don't get the
+ // same key codes as input. Eventually, we may want to
+ // be a bit more permissive than the original, but for
+ // now let's be conservative.
+
+ if (event.kbd.keycode >= Common::KEYCODE_a && event.kbd.keycode <= Common::KEYCODE_z) {
+ key = event.kbd.ascii & ~0x20;
+ } else if (event.kbd.keycode == Common::KEYCODE_MINUS ||
+ event.kbd.keycode == Common::KEYCODE_SPACE ||
+ (event.kbd.keycode >= Common::KEYCODE_0 && event.kbd.keycode <= Common::KEYCODE_9)) {
+ key = event.kbd.ascii;
+ } else if (event.kbd.keycode >= Common::KEYCODE_KP0 && event.kbd.keycode <= Common::KEYCODE_KP9) {
+ key = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
+ } else if (event.kbd.keycode == Common::KEYCODE_KP_MINUS) {
+ key = '-';
+ } else if (event.kbd.keycode == Common::KEYCODE_BACKSPACE ||
+ event.kbd.keycode == Common::KEYCODE_DELETE) {
+ key = 8;
+ } else if (event.kbd.keycode == Common::KEYCODE_RETURN
+ || event.kbd.keycode == Common::KEYCODE_KP_ENTER) {
+ key = 13;
+ }
+
+ if (key)
+ keyPressed(key);
break;
default:
break;
@@ -259,8 +287,6 @@ uint DreamWebEngine::readFromSaveFile(uint8 *data, uint size) {
void DreamWebEngine::keyPressed(uint16 ascii) {
- if (ascii >= 'a' && ascii <= 'z')
- ascii = (ascii - 'a') + 'A';
debug(2, "key pressed = %04x", ascii);
uint8* keybuf = _context.data.ptr(5912, 16); //fixme: some hardcoded offsets are not added as consts
uint16 in = (_context.data.word(dreamgen::kBufferin) + 1) & 0x0f;
Commit: 9c7c46bfde46f9b6994822a9ea8db6f5b68dd607
https://github.com/scummvm/scummvm/commit/9c7c46bfde46f9b6994822a9ea8db6f5b68dd607
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:02-07:00
Commit Message:
DREAMWEB: fixed final scene, better sound channel handling
Changed paths:
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 2591c36..bcca8ae 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -5734,6 +5734,7 @@ loadspeech2:
context.al = 50+12;
playchannel1(context);
notloadspeech2:
+ vsync(context);
context._cmp(context.data.byte(kCh1playing), 255);
if (!context.flags.z()) goto notloadspeech2;
context.ax = context.pop();
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 789db03..7d035c9 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -516,10 +516,15 @@ void DreamWebEngine::soundHandler() {
playSound(1, ch1, 1);
}
}
- if (!_mixer->isSoundHandleActive(_channelHandle[0]))
+ if (!_mixer->isSoundHandleActive(_channelHandle[0])) {
_context.data.byte(dreamgen::kCh0playing) = 255;
- if (!_mixer->isSoundHandleActive(_channelHandle[1]))
+ _channel0 = 0;
+ }
+ if (!_mixer->isSoundHandleActive(_channelHandle[1])) {
_context.data.byte(dreamgen::kCh1playing) = 255;
+ _channel1 = 0;
+ }
+
}
void DreamWebEngine::loadSounds(uint bank, const Common::String &filename) {
Commit: 1cafd2de983210fec07267cbb4d261affd4a33f4
https://github.com/scummvm/scummvm/commit/1cafd2de983210fec07267cbb4d261affd4a33f4
Author: eriktorbjorn (eriktorbjorn at users.sourceforge.net)
Date: 2011-06-15T08:35:03-07:00
Commit Message:
DREAMWEB: Reinstate some "hardware key" handling that got lost
It's still not quite as the original. In the original, Ctrl-<letter>
would be treated as <letter>. Is that worth fixing? Probably not.
Changed paths:
engines/dreamweb/dreamweb.cpp
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 7d035c9..19bb6b0 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -120,7 +120,7 @@ void DreamWebEngine::processEvents() {
}
soundHandler();
Common::Event event;
- int key = 0;
+ int softKey, hardKey;
while (event_manager->pollEvent(event)) {
switch(event.type) {
case Common::EVENT_KEYDOWN:
@@ -152,48 +152,55 @@ void DreamWebEngine::processEvents() {
return; //do not pass ctrl + key to the engine
}
- // As far as I can see, the only keys checked
- // for in 'lasthardkey' are 1 (ESC) and 57
- // (space) so add special cases for them and
- // treat everything else as 0.
- switch(event.kbd.keycode) {
+ // Some parts of the ASM code uses the hardware key
+ // code directly. We don't have that code, so we fake
+ // it for the keys where it's needed and assume it's
+ // 0 (which is actually an invalid value, as far as I
+ // know) otherwise.
+
+ hardKey = 0;
+
+ switch (event.kbd.keycode) {
case Common::KEYCODE_ESCAPE:
- _context.data.byte(dreamgen::kLasthardkey) = 1;
+ hardKey = 1;
break;
case Common::KEYCODE_SPACE:
- _context.data.byte(dreamgen::kLasthardkey) = 57;
+ hardKey = 57;
break;
default:
- _context.data.byte(dreamgen::kLasthardkey) = 0;
+ hardKey = 0;
break;
}
- // This is pretty much the equivalent of convertkey(),
- // but we can't use that one because we don't get the
- // same key codes as input. Eventually, we may want to
- // be a bit more permissive than the original, but for
- // now let's be conservative.
+ _context.data.byte(dreamgen::kLasthardkey) = hardKey;
+
+ // The rest of the keys are converted to ASCII. This
+ // is fairly restrictive, and eventually we may want
+ // to let through more keys. I think this is mostly to
+ // keep weird glyphs out of savegame names.
+
+ softKey = 0;
if (event.kbd.keycode >= Common::KEYCODE_a && event.kbd.keycode <= Common::KEYCODE_z) {
- key = event.kbd.ascii & ~0x20;
+ softKey = event.kbd.ascii & ~0x20;
} else if (event.kbd.keycode == Common::KEYCODE_MINUS ||
event.kbd.keycode == Common::KEYCODE_SPACE ||
(event.kbd.keycode >= Common::KEYCODE_0 && event.kbd.keycode <= Common::KEYCODE_9)) {
- key = event.kbd.ascii;
+ softKey = event.kbd.ascii;
} else if (event.kbd.keycode >= Common::KEYCODE_KP0 && event.kbd.keycode <= Common::KEYCODE_KP9) {
- key = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
+ softKey = event.kbd.keycode - Common::KEYCODE_KP0 + '0';
} else if (event.kbd.keycode == Common::KEYCODE_KP_MINUS) {
- key = '-';
+ softKey = '-';
} else if (event.kbd.keycode == Common::KEYCODE_BACKSPACE ||
event.kbd.keycode == Common::KEYCODE_DELETE) {
- key = 8;
+ softKey = 8;
} else if (event.kbd.keycode == Common::KEYCODE_RETURN
|| event.kbd.keycode == Common::KEYCODE_KP_ENTER) {
- key = 13;
+ softKey = 13;
}
- if (key)
- keyPressed(key);
+ if (softKey)
+ keyPressed(softKey);
break;
default:
break;
Commit: c760405a4ee846275c1c191867ff57cb4e8dd8d3
https://github.com/scummvm/scummvm/commit/c760405a4ee846275c1c191867ff57cb4e8dd8d3
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:03-07:00
Commit Message:
DREAMWEB: ported engine to the new metaengine api
Changed paths:
engines/dreamweb/detection.cpp
diff --git a/engines/dreamweb/detection.cpp b/engines/dreamweb/detection.cpp
index 10ff15d..10f727f 100644
--- a/engines/dreamweb/detection.cpp
+++ b/engines/dreamweb/detection.cpp
@@ -43,10 +43,6 @@ static const PlainGameDescriptor dreamWebGames[] = {
{ 0, 0 }
};
-static const ADObsoleteGameID obsoleteGameIDsTable[] = {
- { 0, 0, Common::kPlatformUnknown }
-};
-
#include "dreamweb/detection_tables.h"
class DreamWebMetaEngine : public AdvancedMetaEngine {
@@ -54,9 +50,8 @@ public:
DreamWebMetaEngine():
AdvancedMetaEngine(DreamWeb::gameDescriptions,
sizeof(DreamWeb::DreamWebGameDescription), dreamWebGames) {
- params.obsoleteList = obsoleteGameIDsTable;
- params.singleid = "dreamweb";
- params.guioptions = Common::GUIO_NOMIDI;
+ _singleid = "dreamweb";
+ _guioptions = Common::GUIO_NOMIDI;
}
virtual const char *getName() const {
Commit: ae8edebd65deafc1376a9c3a51331929815b6c64
https://github.com/scummvm/scummvm/commit/ae8edebd65deafc1376a9c3a51331929815b6c64
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:04-07:00
Commit Message:
DREAMWEB: fixed title skipping
Changed paths:
engines/dreamweb/dreamgen.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index bcca8ae..331c8ab 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -5802,6 +5802,7 @@ void biblequote(Context & context) {
if (context.flags.z()) goto biblequotearly;
cancelch0(context);
biblequotearly:
+ context.data.byte(kLasthardkey) = 0;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -5859,6 +5860,7 @@ void intro(Context & context) {
getridoftemptext(context);
clearbeforeload(context);
introearly:
+ context.data.byte(kLasthardkey) = 0;
{assert(stack_depth == context.stack.size()); return; }
}
@@ -6059,6 +6061,7 @@ void realcredits(Context & context) {
context.cx = 256;
hangone(context);
realcreditsearly:
+ context.data.byte(kLasthardkey) = 0;
{assert(stack_depth == context.stack.size()); return; }
}
Commit: 9599894a4b2f79672fc3e2ca5a93ef9c7d457c08
https://github.com/scummvm/scummvm/commit/9599894a4b2f79672fc3e2ca5a93ef9c7d457c08
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-15T08:35:05-07:00
Commit Message:
DREAMWEB: Added original sources. Released with permission from Neil Dodwell.
Changed paths:
A devtools/tasmrecover/dreamweb/LICENSE
A devtools/tasmrecover/dreamweb/backdrop.asm
A devtools/tasmrecover/dreamweb/debug.asm
A devtools/tasmrecover/dreamweb/dreamweb.asm
A devtools/tasmrecover/dreamweb/keypad.asm
A devtools/tasmrecover/dreamweb/look.asm
A devtools/tasmrecover/dreamweb/monitor.asm
A devtools/tasmrecover/dreamweb/newplace.asm
A devtools/tasmrecover/dreamweb/object.asm
A devtools/tasmrecover/dreamweb/print.asm
A devtools/tasmrecover/dreamweb/saveload.asm
A devtools/tasmrecover/dreamweb/sblaster.asm
A devtools/tasmrecover/dreamweb/sprite.asm
A devtools/tasmrecover/dreamweb/talk.asm
A devtools/tasmrecover/dreamweb/titles.asm
A devtools/tasmrecover/dreamweb/use.asm
A devtools/tasmrecover/dreamweb/vars.asm
A devtools/tasmrecover/dreamweb/vgafades.asm
A devtools/tasmrecover/dreamweb/vgagrafx.asm
devtools/tasmrecover/.gitignore
diff --git a/devtools/tasmrecover/.gitignore b/devtools/tasmrecover/.gitignore
index c1b0a4c..f2bff8e 100644
--- a/devtools/tasmrecover/.gitignore
+++ b/devtools/tasmrecover/.gitignore
@@ -1,5 +1,4 @@
*.pyc
-dreamweb
dreamgen.*
_stubs*
diff --git a/devtools/tasmrecover/dreamweb/LICENSE b/devtools/tasmrecover/dreamweb/LICENSE
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/LICENSE
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/devtools/tasmrecover/dreamweb/backdrop.asm b/devtools/tasmrecover/dreamweb/backdrop.asm
new file mode 100644
index 0000000..189199d
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/backdrop.asm
@@ -0,0 +1,877 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+;----------------------------------------------Code to draw floor and panel----
+
+Blockget proc near
+
+ mov ah,al
+ mov al,0
+ mov ds,backdrop
+ mov si,blocks
+ add si,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;--------------------------------------------------------Background display----
+
+
+
+
+
+
+
+
+Drawfloor proc near
+
+ push es bx ;in case this was called during
+ call eraseoldobs ;some sprite update.
+ call drawflags
+ call calcmapad
+ call doblocks
+ call showallobs
+ call showallfree
+ call showallex
+ call paneltomap
+ call initrain
+ mov newobs,0
+ pop bx es
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Calcmapad proc near
+
+ call getdimension
+
+ push cx dx
+
+ mov al,11
+ sub al,dl
+ sub al,cl
+ sub al,cl
+ cbw
+ mov bx,8
+ mul bx
+ add ax,mapoffsetx
+ mov mapadx,ax
+ pop dx cx
+
+ mov al,10
+ sub al,dh
+ sub al,ch
+ sub al,ch
+ cbw
+ mov bx,8
+ mul bx
+ add ax,mapoffsety
+ mov mapady,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Getdimension proc near ;Routine finds width, length
+ ;and top corner of room
+
+ mov es,buffers
+ mov bx,mapflags
+ mov ch,0
+dimloop1: call addalong
+ cmp al,0
+ jnz finishdim1
+ inc ch
+ jmp dimloop1 ;ch holds y of top corner
+
+finishdim1: mov bx,mapflags
+ mov cl,0
+dimloop2: push bx
+ call addlength
+ pop bx
+ cmp al,0
+ jnz finishdim2
+ inc cl
+ add bx,3
+ jmp dimloop2 ;cl holds x of top corner
+
+finishdim2: mov bx,mapflags+(11*3*9)
+ mov dh,10
+dimloop3: push bx
+ call addalong
+ pop bx
+ cmp al,0
+ jnz finishdim3
+ dec dh
+ sub bx,11*3
+ jmp dimloop3 ;dh holds y of bottom corner
+
+finishdim3: mov bx,mapflags+(3*10)
+ mov dl,11
+dimloop4: push bx
+ call addlength
+ pop bx
+ cmp al,0
+ jnz finishdim4
+ dec dl
+ sub bx,3
+ jmp dimloop4 ;dl holds x of bottom corner
+
+finishdim4: mov al,cl ;cl holds x start
+ mov ah,0
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ mov mapxstart,ax
+ mov al,ch ;ch holds y start
+ mov ah,0
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ mov mapystart,ax
+
+ sub dl,cl
+ sub dh,ch
+ ;dx holds x and y size of room
+ mov al,dl ;dl holds x size
+ mov ah,0
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ mov mapxsize,al
+ mov al,dh ;dh holds y size
+ mov ah,0
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ shl ax,1
+ mov mapysize,al ;cx still holds top left corner
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+Addalong proc near
+
+ mov ah,11
+addloop: cmp byte ptr [es:bx],0
+ jnz gotalong
+ add bx,3
+ dec ah
+ jnz addloop
+ mov al,0
+ ret
+gotalong: mov al,1
+ ret
+
+ endp
+
+
+
+
+
+Addlength proc near
+
+ mov ah,10
+addloop2: cmp byte ptr [es:bx],0
+ jnz gotlength
+ add bx,3*11
+ dec ah
+ jnz addloop2
+ mov al,0
+ ret
+gotlength: mov al,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Drawflags proc near
+
+ mov es,buffers
+ mov di,mapflags
+ mov al,mapy
+ mov ah,0
+ mov cx,mapwidth
+ mul cx
+ mov bl,mapx
+ mov bh,0
+ add ax,bx
+ mov si,map
+ add si,ax
+
+ mov cx,10
+$28: push cx
+ mov cx,11
+$28a: mov ds,mapdata
+ lodsb
+ mov ds,backdrop
+ push si ax
+ mov ah,0
+ add ax,ax
+ mov si,flags
+ add si,ax
+ movsw
+ pop ax
+ stosb
+ pop si
+ loop $28a
+ add si,mapwidth-11
+ pop cx
+ loop $28
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;-------------------------------------------------------Set object printing----
+
+Eraseoldobs proc near
+
+ cmp newobs,0
+ jz donterase
+
+ mov es,buffers
+ mov bx,spritetable
+
+ mov cx,16
+oberase: push cx bx
+ mov ax,[es:bx+20]
+ cmp ax,0ffffh
+ jz notthisob
+ mov di,bx
+ mov al,255
+ mov cx,tablesize
+ rep stosb
+notthisob: pop bx cx
+ add bx,tablesize
+ loop oberase
+
+donterase: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Showallobs proc near
+
+ mov es,buffers
+ mov bx,setlist
+ mov listpos,bx
+ mov di,bx
+ mov cx,128*5
+ mov al,255
+ rep stosb
+
+ mov es,setframes
+ mov frsegment,es
+ mov ax,framedata
+ mov dataad,ax
+ mov ax,frames
+ mov framesad,ax
+ mov currentob,0
+
+ mov ds,setdat
+ mov si,0
+
+ mov cx,128
+showobsloop: push cx si
+
+ push si
+ add si,58
+ mov es,setdat
+ call getmapad
+ pop si
+ cmp ch,0
+ jz blankframe
+
+ mov al,[es:si+18]
+ mov ah,0
+ mov currentframe,ax
+ cmp al,255
+ jz blankframe
+
+ push es si
+ call calcfrframe
+ call finalframe
+ pop si es
+
+ mov al,[es:si+18]
+ mov [es:si+17],al
+ cmp byte ptr [es:si+8],0
+ jnz animating
+ cmp byte ptr [es:si+5],5
+ jz animating
+ cmp byte ptr [es:si+5],6
+ jz animating
+ mov ax,currentframe
+ mov ah,0
+ add di,mapadx
+ add bx,mapady
+ call showframe
+ jmp drawnsetob
+
+animating: call makebackob
+
+drawnsetob: mov si,listpos
+ mov es,buffers
+ mov al,savex
+ mov ah,savey
+ mov [es:si],ax
+ mov cx,ax
+ mov ax,savesize
+ add al,cl
+ add ah,ch
+ mov [es:si+2],ax
+ mov al,currentob
+ mov [es:si+4],al
+ add si,5
+ mov listpos,si
+
+blankframe: inc currentob
+ pop si cx
+ add si,64
+ dec cx
+ jz finishedsetobs
+ jmp showobsloop
+
+finishedsetobs: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Makebackob proc near
+
+ cmp newobs,0
+ jz nomake
+
+ mov al,[es:si+5] ; priority
+ mov ah,[es:si+8] ; type - steady, constant,random,door etc.
+ push si ax si
+ mov ax,objectx
+ mov bx,objecty
+ mov ah,bl
+ mov si,ax
+ mov cx,offset cs:backobject
+ mov dx,setframes
+ mov di,framedata
+ call makesprite
+ pop ax
+ mov [es:bx+20],ax
+ pop ax
+ cmp al,255
+ jnz usedpriority ; forgotten to specify priority
+ mov al,0
+usedpriority: mov [es:bx+23],al
+ mov [es:bx+30],ah
+ mov byte ptr [es:bx+16],0
+ mov byte ptr [es:bx+18],0
+ mov byte ptr [es:bx+19],0
+ pop si
+nomake: ret
+
+ endp
+
+
+
+
+;------------------------------------------------------Free object printing----
+
+Showallfree proc near
+
+ mov es,buffers
+ mov bx,freelist
+ mov listpos,bx
+ mov di,freelist
+ mov cx,80*5
+ mov al,255
+ rep stosb
+
+ mov es,freeframes
+ mov frsegment,es
+ mov ax,frframedata
+ mov dataad,ax
+ mov ax,frframes
+ mov framesad,ax
+ mov al,0
+ mov currentfree,al
+
+ mov ds,freedat
+ mov si,2
+
+ mov cx,0
+loop127: push cx si
+
+ push si
+ mov es,freedat
+ call getmapad
+ pop si
+ cmp ch,0
+ jz over138
+
+ mov al,currentfree
+ mov ah,0
+ mov dx,ax
+ add ax,ax
+ add ax,dx
+ mov currentframe,ax
+
+ push es si
+ call calcfrframe
+ mov es,mapstore
+ mov ds,frsegment
+ call finalframe
+ pop si es
+ cmp cx,0
+ jz over138
+
+ mov ax,currentframe
+ mov ah,0
+ add di,mapadx
+ add bx,mapady
+ call showframe
+ mov si,listpos
+ mov es,buffers
+ mov al,savex
+ mov ah,savey
+ mov [es:si],ax
+ mov cx,ax
+ mov ax,savesize
+ add al,cl
+ add ah,ch
+ mov [es:si+2],ax
+ pop ax cx
+ push cx ax
+ mov [es:si+4],cl
+ add si,5
+ mov listpos,si
+
+over138: inc currentfree
+ pop si cx
+ add si,16
+ inc cx
+ cmp cx,80
+ jz finfree
+ jmp loop127
+
+finfree: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+Showallex proc near
+
+ mov es,buffers
+ mov bx,exlist
+ mov listpos,bx
+ mov di,exlist
+ mov cx,100*5
+ mov al,255
+ rep stosb
+
+ mov es,extras
+ mov frsegment,es
+ mov ax,exframedata
+ mov dataad,ax
+ mov ax,exframes
+ mov framesad,ax
+ mov currentex,0
+
+ mov si,exdata+2
+
+ mov cx,0
+exloop: push cx si
+
+ mov es,extras
+
+ push si
+ mov ch,0
+ cmp byte ptr [es:si],255
+ jz notinroom
+ mov al,[es:si-2]
+ cmp al,reallocation
+ jnz notinroom
+ call getmapad
+notinroom: pop si
+ cmp ch,0
+ jz blankex
+
+ mov al,currentex
+ mov ah,0
+ mov dx,ax
+ add ax,ax
+ add ax,dx
+ mov currentframe,ax
+
+ push es si
+ call calcfrframe
+ mov es,mapstore
+ mov ds,frsegment
+ call finalframe
+ pop si es
+ cmp cx,0
+ jz blankex
+
+ mov ax,currentframe
+ mov ah,0
+ add di,mapadx
+ add bx,mapady
+ call showframe
+ mov si,listpos
+ mov es,buffers
+ mov al,savex
+ mov ah,savey
+ mov [es:si],ax
+ mov cx,ax
+ mov ax,savesize
+ add al,cl
+ add ah,ch
+ mov [es:si+2],ax
+ pop ax cx
+ push cx ax
+ mov [es:si+4],cl
+ add si,5
+ mov listpos,si
+
+blankex: inc currentex
+ pop si cx
+ add si,16
+ inc cx
+ cmp cx,100
+ jz finex
+ jmp exloop
+
+finex: ret
+
+ endp
+
+
+
+
+
+
+
+Calcfrframe proc near
+
+ mov dx,frsegment
+ mov ax,framesad
+ push ax
+ mov cx,dataad
+ mov ax,currentframe
+ mov ds,dx
+ mov bx,6
+ mul bx
+ add ax,cx
+ mov bx,ax
+ mov cx,[bx]
+ mov ax,[bx+2]
+ mov dx,[bx+4]
+ pop bx
+ push dx
+ add ax,bx ;ax=source add, cx=x,y
+ ;need this later
+ mov savesource,ax
+ mov savesize,cx
+ pop ax
+ push ax
+ mov ah,0
+ mov offsetx,ax
+ pop ax
+ mov al,ah
+ mov ah,0
+ mov offsety,ax
+ ret
+nullframe: pop ax
+ mov cx,0
+ mov savesize,cx
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Finalframe proc near
+
+ mov ax,objecty
+ add ax,offsety
+ mov bx,objectx
+ add bx,offsetx
+ mov savex,bl
+ mov savey,al
+ mov di,objectx
+ mov bx,objecty
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+Adjustlen proc near
+
+ mov ah,al
+ add al,ch
+ cmp al,100
+ jc over242
+ mov al,224
+ sub al,ch
+ mov ch,al
+over242: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Getmapad proc near
+
+ call getxad
+ cmp ch,0
+ jz over146
+ mov objectx,ax
+ call getyad
+ cmp ch,0
+ jz over146
+ mov objecty,ax
+ mov ch,1
+over146: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Getxad proc near
+
+ mov cl,[es:si]
+ inc si
+ mov al,[es:si]
+ inc si
+ mov ah,[es:si]
+ inc si
+ cmp cl,0
+ jnz over148
+ sub al,mapx
+ jc over148
+ cmp al,11
+ jnc over148
+ mov cl,4
+ shl al,cl
+ or al,ah
+ mov ah,0
+ mov ch,1
+ ret
+over148: mov ch,0
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Getyad proc near
+
+ mov al,[es:si]
+ inc si
+ mov ah,[es:si]
+ inc si
+ sub al,mapy
+ jc over147
+ cmp al,10
+ jnc over147
+ mov cl,4
+ shl al,cl
+ or al,ah
+ mov ah,0
+ mov ch,1
+ ret
+
+over147: mov ch,0
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/devtools/tasmrecover/dreamweb/debug.asm b/devtools/tasmrecover/dreamweb/debug.asm
new file mode 100644
index 0000000..3c24913
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/debug.asm
@@ -0,0 +1,382 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+
+ if debuglevel2
+
+
+Debugkeys proc near
+
+ ret
+
+ endp
+
+
+
+Debugstart proc near
+
+ call allpalette
+ mov reeltohold,-1
+ mov newlocation,23
+ mov dreamnumber,0
+ mov al,"W"
+ mov ah,"S"
+ mov cl,"H"
+ mov ch,"D"
+ call findexobject
+ mov byte ptr [es:bx+12],"S"-"A"
+ mov byte ptr [es:bx+13],"C"-"A"
+ mov byte ptr [es:bx+14],"R"-"A"
+ mov byte ptr [es:bx+15],"W"-"A"
+ mov al,"W"
+ mov ah,"E"
+ mov cl,"T"
+ mov ch,"A"
+ call findexobject
+ mov byte ptr [es:bx+12],"G"-"A"
+ mov byte ptr [es:bx+13],"U"-"A"
+ mov byte ptr [es:bx+14],"N"-"A"
+ mov byte ptr [es:bx+15],"A"-"A"
+ mov al,"W"
+ mov ah,"E"
+ mov cl,"T"
+ mov ch,"B"
+ call findexobject
+ mov byte ptr [es:bx+12],"S"-"A"
+ mov byte ptr [es:bx+13],"H"-"A"
+ mov byte ptr [es:bx+14],"L"-"A"
+ mov byte ptr [es:bx+15],"D"-"A"
+ mov card1money,12342
+
+ ret
+
+ endp
+
+
+
+
+
+Debuggreen proc near
+
+ push ax dx
+ mov al,0
+ mov dx,3c8h
+ out dx,al
+ mov dx,3c9h
+ mov al,0
+ out dx,al
+ mov al,63
+ out dx,al
+ mov al,0
+ out dx,al
+ pop dx ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Debugred proc near
+
+ push ax dx
+ mov al,0
+ mov dx,3c8h
+ out dx,al
+ mov dx,3c9h
+ mov al,63
+ out dx,al
+ mov al,0
+ out dx,al
+ mov al,0
+ out dx,al
+ pop dx ax
+ ret
+
+ endp
+
+
+
+
+Debugblue proc near
+
+ push ax dx
+ mov al,0
+ mov dx,3c8h
+ out dx,al
+ mov dx,3c9h
+ mov al,0
+ out dx,al
+ mov al,0
+ out dx,al
+ mov al,63
+ out dx,al
+ pop dx ax
+ ret
+
+ endp
+
+
+
+
+
+Debugblack proc near
+
+ push dx ax
+ mov al,0
+ mov dx,3c8h
+ out dx,al
+ mov dx,3c9h
+ mov al,0
+ out dx,al
+ mov al,0
+ out dx,al
+ mov al,0
+ out dx,al
+ pop ax dx
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+Debug proc near
+
+ push ds dx cx
+ mov ah,3ch
+ mov cx,0
+ mov dx,seg filenamed
+ mov ds,dx
+ mov dx,offset filenamed
+ int 21h
+ mov bx,ax
+ pop cx dx ds
+ push bx
+ mov ah,40h
+ int 21h
+ pop bx
+ mov ah,3eh
+ int 21h
+ ret
+
+filenamed db "DREAMWEB.TXT",0
+
+ endp
+
+
+
+
+
+
+
+
+Shout proc near
+
+ push ax bx cx dx si di es ds
+ call debugblue
+ mov cx,50
+ call hangon
+ call debugblack
+ mov cx,10
+ call hangon
+ pop ds es di si dx cx bx ax
+ ret
+
+ endp
+
+
+Shoutred proc near
+
+ push ax bx cx dx si di es ds
+ call debugred
+ mov cx,4
+ call hangon
+ call debugblack
+ mov cx,40
+ call hangon
+ pop ds es di si dx cx bx ax
+ ret
+
+ endp
+
+
+
+Shoutgreen proc near
+
+ push ax bx cx dx si di es ds
+ call debuggreen
+ mov cx,4
+ call hangon
+ call debugblack
+ mov cx,40
+ call hangon
+ pop ds es di si dx cx bx ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+;Checkmemingame proc near
+
+; cmp charset1,0
+; jz nodebug
+; mov bx,60000
+; mov ah,48h
+; int 21h
+; mov ax,bx
+; mov cl,6
+; shr ax,cl
+; mov di,offset cs:debugtextig
+; call showword
+
+; mov ax,soundbufferwrite
+; ;mov ax,exframepos
+; mov di,offset cs:debugtextex
+; call showword
+
+; ;mov ax,extextpos
+; ;mov di,offset cs:debugtextex2
+; ;call showword
+
+; push cs
+; pop es
+; mov si,offset cs:debugtextig
+; mov al,0
+; mov ah,0
+; mov dl,100
+; mov di,204
+; mov bx,14
+; call printdirect
+; push cs
+; pop es
+; mov si,offset cs:debugtextex
+; mov al,0
+; mov ah,0
+; mov dl,100
+; mov di,204
+; mov bx,22
+; call printdirect
+; push cs
+; pop es
+; mov si,offset cs:debugtextex2
+; mov al,0
+; mov ah,0
+; mov dl,100
+; mov di,204
+; mov bx,30
+; call printdirect
+; mov di,204
+; mov bx,14
+; mov cl,40
+; mov ch,24
+; call multidump
+;nodebug: ret
+
+ endp
+
+debugtextig: db "00000K",0
+
+debugtextex: db "00000b",0
+
+debugtextex2: db "00000b",0
+
+
+
+
+
+
+ if recording
+
+ mov ax,recordpos
+ mov di,offset cs:debugtextr
+ call showword
+
+ mov al,0
+ call print
+ dw 4,4,100
+debugtextr: db "00000",0
+
+ mov si,0
+ mov di,0
+ mov cl,40
+ mov ch,12
+ call multidump
+
+ endif
+
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;Debugax proc near
+;
+; push ax
+; call showpanel
+; pop ax
+; mov di,offset cs:debugaxtext
+; call showword
+;
+; mov di,204
+; mov bx,14
+; mov al,0
+; mov ah,0
+; mov dl,100
+; push cs
+; pop es
+; mov si,offset cs:debugaxtext
+; call printdirect
+; mov di,204
+; mov bx,14
+; mov cl,40
+; mov ch,24
+; call multidump
+; ret
+;
+;debugaxtext db "00000 ",0
+;
+; endp
+
+
+
+
+
+
+
+ endif
+
\ No newline at end of file
diff --git a/devtools/tasmrecover/dreamweb/dreamweb.asm b/devtools/tasmrecover/dreamweb/dreamweb.asm
new file mode 100644
index 0000000..2b98b97
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/dreamweb.asm
@@ -0,0 +1,6262 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+
+
+
+
+
+
+
+
+
+;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
+;³ ³
+;³ DREAMWEB ³
+;³ ³
+;³ ³
+;³ ³
+;³ ³
+;³ Written by Neil Dodwell. Graphics by Dave Dew. ³
+;³ ³
+;³ Started on Friday 28 December 1990 at 1:20 pm ³
+;³ ³
+;³ Copyright 1990/1991 Creative Reality ³ ³
+;³ ³
+;³ ³
+;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;----------------------------------------------------------Assembly options----
+
+JUMPS
+
+playback equ 0
+recording equ 0
+debuglevel1 equ 0 ;memory debug on
+debuglevel2 equ 0 ;debug keys on+shouts
+demo equ 0
+CD equ 1
+Foreign equ 0
+Spanish equ 0
+German equ 0
+
+;----------------------------------------------------------------Code start----
+
+DREAMWEBPROG segment para public 'CODE'
+
+ assume cs:DREAMWEBPROG,ss:STACKSPACE
+
+
+
+
+;------------------------------------------------------------------Includes----
+
+include \pc\dreamweb\vars.asm ;variables and equates
+include \pc\dreamweb\sprite.asm ;sprite routines
+include \pc\dreamweb\vgagrafx.asm ;screen routines for vga
+include \pc\dreamweb\vgafades.asm ;fade routines
+include \pc\dreamweb\titles.asm ;guess!
+include \pc\dreamweb\print.asm ;text printing routines
+include \pc\dreamweb\object.asm ;pickup
+include \pc\dreamweb\backdrop.asm ;draws floor etc.
+include \pc\dreamweb\look.asm ;look command
+include \pc\dreamweb\talk.asm ;conversations
+include \pc\dreamweb\newplace.asm ;travel
+include \pc\dreamweb\monitor.asm ;network machine
+include \pc\dreamweb\use.asm ;individual use routines
+include \pc\dreamweb\keypad.asm ;accept code with keypad
+include \pc\dreamweb\saveload.asm ;in game options
+include \pc\dreamweb\sblaster.asm
+ if debuglevel1
+include \pc\dreamweb\debug.asm
+ else
+ if debuglevel2
+include \pc\dreamweb\debug.asm
+ endif
+ endif
+
+;-----------------------------------------------------------------Main loop----
+
+
+Dreamweb proc near
+
+ call seecommandtail
+
+ call checkbasemem
+ call soundstartup
+ call setkeyboardint
+ call setupemm
+ call allocatebuffers
+ call setmouse
+ call fadedos
+ call gettime
+
+ call clearbuffers
+ call clearpalette
+ call set16colpalette
+ call readsetdata
+ if demo
+ call changeroomnums
+ endif
+ mov wongame,0
+
+ mov dx,offset cs:basicsample
+ call loadsample
+ call setsoundoff
+
+ if demo
+ else
+ call scanfornames
+ cmp al,0
+ jnz dodecisions
+ endif
+
+ call setmode
+ call loadpalfromiff
+
+ call titles
+ call credits
+ jmp playgame
+
+dodecisions: call cls
+ call setmode
+ call decide
+ cmp getback,4
+ jz mainloop
+
+ call titles
+ call credits
+
+playgame: call clearchanges
+ call setmode
+ call loadpalfromiff
+ mov location,255
+ mov roomafterdream,1
+ if demo
+ mov newlocation,5
+ else
+ mov newlocation,35
+ endif
+ mov volume,7
+ call loadroom
+ call clearsprites
+ call initman
+ call entrytexts
+ call entryanims
+ mov destpos,3
+ call initialinv
+ mov lastflag,32
+ call startup1
+ mov volumeto,0
+ mov volumedirection,-1
+ mov commandtype,255
+ jmp mainloop
+
+loadnew: if demo
+ cmp newlocation,27
+ jnz not27
+ call fadescreendowns
+ mov cx,260
+ call hangon
+ call clearbeforeload
+ jmp playgame
+not27:
+ endif
+ call clearbeforeload
+ call loadroom
+ call clearsprites
+ call initman
+ call entrytexts
+ call entryanims
+ mov newlocation,255
+ call startup
+ mov commandtype,255
+ call worktoscreenm
+ jmp mainloop
+
+alreadyloaded: mov newlocation,255
+ call clearsprites
+ call initman
+ call startup
+ mov commandtype,255
+
+mainloop: call screenupdate
+ cmp wongame,0
+ jnz endofgame
+ cmp mandead,1
+ jz gameover
+ cmp mandead,2
+ jz gameover
+ cmp watchingtime,0
+ jz notwatching
+ mov al,finaldest
+ cmp al,manspath
+ jnz mainloop
+ dec watchingtime
+ jnz mainloop
+
+notwatching: cmp mandead,4
+ jz gameover
+ cmp newlocation,255
+ jnz loadnew
+ jmp mainloop
+
+gameover: if demo
+ call fadescreendowns
+ mov cx,260
+ call hangon
+ call clearbeforeload
+ jmp playgame
+ endif
+ call clearbeforeload
+ call showgun
+ call fadescreendown
+ mov cx,100
+ call hangon
+ jmp dodecisions
+
+endofgame: call clearbeforeload
+ call fadescreendowns
+ mov cx,200
+ call hangon
+ call endgame
+ jmp quickquit2
+
+ endp
+
+
+
+
+ endp
+
+
+
+ if demo
+
+Changeroomnums proc near
+
+ mov di,offset cs:roomdata+10
+ mov cx,50
+changenumloop: mov al,[cs:di]
+ cmp al,"0"
+ jnz nochange
+ mov al,[cs:di+1]
+ cmp al,"5"
+ jnz nochange
+ mov al,"6"
+ mov ah,"0"
+ mov [cs:di],ax
+nochange: add di,32
+ loop changenumloop
+ ret
+
+ endp
+
+ endif
+
+
+
+
+Entrytexts proc near
+
+ cmp location,21
+ jnz notloc15
+ mov al,28
+ mov cx,60
+ mov dx,11
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+notloc15: cmp location,30
+ jnz notloc43
+ mov al,27
+ mov cx,60
+ mov dx,11
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+notloc43: cmp location,23
+ jnz notloc23
+ mov al,29
+ mov cx,60
+ mov dx,11
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+notloc23: cmp location,31
+ jnz notloc44
+ mov al,30
+ mov cx,60
+ mov dx,11
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+notloc44: cmp location,20
+ jnz notsarters2
+ mov al,31
+ mov cx,60
+ mov dx,11
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+notsarters2: cmp location,24
+ jnz notedenlob
+ mov al,32
+ mov cx,60
+ mov dx,3
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+notedenlob: cmp location,34
+ jnz noteden2
+ mov al,33
+ mov cx,60
+ mov dx,3
+ mov bl,68
+ mov bh,64
+ call setuptimeduse
+ ret
+noteden2: ret
+
+ endp
+
+
+
+
+
+
+
+
+Entryanims proc near
+
+ mov reeltowatch,-1
+ mov watchmode,-1
+ cmp location,33
+ jnz notinthebeach
+ call switchryanoff
+ mov watchingtime,76*2
+ mov reeltowatch,0
+ mov endwatchreel,76
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+notinthebeach: cmp location,44
+ jnz notsparkys
+ mov al,8
+ call resetlocation
+ mov watchingtime,50*2
+ mov reeltowatch,247
+ mov endwatchreel,297
+ mov watchspeed,1
+ mov speedcount,1
+ call switchryanoff
+ ret
+notsparkys: cmp location,22
+ jnz notinthelift
+ mov watchingtime,31*2
+ mov reeltowatch,0
+ mov endwatchreel,30
+ mov watchspeed,1
+ mov speedcount,1
+ call switchryanoff
+ ret
+notinthelift: cmp location,26
+ jnz notunderchurch
+ mov symboltopnum,2
+ mov symbolbotnum,1
+ ret
+notunderchurch: cmp location,45
+ jnz notenterdream
+ mov keeperflag,0
+ mov watchingtime,296
+ mov reeltowatch,45
+ mov endwatchreel,198
+ mov watchspeed,1
+ mov speedcount,1
+ call switchryanoff
+ ret
+notenterdream: cmp reallocation,46
+ jnz notcrystal
+ cmp sartaindead,1
+ jnz notcrystal
+ mov al,0
+ call removefreeobject
+ ret
+notcrystal: cmp location,9
+ jnz nottopchurch
+ mov al,2
+ call checkifpathison
+ jz nottopchurch
+ cmp aidedead,0
+ jz nottopchurch
+ mov al,3
+ call checkifpathison
+ jnz makedoorsopen
+ mov al,2
+ call turnpathon
+makedoorsopen: mov al,4
+ call removesetobject
+ mov al,5
+ call placesetobject
+ ret
+nottopchurch: cmp location,47
+ jnz notdreamcentre
+ mov al,4
+ call placesetobject
+ mov al,5
+ call placesetobject
+ ret
+notdreamcentre: cmp location,38
+ jnz notcarpark
+ mov watchingtime,57*2
+ mov reeltowatch,4
+ mov endwatchreel,57
+ mov watchspeed,1
+ mov speedcount,1
+ call switchryanoff
+ ret
+notcarpark: cmp location,32
+ jnz notalley
+ mov watchingtime,66*2
+ mov reeltowatch,0
+ mov endwatchreel,66
+ mov watchspeed,1
+ mov speedcount,1
+ call switchryanoff
+ ret
+notalley: cmp location,24
+ jnz notedensagain
+ mov al,2
+ mov ah,roomnum
+ dec ah
+ call turnanypathon
+notedensagain: ret
+
+ endp
+
+
+
+
+
+
+ if demo
+Initialinv proc near
+
+ mov al,11
+ mov ah,5
+ call pickupob
+ mov al,12
+ mov ah,6
+ call pickupob
+ mov al,13
+ mov ah,7
+ call pickupob
+ mov al,14
+ mov ah,8
+ call pickupob
+ mov al,18
+ mov ah,0
+ call pickupob
+ mov al,19
+ mov ah,1
+ call pickupob
+ mov al,20
+ mov ah,9
+ call pickupob
+ mov al,16
+ mov ah,2
+ call pickupob
+
+ mov al,2
+ mov ah,4
+ call pickupob
+
+ mov al,29
+ mov ah,10
+ call pickupob
+ mov al,33
+ mov ah,11
+ call pickupob
+ mov al,44
+ mov ah,12
+ call pickupob
+ mov card1money,12342
+ ret
+
+ endp
+ else
+Initialinv proc near
+
+ cmp reallocation,24
+ jz isedens
+ ret
+
+isedens: mov al,11
+ mov ah,5
+ call pickupob
+ mov al,12
+ mov ah,6
+ call pickupob
+ mov al,13
+ mov ah,7
+ call pickupob
+ mov al,14
+ mov ah,8
+ call pickupob
+ mov al,18
+ mov al,18
+ mov ah,0
+ call pickupob
+ mov al,19
+ mov ah,1
+ call pickupob
+ mov al,20
+ mov ah,9
+ call pickupob
+ mov al,16
+ mov ah,2
+ call pickupob
+
+ mov watchmode,1
+ mov reeltohold,0
+ mov endofholdreel,6
+ mov watchspeed,1
+ mov speedcount,1
+ call switchryanoff
+ ret
+
+ endp
+
+ endif
+
+
+
+
+
+
+
+
+
+
+
+Pickupob proc near
+
+ mov lastinvpos,ah
+ mov objecttype,2
+ mov itemframe,al
+ mov command,al
+ call getanyad
+ call transfertoex
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;---------------------------------------------------------Memory allocation----
+
+
+
+
+Setupemm proc near
+
+ cmp soundint,255
+ jz noneedforemm
+ call checkforemm
+
+ mov ah,43h ;allocate handle and 160 pages
+ mov bx,176 ;was 176
+ int 67h
+ cmp ah,0
+ jnz emmerror1 ;if there's an error drop to DOS
+ mov emmhandle,dx
+ mov ah,41h ;get the page frame base address
+ int 67h
+ cmp ah,0
+ jnz emmerror1
+ mov emmpageframe,bx
+ mov ax,bx
+ mov cl,12
+ shr ax,cl
+ mov emmhardwarepage,al
+noneedforemm: ret
+emmerror1: mov gameerror,1
+ jmp quickquit2
+
+ endp
+
+
+
+
+
+
+
+
+Removeemm proc near
+
+ cmp soundint,255
+ jz noneedtoremove
+ mov ah,45h
+ mov dx,emmhandle
+ int 67h
+noneedtoremove: ret
+
+ endp
+
+
+
+
+
+Checkforemm proc near
+
+ ret
+
+ endp
+
+
+
+
+Checkbasemem proc near
+
+ mov bx,howmuchalloc
+ cmp bx,9360h
+ jnc enoughmem
+ mov gameerror,5
+ jmp quickquit
+enoughmem: ret
+
+ endp
+
+
+
+Allocatebuffers proc near
+
+ mov bx,lengthofextra/16
+ call allocatemem
+ mov extras,ax
+
+ call trysoundalloc
+ mov bx,lengthofmap/16
+ call allocatemem
+ mov mapdata,ax
+
+ call trysoundalloc
+ mov bx,lengthofbuffer/16
+ call allocatemem
+ mov buffers,ax
+
+ call trysoundalloc
+ mov bx,freedatlen/16
+ call allocatemem
+ mov freedat,ax
+
+ call trysoundalloc
+ mov bx,setdatlen/16
+ call allocatemem
+ mov setdat,ax
+
+ call trysoundalloc
+ mov bx,lenofmapstore/16
+ call allocatemem
+ mov mapstore,ax
+
+ if recording
+ mov bx,1028
+ call allocatemem
+ mov recordspace,ax
+ endif
+
+ if playback
+ mov bx,1028
+ call allocatemem
+ mov recordspace,ax
+ endif
+
+ call allocatework
+
+ mov bx,2048/16
+ call allocatemem
+ mov sounddata,ax
+
+ mov bx,2048/16
+ call allocatemem
+ mov sounddata2,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Clearbuffers proc near
+
+ mov es,buffers
+ mov cx,lengthofbuffer/2
+ mov ax,0
+ mov di,0
+ rep stosw
+
+ mov es,extras
+ mov cx,lengthofextra/2
+ mov ax,0ffffh
+ mov di,0
+ rep stosw
+
+ mov es,buffers
+ mov di,initialreelrouts
+ push cs
+ pop ds
+ mov si,offset cs:reelroutines
+ mov cx,lenofreelrouts
+ rep movsb
+
+ mov es,buffers
+ mov di,initialvars
+ push cs
+ pop ds
+ mov si,offset cs:startvars
+ mov cx,lengthofvars
+ rep movsb
+ call clearchanges
+ ret
+
+ endp
+
+
+
+
+
+
+Clearchanges proc near
+
+ mov es,buffers
+ mov cx,numchanges*2
+ mov ax,0ffffh
+ mov di,listofchanges
+ rep stosw
+ mov ds,buffers
+ mov si,initialreelrouts
+ push cs
+ pop es
+ mov di,offset cs:reelroutines
+ mov cx,lenofreelrouts
+ rep movsb
+
+ mov ds,buffers
+ mov si,initialvars
+ push cs
+ pop es
+ mov di,offset cs:startvars
+ mov cx,lengthofvars
+ rep movsb
+
+ mov expos,0
+ mov exframepos,0
+ mov extextpos,0
+ mov es,extras
+ mov cx,lengthofextra/2
+ mov ax,0ffffh
+ mov di,0
+ rep stosw
+
+ push cs
+ pop es
+ mov di,offset cs:roomscango
+ mov al,1
+ stosb
+ stosb
+ mov al,0
+ stosb
+ mov al,1
+ stosb
+ mov ax,0
+ mov cx,6
+ rep stosw
+ ret
+
+ endp
+
+
+
+
+
+
+
+Clearbeforeload proc near ;deallocates variable buffers
+ ;and clears out fixed ones
+ cmp roomloaded,1
+ jnz noclear
+ call clearreels
+ call clearrest
+ mov roomloaded,0
+noclear: ret
+
+ endp
+
+
+
+;Clearnoreels proc near
+;
+; cmp roomloaded,1
+; jnz noclear2
+; call clearrest
+; mov roomloaded,0
+;noclear2: ret
+;
+; endp
+
+
+
+
+
+
+Clearreels proc near
+
+ mov es,reel1
+ call deallocatemem
+ mov es,reel2
+ call deallocatemem
+ mov es,reel3
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+Clearrest proc near
+
+ mov es,mapdata
+ mov cx,maplen/2
+ mov ax,0
+ mov di,map
+ rep stosw
+
+ mov es,backdrop
+ call deallocatemem
+ mov es,setframes
+ call deallocatemem
+ mov es,reels
+ call deallocatemem
+ mov es,people
+ call deallocatemem
+ mov es,setdesc
+ call deallocatemem
+ mov es,blockdesc
+ call deallocatemem
+ mov es,roomdesc
+ call deallocatemem
+ mov es,freeframes
+ call deallocatemem
+ mov es,freedesc
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+
+
+
+Deallocatemem proc near
+
+ mov ah,49h
+ int 21h
+ jc deallerror
+ ret
+deallerror: mov gameerror,4
+ jmp quickquit2
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Allocatemem proc near
+
+ add bx,2
+ mov ah,48h
+ int 21h
+ jc memerror
+ ret
+
+memerror: mov gameerror,3
+ jmp quickquit2
+
+ endp
+
+
+
+
+Seecommandtail proc near
+
+ mov soundbaseadd,220h
+ mov soundint,5
+ mov sounddmachannel,1
+ mov brightness,0
+
+ mov bx,2
+ mov ax,[es:bx]
+ mov dx,es
+ sub ax,dx
+ mov howmuchalloc,ax
+
+ mov bx,02ch
+ mov ax,[es:bx]
+ push es bx
+
+ mov es,ax
+ mov bx,0
+findblaster: mov ax,[es:bx]
+ cmp ax,0
+ jz endofenvironment
+ cmp al,"B"
+ jnz notblast
+ cmp ah,"L"
+ jnz notblast
+ cmp byte ptr [es:bx+2],"A"
+ jnz notblast
+ cmp byte ptr [es:bx+3],"S"
+ jnz notblast
+ cmp byte ptr [es:bx+4],"T"
+ jnz notblast
+ cmp byte ptr [es:bx+5],"E"
+ jnz notblast
+ cmp byte ptr [es:bx+6],"R"
+ jnz notblast
+ add bx,7
+ call parseblaster
+ jmp endofenvironment
+notblast: inc bx
+ jmp findblaster
+
+endofenvironment: pop bx es
+ mov bx,81h
+ call parseblaster
+ ret
+
+ endp
+
+
+
+Parseblaster proc near
+
+lookattail: mov al,[es:bx]
+ cmp al,0
+ jz endtail
+ cmp al,13
+ jz endtail
+ cmp al,"i"
+ jz issoundint
+ cmp al,"I"
+ jz issoundint
+ cmp al,"b"
+ jz isbright
+ cmp al,"B"
+ jz isbright
+ cmp al,"a"
+ jz isbaseadd
+ cmp al,"A"
+ jz isbaseadd
+ cmp al,"n"
+ jz isnosound
+ cmp al,"N"
+ jz isnosound
+ cmp al,"d"
+ jz isdma
+ cmp al,"D"
+ jz isdma
+ inc bx
+ loop lookattail
+ ret
+
+issoundint: mov al,[es:bx+1]
+ sub al,"0"
+ mov soundint,al
+ inc bx
+ jmp lookattail
+isdma: mov al,[es:bx+1]
+ sub al,"0"
+ mov sounddmachannel,al
+ inc bx
+ jmp lookattail
+isbaseadd: push cx
+ mov al,[es:bx+2]
+ sub al,"0"
+ mov ah,0
+ mov cl,4
+ shl ax,cl
+ add ax,200h
+ mov soundbaseadd,ax
+ pop cx
+ inc bx
+ jmp lookattail
+isbright: mov brightness,1
+ inc bx
+ jmp lookattail
+isnosound: mov soundint,255
+ inc bx
+ jmp lookattail
+endtail: ret
+
+ endp
+
+
+
+
+;-------------------------------------------------------High level routines----
+
+Startup proc near
+
+ mov currentkey,0
+ mov mainmode,0
+ call createpanel
+ mov newobs,1
+ call drawfloor
+ call showicon
+ call getunderzoom
+ call spriteupdate
+ call printsprites
+ call undertextline
+ call reelsonscreen
+ call atmospheres
+ ret
+
+ endp
+
+
+
+
+Startup1 proc near
+
+
+ call clearpalette
+ mov throughdoor,0
+ mov currentkey,"0"
+ mov mainmode,0
+ call createpanel
+ mov newobs,1
+ call drawfloor
+
+ call showicon
+ call getunderzoom
+ call spriteupdate
+ call printsprites
+ call undertextline
+ call reelsonscreen
+ call atmospheres
+ call worktoscreen
+ call fadescreenup
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+;--------------------------------------------------Scroll location routines----
+
+
+
+
+
+Screenupdate proc near
+
+ call newplace
+ call mainscreen
+ call animpointer
+ call showpointer
+ cmp watchingtime,0
+ jnz iswatchingmode
+ cmp newlocation,255
+ jnz finishearly
+iswatchingmode: call vsync
+ call readmouse1
+ call dumppointer
+ call dumptextline
+ call delpointer
+ call autolook
+ call spriteupdate
+ call watchcount
+ call zoom
+ call showpointer
+ cmp wongame,0
+ jnz finishearly
+
+ call vsync
+ call readmouse2
+ call dumppointer
+ call dumpzoom
+ call delpointer
+ call deleverything
+ call printsprites
+ call reelsonscreen
+ call afternewroom
+ call showpointer
+
+ call vsync
+ call readmouse3
+ call dumppointer
+ call dumpmap
+ call dumptimedtext
+ call delpointer
+ call showpointer
+
+ call vsync
+ call readmouse4
+ call dumppointer
+ call dumpwatch
+ call delpointer
+
+finishearly: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Watchreel proc near
+
+ cmp reeltowatch,-1
+ jz notplayingreel
+ mov al,manspath
+ cmp al,finaldest
+ jnz waitstopwalk
+ mov al,turntoface
+ cmp al,facing
+ jz notwatchpath
+waitstopwalk: ret
+
+notwatchpath: dec speedcount
+ cmp speedcount,-1
+ jnz showwatchreel
+ mov al,watchspeed
+ mov speedcount,al
+ mov ax,reeltowatch
+ cmp ax,endwatchreel
+ jnz ismorereel
+ cmp watchingtime,0
+ jnz showwatchreel
+ mov reeltowatch,-1
+ mov watchmode,-1
+ cmp reeltohold,-1
+ jz nomorereel
+ mov watchmode,1
+ jmp notplayingreel
+ismorereel: inc reeltowatch
+showwatchreel: mov ax,reeltowatch
+ mov reelpointer,ax
+ call plotreel
+ mov ax,reelpointer
+ mov reeltowatch,ax
+ call checkforshake
+nomorereel: ret
+
+
+notplayingreel: cmp watchmode,1
+ jnz notholdingreel
+ mov ax,reeltohold
+ mov reelpointer,ax
+ call plotreel
+ ret
+
+notholdingreel: cmp watchmode,2
+ jnz notreleasehold
+ dec speedcount
+ cmp speedcount,-1
+ jnz notlastspeed2
+ mov al,watchspeed
+ mov speedcount,al
+ inc reeltohold
+notlastspeed2: mov ax,reeltohold
+ cmp ax,endofholdreel
+ jnz ismorereel2
+ mov reeltohold,-1
+ mov watchmode,-1
+ mov al,destafterhold
+ mov destination,al
+ mov finaldest,al
+ call autosetwalk
+ ret
+ismorereel2: mov ax,reeltohold
+ mov reelpointer,ax
+ call plotreel
+ ret
+
+notreleasehold: ret
+
+ endp
+
+
+
+
+
+Checkforshake proc near
+
+ cmp reallocation,26
+ jnz notstartshake
+ cmp ax,104
+ jnz notstartshake
+ mov shakecounter,-1
+notstartshake: ret
+
+ endp
+
+
+
+
+
+Watchcount proc near
+
+ cmp watchon,0
+ jz nowatchworn
+ inc timercount
+ cmp timercount,9
+ jz flashdots
+ cmp timercount,18
+ jz uptime
+nowatchworn: ret
+
+flashdots: mov ax,91*3+21
+ mov di,268+4
+ mov bx,21
+ mov ds,charset1
+ call showframe
+ jmp finishwatch
+
+uptime: mov timercount,0
+ add secondcount,1
+ cmp secondcount,60
+ jnz finishtime
+ mov secondcount,0
+ inc minutecount
+ cmp minutecount,60
+ jnz finishtime
+ mov minutecount,0
+ inc hourcount
+ cmp hourcount,24
+ jnz finishtime
+ mov hourcount,0
+
+finishtime: call showtime
+finishwatch: mov watchdump,1
+ ret
+
+ endp
+
+
+
+Showtime proc near
+
+ cmp watchon,0
+ jz nowatch
+
+ mov al,secondcount
+ mov cl,0
+ call twodigitnum
+ push ax
+ mov al,ah
+ mov ah,0
+ add ax,91*3+10
+ mov ds,charset1
+ mov di,282+5
+ mov bx,21
+ call showframe
+ pop ax
+ mov ah,0
+ add ax,91*3+10
+ mov ds,charset1
+ mov di,282+9
+ mov bx,21
+ call showframe
+
+ mov al,minutecount
+ mov cl,0
+ call twodigitnum
+ push ax
+ mov al,ah
+ mov ah,0
+ add ax,91*3
+ mov ds,charset1
+ mov di,270+5
+ mov bx,21
+ call showframe
+ pop ax
+ mov ah,0
+ add ax,91*3
+ mov ds,charset1
+ mov di,270+11
+ mov bx,21
+ call showframe
+
+ mov al,hourcount
+ mov cl,0
+ call twodigitnum
+ push ax
+ mov al,ah
+ mov ah,0
+ add ax,91*3
+ mov ds,charset1
+ mov di,256+5
+ mov bx,21
+ call showframe
+ pop ax
+ mov ah,0
+ add ax,91*3
+ mov ds,charset1
+ mov di,256+11
+ mov bx,21
+ call showframe
+
+ mov ax,91*3+20
+ mov ds,charset1
+ mov di,267+5
+ mov bx,21
+ call showframe
+nowatch: ret
+
+
+ endp
+
+
+
+
+Dumpwatch proc near
+
+ cmp watchdump,1
+ jnz nodumpwatch
+ mov di,256
+ mov bx,21
+ mov cl,40
+ mov ch,12
+ call multidump
+ mov watchdump,0
+nodumpwatch: ret
+
+ endp
+
+
+
+
+Showbyte proc near
+
+ mov dl,al
+ shr dl,1
+ shr dl,1
+ shr dl,1
+ shr dl,1
+ call onedigit
+ mov [es:di],dl
+ mov dl,al
+ and dl,15
+ call onedigit
+ mov [es:di+1],dl
+ add di,3
+ ret
+
+ endp
+
+
+Onedigit proc near
+
+ cmp dl,10
+ jnc morethan10
+ add dl,"0"
+ ret
+morethan10: sub dl,10
+ add dl,"A"
+ ret
+
+ endp
+
+
+
+
+
+Twodigitnum proc near
+
+ mov ah,cl
+ dec ah
+numloop1: inc ah
+ sub al,10
+ jnc numloop1
+ add al,10
+ add al,cl
+ ret
+
+ endp
+
+
+
+
+
+Showword proc near
+
+ mov ch,0
+ mov bx,10000
+ mov cl,47
+word1: inc cl
+ sub ax,bx
+ jnc word1
+ add ax,bx
+ call convnum
+ mov [cs:di],cl
+ mov bx,1000
+ mov cl,47
+word2: inc cl
+ sub ax,bx
+ jnc word2
+ add ax,bx
+ call convnum
+ mov [cs:di+1],cl
+ mov bx,100
+ mov cl,47
+word3: inc cl
+ sub ax,bx
+ jnc word3
+ add ax,bx
+ call convnum
+ mov [cs:di+2],cl
+ mov bx,10
+ mov cl,47
+word4: inc cl
+ sub ax,bx
+ jnc word4
+ add ax,bx
+ call convnum
+ mov [cs:di+3],cl
+ add al,48
+ mov cl,al
+ call convnum
+ mov [cs:di+4],cl
+ ret
+
+ endp
+
+
+
+
+Convnum proc near
+
+ cmp ch,0
+ jnz noconvnum
+ cmp cl,"0"
+ jnz notzeronum
+ mov cl,32
+ jmp noconvnum
+notzeronum: mov ch,1
+noconvnum: ret
+
+ endp
+
+
+
+
+
+
+
+
+;---------------------------------------------Handling of pointer on screen----
+
+Mainscreen proc near
+
+ mov inmaparea,0
+ mov bx,offset cs:mainlist
+ cmp watchon,1
+ jz checkmain
+ mov bx,offset cs:mainlist2
+checkmain: call checkcoords
+ cmp walkandexam,0
+ jz finishmain
+ call walkandexamine
+finishmain: ret
+
+mainlist: dw 44,70,32,46,look
+ dw 0,50,0,180,inventory
+ dw 226,244,10,26,zoomonoff
+ dw 226,244,26,40,saveload
+ dw 240,260,100,124,madmanrun
+ dw 0,320,0,200,identifyob
+ dw 0ffffh
+
+mainlist2: dw 44,70,32,46,look
+ dw 0,50,0,180,inventory
+ dw 226+48,244+48,10,26,zoomonoff
+ dw 226+48,244+48,26,40,saveload
+ dw 240,260,100,124,madmanrun
+ dw 0,320,0,200,identifyob
+ dw 0ffffh
+
+ endp
+
+
+
+
+
+
+Madmanrun proc near
+
+ cmp location,14
+ jnz identifyob
+ cmp mapx,22
+ jnz identifyob
+ cmp pointermode,2
+ jnz identifyob
+ cmp madmanflag,0
+ jnz identifyob
+
+ cmp commandtype,211
+ jz alreadyrun
+ mov commandtype,211
+ mov al,52
+ call commandonly
+alreadyrun: cmp mousebutton,1
+ jnz norun
+ mov ax,mousebutton
+ cmp ax,oldbutton
+ jz norun
+ mov lastweapon,8
+norun: ret
+
+ endp
+
+
+
+
+
+
+Checkcoords proc near
+ cmp newlocation,255 ;objects keep enumerated even in loading state, fixme
+ jz loop048
+ ret
+
+loop048: mov ax,[cs:bx]
+ cmp ax,0ffffh
+ jz nonefound
+ push bx
+ cmp mousex,ax
+ jl over045
+ mov ax,[cs:bx+2]
+ cmp mousex,ax
+ jge over045
+ mov ax,[cs:bx+4]
+ cmp mousey,ax
+ jl over045
+ mov ax,[cs:bx+6]
+ cmp mousey,ax
+ jge over045
+ mov ax,[cs:bx+8]
+ call ax
+finished: pop ax
+ ret
+over045: pop bx
+ add bx,10
+ jmp loop048
+nonefound: ret
+
+ endp
+
+
+
+
+
+;-------------------------------------------Printing of icons during scroll----
+
+
+
+
+
+Identifyob proc near
+
+ cmp watchingtime,0
+ jnz blank
+
+ mov ax,mousex
+ sub ax,mapadx
+ cmp ax,22*8
+ jc notover1
+ call blank
+ ret
+
+notover1: mov bx,mousey
+ sub bx,mapady
+ cmp bx,20*8
+ jc notover2
+ call blank
+ ret
+
+notover2: mov inmaparea,1
+ mov ah,bl
+ push ax
+ call findpathofpoint
+ mov pointerspath,dl
+ pop ax
+ push ax
+ call findfirstpath
+ mov pointerfirstpath,al
+ pop ax
+
+ call checkifex
+ jnz finishidentify
+ call checkiffree
+ jnz finishidentify
+ call checkifperson
+ jnz finishidentify
+ call checkifset
+ jnz finishidentify
+
+ mov ax,mousex
+ sub ax,mapadx
+ mov cl,al
+ mov ax,mousey
+ sub ax,mapady
+ mov ch,al
+ call checkone
+ cmp al,0
+ jz nothingund
+ ;cmp watchingtime,0
+ ;jnz nothingund
+ cmp mandead,1
+ jz nothingund
+ mov ah,3
+ call obname
+finishidentify: ret
+
+nothingund: call blank
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Checkifperson proc near
+
+ mov es,buffers
+ mov bx,peoplelist
+ mov cx,12
+identifyreel: push cx
+
+ cmp byte ptr [es:bx+4],255
+ jz notareelid
+
+ push es bx ax
+ mov ax,[es:bx+0]
+ mov reelpointer,ax
+ call getreelstart
+ cmp [es:si+2],0ffffh
+ jnz notblankpers
+ add si,5
+notblankpers: mov cx,[es:si+2] ;x,y of reel slot
+ mov ax,[es:si+0] ;frame number
+ push cx
+ call getreelframeax
+ pop cx
+ add cl,[es:bx+4]
+ add ch,[es:bx+5]
+ mov dx,cx
+ add dl,[es:bx+0]
+ add dh,[es:bx+1]
+ pop ax bx es
+
+ cmp al,cl
+ jc notareelid
+ cmp ah,ch
+ jc notareelid
+ cmp al,dl
+ jnc notareelid
+ cmp ah,dh
+ jnc notareelid
+
+ pop cx
+ mov ax,[es:bx+2]
+ mov persondata,ax
+ mov al,[es:bx+4]
+ mov ah,5
+ call obname
+ mov al,0
+ cmp al,1
+ ret
+
+notareelid: pop cx
+ add bx,5
+ dec cx
+ jnz identifyreel
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Checkifset proc near
+
+ mov es,buffers
+ mov bx,setlist+(127*5)
+ mov cx,127
+identifyset: cmp byte ptr [es:bx+4],255
+ jz notasetid
+ cmp al,[es:bx]
+ jc notasetid
+ cmp al,[es:bx+2]
+ jnc notasetid
+ cmp ah,[es:bx+1]
+ jc notasetid
+ cmp ah,[es:bx+3]
+ jnc notasetid
+ call pixelcheckset
+ jz notasetid
+ call isitdescribed
+ jz notasetid
+ mov al,[es:bx+4]
+ mov ah,1
+ call obname
+ mov al,0
+ cmp al,1
+ ret
+notasetid: sub bx,5
+ dec cx
+ cmp cx,-1
+ jnz identifyset
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Checkifex proc near
+
+ mov es,buffers
+ mov bx,exlist+(99*5)
+ mov cx,99
+identifyex: cmp byte ptr [es:bx+4],255
+ jz notanexid
+ cmp al,[es:bx]
+ jc notanexid
+ cmp al,[es:bx+2]
+ jnc notanexid
+ cmp ah,[es:bx+1]
+ jc notanexid
+ cmp ah,[es:bx+3]
+ jnc notanexid
+ mov al,[es:bx+4]
+ mov ah,4
+ call obname
+ mov al,1
+ cmp al,0
+ ret
+notanexid: sub bx,5
+ dec cx
+ cmp cx,-1
+ jnz identifyex
+ ret
+
+ endp
+
+
+
+
+
+
+Checkiffree proc near
+
+ mov es,buffers
+ mov bx,freelist+(79*5)
+ mov cx,79
+identifyfree: cmp byte ptr [es:bx+4],255
+ jz notafreeid
+ cmp al,[es:bx]
+ jc notafreeid
+ cmp al,[es:bx+2]
+ jnc notafreeid
+ cmp ah,[es:bx+1]
+ jc notafreeid
+ cmp ah,[es:bx+3]
+ jnc notafreeid
+ mov al,[es:bx+4]
+ mov ah,2
+ call obname
+ mov al,0
+ cmp al,1
+ ret
+notafreeid: sub bx,5
+ dec cx
+ cmp cx,-1
+ jnz identifyfree
+ ret
+
+ endp
+
+
+
+
+
+
+Isitdescribed proc near
+
+ push ax cx es bx
+ mov al,[es:bx+4] ;get object number
+ mov ah,0
+ add ax,ax
+ mov bx,ax
+ mov es,setdesc
+ add bx,settextdat
+ mov ax,[es:bx]
+ add ax,settext
+ mov bx,ax
+ mov dl,[es:bx]
+ pop bx es cx ax
+ cmp dl,0
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+;Getcurrentpath proc near ;routine finds out which path
+; ;block the pointer is in.
+; push ax ;used to see if an object is
+; call findpathofpoint ;close or not
+; pop ax
+; mov pointerspath,dl
+; ret
+;
+; endp
+
+
+
+
+
+Findpathofpoint proc near
+
+ push ax
+ mov bx,pathdata
+ mov es,reels
+ mov al,roomnum
+ mov ah,0
+ mov cx,144
+ mul cx
+ add bx,ax
+ pop cx
+
+ mov dl,0
+pathloop: mov al,[es:bx+6]
+ cmp al,255
+ jnz flunkedit
+ mov ax,[es:bx+2]
+ cmp ax,0ffffh
+ jz flunkedit
+ cmp cl,al
+ jc flunkedit
+ cmp ch,ah
+ jc flunkedit
+ mov ax,[es:bx+4]
+ cmp cl,al
+ jnc flunkedit
+ cmp ch,ah
+ jnc flunkedit
+ jmp gotvalidpath
+flunkedit: add bx,8
+ inc dl
+ cmp dl,12
+ jnz pathloop
+ mov dl,255
+gotvalidpath: ret
+
+ endp
+
+
+
+
+
+Findfirstpath proc near ;similar to last routine, but it
+ ;searches each path to see if
+ push ax ;pointer is within it, regardless
+ mov bx,pathdata ;of whether the path is on or off
+ mov es,reels ;it returns the on or off state in
+ mov al,roomnum ;al (255=on 0=off) 0 if no path
+ mov ah,0
+ mov cx,144
+ mul cx
+ add bx,ax
+ pop cx
+
+ mov dl,0
+fpathloop: mov ax,[es:bx+2]
+ cmp ax,0ffffh
+ jz nofirst
+ cmp cl,al
+ jc nofirst
+ cmp ch,ah
+ jc nofirst
+ mov ax,[es:bx+4]
+ cmp cl,al
+ jnc nofirst
+ cmp ch,ah
+ jnc nofirst
+ jmp gotfirst
+nofirst: add bx,8
+ inc dl
+ cmp dl,12
+ jnz fpathloop
+ mov al,0
+ ret
+gotfirst: mov al,[es:bx+6]
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Turnpathon proc near ;turns path on permanently
+
+ push ax ax
+ mov cl,255
+ mov ch,roomnum
+ add ch,100
+ call findormake
+ pop ax
+ call getroomspaths
+ pop ax
+ cmp al,255
+ jz nopathon
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,255
+ mov [es:bx+6],al
+nopathon: ret
+
+ endp
+
+
+
+
+
+
+
+Turnpathoff proc near ;turns path on permanently
+
+ push ax ax
+ mov cl,0
+ mov ch,roomnum
+ add ch,100
+ call findormake
+ pop ax
+ call getroomspaths
+ pop ax
+ cmp al,255
+ jz nopathoff
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,0
+ mov [es:bx+6],al
+nopathoff: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Turnanypathon proc near
+
+ push ax ax
+ mov cl,255
+ mov ch,ah
+ add ch,100
+ call findormake
+ pop ax
+ mov al,ah
+ mov ah,0
+ mov cx,144
+ mul cx
+ mov es,reels
+ mov bx,pathdata
+ add bx,ax
+ pop ax
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,255
+ mov [es:bx+6],al
+ ret
+
+ endp
+
+
+
+
+
+
+Turnanypathoff proc near
+
+ push ax ax
+ mov cl,0
+ mov ch,ah
+ add ch,100
+ call findormake
+ pop ax
+ mov al,ah
+ mov ah,0
+ mov cx,144
+ mul cx
+ mov es,reels
+ mov bx,pathdata
+ add bx,ax
+ pop ax
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,0
+ mov [es:bx+6],al
+ ret
+
+ endp
+
+
+
+
+
+Checkifpathison proc near
+
+ push ax
+ call getroomspaths
+ pop ax
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,[es:bx+6]
+ cmp al,255
+ ret
+
+ endp
+
+
+
+
+
+Afternewroom proc near
+
+ cmp nowinnewroom,0
+ jz notnew
+ mov timecount,0
+ call createpanel
+ mov commandtype,0
+ call findroominloc
+
+ cmp ryanon,1
+ jz ryansoff
+
+ mov al,ryanx
+ add al,12
+ mov ah,ryany
+ add ah,12
+ call findpathofpoint
+ mov manspath,dl
+ call findxyfrompath
+ mov resetmanxy,1
+
+ryansoff: mov newobs,1
+ call drawfloor
+ mov lookcounter,160
+ mov nowinnewroom,0
+
+ call showicon
+ call spriteupdate
+ call printsprites
+ call undertextline
+ call reelsonscreen
+ call mainscreen
+ call getunderzoom
+ call zoom
+ call worktoscreenm
+ call walkintoroom
+ call reminders
+ call atmospheres
+notnew: ret
+
+ endp
+
+
+
+
+
+
+Atmospheres proc near
+
+ mov cl,mapx
+ mov ch,mapy
+ mov bx,offset cs:atmospherelist
+nextatmos: mov al,[cs:bx]
+ cmp al,255
+ jz nomoreatmos
+ cmp al,reallocation
+ jnz wrongatmos
+ mov ax,[cs:bx+1]
+ cmp ax,cx
+ jnz wrongatmos
+ mov ax,[cs:bx+3]
+ cmp al,ch0playing
+ jz playingalready
+ cmp location,45
+ jnz notweb
+ cmp reeltowatch,45
+ jz wrongatmos
+notweb: call playchannel0
+ cmp reallocation,2
+ cmp mapy,0
+ jz fullvol
+ jnz notlouisvol
+ cmp mapy,10
+ jnz notlouisvol
+ cmp mapx,22
+ jnz notlouisvol
+ mov volume,5
+notlouisvol: if cd
+ cmp reallocation,14
+ jnz notmad1
+ cmp mapx,33
+ jz ismad2
+ cmp mapx,22
+ jnz notmad1
+ mov volume,5
+ ret
+ismad2: mov volume,0
+ ret
+notmad1: endif
+playingalready: cmp reallocation,2
+ jnz notlouisvol2
+ cmp mapx,22
+ jz louisvol
+ cmp mapx,11
+ jnz notlouisvol2
+fullvol: mov volume,0
+notlouisvol2: ret
+louisvol: mov volume,5
+ ret
+wrongatmos: add bx,5
+ jmp nextatmos
+nomoreatmos: call cancelch0
+ ret
+
+atmospherelist: db 0,33,10,15,255
+ db 0,22,10,15,255
+ db 0,22,0,15,255
+ db 0,11,0,15,255
+ db 0,11,10,15,255
+ db 0,0,10,15,255
+
+ db 1,44,10,6,255 ;location,map x,y,sound,repeat
+ db 1,44,0,13,255
+
+ db 2,33,0,6,255
+ db 2,22,0,5,255
+ db 2,22,10,16,255
+ db 2,11,10,16,255
+
+ db 3,44,0,15,255
+ db 3,33,10,6,255
+ db 3,33,0,5,255
+
+ db 4,11,30,6,255
+ db 4,22,30,5,255
+ db 4,22,20,13,255
+
+ db 10,33,30,6,255
+ db 10,22,30,6,255
+
+ db 9,22,10,6,255
+ db 9,22,20,16,255
+ db 9,22,30,16,255
+ db 9,22,40,16,255
+ db 9,22,50,16,255
+
+ db 6,11,30,6,255
+ db 6,0,10,15,255
+ db 6,0,20,15,255
+ db 6,11,20,15,255
+ db 6,22,20,15,255
+
+ db 7,11,20,6,255
+ db 7,0,20,6,255
+ db 7,0,30,6,255
+
+ db 55,44,0,5,255
+ db 55,44,10,5,255
+
+ db 5,22,30,6,255
+ if demo
+ db 5,22,20,16,255
+ db 5,22,10,16,255
+ else
+ db 5,22,20,15,255
+ db 5,22,10,15,255
+ endif
+
+ db 24,22,0,15,255
+ db 24,33,0,15,255
+ db 24,44,0,15,255
+ db 24,33,10,15,255
+
+ db 8,0,10,6,255
+ db 8,11,10,6,255
+ db 8,22,10,6,255
+ db 8,33,10,6,255
+ db 8,33,20,6,255
+ db 8,33,30,6,255
+ db 8,33,40,6,255
+ db 8,22,40,6,255
+ db 8,11,40,6,255
+
+ db 11,11,20,12,255
+ db 11,11,30,12,255
+ db 11,22,20,12,255
+ db 11,22,30,12,255
+
+ db 12,22,20,12,255
+ db 13,22,20,12,255
+ db 13,33,20,12,255
+
+ db 14,44,20,12,255
+ db 14,33,0,12,255
+ db 14,33,10,12,255
+ db 14,33,20,12,255
+ db 14,33,30,12,255
+ db 14,33,40,12,255
+ db 14,22,0,16,255
+
+ db 19,0,0,12,255
+
+ db 20,0,20,16,255
+ db 20,0,30,16,255
+ db 20,11,30,16,255
+ db 20,0,40,16,255
+ db 20,11,40,16,255
+
+ if demo
+ db 21,11,10,16,255
+ db 21,11,20,16,255
+ db 21,0,20,16,255
+ db 21,22,20,16,255
+ db 21,33,20,16,255
+ db 21,44,20,16,255
+ db 21,44,10,16,255
+ else
+ db 21,11,10,15,255
+ db 21,11,20,15,255
+ db 21,0,20,15,255
+ db 21,22,20,15,255
+ db 21,33,20,15,255
+ db 21,44,20,15,255
+ db 21,44,10,15,255
+ endif
+
+ db 22,22,10,16,255
+ db 22,22,20,16,255
+
+ db 23,22,30,13,255
+ db 23,22,40,13,255
+ db 23,33,40,13,255
+ db 23,11,40,13,255
+ db 23,0,40,13,255
+ db 23,0,50,13,255
+
+ db 25,11,40,16,255
+ db 25,11,50,16,255
+ db 25,0,50,16,255
+
+ db 27,11,20,16,255
+ db 27,11,30,16,255
+
+ db 29,11,10,16,255
+
+ db 45,22,30,12,255
+ db 45,22,40,12,255
+ db 45,22,50,12,255
+
+ db 46,22,40,12,255
+ db 46,11,50,12,255
+ db 46,22,50,12,255
+ db 46,33,50,12,255
+
+ db 47,0,0,12,255
+
+ db 26,22,20,16,255
+ db 26,33,10,16,255
+ db 26,33,20,16,255
+ db 26,33,30,16,255
+ db 26,44,30,16,255
+ db 26,22,30,16,255
+ db 26,11,30,16,255
+ db 26,11,20,16,255
+ db 26,0,20,16,255
+ db 26,11,40,16,255
+ db 26,0,40,16,255
+ db 26,22,40,16,255
+ db 26,11,50,16,255
+
+ db 28,0,30,15,255
+ db 28,0,20,15,255
+ db 28,0,40,15,255
+ db 28,11,30,15,255
+ db 28,11,20,15,255
+ db 28,22,30,15,255
+ db 28,22,20,15,255
+
+ db 255
+
+ endp
+
+
+
+
+
+
+Walkintoroom proc near
+
+ cmp location,14
+ jnz notlair
+ cmp mapx,22
+ jnz notlair
+ mov destination,1
+ mov finaldest,1
+ call autosetwalk
+notlair: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+Afterintroroom proc near
+
+ cmp nowinnewroom,0
+ jz notnewintro
+ call clearwork
+ call findroominloc
+ mov newobs,1
+ call drawfloor
+ call reelsonscreen
+ call spriteupdate
+ call printsprites
+ call worktoscreen
+ mov nowinnewroom,0
+notnewintro: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+Obname proc near
+
+ cmp reasseschanges,0
+ jz notnewpath
+ mov reasseschanges,0
+ jmp diff
+
+notnewpath: cmp ah,commandtype
+ jz notdiffob
+ jmp diff
+notdiffob: cmp al,command
+ jnz diff
+ cmp walkandexam,1
+ jz walkandexamine
+ cmp mousebutton,0
+ jz noobselect
+ cmp commandtype,3
+ jnz isntblock
+ cmp lastflag,2
+ jc noobselect
+isntblock: mov bl,manspath
+ cmp bl,pointerspath
+ jnz wantstowalk
+ cmp commandtype,3
+ jz wantstowalk
+ call finishedwalking
+ jnz noobselect
+ cmp commandtype,5
+ jz wantstotalk
+ cmp watchingtime,0
+ jnz noobselect
+ call examineob
+ ret
+wantstotalk: cmp watchingtime,0
+ jnz noobselect
+ call talk
+ ret
+walkandexamine: call finishedwalking
+ jnz noobselect
+ mov al,walkexamtype
+ mov commandtype,al
+ mov al,walkexamnum
+ mov command,al
+ mov walkandexam,0
+ cmp commandtype,5
+ jz noobselect
+ call examineob
+ ret
+wantstowalk: call setwalk
+ mov reasseschanges,1
+noobselect: ret
+
+
+diff: mov command,al
+ mov commandtype,ah
+diff2: cmp linepointer,254
+ jnz middleofwalk
+ cmp watchingtime,0
+ jnz middleofwalk
+ mov al,facing
+ cmp al,turntoface
+ jnz middleofwalk
+ cmp commandtype,3
+ jnz notblock
+ mov bl,manspath
+ cmp bl,pointerspath
+ jnz dontcheck
+ mov cl,ryanx ;look under feet to see if
+ add cl,12 ;any flags are there
+ mov ch,ryany
+ add ch,12
+ call checkone
+ cmp cl,2
+ jc isblock
+dontcheck: call getflagunderp
+ cmp lastflag,2
+ jc isblock
+ cmp lastflag,128
+ jnc isblock
+ jmp toofaraway ; only here for turning on doorstep
+notblock: mov bl,manspath
+ cmp bl,pointerspath
+ jnz toofaraway
+ cmp commandtype,3
+ jz isblock
+ cmp commandtype,5
+ jz isaperson
+ call examineobtext
+ ret
+middleofwalk: call blocknametext
+ ret
+isblock: call blocknametext
+ ret
+isaperson: call personnametext
+ ret
+toofaraway: call walktotext
+ ret
+
+ endp
+
+
+
+
+
+
+
+Finishedwalking proc near
+
+ cmp linepointer,254
+ jnz iswalking
+ mov al,facing
+ cmp al,turntoface
+iswalking: ret
+
+ endp
+
+
+
+
+
+
+
+Examineobtext proc near
+
+ mov bl,command
+ mov bh,commandtype
+ mov al,1
+ call commandwithob
+ ret
+
+ endp
+
+
+
+
+
+Commandwithob proc near
+
+ push ax
+ push ax bx cx dx es ds si di
+ call deltextline
+ pop di si ds es dx cx bx ax
+
+ push bx
+ mov ah,0
+ add ax,ax
+ mov bx,ax
+ mov es,commandtext
+ mov ax,[es:bx]
+ add ax,textstart
+ mov si,ax
+
+ mov di,textaddressx
+ mov bx,textaddressy
+ mov dl,textlen
+ mov al,0
+ mov ah,0
+ call printdirect
+
+ pop ax
+ mov di,offset cs:commandline
+ call copyname
+ pop ax
+
+ mov di,lastxpos
+ cmp al,0
+ jz noadd
+ add di,5
+noadd: mov bx,textaddressy
+ push cs
+ pop es
+ mov si,offset cs:commandline
+ mov dl,textlen
+ mov al,0
+ mov ah,0
+ call printdirect
+ mov newtextline,1
+ ret
+
+commandline: db "OBJECT NAME ONE ",0
+
+ endp
+
+
+
+
+Commandonly proc near
+
+ push ax bx cx dx es ds si di
+ call deltextline
+ pop di si ds es dx cx bx ax
+
+ mov ah,0
+ add ax,ax
+ mov bx,ax
+ mov es,commandtext
+ mov ax,[es:bx]
+ add ax,textstart
+ mov si,ax
+
+ mov di,textaddressx
+ mov bx,textaddressy
+ mov dl,textlen
+ mov al,0
+ mov ah,0
+ call printdirect
+ mov newtextline,1
+ ret
+
+ endp
+
+
+
+
+
+Printmessage proc near
+
+ push dx bx di
+ mov ah,0
+ add ax,ax
+ mov bx,ax
+ mov es,commandtext
+ mov ax,[es:bx]
+ add ax,textstart
+ mov si,ax
+ pop di bx dx
+ mov al,0
+ mov ah,0
+ call printdirect
+ ret
+
+ endp
+
+
+
+Printmessage2 proc near
+
+ push dx bx di
+ push ax
+ mov ah,0
+ add ax,ax
+ mov bx,ax
+ mov es,commandtext
+ mov ax,[es:bx]
+ add ax,textstart
+ mov si,ax
+ pop ax
+
+searchmess: push ax
+ call findnextcolon
+ pop ax
+ dec ah
+ jnz searchmess
+
+ pop di bx dx
+ mov al,0
+ mov ah,0
+ call printdirect
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Blocknametext proc near
+
+ mov bl,command
+ mov bh,commandtype
+ mov al,0
+ call commandwithob
+ ret
+
+ endp
+
+
+
+
+Personnametext proc near
+
+ mov bl,command
+ and bl,127
+ mov bh,commandtype
+ mov al,2
+ call commandwithob
+ ret
+
+ endp
+
+
+
+
+
+
+
+Walktotext proc near
+
+ mov bl,command
+ mov bh,commandtype
+ mov al,3
+ call commandwithob
+ ret
+
+ endp
+
+
+
+
+
+Getflagunderp proc near
+
+ mov cx,mousex
+ sub cx,mapadx
+ mov ax,mousey
+ sub ax,mapady
+ mov ch,al
+ call checkone
+ mov lastflag,cl
+ mov lastflagex,ch
+ ret
+
+ endp
+
+
+
+
+
+Setwalk proc near
+
+ cmp linepointer,254
+ jnz alreadywalking
+ mov al,pointerspath
+ cmp al,manspath
+ jz cantwalk2
+ cmp watchmode,1
+ jz holdingreel
+ cmp watchmode,2
+ jz cantwalk
+ mov destination,al
+ mov finaldest,al
+ cmp mousebutton,2
+ jnz notwalkandexam
+ cmp commandtype,3
+ jz notwalkandexam
+ mov walkandexam,1
+ mov al,commandtype
+ mov walkexamtype,al
+ mov al,command
+ mov walkexamnum,al
+notwalkandexam: call autosetwalk
+cantwalk: ret
+cantwalk2: call facerightway
+ ret
+alreadywalking: mov al,pointerspath
+ mov finaldest,al
+ ret
+
+holdingreel: mov destafterhold,al
+ mov watchmode,2
+ ret
+
+ endp
+
+
+
+
+
+
+
+Autosetwalk proc near
+
+ mov al,manspath
+ cmp finaldest,al
+ jnz notsamealready
+ ret
+notsamealready: call getroomspaths
+ call checkdest
+ push bx
+ mov al,manspath
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,[es:bx]
+ mov ah,0
+ sub ax,12
+ mov linestartx,ax
+ mov al,[es:bx+1]
+ mov ah,0
+ sub ax,12
+ mov linestarty,ax
+ pop bx
+
+ mov al,destination
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,[es:bx]
+ mov ah,0
+ sub ax,12
+ mov lineendx,ax
+ mov al,[es:bx+1]
+ mov ah,0
+ sub ax,12
+ mov lineendy,ax
+ call bresenhams
+
+ cmp linedirection,0
+ jz normalline
+ mov al,linelength
+ dec al
+ mov linepointer,al
+ mov linedirection,1
+ ret
+
+normalline: mov linepointer,0
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Checkdest proc near
+
+ push bx
+ add bx,12*8
+ mov ah,manspath
+ mov cl,4
+ shl ah,cl
+ mov al,destination
+
+ mov cl,24
+ mov ch,destination
+checkdestloop: mov dh,[es:bx]
+ and dh,11110000b
+ mov dl,[es:bx]
+ and dl,00001111b
+ cmp ax,dx
+ jnz nextcheck
+ mov al,[es:bx+1]
+ and al,15
+ mov destination,al
+ pop bx
+ ret
+nextcheck: mov dl,[es:bx]
+ and dl,11110000b
+ shr dl,1
+ shr dl,1
+ shr dl,1
+ shr dl,1
+ mov dh,[es:bx]
+ and dh,00001111b
+ shl dh,1
+ shl dh,1
+ shl dh,1
+ shl dh,1
+ cmp ax,dx
+ jnz nextcheck2
+ mov ch,[es:bx+1]
+ and ch,15
+nextcheck2: add bx,2
+ dec cl
+ jnz checkdestloop
+ mov destination,ch
+ pop bx
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bresenhams proc near
+
+ call workoutframes
+
+ mov dx,seg linedata
+ mov es,dx
+ mov di,offset es:linedata
+ mov si,1
+ mov linedirection,0
+
+ mov cx,lineendx
+ sub cx,linestartx
+ jz vertline
+ jns line1
+
+ neg cx
+ mov bx,lineendx
+ xchg bx,linestartx
+ mov lineendx,bx
+
+ mov bx,lineendy
+ xchg bx,linestarty
+ mov lineendy,bx
+ mov linedirection,1
+
+line1: mov bx,lineendy
+ sub bx,linestarty
+ jz horizline
+ jns line3
+
+ neg bx
+ neg si
+
+line3: push si
+ mov lineroutine,0 ; means lo slope
+ cmp bx,cx
+ jle line4
+ mov lineroutine,1 ; means hi slope
+ xchg bx,cx
+
+line4: shl bx,1
+ mov increment1,bx
+ sub bx,cx
+ mov si,bx
+ sub bx,cx
+ mov increment2,bx
+
+ mov ax,linestartx
+ mov bx,linestarty
+ mov ah,bl
+ inc cx
+ pop bx
+ cmp lineroutine,1
+ jz hislope
+ jmp loslope
+
+vertline: mov ax,linestarty
+ mov bx,lineendy
+ mov cx,bx
+ sub cx,ax
+ jge line31
+
+ neg cx
+ mov ax,bx
+ mov linedirection,1
+
+line31: inc cx
+ mov bx,linestartx
+ xchg ax,bx
+ mov ah,bl
+ mov bx,si
+line32: stosw
+ add ah,bl
+ loop line32
+ jmp lineexit
+
+
+horizline: mov ax,linestartx
+ mov bx,linestarty
+ mov ah,bl
+ inc cx
+horizloop: stosw
+ inc al
+ loop horizloop
+ jmp lineexit
+
+
+loslope:
+loloop: stosw
+ inc al
+ or si,si
+ jns line12
+ add si,increment1
+ loop loloop
+ jmp lineexit
+
+line12: add si,increment2
+ add ah,bl
+ loop loloop
+ jmp lineexit
+
+
+
+hislope:
+hiloop: stosw
+ add ah,bl
+ or si,si
+ jns line23
+ add si,increment1
+ loop hiloop
+ jmp lineexit
+
+line23: add si,increment2
+ inc al
+ loop hiloop
+
+lineexit: sub di,offset es:linedata
+ mov ax,di
+ shr ax,1
+ mov linelength,al
+ ret
+
+ endp
+
+
+
+
+
+
+
+Workoutframes proc near
+
+ mov bx,linestartx
+ add bx,32
+ mov ax,lineendx
+ add ax,32
+ sub bx,ax
+ jnc notneg1
+ neg bx
+notneg1: mov cx,linestarty
+ add cx,32
+ mov ax,lineendy
+ add ax,32
+ sub cx,ax
+ jnc notneg2
+ neg cx
+notneg2: cmp bx,cx
+ jnc tendstohoriz
+ mov dl,2
+ mov ax,cx
+ shr ax,1
+ cmp bx,ax
+ jc gotquad
+ mov dl,1
+ jmp gotquad
+tendstohoriz: mov dl,0
+ mov ax,bx
+ shr ax,1
+ cmp cx,ax
+ jc gotquad
+ mov dl,1
+ jmp gotquad
+
+gotquad: mov bx,linestartx
+ add bx,32
+ mov ax,lineendx
+ add ax,32
+ sub bx,ax
+ jc isinright
+isinleft: mov cx,linestarty
+ add cx,32
+ mov ax,lineendy
+ add ax,32
+ sub cx,ax
+ jnc topleft
+ cmp dl,1
+ jz noswap1
+ xor dl,2
+noswap1: add dl,4
+ jmp success
+topleft: add dl,6
+ jmp success
+
+isinright: mov cx,linestarty
+ add cx,32
+ mov ax,lineendy
+ add ax,32
+ sub cx,ax
+ jnc botright
+ add dl,2
+ jmp success
+botright: cmp dl,1
+ jz noswap2
+ xor dl,2
+noswap2:
+
+success: and dl,7
+ mov turntoface,dl
+ mov turndirection,0
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;Multiply8 proc near
+;
+; mov ah,0
+; mov cx,8
+; mul cx
+; ret
+;
+; endp
+
+
+
+
+
+
+Getroomspaths proc near
+
+ mov al,roomnum
+ mov ah,0
+ mov cx,144
+ mul cx
+ mov es,reels
+ mov bx,pathdata
+ add bx,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Copyname proc near
+
+ push di
+ call findobname
+ pop di
+ push cs
+ pop es
+
+copytext: mov cx,28
+make: lodsb
+ cmp al,":"
+ jz finishmakename
+ cmp al,0
+ jz finishmakename
+ stosb
+ loop make
+
+finishmakename: inc cx
+ mov al,0
+ stosb
+ ret
+ mov al,255
+ rep stosb
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Findobname proc near
+
+ push ax
+ mov ah,0
+ add ax,ax
+ mov bx,ax
+ pop ax
+
+ cmp ah,5
+ jnz notpersonname
+
+ push ax
+ and al,127
+ mov ah,0
+ mov bx,64*2
+ mul bx
+ mov si,ax
+ mov ds,people
+ add si,persontxtdat
+ mov cx,persontext
+ mov ax,[si]
+ add ax,cx
+ mov si,ax
+ pop ax
+ ret
+
+notpersonname: cmp ah,4
+ jnz notextraname
+ mov ds,extras
+ add bx,extextdat
+ mov ax,[bx]
+ add ax,extext
+ mov si,ax
+ ret
+
+notextraname: cmp ah,2
+ jnz notfreename
+ mov ds,freedesc
+ add bx,freetextdat
+ mov ax,[bx]
+ add ax,freetext
+ mov si,ax
+ ret
+
+notfreename: cmp ah,1
+ jnz notsetname
+ mov ds,setdesc
+ add bx,settextdat
+ mov ax,[bx]
+ add ax,settext
+ mov si,ax
+ ret
+
+notsetname: mov ds,blockdesc
+ add bx,blocktextdat
+ mov ax,[bx]
+ add ax,blocktext
+ mov si,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+;-------------------------------------------Printing of non scrolling icons----
+
+Showicon proc near
+
+ cmp reallocation,50
+ jnc isdream1
+ call showpanel
+ call showman
+ call roomname
+ call panelicons1
+ call zoomicon
+ ret
+
+isdream1: mov ds,tempsprites
+ mov di,72
+ mov bx,2
+ mov al,45
+ mov ah,0
+ call showframe
+ mov ds,tempsprites
+ mov di,72+47
+ mov bx,2
+ mov al,46
+ mov ah,0
+ call showframe
+ mov ds,tempsprites
+ mov di,69-10
+ mov bx,21
+ mov al,49
+ mov ah,0
+ call showframe
+
+ mov ds,tempsprites
+ mov di,160+88
+ mov bx,2
+ mov al,45
+ mov ah,4
+ call showframe
+ mov ds,tempsprites
+ mov di,160+43
+ mov bx,2
+ mov al,46
+ mov ah,4
+ call showframe
+ mov ds,tempsprites
+ mov di,160+101
+ mov bx,21
+ mov al,49
+ mov ah,4
+ call showframe
+ call middlepanel
+ ret
+
+ endp
+
+
+
+
+
+Middlepanel proc near
+
+ mov ds,tempsprites
+ mov di,72+47+20
+ mov bx,0
+ mov al,48
+ mov ah,0
+ call showframe
+ mov ds,tempsprites
+ mov di,72+19
+ mov bx,21
+ mov al,47
+ mov ah,0
+ call showframe
+ mov ds,tempsprites
+ mov di,160+23
+ mov bx,0
+ mov al,48
+ mov ah,4
+ call showframe
+ mov ds,tempsprites
+ mov di,160+71
+ mov bx,21
+ mov al,47
+ mov ah,4
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Showman proc near
+
+ mov ds,icons1
+ mov di,0
+ mov bx,0
+ mov al,0
+ mov ah,0
+ call showframe
+ mov ds,icons1
+ mov di,0
+ mov bx,114
+ mov al,1
+ mov ah,0
+ call showframe
+
+ cmp shadeson,0
+ jz notverycool
+
+ mov ds,icons1
+ mov di,28
+ mov bx,25
+ mov al,2
+ mov ah,0
+ call showframe
+notverycool: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Showpanel proc near
+
+ mov ds,icons1
+ mov di,72
+ mov bx,0
+ mov al,19
+ mov ah,0
+ call showframe
+ mov ds,icons1
+ mov di,192
+ mov bx,0
+ mov al,19
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Roomname proc near
+
+ mov di,88
+ mov bx,18
+ mov al,53
+ mov dl,240
+ call printmessage
+
+ mov bl,roomnum
+ cmp bl,32
+ jc notover32
+ sub bl,32
+
+notover32: mov bh,0
+ add bx,bx
+ mov es,roomdesc
+ add bx,intextdat
+ mov ax,[es:bx]
+ add ax,intext
+ mov si,ax
+
+ mov linespacing,7
+ mov di,88
+ mov bx,25
+ mov dl,120
+ cmp watchon,1
+ jz gotpl
+ mov dl,160
+gotpl: mov al,0
+ mov ah,0
+ call printdirect
+ mov linespacing,10
+
+ call usecharset1
+ ret
+
+ endp
+
+
+
+
+
+
+Usecharset1 proc near
+
+ mov ax,charset1
+ mov currentset,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+Usetempcharset proc near
+
+ mov ax,tempcharset
+ mov currentset,ax
+ ret
+
+ endp
+
+
+
+
+
+Showexit proc near
+
+ mov ds,icons1
+ mov di,274
+ mov bx,154
+ mov al,11
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+Panelicons1 proc near
+
+ mov di,0
+ cmp watchon,1
+ jz watchison
+ mov di,48
+watchison: push di
+ mov ds,icons2
+ add di,204
+ mov bx,4
+ mov al,2
+ mov ah,0
+ call showframe
+ pop di
+ push di
+ cmp zoomon,1
+ jz zoomisoff
+ mov ds,icons1
+ add di,228
+ mov bx,8
+ mov al,5
+ mov ah,0
+ call showframe
+zoomisoff: pop di
+ call showwatch
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+Showwatch proc near
+
+ cmp watchon,0
+ jz nowristwatch
+ mov ds,icons1
+ mov di,250
+ mov bx,1
+ mov al,6
+ mov ah,0
+ call showframe
+ call showtime
+nowristwatch: ret
+
+ endp
+
+
+Gettime proc near
+
+ mov ah,2ch
+ int 21h
+ mov secondcount,dh
+ mov minutecount,cl
+ mov hourcount,ch
+ ret
+
+ endp
+
+
+
+
+
+Zoomicon proc near
+
+ cmp zoomon,0
+ jz nozoom1
+ mov ds,icons1
+ mov di,zoomx
+ mov bx,zoomy-1
+ mov al,8
+ mov ah,0
+ call showframe
+nozoom1: ret
+
+ endp
+
+
+
+
+
+
+Showblink proc near
+
+ cmp manisoffscreen,1
+ jz finblink1
+ inc blinkcount
+ cmp shadeson,0
+ jnz finblink1
+ cmp reallocation,50
+ jnc eyesshut
+ mov al,blinkcount
+ cmp al,3
+ jnz finblink1
+ mov blinkcount,0
+ mov al,blinkframe
+ inc al
+ mov blinkframe,al
+ cmp al,6
+ jc nomorethan6
+ mov al,6
+nomorethan6: mov ah,0
+ mov bx,offset cs:blinktab
+ add bx,ax
+
+ mov al,[cs:bx]
+ mov ds,icons1
+ mov di,44
+ mov bx,32
+ mov ah,0
+ call showframe
+finblink1: ret
+
+eyesshut: ;mov al,32
+ ;mov ds,icons1
+ ;mov di,44
+ ;mov bx,32
+ ;mov ah,0
+ ;call showframe
+ ret
+
+blinktab: db 16,18,18,17,16,16,16
+
+ endp
+
+
+
+
+
+
+Dumpblink proc near
+
+ cmp shadeson,0
+ jnz nodumpeye
+ cmp blinkcount,0
+ jnz nodumpeye
+ mov al,blinkframe
+ cmp al,6
+ jnc nodumpeye
+ push ds
+ mov di,44
+ mov bx,32
+ mov cl,16
+ mov ch,12
+ call multidump
+ pop ds
+nodumpeye: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Worktoscreenm proc near
+
+ call animpointer
+ call readmouse
+ call showpointer
+ call vsync
+ call worktoscreen
+ call delpointer
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+;-------------------------------------------------------------Blank routine----
+
+
+
+
+Blank proc near
+
+ cmp commandtype,199
+ jz alreadyblnk
+ mov commandtype,199
+ mov al,0
+ call commandonly
+alreadyblnk: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;---------------------------------------------------------Standard routines----
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allpointer proc near
+
+ call readmouse
+ call showpointer
+ call dumppointer
+ ret
+
+ endp
+
+
+
+
+
+
+
+Hangonp proc near
+
+ push cx
+ add cx,cx
+ pop ax
+ add cx,ax
+ mov maintimer,0
+ mov al,pointerframe
+ mov ah,pickup
+ push ax
+ mov pointermode,3
+ mov pickup,0
+ push cx
+ mov commandtype,255
+ call readmouse
+ call animpointer
+ call showpointer
+ call vsync
+ call dumppointer
+ pop cx
+
+hangloop: push cx
+ call delpointer
+ call readmouse
+ call animpointer
+ call showpointer
+ call vsync
+ call dumppointer
+ pop cx
+ mov ax,mousebutton
+ cmp ax,0
+ jz notpressed
+ cmp ax,oldbutton
+ jnz getoutofit
+notpressed: loop hangloop
+
+getoutofit: call delpointer
+ pop ax
+ mov pointerframe,al
+ mov pickup,ah
+ mov pointermode,0
+ ret
+
+ endp
+
+
+
+
+
+Hangonw proc near
+
+hangloopw: push cx
+ call delpointer
+ call readmouse
+ call animpointer
+ call showpointer
+ call vsync
+ call dumppointer
+ pop cx
+ loop hangloopw
+ ret
+
+ endp
+
+
+
+
+Hangoncurs proc near
+
+monloop1: push cx
+ call printcurs
+ call vsync
+ call delcurs
+ pop cx
+ loop monloop1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Getunderzoom proc near
+
+ mov di,zoomx+5
+ mov bx,zoomy+4
+ mov ds,buffers
+ mov si,zoomspace
+ mov cl,46
+ mov ch,40
+ call multiget
+ ret
+
+ endp
+
+
+
+
+
+Dumpzoom proc near
+
+ cmp zoomon,1
+ jnz notzoomon
+ mov di,zoomx+5
+ mov bx,zoomy+4
+ mov cl,46
+ mov ch,40
+ call multidump
+notzoomon: ret
+
+ endp
+
+
+
+
+
+
+
+Putunderzoom proc near
+
+ mov di,zoomx+5
+ mov bx,zoomy+4
+ mov ds,buffers
+ mov si,zoomspace
+ mov cl,46
+ mov ch,40
+ call multiput
+ ret
+
+ endp
+
+
+
+
+
+Crosshair proc near
+
+ cmp commandtype,3
+ jz nocross
+ cmp commandtype,10
+ jnc nocross
+
+ mov es,workspace
+ mov ds,icons1
+ mov di,zoomx+24
+ mov bx,zoomy+19
+ mov al,9
+ mov ah,0
+ call showframe
+ ret
+
+nocross: mov es,workspace
+ mov ds,icons1
+ mov di,zoomx+24
+ mov bx,zoomy+19
+ mov al,29
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+Showpointer proc near
+
+ call showblink
+ mov di,mousex
+ mov oldpointerx,di
+ mov bx,mousey
+ mov oldpointery,bx
+ cmp pickup,1
+ jz itsanobject
+
+ push bx di
+ mov ds,icons1
+ mov al,pointerframe
+ add al,20
+ mov ah,0
+ add ax,ax
+ mov si,ax
+ add ax,ax
+ add si,ax
+ mov cx,[si]
+ cmp cl,12
+ jnc notsmallx
+ mov cl,12
+notsmallx: cmp ch,12
+ jnc notsmally
+ mov ch,12
+notsmally: mov pointerxs,cl
+ mov pointerys,ch
+ push ds
+ mov ds,buffers
+ mov si,pointerback
+ call multiget
+ pop ds di bx
+ push di bx
+ mov al,pointerframe
+ add al,20
+ mov ah,0
+ call showframe
+ pop bx di
+ ret
+
+itsanobject: mov al,itemframe
+ mov ds,extras
+ cmp objecttype,4
+ jz itsfrominv
+ mov ds,freeframes
+itsfrominv: mov cl,al
+ add al,al
+ add al,cl
+ inc al
+ mov ah,0
+
+ push ax
+ add ax,ax
+ mov si,ax
+ add ax,ax
+ add si,ax
+ mov ax,2080
+ mov cx,[si]
+ cmp cl,12
+ jnc notsmallx2
+ mov cl,12
+notsmallx2: cmp ch,12
+ jnc notsmally2
+ mov ch,12
+notsmally2: mov pointerxs,cl
+ mov pointerys,ch
+ pop ax
+
+ push di bx
+ push ax bx di ds
+ mov al,cl
+ mov ah,0
+ shr ax,1
+ sub oldpointerx,ax
+ sub di,ax
+ mov al,ch
+ shr ax,1
+ sub oldpointery,ax
+ sub bx,ax
+ mov ds,buffers
+ mov si,pointerback
+ call multiget
+ pop ds di bx ax
+ mov ah,128
+ call showframe
+ pop bx di
+ mov ds,icons1
+ mov al,3
+ mov ah,128
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+Delpointer proc near
+
+ mov ax,oldpointerx
+ cmp ax,0ffffh
+ jz nevershown
+ mov delherex,ax
+ mov ax,oldpointery
+ mov delherey,ax
+ mov cl,pointerxs
+ mov delxs,cl
+ mov ch,pointerys
+ mov delys,ch
+ mov ds,buffers
+ mov si,pointerback
+ mov di,delherex
+ mov bx,delherey
+ call multiput
+nevershown: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Dumppointer proc near
+
+ call dumpblink
+ mov cl,delxs
+ mov ch,delys
+ mov di,delherex
+ mov bx,delherey
+ call multidump
+
+ mov bx,oldpointery
+ mov di,oldpointerx
+ cmp di,delherex
+ jnz difffound
+ cmp bx,delherey
+ jz notboth
+difffound: mov cl,pointerxs
+ mov ch,pointerys
+ call multidump
+notboth: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+Undertextline proc near
+
+ mov di,textaddressx
+ mov bx,textaddressy
+ if foreign
+ sub bx,3
+ endif
+ mov ds,buffers
+ mov si,textunder
+ mov cl,undertextsizex
+ mov ch,undertextsizey
+ call multiget
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Deltextline proc near
+
+ mov di,textaddressx
+ mov bx,textaddressy
+ if foreign
+ sub bx,3
+ endif
+ mov ds,buffers
+ mov si,textunder
+ mov cl,undertextsizex
+ mov ch,undertextsizey
+ call multiput
+ ret
+
+ endp
+
+
+
+
+
+Dumptextline proc near
+
+ cmp newtextline,1
+ jnz nodumptextline
+ mov newtextline,0
+ mov di,textaddressx
+ mov bx,textaddressy
+ if foreign
+ sub bx,3
+ endif
+ mov cl,undertextsizex
+ mov ch,undertextsizey
+ call multidump
+nodumptextline: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Animpointer proc near
+
+ cmp pointermode,2
+ jz combathand
+ cmp pointermode,3
+ jz mousehand
+
+ cmp watchingtime,0
+ jz notwatchpoint
+ mov pointerframe,11
+ ret
+notwatchpoint: mov pointerframe,0
+ cmp inmaparea,0
+ jz gothand
+ cmp pointerfirstpath,0
+ jz gothand
+arrow: call getflagunderp
+ cmp cl,2
+ jc gothand
+ cmp cl,128
+ jnc gothand
+ mov pointerframe,3
+ test cl,4
+ jnz gothand
+ mov pointerframe,4
+ test cl,16
+ jnz gothand
+ mov pointerframe,5
+ test cl,2
+ jnz gothand
+ mov pointerframe,6
+ test cl,8
+ jnz gothand
+ mov pointerframe,8
+gothand: ret
+
+mousehand: cmp pointerspeed,0
+ jz rightspeed3
+ dec pointerspeed
+ jmp finflashmouse
+rightspeed3: mov pointerspeed,5
+ inc pointercount
+ cmp pointercount,16
+ jnz finflashmouse
+ mov pointercount,0
+finflashmouse: mov al,pointercount
+ mov ah,0
+ mov bx,offset cs:flashmousetab
+ add bx,ax
+ mov al,[cs:bx]
+ mov pointerframe,al
+ ret
+
+combathand: mov pointerframe,0
+ cmp reallocation,14
+ jnz notarrow
+ cmp commandtype,211
+ jnz notarrow
+ mov pointerframe,5
+notarrow: ret
+
+flashmousetab: db 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2
+
+ endp
+
+
+
+
+;------------------------------------------------Mouse and keyboard-readers----
+
+Setmouse proc near
+
+ if recording
+ mov recordpos,-8
+ mov dx,seg recname
+ mov ds,dx
+ mov dx,offset recname
+ mov cx,0
+ mov ah,3ch
+ mov al,2
+ int 21h
+ mov rechandle,ax
+ endif
+
+ if playback
+ mov dx,seg recname
+ mov ds,dx
+ mov dx,offset recname
+ mov ah,3dh
+ mov al,2
+ int 21h
+ mov rechandle,ax
+ call loadrec
+ endif
+
+ mov oldpointerx,0ffffh
+
+ mov ax,0
+ int 33h
+ mov ax,8
+ mov cx,15
+ mov dx,184
+ int 33h
+ mov ax,7
+ mov cx,15
+ mov dx,298*2
+ int 33h
+ ret
+
+ endp
+
+
+
+
+
+Readmouse proc near
+
+ mov ax,mousebutton
+ mov oldbutton,ax
+ mov ax,mousex
+ mov oldx,ax
+ mov ax,mousey
+ mov oldy,ax
+ call mousecall
+ mov mousex,cx
+ mov mousey,dx
+ mov mousebutton,bx
+ ret
+
+ endp
+
+
+
+
+
+
+
+Mousecall proc near
+
+ if playback
+ call playmouse
+ ret
+ endif
+
+ mov ax,3
+ int 33h
+ shr cx,1
+ cmp cx,298
+ jc notxover
+ mov cx,298
+notxover: cmp cx,15
+ jnc notxover2
+ mov cx,15
+notxover2: cmp dx,184
+ jc notyover
+ mov dx,184
+notyover: cmp dx,15
+ jnc notyover2
+ mov dx,15
+notyover2:
+ if recording
+ call recmouse
+ endif
+ ret
+
+ endp
+
+
+
+
+
+
+ if playback
+
+Playmouse proc near
+
+ mov es,recordspace
+ mov di,recordpos
+ cmp word ptr [es:di+6],0
+ jnz isthisplay
+ add di,8
+ add recordpos,8
+ cmp di,16384
+ jnz isthisplay
+ call loadrec
+isthisplay: mov cx,[es:di]
+ mov dx,[es:di+2]
+ mov bx,[es:di+4]
+ dec word ptr [es:di+6]
+ ret
+
+ endp
+
+ endif
+
+ if recording
+
+Recmouse proc near
+
+ mov es,recordspace
+ mov di,recordpos
+ cmp di,-8
+ jz diffrec
+ cmp [es:di],cx
+ jnz diffrec
+ cmp [es:di+2],dx
+ jnz diffrec
+ cmp [es:di+4],bx
+ jnz diffrec
+ inc word ptr [es:di+6]
+ cmp word ptr [es:di+5],0ffffh
+ jz diffrec
+ ret
+diffrec: add recordpos,8
+ add di,8
+ cmp di,16384
+ jnz notsaverec
+ push cx dx bx
+ call saverec
+ pop bx dx cx
+notsaverec: mov [es:di],cx
+ mov [es:di+2],dx
+ mov [es:di+4],bx
+ mov word ptr [es:di+6],1
+ ret
+
+ endp
+
+
+
+
+
+Saverec proc near
+
+ mov bx,rechandle
+ mov ds,recordspace
+ mov dx,0
+ mov cx,recordpos
+ add cx,8
+ mov ah,40h
+ int 21h
+ mov di,0
+ mov recordpos,0
+ ret
+
+ endp
+
+
+
+
+
+
+Loadrec proc near
+
+ mov bx,rechandle
+ mov ds,recordspace
+ mov dx,0
+ mov cx,16384+8
+ mov ah,3fh
+ int 21h
+ mov di,0
+ mov recordpos,0
+ ret
+
+ endp
+
+
+ endif
+
+
+
+
+
+
+
+Readmouse1 proc near
+
+ mov ax,mousex
+ mov oldx,ax
+ mov ax,mousey
+ mov oldy,ax
+ call mousecall
+ mov mousex,cx
+ mov mousey,dx
+ mov mousebutton1,bx
+ ret
+
+ endp
+
+
+
+Readmouse2 proc near
+
+ mov ax,mousex
+ mov oldx,ax
+ mov ax,mousey
+ mov oldy,ax
+ call mousecall
+ mov mousex,cx
+ mov mousey,dx
+ mov mousebutton2,bx
+ ret
+
+ endp
+
+
+Readmouse3 proc near
+
+ mov ax,mousex
+ mov oldx,ax
+ mov ax,mousey
+ mov oldy,ax
+ call mousecall
+ mov mousex,cx
+ mov mousey,dx
+ mov mousebutton3,bx
+ ret
+
+ endp
+
+
+
+
+
+
+Readmouse4 proc near
+
+ mov ax,mousebutton
+ mov oldbutton,ax
+ mov ax,mousex
+ mov oldx,ax
+ mov ax,mousey
+ mov oldy,ax
+ call mousecall
+ mov mousex,cx
+ mov mousey,dx
+ mov ax,mousebutton1
+ or ax,mousebutton2
+ or ax,mousebutton3
+ or bx,ax
+ mov mousebutton,bx
+ ret
+
+ endp
+
+
+
+
+
+Readkey proc near
+
+ mov bx,bufferout
+ cmp bx,bufferin
+ jz nokey
+ inc bx
+ and bx,15
+ mov bufferout,bx
+ mov di,offset cs:keybuffer
+ add di,bx
+ mov al,[cs:di]
+ mov currentkey,al
+ ret
+nokey: mov currentkey,0
+ ret
+
+
+ endp
+
+keybuffer: db 16 dup (0)
+
+
+
+Convertkey proc near
+
+ and al,127
+ mov ah,0
+ mov di,offset cs:keyconverttab
+ add di,ax
+ mov al,[cs:di]
+ ret
+
+keyconverttab: db 0,0,"1","2","3","4","5","6","7","8","9","0","-",0,8,0
+ db "Q","W","E","R","T","Y","U","I","O","P",0,0,13,0,"A","S"
+ db "D","F","G","H","J","K","L",0,0,0,0,0,"Z","X","C","V","B","N","M"
+ db 0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0
+ db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+
+ endp
+
+
+
+
+;-------------------------------------------------------------Miscellaneous----
+
+Randomnum1 proc near
+
+ push ds es di bx cx
+ call randomnumber
+ pop cx bx di es ds
+ ret
+
+ endp
+
+
+
+
+
+Randomnum2 proc near
+
+ push ds es di bx ax
+ call randomnumber
+ mov cl,al
+ pop ax bx di es ds
+ ret
+
+ endp
+
+
+
+
+
+Randomnumber proc near
+
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+ mov al,seed
+ and al,48h
+ add al,38h
+ sal al,1
+ sal al,1
+ rcl seed+2,1
+ rcl seed+1,1
+ rcl seed+0,1
+
+ mov al,seed
+ ret
+
+ endp
+
+
+
+
+
+
+Hangon proc near
+
+hangonloop: push cx
+ call vsync
+ pop cx
+ loop hangonloop
+ ret
+
+ endp
+
+
+
+
+
+;-------------------------------------------------------------Disc handling----
+
+
+Loadtraveltext proc near
+
+ mov dx,offset cs:traveltextname
+ call standardload
+ mov traveltext,ax
+ ret
+
+ endp
+
+
+
+
+
+
+Loadintotemp proc near
+
+ push cs
+ pop ds
+ call standardload
+ mov tempgraphics,ax
+ ret
+
+ endp
+
+
+
+
+
+
+Loadintotemp2 proc near
+
+ push cs
+ pop ds
+ call standardload
+ mov tempgraphics2,ax
+ ret
+
+ endp
+
+
+
+
+Loadintotemp3 proc near
+
+ push cs
+ pop ds
+ call standardload
+ mov tempgraphics3,ax
+ ret
+
+ endp
+
+
+
+Loadtempcharset proc near
+
+ call standardload
+ mov tempcharset,ax
+ ret
+
+ endp
+
+
+
+
+
+
+Standardload proc near
+
+ call openfile
+ call readheader
+ mov bx,[es:di]
+ push bx
+ mov cl,4
+ shr bx,cl
+ call allocatemem
+ mov ds,ax
+ pop cx
+ push ax
+ mov dx,0
+ call readfromfile
+ call closefile
+ pop ax
+ ret
+
+ endp
+
+
+
+
+
+
+Loadtemptext proc near
+
+ call standardload
+ mov textfile1,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+Loadroom proc near
+
+ mov roomloaded,1
+ mov timecount,0
+ mov maintimer,0
+ mov mapoffsetx,104
+ mov mapoffsety,38
+ mov textaddressx,13
+ mov textaddressy,182
+ mov textlen,240
+ mov al,newlocation
+ mov location,al
+ call getroomdata
+ call startloading
+ call loadroomssample
+ call switchryanon
+ call drawflags
+ call getdimension
+ ret
+
+ endp
+
+
+
+
+Loadroomssample proc near
+
+ mov al,roomssample
+ cmp al,255
+ jz loadedalready
+ cmp al,currentsample
+ jz loadedalready
+ mov currentsample,al
+ mov al,currentsample
+ mov cl,"0"
+ call twodigitnum
+ mov di,offset cs:samplename
+ xchg al,ah
+ mov [cs:di+10],ax
+ mov dx,di
+ call loadsecondsample
+loadedalready: ret
+
+ endp
+
+
+
+
+
+Getridofreels proc near
+
+ cmp roomloaded,0
+ jz dontgetrid
+ mov es,reel1
+ call deallocatemem
+ mov es,reel2
+ call deallocatemem
+ mov es,reel3
+ call deallocatemem
+dontgetrid: ret
+
+ endp
+
+
+
+
+
+Getridofall proc near
+
+ mov es,backdrop
+ call deallocatemem
+ mov es,setframes
+ call deallocatemem
+ mov es,reel1
+ call deallocatemem
+ mov es,reel2
+ call deallocatemem
+ mov es,reel3
+ call deallocatemem
+ mov es,reels
+ call deallocatemem
+ mov es,people
+ call deallocatemem
+ mov es,setdesc
+ call deallocatemem
+ mov es,blockdesc
+ call deallocatemem
+ mov es,roomdesc
+ call deallocatemem
+ mov es,freeframes
+ call deallocatemem
+ mov es,freedesc
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+
+
+Restorereels proc near
+
+ cmp roomloaded,0
+ jz dontrestore
+ mov al,reallocation
+ call getroomdata
+ mov dx,bx
+ call openfile
+ call readheader
+
+ call dontloadseg
+ call dontloadseg
+ call dontloadseg
+ call dontloadseg
+
+ call allocateload
+ mov reel1,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+ call allocateload
+ mov reel2,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+ call allocateload
+ mov reel3,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+ call closefile
+dontrestore: ret
+
+ endp
+
+
+
+
+
+
+
+Restoreall proc near
+
+ mov al,location
+ call getroomdata
+ mov dx,bx
+ call openfile
+ call readheader
+
+ call allocateload
+ mov ds,ax
+ mov backdrop,ax
+ mov dx,flags
+ call loadseg
+
+ mov ds,workspace ;mapdata
+ mov dx,map
+ mov cx,132*66 ;maplen
+ mov al,0
+ call fillspace
+ call loadseg
+ call sortoutmap
+
+ call allocateload
+ mov setframes,ax
+ mov ds,ax
+ mov dx,framedata
+ call loadseg
+
+ ;mov ds,setdat
+ ;mov dx,0
+ ;mov cx,setdatlen
+ ;mov al,255
+ ;call fillspace
+ call dontloadseg
+
+ call allocateload
+ mov reel1,ax
+ mov ds,ax
+ mov dx,0
+ ;call bloc
+ ;BIG FIXME: undefined bloc, replaced with loadseg. dunno!
+ call loadseg
+ call allocateload
+ mov reel2,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+ call allocateload
+ mov reel3,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov reels,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov people,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov setdesc,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov blockdesc,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov roomdesc,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov freeframes,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ ;mov ds,freedat
+ ;mov dx,0
+ ;mov cx,freedatlen
+ ;mov al,255
+ ;call fillspace
+ call dontloadseg
+
+ call allocateload
+ mov freedesc,ax
+ mov ds,ax
+ mov dx,freetextdat
+ call loadseg
+
+ call closefile
+
+ call setallchanges
+ ret
+
+ endp
+
+
+
+Sortoutmap proc near
+
+ push es di
+ mov ds,workspace
+ mov si,0
+ mov es,mapdata
+ mov di,0
+
+ mov cx,maplength
+blimey: push cx si
+ mov cx,mapwidth
+ rep movsb
+ pop si cx
+ add si,132
+ loop blimey
+ pop di es
+ ret
+
+ endp
+
+
+
+
+Startloading proc near
+
+ mov combatcount,0
+ mov al,[cs:bx+13]
+ mov roomssample,al
+ mov al,[cs:bx+15]
+ mov mapx,al
+ mov al,[cs:bx+16]
+ mov mapy,al
+
+ mov al,[cs:bx+20] ; start path pos
+ mov liftflag,al
+ mov al,[cs:bx+21] ; start path pos
+ mov manspath,al
+ mov destination,al
+ mov finaldest,al
+ mov al,[cs:bx+22]
+ mov facing,al
+ mov turntoface,al
+ mov al,[cs:bx+23]
+ mov counttoopen,al
+ mov al,[cs:bx+24]
+ mov liftpath,al
+ mov al,[cs:bx+25]
+ mov doorpath,al
+ mov lastweapon,-1
+ mov al,[cs:bx+27]
+ push ax
+
+ mov al,[cs:bx+31]
+ mov ah,reallocation
+ mov reallocation,al
+
+ mov dx,bx
+ call openfile
+ call readheader
+
+ call allocateload
+ mov ds,ax
+ mov backdrop,ax
+ mov dx,flags
+ call loadseg
+
+ mov ds,workspace ;mapdata
+ mov dx,map
+ mov cx,132*66 ;maplen
+ mov al,0
+ call fillspace
+ call loadseg
+ call sortoutmap
+
+ call allocateload
+ mov setframes,ax
+ mov ds,ax
+ mov dx,framedata
+ call loadseg
+
+ mov ds,setdat
+ mov dx,0
+ mov cx,setdatlen
+ mov al,255
+ call fillspace
+ call loadseg
+
+ call allocateload
+ mov reel1,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+ call allocateload
+ mov reel2,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+ call allocateload
+ mov reel3,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov reels,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov people,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov setdesc,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov blockdesc,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov roomdesc,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ call allocateload
+ mov freeframes,ax
+ mov ds,ax
+ mov dx,0
+ call loadseg
+
+ mov ds,freedat
+ mov dx,0
+ mov cx,freedatlen
+ mov al,255
+ call fillspace
+ call loadseg
+
+ call allocateload
+ mov freedesc,ax
+ mov ds,ax
+ mov dx,freetextdat
+ call loadseg
+
+ call closefile
+
+
+ call findroominloc
+ call deletetaken
+ call setallchanges
+ call autoappear
+ mov al,newlocation
+ call getroomdata
+ mov lastweapon,-1
+ mov mandead,0
+ mov lookcounter,160
+ mov newlocation,255
+ mov linepointer,254
+ pop ax
+ cmp al,255
+ jz dontwalkin
+ mov manspath,al
+ push bx
+ call autosetwalk
+ pop bx
+dontwalkin: call findxyfrompath
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Disablepath proc near ;needs al,ah map x,y cl=path
+
+ push cx
+ xchg al,ah
+ mov cx,-6
+looky2: add cx,6
+ sub al,10
+ jnc looky2
+ mov al,ah
+ dec cx
+lookx2: inc cx
+ sub al,11
+ jnc lookx2
+ mov al,cl
+ mov ah,0
+ mov cx,144
+ mul cx
+ mov es,reels
+ mov bx,pathdata
+ add bx,ax
+ pop ax
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov al,0
+ mov [es:bx+6],al
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Findxyfrompath proc near ;path number was found from
+ ;room data. Fill ryanxy from
+ call getroomspaths ;the pathdata.
+ mov al,manspath
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ add bx,ax
+ mov ax,[es:bx]
+ sub al,12
+ sub ah,12
+ mov ryanx,al
+ mov ryany,ah
+ ret
+
+ endp
+
+
+
+
+
+Findroominloc proc near
+
+ mov al,mapy
+ mov cx,-6
+looky: add cx,6
+ sub al,10
+ jnc looky
+ mov al,mapx
+ dec cx
+lookx: inc cx
+ sub al,11
+ jnc lookx
+ mov roomnum,cl
+ ret
+
+ endp
+
+
+
+
+
+
+Getroomdata proc near
+
+ mov ah,0
+ mov cx,32
+ mul cx
+ mov bx,offset cs:roomdata
+ add bx,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+Readheader proc near
+
+ push cs
+ pop ds
+ mov dx,offset cs:fileheader
+ mov cx,headerlen
+ call readfromfile
+ push cs
+ pop es
+ mov di,offset cs:filedata
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Dontloadseg proc neqr
+
+ mov ax,[es:di]
+ add di,2
+ push bx di es
+ mov cx,0
+ mov dx,ax
+ mov al,1
+ mov ah,42h
+ int 21h
+ pop es di bx
+ ret
+
+ endp
+
+
+
+
+
+
+Allocateload proc near
+
+ push es di
+ mov bx,[es:di]
+ mov cl,4
+ shr bx,cl
+ call allocatemem
+ pop di es
+ ret
+
+ endp
+
+
+
+
+Fillspace proc near
+
+ push es ds dx di bx
+ mov di,dx
+ push ds
+ pop es
+ rep stosb
+ pop bx di dx ds es
+ ret
+
+ endp
+
+
+
+
+
+
+
+Getridoftemp proc near
+
+ mov es,tempgraphics
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+
+
+Getridoftemptext proc near
+
+ mov es,textfile1
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+
+
+Getridoftemp2 proc near
+
+ mov es,tempgraphics2
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+Getridoftemp3 proc near
+
+ mov es,tempgraphics3
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+Getridoftempcharset proc near
+
+ mov es,tempcharset
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+Getridoftempsp proc near
+
+ mov es,tempsprites
+ call deallocatemem
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Readsetdata proc near
+
+ mov dx,offset cs:characterset1
+ call standardload
+ mov charset1,ax
+
+ mov dx,offset cs:icongraphics0
+ call standardload
+ mov icons1,ax
+
+ mov dx,offset cs:icongraphics1
+ call standardload
+ mov icons2,ax
+
+ mov dx,offset cs:spritename1
+ call standardload
+ mov mainsprites,ax
+
+ mov dx,offset cs:puzzletextname
+ call standardload
+ mov puzzletext,ax
+
+ mov dx,offset cs:commandtextname
+ call standardload
+ mov commandtext,ax
+
+ mov ax,charset1
+ mov currentset,ax
+
+ cmp soundint,255
+ jz novolumeload
+ mov dx,offset cs:volumetabname
+ call openfile
+ mov cx,2048-256
+ mov ds,soundbuffer
+ mov dx,16384
+ call readfromfile
+ call closefile
+novolumeload: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+Createfile proc near
+
+ mov ah,3ch
+ mov cx,0
+ int 21h
+ mov bx,ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+Openfile proc near
+
+ if cd
+ call makename
+ endif
+ push cs
+ pop ds
+ mov ah,3dh
+ mov al,2
+ push dx
+ int 21h
+ pop dx
+ jc fileerror
+ mov handle,ax
+ ret
+fileerror: mov gameerror,8
+ jmp quickquit2
+
+ endp
+
+
+ if cd
+Openfilefromc proc near
+
+ push cs
+ pop ds
+ mov ah,3dh
+ mov al,2
+ push dx
+ int 21h
+ pop dx
+ mov handle,ax
+ ret
+
+ endp
+ endif
+
+
+ if cd
+Makename proc near
+
+ if demo
+ ret
+ endif
+ mov si,dx
+ mov di,offset cs:place
+transfer: mov al,[cs:si]
+ mov [cs:di],al
+ inc si
+ inc di
+ cmp al,0
+ jnz transfer
+ mov dx,offset cs:id
+ ret
+id: db "D:\"
+place: db 30 dup (0)
+
+ endp
+ endif
+
+
+
+
+
+Openfilenocheck proc near
+
+ if cd
+ call makename
+ endif
+ push cs
+ pop ds
+ mov ah,3dh
+ mov al,2
+ int 21h
+ mov handle,ax
+ ret
+
+ endp
+
+
+
+Openforsave proc near
+
+ mov cx,0
+ mov ah,3ch
+ mov al,2
+ int 21h
+ mov handle,ax
+ ret
+
+ endp
+
+
+
+Closefile proc near
+
+ mov bx,handle
+ mov ah,3eh
+ int 21h
+ ret
+
+ endp
+
+
+
+
+Readfromfile proc near
+
+ mov bx,handle
+ mov ah,3fh
+ int 21h
+ ret
+
+ endp
+
+
+
+
+Setkeyboardint proc near
+
+ mov ah,35h
+ mov al,9
+ int 21h
+ mov oldint9seg,es ; Save es:bx to temp memory
+ mov oldint9add,bx
+ push cs
+ pop ds
+ mov dx,offset cs:keyboardread
+ mov ah,25h
+ mov al,9
+ int 21h ; Set to new
+ ret
+
+ endp
+
+
+
+
+Resetkeyboard proc near
+
+ cmp oldint9add,-1
+ jz noreset
+ mov dx,oldint9add ;Restore old interupt vector
+ mov ax,oldint9seg ;for keys
+ mov ds,ax
+ mov ah,25h
+ mov al,9
+ int 21h
+noreset: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Keyboardread proc near
+
+ push ax dx di ds es
+ in al,60h
+ cmp al,lasthardkey
+ jz same
+ mov lasthardkey,al
+ cmp al,128
+ jnc same
+ mov dx,bufferin
+ inc dx
+ and dx,15
+ cmp dx,bufferout
+ jz same ;buffer is full
+ mov bufferin,dx
+ call convertkey
+ mov di,offset cs:keybuffer
+ mov dx,bufferin
+ add di,dx
+ mov [cs:di],al
+same: in al,61h
+ mov ah,al
+ or al,80h ; Mask for Akn
+ out 61h,al ; Set Akn.
+ and al,7fh
+ out 61h,al
+ cli
+ mov al,20h ; 8259 end of interrupt
+ out 20h,al
+ pop es ds di dx ax
+ iret
+
+ endp
+
+
+
+;------------------------------------------------------Text and tables data----
+
+
+
+Fileheader db "DREAMWEB DATA FILE "
+ db "COPYRIGHT 1992 "
+ db "CREATIVE REALITY"
+Filedata dw 20 dup (0)
+Extradata db 6 dup (0)
+Headerlen equ $-Fileheader
+
+
+Roomdata db "DREAMWEB.R00",0 ;Ryan's apartment
+ db 5,255,33,10
+ db 255,255,255,0
+ db 1,6,2,255,3,255,255,255,255,255,0
+
+ db "DREAMWEB.R01",0
+ db 1,255,44,10
+ db 255,255,255,0
+ db 7,2,255,255,255,255,6,255,255,255,1
+
+ db "DREAMWEB.R02",0
+ db 2,255,33,0
+ db 255,255,255,0
+ db 1,0,255,255,1,255,3,255,255,255,2
+
+ db "DREAMWEB.R03",0
+ db 5,255,33,10
+ db 255,255,255,0
+ db 2,2,0,2,4,255,0,255,255,255,3
+
+ db "DREAMWEB.R04",0
+ db 23,255,11,30
+ db 255,255,255,0
+ db 1,4,0,5,255,255,3,255,255,255,4
+
+ db "DREAMWEB.R05",0
+ if demo
+ db 22,255,22,30
+ else
+ db 5,255,22,30
+ endif
+ db 255,255,255,0
+ db 1,2,0,4,255,255,3,255,255,255,5
+
+ db "DREAMWEB.R06",0
+ db 5,255,11,30
+ db 255,255,255,0
+ db 1,0,0,1,2,255,0,255,255,255,6
+
+ db "DREAMWEB.R07",0
+ db 255,255,0,20
+ db 255,255,255,0
+ db 2,2,255,255,255,255,0,255,255,255,7
+
+ db "DREAMWEB.R08",0
+ db 8,255,0,10
+ db 255,255,255,0
+ db 1,2,255,255,255,255,0,11,40,0,8
+
+ db "DREAMWEB.R09",0
+ db 9,255,22,10
+ db 255,255,255,0
+ db 4,6,255,255,255,255,0,255,255,255,9
+
+ db "DREAMWEB.R10",0
+ db 10,255,33,30
+ db 255,255,255,0
+ db 2,0,255,255,2,2,4,22,30,255,10 ;22,30,0 switches
+ ;off path 0 in skip
+ db "DREAMWEB.R11",0
+ db 11,255,11,20
+ db 255,255,255,0
+ db 0,4,255,255,255,255,255,255,255,255,11
+
+ db "DREAMWEB.R12",0
+ db 12,255,22,20
+ db 255,255,255,0
+ db 1,4,255,255,255,255,255,255,255,255,12
+
+ db "DREAMWEB.R13",0
+ db 12,255,22,20
+ db 255,255,255,0
+ db 1,4,255,255,255,255,255,255,255,255,13
+
+ db "DREAMWEB.R14",0
+ db 14,255,44,20
+ db 255,255,255,0
+ db 0,6,255,255,255,255,255,255,255,255,14
+
+ db 32 dup (0)
+ db 32 dup (0)
+ db 32 dup (0)
+ db 32 dup (0)
+
+ db "DREAMWEB.R19",0
+ db 19,255,0,0
+ db 255,255,255,0
+ db 0,4,255,255,255,255,255,255,255,255,19
+
+ db "DREAMWEB.R20",0
+ db 22,255,0,20
+ db 255,255,255,0
+ db 1,4,2,15,255,255,255,255,255,255,20
+
+ db "DREAMWEB.R21",0
+ if demo
+ db 22,255,11,10
+ else
+ db 5,255,11,10
+ endif
+ db 255,255,255,0
+ db 1,4,2,15,1,255,255,255,255,255,21
+
+ db "DREAMWEB.R22",0
+ db 22,255,22,10
+ db 255,255,255,0
+ db 0,4,255,255,1,255,255,255,255,255,22
+
+ db "DREAMWEB.R23",0
+ db 23,255,22,30
+ db 255,255,255,0
+ db 1,4,2,15,3,255,255,255,255,255,23
+
+ db "DREAMWEB.R24",0
+ db 5,255,44,0
+ db 255,255,255,0
+ db 1,6,2,15,255,255,255,255,255,255,24
+
+ db "DREAMWEB.R25",0
+ db 22,255,11,40
+ db 255,255,255,0
+ db 1,0,255,255,255,255,255,255,255,255,25
+
+ db "DREAMWEB.R26",0
+ db 9,255,22,20
+ db 255,255,255,0
+ db 4,2,255,255,255,255,255,255,255,255,26
+
+ db "DREAMWEB.R27",0
+ db 22,255,11,20
+ db 255,255,255,0
+ db 0,6,255,255,255,255,255,255,255,255,27
+
+ db "DREAMWEB.R28",0
+ db 5,255,11,30
+ db 255,255,255,0
+ db 0,0,255,255,2,255,255,255,255,255,28
+
+ db "DREAMWEB.R29",0
+ db 22,255,11,10
+ db 255,255,255,0
+ db 0,2,255,255,255,255,255,255,255,255,29
+
+
+
+ db "DREAMWEB.R05",0 ;Duplicate of hotel lobby,
+ if demo
+ db 22,255,22,10 ;but emerging from the lift.
+ else
+ db 5,255,22,10
+ endif
+ db 255,255,255,0
+ db 1,4,1,15,255,255,255,255,255,255,5
+
+ db "DREAMWEB.R04",0 ;Duplicate of pool hall lobby,
+ db 23,255,22,20 ;but emerging from the lift.
+ db 255,255,255,0
+ db 1,4,2,15,255,255,255,255,255,255,4
+
+ db "DREAMWEB.R10",0 ;entering alley via skip
+ db 10,255,22,30
+ db 255,255,255,0
+ db 3,6,255,255,255,255,255,255,255,255,10
+
+ db "DREAMWEB.R12",0 ;on the beach, getting up.
+ db 12,255,22,20
+ db 255,255,255,0
+ db 0,2,255,255,255,255,255,255,255,255,12
+
+ db "DREAMWEB.R03",0 ;Duplicate of Eden's lobby
+ db 5,255,44,0 ;but emerging from the lift
+ db 255,255,255,0
+ db 1,6,2,255,4,255,255,255,255,255,3
+
+ db "DREAMWEB.R24",0 ;Duplicate of Eden's flat
+ db 5,255,22,0 ;but starting on the bed
+ db 255,255,255,0
+ db 3,6,0,255,255,255,255,33,0,3,24 ; 33,0,3 turns off
+ ; path for lift
+ db "DREAMWEB.R22",0 ;Duplicate
+ db 22,255,22,20 ;of hotel but in pool room
+ db 255,255,255,0
+ db 1,4,255,255,255,255,255,255,255,255,22
+
+ db "DREAMWEB.R22",0 ;Duplicate
+ db 22,255,22,20 ;of hotel but in pool room
+ db 255,255,255,0 ;coming out of bedroom
+ db 0,2,255,255,255,255,255,255,255,255,22
+
+ db "DREAMWEB.R11",0 ;Duplicate
+ db 11,255,22,30 ;of carpark but getting
+ db 255,255,255,0 ;up off the floor
+ db 0,0,255,255,255,255,255,255,255,255,11
+
+ db "DREAMWEB.R28",0
+ db 5,255,11,20
+ db 255,255,255,0
+ db 0,6,255,255,2,255,255,255,255,255,28
+
+ db "DREAMWEB.R21",0
+ if demo
+ db 22,255,11,10
+ else
+ db 5,255,11,10
+ endif
+ db 255,255,255,0
+ db 1,4,2,15,1,255,255,255,255,255,21
+
+ db "DREAMWEB.R26",0
+ db 9,255,0,40
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,26
+
+ db "DREAMWEB.R19",0
+ db 19,255,0,0
+ db 255,255,255,0
+ db 2,2,255,255,255,255,255,255,255,255,19
+
+ db "DREAMWEB.R08",0 ;leaving tvstudio into street
+ db 8,255,11,40
+ db 255,255,255,0
+ db 0,4,255,255,255,255,255,255,255,255,8
+
+ db "DREAMWEB.R01",0
+ db 1,255,44,10
+ db 255,255,255,0
+ db 3,6,255,255,255,255,255,255,255,255,1
+
+
+
+ db "DREAMWEB.R45",0 ;Dream room
+ db 35,255,22,30
+ db 255,255,255,0
+ db 0,6,255,255,255,255,255,255,255,255,45
+
+ db "DREAMWEB.R46",0 ;Dream room
+ db 35,255,22,40
+ db 255,255,255,0
+ db 0,4,255,255,255,255,255,255,255,255,46
+
+ db "DREAMWEB.R47",0 ;Dream room
+ db 35,255,0,0
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,47
+
+ db "DREAMWEB.R45",0 ;Dream room
+ db 35,255,22,30
+ db 255,255,255,0
+ db 4,0,255,255,255,255,255,255,255,255,45
+
+ db "DREAMWEB.R46",0 ;Dream room
+ db 35,255,22,50
+ db 255,255,255,0
+ db 0,4,255,255,255,255,255,255,255,255,46
+
+
+
+ db "DREAMWEB.R50",0 ; Intro sequence one
+ db 35,255,22,30
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,50
+
+ db "DREAMWEB.R51",0 ; Intro sequence two
+ db 35,255,11,30
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,51
+
+ db "DREAMWEB.R52",0 ; Intro sequence three
+ db 35,255,22,30
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,52
+
+ db "DREAMWEB.R53",0 ; Intro sequence four
+ db 35,255,33,0
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,53
+
+ db "DREAMWEB.R54",0 ; Intro sequence five - wasteland
+ db 35,255,0,0
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,54
+
+ db "DREAMWEB.R55",0 ; End sequence
+ db 14,255,44,0
+ db 255,255,255,0
+ db 0,0,255,255,255,255,255,255,255,255,55
+
+
+Madeuproomdat db 32 dup (0)
+
+Roomscango db 1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+
+Roompics db 5,0,3,2,4,1,10,9,8,6,11,4,7,7,0
+
+Oplist db 3 dup (0)
+
+Inputline db 128 dup (0)
+
+linedata dw 200 dup (0ffffh)
+
+presslist db 6 dup (255)
+
+savenames db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+ db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+ db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+ db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+ db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+ db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+ db 2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+
+
+
+savefiles db "DREAMWEB.D00",0
+ db "DREAMWEB.D01",0
+ db "DREAMWEB.D02",0
+ db "DREAMWEB.D03",0
+ db "DREAMWEB.D04",0
+ db "DREAMWEB.D05",0
+ db "DREAMWEB.D06",0
+
+Recname db "DREAMWEB.DEM",0
+
+
+;-------------------------------------------------------End of code segment----
+
+DREAMWEBPROG ends
+
+
+
+
+;---------------------------------------------------------------Stack space----s
+
+STACKSPACE segment para stack 'STACK'
+
+stak db 256 dup (?)
+
+STACKSPACE ends
+
+
+
+;-----------------------------------------------------------End of all code----
+
+ end Dreamweb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/devtools/tasmrecover/dreamweb/keypad.asm b/devtools/tasmrecover/dreamweb/keypad.asm
new file mode 100644
index 0000000..9ddce69
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/keypad.asm
@@ -0,0 +1,1758 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+Entercode proc near
+
+ mov keypadax,ax
+ mov keypadcx,cx
+ call getridofreels
+ call loadkeypad
+ call createpanel
+ call showicon
+ call showouterpad
+ call showkeypad
+ call readmouse
+ call showpointer
+ call worktoscreen
+ call delpointer
+ mov presspointer,0
+ mov getback,0
+
+keypadloop: call delpointer
+ call readmouse
+ call showkeypad
+ call showpointer
+ cmp presscount,0
+ jz nopresses
+ dec presscount
+ jmp afterpress
+nopresses: mov pressed,255
+ mov graphicpress,255
+ call vsync
+
+afterpress: call dumppointer
+ call dumpkeypad
+ call dumptextline
+ mov bx,offset cs:keypadlist
+ call checkcoords
+ cmp getback,1
+ jz numberright
+
+ cmp lightcount,1
+ jnz notendkey
+ cmp lockstatus,0
+ jz numberright
+ jmp keypadloop
+
+notendkey: cmp presscount,40
+ jnz keypadloop
+ call addtopresslist
+ cmp pressed,11
+ jnz keypadloop
+ mov ax,keypadax
+ mov cx,keypadcx
+ call isitright
+ jnz incorrect
+ mov lockstatus,0
+ mov al,11
+ call playchannel1
+ mov lightcount,120
+ mov presspointer,0
+ jmp keypadloop
+incorrect: mov al,11
+ call playchannel1
+ mov lightcount,120
+ mov presspointer,0
+ jmp keypadloop
+
+numberright: mov manisoffscreen,0
+ call getridoftemp
+ call restorereels
+ call redrawmainscrn
+ call worktoscreenm
+ ret
+
+keypadlist: dw keypadx+9,keypadx+30,keypady+9,keypady+22,buttonone
+ dw keypadx+31,keypadx+52,keypady+9,keypady+22,buttontwo
+ dw keypadx+53,keypadx+74,keypady+9,keypady+22,buttonthree
+ dw keypadx+9,keypadx+30,keypady+23,keypady+40,buttonfour
+ dw keypadx+31,keypadx+52,keypady+23,keypady+40,buttonfive
+ dw keypadx+53,keypadx+74,keypady+23,keypady+40,buttonsix
+ dw keypadx+9,keypadx+30,keypady+41,keypady+58,buttonseven
+ dw keypadx+31,keypadx+52,keypady+41,keypady+58,buttoneight
+ dw keypadx+53,keypadx+74,keypady+41,keypady+58,buttonnine
+ dw keypadx+9,keypadx+30,keypady+59,keypady+73,buttonnought
+ dw keypadx+31,keypadx+74,keypady+59,keypady+73,buttonenter
+ dw keypadx+72,keypadx+86,keypady+80,keypady+94,quitkey
+ dw 0,320,0,200,blank
+ dw 0ffffh
+
+ endp
+
+
+
+
+
+
+
+
+Loadkeypad proc near
+
+ mov dx,offset cs:extragraphics1
+ call loadintotemp
+ ret
+
+ endp
+
+
+
+
+Quitkey proc near
+
+ cmp commandtype,222
+ jz alreadyqk
+ mov commandtype,222
+ mov al,4
+ call commandonly
+alreadyqk: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz notqk
+ and ax,1
+ jnz doqk
+notqk: ret
+
+doqk: mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Addtopresslist proc near
+
+ cmp presspointer,5
+ jz nomorekeys
+ mov al,pressed
+ cmp al,10
+ jnz not10
+ mov al,0
+not10: mov bx,presspointer
+ mov dx,seg presslist
+ mov es,dx
+ add bx,offset es:presslist
+ mov [es:bx],al
+ inc presspointer
+nomorekeys: ret
+
+ endp
+
+
+
+
+Buttonone proc near
+
+ mov cl,1
+ call buttonpress
+ ret
+
+ endp
+
+
+Buttontwo proc near
+
+ mov cl,2
+ call buttonpress
+ ret
+
+ endp
+
+
+
+Buttonthree proc near
+
+ mov cl,3
+ call buttonpress
+ ret
+
+ endp
+
+
+
+Buttonfour proc near
+
+ mov cl,4
+ call buttonpress
+ ret
+
+ endp
+
+
+Buttonfive proc near
+
+ mov cl,5
+ call buttonpress
+ ret
+
+ endp
+
+
+
+Buttonsix proc near
+
+ mov cl,6
+ call buttonpress
+ ret
+
+ endp
+
+
+Buttonseven proc near
+
+ mov cl,7
+ call buttonpress
+ ret
+
+ endp
+
+
+Buttoneight proc near
+
+ mov cl,8
+ call buttonpress
+ ret
+
+ endp
+
+Buttonnine proc near
+
+ mov cl,9
+ call buttonpress
+ ret
+
+ endp
+
+
+
+Buttonnought proc near
+
+ mov cl,10
+ call buttonpress
+ ret
+
+ endp
+
+
+
+
+
+
+Buttonenter proc near
+
+ mov cl,11
+ call buttonpress
+ ret
+
+ endp
+
+
+
+Buttonpress proc near
+
+ mov ch,cl
+ add ch,100
+ cmp commandtype,ch
+ jz alreadyb
+ mov commandtype,ch
+ mov al,cl
+ add al,4
+ push cx
+ call commandonly
+ pop cx
+alreadyb: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz notb
+ and ax,1
+ jnz dob
+notb: ret
+
+dob: mov pressed,cl
+ add cl,21
+ mov graphicpress,cl
+ mov presscount,40
+ cmp cl,32
+ jz nonoise
+ mov al,10
+ call playchannel1
+nonoise: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Showouterpad proc near
+
+ mov di,keypadx-3
+ mov bx,keypady-4
+ mov ds,tempgraphics
+ mov al,1
+ mov ah,0
+ call showframe
+ mov di,keypadx+74
+ mov bx,keypady+76
+ mov ds,tempgraphics
+ mov al,37
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Showkeypad proc near
+
+ mov al,22
+ mov di,keypadx+9
+ mov bx,keypady+5
+ call singlekey
+ mov al,23
+ mov di,keypadx+31
+ mov bx,keypady+5
+ call singlekey
+ mov al,24
+ mov di,keypadx+53
+ mov bx,keypady+5
+ call singlekey
+
+ mov al,25
+ mov di,keypadx+9
+ mov bx,keypady+23
+ call singlekey
+ mov al,26
+ mov di,keypadx+31
+ mov bx,keypady+23
+ call singlekey
+ mov al,27
+ mov di,keypadx+53
+ mov bx,keypady+23
+ call singlekey
+
+ mov al,28
+ mov di,keypadx+9
+ mov bx,keypady+41
+ call singlekey
+ mov al,29
+ mov di,keypadx+31
+ mov bx,keypady+41
+ call singlekey
+ mov al,30
+ mov di,keypadx+53
+ mov bx,keypady+41
+ call singlekey
+
+ mov al,31
+ mov di,keypadx+9
+ mov bx,keypady+59
+ call singlekey
+ mov al,32
+ mov di,keypadx+31
+ mov bx,keypady+59
+ call singlekey
+
+ cmp lightcount,0
+ jz notenter
+ dec lightcount
+ mov al,36
+ mov bx,keypady-1+63
+ cmp lockstatus,0
+ jnz changelight
+ mov al,41
+ mov bx,keypady+4+63
+changelight: cmp lightcount,60
+ jc gotlight
+ cmp lightcount,100
+ jnc gotlight
+ dec al
+gotlight: mov ds,tempgraphics
+ mov ah,0
+ mov di,keypadx+60
+ call showframe
+
+notenter: ret
+
+ endp
+
+
+
+
+
+Singlekey proc near
+
+ cmp graphicpress,al
+ jnz gotkey
+ add al,11
+ cmp presscount,8
+ jnc gotkey
+ sub al,11
+; cmp presscount,10
+; jnc gotkey
+; sub al,11
+gotkey: mov ds,tempgraphics
+ sub al,20
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Dumpkeypad proc near
+
+ mov di,keypadx-3
+ mov bx,keypady-4
+ mov cl,120
+ mov ch,90
+ call multidump
+ ret
+
+ endp
+
+
+
+
+
+;---------------------------------
+
+
+
+
+Usemenu proc near
+
+ call getridofreels
+ call loadmenu
+ call createpanel
+ call showpanel
+ call showicon
+ mov newobs,0
+ call drawfloor
+ call printsprites
+
+ mov al,4
+ mov ah,0
+ mov di,menux-48
+ mov bx,menuy-4
+ mov ds,tempgraphics2
+ call showframe
+ call getundermenu
+ mov al,5
+ mov ah,0
+ mov di,menux+54
+ mov bx,menuy+72
+ mov ds,tempgraphics2
+ call showframe
+
+
+ call worktoscreenm
+ mov getback,0
+
+menuloop: call delpointer
+ call putundermenu
+ call showmenu
+ call readmouse
+ call showpointer
+ call vsync
+ call dumppointer
+ call dumpmenu
+ call dumptextline
+ mov bx,offset cs:menulist
+ call checkcoords
+ cmp getback,1
+ jnz menuloop
+
+ mov manisoffscreen,0
+ call redrawmainscrn
+ call getridoftemp
+ call getridoftemp2
+ call restorereels
+ call worktoscreenm
+ ret
+
+menulist: dw menux+54,menux+68,menuy+72,menuy+88,quitkey
+ dw 0,320,0,200,blank
+ dw 0ffffh
+
+ ret
+
+ endp
+
+
+
+
+
+
+
+Dumpmenu proc near
+
+ mov di,menux
+ mov bx,menuy
+ mov cl,48
+ mov ch,48
+ call multidump
+ ret
+
+ endp
+
+
+
+
+
+
+Getundermenu proc near
+
+ mov di,menux
+ mov bx,menuy
+ mov cl,48
+ mov ch,48
+ mov ds,buffers
+ mov si,undertimedtext
+ call multiget
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Putundermenu proc near
+
+ mov di,menux
+ mov bx,menuy
+ mov cl,48
+ mov ch,48
+ mov ds,buffers
+ mov si,undertimedtext
+ call multiput
+ ret
+
+ endp
+
+
+
+Showoutermenu proc near
+
+ mov al,40
+ mov ah,0
+ mov di,menux-34
+ mov bx,menuy-40
+ mov ds,tempgraphics
+ call showframe
+ mov al,41
+ mov ah,0
+ mov di,menux+64-34
+ mov bx,menuy-40
+ mov ds,tempgraphics
+ call showframe
+ mov al,42
+ mov ah,0
+ mov di,menux-26
+ mov bx,menuy+57-40
+ mov ds,tempgraphics
+ call showframe
+ mov al,43
+ mov ah,0
+ mov di,menux+64-26
+ mov bx,menuy+57-40
+ mov ds,tempgraphics
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Showmenu proc near
+
+ inc menucount
+ cmp menucount,37*2
+ jnz menuframeok
+ mov menucount,0
+menuframeok: mov al,menucount
+ shr al,1
+ mov ah,0
+ mov di,menux
+ mov bx,menuy
+ mov ds,tempgraphics
+ call showframe
+ ret
+
+ endp
+
+
+
+Loadmenu proc near
+
+ mov dx,offset cs:spritename3
+ call loadintotemp
+ mov dx,offset cs:mongraphics2
+ call loadintotemp2
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Viewfolder proc near
+
+ mov manisoffscreen,1
+ call getridofall
+ call loadfolder
+ mov folderpage,0
+ call showfolder
+ call worktoscreenm
+ mov getback,0
+
+folderloop: call delpointer
+ call readmouse
+ call showpointer
+ call vsync
+ call dumppointer
+ call dumptextline
+ mov bx,offset cs:folderlist
+ call checkcoords
+ cmp getback,0
+ jz folderloop
+
+ mov manisoffscreen,0
+ call getridoftemp
+ call getridoftemp2
+ call getridoftemp3
+ call getridoftempcharset
+ call restoreall
+ call redrawmainscrn
+ call worktoscreenm
+ ret
+
+folderlist: dw 280,320,160,200,quitkey
+ dw 143,300,6,194,nextfolder
+ dw 0,143,6,194,lastfolder
+ dw 0,320,0,200,blank
+ dw 0ffffh
+
+ endp
+
+
+
+
+Nextfolder proc near
+
+ cmp folderpage,12
+ jnz cannextf
+ call blank
+ ret
+cannextf: cmp commandtype,201
+ jz alreadynextf
+ mov commandtype,201
+ mov al,16
+ call commandonly
+alreadynextf: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz notnextf
+ cmp ax,1
+ jz donextf
+notnextf: ret
+donextf: inc folderpage
+ call folderhints
+ call delpointer
+ call showfolder
+ mov mousebutton,0
+ mov bx,offset cs:folderlist
+ call checkcoords
+ call worktoscreenm
+ ret
+
+ endp
+
+
+
+
+Folderhints proc near
+
+ cmp folderpage,5
+ jnz notaideadd
+ cmp aidedead,1
+ jz notaideadd
+ mov al,13
+ call getlocation
+ cmp al,1
+ jz notaideadd
+ mov al,13
+ call setlocation
+ call showfolder
+ mov al,30
+ call findtext1
+ mov di,0
+ mov bx,86
+ mov dl,141
+ mov ah,16
+ call printdirect
+ call worktoscreenm
+ mov cx,200
+ call hangonp
+ ret
+
+notaideadd: cmp folderpage,9
+ jnz notaristoadd
+ mov al,7
+ call getlocation
+ cmp al,1
+ jz notaristoadd
+ mov al,7
+ call setlocation
+ call showfolder
+ mov al,31
+ call findtext1
+ mov di,0
+ mov bx,86
+ mov dl,141
+ mov ah,16
+ call printdirect
+ call worktoscreenm
+ mov cx,200
+ call hangonp
+notaristoadd: ret
+
+ endp
+
+
+
+Lastfolder proc near
+
+ cmp folderpage,0
+ jnz canlastf
+ call blank
+ ret
+canlastf: cmp commandtype,202
+ jz alreadylastf
+ mov commandtype,202
+ mov al,17
+ call commandonly
+alreadylastf: cmp folderpage,0
+ jz notlastf
+ mov ax,mousebutton
+ cmp ax,oldbutton
+ jz notlastf
+ cmp ax,1
+ jz dolastf
+notlastf: ret
+dolastf: dec folderpage
+ call delpointer
+ call showfolder
+ mov mousebutton,0
+ mov bx,offset cs:folderlist
+ call checkcoords
+ call worktoscreenm
+ ret
+
+ endp
+
+
+
+Loadfolder proc near
+
+ mov dx,offset cs:foldergraphic1
+ call loadintotemp
+ mov dx,offset cs:foldergraphic2
+ call loadintotemp2
+ mov dx,offset cs:foldergraphic3
+ call loadintotemp3
+ mov dx,offset cs:characterset3
+ call loadtempcharset
+ mov dx,offset cs:foldertext
+ call loadtemptext
+ ret
+
+ endp
+
+
+
+
+Showfolder proc near
+
+ mov commandtype,255
+ cmp folderpage,0
+ jz closedfolder
+ call usetempcharset
+ call createpanel2
+ mov ds,tempgraphics
+ mov di,0
+ mov bx,0
+ mov al,0
+ mov ah,0
+ call showframe
+ mov ds,tempgraphics
+ mov di,143
+ mov bx,0
+ mov al,1
+ mov ah,0
+ call showframe
+ mov ds,tempgraphics
+ mov di,0
+ mov bx,92
+ mov al,2
+ mov ah,0
+ call showframe
+ mov ds,tempgraphics
+ mov di,143
+ mov bx,92
+ mov al,3
+ mov ah,0
+ call showframe
+ call folderexit
+
+ cmp folderpage,1
+ jz noleftpage
+ call showleftpage
+noleftpage: cmp folderpage,12
+ jz norightpage
+ call showrightpage
+norightpage: call usecharset1
+ call undertextline
+ ret
+
+closedfolder: call createpanel2
+ mov ds,tempgraphics3
+ mov di,143-28
+ mov bx,0
+ mov al,0
+ mov ah,0
+ call showframe
+ mov ds,tempgraphics3
+ mov di,143-28
+ mov bx,92
+ mov al,1
+ mov ah,0
+ call showframe
+ call folderexit
+ call undertextline
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Folderexit proc near
+
+ mov ds,tempgraphics2
+ mov di,296
+ mov bx,178
+ mov al,6
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+Showleftpage proc near
+
+ mov ds,tempgraphics2
+ mov di,0
+ mov bx,12
+ mov al,3
+ mov ah,0
+ call showframe
+
+ mov bx,12+5
+ mov cx,9
+leftpageloop: push cx bx
+ mov ds,tempgraphics2
+ mov di,0
+ mov al,4
+ mov ah,0
+ call showframe
+ pop bx cx
+ add bx,16
+ loop leftpageloop
+
+ mov ds,tempgraphics2
+ mov di,0
+ mov al,5
+ mov ah,0
+ call showframe
+
+ mov linespacing,8
+ mov charshift,91
+ mov kerning,1
+ mov bl,folderpage
+ dec bl
+ dec bl
+ add bl,bl
+ mov bh,0
+ add bx,bx
+ mov es,textfile1
+ mov si,[es:bx]
+ add si,66*2
+ mov di,2
+ mov bx,48
+ mov dl,140
+ mov cx,2
+twolotsleft: push cx
+contleftpage: call printdirect
+ add bx,linespacing
+ cmp al,0
+ jnz contleftpage
+ pop cx
+ loop twolotsleft
+
+ mov kerning,0
+ mov charshift,0
+ mov linespacing,10
+
+ mov es,workspace
+ mov ds,workspace
+ mov di,(48*320)+2
+ mov si,(48*320)+2+130
+ mov cx,120
+flipfolder: push cx di si
+ mov cx,65
+flipfolderline: mov al,[es:di]
+ mov ah,[es:si]
+ mov [es:di],ah
+ mov [es:si],al
+ dec si
+ inc di
+ loop flipfolderline
+ pop si di cx
+ add si,320
+ add di,320
+ loop flipfolder
+ ret
+
+ endp
+
+
+
+Showrightpage proc near
+
+ mov ds,tempgraphics2
+ mov di,143
+ mov bx,12
+ mov al,0
+ mov ah,0
+ call showframe
+
+ mov bx,12+37
+ mov cx,7
+rightpageloop: push cx bx
+ mov ds,tempgraphics2
+ mov di,143
+ mov al,1
+ mov ah,0
+ call showframe
+ pop bx cx
+ add bx,16
+ loop rightpageloop
+
+ mov ds,tempgraphics2
+ mov di,143
+ mov al,2
+ mov ah,0
+ call showframe
+
+ mov linespacing,8
+ mov kerning,1
+ mov bl,folderpage
+ dec bl
+ add bl,bl
+ mov bh,0
+ add bx,bx
+ mov es,textfile1
+ mov si,[es:bx]
+ add si,66*2
+ mov di,152
+ mov bx,48
+ mov dl,140
+ mov cx,2
+twolotsright: push cx
+contrightpage: call printdirect
+ add bx,linespacing
+ cmp al,0
+ jnz contrightpage
+ pop cx
+ loop twolotsright
+
+ mov kerning,0
+ mov linespacing,10
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Entersymbol proc near
+
+ mov manisoffscreen,1
+ call getridofreels
+ mov dx,offset cs:symbolgraphic
+ call loadintotemp
+ mov symboltopx,24
+ mov symboltopdir,0
+ mov symbolbotx,24
+ mov symbolbotdir,0
+ call redrawmainscrn
+ call showsymbol
+ call undertextline
+ call worktoscreenm
+ mov getback,0
+
+symbolloop: call delpointer
+ call updatesymboltop
+ call updatesymbolbot
+ call showsymbol
+ call readmouse
+ call showpointer
+ call vsync
+ call dumppointer
+ call dumptextline
+ call dumpsymbol
+ mov bx,offset cs:symbollist
+ call checkcoords
+ cmp getback,0
+ jz symbolloop
+
+ cmp symbolbotnum,3
+ jnz symbolwrong
+ cmp symboltopnum,5
+ jnz symbolwrong
+ mov al,43
+ call removesetobject
+ mov al,46
+ call placesetobject
+ mov ah,roomnum
+ add ah,12
+ mov al,0
+ call turnanypathon
+ mov manisoffscreen,0
+ call redrawmainscrn
+ call getridoftemp
+ call restorereels
+ call worktoscreenm
+ mov al,13
+ call playchannel1
+ ret
+
+symbolwrong: mov al,46
+ call removesetobject
+ mov al,43
+ call placesetobject
+ mov ah,roomnum
+ add ah,12
+ mov al,0
+ call turnanypathoff
+ mov manisoffscreen,0
+ call redrawmainscrn
+ call getridoftemp
+ call restorereels
+ call worktoscreenm
+ ret
+
+symbollist: dw symbolx+40,symbolx+64,symboly+2,symboly+16,quitsymbol
+ dw symbolx,symbolx+52,symboly+20,symboly+50,settopleft
+ dw symbolx+52,symbolx+104,symboly+20,symboly+50,settopright
+ dw symbolx,symbolx+52,symboly+50,symboly+80,setbotleft
+ dw symbolx+52,symbolx+104,symboly+50,symboly+80,setbotright
+ dw 0,320,0,200,blank
+ dw 0ffffh
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Quitsymbol proc near
+
+ cmp symboltopx,24
+ jnz blank
+ cmp symbolbotx,24
+ jnz blank
+ cmp commandtype,222
+ jz alreadyqs
+ mov commandtype,222
+ mov al,18
+ call commandonly
+alreadyqs: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz notqs
+ and ax,1
+ jnz doqs
+notqs: ret
+
+doqs: mov getback,1
+ ret
+
+ endp
+
+
+
+
+Settopleft proc near
+
+ cmp symboltopdir,0
+ jnz blank
+ cmp commandtype,210
+ jz alreadytopl
+ mov commandtype,210
+ mov al,19
+ call commandonly
+alreadytopl: cmp mousebutton,0
+ jz notopleft
+ mov symboltopdir,-1
+notopleft: ret
+
+ endp
+
+
+
+Settopright proc near
+
+ cmp symboltopdir,0
+ jnz blank
+ cmp commandtype,211
+ jz alreadytopr
+ mov commandtype,211
+ mov al,20
+ call commandonly
+alreadytopr: cmp mousebutton,0
+ jz notopright
+ mov symboltopdir,1
+notopright: ret
+
+ endp
+
+
+
+
+Setbotleft proc near
+
+ cmp symbolbotdir,0
+ jnz blank
+ cmp commandtype,212
+ jz alreadybotl
+ mov commandtype,212
+ mov al,21
+ call commandonly
+alreadybotl: cmp mousebutton,0
+ jz nobotleft
+ mov symbolbotdir,-1
+nobotleft: ret
+
+ endp
+
+
+
+Setbotright proc near
+
+ cmp symbolbotdir,0
+ jnz blank
+ cmp commandtype,213
+ jz alreadybotr
+ mov commandtype,213
+ mov al,22
+ call commandonly
+alreadybotr: cmp mousebutton,0
+ jz nobotright
+ mov symbolbotdir,1
+nobotright: ret
+
+ endp
+
+
+
+
+
+
+
+Dumpsymbol proc near
+
+ mov newtextline,0
+ mov di,symbolx
+ mov bx,symboly+20
+ mov cl,104
+ mov ch,60
+ call multidump
+ ret
+
+ endp
+
+
+
+
+Showsymbol proc near
+
+ mov al,12
+ mov ah,0
+ mov di,symbolx
+ mov bx,symboly
+ mov ds,tempgraphics
+ call showframe
+
+ mov al,symboltopx
+ mov ah,0
+ mov di,ax
+ add di,symbolx-44
+ mov al,symboltopnum
+ mov bx,symboly+20
+ mov ds,tempgraphics
+ mov ah,32
+ push ax di bx ds
+ call showframe
+ pop ds bx di ax
+ call nextsymbol
+ add di,49
+ push ax di bx ds
+ call showframe
+ pop ds bx di ax
+ call nextsymbol
+ add di,49
+ call showframe
+
+ mov al,symbolbotx
+ mov ah,0
+ mov di,ax
+ add di,symbolx-44
+ mov al,symbolbotnum
+ add al,6
+ mov bx,symboly+49
+ mov ds,tempgraphics
+ mov ah,32
+ push ax di bx ds
+ call showframe
+ pop ds bx di ax
+ call nextsymbol
+ add di,49
+ push ax di bx ds
+ call showframe
+ pop ds bx di ax
+ call nextsymbol
+ add di,49
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+Nextsymbol proc near
+
+ inc al
+ cmp al,6
+ jz topwrap
+ cmp al,12
+ jz botwrap
+ ret
+topwrap: mov al,0
+ ret
+botwrap: mov al,6
+ ret
+
+ endp
+
+
+
+Updatesymboltop proc near
+
+ cmp symboltopdir,0
+ jz topfinished
+ cmp symboltopdir,-1
+ jz backwards
+
+ inc symboltopx
+ cmp symboltopx,49
+ jnz notwrapfor
+ mov symboltopx,0
+ dec symboltopnum
+ cmp symboltopnum,-1
+ jnz topfinished
+ mov symboltopnum,5
+ ret
+notwrapfor: cmp symboltopx,24
+ jnz topfinished
+ mov symboltopdir,0
+ ret
+
+backwards: dec symboltopx
+ cmp symboltopx,-1
+ jnz notwrapback
+ mov symboltopx,48
+ inc symboltopnum
+ cmp symboltopnum,6
+ jnz topfinished
+ mov symboltopnum,0
+ ret
+notwrapback: cmp symboltopx,24
+ jnz topfinished
+ mov symboltopdir,0
+topfinished: ret
+
+ endp
+
+
+
+Updatesymbolbot proc near
+
+ cmp symbolbotdir,0
+ jz botfinished
+ cmp symbolbotdir,-1
+ jz backwardsbot
+
+ inc symbolbotx
+ cmp symbolbotx,49
+ jnz notwrapforb
+ mov symbolbotx,0
+ dec symbolbotnum
+ cmp symbolbotnum,-1
+ jnz botfinished
+ mov symbolbotnum,5
+ ret
+notwrapforb: cmp symbolbotx,24
+ jnz botfinished
+ mov symbolbotdir,0
+ ret
+
+backwardsbot: dec symbolbotx
+ cmp symbolbotx,-1
+ jnz notwrapbackb
+ mov symbolbotx,48
+ inc symbolbotnum
+ cmp symbolbotnum,6
+ jnz botfinished
+ mov symbolbotnum,0
+ ret
+notwrapbackb: cmp symbolbotx,24
+ jnz botfinished
+ mov symbolbotdir,0
+botfinished: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Dumpsymbox proc near
+
+ cmp dumpx,-1
+ jz nodumpsym
+ mov di,dumpx
+ mov bx,dumpy
+ mov cl,30
+ mov ch,77;30
+ call multidump
+ mov dumpx,-1
+nodumpsym: ret
+
+ endp
+
+
+
+
+
+
+
+Usediary proc near
+
+ call getridofreels
+ mov dx,offset cs:diarygraphic
+ call loadintotemp
+ mov dx,offset cs:diarytext
+ call loadtemptext
+
+ mov dx,offset cs:characterset3
+ call loadtempcharset
+ call createpanel
+ call showicon
+ call showdiary
+ call undertextline
+ call showdiarypage
+ call readmouse
+ call showpointer
+ call worktoscreen
+ call delpointer
+ mov getback,0
+
+diaryloop: call delpointer
+ call readmouse
+ call showdiarykeys
+ call showpointer
+ call vsync
+ call dumppointer
+ call dumpdiarykeys
+ call dumptextline
+ mov bx,offset cs:diarylist
+ call checkcoords
+ cmp getback,0
+ jz diaryloop
+
+ call getridoftemp
+ call getridoftemptext
+ call getridoftempcharset
+ call restorereels
+ mov manisoffscreen,0
+ call redrawmainscrn
+ call worktoscreenm
+ ret
+
+diarylist: dw diaryx+94,diaryx+110,diaryy+97,diaryy+113,diarykeyn
+ dw diaryx+151,diaryx+167,diaryy+71,diaryy+87,diarykeyp
+ dw diaryx+176,diaryx+192,diaryy+108,diaryy+124,quitkey
+ dw 0,320,0,200,blank
+ dw 0ffffh
+
+ ret
+
+ endp
+
+
+
+
+
+
+
+Showdiary proc near
+
+ mov al,1
+ mov ah,0
+ mov di,diaryx
+ mov bx,diaryy+37
+ mov ds,tempgraphics
+ call showframe
+ mov al,2
+ mov ah,0
+ mov di,diaryx+176
+ mov bx,diaryy+108
+ mov ds,tempgraphics
+ call showframe
+ ret
+
+ endp
+
+
+
+
+Showdiarykeys proc near
+
+ cmp presscount,0
+ jz nokeyatall
+ dec presscount
+ cmp presscount,0
+ jz nokeyatall
+ cmp pressed,"N"
+ jnz nokeyn
+ mov al,3
+ cmp presscount,1
+ jz gotkeyn
+ mov al,4
+gotkeyn: mov ah,0
+ mov di,diaryx+94
+ mov bx,diaryy+97
+ mov ds,tempgraphics
+ call showframe
+ cmp presscount,1
+ jnz notshown
+ call showdiarypage
+notshown: ret
+
+nokeyn: mov al,5
+ cmp presscount,1
+ jz gotkeyp
+ mov al,6
+gotkeyp: mov ah,0
+ mov di,diaryx+151
+ mov bx,diaryy+71
+ mov ds,tempgraphics
+ call showframe
+ cmp presscount,1
+ jnz notshowp
+ call showdiarypage
+notshowp: ret
+
+nokeyatall: ret
+
+ endp
+
+
+
+
+
+
+Dumpdiarykeys proc near
+
+ cmp presscount,1
+ jnz notdumpdiary
+ cmp sartaindead,1
+ jz notsartadd
+ cmp diarypage,5
+ jnz notsartadd
+ cmp diarypage,5
+ jnz notsartadd
+ mov al,6
+ call getlocation
+ cmp al,1
+ jz notsartadd
+ mov al,6
+ call setlocation
+
+ call delpointer
+ mov al,12
+ call findtext1
+ mov di,70 ;diaryx+48
+ mov bx,106 ;diaryy+16
+ mov dl,241
+ mov ah,16
+ call printdirect
+
+ call worktoscreenm
+ mov cx,200
+ call hangonp
+ call createpanel
+ call showicon
+ call showdiary
+ call showdiarypage
+ call worktoscreenm
+ call showpointer
+ ret
+
+notsartadd: mov di,diaryx+48
+ mov bx,diaryy+15
+ mov cl,200
+ mov ch,16
+ call multidump
+notdumpdiary: mov di,diaryx+94
+ mov bx,diaryy+97
+ mov cl,16
+ mov ch,16
+ call multidump
+ mov di,diaryx+151
+ mov bx,diaryy+71
+ mov cl,16
+ mov ch,16
+ call multidump
+ ret
+
+ endp
+
+
+
+Diarykeyp proc near
+
+ cmp commandtype,214
+ jz alreadykeyp
+ mov commandtype,214
+ mov al,23
+ call commandonly
+alreadykeyp: cmp mousebutton,0
+ jz notkeyp
+ mov ax,oldbutton
+ cmp ax,mousebutton
+ jz notkeyp
+ cmp presscount,0
+ jnz notkeyp
+ mov al,16
+ call playchannel1
+ mov presscount,12
+ mov pressed,"P"
+ dec diarypage
+ cmp diarypage,-1
+ jnz notkeyp
+ mov diarypage,11
+notkeyp: ret
+
+ endp
+
+
+
+Diarykeyn proc near
+
+ cmp commandtype,213
+ jz alreadykeyn
+ mov commandtype,213
+ mov al,23
+ call commandonly
+alreadykeyn: cmp mousebutton,0
+ jz notkeyn
+ mov ax,oldbutton
+ cmp ax,mousebutton
+ jz notkeyn
+ cmp presscount,0
+ jnz notkeyn
+ mov al,16
+ call playchannel1
+ mov presscount,12
+ mov pressed,"N"
+ inc diarypage
+ cmp diarypage,12
+ jnz notkeyn
+ mov diarypage,0
+notkeyn: ret
+
+ endp
+
+
+
+
+
+
+Showdiarypage proc near
+
+ mov al,0
+ mov ah,0
+ mov di,diaryx
+ mov bx,diaryy
+ mov ds,tempgraphics
+ call showframe
+
+ mov al,diarypage
+ call findtext1
+
+ mov kerning,1
+ call usetempcharset
+ mov di,diaryx+48
+ mov bx,diaryy+16
+ mov dl,240
+ mov ah,16
+ mov charshift,91+91
+ call printdirect
+
+ mov di,diaryx+129
+ mov bx,diaryy+16
+ mov dl,240
+ mov ah,16
+ call printdirect
+
+ mov di,diaryx+48
+ mov bx,diaryy+23
+ mov dl,240
+ mov ah,16
+ call printdirect
+
+ mov kerning,0
+ mov charshift,0
+ call usecharset1
+ ret
+
+ endp
+
+
+
+
+
+Findtext1 proc near
+
+ mov ah,0
+ mov si,ax
+ add si,si
+ mov es,textfile1
+ mov ax,[es:si]
+ add ax,textstart
+ mov si,ax
+ ret
+
+ endp
+
+
\ No newline at end of file
diff --git a/devtools/tasmrecover/dreamweb/look.asm b/devtools/tasmrecover/dreamweb/look.asm
new file mode 100644
index 0000000..11ee24b
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/look.asm
@@ -0,0 +1,167 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+;---------------------------------------------------------------Look-routine----
+
+Autolook proc near
+
+ mov ax,mousex
+ cmp ax,oldx
+ jnz diffmouse
+ mov ax,mousey
+ cmp ax,oldy
+ jnz diffmouse
+
+ dec lookcounter
+ cmp lookcounter,0
+ jnz noautolook
+ cmp watchingtime,0
+ jnz noautolook
+ call dolook
+noautolook: ret
+
+diffmouse: mov lookcounter,1000
+ ret
+
+ endp
+
+
+
+
+Look proc near
+
+ cmp watchingtime,0
+ jnz blank
+ cmp pointermode,2
+ jz blank
+
+ cmp commandtype,241
+ jz alreadylook
+ mov commandtype,241
+ mov al,25
+ call commandonly
+alreadylook: cmp mousebutton,1
+ jnz nolook
+ mov ax,mousebutton
+ cmp ax,oldbutton
+ jz nolook
+ call dolook
+nolook: ret
+
+ endp
+
+
+
+
+
+Dolook proc near
+
+ call createpanel
+ call showicon
+ call undertextline
+ call worktoscreenm
+
+ mov commandtype,255
+ call dumptextline
+
+ mov bl,roomnum
+ and bl,31
+ mov bh,0
+ add bx,bx
+
+ mov es,roomdesc
+ add bx,intextdat
+
+ mov si,[es:bx]
+ add si,intext
+
+ call findnextcolon
+
+ mov di,66
+ cmp reallocation,50
+ jc notdream3
+ mov di,40
+notdream3: mov bx,80
+ mov dl,241
+ call printslow
+
+ cmp al,1
+ jz afterlook
+ mov cx,400
+ call hangonp
+
+afterlook: mov pointermode,0
+ mov commandtype,0
+ call redrawmainscrn
+ call worktoscreenm
+ ret
+
+ endp
+
+
+
+
+
+
+Redrawmainscrn proc near
+
+ mov timecount,0
+ call createpanel
+ mov newobs,0
+ call drawfloor
+ call printsprites
+ call reelsonscreen
+ call showicon
+ call getunderzoom
+ call undertextline
+ call readmouse
+ mov commandtype,255
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Getback1 proc near
+
+ cmp pickup,0
+ jz notgotobject
+ call blank
+ ret
+
+notgotobject: cmp commandtype,202
+ jz alreadyget
+ mov commandtype,202
+ mov al,26
+ call commandonly
+alreadyget: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz nogetback
+ and ax,1
+ jnz dogetback
+nogetback: ret
+
+dogetback: mov getback,1
+ mov pickup,0
+ ret
+
+ endp
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/devtools/tasmrecover/dreamweb/monitor.asm b/devtools/tasmrecover/dreamweb/monitor.asm
new file mode 100644
index 0000000..65b68cb
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/monitor.asm
@@ -0,0 +1,1496 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+Usemon proc near
+
+ mov lasttrigger,0
+
+ push cs ;start off with no file name
+ pop es
+ mov di,offset cs:currentfile+1
+ mov cx,12
+ mov al,32
+ rep stosb
+ push cs ;start off with no file name
+ pop es
+ mov di,offset cs:operand1+1
+ mov cx,12
+ mov al,32
+ rep stosb
+
+ push cs ;clear all keys
+ pop es
+ mov di,offset cs:keys
+ mov byte ptr [es:di],1
+ add di,26
+ mov cx,3
+keyloop: mov byte ptr [es:di],0
+ add di,26
+ loop keyloop
+
+ call createpanel
+ call showpanel
+ call showicon
+ call drawfloor
+ call getridofall ;reels
+
+ mov dx,offset cs:mongraphicname
+ call loadintotemp
+ call loadpersonal
+ call loadnews
+ call loadcart
+ mov dx,offset cs:characterset2
+ call loadtempcharset
+
+ call printoutermon
+ call initialmoncols
+ call printlogo
+ call worktoscreen
+ call turnonpower
+ call fadeupyellows
+ call fadeupmonfirst
+
+ mov monadx,76
+ mov monady,141
+ mov al,1
+ call monmessage
+ mov cx,120
+ call hangoncurs
+ mov al,2
+ call monmessage
+ mov cx,60
+ call randomaccess
+ mov al,3
+ call monmessage
+ mov cx,100
+ call hangoncurs
+ call printlogo
+ call scrollmonitor
+ mov bufferin,0
+ mov bufferout,0
+
+moreinput: mov di,monadx
+ mov bx,monady
+ push di bx
+ call input
+ pop bx di
+ mov monadx,di
+ mov monady,bx
+ call execcommand
+ cmp al,0
+ jz moreinput
+
+endmon: call getridoftemp
+ call getridoftempcharset
+ mov es,textfile1
+ call deallocatemem
+ mov es,textfile2
+ call deallocatemem
+ mov es,textfile3
+ call deallocatemem
+ mov getback,1
+ mov al,26
+ call playchannel1
+ mov manisoffscreen,0
+ call restoreall ;reels
+ call redrawmainscrn
+ call worktoscreenm
+ ret
+
+ endp
+
+
+
+
+
+
+Printoutermon proc near
+
+ mov di,40
+ mov bx,32
+ mov ds,tempgraphics
+ mov al,1
+ mov ah,0
+ call showframe
+ mov di,264
+ mov bx,32
+ mov ds,tempgraphics
+ mov al,2
+ mov ah,0
+ call showframe
+ mov di,40
+ mov bx,12
+ mov ds,tempgraphics
+ mov al,3
+ mov ah,0
+ call showframe
+ mov di,40
+ mov bx,164
+ mov ds,tempgraphics
+ mov al,4
+ mov ah,0
+ call showframe
+ ret
+
+ endp
+
+
+
+
+
+
+
+Loadpersonal proc near
+
+ mov al,location
+ mov dx,offset cs:monitorfile1
+ cmp al,0
+ jz foundpersonal
+ cmp al,42
+ jz foundpersonal
+ mov dx,offset cs:monitorfile2
+ cmp al,2
+ jz foundpersonal
+
+foundpersonal: call openfile
+ call readheader
+ mov bx,[es:di]
Commit: 624042eedd0f2e86308173c995e9760b4cd8de3f
https://github.com/scummvm/scummvm/commit/624042eedd0f2e86308173c995e9760b4cd8de3f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2011-06-15T09:04:07-07:00
Commit Message:
Merge pull request #45 from fuzzie/dreamweb
DREAMWEB: Merge in engine
Changed paths:
A devtools/tasmrecover/.gitignore
A devtools/tasmrecover/dreamweb/LICENSE
A devtools/tasmrecover/dreamweb/backdrop.asm
A devtools/tasmrecover/dreamweb/debug.asm
A devtools/tasmrecover/dreamweb/dreamweb.asm
A devtools/tasmrecover/dreamweb/keypad.asm
A devtools/tasmrecover/dreamweb/look.asm
A devtools/tasmrecover/dreamweb/monitor.asm
A devtools/tasmrecover/dreamweb/newplace.asm
A devtools/tasmrecover/dreamweb/object.asm
A devtools/tasmrecover/dreamweb/print.asm
A devtools/tasmrecover/dreamweb/saveload.asm
A devtools/tasmrecover/dreamweb/sblaster.asm
A devtools/tasmrecover/dreamweb/sprite.asm
A devtools/tasmrecover/dreamweb/talk.asm
A devtools/tasmrecover/dreamweb/titles.asm
A devtools/tasmrecover/dreamweb/use.asm
A devtools/tasmrecover/dreamweb/vars.asm
A devtools/tasmrecover/dreamweb/vgafades.asm
A devtools/tasmrecover/dreamweb/vgagrafx.asm
A devtools/tasmrecover/tasm-recover
A devtools/tasmrecover/tasm/__init__.py
A devtools/tasmrecover/tasm/cpp.py
A devtools/tasmrecover/tasm/lex.py
A devtools/tasmrecover/tasm/op.py
A devtools/tasmrecover/tasm/parser.py
A devtools/tasmrecover/tasm/proc.py
A engines/dreamweb/console.cpp
A engines/dreamweb/console.h
A engines/dreamweb/detection.cpp
A engines/dreamweb/detection_tables.h
A engines/dreamweb/dreamgen.cpp
A engines/dreamweb/dreamgen.h
A engines/dreamweb/dreamweb.cpp
A engines/dreamweb/dreamweb.h
A engines/dreamweb/module.mk
A engines/dreamweb/runtime.h
base/plugins.cpp
common/array.h
configure
engines/engines.mk
More information about the Scummvm-git-logs
mailing list