From 47bd4e500bb35ef9aa301736a1bb96ae8be11b60 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 22 Jun 2007 12:40:30 +0000 Subject: Removed old debug input files no longer being used, and the Lure disassembly folder svn-id: r27608 --- engines/lure/debug-input.cpp | 136 - engines/lure/debug-input.h | 45 - engines/lure/debug-methods.cpp | 135 - engines/lure/debug-methods.h | 42 - engines/lure/disassembly/LURE.ASM | 39757 ------------------------------ engines/lure/disassembly/Lure_notes.txt | 1473 -- 6 files changed, 41588 deletions(-) delete mode 100644 engines/lure/debug-input.cpp delete mode 100644 engines/lure/debug-input.h delete mode 100644 engines/lure/debug-methods.cpp delete mode 100644 engines/lure/debug-methods.h delete mode 100644 engines/lure/disassembly/LURE.ASM delete mode 100644 engines/lure/disassembly/Lure_notes.txt diff --git a/engines/lure/debug-input.cpp b/engines/lure/debug-input.cpp deleted file mode 100644 index 9ec520e11d..0000000000 --- a/engines/lure/debug-input.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* 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$ - * $Id$ - * - */ - -#include "lure/debug-input.h" -#include "lure/luredefs.h" -#include "lure/events.h" -#include "lure/surface.h" -#include "lure/screen.h" - -#ifdef LURE_DEBUG - -namespace Lure { - -bool get_string(char *buffer, uint32 maxSize, bool isNumeric, uint16 x, uint16 y) { - Events &e = Events::getReference(); - buffer[0] = '\0'; - - // Create surface for holding entered text - Surface *s = new Surface((maxSize + 1) * FONT_WIDTH, FONT_HEIGHT); - - bool abortFlag = false; - bool refreshFlag = true; - - while (!e.quitFlag && !abortFlag) { - // Check for refreshing display of text - if (refreshFlag) { - uint16 strWidth = Surface::textWidth(buffer); - s->empty(); - s->writeString(0, 0, buffer, false, DIALOG_TEXT_COLOUR); - s->writeChar(strWidth, 0, '_', false, DIALOG_TEXT_COLOUR); - s->copyToScreen(x, y); - - refreshFlag = false; - } - - if (e.pollEvent()) { - if (e.type() == Common::EVENT_KEYDOWN) { - char ch = e.event().kbd.ascii; - uint16 keycode = e.event().kbd.keycode; - - if ((ch == 13) || (keycode == 0x10f)) - break; - else if (ch == 27) - abortFlag = true; - else if (ch == 8) { - if (*buffer != '\0') { - *((char *) buffer + strlen(buffer) - 1) = '\0'; - refreshFlag = true; - } - } else if ((ch >= ' ') && (strlen(buffer) < maxSize)) { - if (((ch >= '0') && (ch <= '9')) || !isNumeric) { - char *p = buffer + strlen(buffer); - *p++ = ch; - *p++ = '\0'; - refreshFlag = true; - } - } - } - } - } - - delete s; - if (e.quitFlag) abortFlag = true; - return !abortFlag; -} - -bool input_integer(Common::String desc, uint32 &value) -{ - const int MAX_SIZE = 5; - char buffer[MAX_SIZE + 1]; - - uint16 width = DIALOG_EDGE_SIZE + Surface::textWidth(desc.c_str()) + FONT_WIDTH; - uint16 totalWidth = width + FONT_WIDTH * (MAX_SIZE + 1) + DIALOG_EDGE_SIZE; - uint16 totalHeight = FONT_HEIGHT + DIALOG_EDGE_SIZE * 2; - - Surface *s = new Surface(totalWidth, totalHeight); - s->createDialog(true); - s->writeString(DIALOG_EDGE_SIZE + 3, DIALOG_EDGE_SIZE, desc, false); - - uint16 xs = (FULL_SCREEN_WIDTH-totalWidth) / 2; - uint16 ys = (FULL_SCREEN_HEIGHT-totalHeight) / 2; - s->copyToScreen(xs, ys); - - bool result = get_string(&buffer[0], MAX_SIZE, true, xs+width, ys+DIALOG_EDGE_SIZE); - Screen::getReference().update(); - if (!result || (buffer[0] == '\0')) - return false; - - value = atoi(buffer); - return true; -} - -bool input_string(Common::String desc, char *buffer, uint32 maxSize) -{ - uint16 width = Surface::textWidth(desc.c_str()); - if (width < FONT_WIDTH * maxSize) width = FONT_WIDTH * maxSize; - - Surface *s = new Surface(width + 2 * DIALOG_EDGE_SIZE, 2 * FONT_HEIGHT + 2 * DIALOG_EDGE_SIZE); - s->createDialog(); - s->writeString(DIALOG_EDGE_SIZE, DIALOG_EDGE_SIZE, desc, false, DIALOG_TEXT_COLOUR); - - uint16 xs = (FULL_SCREEN_WIDTH-s->width()) / 2; - uint16 ys = (FULL_SCREEN_HEIGHT-s->height()) / 2; - - s->copyToScreen(xs, ys); - bool result = get_string(buffer, maxSize, true, xs + width, ys + DIALOG_EDGE_SIZE); - - Screen::getReference().update(); - return result; -} - -} // end of namespace Lure - -#endif diff --git a/engines/lure/debug-input.h b/engines/lure/debug-input.h deleted file mode 100644 index aad2e58232..0000000000 --- a/engines/lure/debug-input.h +++ /dev/null @@ -1,45 +0,0 @@ -/* 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$ - * $Id$ - * - */ - -#ifdef LURE_DEBUG -#ifndef LURE_DEBUG_INPUT_H -#define LURE_DEBUG_INPUT_H - -#include "common/stdafx.h" -#include "common/str.h" -#include "lure/surface.h" - -namespace Lure { - -bool get_string(char *buffer, uint32 maxSize, bool isNumeric, uint16 x, uint16 y); - -bool input_integer(Common::String desc, uint32 &value); - -bool input_string(Common::String desc, char *buffer, uint32 maxSize); - -} // End of namespace Lure - -#endif -#endif diff --git a/engines/lure/debug-methods.cpp b/engines/lure/debug-methods.cpp deleted file mode 100644 index 520b29add6..0000000000 --- a/engines/lure/debug-methods.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* 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$ - * $Id$ - * - */ - -#include "lure/debug-methods.h" -#include "lure/luredefs.h" - -#include "lure/events.h" -#include "lure/surface.h" -#include "lure/screen.h" -#include "lure/res.h" -#include "lure/strings.h" -#include "lure/room.h" - -#ifdef LURE_DEBUG - -namespace Lure { - -void showActiveHotspots() { - char buffer[16384]; - char *lines[100]; - char *s = buffer; - int numLines = 0; - lines[0] = s; - *s = '\0'; - - Resources &resources = Resources::getReference(); - Mouse &mouse = Mouse::getReference(); - Events &events = Events::getReference(); - Screen &screen = Screen::getReference(); - - HotspotList::iterator i = resources.activeHotspots().begin(); - for (; i != resources.activeHotspots().end(); ++i) { - Hotspot &h = *i.operator*(); - lines[numLines++] = s; - - if (numLines == 16) { - strcpy(s, "..more.."); - break; - } - - sprintf(s, "%x", h.hotspotId()); - s += strlen(s); - - sprintf(s, "h pos=(%d,%d,%d) size=(%d,%d) - ", - h.roomNumber(), h.x(), h.y(), h.width(), h.height()); - s += strlen(s); - - uint16 nameId = h.nameId(); - if (nameId != 0) { - StringData::getReference().getString(nameId, s, NULL, NULL); - s += strlen(s); - } - ++s; - } - - Surface *surface = Surface::newDialog(300, numLines, (const char**)lines); - mouse.cursorOff(); - surface->copyToScreen(10, 40); - events.waitForPress(); - screen.update(); - mouse.cursorOn(); - delete surface; -} - -void showRoomHotspots() { - char buffer[16384]; - char *lines[100]; - char *s = buffer; - int numLines = 0; - lines[0] = s; - *s = '\0'; - - Resources &resources = Resources::getReference(); - Mouse &mouse = Mouse::getReference(); - Events &events = Events::getReference(); - Screen &screen = Screen::getReference(); - uint16 roomNumber = Room::getReference().roomNumber(); - - HotspotDataList::iterator i = resources.hotspotData().begin(); - for (; i != resources.hotspotData().end(); ++i) { - HotspotData &h = *i.operator*(); - if (h.roomNumber == roomNumber) { - lines[numLines++] = s; - - sprintf(s, "%x", h.hotspotId); - s += strlen(s); - - sprintf(s, "h pos=(%d,%d) size=(%d,%d) - ", - h.startX, h.startY, h.width, h.height); - s += strlen(s); - - uint16 nameId = h.nameId; - if (nameId != 0) { - StringData::getReference().getString(nameId, s, NULL, NULL); - s += strlen(s); - } - ++s; - } - } - - Surface *surface = Surface::newDialog(300, numLines, (const char**)lines); - mouse.cursorOff(); - surface->copyToScreen(10, 40); - events.waitForPress(); - screen.update(); - mouse.cursorOn(); - delete surface; -} - - -} // end of namespace Lure - -#endif diff --git a/engines/lure/debug-methods.h b/engines/lure/debug-methods.h deleted file mode 100644 index 43b77d9191..0000000000 --- a/engines/lure/debug-methods.h +++ /dev/null @@ -1,42 +0,0 @@ -/* 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$ - * $Id$ - * - */ - -#ifdef LURE_DEBUG -#ifndef LURE_DEBUG_METHODS_H -#define LURE_DEBUG_METHODS_H - -#include "common/stdafx.h" -#include "lure/surface.h" - -namespace Lure { - -void showActiveHotspots(); - -void showRoomHotspots(); - -} // End of namespace Lure - -#endif -#endif diff --git a/engines/lure/disassembly/LURE.ASM b/engines/lure/disassembly/LURE.ASM deleted file mode 100644 index af0ae8af7d..0000000000 --- a/engines/lure/disassembly/LURE.ASM +++ /dev/null @@ -1,39757 +0,0 @@ -lure.asm Sourcer v6.09 17-Nov- 5 5:53 pm Page 1 - - - PAGE 59,132 - - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - ;ÛÛ ÛÛ - ;ÛÛ LURE ÛÛ - ;ÛÛ ÛÛ - ;ÛÛ Created: 23-Jun-95 ÛÛ - ;ÛÛ Passes: 9 Analysis Options on: QRSX ÛÛ - ;ÛÛ Copyright Revolution Software 1990-1992 ÛÛ - ;ÛÛ ÛÛ - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - - .err Target Assembler set to NONE, re-assembly not recommended - - -VGA_SEGMENT equ 0a000h -SCREEN_WIDTH equ 320 -SCREEN_HEIGHT equ 200 - -RECT_SIZE equ 32 -RECTANGLE_SIZE equ 32*32 -NUM_HORIZ_RECTS equ 10 -NUM_VERT_RECTS equ 6 -FULL_HORIZ_RECTS equ 18 -FULL_VERT_RECTS equ 14 -MAX_NUM_LAYERS equ 4 - -ROOM_PATHS_WIDTH equ 40 -ROOM_PATHS_HEIGHT equ 24 -DECODED_PATHS_WIDTH equ 42 -DECODED_PATHS_HEIGHT equ 26 - -WRITE_BUFFER_SIZE equ 0f010h -FILE_BUFFER_SIZE equ 0600h -ENTRY_READ_BUFFER equ 80h -VIDEO_STYLE_VGA equ 1 -VIDEO_STYLE_EGA equ 2 -TIMER_TICKS_MAX equ 2EE0h -MUSIC_NOTE equ 80h -MUSIC_NOTE_OFF equ 7fh -MUSIC_NOTE_VISIBLE equ 40h -NOTE_DISPLAY_ADDR equ 185*SCREEN_WIDTH ; (A000:E740) line #186 on screen -NOTE_IMAGE_WIDTH equ 14 -NOTE_IMAGE_HEIGHT equ 14 - -MENUBAR_Y_SIZE equ 8 -MENUBAR_BLOCK_SIZE equ MENUBAR_Y_SIZE*SCREEN_WIDTH -MENUITEM_NUM_MENUS equ 4 - -STATUS_VIDEO_MODE_SET equ 1 -STATUS_UNKNOWN equ 2 -STATUS_TIMER_SET equ 4 -STATUS_CTRL_BREAK_SET equ 8 -STATUS_CRITICAL_SET equ 10h -STATUS_UNKNOWN2 equ 20h -STATUS_KEYBOARD_SET equ 40h -STATUS_MOUSE_HANDLER_SET equ 80h - -SYS_HAS_FLOPPY_DRIVE equ 80h - -CURSOR_ARROW equ 0 -CURSOR_DISK equ 1 -CURSOR_TIME_UP equ 2 -CURSOR_TIME_UP_RIGHT equ 3 -CURSOR_TIME_RIGHT equ 4 -CURSOR_TIME_DOWN_RIGHT equ 5 -CURSOR_TIME_DOWN equ 6 -CURSOR_TIME_DOWN_LEFT equ 7 -CURSOR_TIME_LEFT equ 8 -CURSOR_TIME_UP_LEFT equ 9 -CURSOR_CROSS equ 10 -CURSOR_ARROW_UP equ 11 -CURSOR_ARROW_DOWN equ 12 -CURSOR_ARROW_LEFT equ 13 -CURSOR_ARROW_RIGHT equ 14 -CURSOR_CAMERA equ 15 -CURSOR_TALK equ 16 -CURSOR_MENUBAR_AREA equ 17 -CURSOR_ARROW_UP2 equ 18 -CURSOR_ARROW_DOWN2 equ 19 -CURSOR_ARROW_LEFT2 equ 20 -CURSOR_ARROW_RIGHT2 equ 21 -CURSOR_VOICE equ 22 -CURSOR_AXE_1 equ 23 -CURSOR_AXE_2 equ 24 -CURSOR_AXE_3 equ 25 - -NUM_ACTIONS equ 25 - -NUM_ANIMATION_SLOTS equ 2dh -ANIMATION_SLOT_SIZE equ 29h - -NUM_PAUSED_CHARS_SLOTS equ 14h -PAUSED_CHAR_SLOT_SIZE equ 8 -PC_SRC_CHAR_ID equ 0 -PC_DEST_CHAR_ID equ 2 -PC_COUNTER equ 4 -PC_HOTSPOT_PTR equ 6 - -ACTION_GET equ 1 -ACTION_PUSH equ 3 -ACTION_PULL equ 4 -ACTION_OPERATE equ 5 -ACTION_OPEN equ 6 -ACTION_CLOSE equ 7 -ACTION_LOCK equ 8 -ACTION_UNLOCK equ 9 -ACTION_USE equ 10 -ACTION_GIVE equ 11 -ACTION_TALK_TO equ 12 -ACTION_TELL equ 13 -ACTION_BUY equ 14 -ACTION_LOOK equ 15 -ACTION_LOOK_AT equ 16 -ACTION_LOOK_THROUGH equ 17 -ACTION_ASK equ 18 -ACTION_EAT equ 19 -ACTION_DRINK equ 20 -ACTION_STATUS equ 21 -ACTION_GO_TO equ 22 -ACTION_RETURN equ 23 -ACTION_BRIBE equ 24 -ACTION_EXAMINE equ 25 - -FLAG_RESTART equ 10h -FLAG_CAUGHT equ 20h -FLAG_RESTORERESTART equ 40h -FLAG_HAS_FLOPPY_DRIVE equ 80h - - -; Animation slot record constants -ANIM_X equ 0 -ANIM_Y equ 2 -ANIM_WIDTH equ 4 -ANIM_HEIGHT equ 6 -ANIM_FRAME_OFFSET equ 8 -ANIM_SEGMENT equ 0Ah -ANIM_LAYER equ 0Ch -ANIM_FLAGS equ 0Dh -ANIM_ROOM_NUM equ 0Eh -ANIM_CAN_UNLOAD equ 10h -ANIM_TICK_PROC equ 11h -ANIM_WIDTH_COPY equ 13h -ANIM_HEIGHT_COPY equ 15h -ANIM_Y_CORRECTION equ 17h -ANIM_HOTSPOT_OFFSET equ 19h -ANIM_HOTSPOT_ID equ 1Bh -ANIM_SKIP equ 1Dh -ANIM_VOICE_CHAR_ID equ 1Eh -ANIM_CTR equ 20h -ANIM_CHAR_RECT_Y equ 22h -ANIM_VOICE_CTR equ 24h -ANIM_DIRECTION equ 26h -ANIM_WALK_FLAG equ 27h -ANIM_START_COLOUR equ 28h - -; Hotspot header record constants -HOTSPOT_TABLE_ENTRY_SIZE equ 9 -HSH_OFFSET equ 0 -HSH_NAME equ 2 -HSH_DESC equ 4 -HSH_DESC_2 equ 6 -HSH_FLAGS equ 8 - -; Hotspot record constants - -HS_DEST2_SET equ -1 -HS_DEST2_X equ -5 -HS_DEST2_Y equ -3 -HS_ACTIONS equ 0 -HS_FLAGS1 equ 3 -HS_ACTIONS_OFFSET equ 04h -HS_ROOM_NUM equ 06h -HS_LOAD_FLAG equ 08h -HS_LOAD_OFFSET equ 09h -HS_ANIM_OFFSET equ 0Bh -HS_X equ 0Dh -HS_Y equ 0Fh -HS_WIDTH equ 11h -HS_HEIGHT equ 13h -HS_LAYER equ 15h -HS_FLAGS2 equ 16h -HS_TICK_PROC equ 17h -HS_WIDTH_COPY equ 19h -HS_HEIGHT_COPY equ 1Bh -HS_Y_CORRECTION equ 1Dh -HS_FRAME_CTR equ 1Fh -HS_PIXEL_OFFSET equ 21h -HS_START_COLOUR equ 23h -HS_SCRIPT_OFFSET equ 24h -HS_MOVEMENT_OFFSET equ 24h -HS_STEP_CTR equ 26h -HS_FRAME_OFFSET equ 28h -HS_ACTION_CTR equ 2Ah -HS_V2B equ 2Bh -HS_HOTSPOT_SCRIPT_ID equ 2Dh -HS_USE_HOTSPOT_ID equ 2Fh -HS_V32 equ 32h -HS_V33 equ 33h -HS_TALK_X equ 35h -HS_TALK_Y equ 36h -HS_TALK_COUNTDOWN equ 37h -HS_TALK_CHAR_ID equ 39h -HS_RESPONSE_ID equ 3Ch -HS_V3E equ 3Eh -HS_V40 equ 40h -HS_DELAY_CTR equ 42h -HS_CHAR_MODE equ 44h -HS_TICK_SCRIPT_OFFSET equ 45h -SCRIPT_HOTSPOT_ID equ 47h -HS_PATHFIND_COVERED equ 49h -HS_PAUSE_CTR equ 4Ah -HS_BLOCKED_FLAG equ 4Ch -HS_V4D equ 4Dh -HS_START_ROOM_NUM equ 4Eh -HS_DIRECTION equ 50h -HS_ACTION_HOTSPOT equ 50h -HS_DEST_HOTSPOT equ 52h -HS_DEST_X equ 54h -HS_DEST_Y equ 56h -HS_V58 equ 58h -HS_MOVEMENT_SRC_OFFSET equ 5Ah -HS_SUPPORT_TABLE equ 5Ch -HS_BLOCKED_SUPPORT_OFFSET equ 5Eh -HS_EXIT_CTR equ 60h -HS_ACTION_OFFSET equ 61h -HS_FIRST_ACTION_OFFSET equ 63h - -; Hotspot FLAGS1 flags -HOTSPOTFLAG_HIGHLIGHTED equ 0x80 -HOTSPOTFLAG_SKIP equ 0x40 -HOTSPOTFLAG_20 equ 0x20 - -; Pixel record constants -PIXEL_DISK_ID equ 0 -PIXEL_FLAGS equ 2 -PIXEL_DATA_SEGMENT equ 3 -PIXEL_DATA_SIZE equ 5 -PIXEL_FRAME_SIZE equ 7 -PIXEL_MOVEREC_UP equ 9 -PIXEL_MOVEREC_DOWN equ 0Bh -PIXEL_MOVEREC_LEFT equ 0Dh -PIXEL_MOVEREC_RIGHT equ 0Fh -PIXEL_FRAMENUM_UP equ 11h -PIXEL_FRAMENUM_DOWN equ 12h -PIXEL_FRAMENUM_LEFT equ 13h -PIXEL_FRAMENUM_RIGHT equ 14h - -PIXELFLAG_HAS_TABLE equ 4 - -NOONE_HOTSPOT_ID equ 3E7h -PLAYER_HOTSPOT_ID equ 3E8h -RATPOUCH_HOTSPOT_ID equ 3E9h -SKORL_HOTSPOT_ID equ 3EAh -GOEWIN_HOTSPOT_ID equ 3EFh -FIRST_OBJECT_HOTSPOT_ID equ 408h -START_EXIT_HOTSPOT_ID equ 2710h -BOTTLE_HOTSPOT_ID equ 2710h -START_NONVISUAL_HOTSPOT_ID equ 7530h - - -; Room exit record constants -ROOMEXIT_RECORD_SIZE equ 14 -ROOMEXIT_X_START equ 0 -ROOMEXIT_X_END equ 2 -ROOMEXIT_Y_START equ 4 -ROOMEXIT_Y_END equ 6 -ROOMEXIT_CURSOR_NUM equ 8 -ROOMEXIT_HOTSPOT_ID equ 10 -ROOMEXIT_DEST_ROOM equ 12 - -; Room exit hotspot record constants -REHS_RECORD_SIZE equ 11h -REHS_HOTSPOT1_ID equ 0 -REHS_HOTSPOT1_CURRENT_FRAME equ 2 -REHS_HOTSPOT1_DEST_FRAME equ 3 -REHS_HOTSPOT2_ID equ 6 -REHS_HOTSPOT2_CURRENT_FRAME equ 8 -REHS_HOTSPOT2_DEST_FRAME equ 9 -REHS_EXIT_BLOCKED equ 0Ch -REHS_HOTSPOT1_OFFSET equ 0Dh -REHS_HOTSPOT2_OFFSET equ 0Fh - -; Room header record constants -RH_OFFSET equ 0 -RH_ROOM_NUM equ 2 -RH_DESC_ID equ 4 -RH_FLAGS equ 8 -RH_TABLE_ENTRY_SIZE equ 9 - -; Room record constants -ROOM_NUM_LAYERS equ 8 -ROOM_FIRST_LAYER equ 9 -ROOM_SEQUENCE_OFFSET equ 11h -ROOM_ENTRY_TIME equ 13h -ROOM_V17 equ 17h -ROOM_BOUNDS_INDEX equ 18h -ROOM_X_START equ 19h -ROOM_X_END equ 1Bh -ROOM_EXITS_START equ 1Dh - -; Room exit constants for room exit list within room records -ROOMREC_EXIT_X_START equ 0 -ROOMREC_EXIT_X_END equ 2 -ROOMREC_EXIT_Y_START equ 4 -ROOMREC_EXIT_Y_END equ 6 -ROOMREC_EXIT_SEQUENCE equ 8 -ROOMREC_EXIT_ROOM_NUM equ 10 -ROOMREC_EXIT_NEW_X equ 12 -ROOMREC_EXIT_NEW_Y equ 14 - -; Room number constants -ROOMNUM_TOWN_HALL equ 1fh -ROOMNUM_MIDDLE_STREET equ 0Eh -ROOMNUM_VILLAGE_SHOP equ 23h -ROOMNUM_WINE_CELLAR equ 2Ah -ROOMNUM_DINING_HALL equ 2Dh - -NUM_DELAY_ENTRIES equ 28h -DELAY_ENTRY_SIZE equ 7 - -DIR_UP equ 80h -DIR_DOWN equ 40h -DIR_LEFT equ 20h -DIR_RIGHT equ 10h - -FACING_UP equ 0 -FACING_DOWN equ 1 -FACING_LEFT equ 2 -FACING_RIGHT equ 3 - -FACING2_LEFT equ 1 -FACING2_RIGHT equ 2 -FACING2_UP equ 4 -FACING2_DOWN equ 8 - -; Movement record constants -MOVEMENT_FRAME_NUM equ 0 -MOVEMENT_X_CHANGE equ 2 -MOVEMENT_Y_CHANGE equ 4 -MOVEMENT_REC_SIZE equ 6 - -; Talk constants -TALK_PRE_SEQUENCE equ 0 -TALK_DESC_ID equ 2 -TALK_POST_SEQUENCE equ 4 - -; Talk state constants -TALK_START equ 0ffh -TALK_SELECT equ 2 -TALK_UNKNOWN equ 3 -TALK_MAGIC_ID equ 424h - -TALK_DIALOG_WIDTH equ 128 - -; Player actions used in player_tick_proc -CURRENT_ACTION_RECORD_SIZE equ 5 -CURRENT_ACTION_SUPPORT_TABLE equ 1 -CURRENT_ACTION_ROOM_NUM equ 3 - -CHAR_ACTION_NONE equ 0 -CHAR_ACTION_START_WALK equ 1 -CHAR_ACTION_DISPATCH_ACTION equ 2 -CHAR_ACTION_EXEC_SCRIPT equ 3 -CHAR_ACTION_PROCESSING_PATH equ 4 -CHAR_ACTION_CONTINUE_WALK equ 5 - -PATHFIND_CHARACTER_ID equ 2 -PATHFIND_HS4C equ 4 -PATHFIND_DEST_STATE equ 5 -PATHFIND_DEST_X equ 6 -PATHFIND_DEST_Y equ 8 -PATHFIND_X equ 0Ch -PATHFIND_Y equ 0Ah -PATHFIND_0E equ 0Eh -PATHFIND_DEST_X2 equ 10h -PATHFIND_DEST_OCCUPIED equ 12h -PATHFIND_CELL_POPULATED equ 13h -PATHFIND_X_CHANGE1 equ 14h -PATHFIND_Y_CHANGE1 equ 16h -PATHFIND_X_CHANGE2 equ 18h -PATHFIND_Y_CHANGE2 equ 1Ah - -WALKTO_RECORD_SIZE equ 6 -WALKTO_HOTSPOT_ID equ 0 -WALKTO_X equ 2 -WALKTO_Y equ 4 - -; State values for the cursor_state variable -CURSORSTATE_NONE equ 0 -CURSORSTATE_ACTION equ 1 -CURSORSTATE_SEQUENCE equ 2 -CURSORSTATE_TALK equ 3 -CURSORSTATE_BUMPED equ 4 - -; Character modes -CHARMODE_NONE equ 0 -CHARMODE_1 equ 1 -CHARMODE_IDLE equ 2 -CHARMODE_PAUSED equ 3 -CHARMODE_4 equ 4 -CHARMODE_CONVERSING equ 5 -CHARMODE_6 equ 6 -CHARMODE_7 equ 7 -CHARMODE_8 equ 8 - -; Pathfinder results -PF_OK equ 1 -PF_DEST_OCCUPIED equ 2 - -; HS_BLOCKED_FLAG states -BS_NONE equ 0 -BS_INITIAL equ 1 -BS_FINAL equ 2 - -; Miscellaneous constants -TALK_COUNTDOWN_MAX equ 40 - -; Equates for variables in segment allocated at runtime -ask_num_names equ 30D4h -ask_name_list equ 30D6h -data_31e4 equ 31E4h -saved_zero equ 3350h -saved_room_number equ 3356h -saved_hotspot_id equ 3358h -saved_num_inventory_items equ 3360h -saved_menu_items_proc equ 3368h -saved_menubar_block_size equ 336ah -saved_display_character_proc eqy 336ch -saved_char_width equ 336eh -saved_font2_segment equ 3370h -saved_screen_width equ 3374h -saved_data_segment2 equ 3376h -saved_room_number2 equ 3379h -saved_font_segment equ 337bh -saved_num_groats equ 337eh - - ;------------------------------------------------------------ seg_code ---- - - seg_code segment byte public - assume cs:seg_code , ds:seg_code , ss:stack_seg_k - - - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - ; - ; Program Entry Point - ; - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - - - lure proc far - -273F:0000 start: - -273F:0000 B8 31E4 mov ax, data_seg -273F:0003 8E D8 mov ds, ax -273F:0005 E8 04AE call initialise ; (04B6) -273F:0008 loc_5: ; xref 273F:0171 -273F:0008 úB8 23FC mov ax, offset startup_sequence -273F:000B E8 3E26 call sequence_execute -273F:000E 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:0013 E8 1F49 call show_disk_cursor -273F:0016 EB 59 jmp short loc_10 ; (0071) - -; The following code is jumped to if the game is to be restarted or the room changes - -273F:0018 loc_6: ; xref 273F:0135, 0149 -273F:0018 úC6 06 38B0 01 mov data_781, 1 -273F:001D E8 1F3F call show_disk_cursor -273F:0020 FF 16 0766 call word ptr ds:[fade_out_proc] -273F:0024 E8 4818 call clear_sequence_delay_table -273F:0027 E8 10BE call hotspots_unload ; Disable unneeded hotspots -273F:002A 83 3E BAAD 01 cmp room_exit_animation_flag, 1 -273F:002F 72 0A jb loc_8 ; Jump if below -273F:0031 75 05 jnz loc_7 ; Jump if not zero -273F:0033 E8 A576 call display_chute_animation -273F:0036 EB 03 jmp short loc_8 ; (003B) -273F:0038 loc_7: ; xref 273F:0031 -273F:0038 E8 A680 call display_barrel_animation -273F:003B loc_8: ; xref 273F:002F, 0036 -273F:003B C7 06 BAAD 0000 mov room_exit_animation_flag, 0 -273F:0041 C6 06 9837 00 mov talk_dialog_active, 0 -273F:0046 C7 06 9838 0000 mov data_431,0 ; (273F:9838=5C8Bh) -273F:004C A1 9832 mov ax, room_number -273F:004F E8 0C98 call get_room_resource_pointer2 -273F:0052 A1 B0AA mov ax, game_time_ctr -273F:0055 89 44 13 mov [si+ROOM_EXIT_TIME], ax -273F:0058 F7 06 BA23 FFFF test new_room_number, 0FFFFh -273F:005E 74 08 jz loc_9 ; Jump if zero -273F:0060 A1 BA23 mov ax, new_room_number -273F:0063 A3 9832 mov room_number, ax -273F:0066 EB 09 jmp short loc_10 ; (0071) -273F:0068 loc_9: ; xref 273F:005E -273F:0068 A1 982C mov ax, new_room_number_2 -273F:006B A3 9832 mov room_number, ax -273F:006E E8 6004 call player_change_room ; Position player in new room - -273F:0071 loc_10: ; xref 273F:0016, 0066 -273F:0071 E8 A046 call sub_249 ; (A0BA) -273F:0074 E8 08D7 call clear_layer_rects -273F:0077 E8 08F5 call room_load_layers -273F:007A E8 760F call animations_preload -273F:007D FF 16 074E call word ptr ds:[74Eh] ; (273F:074E=8010h) -273F:0081 E8 0963 call sub_16 ; (09E7) -273F:0084 E8 0A77 call sub_19 ; (0AFE) -273F:0087 E8 6F7B call menubar_clear_image -273F:008A 8B 1E 9832 mov bx, room_number -273F:008E 89 1E BA15 mov room_number_2, bx -273F:0092 E8 0C53 call get_room_resource_pointer -273F:0095 8B 44 11 mov ax, [si+ROOM_SEQUENCE_OFFSET] ; Get sequence offset -273F:0098 3D FFFF cmp ax, 0FFFFh ; Is one defined? -273F:009B 74 03 je loc_11 ; If no, skip execution -273F:009D E8 3D94 call sequence_execute ; Exeecute room script - -273F:00A0 E8 0BDF loc_11: call hotspots_load -273F:00A3 E8 4738 call animations_preload_ticks -273F:00A6 E8 6038 call check_player_bumped -273F:00A9 E8 1462 call room_add_animations -273F:00AC E8 08B2 call clear_info_table -273F:00AF E8 40E4 call animation_tick - -273F:00B2 loc_12: ; xref 273F:00C3 -273F:00B2 80 26 11D0 F7 and menubar_state, 0F7h -273F:00B7 FF 16 0752 call [menubar_restore_area] -273F:00BB E8 1450 call room_add_animations -273F:00BE F6 06 11D0 08 test menubar_state, 8 -273F:00C3 75 ED jnz loc_12 ; Jump if not zero - -; Copy the completed room from the off-screen buffer data_segment2 to the screen - -273F:00C5 FF 16 0744 call [show_screen_proc] ; Copy screen over -273F:00C9 E8 39E2 call replace_vga_palette ; Reset palette -273F:00CC FF 16 0760 call word ptr [fade_in_proc] ; Fade in the screen -273F:00D0 E8 1EA2 call show_arrow_cursor - -273F:00D3 33 C0 xor ax, ax ; Zero register -273F:00D5 A3 BA23 mov new_room_number, ax ; Clear room change variable -273F:00D8 A2 38B0 mov data_781, al -273F:00DB A2 11DA mov mouse_buttons2, al -273F:00DE A3 983F mov data_1090, ax -273F:00E1 A3 9841 mov data_1091, ax -273F:00E4 A2 983A mov data_432, al -273F:00E7 E8 1F1A call sub_61 -273F:00EA F7 06 6CE4 FFFF test word ptr ds:[6CE4h],0FFFFh ; (273F:6CE4=0C18Bh) -273F:00F0 75 03 jnz loc_13 ; Jump if not zero -273F:00F2 E9 9667 jmp loc_1855 ; (975C) - -; Main in game loop - -273F:00F5 loc_13: ; xref 273F:00F0, 0147, 0167, 9782 -273F:00F5 ú83 06 B0AA 01 add game_time_ctr, 1 -273F:00FA 83 16 B0AC 00 adc game_time_ctr_2, 0 -273F:00FF C6 06 00B0 00 mov data_525, 0 -273F:0104 E8 92C1 call room_check_keypresses -273F:0107 E8 4306 call character_paused_list_countdown -273F:010A E8 1B05 call room_check_cursors -273F:010D E8 1189 call room_handle_click -273F:0110 E8 4083 call animation_tick -273F:0113 E8 618B call handle_talking -273F:0116 E8 4741 call sequence_delay_check -273F:0119 FF 16 0752 call [menubar_restore_area] -273F:011D E8 13EE call room_add_animations -273F:0120 FF 16 0744 call [show_screen_proc] -273F:0124 B8 0004 mov ax, 4 ; Wait for four cycles -273F:0127 E8 4892 call room_sleep -273F:012A E8 138B call set_vga_palette -273F:012D F7 06 BA23 FFFF test new_room_number, 0FFFFh ; Need to change room? -273F:0133 74 03 jz loc_14 -273F:0135 E9 FEE0 jmp loc_6 ; Yes, so go do so -273F:0138 loc_14: -273F:0138 F6 06 073D 10 test status_flags2, FLAG_RESTART ; Need to restart? -273F:013D 75 0D jnz loc_16 ; Yes, so do so -273F:013F F7 06 982C FFFF test new_room_number_2, 0FFFFh -273F:0145 75 02 jnz loc_15 ; Jump if not zero -273F:0147 EB AC jmp short loc_13 ; Normal in-game loop - -273F:0149 loc_15: -273F:0149 E9 FECC jmp loc_6 ; Jump to restart -273F:014C loc_16: -273F:014C F6 06 073D 20 test status_flags2, FLAG_CAUGHT -273F:0151 74 03 jz loc_17 ; Jump if zero -273F:0153 E8 A507 call skorl_knockout -273F:0156 loc_17: ; xref 273F:0151 -273F:0156 F6 06 073D 40 test status_flags2, FLAG_RESTORERESTART -273F:015B 74 0C jz loc_18 ; Jump if zero -273F:015D E8 91D6 call sub_228 ; Show restore/restart dialog -273F:0160 75 0A jnz loc_19 ; Jump if not zero -273F:0162 80 26 073D 8F and status_flags2, 8Fh -273F:0167 EB 8C jmp short loc_13 ; (00F5) -273F:0169 loc_18: ; xref 273F:015B -273F:0169 E8 921F call sub_229 ; (938B) -273F:016C loc_19: ; xref 273F:0160 -273F:016C 80 26 073D 8F and status_flags2, 8Fh ; Clear status flags -273F:0171 E9 FE94 jmp loc_5 - - lure endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:024F, 030A - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0174 open_file proc near -273F:0174 F6 06 00B5 80 test byte ptr ds:[file_handle+1],80h ; (273F:00B5=11h) -273F:0179 75 0D jnz loc_20 ; Jump if not zero -273F:017B 8B 1E 00B4 mov bx,word ptr ds:[file_handle] ; (273F:00B4=11D0h) -273F:017F B4 3E mov ah,3Eh -273F:0181 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:0183 C6 06 00B5 80 mov byte ptr ds:[file_handle+1],80h ; (273F:00B5=11h) -273F:0188 loc_20: ; xref 273F:0179 -273F:0188 8A 1E 00B1 mov bl,byte ptr ds:[file_number] ; (273F:00B1=40h) -273F:018C 32 FF xor bh,bh ; Zero register -273F:018E D0 E3 shl bl,1 ; Shift w/zeros fill -273F:0190 8B 97 00B6 mov dx,word ptr ds:[file_offset_table][bx] -273F:0194 B8 3D00 mov ax,3D00h -273F:0197 CD 21 int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx -273F:0199 72 58 jc loc_22 ; Jump if carry Set -273F:019B 2E: F6 06 0943 FF test byte ptr cs:critical_error,0FFh ; (273F:0943=0) -273F:01A1 75 50 jnz loc_22 ; Jump if not zero -273F:01A3 A3 00B4 mov word ptr ds:[file_handle],ax ; (273F:00B4=11D0h) -273F:01A6 8B D8 mov bx,ax -273F:01A8 B9 0008 mov cx,8 -273F:01AB úBA 0119 mov dx, offset file_buffer ; 273F:0119 -273F:01AE B4 3F mov ah,3Fh -273F:01B0 CD 21 int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer -273F:01B2 2E: F6 06 0943 FF test byte ptr cs:critical_error,0FFh ; (273F:0943=0) -273F:01B8 75 35 jnz loc_21 ; Validate file ident string -273F:01BA 81 3E 0119 6568 cmp word ptr ds:[file_buffer],6568h ; 'he' -273F:01C0 75 2D jne loc_21 ; Jump if not equal -273F:01C2 81 3E 011B 7779 cmp word ptr ds:[file_buffer+2],7779h ; 'yw' -273F:01C8 75 25 jne loc_21 ; Jump if not equal -273F:01CA 81 3E 011D 776F cmp word ptr ds:[file_buffer+4],776Fh ; 'ow' -273F:01D0 75 1D jne loc_21 ; Jump if not equal -273F:01D2 A1 011F mov ax,word ptr ds:[file_filenum] ; Get in the file number -273F:01D5 3A 26 00B1 cmp ah,byte ptr ds:[file_number] ; (273F:00B1=40h) -273F:01D9 75 14 jne loc_21 ; Jump if not equal - -273F:01DB B9 05F8 mov cx, sizeof file_entries -273F:01DE úBA 0121 mov dx, offset file_entries -273F:01E1 B4 3F mov ah,3Fh -273F:01E3 CD 21 int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer -273F:01E5 2E: F6 06 0943 FF test byte ptr cs:critical_error,0FFh ; (273F:0943=0) -273F:01EB 75 02 jnz loc_21 ; Jump if not zero -273F:01ED F8 clc ; Clear carry flag -273F:01EE C3 retn -273F:01EF loc_21: ; xref 273F:01B8, 01C0, 01C8, 01D0 - ; 01D9, 01EB -273F:01EF B4 3E mov ah,3Eh -273F:01F1 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:01F3 loc_22: ; xref 273F:0199, 01A1 -273F:01F3 2E: C6 06 0943 00 mov byte ptr cs:critical_error,0 ; (273F:0943=0) -273F:01F9 F9 stc ; Set carry flag -273F:01FA C3 retn - open_file endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0974, 768C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:01FB read_and_validate_header proc near -273F:01FB loc_23: ; xref 273F:02B1, 02DC -273F:01FB úC6 06 00B0 01 mov data_525, 1 -273F:0200 F6 06 00B5 80 test byte ptr ds:[file_handle+1],80h ; (273F:00B5=11h) -273F:0205 75 42 jnz loc_24 ; Jump if not zero -273F:0207 C7 06 0119 0000 mov word ptr ds:[file_buffer],0 ; (273F:0119=16FFh) - -; Read in the file header, that includes the ident string, file number, and entries table - -273F:020D 1E push ds -273F:020E 07 pop es -273F:020F BA 0119 mov dx, offset file_buffer -273F:0212 BB 0000 mov bx,0 -273F:0215 B9 0600 mov cx, FILE_BUFFER_SIZE -273F:0218 33 ED xor bp,bp ; Zero register -273F:021A E8 022D call read_file_entry ; (044A) -273F:021D 72 2A jc loc_24 ; Jump if carry Set -273F:021F 2E: F6 06 0943 FF test byte ptr cs:critical_error,0FFh ; Check if any error occurred -273F:0225 75 22 jnz loc_24 ; Jump if not zero - -; Validate that the file starts with the correct identifier string - -273F:0227 A1 0119 mov ax,word ptr ds:[file_buffer] ; Validate file ident string -273F:022A 3D 6568 cmp ax,6568h ; 'he' -273F:022D 75 1A jne loc_24 -273F:022F A1 011B mov ax,word ptr ds:[file_buffer+2] -273F:0232 3D 7779 cmp ax,7779h ; 'yw' -273F:0235 75 12 jne loc_24 -273F:0237 A1 011D mov ax,word ptr ds:[file_buffer+4] -273F:023A 3D 776F cmp ax,776Fh ; 'ow' -273F:023D 75 0A jne loc_24 ; Jump if not equal -273F:023F A1 011F mov ax,word ptr ds:[11Fh] ; (273F:011F=0FF13h) - -273F:0242 3A 26 00B1 cmp ah,byte ptr ds:[file_number] ; (273F:00B1=40h) -273F:0246 75 01 jne loc_24 ; Jump if not equal -273F:0248 C3 retn - -; If execution reaches this point, then some sort of error occurred - -273F:0249 loc_24: ; xref 273F:0205, 021D, 0225, 022D - ; 0235, 023D, 0246, 0301 -273F:0249 ú2E: C6 06 0943 00 mov byte ptr cs:critical_error,0 -273F:024F E8 FF22 call open_file ; Try to reopen file -273F:0252 73 68 jnc loc_ret_30 ; Jump if no error occurred - -273F:0254 80 3E 0786 02 cmp byte ptr ds:[drive_number],2 ; Is current drive C? -273F:0259 72 19 jb loc_25 ; Jump if it's a floppy drive - -273F:025B A1 00B2 mov ax,word ptr ds:[drive_num] ; (273F:00B2=2680h) -273F:025E E8 00A3 call open_file2 -273F:0261 73 51 jnc loc_29 -273F:0263 F6 06 073D 80 test status_flags2, FLAG_HAS_FLOPPY_DRIVE -273F:0268 75 1B jnz loc_27 -273F:026A 83 36 00B2 01 xor word ptr ds:[drive_num], 1 -273F:026F A1 00B2 mov ax,word ptr ds:[drive_num] -273F:0272 EB 0C jmp short loc_26 - -; At this point, we know that the current drive is either A or B (ie. a floppy drive) -273F:0274 loc_25: -273F:0274 F6 06 073D 80 test status_flags2, FLAG_HAS_FLOPPY_DRIVE -273F:0279 75 0A jnz loc_27 -273F:027B A0 0786 mov al,byte ptr ds:[drive_number] -273F:027E 34 01 xor al,1 -273F:0280 loc_26: ; xref 273F:0272 -273F:0280 E8 0081 call open_file2 ; (0304) -273F:0283 73 2F jnc loc_29 ; Jump if carry=0 -273F:0285 loc_27: ; xref 273F:0268, 0279 -273F:0285 8A 16 0786 mov dl,byte ptr ds:[drive_number] ; (273F:0786=0E8h) -273F:0289 B4 0E mov ah,0Eh -273F:028B CD 21 int 21h ; DOS Services ah=function 0Eh - ; set default drive dl (0=a:) -; Display a message to insert the correct disk in the floppy drive -273F:028D A0 00B1 mov al,byte ptr ds:[file_number] ; (273F:00B1=40h) -273F:0290 2C 01 sub al,1 -273F:0292 D0 E8 shr al,1 ; Shift w/zeros fill -273F:0294 04 04 add al,4 -273F:0296 32 E4 xor ah,ah ; Zero register -273F:0298 B6 00 mov dh,0 -273F:029A E8 3D07 call display_message ; (3FA4) -273F:029D 3C 1B cmp al,1Bh -273F:029F 75 08 jne loc_28 ; Jump if not equal -273F:02A1 B8 0000 mov ax,0 -273F:02A4 B6 01 mov dh,1 -273F:02A6 E8 3CFB call display_message ; (3FA4) -273F:02A9 loc_28: ; xref 273F:029F -273F:02A9 8A 16 0786 mov dl,byte ptr ds:[drive_number] ; (273F:0786=0E8h) -273F:02AD B4 0E mov ah,0Eh -273F:02AF CD 21 int 21h ; DOS Services ah=function 0Eh - ; set default drive dl (0=a:) -273F:02B1 E9 FF47 jmp loc_23 ; (01FB) -273F:02B4 loc_29: ; xref 273F:0261, 0283 -273F:02B4 8A 16 0786 mov dl,byte ptr ds:[drive_number] ; (273F:0786=0E8h) -273F:02B8 B4 0E mov ah,0Eh -273F:02BA CD 21 int 21h ; DOS Services ah=function 0Eh - ; set default drive dl (0=a:) - -273F:02BC loc_ret_30: ; xref 273F:0252 -273F:02BC C3 retn - read_and_validate_header endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:034C, 040E, 757C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:02BD validate_header proc near -273F:02BD B1 06 mov cl,6 -273F:02BF D2 EC shr ah,cl ; Shift w/zeros fill -273F:02C1 80 E4 03 and ah,3 -273F:02C4 80 C4 01 add ah,1 -273F:02C7 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:02CC 75 03 jne loc_31 ; Jump if it's VGA -273F:02CE 80 C4 04 add ah,4 -273F:02D1 loc_31: -273F:02D1 88 26 00B1 mov byte ptr ds:[file_number],ah ; (273F:00B1=40h) -273F:02D5 F6 06 00B0 FF test data_525, 0FFh -273F:02DA 75 03 jnz loc_32 ; Jump if not zero -273F:02DC E9 FF1C jmp loc_23 ; (01FB) -273F:02DF loc_32: ; xref 273F:02DA -273F:02DF A1 0119 mov ax,word ptr ds:[file_buffer] ; Validate file ident string -273F:02E2 3D 6568 cmp ax,6568h ; 'he' -273F:02E5 75 1A jne loc_33 ; Jump if not equal -273F:02E7 A1 011B mov ax,word ptr ds:[file_buffer+2] -273F:02EA 3D 7779 cmp ax,7779h ; 'yw' -273F:02ED 75 12 jne loc_33 ; Jump if not equal -273F:02EF A1 011D mov ax,word ptr ds:[file_buffer+4] -273F:02F2 3D 776F cmp ax,776Fh ; 'ow' -273F:02F5 75 0A jne loc_33 ; Jump if not equal -273F:02F7 A1 011F mov ax,word ptr ds:[file_filenum] ; (273F:011F=0FF13h) -273F:02FA 3A 26 00B1 cmp ah,byte ptr ds:[file_number] ; (273F:00B1=40h) -273F:02FE 75 01 jne loc_33 ; Jump if not equal -273F:0300 C3 retn -273F:0301 loc_33: ; xref 273F:02E5, 02ED, 02F5, 02FE - -; Jumps to the error recovery code, which can open up the appropriate file and load it from scratch -273F:0301 E9 FF45 jmp loc_24 ; (0249) - validate_header endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:025E, 0280 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0304 open_file2 proc near -273F:0304 8A D0 mov dl,al -273F:0306 B4 0E mov ah,0Eh -273F:0308 CD 21 int 21h ; DOS Services ah=function 0Eh - ; set default drive dl (0=a:) -273F:030A E8 FE67 call open_file ; (0174) -273F:030D C3 retn - open_file2 endp - -273F:030E 0000 data_121 dw 0 ; xref 273F:0314, 03D5 -273F:0310 0000 data_122 dw 0 ; xref 273F:0318, 03D9 -273F:0312 0000 data_123 dw 0 ; xref 273F:031D, 03DE - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0BDA, 3ACD, 3CA3, 7640, 7813, 7AC5, 7B63 - ; 7B80, 93A9, 9F6E, 9F8C, 9FB1, A302, A34F - ; A7C0, A7E2, A900, A9B3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0314 read_entry proc near -273F:0314 loc_34: ; xref 273F:03E3 -273F:0314 2E: A3 030E mov cs:data_121,ax ; (273F:030E=0) -273F:0318 2E: 89 0E 0310 mov cs:data_122,cx ; (273F:0310=0) -273F:031D 2E: 89 16 0312 mov cs:data_123,dx ; (273F:0312=0) -273F:0322 8B D8 mov bx,ax -273F:0324 81 E3 3FFF and bx,3FFFh -273F:0328 81 FB 0120 cmp bx,120h -273F:032C 74 11 je loc_35 ; Jump if equal -273F:032E 81 FB 0311 cmp bx,311h -273F:0332 74 0B je loc_35 ; Jump if equal -273F:0334 83 FB 08 cmp bx,8 -273F:0337 74 06 je loc_35 ; Jump if equal -273F:0339 81 FB 0410 cmp bx,410h -273F:033D 75 0A jne loc_36 ; Jump if not equal -273F:033F loc_35: ; xref 273F:032C, 0332, 0337 - assume ds:data_seg -273F:033F F6 06 BAB9 FF test byte ptr script_val_88, 0FFh -273F:0344 74 03 jz loc_36 ; Jump if zero -273F:0346 80 F4 80 xor ah,80h -273F:0349 loc_36: ; xref 273F:033D, 0344 -273F:0349 51 push cx -273F:034A 52 push dx -273F:034B 50 push ax -273F:034C E8 FF6E call validate_header ; (02BD) -273F:034F 58 pop ax -273F:0350 5A pop dx -273F:0351 úBB 0119 mov bx,offset file_buffer -273F:0354 B9 00C0 mov cx,0C0h ; Number of header entries + 1 - -273F:0357 locloop_37: ; xref 273F:035E -273F:0357 3B 07 cmp ax,[bx] -273F:0359 74 0D je loc_38 ; Jump if equal -273F:035B 83 C3 08 add bx,8 -273F:035E E2 F7 loop locloop_37 ; Loop if cx > 0 - -273F:0360 B8 0009 mov ax,9 ; 'Data file is corrupt.$' -273F:0363 B6 01 mov dh,1 -273F:0365 E8 3C3C call display_message ; (3FA4) -273F:0368 loc_38: ; xref 273F:0359 -273F:0368 07 pop es -273F:0369 8B 4F 04 mov cx,[bx+4] -273F:036C 8A 47 03 mov al,[bx+3] -273F:036F 32 E4 xor ah,ah ; Zero register -273F:0371 8B E8 mov bp,ax -273F:0373 FF 77 01 push word ptr [bx+1] - -273F:0376 8B 5F 06 mov bx,[bx+6] -273F:0379 51 push cx -273F:037A 55 push bp -273F:037B E8 00CC call read_file_entry ; (044A) -273F:037E 5D pop bp -273F:037F B1 0C mov cl,0Ch -273F:0381 D3 E5 shl bp,cl ; Shift w/zeros fill -273F:0383 59 pop cx -273F:0384 8B D1 mov dx,cx -273F:0386 83 EA 01 sub dx,1 -273F:0389 D1 EA shr dx,1 ; Shift w/zeros fill -273F:038B D1 EA shr dx,1 ; Shift w/zeros fill -273F:038D D1 EA shr dx,1 ; Shift w/zeros fill -273F:038F D1 EA shr dx,1 ; Shift w/zeros fill -273F:0391 83 C2 01 add dx,1 -273F:0394 03 D5 add dx,bp -273F:0396 5B pop bx -273F:0397 2E: F6 06 0943 FF test byte ptr cs:critical_error,0FFh ; (273F:0943=0) -273F:039D 75 06 jnz loc_39 ; Jump if not zero -273F:039F C6 06 0118 00 mov byte ptr retry_count,0 ; (31E4:0118=0) -273F:03A4 C3 retn -273F:03A5 loc_39: ; xref 273F:039D -273F:03A5 80 06 0118 01 add byte ptr retry_count,1 ; (31E4:0118=0) -273F:03AA 80 3E 0118 05 cmp byte ptr retry_count,5 ; (31E4:0118=0) -273F:03AF 72 19 jb loc_40 ; Jump if below -273F:03B1 C6 06 0118 00 mov byte ptr retry_count,0 ; (31E4:0118=0) -273F:03B6 B8 0001 mov ax,1 -273F:03B9 B6 00 mov dh,0 -273F:03BB E8 3BE6 call display_message ; (3FA4) -273F:03BE 3C 1B cmp al,1Bh -273F:03C0 75 08 jne loc_40 ; Jump if not equal -273F:03C2 B8 0000 mov ax,0 -273F:03C5 B6 01 mov dh,1 -273F:03C7 E8 3BDA call display_message ; (3FA4) -273F:03CA loc_40: ; xref 273F:03AF, 03C0 -273F:03CA 2E: C6 06 0943 00 mov byte ptr cs:critical_error,0 ; (273F:0943=0) -273F:03D0 C6 06 00B0 00 mov data_525, 0 -273F:03D5 2E: A1 030E mov ax,cs:data_121 ; (273F:030E=0) -273F:03D9 2E: 8B 0E 0310 mov cx,cs:data_122 ; (273F:0310=0) -273F:03DE 2E: 8B 16 0312 mov dx,cs:data_123 ; (273F:0312=0) -273F:03E3 E9 FF2E jmp loc_34 ; (0314) - read_entry endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:77F1, A7B4 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:03E6 get_entry_size proc near -273F:03E6 8B D8 mov bx,ax -273F:03E8 81 E3 3FFF and bx,3FFFh -273F:03EC 81 FB 0120 cmp bx,120h -273F:03F0 74 11 je loc_41 ; Jump if equal -273F:03F2 81 FB 0311 cmp bx,311h -273F:03F6 74 0B je loc_41 ; Jump if equal -273F:03F8 83 FB 08 cmp bx,8 -273F:03FB 74 06 je loc_41 ; Jump if equal -273F:03FD 81 FB 0410 cmp bx,410h -273F:0401 75 0A jne loc_42 ; Jump if not equal -273F:0403 loc_41: ; xref 273F:03F0, 03F6, 03FB -273F:0403 F6 06 BAB9 FF test byte ptr script_val_88, 0FFh -273F:0408 74 03 jz loc_42 ; Jump if zero -273F:040A 80 F4 80 xor ah,80h -273F:040D loc_42: ; xref 273F:0401, 0408 -273F:040D 50 push ax -273F:040E E8 FEAC call validate_header ; (02BD) -273F:0411 58 pop ax -273F:0412 úBB 0119 mov bx, offset file_buffer ; (273F:0119=0FFh) -273F:0415 B9 00C0 mov cx,0C0h - -273F:0418 locloop_43: ; xref 273F:041F -273F:0418 3B 07 cmp ax,[bx] -273F:041A 74 0D je loc_44 ; Jump if equal -273F:041C 83 C3 08 add bx,8 -273F:041F E2 F7 loop locloop_43 ; Loop if cx > 0 - -273F:0421 B8 0009 mov ax,9 ; 'Data file is corrupt.$' -273F:0424 B6 01 mov dh,1 -273F:0426 E8 3B7B call display_message ; (3FA4) -273F:0429 loc_44: ; xref 273F:041A -273F:0429 8A 4F 03 mov cl,[bx+3] -273F:042C 32 ED xor ch,ch ; Zero register -273F:042E 8B E9 mov bp,cx -273F:0430 B1 0C mov cl,0Ch -273F:0432 D3 E5 shl bp,cl ; Shift w/zeros fill -273F:0434 8B 4F 04 mov cx,[bx+4] -273F:0437 8B D1 mov dx,cx -273F:0439 83 EA 01 sub dx,1 -273F:043C D1 EA shr dx,1 ; Shift w/zeros fill -273F:043E D1 EA shr dx,1 ; Shift w/zeros fill -273F:0440 D1 EA shr dx,1 ; Shift w/zeros fill -273F:0442 D1 EA shr dx,1 ; Shift w/zeros fill -273F:0444 83 C2 01 add dx,1 -273F:0447 03 D5 add dx,bp -273F:0449 C3 retn - get_entry_size endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:021A, 037B - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - - -273F:044A read_file_entry proc near -273F:044A 1E push ds -273F:044B 51 push cx -273F:044C 52 push dx -273F:044D B8 0020 mov ax,20h -273F:0450 F7 E3 mul bx ; dx:ax = reg * ax -273F:0452 8B CA mov cx,dx -273F:0454 8B D0 mov dx,ax -273F:0456 51 push cx -273F:0457 52 push dx -273F:0458 B8 4200 mov ax,4200h -273F:045B 8B 1E 00B4 mov bx,word ptr ds:[file_handle] ; (273F:00B4=11D0h) -273F:045F CD 21 int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset -273F:0461 72 3F jc loc_47 ; Jump if carry Set -273F:0463 5B pop bx -273F:0464 59 pop cx -273F:0465 3B CA cmp cx,dx -273F:0467 75 3B jne loc_48 ; Jump if not equal -273F:0469 3B C3 cmp ax,bx -273F:046B 75 37 jne loc_48 ; Jump if not equal -273F:046D 8B 1E 00B4 mov bx,word ptr ds:[file_handle] ; (273F:00B4=11D0h) -273F:0471 5A pop dx -273F:0472 D1 E5 shl bp,1 ; Shift w/zeros fill -273F:0474 loc_45: ; xref 273F:0490 -273F:0474 ú83 ED 01 sub bp,1 -273F:0477 72 19 jc loc_46 ; Jump if carry Set -273F:0479 8C C0 mov ax,es -273F:047B 8E D8 mov ds,ax -273F:047D 05 0800 add ax,800h -273F:0480 8E C0 mov es,ax -273F:0482 B4 3F mov ah,3Fh ; '?' -273F:0484 B9 8000 mov cx,8000h -273F:0487 CD 21 int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer -273F:0489 72 1A jc loc_49 ; Jump if carry Set -273F:048B 3D 8000 cmp ax,8000h -273F:048E 75 15 jne loc_49 ; Jump if not equal -273F:0490 EB E2 jmp short loc_45 ; (0474) -273F:0492 loc_46: ; xref 273F:0477 -273F:0492 59 pop cx -273F:0493 06 push es -273F:0494 1F pop ds -273F:0495 B4 3F mov ah,3Fh -273F:0497 CD 21 int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer -273F:0499 72 0B jc loc_50 ; Jump if carry Set -273F:049B 3B C1 cmp ax,cx -273F:049D 75 07 jne loc_50 ; Jump if not equal -273F:049F 1F pop ds -273F:04A0 F8 clc ; Clear carry flag -273F:04A1 C3 retn -273F:04A2 loc_47: ; xref 273F:0461 -273F:04A2 58 pop ax -273F:04A3 58 pop ax -273F:04A4 loc_48: ; xref 273F:0467, 046B -273F:04A4 58 pop ax -273F:04A5 loc_49: ; xref 273F:0489, 048E -273F:04A5 58 pop ax -273F:04A6 loc_50: ; xref 273F:0499, 049D -273F:04A6 1F pop ds -273F:04A7 F9 stc ; Set carry flag -273F:04A8 C3 retn - read_file_entry endp - -273F:04A9 00 db 0 -273F:04AA 0000 0000 old_timer_int_proc dw 0, 0 ; xref 273F:0699, 3FD2, 49A6 -273F:04AE 0000 0000 old_kbd_int_proc dw 0, 0 ; xref 273F:06F2, 4004, 94DC -273F:04B2 0000 old_critical_int_proc dw 0, 0 ; xref 273F:06D1, 3FEB - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0005 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:04B6 initialise proc near -273F:04B6 E8 0314 call sub_10 ; (07CD) -273F:04B9 E8 0447 call sub_12 ; (0903) -273F:04BC C7 06 5662 094D mov play_music_proc, offset retf_proc -273F:04C2 8C 0E 5664 mov word ptr play_music_proc+2,cs -273F:04C6 F6 06 0742 FF test video_style, 0FFh ; Is any video mode defined -273F:04CB 74 07 jz loc_51 ; Jump if zero -273F:04CD 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:04D2 74 20 je loc_53 ; Jump if equal -273F:04D4 loc_51: ; xref 273F:04CB -273F:04D4 B8 1A00 mov ax,1A00h -273F:04D7 CD 10 int 10h ; Video display ah=functn 1Ah - ; get display type in bx -273F:04D9 3C 1A cmp al,1Ah -273F:04DB 75 0C jne loc_52 ; Function not supported -273F:04DD 80 FB 04 cmp bl,4 ; EGA monitor -273F:04E0 74 12 je loc_53 ; Jump if equal -273F:04E2 80 FB 08 cmp bl,8 ; VGA with analog colour model -273F:04E5 75 10 jne loc_54 ; Jump if not equal -273F:04E7 EB 16 jmp short loc_55 ; (04FF) - -273F:04E9 loc_52: ; xref 273F:04DB -273F:04E9 B4 12 mov ah,12h -273F:04EB B3 10 mov bl,10h ; bl=Return Config Info -273F:04ED CD 10 int 10h ; Video display EGA/VGA special - -273F:04EF 80 FB 10 cmp bl,10h ; Not supported -273F:04F2 74 03 je loc_54 -273F:04F4 loc_53: ; xref 273F:04D2, 04E0 -273F:04F4 E9 00C9 jmp loc_56 - -; Computer doesn't support EGA or VGA -273F:04F7 loc_54: -273F:04F7 B8 0002 mov ax,2 -273F:04FA B6 01 mov dh,1 -273F:04FC E8 3AA5 call display_message - -; Game will run in VGA mode -273F:04FF loc_55: -273F:04FF C6 06 0743 13 mov video_mode, 13h ; 3200x200x256 mode -273F:0504 C6 06 0742 01 mov video_style, VIDEO_STYLE_VGA ; Flag for VGA mode -273F:0509 C7 06 0744 304E mov show_screen_proc, offset vga_show_screen -273F:050F C7 06 074A 0008 mov char_width, 8 -273F:0515 C7 06 0746 FA00 mov screen_size, SCREEN_HEIGHT*SCREEN_WIDTH -273F:051B C7 06 0748 0140 mov screen_width, SCREEN_WIDTH -273F:0521 C7 06 074C 0A00 mov menubar_block_size, MENUBAR_Y_SIZE*SCREEN_WIDTH -273F:0527 C7 06 074E 346D mov data_555, offset vga_346d -273F:052D C7 06 0750 3527 mov segment_screen_proc, vga_segment_screen -273F:0533 C7 06 0752 340F mov show_compressed_screen_proc, offset vga_show_compressed_screen -273F:0539 C7 06 0754 37F2 mov add_animation_proc, offset vga_add_animation -273F:053F C7 06 0756 33B3 mov draw_talk_dialog_proc, offset vga_draw_talk_dialog -273F:0545 C7 06 0758 3242 mov talk_dialog_proc, vga_talk_dialog -273F:054B C7 06 075A 3209 mov display2_character_proc, offset vga_display2_character -273F:0551 C7 06 075C 3599 mov add_rect_proc, vga_add_rect -273F:0557 C7 06 075E 3664 mov show_cursor_proc, offset vga_cursor -273F:055D C7 06 0766 30E2 mov fade_out_proc, offset vga_fade_out -273F:0563 C7 06 0760 3177 mov fade_in_proc, offset vga_fade_in -273F:0569 C7 06 0762 31D3 mov set_lower_palette_proc, offset vga_set_lower_palette -273F:056F C7 06 0764 31E9 mov empty_palette_proc, offset vga_empty_palette -273F:0575 C7 06 076A 35F6 mov display_character_proc, offset vga_display_character -273F:057B C7 06 076C 362D mov menu_items_proc, offset vga_menu_items -273F:0581 C7 06 076E 1450 mov data_571, offset vga_unknown_rec -273F:0587 C7 06 0770 3948 mov data_572,3948h ; (31E4:0770=0) -273F:058D C7 06 0772 3AD7 mov toggle_menu_highlight_proc, offset vga_toggle_menu_highlight -273F:0593 C7 06 0774 07ED mov data_574, offset vga_no_implementation -273F:0599 C7 06 0776 07ED mov data_575, offset vga_no_implementation -273F:059F C7 06 0778 3374 mov data_576,3374h ; (31E4:0778=0) -273F:05A5 C7 06 077A 3295 mov draw_dialog_proc, offset vga_draw_dialog -273F:05AB C7 06 077C 398A mov decode_entry_proc, offset decode_file_entry -273F:05B1 C7 06 077E A7E6 mov copy_screen_proc, offset vga_copy_screen -273F:05B7 C7 06 0780 A711 mov pic_decode_proc, offset vga_pic_decode -273F:05BD E9 00C4 jmp loc_57 - -; Game will run in EGA mode -273F:05C0 loc_56: ; xref 273F:04F4 -273F:05C0 C6 06 0743 0D mov byte ptr video_mode,0Dh ; 320x200x16 mode -273F:05C5 C6 06 0742 02 mov video_style, VIDEO_STYLE_EGA,2 -273F:05CA C7 06 0744 205C mov show_screen_proc, offset ega_show_screen -273F:05D0 C7 06 074A 0004 mov char_width, 4 -273F:05D6 C7 06 0746 7D00 mov screen_size, 7D00h -273F:05DC C7 06 0748 00A0 mov screen_width, SCREEN_WIDTH/2 -273F:05E2 C7 06 074C 0500 mov menubar_block_size, MENUBAR_Y_SIZE*SCREEN_WIDTH/2 -273F:05E8 C7 06 074E 2814 mov data_555,2814h ; (31E4:074E=0) -273F:05EE C7 06 0750 270D mov segment_screen_proc, ega_segment_screen -273F:05F4 C7 06 0752 27B1 mov show_compressed_screen_proc, offset ega_show_compressed_screen -;menubar_restore_area -273F:05FA C7 06 0754 2C76 mov add_animation_proc, offset ega_add_animation -273F:0600 C7 06 0756 2275 mov draw_talk_dialog_proc, offset ega_draw_talk_dialog -273F:0606 C7 06 0758 2217 mov talk_dialog_proc, offset ega_talk_dialog -273F:060C C7 06 075A 2184 mov display2_character_proc, 2184h -273F:0612 C7 06 075C 29A4 mov add_rect_proc, offset ega_add_layer -273F:0618 C7 06 075E 2AB3 mov show_cursor_proc, offset ega_cursor -273F:061E C7 06 0768 07ED mov data_568,07EDh -273F:0624 C7 06 0766 215F mov fade_out_proc, offset ega_empty_palette -273F:062A C7 06 0760 2174 mov fade_in_proc, offset ega_fade_in -273F:0630 C7 06 0762 2174 mov set_lower_palette_proc, offset ega_fade_in -273F:0636 C7 06 0764 215F mov empty_palette_proc, ega_empty_palette -273F:063C C7 06 076A 2A31 mov display_character_proc, offset ega_display_character -273F:0642 C7 06 076C 22C4 mov menu_items_proc, offset ega_menu_items -273F:0648 C7 06 076E 1444 mov data_571, offset ega_unknown_rec -273F:064E C7 06 0770 2F9C mov data_572,2F9Ch ; (31E4:0770=0) -273F:0654 C7 06 0772 2FF3 mov toggle_menu_highlight_proc, offset ega_toggle_menu_highlight -273F:065A C7 06 0774 2688 mov data_574,2688h ; (31E4:0774=0) -273F:0660 C7 06 0776 26C7 mov data_575,26C7h ; (31E4:0776=0) -273F:0666 C7 06 0778 23EA mov data_576,23EAh ; (31E4:0778=0) -273F:066C C7 06 077A 2370 mov draw_dialog_proc, offset ega_draw_dialog -273F:0672 C7 06 077C 246A mov decode_entry_proc, offset ega_decode_entry -273F:0678 C7 06 077E A80C mov copy_screen_proc, offset ega_copy_screen -273F:067E C7 06 0780 A75F mov pic_decode_proc, offset ega_pic_decode - -273F:0684 loc_57: ; xref 273F:05BD -273F:0684 B4 30 mov ah,30h -273F:0686 CD 21 int 21h ; DOS Services ah=function 30h - ; get DOS version number ax -273F:0688 3C 01 cmp al,1 ; At least DOS version 1.0? -273F:068A 7F 08 jg loc_58 ; Jump if > -273F:068C B8 0003 mov ax,3 ; Bail out with DOS error message -273F:068F B6 01 mov dh,1 -273F:0691 E8 3910 call display_message - -273F:0694 loc_58: -273F:0694 B8 3508 mov ax,3508h ; Get current timer handler address -273F:0697 CD 21 int 21h ; DOS Services ah=function 35h - ; get intrpt vector al in es:bx -273F:0699 2E: 89 1E 04AA mov cs:old_timer_int_proc, bx -273F:069E 8C C0 mov ax,es -273F:06A0 2E: A3 04AC mov word ptr cs:old_timer_int_proc+2,ax -273F:06A4 B8 2508 mov ax,2508h -273F:06A7 1E push ds -273F:06A8 0E push cs -273F:06A9 1F pop ds -273F:06AA úBA 48C6 mov dx,offset timer_handler -273F:06AD CD 21 int 21h ; DOS Services ah=function 25h - ; set intrpt vector al to ds:dx -273F:06AF 1F pop ds -273F:06B0 80 0E 073C 04 or status_flags, STATUS_TIMER_SET -273F:06B5 B9 5D38 mov cx,5D38h -273F:06B8 B0 36 mov al,36h ; '6' -273F:06BA E6 43 out 43h,al ; port 43h, 8253 timer control -273F:06BC EB 00 jmp short $+2 ; delay for I/O -273F:06BE EB 00 jmp short $+2 ; delay for I/O -273F:06C0 8A C1 mov al,cl -273F:06C2 E6 40 out 40h,al ; port 40h, 8253 timer 0 clock -273F:06C4 EB 00 jmp short $+2 ; delay for I/O -273F:06C6 EB 00 jmp short $+2 ; delay for I/O -273F:06C8 8A C5 mov al,ch -273F:06CA E6 40 out 40h,al ; port 40h, 8253 timer 0 clock -273F:06CC B8 3524 mov ax,3524h -273F:06CF CD 21 int 21h ; DOS Services ah=function 35h - ; get intrpt vector al in es:bx -273F:06D1 2E: 89 1E 04B2 mov cs:old_critical_int_proc, bx -273F:06D6 8C C0 mov ax,es -273F:06D8 2E: A3 04B4 mov cs:old_critical_int_proc+2,ax -273F:06DC B8 2524 mov ax,2524h -273F:06DF 1E push ds -273F:06E0 0E push cs -273F:06E1 1F pop ds -273F:06E2 úBA 0944 mov dx,offset critical_handler ; Set new critical error handler -273F:06E5 CD 21 int 21h ; DOS Services ah=function 25h - ; set intrpt vector al to ds:dx -273F:06E7 1F pop ds -273F:06E8 80 0E 073C 10 or status_flags, STATUS_CRITICAL_SET -273F:06ED B8 3509 mov ax,3509h -273F:06F0 CD 21 int 21h ; DOS Services ah=function 35h - ; get intrpt vector al in es:bx -273F:06F2 2E: 89 1E 04AE mov cs:old_kbd_int_proc, bx -273F:06F7 8C C0 mov ax,es -273F:06F9 2E: A3 04B0 mov word ptr cs:old_kbd_int_proc+2, ax -273F:06FD B8 2509 mov ax,2509h -273F:0700 1E push ds -273F:0701 0E push cs -273F:0702 1F pop ds -273F:0703 úBA 94DB mov dx,offset keyboard_handler ; Set new keyboard handler -273F:0706 CD 21 int 21h ; DOS Services ah=function 25h - ; set intrpt vector al to ds:dx -273F:0708 1F pop ds -273F:0709 80 0E 073C 40 or status_flags, STATUS_KEYBOARD_SET -273F:070E B4 19 mov ah,19h -273F:0710 CD 21 int 21h ; DOS Services ah=function 19h - ; get default drive al (0=a:) -273F:0712 A2 0786 mov default_drive, al -273F:0715 CD 11 int 11h ; Put equipment bits in ax -273F:0717 A8 C0 test al,0C0h ; How many floppy drives attached? -273F:0719 75 05 jnz loc_59 ; Jump if not zero -273F:071B 80 0E 073D 80 or status_flags2, FLAG_HAS_FLOPPY_DRIVE -273F:0720 loc_59: ; xref 273F:0719 -273F:0720 B8 3300 mov ax,3300h -273F:0723 CD 21 int 21h ; DOS Services ah=function 33h - ; get ctrl-break flag in dl -273F:0725 88 16 073E mov old_ctrl_break_flag, dl -273F:0729 B8 3301 mov ax,3301h -273F:072C B2 00 mov dl,0 -273F:072E CD 21 int 21h ; DOS Services ah=function 33h - ; set ctrl-break flag dl=off/on -273F:0730 80 0E 073C 08 or status_flags, STATUS_CTRL_BREAK_SET -273F:0735 B8 0040 mov ax,40h -273F:0738 8E C0 mov es,ax -273F:073A 26: A0 0017 mov al,es:keybd_flags_1 ; (0040:0017=0) -273F:073E A2 073F mov data_546,al ; (31E4:073F=1) -273F:0741 B4 0F mov ah,0Fh -273F:0743 CD 10 int 10h ; Video display ah=functn 0Fh - ; get state, al=mode, bh=page - ; ah=columns on screen -273F:0745 A2 073B mov data_542,al ; (31E4:073B=0) -273F:0748 B4 00 mov ah,0 -273F:074A A0 0743 mov al,video_mode ; (31E4:0743=0) -273F:074D CD 10 int 10h ; Video display ah=functn 00h - ; set display mode in al -273F:074F 80 0E 073C 01 or status_flags, STATUS_VIDEO_MODE_SET -273F:0754 80 3E 0742 01 cmp video_style, VIDEO_STYLE_VGA -273F:0759 75 03 jne loc_60 ; Jump if not equal -273F:075B E8 3A27 call set_upper_vga_palette -273F:075E loc_60: ; xref 273F:0759 -273F:075E E8 6E1B call show_startup ; (757C) - -273F:0761 C7 06 11D6 00A0 mov mouse_x2, 160 ; Default mouse pos to center -273F:0767 C7 06 11D1 00A0 mov mouse_x, 160 -273F:076D C7 06 11D8 0064 mov mouse_y2, 100 -273F:0773 C7 06 11D3 0064 mov mouse_y, 100 - -273F:0779 B8 0000 mov ax,0 -273F:077C CD 33 int 33h ; Mouse driver ax=func 0000h - ; installed?, ax=0 no, =-1 yes - ; bx=number of mouse buttons -273F:077E 0B C0 or ax,ax ; Zero ? -273F:0780 74 45 jz loc_61 ; Mouse not installed -273F:0782 1E push ds -273F:0783 0E push cs -273F:0784 07 pop es -273F:0785 úBA 1EE8 mov dx,offset mouse_handler -273F:0788 B9 007F mov cx,7Fh -273F:078B B8 000C mov ax,0Ch -273F:078E CD 33 int 33h ; Mouse driver ax=func 000Ch - ; set user handler at es:dx - ; cx=event mask -273F:0790 1F pop ds -273F:0791 80 0E 073C 80 or status_flags, STATUS_MOUSE_HANDLER_SET -273F:0796 B9 0000 mov cx,0 -273F:0799 BA 027F mov dx, 639 -273F:079C B8 0007 mov ax,7 -273F:079F CD 33 int 33h ; Mouse driver ax=func 0007h - ; set horz range 0 - 639 -273F:07A1 B9 0000 mov cx,0 -273F:07A4 BA 00C6 mov dx,0C6h -273F:07A7 B8 0008 mov ax,8 -273F:07AA CD 33 int 33h ; Mouse driver ax=func 0008h - ; set vert range 0 - 198 -273F:07AC B8 0003 mov ax,3 -273F:07AF CD 33 int 33h ; Mouse driver ax=func 0003h - ; get position, cx=horz,dx=vert - ; bx=mouse button status bits -273F:07B1 88 1E 11D5 mov mouse_buttons, bl ; (31E4:11D5=0) -273F:07B5 D1 E9 shr cx,1 ; Change 0-640 horiz to 0-320 -273F:07B7 89 0E 11D6 mov mouse_x2,cx ; -273F:07BB 89 0E 11D1 mov mouse_x, cx -273F:07BF 89 16 11D8 mov mouse_y2,dx -273F:07C3 89 16 11D3 mov mouse_y, dx -273F:07C7 loc_61: ; xref 273F:0780 -273F:07C7 80 26 11D0 FD and menubar_state, 0FDh ; (31E4:11D0=3) -273F:07CC C3 retn - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:04B6, AA1E - -273F:07CD sub_10: -273F:07CD 8C D3 mov bx,ss -273F:07CF 8C C0 mov ax,es -273F:07D1 2B D8 sub bx,ax -273F:07D3 8B C4 mov ax,sp -273F:07D5 B1 04 mov cl,4 -273F:07D7 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:07D9 03 D8 add bx,ax -273F:07DB 83 C3 03 add bx,3 -273F:07DE 89 1E 0740 mov data_547,bx ; (31E4:0740=0) -273F:07E2 B4 4A mov ah,4Ah -273F:07E4 CD 21 int 21h ; DOS Services ah=function 4Ah - ; change memory allocation - ; bx=bytes/16, es=mem segment -273F:07E6 BB FFFF mov bx,0FFFFh -273F:07E9 B4 48 mov ah,48h -273F:07EB CD 21 int 21h ; DOS Services ah=function 48h - ; allocate memory, bx=bytes/16 -273F:07ED vga_no_implementation retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6614 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - backup_variables proc near -273F:07EE C6 06 38B0 01 mov data_781, 1 -273F:07F3 80 0E 11D0 01 or menubar_state, 1 ; (273F:11D0=56h) -273F:07F8 FF 16 075E call [show_cursor_proc] -273F:07FC 8C DD mov bp,ds -273F:07FE A1 4CE6 mov ax, talk_dialog_buffer -273F:0801 8E C0 mov es, ax -273F:0803 B1 03 mov cl,3 -273F:0805 A1 11D8 mov ax, mouse_y2 -273F:0808 A3 0784 mov saved_mouse_y, ax -273F:080B A1 11D6 mov ax, mouse_x2 -273F:080E A3 0782 mov saved_mouse_x, ax -273F:0811 A1 076C mov ax, menu_items_proc -273F:0814 26: A3 3368 mov es:saved_menu_items_proc, ax -273F:0818 A0 9835 mov al, num_inventory_items -273F:081B 26: A2 3360 mov es:saved_num_inventory_items, al -273F:081F A1 BC49 mov ax, num_groats -273F:0822 26: A3 337E mov es:saved_num_groats, ax -273F:0826 A1 4CE4 mov ax, word ptr ds:data_segment2 -273F:0829 26: A3 3376 mov es:saved_data_segment2, ax -273F:082D A1 4CF2 mov ax, font_segment -273F:0830 26: A3 337B mov es:saved_font_segment, ax -273F:0834 A1 4CF0 mov ax, font2_segment -273F:0837 26: A3 3370 mov es:saved_font2_segment, ax -273F:083B 26: C7 06 3362 0000 mov word ptr es:data_77e,0 ; (0874:3362=0AF06h) -273F:0842 A1 1924 mov ax, hotspot_id -273F:0845 26: A3 3358 mov es:saved_hotspot_id, ax -273F:0849 A1 9832 mov ax, room_number -273F:084C 26: A3 3356 mov es:saved_room_number, ax -273F:0850 A1 074C mov ax, menubar_block_size -273F:0853 26: A3 336A mov es:saved_menubar_block_size, ax -273F:0857 A1 0748 mov ax, screen_width -273F:085A 26: A3 3374 mov es:saved_screen_width, ax -273F:085E A1 076A mov ax, display_character_proc -273F:0861 26: A3 336C mov es:saved_display_character_proc, ax -273F:0865 A1 074A mov ax, char_width -273F:0868 26: A3 336E mov es:saved_char_width, ax -273F:086C 8B 36 076E mov si, data_571 -273F:0870 8B 04 mov ax, [si] -273F:0872 26: A3 33DE mov es:data_92e,ax ; (0874:33DE=0A21Dh) -273F:0876 8B 44 02 mov ax,[si+2] -273F:0879 26: A3 33DC mov es:data_91e,ax ; (0874:33DC=11A2h) -273F:087D úBF 33E0 mov di,data_93e ; (0874:33E0=0F2h) -273F:0880 B9 001B mov cx,1Bh -273F:0883 úBE 0720 mov si,720h ; (273F:0720=0B8h) -273F:0886 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:0888 06 push es -273F:0889 1F pop ds -273F:088A C3 retn - backup_variables endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:088B ú8E C5 action_handle_2: mov es,bp -273F:088D úBF 65F3 mov di, offset player_action_support_record -273F:0890 úBE 3382 mov si, offset data_3382 -273F:0893 F7 04 FFFF test word ptr [si],0FFFFh -273F:0897 78 37 js loc_65 ; Jump if sign=1 -273F:0899 loc_63: ; xref 273F:089F -273F:0899 úAD lodsw ; String [si] to ax -273F:089A 0B C0 or ax,ax ; Zero ? -273F:089C 78 03 js loc_64 ; Jump if sign=1 -273F:089E A5 movsw ; Mov [si] to es:[di] -273F:089F EB F8 jmp short loc_63 ; (0899) -273F:08A1 loc_64: ; xref 273F:089C -273F:08A1 33 C0 xor ax,ax ; Zero register -273F:08A3 AB stosw ; Store ax to es:[di] -273F:08A4 8E DD mov ds,bp -273F:08A6 C6 06 9834 01 mov cursor_state, CURSORSTATE_ACTION -273F:08AB A3 1924 mov hotspot_id, ax -273F:08AE úBE 6CEF mov si, offset player_hotspot_rec -273F:08B1 89 44 52 mov [si+HS_DEST_HOTSPOT],ax -273F:08B4 88 44 2A mov [si+HS_ACTION_CTR],al -273F:08B7 88 44 FF mov [si-1],al -273F:08BA 8B DE mov bx,si -273F:08BC 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:08BF 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:08C2 89 44 42 mov [si+HS_DELAY_CTR], ax -273F:08C5 88 44 44 mov [si+HS_CHAR_MODE], al -273F:08C8 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:08CB C7 47 01 65F3 mov word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], offset player_action_support_record -273F:08D0 loc_65: -273F:08D0 8E DD mov ds,bp -273F:08D2 8B 0E 0782 mov cx, saved_mouse_x -273F:08D6 89 0E 11D6 mov mouse_x2, cx -273F:08DA 89 0E 11D1 mov mouse_x, cx -273F:08DE 8B 16 0784 mov dx, saved_mouse_y -273F:08E2 89 16 11D8 mov mouse_y2, dx -273F:08E6 89 16 11D3 mov mouse_y, dx -273F:08EA D1 E1 shl cx,1 ; Shift w/zeros fill -273F:08EC B8 0004 mov ax,4 -273F:08EF CD 33 int 33h ; Mouse driver ax=func 0004h - ; set position, cx=horz,dx=vert -273F:08F1 33 C0 xor ax,ax ; Zero register -273F:08F3 A2 11DA mov mouse_buttons2, al -273F:08F6 A2 38B0 mov data_781, al -273F:08F9 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:08FE FF 16 075E call [show_cursor_proc] -273F:0902 C3 retn - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:04B9 - -273F:0903 sub_12: -273F:0903 B4 62 mov ah,62h -273F:0905 CD 21 int 21h ; DOS Services ah=function 62h - ; get Program Segment Prefix bx -273F:0907 8E C3 mov es,bx -273F:0909 26: F6 06 0080 FF test byte ptr es:data_8e,0FFh ; (0000:0080=0A0h) -273F:090F 74 31 jz loc_ret_70 ; Jump if zero -273F:0911 26: 8A 0E 0080 mov cl,es:data_8e ; (0000:0080=0A0h) -273F:0916 32 ED xor ch,ch ; Zero register -273F:0918 úBF 0081 mov di,data_8e+1 ; (0000:0081=1) - -273F:091B locloop_66: ; xref 273F:0940 -273F:091B 26: 8A 05 mov al,es:[di] -273F:091E 3C 65 cmp al,65h ; 'e' -273F:0920 75 07 jne loc_67 ; Jump if not equal - assume ds:data_seg -273F:0922 80 36 0742 02 xor video_style, 2 -273F:0927 EB 14 jmp short loc_69 ; (093D) -273F:0929 loc_67: ; xref 273F:0920 -273F:0929 3C 6D cmp al,6Dh ; 'm' -273F:092B 75 07 jne loc_68 ; Jump if not equal -273F:092D 80 36 5660 08 xor music_status,8 -273F:0932 EB 09 jmp short loc_69 ; (093D) -273F:0934 loc_68: ; xref 273F:092B -273F:0934 3C 69 cmp al,69h ; 'i' -273F:0936 75 05 jne loc_69 ; Jump if not equal -273F:0938 80 36 11D0 40 xor menubar_state, 40h ; (31E4:11D0=3) '@' -273F:093D loc_69: ; xref 273F:0927, 0932, 0936 -273F:093D 83 C7 01 add di,1 -273F:0940 E2 D9 loop locloop_66 ; Loop if cx > 0 - - -273F:0942 loc_ret_70: ; xref 273F:090F -273F:0942 C3 retn -273F:0943 00 critical_error db 0 ; xref 273F:019B, 01B2, 01E5, 01F3 - ; 021F, 0249, 0397, 03CA - ; 0944 - initialise endp - - - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - ; - ; External Entry Point - ; - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -273F:0944 critical_handler proc far ; xref 273F:06E2 - assume ds:seg_code -273F:0944 2E: C6 06 0943 01 mov cs:critical_error,1 ; (273F:0943=0) -273F:094A 32 C0 xor al,al ; Zero register -273F:094C CF iret ; Interrupt return - critical_handler endp - - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - ; - ; External Entry Point - ; - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -273F:094D CB retf_proc retf - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0074, 7097, 70BA, 8FB5 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:094E clear_layer_rects proc near -273F:094E 1E push ds -273F:094F 07 pop es -273F:0950 úBF 0992 mov di,offset rects_layer_0 -273F:0953 B8 FFFF mov ax,0FFFFh -273F:0956 B9 0200 mov cx,200h -273F:0959 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] - assume ds:data_seg -273F:095B A1 4CE0 mov ax, current_room_id -273F:095E A3 4CE2 mov data_segment, ax - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:00AC, 3CBD, 411B, 7BB4, 8FC5, A825 - -273F:0961 clear_hotspot_rects: -273F:0961 1E push ds -273F:0962 07 pop es -273F:0963 úBF 0790 mov di,offset hotspot_rects_list -273F:0966 B8 8181 mov ax,8181h -273F:0969 B9 0100 mov cx,100h -273F:096C F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:096E C3 retn - clear_layer_rects endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0077, 709A, 70BD, 8FB8 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_load_layers proc near - -273F:096F loc_71: ; xref 273F:0977 -273F:096F 80 26 11D0 DF and menubar_state, 0DFh -273F:0974 E8 F884 call read_and_validate_header -273F:0977 72 F6 jc loc_71 ; Jump back if error occurred - -273F:0979 A1 4CE0 mov ax, current_room_id -273F:097C 50 push ax - assume ds:seg_code -273F:097D 8B 1E 9832 mov bx, room_number -273F:0981 E8 0364 call get_room_resource_pointer - -; At this point SI points to the data list for the room. For cell room, it's room=8181h to si=>c108h - -273F:0984 BF 0D92 mov di, offset room_layers -273F:0987 83 C6 08 add si, ROOM_NUM_LAYERS -273F:098A 8A 2C mov ch, [si] ; Get # screens -273F:098C 83 C6 01 add si,1 ; Move to first layer id -273F:098F F7 06 BA25 FFFF test viewing_room, 0FFFFh ; Viewing room without being there? -273F:0995 74 03 jz loc_72 -273F:0997 80 C5 01 add ch,1 ; If yes, inc # screens to load -273F:099A loc_72: -273F:099A BB 0992 mov bx, offset rects_layer_0 -273F:099D 83 C3 4C add bx, offset rects_layer_0 - offset rects_layer_0 ; 4Ch -273F:09A0 32 C9 xor cl, cl ; Starting at layer 0 - -273F:09A2 loc_73: -273F:09A2 51 push cx -273F:09A3 56 push si -273F:09A4 53 push bx -273F:09A5 8B 04 mov ax,[si] ; Load the screen with palette -273F:09A7 E8 0226 call read_screen -273F:09AA A1 4CE0 mov ax, current_room_segment -273F:09AD 89 05 mov [di], ax ; Store seg for layer start -273F:09AF 57 push di -273F:09B0 8E C0 mov es, ax -273F:09B2 33 FF xor di,di ; Zero register -273F:09B4 FF 16 0750 call [segment_screen_proc] -273F:09B8 B1 04 mov cl,4 -273F:09BA D3 EF shr di,cl ; Convert to # paragraphs -273F:09BC 01 3E 4CE0 add current_room_segment, di ; Increase by decoded size -273F:09C0 01 3E 4CE2 add data_segment, di -273F:09C4 5F pop di -273F:09C5 83 C7 02 add di,2 -273F:09C8 A1 0DA2 mov ax, rectangle_size ; ax = 400h -273F:09CB 89 05 mov [di],ax -273F:09CD 83 C7 02 add di,2 -273F:09D0 5B pop bx -273F:09D1 81 C3 0100 add bx,100h -273F:09D5 5E pop si -273F:09D6 83 C6 02 add si,2 -273F:09D9 59 pop cx -273F:09DA 80 C1 01 add cl,1 -273F:09DD 80 ED 01 sub ch,1 ; Decrement number of layers -273F:09E0 75 C0 jnz loc_73 ; Jump if not zero - -273F:09E2 58 pop ax -273F:09E3 A3 4CE0 mov current_room_segment, ax -273F:09E6 C3 retn - - room_load_layers endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0081, 70C4, 8FBF - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:09E7 sub_16 proc near -273F:09E7 úBB 0ADE mov bx,offset data_593 ; (31E4:0ADE=0) -273F:09EA E8 000D call sub_17 ; (09FA) -273F:09ED úBB 0BDE mov bx,offset data_599 ; (31E4:0BDE=0) -273F:09F0 E8 0007 call sub_17 ; (09FA) -273F:09F3 úBB 0CDE mov bx,offset data_601 ; (31E4:0CDE=0) -273F:09F6 E8 0001 call sub_17 ; (09FA) -273F:09F9 C3 retn - sub_16 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:09EA, 09F0, 09F6 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:09FA sub_17 proc near -273F:09FA B9 0006 mov cx,6 - -273F:09FD locloop_74: ; xref 273F:0A52 -273F:09FD 51 push cx -273F:09FE 53 push bx -273F:09FF B5 0A mov ch,0Ah -273F:0A01 loc_75: ; xref 273F:0A4E -273F:0A01 53 push bx -273F:0A02 B1 06 mov cl,6 -273F:0A04 32 D2 xor dl,dl ; Zero register -273F:0A06 loc_76: ; xref 273F:0A45 -273F:0A06 80 3F FF cmp byte ptr [bx],0FFh -273F:0A09 75 04 jne loc_77 ; Jump if not equal -273F:0A0B 32 D2 xor dl,dl ; Zero register -273F:0A0D EB 30 jmp short loc_81 ; (0A3F) -273F:0A0F loc_77: ; xref 273F:0A09 -273F:0A0F F6 C2 02 test dl,2 -273F:0A12 74 0A jz loc_78 ; Jump if zero -273F:0A14 80 7F FF FF cmp byte ptr [bx-1],0FFh -273F:0A18 75 04 jne loc_78 ; Jump if not equal -273F:0A1A C6 47 FF FE mov byte ptr [bx-1],0FEh -273F:0A1E loc_78: ; xref 273F:0A12, 0A18 -273F:0A1E F6 C2 04 test dl,4 -273F:0A21 74 0A jz loc_79 ; Jump if zero -273F:0A23 80 7F 01 FF cmp byte ptr [bx+1],0FFh -273F:0A27 75 04 jne loc_79 ; Jump if not equal -273F:0A29 C6 47 01 FE mov byte ptr [bx+1],0FEh -273F:0A2D loc_79: ; xref 273F:0A21, 0A27 -273F:0A2D 80 7F FF FF cmp byte ptr [bx-1],0FFh -273F:0A31 74 03 je loc_80 ; Jump if equal -273F:0A33 80 CA 02 or dl,2 -273F:0A36 loc_80: ; xref 273F:0A31 -273F:0A36 80 7F 01 FF cmp byte ptr [bx+1],0FFh -273F:0A3A 74 03 je loc_81 ; Jump if equal -273F:0A3C 80 CA 04 or dl,4 -273F:0A3F loc_81: ; xref 273F:0A0D, 0A3A -273F:0A3F 83 C3 12 add bx,12h -273F:0A42 80 E9 01 sub cl,1 -273F:0A45 75 BF jnz loc_76 ; Jump if not zero -273F:0A47 5B pop bx -273F:0A48 83 C3 01 add bx,1 -273F:0A4B 80 ED 01 sub ch,1 -273F:0A4E 75 B1 jnz loc_75 ; Jump if not zero -273F:0A50 5B pop bx -273F:0A51 59 pop cx -273F:0A52 E2 A9 loop locloop_74 ; Loop if cx > 0 - -273F:0A54 C3 retn - sub_17 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1549, 15EF - ; di = anim slot entry - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0A55 room_add_layer proc near -273F:0A55 8B 05 mov ax, [di] ; Get X start -273F:0A57 8B 5D 04 mov bx, [di+ANIM_WIDTH] ; Get width -273F:0A5A 03 D8 add bx, ax -273F:0A5C B1 05 mov cl,5 -273F:0A5E D3 E8 shr ax,cl ; ax=X rect start -273F:0A60 D3 EB shr bx,cl ; bx=X rect end -273F:0A62 2B D8 sub bx, ax -273F:0A64 83 C3 01 add bx, 1 ; bx = num horiz rects -273F:0A67 89 1E 0DAA mov num_horiz_rects, bx -273F:0A6B 8B D8 mov bx, ax - -273F:0A6D 8B 45 02 mov ax, [di+ANIM_Y] ; Get Y position -273F:0A70 8B 55 15 mov dx, [di+ANIM_HEIGHT_COPY] ; Get height copy -273F:0A73 2D 0008 sub ax, 8 -273F:0A76 03 D0 add dx, ax -273F:0A78 83 EA 01 sub dx, 1 -273F:0A7B B1 05 mov cl, 5 -273F:0A7D D3 E8 shr ax, cl ; ax=Y rect start -273F:0A7F D3 EA shr dx, cl ; dx=Y rect end -273F:0A81 2B D0 sub dx, ax ; dx=num vert rects-1 -273F:0A83 89 1E 0DA6 mov rect_x_start, bx -273F:0A87 89 16 0DAC mov num_vert_rects, dx -273F:0A8B 83 06 0DAC 01 add num_vert_rects, 1 -273F:0A90 03 C2 add ax, dx -273F:0A92 A3 0DA8 mov rect_y_end, ax - -273F:0A95 D1 E0 shl ax,1 ; ax=y*2 -273F:0A97 8B F8 mov di,ax ; di=y*2 -273F:0A99 B1 03 mov cl,3 -273F:0A9B D3 E0 shl ax,cl ; ax=y*16 -273F:0A9D 03 C7 add ax,di ; ax=y*18 -273F:0A9F 03 C3 add ax,bx ; ax = yend*18 + x -273F:0AA1 8B D8 mov bx,ax ; ax/bx = list start - -273F:0AA3 8B 0E 0DAA mov cx, num_horiz_rects - -; cx = num horiz rects, -273F:0AA7 locloop_82: -273F:0AA7 51 push cx -273F:0AA8 53 push bx -273F:0AA9 8B 16 0DA6 mov dx, rect_x_start -273F:0AAD 83 EA 04 sub dx, 4 -273F:0AB0 72 3F jc loc_86 ; Jump if carry Set -273F:0AB2 úBF 0A92 mov di, offset rects_layer_1 -273F:0AB5 BE 0D96 mov si, offset room_layers + 4 ; layer 1 -273F:0AB8 B9 0003 mov cx, 3 ; 3 layers - -273F:0ABB locloop_83: ; xref 273F:0AC7 -273F:0ABB 80 39 FF cmp byte ptr [bx+di], 0FFh ; Rect was empty? -273F:0ABE 75 0B jne loc_84 ; If yes, then handle -273F:0AC0 81 C7 0100 add di, 100h ; Check remaining layers -273F:0AC4 83 C6 04 add si, 4 ; Next room_layers entry -273F:0AC7 E2 F2 loop locloop_83 ; Loop layers - -273F:0AC9 EB 26 jmp short loc_86 -273F:0ACB loc_84: -273F:0ACB 8B E9 mov bp,cx ; Save layer # -273F:0ACD 8B 0E 0DAC mov cx,num_vert_rects -273F:0AD1 A1 0DA8 mov ax,rect_y_end -273F:0AD4 2D 0004 sub ax,4 - -273F:0AD7 locloop_85: ; xref 273F:0AEF -273F:0AD7 50 push ax -273F:0AD8 51 push cx -273F:0AD9 57 push di -273F:0ADA 52 push dx -273F:0ADB 53 push bx -273F:0ADC 56 push si -273F:0ADD FF 16 075C call [add_rect_proc] ; Add rect area (32x32) -273F:0AE1 5E pop si -273F:0AE2 5B pop bx -273F:0AE3 5A pop dx -273F:0AE4 5F pop di -273F:0AE5 59 pop cx -273F:0AE6 58 pop ax -273F:0AE7 83 EB 12 sub bx, FULL_HORIZ_RECTS -273F:0AEA 2D 0001 sub ax, 1 -273F:0AED 72 02 jc loc_86 ; Loop for remaining rows -273F:0AEF E2 E6 loop locloop_85 - -273F:0AF1 loc_86: -273F:0AF1 5B pop bx -273F:0AF2 83 C3 01 add bx, 1 -273F:0AF5 59 pop cx -273F:0AF6 83 06 0DA6 01 add rect_x_start, 1 -273F:0AFB E2 AA loop locloop_82 ; Loop for remaining cols - -273F:0AFD C3 retn - room_add_layer endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0084, 70C7, 8FC2 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0AFE sub_19 proc near -273F:0AFE úBE 0B38 mov si, offset rects_layer_1 + 166 -273F:0B01 B9 0003 mov cx, MAX_NUM_LAYERS - 1 - -273F:0B04 locloop_87: ; xref 273F:0B25 -273F:0B04 úBB 0009 mov bx, 9 -273F:0B07 loc_88: ; xref 273F:0B1F -273F:0B07 80 38 FF cmp byte ptr [bx+si], 0FFh -273F:0B0A 74 10 je loc_89 ; Jump if equal -273F:0B0C C6 40 12 FE mov byte ptr [bx+si+12h], 0FEh -273F:0B10 C6 40 24 FE mov byte ptr [bx+si+24h], 0FEh -273F:0B14 C6 40 36 FE mov byte ptr [bx+si+36h], 0FEh -273F:0B18 C6 40 48 FE mov byte ptr [bx+si+48h], 0FEh -273F:0B1C loc_89: ; xref 273F:0B0A -273F:0B1C 83 EB 01 sub bx, 1 -273F:0B1F 73 E6 jnc loc_88 ; Jump if carry=0 -273F:0B21 81 C6 0100 add si, 100h ; Move to next layer -273F:0B25 E2 DD loop locloop_87 - -273F:0B27 C3 retn - sub_19 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1546, 15EC, 1631, 3CF9 - ; di = anim slot - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - flag_covered_cells proc near -273F:0B28 50 push ax -273F:0B29 8B 5D 02 mov bx, [di+ANIM_Y] -273F:0B2C 83 EB 08 sub bx, MENUBAR_Y_SIZE -273F:0B2F 8B C3 mov ax, bx ; bx = Y start -273F:0B31 03 45 06 add ax, [di+ANIM_HEIGHT] -273F:0B34 2D 0001 sub ax, 1 ; ax = Y end -273F:0B37 B1 05 mov cl, 5 -273F:0B39 D3 E8 shr ax, cl ; ax=Y end/32 -273F:0B3B D3 EB shr bx, cl ; bx=Y start/32 -273F:0B3D 2B C3 sub ax, bx -273F:0B3F 05 0001 add ax, 1 ; ax=# vert rects - -273F:0B42 50 push ax -273F:0B43 D1 E3 shl bx, 1 -273F:0B45 8B D3 mov dx, bx -273F:0B47 B1 03 mov cl, 3 -273F:0B49 D3 E3 shl bx, cl -273F:0B4B 03 DA add bx, dx - -; The screen is broken down into a set of 10x6 32x32 cells. -; bx = vertical cell rect block * 10 - -273F:0B4D 8B 15 mov dx, [di] ; dx = X start -273F:0B4F 8B 45 04 mov ax, [di+ANIM_WIDTH] -273F:0B52 03 C2 add ax, dx -273F:0B54 2D 0001 sub ax, 1 ; ax = X end -273F:0B57 B1 05 mov cl, 5 -273F:0B59 D3 EA shr dx, cl ; dx = X start/32 -273F:0B5B D3 E8 shr ax, cl ; ax = X end/32 -273F:0B5D 2B C2 sub ax, dx -273F:0B5F 03 DA add bx, dx ; bx = start rect index -273F:0B61 ú81 C3 0790 add bx, offset hotspot_rects_list -273F:0B65 05 0001 add ax, 1 ; ax = # horiz rects -273F:0B68 5D pop bp -273F:0B69 5A pop dx - -; Loop, bp = number of cell rows, ax = number of cell cols - -273F:0B6A loc_90: -273F:0B6A 8B C8 mov cx, ax -273F:0B6C 53 push bx - -273F:0B6D locloop_91: -273F:0B6D 08 17 or [bx], dl ; Enable cell rect -273F:0B6F 80 8F 0100 01 or byte ptr [bx+100h], 1 -273F:0B74 83 C3 01 add bx, 1 -273F:0B77 E2 F4 loop locloop_91 ; Loop through horiz # cells - -273F:0B79 5B pop bx -273F:0B7A 83 C3 12 add bx, FULL_HORIZ_RECTS -273F:0B7D 83 ED 01 sub bp, 1 ; Loop through vert # cells -273F:0B80 75 E8 jnz loc_90 -273F:0B82 C3 retn - flag_covered_cells endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1447, 3307, 6D22, 6FDD, 8B52 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0B83 sub_21 proc near -273F:0B83 loc_92: ; xref 273F:23E7, 2450, 8CD8, 9333 -273F:0B83 ú51 push cx -273F:0B84 B1 03 mov cl,3 -273F:0B86 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:0B88 D3 E3 shl bx,cl ; Shift w/zeros fill -273F:0B8A D3 E5 shl bp,cl ; Shift w/zeros fill -273F:0B8C D3 E2 shl dx,cl ; Shift w/zeros fill -273F:0B8E 59 pop cx - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:3291, 62D6, 8BE5, 8BFA - -273F:0B8F sub_22: -273F:0B8F loc_93: ; xref 273F:2272, 33B0 -273F:0B8F ú51 push cx -273F:0B90 03 E8 add bp,ax -273F:0B92 03 D3 add dx,bx -273F:0B94 83 C5 1F add bp,1Fh -273F:0B97 83 C2 1F add dx,1Fh -273F:0B9A B1 05 mov cl,5 -273F:0B9C D3 E8 shr ax,cl ; Shift w/zeros fill -273F:0B9E D3 EB shr bx,cl ; Shift w/zeros fill -273F:0BA0 D3 ED shr bp,cl ; Shift w/zeros fill -273F:0BA2 D3 EA shr dx,cl ; Shift w/zeros fill -273F:0BA4 2B E8 sub bp,ax -273F:0BA6 2B D3 sub dx,bx -273F:0BA8 93 xchg bx,ax -273F:0BA9 05 0004 add ax,4 -273F:0BAC B1 12 mov cl,12h -273F:0BAE F6 E1 mul cl ; ax = reg * al -273F:0BB0 03 C3 add ax,bx -273F:0BB2 05 0794 add ax, offset hotspot_rects_list + 4 ; 794h -273F:0BB5 8B D8 mov bx,ax -273F:0BB7 58 pop ax -273F:0BB8 loc_94: ; xref 273F:0BCD -273F:0BB8 53 push bx -273F:0BB9 8B CD mov cx,bp - -273F:0BBB locloop_95: ; xref 273F:0BC4 -273F:0BBB 08 07 or [bx],al -273F:0BBD 08 87 0100 or byte ptr ds:[100h][bx],al ; (273F:0100=6) -273F:0BC1 83 C3 01 add bx,1 -273F:0BC4 E2 F5 loop locloop_95 ; Loop if cx > 0 - -273F:0BC6 5B pop bx -273F:0BC7 83 C3 12 add bx,12h -273F:0BCA 83 EA 01 sub dx,1 -273F:0BCD 75 E9 jnz loc_94 ; Jump if not zero -273F:0BCF C3 retn - sub_21 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:09A7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0BD0 read_screen proc near -273F:0BD0 53 push bx -273F:0BD1 51 push cx -273F:0BD2 57 push di -273F:0BD3 8B 0E 4CE2 mov cx, data_segment -273F:0BD7 BA 0080 mov dx, ENTRY_READ_BUFFER -273F:0BDA E8 F737 call read_entry ; (0314) -273F:0BDD A1 4CE2 mov ax, data_segment -273F:0BE0 8E C0 mov es,ax -273F:0BE2 26: A1 0080 mov ax,es:[ENTRY_READ_BUFFER] -273F:0BE6 86 E0 xchg ah,al -273F:0BE8 25 FFFE and ax,0FFFEh -273F:0BEB 3D 0140 cmp ax,140h -273F:0BEE 74 2F je loc_97 ; Jump if equal - -273F:0BF0 A1 4CE4 mov ax, data_segment2 -273F:0BF3 8E C0 mov es,ax -273F:0BF5 8B 16 4CE2 mov dx,data_segment -273F:0BF9 E8 2D8E call decode_file_entry -273F:0BFC 8B 1E 9832 mov bx, room_number ; Check if already processing -273F:0C00 3A 1E 1456 cmp bl, current_room_num ; this room (if so, no need -273F:0C04 74 15 je loc_96 ; to reload palette) -273F:0C06 53 push bx -273F:0C07 E8 00DE call get_room_resource_pointer -273F:0C0A 8B 44 09 mov ax, [si+ROOM_FIRST_LAYER] -273F:0C0D 25 FFE0 and ax, 0FFE0h -273F:0C10 2D 0001 sub ax,1 -273F:0C13 E8 2EB1 call read_palette ; Get the palette -273F:0C16 5B pop bx -273F:0C17 88 1E 1456 mov current_room_num, bl -273F:0C1B loc_96: -273F:0C1B 5F pop di -273F:0C1C 59 pop cx -273F:0C1D 5B pop bx -273F:0C1E C3 retn -273F:0C1F loc_97: ; xref 273F:0BEE -273F:0C1F 83 3E 9832 31 cmp room_number, 31h -273F:0C24 75 05 jne loc_98 ; Jump if not equal -273F:0C26 B8 F1FF mov ax,0F1FFh -273F:0C29 EB 0A jmp short loc_99 ; (0C35) -273F:0C2B loc_98: ; xref 273F:0C24 -273F:0C2B 83 3E 9832 06 cmp room_number, 6 -273F:0C30 75 0D jne loc_100 ; Jump if not equal -273F:0C32 B8 45FF mov ax,45FFh -273F:0C35 loc_99: ; xref 273F:0C29 -273F:0C35 E8 2E8F call read_palette ; (3AC7) -273F:0C38 C6 06 1456 FF mov current_room_num, 0FFh -273F:0C3D EB 23 jmp short loc_101 ; (0C62) -273F:0C3F loc_100: ; xref 273F:0C30 -273F:0C3F 80 3E 1456 FF cmp current_room_num, 0FFh -273F:0C44 75 1C jne loc_101 ; Jump if not equal -273F:0C46 A0 00B1 mov al,data_526 ; (31E4:00B1=1) -273F:0C49 2C 05 sub al,5 -273F:0C4B D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0C4D D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0C4F D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0C51 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0C53 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0C55 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0C57 0D 00FF or ax,0FFh -273F:0C5A E8 2E6A call read_palette ; (3AC7) -273F:0C5D C6 06 1456 00 mov current_room_num, 0 -273F:0C62 loc_101: ; xref 273F:0C3D, 0C44 -273F:0C62 A1 4CE4 mov ax, data_segment2 -273F:0C65 8E C0 mov es,ax -273F:0C67 8B 16 4CE2 mov dx,data_segment -273F:0C6B E8 17FC call ega_decode_entry -273F:0C6E 8B D1 mov dx,cx -273F:0C70 83 EA 01 sub dx,1 -273F:0C73 D1 EA shr dx,1 ; Shift w/zeros fill -273F:0C75 D1 EA shr dx,1 ; Shift w/zeros fill -273F:0C77 D1 EA shr dx,1 ; Shift w/zeros fill -273F:0C79 D1 EA shr dx,1 ; Shift w/zeros fill -273F:0C7B 83 C2 01 add dx,1 -273F:0C7E 5F pop di -273F:0C7F 59 pop cx -273F:0C80 5B pop bx -273F:0C81 C3 retn - read_screen endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00A0 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0C82 hotspots_load proc near -273F:0C82 BF 5EB8 mov di, offset hotspot_table_5 -273F:0C85 BB 0407 mov bx,407h -273F:0C88 E8 0006 call hotspots_load_2 -273F:0C8B úBF 623E mov di, offset hotspot_table_3 -273F:0C8E BB 270F mov bx,270Fh - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:0C88 - -273F:0C91 hotspots_load_2: -273F:0C91 loc_102: ; xref 273F:0CA5, 0CBB, 0CC3 -273F:0C91 ú83 C3 01 add bx,1 -273F:0C94 8B 35 mov si,[di] ; Get hotspot offset -273F:0C96 83 FE FF cmp si,0FFFFh -273F:0C99 74 2A je loc_ret_106 -273F:0C9B 83 C7 09 add di,9 ; Move to next hotspot header -273F:0C9E 8B 54 06 mov dx,[si+6] ; Get room number -273F:0CA1 3B 16 9832 cmp dx, room_number ; Is it the current room? -273F:0CA5 75 EA jne loc_102 ; No, so move to next hotspot -273F:0CA7 57 push di -273F:0CA8 úBF B14E mov di, offset animation_table -273F:0CAB B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:0CAE locloop_103: -273F:0CAE 3B 5D 1B cmp bx,[di+ANIM_HOTSPOT_ID] ; Already present? -273F:0CB1 74 07 je loc_104 ; If yes, don't add -273F:0CB3 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:0CB6 E2 F6 loop locloop_103 ; Check remaining entries - -273F:0CB8 EB 03 jmp short loc_105 ; Jump to add entry -273F:0CBA loc_104: -273F:0CBA 5F pop di -273F:0CBB EB D4 jmp short loc_102 ; (0C91) -273F:0CBD loc_105: ; xref 273F:0CB8 -273F:0CBD 53 push bx ; Add hotspot entry -273F:0CBE E8 0008 call animation_load_entry_2 -273F:0CC1 5B pop bx -273F:0CC2 5F pop di -273F:0CC3 EB CC jmp short loc_102 ; Check remaining hotspots - -273F:0CC5 loc_ret_106: -273F:0CC5 C3 retn - hotspots_load endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:965C, 9690 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0CC6 animation_load_entry: proc near -273F:0CC6 úE8 001F call get_room_resource_pointer - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:0CBE - -273F:0CC9 animation_load_entry_2: -273F:0CC9 F7 44 0B FFFF test word ptr [si+HS_ANIM_OFFSET], 0FFFFh ; Already acive? -273F:0CCE 75 F5 jnz loc_ret_106 ; Jump if yes -273F:0CD0 80 7C 15 FF cmp byte ptr [si+HS_LAYER], 0FFh ; Does hotspot have a layer? -273F:0CD4 74 EF je loc_ret_106 ; Jump if no -273F:0CD6 80 64 07 7F and byte ptr [si+7],7Fh ; Deactivate any suppression bit on room # -273F:0CDA 8B 44 09 mov ax, [si+HS_LOAD_OFFSET] -273F:0CDD F6 44 08 FF test byte ptr [si+HS_LOAD_FLAG],0FFh -273F:0CE1 75 02 jnz loc_108 ; Jump if not zero -273F:0CE3 FF E0 jmp ax -273F:0CE5 loc_108: ; xref 273F:0CE1 -273F:0CE5 E9 314C jmp sequence_execute - animation_load_entry endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0092, 0981, 0C07, 0CC6, 10AE, 1205, 46A4 - ; 46FE, 4703, 508F, 612B, 613D, 614D, 6267 - ; 6397, 64EA, 65AA, 65C1, 715D, 7164, 716F - ; 76C4, 79C8, 7BF4, 7C03, 7C0B, 8277, 827F - ; 8E6C, 9E8E, 9EB5, 9EBD, 9EC9, 9EE4, 9EF3 - ; 9F16, 9F59 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0CE8 get_room_resource_pointer proc near -273F:0CE8 8B C3 mov ax, bx - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:004F, 11D1, 1481, 1490, 1A98, 428C, 4531 - ; 45C2, 45D1, 47E1, 547B, 5672, 58A2, 5AA7 - ; 5B08, 5B82, 5BE6, 5C0E, 5CF1, 5D23, 5DC0 - ; 5E90, 63BD, 6574, 664D, 82DB, 8422, 89D1 - ; 8DAF, 8DC4, 99C2, 99FC, A158 - -273F:0CEA get_room_resource_pointer2: -273F:0CEA BE BF40 mov si, offset room_info_table -273F:0CED 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:0CF0 78 20 js loc_111 ; Jump if sign=1 -273F:0CF2 3D 2710 cmp ax, START_EXIT_HOTSPOT_ID -273F:0CF5 73 08 jae loc_109 ; Jump if above or = -273F:0CF7 BE 5D98 mov si, offset hotspot_table_2 -273F:0CFA 2D 03E8 sub ax, PLAYER_HOTSPOT_ID -273F:0CFD EB 13 jmp short loc_111 ; (0D12) -273F:0CFF loc_109: ; xref 273F:0CF5 -273F:0CFF 3D 4E20 cmp ax,4E20h -273F:0D02 73 08 jae loc_110 ; Jump if above or = -273F:0D04 BE 623E mov si, offset hotspot_table_3 -273F:0D07 2D 2710 sub ax, START_EXIT_HOTSPOT_ID -273F:0D0A EB 06 jmp short loc_111 ; (0D12) -273F:0D0C loc_110: ; xref 273F:0D02 -273F:0D0C úBE 63B1 mov si, offset hotspot_table_4 -273F:0D0F 2D 7530 sub ax, START_NONVISUAL_HOTSPOT_ID -273F:0D12 loc_111: ; xref 273F:0CF0, 0CFD, 0D0A -273F:0D12 03 F0 add si,ax -273F:0D14 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0D16 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0D18 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0D1A 03 F0 add si,ax -273F:0D1C 8B 34 mov si,[si] ; Get reference from table -273F:0D1E C3 retn - get_room_resource_pointer endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:62FC, 6943, 87DB, 87E4, 8E8A - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0D1F get_room_resource_pointer3 proc near -273F:0D1F 8B C3 mov ax,bx - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:1378, 5452, 596E, 59B8, 5B5D, 7EB4, 8A6D - -273F:0D21 get_room_resource_pointer4: -273F:0D21 BE BF40 mov si, offset room_info_table -273F:0D24 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:0D27 72 20 jb loc_114 ; Jump if below -273F:0D29 3D 2710 cmp ax, START_EXIT_HOTSPOT_ID -273F:0D2C 73 08 jae loc_112 ; Jump if above or = -273F:0D2E BE 5D98 mov si, offset hotspot_table_2 -273F:0D31 2D 03E8 sub ax, PLAYER_HOTSPOT_ID -273F:0D34 EB 13 jmp short loc_114 ; (0D49) -273F:0D36 loc_112: ; xref 273F:0D2C -273F:0D36 3D 4E20 cmp ax,4E20h -273F:0D39 73 08 jae loc_113 ; Jump if above or = -273F:0D3B BE 623E mov si, offset hotspot_table_3 -273F:0D3E 2D 2710 sub ax, START_EXIT_HOTSPOT_ID -273F:0D41 EB 06 jmp short loc_114 ; (0D49) -273F:0D43 loc_113: ; xref 273F:0D39 -273F:0D43 BE 63B1 mov si, offset hotspot_table_4 -273F:0D46 2D 7530 sub ax, START_NONVISUAL_HOTSPOT_ID -273F:0D49 loc_114: ; xref 273F:0D27, 0D34, 0D41 -273F:0D49 03 F0 add si,ax -273F:0D4B D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0D4D D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0D4F D1 E0 shl ax,1 ; Shift w/zeros fill -273F:0D51 03 F0 add si,ax -273F:0D53 C3 retn - get_room_resource_pointer3 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:669E, 66B3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0D54 sub_32 proc near -273F:0D54 1E push ds -273F:0D55 1E push ds -273F:0D56 07 pop es -273F:0D57 8E DD mov ds,bp -273F:0D59 55 push bp -273F:0D5A úBF 31E6 mov di, offset popmenu_entry_contents -273F:0D5D 26: C7 45 FE 0000 mov word ptr es:[di-2],0 -273F:0D63 úBE 623E mov si, offset hotspot_table_3 -273F:0D66 BD 2710 mov bp, START_EXIT_HOTSPOT_ID -273F:0D69 E8 0003 call sub_33 ; (0D6F) -273F:0D6C 5D pop bp -273F:0D6D 1F pop ds - -273F:0D6E loc_ret_115: ; xref 273F:0D74 -273F:0D6E C3 retn - sub_32 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0D69 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0D6F sub_33 proc near -273F:0D6F loc_116: ; xref 273F:0DAD -273F:0D6F ú8B 1C mov bx,[si] -273F:0D71 83 FB FF cmp bx,0FFFFh -273F:0D74 74 F8 je loc_ret_115 ; Jump if equal -273F:0D76 81 7F 06 03E8 cmp word ptr [bx+6], PLAYER_HOTSPOT_ID -273F:0D7B 75 2A jne loc_118 ; Jump if not equal -273F:0D7D 8A 44 08 mov al,[si+8] -273F:0D80 3C 0F cmp al,0Fh -273F:0D82 74 06 je loc_117 ; Jump if equal -273F:0D84 84 06 9836 test al, header_flag_mask -273F:0D88 74 1D jz loc_118 ; Jump if zero -273F:0D8A loc_117: ; xref 273F:0D82 -273F:0D8A 8B C5 mov ax,bp -273F:0D8C AB stosw ; Store ax to es:[di] -273F:0D8D B0 01 mov al,1 -273F:0D8F AA stosb ; Store al to es:[di] -273F:0D90 8B 44 02 mov ax,[si+2] -273F:0D93 80 E4 1F and ah,1Fh -273F:0D96 1E push ds -273F:0D97 56 push si -273F:0D98 06 push es -273F:0D99 06 push es -273F:0D9A 1F pop ds -273F:0D9B E8 6F9C call decode_string -273F:0D9E 07 pop es -273F:0D9F 5E pop si -273F:0DA0 1F pop ds -273F:0DA1 26: 83 06 31E4 01 add es:data_31e4, 1 -273F:0DA7 loc_118: ; xref 273F:0D7B, 0D88 -273F:0DA7 83 C5 01 add bp,1 -273F:0DAA 83 C6 09 add si,9 -273F:0DAD EB C0 jmp short loc_116 ; (0D6F) - sub_33 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:66EC, 6787, 680A, 6827, 684A - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - prepare_ask_item_list proc near -273F:0DAF C7 06 31E4 0000 mov data_31e4, 0 -273F:0DB5 C7 06 30D4 0000 mov hotspot_display_buffer, 0 -273F:0DBB 2D 0001 sub ax, 1 -273F:0DBE 33 DB xor bx, bx ; Set actions word index in hotspot -273F:0DC0 3C 10 cmp al, ACTION_LOOK_THROUGH - 1 -273F:0DC2 72 05 jb loc_119 ; Jump if below -273F:0DC4 BB 0002 mov bx, 2 -273F:0DC7 2C 10 sub al, 10h -273F:0DC9 loc_119: ; xref 273F:0DC2 -273F:0DC9 BA 0001 mov dx,1 -273F:0DCC 8A C8 mov cl, al -273F:0DCE D3 E2 shl dx, cl ; Set bitmask within actions word -273F:0DD0 1E push ds -273F:0DD1 07 pop es -273F:0DD2 8E DD mov ds, bp -273F:0DD4 úBF 31E6 mov di, offset popmenu_entry_contents -273F:0DD7 26: 8B 0E 3379 mov cx, es:saved_room_number2 -273F:0DDC úBE BF49 mov si, offset room_info_table + RH_TABLE_ENTRY_SIZE -273F:0DDF BD 0001 mov bp, 1 -273F:0DE2 E8 0029 call prepare_ask_item_list_inner -273F:0DE5 úBE 5D98 mov si, offset hotspot_table_2 -273F:0DE8 BD 03E8 mov bp, PLAYER_HOTSPOT_ID -273F:0DEB E8 0020 call prepare_ask_item_list_inner -273F:0DEE úBE 5EB8 mov si, offset hotspot_table_5 -273F:0DF1 BD 0408 mov bp, FIRST_OBJECT_HOTSPOT_ID -273F:0DF4 E8 0017 call prepare_ask_item_list_inner -273F:0DF7 úBE 623E mov si, offset hotspot_table_3 -273F:0DFA BD 2710 mov bp, START_EXIT_HOTSPOT_ID -273F:0DFD E8 000E call prepare_ask_item_list_inner -273F:0E00 úBE 63B1 mov si, offset hotspot_table_4 -273F:0E03 BD 7530 mov bp, START_NONVISUAL_HOTSPOT_ID -273F:0E06 E8 0005 call prepare_ask_item_list_inner -273F:0E09 8C DD mov bp, ds -273F:0E0B 06 push es -273F:0E0C 1F pop ds -273F:0E0D C3 retn - prepare_ask_item_list endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0DE2, 0DEB, 0DF4, 0DFD, 0E06 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - prepare_ask_item_list_inner proc near -273F:0E0E ú56 push si -273F:0E0F 83 3C FF cmp word ptr [si+HSH_OFFSET], 0FFFFh ; End of list reached? -273F:0E12 75 02 jne loc_121 ; Jump if not equal -273F:0E14 5E pop si ; Exit -273F:0E15 C3 retn -273F:0E16 loc_121: ; xref 273F:0E12 -273F:0E16 8A 44 08 mov al, [si+HSH_FLAGS] -273F:0E19 3C 0F cmp al, 15 -273F:0E1B 74 09 je loc_122 ; Jump if equal -273F:0E1D 84 06 9836 test al, header_flag_mask -273F:0E21 75 03 jnz loc_122 ; Jump if not zero -273F:0E23 E9 0080 jmp loc_128 ; (0EA6) -273F:0E26 loc_122: ; xref 273F:0E1B, 0E21 -273F:0E26 8B 44 02 mov ax, [si+HSH_NAME] ; Get hotspot name -273F:0E29 8B 34 mov si, [si+HSH_OFFSET] -273F:0E2B F6 44 03 20 test byte ptr [si+HS_FLAGS1], 20h -273F:0E2F 75 75 jnz loc_128 ; Jump if not zero -273F:0E31 F6 44 03 80 test byte ptr [si+HS_FLAGS1], 80h -273F:0E35 74 6F jz loc_128 ; Jump if zero -273F:0E37 81 FD 03E8 cmp bp, PLAYER_HOTSPOT_ID ; Is it the room list? -273F:0E3B 72 18 jb loc_124 ; Jump if yes -273F:0E3D F6 44 03 10 test byte ptr [si+HS_FLAGS1], 10h -273F:0E41 74 05 jz loc_123 ; Jump if zero -273F:0E43 39 4C 06 cmp [si+HS_ROOM_NUM], cx -273F:0E46 75 5E jne loc_128 ; Jump if not equal -273F:0E48 loc_123: ; xref 273F:0E41 -273F:0E48 26: 3B 2E 3350 cmp bp, es:saved_zero -273F:0E4D 74 57 je loc_128 ; Jump if equal -273F:0E4F 3B 2E 1924 cmp bp, hotspot_id -273F:0E53 74 51 je loc_128 ; Jump if equal -273F:0E55 loc_124: -273F:0E55 85 10 test dx, [bx+si] ; Check if hotspot has action -273F:0E57 74 4D jz loc_128 ; Skip if not -273F:0E59 3D 017A cmp ax, 17Ah ; Special name Ids to skip -273F:0E5C 74 43 je loc_127 -273F:0E5E 3D 0147 cmp ax, 147h -273F:0E61 74 3E je loc_127 - -273F:0E63 úBE 30D6 mov si, offset ask_name_list -273F:0E66 26: 8B 0E 30D4 mov cx, es:ask_num_names -273F:0E6B 0B C9 or cx, cx ; Zero ? -273F:0E6D 74 0A jz loc_126 ; Jump if zero - -273F:0E6F locloop_125: ; xref 273F:0E77 -273F:0E6F 26: 3B 04 cmp ax, es:[si] ; Is item's name in list? -273F:0E72 74 2D je loc_127 ; If yes than skip -273F:0E74 83 C6 02 add si, 2 ; Move to next entry -273F:0E77 E2 F6 loop locloop_125 ; Loop if cx > 0 - -273F:0E79 loc_126: ; xref 273F:0E6D -273F:0E79 26: 89 2D mov es:[di], bp ; Save hotspot Id in output list -273F:0E7C 26: C6 45 02 01 mov byte ptr es:[di+2], 1 -273F:0E81 83 C7 03 add di, 3 -273F:0E84 26: 83 06 31E4 01 add word ptr es:data_31e4, 1 -273F:0E8A 26: 89 04 mov es:[si], ax ; Save hotspot's name -273F:0E8D 26: 83 06 30D4 01 add es:ask_num_names, 1 -273F:0E93 1E push ds -273F:0E94 06 push es -273F:0E95 1F pop ds -273F:0E96 53 push bx -273F:0E97 52 push dx -273F:0E98 80 E4 1F and ah, 1Fh -273F:0E9B E8 6E9C call decode_string -273F:0E9E 5A pop dx -273F:0E9F 5B pop bx -273F:0EA0 1F pop ds -273F:0EA1 loc_127: ; xref 273F:0E5C, 0E61, 0E72 -273F:0EA1 26: 8B 0E 3379 mov cx, es:saved_room_number2 -273F:0EA6 loc_128: - -273F:0EA6 5E pop si ; Move to next header entry -273F:0EA7 83 C6 09 add si, HOTSPOT_TABLE_ENTRY_SIZE -273F:0EAA 83 C5 01 add bp, 1 -273F:0EAD E9 FF5E jmp prepare_ask_item_list_inner - prepare_ask_item_list_inner endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:522F, 6010 - ; Part of this procedure changes a player's frame - ; si=hotspot, di=slot - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_update_frame proc near -273F:0EB0 56 push si -273F:0EB1 57 push di -273F:0EB2 53 push bx -273F:0EB3 8B 5C 24 mov bx, [si+HS_MOVEMENT_OFFSET] -273F:0EB6 8B 44 26 mov ax, [si+HS_STEP_CTR] -273F:0EB9 3B 47 02 cmp ax, [bx+2] ; Any steps remaining? -273F:0EBC 75 23 jne loc_130 ; Yes, so carry on -273F:0EBE 83 C3 04 add bx, 4 ; Move to next movement rec -273F:0EC1 C7 44 26 0000 mov word ptr [si+HS_STEP_CTR], 0 ; Reset counter -273F:0EC6 C7 44 28 0000 mov word ptr [si+HS_FRAME_OFFSET], 0 ; Reset offset -273F:0ECB 89 5C 24 mov [si+HS_MOVEMENT_OFFSET], bx ; Update movement ptr -273F:0ECE 83 3F FF cmp word ptr [bx], 0FFFFh ; At end of list? -273F:0ED1 75 07 jne loc_129 -273F:0ED3 B8 0001 mov ax,1 ; Yes - so return -273F:0ED6 5B pop bx -273F:0ED7 5F pop di -273F:0ED8 5E pop si -273F:0ED9 C3 retn -273F:0EDA loc_129: -273F:0EDA 57 push di -273F:0EDB 8B 3F mov di, [bx] ; Get ptr to direction frames -273F:0EDD 33 DB xor bx, bx -273F:0EDF EB 14 jmp short loc_131 -273F:0EE1 loc_130: -273F:0EE1 57 push di -273F:0EE2 8B 3F mov di, [bx] ; Get ptr to direction frames -273F:0EE4 8B 5C 28 mov bx, [si+HS_FRAME_OFFSET]; Get offset for movement frame -273F:0EE7 03 FB add di, bx ; Add on offset -273F:0EE9 83 3D FF cmp word ptr [di], 0FFFFh ; End of movement set for direciton? -273F:0EEC 75 07 jne loc_131 ; Jump if not -273F:0EEE 2B FB sub di, bx -273F:0EF0 33 DB xor bx, bx -273F:0EF2 89 5C 28 mov [si+HS_FRAME_OFFSET], bx ; Reset to start of movement data -; di=movement record 5bb8h, si=6cefh -273F:0EF5 loc_131: -273F:0EF5 8B 05 mov ax, [di+MOVEMENT_FRAME_NUM] ; Get new frame number -273F:0EF7 57 push di -273F:0EF8 8B 7C 21 mov di, [si+HS_PIXEL_OFFSET] -273F:0EFB 8B 4D 07 mov cx, [di+PIXEL_FRAME_SIZE] -273F:0EFE F7 E1 mul cx ; Calculate frame offset -273F:0F00 8B 4D 03 mov cx, [di+PIXEL_DATA_SEGMENT] ; Get loaded data segment -273F:0F03 5B pop bx ; bx = movement rec -273F:0F04 5F pop di ; di = anim slot -273F:0F05 89 45 08 mov [di+ANIM_FRAME_OFFSET], ax ; Store new offset -273F:0F08 89 4D 0A mov [di+ANIM_SEGMENT], cx ; Store segment -273F:0F0B 8B 47 02 mov ax, [bx+MOVEMENT_X_CHANGE] -273F:0F0E 0B C0 or ax, ax ; Any x change? -273F:0F10 74 13 jz loc_134 ; Jump if zero -273F:0F12 78 06 js loc_132 ; Jump if -x direction -273F:0F14 C6 45 26 03 mov byte ptr [di+ANIM_DIRECTION], FACING_RIGHT -273F:0F18 EB 04 jmp short loc_133 -273F:0F1A loc_132: -273F:0F1A C6 45 26 02 mov byte ptr [di+ANIM_DIRECTION], FACING_LEFT -273F:0F1E loc_133: -273F:0F1E 03 05 add ax, [di+ANIM_X] ; Update char X pos -273F:0F20 89 05 mov [di+ANIM_X], ax -273F:0F22 89 44 0D mov [si+HS_X], ax -273F:0F25 loc_134: -273F:0F25 8B 47 04 mov ax, [bx+MOVEMENT_Y_CHANGE] -273F:0F28 C7 45 22 0000 mov word ptr [di+22h], 0 -273F:0F2D 0B C0 or ax, ax ; Any y change? -273F:0F2F 74 1C jz loc_137 ; Jump if none -273F:0F31 78 06 js loc_135 ; Jump if -y direction -273F:0F33 C6 45 26 01 mov byte ptr [di+ANIM_DIRECTION], FACING_DOWN -273F:0F37 EB 04 jmp short loc_136 ; (0F3D) -273F:0F39 loc_135: ; xref 273F:0F31 -273F:0F39 C6 45 26 00 mov byte ptr [di+ANIM_DIRECTION], FACING_UP -273F:0F3D loc_136: -273F:0F3D C7 45 22 0002 mov word ptr [di+22h], 2 -273F:0F42 03 45 02 add ax, [di+ANIM_Y] ; Update char Y pos -273F:0F45 89 44 0F mov [si+HS_Y], ax -273F:0F48 89 45 02 mov [di+ANIM_Y], ax -273F:0F4B 8B 05 mov ax, [di+ANIM_X] -273F:0F4D loc_137: -273F:0F4D 83 44 28 06 add word ptr [si+HS_FRAME_OFFSET], MOVEMENT_REC_SIZE -273F:0F51 83 44 26 01 add word ptr [si+HS_STEP_CTR], 1 -273F:0F55 33 C0 xor ax, ax -273F:0F57 5B pop bx -273F:0F58 5F pop di -273F:0F59 5E pop si -273F:0F5A C3 retn - character_update_frame endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; hotspot_script_execute - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:0F5B loc_138: -273F:0F5B 26: 8B 04 mov ax,es:[si] ; Set pointer to disk -273F:0F5E 83 C6 02 add si,2 ; animation record -273F:0F61 89 47 21 mov [bx+21h],ax -273F:0F64 53 push bx -273F:0F65 8B D8 mov bx,ax -273F:0F67 8B 47 03 mov ax,[bx+3] ; Copy over pixel segment? -273F:0F6A 5B pop bx -273F:0F6B 89 45 0A mov [di+0Ah],ax -273F:0F6E C7 45 08 0000 mov word ptr [di+8],0 ; Reset frame pointer -273F:0F73 EB 3F jmp short loc_143 - -273F:0F75 loc_139: ; xref 273F:0FC7 -273F:0F75 26: 8B 04 mov ax,es:[si] ; Get X start pos -273F:0F78 83 C6 02 add si,2 -273F:0F7B 89 47 0D mov [bx+0Dh],ax ; Store X start in hotspot -273F:0F7E 89 05 mov [di],ax ; resource and anim slot -273F:0F80 26: 8B 04 mov ax,es:[si] ; Get Y start pos -273F:0F83 83 C6 02 add si,2 -273F:0F86 89 47 0F mov [bx+0Fh],ax ; Store Y start in hotspot -273F:0F89 89 45 02 mov [di+2],ax ; resource and anim slot -273F:0F8C EB 26 jmp short loc_143 - -273F:0F8E loc_140: ; xref 273F:0FC2 -273F:0F8E 26: 8B 04 mov ax,es:[si] -273F:0F91 83 C6 02 add si,2 -273F:0F94 89 47 1F mov [bx+1Fh],ax -273F:0F97 89 77 24 mov [bx+24h],si -273F:0F9A 8B F3 mov si,bx -273F:0F9C 5B pop bx -273F:0F9D 0D 0001 or ax,1 -273F:0FA0 C3 retn -273F:0FA1 loc_141: ; xref 273F:0FD1 -273F:0FA1 26: 8B 34 mov si,es:[si] -273F:0FA4 EB 0E jmp short loc_143 ; (0FB4) -273F:0FA6 loc_142: ; xref 273F:0FE5 -273F:0FA6 E9 00E8 jmp loc_153 ; (1091) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:0FA9 hotspot_script_execute proc near -273F:0FA9 53 push bx -273F:0FAA 8B DE mov bx, si -273F:0FAC 8B 74 24 mov si, [si+HS_SCRIPT_OFFSET] -273F:0FAF B8 40E6 mov ax, scripts2_seg -273F:0FB2 8E C0 mov es, ax - -273F:0FB4 loc_143: -273F:0FB4 ú26: 8B 04 mov ax,es:[si] -273F:0FB7 83 C6 02 add si,2 -273F:0FBA 3D FFFC cmp ax,0FFFCh -273F:0FBD 74 46 je loc_144 ; Ends the execution -273F:0FBF 3D FFFF cmp ax,0FFFFh -273F:0FC2 74 CA je loc_140 ; ??? Store word at 1fh of offset -273F:0FC4 3D FFFE cmp ax,0FFFEh -273F:0FC7 74 AC je loc_139 ; Set start position -273F:0FC9 3D FFFB cmp ax,0FFFBh -273F:0FCC 74 3D je loc_145 ; Set animation dimensions -273F:0FCE 3D FFFA cmp ax,0FFFAh -273F:0FD1 74 CE je loc_141 ; Jump to location -273F:0FD3 3D FFF9 cmp ax,0FFF9h -273F:0FD6 74 83 je loc_138 ; Set pixel data record -273F:0FD8 3D FFF8 cmp ax,0FFF8h -273F:0FDB 74 55 je loc_146 ; Something to do with room -273F:0FDD 3D FFF7 cmp ax,0FFF7h -273F:0FE0 74 74 je loc_149 ; play music # -273F:0FE2 3D FFF6 cmp ax,0FFF6h -273F:0FE5 74 BF je loc_142 ; Set action bitsets -273F:0FE7 3D FFFD cmp ax,0FFFDh -273F:0FEA 75 7E jne loc_150 - -273F:0FEC 26: 8B 04 mov ax,es:[si] ; Change position by amount -273F:0FEF 83 C6 02 add si, 2 - -273F:0FF2 01 05 add [di+ANIM_X], ax ; Add to X start -273F:0FF4 01 47 0D add [bx+HS_X], ax -273F:0FF7 26: 8B 04 mov ax, es:[si] -273F:0FFA 83 C6 02 add si, 2 -273F:0FFD 01 45 02 add [di+ANIM_Y], ax ; Add to Y start -273F:1000 01 47 0F add [bx+HS_Y], ax -273F:1003 EB AF jmp short loc_143 - -273F:1005 loc_144: ; xref 273F:0FBD -273F:1005 33 C0 xor ax, ax ; Zero register -273F:1007 8B F3 mov si, bx -273F:1009 5B pop bx -273F:100A C3 retn -273F:100B loc_145: ; xref 273F:0FCC -273F:100B 26: 8B 04 mov ax,es:[si] -273F:100E 83 C6 02 add si,2 -273F:1011 D1 E0 shl ax,1 -273F:1013 D1 E0 shl ax,1 -273F:1015 D1 E0 shl ax,1 -273F:1017 D1 E0 shl ax,1 -273F:1019 89 45 04 mov [di+ANIM_WIDTH], ax ; Store width -273F:101C 89 45 13 mov [di+ANIM_WIDTH_COPY], ax -273F:101F 26: 8B 04 mov ax, es:[si] -273F:1022 83 C6 02 add si, 2 -273F:1025 89 45 06 mov [di+ANIM_HEIGHT],ax ; Store height -273F:1028 EB 8A jmp short loc_143 - - ;* No entry point to code -273F:102A 26: 8B 04 mov ax,es:[si] -273F:102D 83 C6 02 add si,2 -273F:1030 EB 82 jmp short loc_143 ; (0FB4) -273F:1032 loc_146: ; xref 273F:0FDB -273F:1032 26: 8B 04 mov ax,es:[si] -273F:1035 83 C6 02 add si,2 -273F:1038 26: 8B 0C mov cx,es:[si] -273F:103B 83 C6 02 add si,2 -273F:103E 0B C9 or cx,cx ; Zero ? -273F:1040 74 06 jz loc_147 ; Jump if zero -273F:1042 3B 0E 9832 cmp cx, room_number -273F:1046 75 0B jne loc_148 ; Jump if not equal -273F:1048 loc_147: ; xref 273F:1040 -273F:1048 56 push si -273F:1049 53 push bx -273F:104A 57 push di -273F:104B 8B D8 mov bx,ax -273F:104D E8 8F8F call sub_247 ; (9FDF) -273F:1050 5F pop di -273F:1051 5B pop bx -273F:1052 5E pop si -273F:1053 loc_148: ; xref 273F:1046 -273F:1053 E9 FF5E jmp loc_143 ; (0FB4) - -273F:1056 loc_149: ; xref 273F:0FE0 -273F:1056 26: 8B 04 mov ax,es:[si] -273F:1059 83 C6 02 add si,2 -273F:105C 56 push si -273F:105D 53 push bx -273F:105E 57 push di -273F:105F 8B D8 mov bx,ax -273F:1061 E8 91A8 call play_music -273F:1064 5F pop di -273F:1065 5B pop bx -273F:1066 5E pop si -273F:1067 E9 FF4A jmp loc_143 ; (0FB4) - -273F:106A loc_150: -273F:106A 89 77 24 mov [bx+HS_SCRIPT_OFFSET], si ; Set execution offset -273F:106D 8B F3 mov si, bx -273F:106F 8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] ; Get pixel data record -273F:1072 F6 47 02 04 test byte ptr [bx+PIXEL_FLAGS], PIXELFLAG_HAS_TABLE -273F:1076 74 0E jz loc_151 ; Jump if not -273F:1078 8B 5F 03 mov bx, [bx+PIXEL_DATA_SEGMENT] -273F:107B 8E C3 mov es, bx -273F:107D D1 E0 shl ax, 1 ; Shift w/zeros fill -273F:107F 8B D8 mov bx, ax -273F:1081 26: 8B 07 mov ax, es:[bx] ; Get frame offset -273F:1084 EB 03 jmp short loc_152 -273F:1086 loc_151: -273F:1086 F7 67 07 mul word ptr [bx+PIXEL_FRAME_SIZE] -273F:1089 loc_152: -273F:1089 89 45 08 mov [di+ANIM_FRAME_OFFSET],ax ; Store current frame -273F:108C 0D 0001 or ax, 1 -273F:108F 5B pop bx -273F:1090 C3 retn - -273F:1091 loc_153: -273F:1091 26: 8B 04 mov ax, es:[si] ; Set bitset actions -273F:1094 89 07 mov [bx+HS_ACTIONS], ax -273F:1096 26: 8B 44 02 mov ax, es:[si+2] -273F:109A 89 47 02 mov [bx+HS_ACTIONS+2], ax -273F:109D 83 C6 04 add si, 4 -273F:10A0 E9 FF11 jmp loc_143 - - hotspot_script_execute endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx=character Id, cx=index in master script table - ; Usage of action block for hotspot likely to be making the alternate - ; hotspot script non-interruptable until done - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_set_blocking_hotspot_script proc near -273F:10A3 81 FB 03E8 cmp bx, PLAYER_HOTSPOT_ID -273F:10A7 75 05 jne loc_154 ; Jump if not equal -273F:10A9 C6 06 9834 02 mov cursor_state, CURSORSTATE_SEQUENCE -273F:10AE loc_154: ; xref 273F:10A7 -273F:10AE E8 FC37 call get_room_resource_pointer -273F:10B1 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:10B3 81 C1 57E0 add cx, offset hotspot_script_master_list -273F:10B7 8B D9 mov bx,cx -273F:10B9 8B 07 mov ax,[bx] -273F:10BB 89 44 24 mov [si+HS_SCRIPT_OFFSET], ax -273F:10BE 8B DE mov bx, si -273F:10C0 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:10C3 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:10C6 C6 07 03 mov byte ptr [bx], CHAR_ACTION_EXEC_SCRIPT -273F:10C9 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] -273F:10CC C6 44 49 01 mov byte ptr [si+HS_PATHFIND_COVERED], 1 -273F:10D0 E9 605B jmp pathfind_flag_covered_cells - seq_set_blocking_hotspot_script endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7172 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:10D3 animation_find_slot proc near -273F:10D3 úBF B14E mov di, offset animation_table -273F:10D6 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:10D9 locloop_155: ; xref 273F:10E2 -273F:10D9 F6 45 0C FF test byte ptr [di+0Ch],0FFh -273F:10DD 74 08 jz loc_ret_156 ; Jump if zero -273F:10DF 83 C7 29 add di,29h -273F:10E2 E2 F5 loop locloop_155 ; Loop if cx > 0 - -273F:10E4 83 EF 29 sub di,29h - -273F:10E7 loc_ret_156: ; xref 273F:10DD -273F:10E7 C3 retn - animation_find_slot endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0027 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:10E8 hotspots_unload proc near -273F:10E8 úBF B14E mov di,offset animation_table -273F:10EB B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:10EE locloop_157: ; Check if hotspot can be unloaded -273F:10EE F6 45 10 FF test byte ptr [di+ANIM_CAN_UNLOAD],0FFh -273F:10F2 74 11 jz loc_159 ; If no, then skip - -273F:10F4 33 C0 xor ax,ax -273F:10F6 83 7D 1B FE cmp word ptr [di+ANIM_HOTSPOT_ID], 0FFFEh ; Check if hotspot Id -273F:10FA 73 06 jae loc_158 ; is the special 0ffffh. Jump if yes -273F:10FC 8B 75 19 mov si, [di+ANIM_HOTSPOT_OFFSET] ; Get hotspot resource -273F:10FF 89 44 0B mov [si+HS_ANIM_OFFSET], ax ; Mark hotspot as inactive -273F:1102 loc_158: -273F:1102 E8 0172 call animation_unload_2 -273F:1105 loc_159: -273F:1105 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:1108 E2 E4 loop locloop_157 -273F:110A C3 retn - hotspots_unload endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4FBF, 5E61, 60E7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_find_impinging_chars proc near -273F:110B 56 push si -273F:110C 53 push bx -273F:110D 8B 55 0E mov dx, [di+ANIM_ROOM_NUM] -273F:1110 úBE B14E mov si, offset animation_table -273F:1113 B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:1116 úBB 10C0 mov bx, offset impinging_char_list -273F:1119 C7 06 10BE 0000 mov num_impinging_chars, 0 -273F:111F 8B 05 mov ax, [di+ANIM_X] -273F:1121 A3 10E6 mov char_rect_left, ax -273F:1124 03 45 13 add ax, [di+ANIM_WIDTH_COPY] -273F:1127 A3 10E8 mov char_rect_right, ax -273F:112A 8B 45 02 mov ax, [di+ANIM_Y] -273F:112D 03 45 15 add ax, [di+ANIM_HEIGHT_COPY] -273F:1130 50 push ax -273F:1131 2B 45 17 sub ax, [di+ANIM_Y_CORRECTION] -273F:1134 2B 45 22 sub ax, [di+ANIM_CHAR_RECT_Y] -273F:1137 A3 10EA mov char_rect_top, ax -273F:113A 58 pop ax -273F:113B 03 45 22 add ax, [di+ANIM_CHAR_RECT_Y] -273F:113E A3 10EC mov char_rect_bottom, ax - -273F:1141 locloop_160: ; Loop through animations -273F:1141 3B FE cmp di, si ; Is it the char's animation? -273F:1143 74 55 je loc_161 ; Skip if yes -273F:1145 F6 44 0C FF test byte ptr [si+ANIM_LAYER], 0FFh -273F:1149 74 4F jz loc_161 ; If no layer, then skip -273F:114B 3B 54 0E cmp dx, [si+ANIM_ROOM_NUM] -273F:114E 75 4A jne loc_161 ; Skip if not in same room -273F:1150 8B 44 1B mov ax, [si+ANIM_HOTSPOT_ID] -273F:1153 3D 0408 cmp ax, FIRST_OBJECT_HOTSPOT_ID -273F:1156 73 42 jae loc_161 ; Skip if anim not a character -273F:1158 F6 44 1D FF test byte ptr [si+ANIM_SKIP], 0FFh -273F:115C 75 3C jnz loc_161 ; Skip if skip flag set -273F:115E 8B 44 19 mov ax, [si+ANIM_HOTSPOT_OFFSET] -273F:1161 3B 45 24 cmp ax, [di+ANIM_VOICE_CTR] -273F:1164 74 34 je loc_161 ; Jump if equal -273F:1166 8B 04 mov ax, [si+ANIM_X] -273F:1168 3B 06 10E8 cmp ax, char_rect_right -273F:116C 73 2C jae loc_161 ; Jump if above or = -273F:116E 03 44 13 add ax, [si+ANIM_WIDTH_COPY] -273F:1171 3B 06 10E6 cmp ax, char_rect_left -273F:1175 72 23 jb loc_161 ; Jump if below -273F:1177 74 21 jz loc_161 ; Jump if zero -273F:1179 8B 44 02 mov ax, [si+ANIM_Y] -273F:117C 03 44 15 add ax, [si+ANIM_HEIGHT_COPY] -273F:117F 8B E8 mov bp, ax -273F:1181 03 44 22 add ax, [si+ANIM_CHAR_RECT_Y] -273F:1184 3B 06 10EA cmp ax, char_rect_top -273F:1188 72 10 jb loc_161 ; Jump if below -273F:118A 8B C5 mov ax, bp -273F:118C 2B 44 17 sub ax, [si+ANIM_Y_CORRECTION] -273F:118F 2B 44 22 sub ax, [si+ANIM_CHAR_RECT_Y] -273F:1192 3B 06 10EC cmp ax, char_rect_bottom -273F:1196 74 0E je loc_162 ; Jump if equal -273F:1198 72 0C jc loc_162 ; Jump if carry Set -273F:119A loc_161: -273F:119A ú83 C6 29 add si, ANIMATION_SLOT_SIZE -273F:119D E2 A2 loop locloop_160 - -273F:119F C7 07 0000 mov word ptr [bx], 0 ; Flag end of list -273F:11A3 5B pop bx -273F:11A4 5E pop si -273F:11A5 C3 retn -273F:11A6 loc_162: ; Animation is impinging char -273F:11A6 8B 44 1B mov ax, [si+ANIM_HOTSPOT_ID] -273F:11A9 89 07 mov [bx], ax ; Store character Id -273F:11AB 83 C3 02 add bx, 2 -273F:11AE 83 06 10BE 01 add num_impinging_chars, 1 -273F:11B3 EB E5 jmp short loc_161 ; (119A) - character_find_impinging_chars endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5217, 6009 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_paused_list_check proc near -273F:11B5 53 push bx -273F:11B6 úBB 10C0 mov bx, offset impinging_char_list -273F:11B9 C7 06 10EE 0000 mov pl_check_result, 0 -273F:11BF loc_163: - -273F:11BF ú8B 07 mov ax, [bx] ; Get character Id -273F:11C1 83 C3 02 add bx, 2 ; Move to next entry -273F:11C4 0B C0 or ax, ax ; Is it the end of the list? -273F:11C6 75 05 jnz loc_164 ; Jump if not -273F:11C8 A1 10EE mov ax, pl_check_result ; Set return result -273F:11CB 5B pop bx -273F:11CC C3 retn -273F:11CD loc_164: - -273F:11CD 8B EB mov bp, bx ; Store next table offset -273F:11CF 50 push ax -273F:11D0 56 push si -273F:11D1 E8 FB16 call get_room_resource_pointer2 ;Get hotspot resource -273F:11D4 8B DE mov bx, si -273F:11D6 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:11D9 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:11DC 8A 1F mov bl, [bx] ; bl = char's current action -273F:11DE 5E pop si -273F:11DF 58 pop ax -273F:11E0 80 FB 03 cmp bl, CHAR_ACTION_EXEC_SCRIPT ; Char in animation sequence? -273F:11E3 74 12 je loc_166 ; Skip if yes - -; Scan through the list of currently paused characters to see if the character is in it - -273F:11E5 BB B0AE mov bx, offset character_pause_list -273F:11E8 B9 0014 mov cx, NUM_PAUSED_CHARS_SLOTS -273F:11EB 8B 55 1B mov dx, [di+ANIM_HOTSPOT_ID] - -273F:11EE locloop_165: -273F:11EE 3B 17 cmp dx, [bx+PC_SRC_CHAR_ID] ; Source char in list? -273F:11F0 75 09 jne loc_167 ; Jump if not -273F:11F2 3B 47 02 cmp ax, [bx+PC_DEST_CHAR_ID]; List char Id in list? -273F:11F5 75 04 jne loc_167 ; Jump if not equal -273F:11F7 loc_166: -273F:11F7 8B DD mov bx, bp ; Restore cached table offset -273F:11F9 EB C4 jmp short loc_163 ; Check next entry -273F:11FB loc_167: -273F:11FB 83 C3 08 add bx, PAUSED_CHAR_SLOT_SIZE -273F:11FE E2 EE loop locloop_165 ; Loop remaining action list - -; At this point we've found a character in the impinging_char_list list that isn't -; currently blocked to execute a hotspot animation, and doesn't have a cross reference -; against the calling character (such as the player) in the paused character list - -273F:1200 8B D8 mov bx, ax -273F:1202 57 push di -273F:1203 8B FE mov di, si -273F:1205 E8 FAE0 call get_room_resource_pointer -273F:1208 87 F7 xchg si, di ;di=list hotspot rec, si=caller rec -273F:120A 8B C3 mov ax, bx -273F:120C 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID ; Is list char the player? -273F:120F 75 0F jne loc_168 ; Jump if not -273F:1211 F6 45 49 FF test byte ptr [di+HS_PATHFIND_COVERED], 0FFh -273F:1215 75 09 jnz loc_168 ; Jump if not zero -273F:1217 5F pop di -273F:1218 E8 314B call character_update_movement -273F:121B 5B pop bx -273F:121C B8 0001 mov ax, 1 -273F:121F C3 retn - -273F:1220 loc_168: -273F:1220 BB B0AE mov bx, offset character_pause_list -273F:1223 loc_169: ; Scan for end of list -273F:1223 úF7 07 FFFF test word ptr [bx+PC_SRC_CHAR_ID], 0FFFFh -273F:1227 74 05 jz loc_170 -273F:1229 83 C3 08 add bx, PAUSED_CHAR_SLOT_SIZE -273F:122C EB F5 jmp short loc_169 -273F:122E loc_170: ; Inject entry into hotspot action list -273F:122E 89 17 mov [bx+PC_SRC_CHAR_ID], dx -273F:1230 89 47 02 mov [bx+PC_DEST_CHAR_ID], ax -273F:1233 C7 47 04 000F mov word ptr [bx+PC_COUNTER], 15 -273F:1238 89 7F 06 mov [bx+PC_HOTSPOT_PTR], di -273F:123B C6 44 4C 01 mov byte ptr [si+HS_BLOCKED_FLAG], BS_INITIAL -273F:123F 3D 2710 cmp ax, START_EXIT_HOTSPOT_ID -273F:1242 73 1D jae loc_173 ; Jump if above or = -273F:1244 8A 5D 44 mov bl, [di+HS_CHAR_MODE] -273F:1247 80 FB 03 cmp bl, CHARMODE_PAUSED -273F:124A 74 0D je loc_171 ; Jump if equal -273F:124C F7 45 4A FFFF test word ptr [di+HS_PAUSE_CTR], 0FFFFh -273F:1251 75 09 jnz loc_172 ; Jump if not zero -273F:1253 F6 45 44 FF test byte ptr [di+HS_CHAR_MODE], 0FFh -273F:1257 75 03 jnz loc_172 ; Jump if not zero -273F:1259 loc_171: -273F:1259 89 55 47 mov [di+SCRIPT_HOTSPOT_ID], dx -273F:125C loc_172: -273F:125C C7 45 4A 000F mov word ptr [di+HS_PAUSE_CTR], 0Fh -273F:1261 loc_173: -273F:1261 C7 06 10EE 0002 mov pl_check_result, 2 -273F:1267 5F pop di -273F:1268 5B pop bx -273F:1269 C6 07 01 mov byte ptr [bx], CHAR_ACTION_START_WALK -273F:126C 53 push bx -273F:126D 8B DD mov bx,bp -273F:126F E9 FF4D jmp loc_163 - character_paused_list_check endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:544C, 7F46, 7F75, 7FAD, 7FFD, 811C, 8800 - ; 887E, 967C, 9E9E - ; si = hotspot resource, di = animation slot hotspot is being removed from - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1272 animation_unload proc near -273F:1272 C7 44 0B 0000 mov word ptr [si+HS_ANIM_OFFSET], 0 ; Mark hotspot as unloaded - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:1102 - -273F:1277 animation_unload_2: -273F:1277 ú33 C0 xor ax,ax ; Clear some of the -273F:1279 88 45 0C mov [di+ANIM_LAYER], al ; slot fields -273F:127C 89 45 1B mov [di+ANIM_HOTSPOT_ID], ax -273F:127F 88 45 10 mov [di+ANIM_LOADED], al -273F:1282 C3 retn - animation_unload endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - ;* No entry point to code -273F:1283 úBF B14E mov di, offset animation_table -273F:1286 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:1289 locloop_175: ; xref 273F:1291 -273F:1289 39 5D 1E cmp [di+1Eh],bx -273F:128C 74 06 je loc_176 ; Jump if equal -273F:128E 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:1291 E2 F6 loop locloop_175 ; Loop if cx > 0 -273F:1293 C3 retn - -273F:1294 C6 45 0C 00 loc_176: mov byte ptr [di+ANIM_LAYER], 0 -273F:1298 loc_ret_177: retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:010D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1299 room_handle_click proc near - assume ds:data_seg -273F:1299 F6 06 11DA 07 test mouse_buttons2, 7 ; Any mouse button pressed? -273F:129E 74 F8 jz loc_ret_177 ; Exit if not -273F:12A0 F6 06 0DB4 FF test talk_dialog_close_flag, 0FFh ; Floating dialog active? -273F:12A5 75 2F jnz loc_178 ; If yes then jump -273F:12A7 F7 06 BA25 FFFF test viewing_room, 0FFFFh ; Viewing remote room? -273F:12AD 75 2A jnz loc_179 ; If yes then jump -273F:12AF 80 3E 9834 03 cmp cursor_state, CURSORSTATE_TALK -273F:12B4 74 49 je loc_ret_182 ; Jump if equal -273F:12B6 81 3E 11DD 0088 cmp char_dest_y, 80h + MENUBAR_Y_SIZE ; In menubar area? -273F:12BC 72 42 jb loc_183 ; If yes then jump -273F:12BE 80 3E 9834 02 cmp cursor_state, CURSORSTATE_SEQUENCE -273F:12C3 74 35 je loc_181 ; Jump if equal -273F:12C5 80 3E 9834 04 cmp cursor_state, CURSORSTATE_BUMPED -273F:12CA 74 2E je loc_181 ; Jump if equal - -273F:12CC F6 06 11DA 01 test mouse_buttons2, 1 -273F:12D1 75 30 jnz loc_184 ; Jump if not zero -273F:12D3 E9 0154 jmp loc_193 ; (142A) -273F:12D6 loc_178: ; xref 273F:12A5 -273F:12D6 E9 01A0 jmp loc_195 ; (1479) - -; Handle returning to a prior room from viewing another room remotely -273F:12D9 loc_179: ; xref 273F:12AD -273F:12D9 83 3E 9832 23 cmp room_number, 23h -273F:12DE 75 08 jne loc_180 ; Jump if not equal -273F:12E0 F7 06 BAB7 FFFF test script_val_87, 0FFFFh -273F:12E6 75 12 jnz loc_181 ; Jump if not zero -273F:12E8 loc_180: -273F:12E8 C7 06 B15F 5E44 mov slot0_tick_proc, offset player_tick_proc -273F:12EE A1 BA25 mov ax, old_room_number -273F:12F1 A3 BA23 mov new_room_number, ax -273F:12F4 C7 06 BA25 0000 mov old_room_number, 0 -273F:12FA loc_181: ; xref 273F:12C3, 12CA, 12E6 -273F:12FA C6 06 11DA 00 mov mouse_buttons2, 0 - -273F:12FF loc_ret_182: ; xref 273F:12B4 -273F:12FF C3 retn - -273F:1300 loc_183: ; xref 273F:12BC -273F:1300 E9 5A4D jmp menubar_handle_menu - -; Left mouse clicked - can only be either for walking or looking at a hotspot -273F:1303 loc_184: ` ; xref 273F:12D1 -273F:1303 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:1308 F7 06 1922 FFFF test dest_room_num, 0FFFFh -273F:130E 74 03 jz loc_185 ; Jump if zero -273F:1310 E9 0094 jmp loc_190 ; (13A7) -273F:1313 loc_185: ; xref 273F:130E -273F:1313 A1 1924 mov ax, hotspot_id -273F:1316 0B C0 or ax,ax ; Clicked on hotspot? -273F:1318 74 13 jz loc_186 ; If not, then jump -273F:131A úBE 4CB0 mov si, offset exit_hotspots_list -273F:131D 8B D8 mov bx,ax -273F:131F E8 3271 call is_roomexit_hotspot ; Was the hotspot a room exit? -273F:1322 75 0B jnz loc_187 ; If not, then jump -273F:1324 8B C3 mov ax,bx -273F:1326 E8 5EC5 call room_exit_hs_get_pointer -273F:1329 F6 44 0C FF test byte ptr [si+REHS_EXIT_BLOCKED], 0FFh ; Is exit blocked? -273F:132D loc_186: -273F:132D 74 78 jz loc_190 ; If not blocked, standard walking - -; Handler code for looking at a hotspot - -273F:132F loc_187: -273F:132F C6 06 9834 01 mov cursor_state, CURSORSTATE_ACTION -273F:1334 úBE 6CEF mov si, offset player_hotspot_rec -273F:1337 33 C0 xor ax,ax ; Zero register -273F:1339 89 44 52 mov [si+HS_DEST_HOTSPOT], ax -273F:133C 88 44 2A mov [si+HS_ACTION_CTR], al -273F:133F 89 44 42 mov [si+HS_DELAY_CTR], ax -273F:1342 88 44 44 mov [si+HS_CHAR_MODE], al -273F:1345 8B DE mov bx,si -273F:1347 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:134A 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:134D úBF 65F3 mov di, offset player_action_support_record -273F:1350 89 7F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], di -273F:1353 C7 05 0010 mov word ptr [di], ACTION_LOOK_AT -273F:1357 A1 1924 mov ax, hotspot_id -273F:135A 89 45 02 mov [di+2], ax -273F:135D C7 45 04 0000 mov word ptr [di+4], 0 -273F:1362 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:1365 E8 5C9D call menubar_clear_image -273F:1368 úBF 4B93 mov di, offset action_name ; Set up the "look at HOTSPOT" -273F:136B úBE 10B5 mov si, offset look_at_str ; string -273F:136E B9 0008 mov cx,8 -273F:1371 1E push ds -273F:1372 07 pop es -273F:1373 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:1375 A1 1924 mov ax, hotspot_id -273F:1378 E8 F9A6 call get_room_resource_pointer3 ; Get hotspot name -273F:137B 8B 44 02 mov ax, [si+HSH_NAME] -273F:137E 80 E4 1F and ah, 1Fh -273F:1381 E8 69B6 call decode_string -273F:1384 A1 4CE4 mov ax, data_segment2 -273F:1387 8E C0 mov es,ax -273F:1389 33 FF xor di,di ; Zero register -273F:138B 33 C9 xor cx,cx ; Zero register -273F:138D 8B 1E 076E mov bx, data_571 -273F:1391 8A 7F 04 mov bh, [bx+4] -273F:1394 8B 2E 0748 mov bp, screen_width -273F:1398 úBE 4B93 mov si, offset action_name -273F:139B loc_188: ; Loop to display action -273F:139B úAC lodsb ; String [si] to al -273F:139C 2C 20 sub al,20h ; ' ' -273F:139E 72 06 jc loc_ret_189 ; Jump if carry Set -273F:13A0 FF 16 075A call [display2_character_proc] -273F:13A4 EB F5 jmp short loc_188 ; (139B) - -273F:13A6 loc_ret_189: ; xref 273F:139E -273F:13A6 C3 retn - -; Handler code for starting the player walking to the clicked location -273F:13A7 loc_190: ; xref 273F:1310, 132D -273F:13A7 C7 06 11E1 0002 mov cursor_index, CURSOR_TIME_UP ; Start time animation -273F:13AD 8B 1E 1922 mov bx, dest_room_num -273F:13B1 0B DB or bx,bx ; Going to change room? -273F:13B3 74 2C jz loc_191 ; No, so start in-room move - -; Walking to another room -273F:13B5 A1 6CF5 mov ax, player_room_number -273F:13B8 E8 401F call room_exit_get_coordinates -273F:13BB 81 E2 0FFF and dx,0FFFh -273F:13BF úBE 6CEF mov si, offset player_hotspot_rec -273F:13C2 8B DE mov bx, si -273F:13C4 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:13C7 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:13CA 89 4C 54 mov [si+HS_DEST_X], cx -273F:13CD 89 54 56 mov [si+HS_DEST_Y], dx -273F:13D0 C7 44 52 FFFF mov [si+HS_DEST_HOTSPOT], 0FFFFh -273F:13D5 A1 1920 mov ax, room_exit_hotspot_id -273F:13D8 0B C0 or ax, ax -273F:13DA 74 2A jz loc_192 -273F:13DC 89 44 52 mov [si+HS_DEST_HOTSPOT], ax -273F:13DF EB 25 jmp short loc_192 ; (1406) - -; In room walking -273F:13E1 loc_191: ; xref 273F:13B3 -273F:13E1 úBE 6CEF mov si, offset player_hotspot_rec -273F:13E4 8B DE mov bx,si -273F:13E6 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:13E9 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:13EC C7 44 52 0000 mov [si+HS_DEST_HOTSPOT], 0 -273F:13F1 C7 06 B172 0000 mov data_1116,0 ; (31E4:B172=0) -273F:13F7 A1 11DB mov ax, char_dest_x -273F:13FA 2D 0010 sub ax,10h -273F:13FD 89 44 54 mov [si+HS_DEST_X], ax -273F:1400 A1 11DD mov ax, char_dest_y -273F:1403 89 44 56 mov [si+HS_DEST_Y], ax -273F:1406 loc_192: ; xref 273F:13DA, 13DF -273F:1406 C6 07 01 mov byte ptr [bx], CHAR_ACTION_START_WALK -273F:1409 33 C0 xor ax,ax ; Zero register -273F:140B A2 9834 mov cursor_state, al -273F:140E úBF 65F3 mov di, offset player_action_support_record -273F:1411 89 7F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], di -273F:1414 89 05 mov [di],ax -273F:1416 88 44 FF mov [si-1],al -273F:1419 88 44 2A mov [si+HS_ACTION_CTR],al -273F:141C 89 44 42 mov [si+HS_DELAY_CTR], ax -273F:141F 88 44 44 mov [si+HS_CHAR_MODE], al -273F:1422 88 44 FF mov [si-1],al -273F:1425 FF 16 075E call word ptr [show_cursor_proc] -273F:1429 C3 retn - -273F:142A loc_193: ; xref 273F:12D3 -273F:142A F6 06 11DA 04 test mouse_buttons2, 4 -273F:142F 75 1A jnz loc_194 ; Jump if not zero - -; At this point the right mouse button has been clicked for the right-click menu. -; This is either the context menu for a hotspot, or the general "Look/Status" menu - -273F:1431 E8 51E0 call room_show_rightclick_menu -273F:1434 C7 06 11E4 FFFF mov hotspot_name_id2, 0FFFFh -273F:143A 33 C0 xor ax,ax ; Zero register -273F:143C 33 DB xor bx,bx ; Zero register -273F:143E BD 0027 mov bp,27h -273F:1441 BA 0001 mov dx,1 -273F:1444 B9 0081 mov cx,81h -273F:1447 E8 F739 call sub_21 ; (0B83) -273F:144A C3 retn -273F:144B loc_194: ; xref 273F:142F -273F:144B C6 06 11DA 00 mov mouse_buttons2, 0 -273F:1450 C3 retn - room_handle_click endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - sequence_set_hotspot_script proc near - -273F:1451 E8 94 F8 call get_room_resource_pointer -273F:1454 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:1459 75 08 jnz loc_194_2 -273F:145B 83 F9 0C cmp cx, 0Ch -273F:145E 75 03 jnz loc_194_2 -273F:1460 83 C1 03 add cx, 3 -273F:1463 D1 E1 loc_194_2: shl cx, 1 -273F:1465 81 C1 57E0 add cx, offset hotspot_script_master_list -273F:1469 8B D9 mov bx, cx -273F:146B 8B 07 mov ax, [bx] ; Get script offset from list -273F:146D 89 44 24 mov [si+HS_SCRIPT_OFFSET], ax -273F:1470 33 C0 xor ax, ax -273F:1472 89 44 26 mov word ptr [si+26h], ax -273F:1475 89 44 28 mov word ptr [si+28h], ax -273F:1478 C3 ret - - sequence_set_hotspot_script endp - -; This code fragment is part of room_handle_click, and is called when either mouse -; button is pressed when a talk dialog is active - -273F:1479 loc_195: ; xref 273F:12D6 -273F:1479 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:147E A1 983B mov ax, talk_character_id -273F:1481 E8 F866 call get_room_resource_pointer2 -273F:1484 C7 44 37 0000 mov word ptr [si+HS_TALK_COUNTDOWN],0 -273F:1489 A1 9841 mov ax, data_1091 -273F:148C 0B C0 or ax,ax ; Zero ? -273F:148E 74 0F jz loc_196 ; Jump if zero -273F:1490 E8 F857 call get_room_resource_pointer2 -273F:1493 F7 44 37 FFFF test word ptr [si+HS_TALK_COUNTDOWN],0FFFFh -273F:1498 74 05 jz loc_196 ; Jump if zero -273F:149A C7 44 37 0028 mov word ptr [si+HS_TALK_COUNTDOWN],28h -273F:149F loc_196: ; xref 273F:148E, 1498 -273F:149F E9 4E23 jmp loc_1248 ; (62C5) - sub_44 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7B07, 8FC8, 93BE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:14A2 sub_45 proc near -273F:14A2 úBE B883 mov si, offset animation_block_list -273F:14A5 loc_197: ; xref 273F:14B5 -273F:14A5 úAD lodsw ; String [si] to ax -273F:14A6 0B C0 or ax,ax -273F:14A8 74 0D jz loc_ret_198 ; End of list found -273F:14AA 8B F8 mov di,ax -273F:14AC C7 45 03 0000 mov word ptr [di+3],0 -273F:14B1 80 65 02 DF and byte ptr [di+2],0DFh -273F:14B5 EB EE jmp short loc_197 ; (14A5) - -273F:14B7 loc_ret_198: ; xref 273F:14A8 -273F:14B7 C3 retn - sub_45 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:012A, 1F8B, 1F9E, 93EF - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:14B8 set_vga_palette proc near -273F:14B8 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:14BD 74 40 je loc_ret_201 ; Jump if equal -273F:14BF 81 3E F010 2EE0 cmp timer_ticks, TIMER_TICKS_MAX -273F:14C5 72 38 jb loc_ret_201 ; Jump if below -273F:14C7 1E push ds -273F:14C8 07 pop es -273F:14C9 úBE 1457 mov si,offset unprocessed_vga_palette -273F:14CC úBF 0DB5 mov di,offset processed_vga_palette -273F:14CF B9 0300 mov cx,300h - -273F:14D2 locloop_199: ; xref 273F:14D6 -273F:14D2 AC lodsb ; String [si] to al -273F:14D3 D0 E8 shr al,1 ; Shift w/zeros fill -273F:14D5 AA stosb ; Store al to es:[di] -273F:14D6 E2 FA loop locloop_199 ; Loop if cx > 0 - -273F:14D8 úBA 0DB5 mov dx,offset processed_vga_palette -273F:14DB B8 1012 mov ax,1012h -273F:14DE BB 0000 mov bx,0 -273F:14E1 B9 0100 mov cx,100h -273F:14E4 CD 10 int 10h ; Video display ah=functn 10h - ; set cx color registers from - ; ptr es:dx, bx=first reg -273F:14E6 loc_200: ; xref 273F:14EF -273F:14E6 E8 7EDF call room_check_keypresses -273F:14E9 81 3E F010 2EE0 cmp timer_ticks, TIMER_TICKS_MAX -273F:14EF 73 F5 jae loc_200 ; Jump if above or = -273F:14F1 úBA 1457 mov dx,offset unprocessed_vga_palette -273F:14F4 B8 1012 mov ax,1012h -273F:14F7 BB 0000 mov bx,0 -273F:14FA B9 0100 mov cx,100h -273F:14FD CD 10 int 10h ; Video display ah=functn 10h - ; set cx color registers from - ; ptr es:dx, bx=first reg - -273F:14FF loc_ret_201: ; xref 273F:14BD, 14C5 -273F:14FF C3 retn - set_vga_palette endp - -273F:1500 00 00 data_215 db 0, 0 ; xref 273F:2C88, 2D34, 2E9A, 2EA3 - ; 37F2, 385B, 38FB -273F:1502 0000 data_216 dw 0 ; xref 273F:2C8C, 2D3C, 2EA8 -273F:1504 00 data_217 db 0 ; xref 273F:2C90, 2D6E, 2F47 -273F:1505 0000 data_218 dw 0 ; xref 273F:2D0B, 2F86, 3869, 388E - ; 3939 -273F:1507 0000 data_219 dw 0 ; xref 273F:2D03, 2F8C -273F:1509 00 data_220 db 0 ; xref 273F:2CFF, 2D42, 2D69, 2DBA - ; 2E95 -273F:150A 00 00 00 00 db 0, 0, 0, 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00A9, 00BB, 011D, 4171, 6A0D, 6E4B, 70D1 - ; 8922, 8FF3, 9769 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:150E room_add_animations proc near -273F:150E B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:1511 úBB B14E mov bx, offset animation_table - -; This first part adds in any active hotspots for layer 3 - -273F:1514 locloop_202: ; xref 273F:1551 -273F:1514 80 7F 0C 03 cmp byte ptr [bx+ANIM_LAYER], 3 ; Is hotspot in layer 3? -273F:1518 75 34 jne loc_206 ; If found, then skip entry -273F:151A 8B 16 9832 mov dx, room_number -273F:151E 39 57 0E cmp [bx+ANIM_ROOM_NUM], dx ; Is animation for room? -273F:1521 75 2B jne loc_206 ; If no, then skip -273F:1523 51 push cx -273F:1524 53 push bx -273F:1525 8B 47 0A mov ax, [bx+ANIM_SEGMENT] -273F:1528 0B C0 or ax,ax ; Zero ? -273F:152A 75 05 jnz loc_203 ; Jump if not zero -273F:152C E8 61CE call animation_resolve_segment -273F:152F 72 1B jc loc_205 ; Jump if carry Set -273F:1531 loc_203: ; xref 273F:152A -273F:1531 8E C0 mov es,ax -273F:1533 8B 77 08 mov si, [bx+ANIM_FRAME_OFFSET] -273F:1536 FF 16 0754 call [add_animation_proc] -273F:153A 5F pop di -273F:153B 57 push di -273F:153C B0 01 mov al,1 -273F:153E F6 45 0D FF test byte ptr [di+ANIM_FLAGS], 0FFh -273F:1542 74 02 jz loc_204 ; Jump if zero -273F:1544 B0 81 mov al, 81h -273F:1546 loc_204: ; xref 273F:1542 -273F:1546 E8 F5DF call flag_covered_cells -273F:1549 E8 F509 call room_add_layer -273F:154C loc_205: ; xref 273F:152F -273F:154C 5B pop bx -273F:154D 59 pop cx -273F:154E loc_206: ; xref 273F:1518, 1521 -273F:154E 83 C3 29 add bx, ANIMATION_SLOT_SIZE -273F:1551 E2 C1 loop locloop_202 ; Loop if cx > 0 - -; Next Get a set of animations where the layer = 1, forming a list of -; the animation slot entries and the bottom row of the animation - -273F:1553 úBF B14E mov di, offset animation_table -273F:1556 úBE 10F0 mov si, offset animation_table2 -273F:1559 8B 16 9832 mov dx, room_number -273F:155D B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:1560 33 DB xor bx,bx ; Number of anims found -273F:1562 locloop_207: -273F:1562 80 7D 0C 01 cmp byte ptr [di+ANIM_LAYER], 1 ; Animation is layer 1? -273F:1566 75 1E jne loc_208 ; If not, then skip -273F:1568 39 55 0E cmp [di+ANIM_ROOM_NUM], dx ; Animation in the room? -273F:156B 75 19 jne loc_208 ; If not, skip animation -273F:156D F6 45 1D FF test byte ptr [di+ANIM_SKIP], 0FFh -273F:1571 75 13 jnz loc_208 ; Jump if not zero -273F:1573 8B 45 02 mov ax,[di+ANIM_Y] ; Get Y start -273F:1576 03 45 15 add ax,[di+ANIM_HEIGHT_COPY] ; Copy height -273F:1579 89 3C mov [si],di ; Store anim offset -273F:157B 83 C6 02 add si, 2 -273F:157E 89 04 mov [si], ax ; Store bottom row -273F:1580 83 C6 02 add si,2 -273F:1583 83 C3 01 add bx,1 ; Increment number found -273F:1586 loc_208: -273F:1586 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:1589 E2 D7 loop locloop_207 ; Loop if cx > 0 - -; This next part sorts the newly formed list by the bottom row of each - -273F:158B 83 FB 01 cmp bx,1 -273F:158E 8B CB mov cx,bx -273F:1590 72 67 jc loc_217 ; No entries -273F:1592 74 2F jz loc_212 ; Only one entry -273F:1594 51 push cx -273F:1595 83 E9 01 sub cx,1 -273F:1598 locloop_209: ; xref 273F:15C0 -273F:1598 úBE 10F0 mov si,offset animation_table2 -273F:159B 51 push cx -273F:159C locloop_210: ; xref 273F:15BD -273F:159C 8B 44 06 mov ax, [si+6] -273F:159F 3B 44 02 cmp ax, [si+2] -273F:15A2 73 16 jae loc_211 -273F:15A4 8B 04 mov ax,[si] -273F:15A6 8B 5C 04 mov bx,[si+4] -273F:15A9 89 1C mov [si],bx -273F:15AB 89 44 04 mov [si+4],ax -273F:15AE 8B 44 02 mov ax,[si+2] -273F:15B1 8B 5C 06 mov bx,[si+6] -273F:15B4 89 5C 02 mov [si+2],bx -273F:15B7 89 44 06 mov [si+6],ax -273F:15BA loc_211: -273F:15BA 83 C6 04 add si, 4 -273F:15BD E2 DD loop locloop_210 ; Loop if cx > 0 - -273F:15BF 59 pop cx -273F:15C0 E2 D6 loop locloop_209 ; Loop if cx > 0 - -273F:15C2 59 pop cx -273F:15C3 loc_212: ; xref 273F:1592 - -; Add in the animations in order of the sorted list - -273F:15C3 BE 10F0 mov si, offset animation_table2 -273F:15C6 locloop_213: ; xref 273F:15F7 -273F:15C6 8B 1C mov bx, [si] -273F:15C8 56 push si -273F:15C9 51 push cx -273F:15CA 53 push bx -273F:15CB 8B 47 0A mov ax,[bx+ANIM_SEGMENT] -273F:15CE 0B C0 or ax,ax ; Zero ? -273F:15D0 75 08 jnz loc_214 ; Jump if not zero -273F:15D2 E8 6128 call animation_resolve_segment -273F:15D5 73 03 jnc loc_214 ; Jump if carry=0 -273F:15D7 5F pop di -273F:15D8 EB 18 jmp short loc_216 ; (15F2) -273F:15DA loc_214: ; xref 273F:15D0, 15D5 -273F:15DA 8E C0 mov es,ax -273F:15DC 8B 77 08 mov si,[bx+ANIM_FRAME_OFFSET] -273F:15DF FF 16 0754 call [add_animation_proc] -273F:15E3 5F pop di -273F:15E4 F6 45 0D FF test byte ptr [di+ANIM_FLAGS], 0FFh -273F:15E8 74 05 jz loc_215 ; Jump if zero -273F:15EA B0 81 mov al, 81h -273F:15EC E8 F539 call flag_covered_cells -273F:15EF loc_215: ; xref 273F:15E8 -273F:15EF E8 F463 call room_add_layer -273F:15F2 loc_216: ; xref 273F:15D8 -273F:15F2 59 pop cx -273F:15F3 5E pop si -273F:15F4 83 C6 04 add si,4 -273F:15F7 E2 CD loop locloop_213 ; Loop if cx > 0 - -; Add in animations for layer 2 - -273F:15F9 loc_217: ; xref 273F:1590 -273F:15F9 B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:15FC úBB B14E mov bx, offset animation_table - -273F:15FF locloop_218: -273F:15FF 80 7F 0C 02 cmp byte ptr [bx+ANIM_LAYER],2 -273F:1603 75 31 jne loc_222 ; Jump if not equal -273F:1605 8B 16 9832 mov dx, room_number -273F:1609 39 57 0E cmp [bx+ANIM_ROOM_NUM], dx -273F:160C 75 28 jne loc_222 ; Jump if not equal -273F:160E 51 push cx -273F:160F 53 push bx -273F:1610 8B 47 0A mov ax,[bx+ANIM_SEGMENT] -273F:1613 0B C0 or ax,ax ; Zero ? -273F:1615 75 05 jnz loc_219 ; Jump if not zero -273F:1617 E8 60E3 call animation_resolve_segment -273F:161A 72 18 jc loc_221 ; Jump if carry Set -273F:161C loc_219: ; xref 273F:1615 -273F:161C 8E C0 mov es,ax -273F:161E 8B 77 08 mov si, [bx+ANIM_FRAME_OFFSET] -273F:1621 FF 16 0754 call [add_animation_proc] -273F:1625 5F pop di -273F:1626 57 push di -273F:1627 B0 01 mov al,1 -273F:1629 F6 45 0D FF test byte ptr [di+ANIM_FLAGS],0FFh -273F:162D 74 02 jz loc_220 ; Jump if zero -273F:162F B0 81 mov al, 81h -273F:1631 loc_220: ; xref 273F:162D -273F:1631 E8 F4F4 call flag_covered_cells -273F:1634 loc_221: ; xref 273F:161A -273F:1634 5B pop bx -273F:1635 59 pop cx -273F:1636 loc_222: ; xref 273F:1603, 160C -273F:1636 83 C3 29 add bx, ANIMATION_SLOT_SIZE -273F:1639 E2 C4 loop locloop_218 ; Loop if cx > 0 - -273F:163B F6 06 9837 FF test talk_dialog_active, 0FFh -273F:1640 74 04 jz loc_ret_223 ; Jump if zero -273F:1642 FF 16 0758 call [talk_dialog_proc] - -273F:1646 loc_ret_223: ; xref 273F:1640 -273F:1646 C3 retn - room_add_animations endp - -273F:1647 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7D4E, 7D60 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1648 decode_character proc near -273F:1648 E8 675A call read_bit -273F:164B 74 03 jz loc_224 ; Jump if zero -273F:164D EB 3B jmp short loc_235 ; (168A) -273F:164F 90 db 90h -273F:1650 loc_224: ; 0 -273F:1650 E8 6752 call read_bit -273F:1653 74 03 jz loc_225 ; Jump if zero -273F:1655 EB 04 jmp short loc_226 ; (165B) -273F:1657 90 db 90h -273F:1658 loc_225: ; 00 -273F:1658 B0 20 mov al,20h ; ' ' -273F:165A C3 retn -273F:165B loc_226: ; 01 -273F:165B E8 6747 call read_bit -273F:165E 74 03 jz loc_227 ; Jump if zero -273F:1660 EB 0F jmp short loc_230 ; (1671) -273F:1662 90 db 90h -273F:1663 loc_227: ; 010 -273F:1663 E8 673F call read_bit -273F:1666 74 03 jz loc_228 ; Jump if zero -273F:1668 EB 04 jmp short loc_229 ; (166E) -273F:166A 90 db 90h -273F:166B loc_228: ; 0100 -273F:166B B0 65 mov al,65h ; 'e' -273F:166D C3 retn -273F:166E loc_229: ; 0101 -273F:166E B0 6F mov al,6Fh ; 'o' -273F:1670 C3 retn -273F:1671 loc_230: ; 011 -273F:1671 E8 6731 call read_bit -273F:1674 74 03 jz loc_231 -273F:1676 EB 04 jmp short loc_232 -273F:1678 90 db 90h -273F:1679 loc_231: ; 0110 -273F:1679 B0 74 mov al,74h ; 't' -273F:167B C3 retn -273F:167C loc_232: ; 0111 -273F:167C E8 6726 call read_bit -273F:167F 74 03 jz loc_233 ; Jump if zero -273F:1681 EB 04 jmp short loc_234 ; (1687) -273F:1683 90 db 90h -273F:1684 loc_233: ; 01110 -273F:1684 B0 61 mov al,61h ; 'a' -273F:1686 C3 retn -273F:1687 loc_234: ; 01111 -273F:1687 B0 6E mov al,6Eh ; 'n' -273F:1689 C3 retn -273F:168A loc_235: ; 1 -273F:168A E8 6718 call read_bit -273F:168D 74 03 jz loc_236 ; Jump if zero -273F:168F EB 46 jmp short loc_249 ; (16D7) -273F:1691 90 db 90h -273F:1692 loc_236: ; 10 -273F:1692 E8 6710 call read_bit -273F:1695 74 03 jz loc_237 ; Jump if zero -273F:1697 EB 0F jmp short loc_240 ; (16A8) -273F:1699 90 db 90h -273F:169A loc_237: ; 100 -273F:169A E8 6708 call read_bit -273F:169D 74 03 jz loc_238 ; Jump if zero -273F:169F EB 04 jmp short loc_239 ; (16A5) -273F:16A1 90 db 90h -273F:16A2 loc_238: ; 1000 -273F:16A2 B0 73 mov al,73h ; 's' -273F:16A4 C3 retn -273F:16A5 loc_239: ; 1001 -273F:16A5 B0 69 mov al,69h ; 'i' -273F:16A7 C3 retn -273F:16A8 loc_240: ; 101 -273F:16A8 E8 66FA call read_bit -273F:16AB 74 03 jz loc_241 ; Jump if zero -273F:16AD EB 04 jmp short loc_242 ; (16B3) -273F:16AF 90 db 90h -273F:16B0 loc_241: ; 1010 -273F:16B0 B0 72 mov al,72h ; 'r' -273F:16B2 C3 retn -273F:16B3 loc_242: ; 1011 -273F:16B3 E8 66EF call read_bit -273F:16B6 74 03 jz loc_243 ; Jump if zero -273F:16B8 EB 04 jmp short loc_244 ; (16BE) -273F:16BA 90 db 90h -273F:16BB loc_243: ; 10110 -273F:16BB B0 68 mov al,68h ; 'h' -273F:16BD C3 retn -273F:16BE loc_244: ; 10111 -273F:16BE E8 66E4 call read_bit -273F:16C1 74 03 jz loc_245 ; Jump if zero -273F:16C3 EB 04 jmp short loc_246 ; (16C9) -273F:16C5 90 db 90h -273F:16C6 loc_245: ; 101110 -273F:16C6 B0 75 mov al,75h ; 'u' -273F:16C8 C3 retn -273F:16C9 loc_246: ; 101111 -273F:16C9 E8 66D9 call read_bit -273F:16CC 74 03 jz loc_247 ; Jump if zero -273F:16CE EB 04 jmp short loc_248 ; (16D4) -273F:16D0 90 db 90h -273F:16D1 loc_247: ; 1011110 -273F:16D1 B0 6C mov al,6Ch ; 'l' -273F:16D3 C3 retn -273F:16D4 loc_248: ; 1011111 -273F:16D4 B0 64 mov al,64h ; 'd' -273F:16D6 C3 retn -273F:16D7 loc_249: ; 11 -273F:16D7 E8 66CB call read_bit -273F:16DA 74 03 jz loc_250 ; Jump if zero -273F:16DC EB 51 jmp short loc_265 ; (172F) -273F:16DE 90 db 90h -273F:16DF loc_250: ; 110 -273F:16DF E8 66C3 call read_bit -273F:16E2 74 03 jz loc_251 ; Jump if zero -273F:16E4 EB 1A jmp short loc_256 ; (1700) -273F:16E6 90 db 90h -273F:16E7 loc_251: ; 1100 -273F:16E7 E8 66BB call read_bit -273F:16EA 74 03 jz loc_252 ; Jump if zero -273F:16EC EB 04 jmp short loc_253 ; (16F2) -273F:16EE 90 db 90h -273F:16EF loc_252: ; 11000 -273F:16EF B0 79 mov al,79h ; 'y' -273F:16F1 C3 retn -273F:16F2 loc_253: ; 11001 -273F:16F2 E8 66B0 call read_bit -273F:16F5 74 03 jz loc_254 ; Jump if zero -273F:16F7 EB 04 jmp short loc_255 ; (16FD) -273F:16F9 90 db 90h -273F:16FA loc_254: ; 110010 -273F:16FA B0 67 mov al,67h ; 'g' -273F:16FC C3 retn -273F:16FD loc_255: ; 110011 -273F:16FD B0 00 mov al,0 -273F:16FF C3 retn -273F:1700 loc_256: ; 1101 -273F:1700 E8 66A2 call read_bit -273F:1703 74 03 jz loc_257 ; Jump if zero -273F:1705 EB 0F jmp short loc_260 ; (1716) -273F:1707 90 db 90h -273F:1708 loc_257: ; 11010 -273F:1708 E8 669A call read_bit -273F:170B 74 03 jz loc_258 ; Jump if zero -273F:170D EB 04 jmp short loc_259 ; (1713) -273F:170F 90 db 90h -273F:1710 loc_258: ; 110100 -273F:1710 B0 77 mov al,77h ; 'w' -273F:1712 C3 retn -273F:1713 loc_259: ; 110101 -273F:1713 B0 63 mov al,63h ; 'c' -273F:1715 C3 retn -273F:1716 loc_260: ; 11011 -273F:1716 E8 668C call read_bit -273F:1719 74 03 jz loc_261 ; Jump if zero -273F:171B EB 04 jmp short loc_262 ; (1721) -273F:171D 90 db 90h -273F:171E loc_261: ; 110110 -273F:171E B0 66 mov al,66h ; 'f' -273F:1720 C3 retn -273F:1721 loc_262: ; 110111 -273F:1721 E8 6681 call read_bit -273F:1724 74 03 jz loc_263 ; Jump if zero -273F:1726 EB 04 jmp short loc_264 ; (172C) -273F:1728 90 db 90h -273F:1729 loc_263: ; 1101110 -273F:1729 B0 2E mov al,2Eh ; '.' -273F:172B C3 retn -273F:172C loc_264: ; 1101111 -273F:172C B0 6D mov al,6Dh ; 'm' -273F:172E C3 retn -273F:172F loc_265: ; 111 -273F:172F E8 6673 call read_bit -273F:1732 74 03 jz loc_266 ; Jump if zero -273F:1734 EB 46 jmp short loc_279 ; (177C) -273F:1736 90 db 90h -273F:1737 loc_266: ; 1110 -273F:1737 E8 666B call read_bit -273F:173A 74 03 jz loc_267 ; Jump if zero -273F:173C EB 0F jmp short loc_270 ; (174D) -273F:173E 90 db 90h -273F:173F loc_267: ; 11100 -273F:173F E8 6663 call read_bit -273F:1742 74 03 jz loc_268 ; Jump if zero -273F:1744 EB 04 jmp short loc_269 ; (174A) -273F:1746 90 db 90h -273F:1747 loc_268: ; 111000 -273F:1747 B0 70 mov al,70h ; 'p' -273F:1749 C3 retn -273F:174A loc_269: ; 111001 -273F:174A B0 62 mov al,62h ; 'b' -273F:174C C3 retn -273F:174D loc_270: ; 11101 -273F:174D E8 6655 call read_bit -273F:1750 74 03 jz loc_271 ; Jump if zero -273F:1752 EB 0F jmp short loc_274 ; (1763) -273F:1754 90 db 90h -273F:1755 loc_271: ; 111010 -273F:1755 E8 664D call read_bit -273F:1758 74 03 jz loc_272 ; Jump if zero -273F:175A EB 04 jmp short loc_273 ; (1760) -273F:175C 90 db 90h -273F:175D loc_272: ; 1110100 -273F:175D B0 2C mov al,2Ch ; ',' -273F:175F C3 retn -273F:1760 loc_273: ; 1110101 -273F:1760 B0 6B mov al,6Bh ; 'k' -273F:1762 C3 retn -273F:1763 loc_274: ; 111011 -273F:1763 E8 663F call read_bit -273F:1766 74 03 jz loc_275 ; Jump if zero -273F:1768 EB 04 jmp short loc_276 ; (176E) -273F:176A 90 db 90h -273F:176B loc_275: ; 1110110 -273F:176B B0 27 mov al,27h ; ''' -273F:176D C3 retn -273F:176E loc_276: ; 1110111 -273F:176E E8 6634 call read_bit -273F:1771 74 03 jz loc_277 ; Jump if zero -273F:1773 EB 04 jmp short loc_278 ; (1779) -273F:1775 90 db 90h -273F:1776 loc_277: ; 11101110 -273F:1776 B0 49 mov al,49h ; 'I' -273F:1778 C3 retn -273F:1779 loc_278: ; 11101111 -273F:1779 B0 76 mov al,76h ; 'v' -273F:177B C3 retn -273F:177C loc_279: ; 1111 -273F:177C E8 6626 call read_bit -273F:177F 74 03 jz loc_280 ; Jump if zero -273F:1781 EB 46 jmp short loc_293 ; (17C9) -273F:1783 90 db 90h -273F:1784 loc_280: ; 11110 -273F:1784 E8 661E call read_bit -273F:1787 74 03 jz loc_281 ; Jump if zero -273F:1789 EB 0F jmp short loc_284 ; (179A) -273F:178B 90 db 90h -273F:178C loc_281: ; 111100 -273F:178C E8 6616 call read_bit -273F:178F 74 03 jz loc_282 ; Jump if zero -273F:1791 EB 04 jmp short loc_283 ; (1797) -273F:1793 90 db 90h -273F:1794 loc_282: ; 1111000 -273F:1794 B0 21 mov al,21h ; '!' -273F:1796 C3 retn -273F:1797 loc_283: ; 1111001 -273F:1797 B0 B4 mov al,0B4h -273F:1799 C3 retn -273F:179A loc_284: ; 111101 -273F:179A E8 6608 call read_bit -273F:179D 74 03 jz loc_285 ; Jump if zero -273F:179F EB 0F jmp short loc_288 ; (17B0) -273F:17A1 90 db 90h -273F:17A2 loc_285: ; 1111010 -273F:17A2 E8 6600 call read_bit -273F:17A5 74 03 jz loc_286 ; Jump if zero -273F:17A7 EB 04 jmp short loc_287 ; (17AD) -273F:17A9 90 db 90h -273F:17AA loc_286: ; 11110100 -273F:17AA B0 54 mov al,54h ; 'T' -273F:17AC C3 retn -273F:17AD loc_287: ; 11110101 -273F:17AD B0 B5 mov al,0B5h -273F:17AF C3 retn -273F:17B0 loc_288: ; 1111011 -273F:17B0 E8 65F2 call read_bit -273F:17B3 74 03 jz loc_289 ; Jump if zero -273F:17B5 EB 04 jmp short loc_290 ; (17BB) -273F:17B7 90 db 90h -273F:17B8 loc_289: ; 11110110 -273F:17B8 B0 3F mov al,3Fh ; '?' -273F:17BA C3 retn -273F:17BB loc_290: ; 11110111 -273F:17BB E8 65E7 call read_bit -273F:17BE 74 03 jz loc_291 ; Jump if zero -273F:17C0 EB 04 jmp short loc_292 ; (17C6) -273F:17C2 90 db 90h -273F:17C3 loc_291: ; 111101110 -273F:17C3 B0 B2 mov al,0B2h -273F:17C5 C3 retn -273F:17C6 loc_292: ; 111101111 -273F:17C6 B0 B3 mov al,0B3h -273F:17C8 C3 retn -273F:17C9 loc_293: ; 11111 -273F:17C9 E8 65D9 call read_bit -273F:17CC 74 03 jz loc_294 ; Jump if zero -273F:17CE EB 5C jmp short loc_311 ; (182C) -273F:17D0 90 db 90h -273F:17D1 loc_294: ; 111110 -273F:17D1 E8 65D1 call read_bit -273F:17D4 74 03 jz loc_295 ; Jump if zero -273F:17D6 EB 1A jmp short loc_300 ; (17F2) -273F:17D8 90 db 90h -273F:17D9 loc_295: ; 1111100 -273F:17D9 E8 65C9 call read_bit -273F:17DC 74 03 jz loc_296 ; Jump if zero -273F:17DE EB 04 jmp short loc_297 ; (17E4) -273F:17E0 90 db 90h -273F:17E1 loc_296: ; 11111000 -273F:17E1 B0 57 mov al,57h ; 'W' -273F:17E3 C3 retn -273F:17E4 loc_297: ; 11111001 -273F:17E4 E8 65BE call read_bit -273F:17E7 74 03 jz loc_298 ; Jump if zero -273F:17E9 EB 04 jmp short loc_299 ; (17EF) -273F:17EB 90 db 90h -273F:17EC loc_298: ; 111110010 -273F:17EC B0 48 mov al,48h ; 'H' -273F:17EE C3 retn -273F:17EF loc_299: ; 111110011 -273F:17EF B0 41 mov al,41h ; 'A' -273F:17F1 C3 retn -273F:17F2 loc_300: ; 1111101 -273F:17F2 E8 65B0 call read_bit -273F:17F5 74 03 jz loc_301 ; Jump if zero -273F:17F7 EB 0F jmp short loc_304 ; (1808) -273F:17F9 90 db 90h -273F:17FA loc_301: ; 11111010 -273F:17FA E8 65A8 call read_bit -273F:17FD 74 03 jz loc_302 ; Jump if zero -273F:17FF EB 04 jmp short loc_303 ; (1805) -273F:1801 90 db 90h -273F:1802 loc_302: ; 111110100 -273F:1802 B0 B1 mov al,0B1h -273F:1804 C3 retn -273F:1805 loc_303: ; 111110101 -273F:1805 B0 53 mov al,53h ; 'S' -273F:1807 C3 retn -273F:1808 loc_304: ; 11111011 -273F:1808 E8 659A call read_bit -273F:180B 74 03 jz loc_305 ; Jump if zero -273F:180D EB 04 jmp short loc_306 ; (1813) -273F:180F 90 db 90h -273F:1810 loc_305: ; 111110110 -273F:1810 B0 59 mov al,59h ; 'Y' -273F:1812 C3 retn -273F:1813 loc_306: ; 111110111 -273F:1813 E8 658F call read_bit -273F:1816 74 03 jz loc_307 ; Jump if zero -273F:1818 EB 04 jmp short loc_308 ; (181E) -273F:181A 90 db 90h -273F:181B loc_307: ; 1111101110 -273F:181B B0 47 mov al,47h ; 'G' -273F:181D C3 retn -273F:181E loc_308: ; 1111101111 -273F:181E E8 6584 call read_bit -273F:1821 74 03 jz loc_309 ; Jump if zero -273F:1823 EB 04 jmp short loc_310 ; (1829) -273F:1825 90 db 90h -273F:1826 loc_309: ; 11111011110 -273F:1826 B0 4D mov al,4Dh ; 'M' -273F:1828 C3 retn -273F:1829 loc_310: ; 11111011111 -273F:1829 B0 4E mov al,4Eh ; 'N' -273F:182B C3 retn -273F:182C loc_311: ; 111111 -273F:182C E8 6576 call read_bit -273F:182F 74 03 jz loc_312 ; Jump if zero -273F:1831 EB 51 jmp short loc_327 ; (1884) -273F:1833 90 db 90h -273F:1834 loc_312: ; 1111110 -273F:1834 E8 656E call read_bit -273F:1837 74 03 jz loc_313 ; Jump if zero -273F:1839 EB 1A jmp short loc_318 ; (1855) -273F:183B 90 db 90h -273F:183C loc_313: ; 11111100 -273F:183C E8 6566 call read_bit -273F:183F 74 03 jz loc_314 ; Jump if zero -273F:1841 EB 04 jmp short loc_315 ; (1847) -273F:1843 90 db 90h -273F:1844 loc_314: ; 111111000 -273F:1844 B0 4F mov al,4Fh ; 'O' -273F:1846 C3 retn -273F:1847 loc_315: ; 111111001 -273F:1847 E8 655B call read_bit -273F:184A 74 03 jz loc_316 ; Jump if zero -273F:184C EB 04 jmp short loc_317 ; (1852) -273F:184E 90 db 90h -273F:184F loc_316: ; 1111110010 -273F:184F B0 45 mov al,45h ; 'E' -273F:1851 C3 retn -273F:1852 loc_317: ; 1111110011 -273F:1852 B0 4C mov al,4Ch ; 'L' -273F:1854 C3 retn -273F:1855 loc_318: ; 11111101 -273F:1855 E8 654D call read_bit -273F:1858 74 03 jz loc_319 ; Jump if zero -273F:185A EB 0F jmp short loc_322 ; (186B) -273F:185C 90 db 90h -273F:185D loc_319: ; 111111010 -273F:185D E8 6545 call read_bit -273F:1860 74 03 jz loc_320 ; Jump if zero -273F:1862 EB 04 jmp short loc_321 ; (1868) -273F:1864 90 db 90h -273F:1865 loc_320: ; 1111110100 -273F:1865 B0 2D mov al,2Dh ; '-' -273F:1867 C3 retn -273F:1868 loc_321: ; 1111110101 -273F:1868 B0 52 mov al,52h ; 'R' -273F:186A C3 retn -273F:186B loc_322: ; 111111011 -273F:186B E8 6537 call read_bit -273F:186E 74 03 jz loc_323 ; Jump if zero -273F:1870 EB 04 jmp short loc_324 ; (1876) -273F:1872 90 db 90h -273F:1873 loc_323: ; 1111110110 -273F:1873 B0 42 mov al,42h ; 'B' -273F:1875 C3 retn -273F:1876 loc_324: ; 1111110111 -273F:1876 E8 652C call read_bit -273F:1879 74 03 jz loc_325 ; Jump if zero -273F:187B EB 04 jmp short loc_326 ; (1881) -273F:187D 90 db 90h -273F:187E loc_325: ; 11111101110 -273F:187E B0 44 mov al,44h ; 'D' -273F:1880 C3 retn -273F:1881 loc_326: ; 11111101111 -273F:1881 B0 A6 mov al,0A6h -273F:1883 C3 retn -273F:1884 loc_327: ; 1111111 -273F:1884 E8 651E call read_bit -273F:1887 74 03 jz loc_328 ; Jump if zero -273F:1889 EB 46 jmp short loc_341 ; (18D1) -273F:188B 90 db 90h -273F:188C loc_328: ; 11111110 -273F:188C E8 6516 call read_bit -273F:188F 74 03 jz loc_329 ; Jump if zero -273F:1891 EB 1A jmp short loc_334 ; (18AD) -273F:1893 90 db 90h -273F:1894 loc_329: ; 111111100 -273F:1894 E8 650E call read_bit -273F:1897 74 03 jz loc_330 ; Jump if zero -273F:1899 EB 04 jmp short loc_331 ; (189F) -273F:189B 90 db 90h -273F:189C loc_330: ; 1111111000 -273F:189C B0 43 mov al,43h ; 'C' -273F:189E C3 retn -273F:189F loc_331: ; 1111111001 -273F:189F E8 6503 call read_bit -273F:18A2 74 03 jz loc_332 ; Jump if zero -273F:18A4 EB 04 jmp short loc_333 ; (18AA) -273F:18A6 90 db 90h -273F:18A7 loc_332: ; 11111110010 -273F:18A7 B0 78 mov al,78h ; 'x' -273F:18A9 C3 retn -273F:18AA loc_333: ; 11111110011 -273F:18AA B0 6A mov al,6Ah ; 'j' -273F:18AC C3 retn -273F:18AD loc_334: ; 111111101 -273F:18AD E8 64F5 call read_bit -273F:18B0 74 03 jz loc_335 ; Jump if zero -273F:18B2 EB 04 jmp short loc_336 ; (18B8) -273F:18B4 90 db 90h -273F:18B5 loc_335: ; 1111111010 -273F:18B5 B0 AC mov al,0ACh -273F:18B7 C3 retn -273F:18B8 loc_336: ; 1111111011 -273F:18B8 E8 64EA call read_bit -273F:18BB 74 03 jz loc_337 ; Jump if zero -273F:18BD EB 04 jmp short loc_338 ; (18C3) -273F:18BF 90 db 90h -273F:18C0 loc_337: ; 11111110110 -273F:18C0 B0 A3 mov al,0A3h -273F:18C2 C3 retn -273F:18C3 loc_338: ; 11111110111 -273F:18C3 E8 64DF call read_bit -273F:18C6 74 03 jz loc_339 ; Jump if zero -273F:18C8 EB 04 jmp short loc_340 ; (18CE) -273F:18CA 90 db 90h -273F:18CB loc_339: ; 111111101110 -273F:18CB B0 50 mov al,50h ; 'P' -273F:18CD C3 retn -273F:18CE loc_340: ; 111111101111 -273F:18CE B0 55 mov al,55h ; 'U' -273F:18D0 C3 retn -273F:18D1 loc_341: ; 11111111 -273F:18D1 E8 64D1 call read_bit -273F:18D4 74 03 jz loc_342 ; Jump if zero -273F:18D6 EB 46 jmp short loc_355 ; (191E) -273F:18D8 90 db 90h -273F:18D9 loc_342: ; 111111110 -273F:18D9 E8 64C9 call read_bit -273F:18DC 74 03 jz loc_343 ; Jump if zero -273F:18DE EB 0F jmp short loc_346 ; (18EF) -273F:18E0 90 db 90h -273F:18E1 loc_343: ; 1111111100 -273F:18E1 E8 64C1 call read_bit -273F:18E4 74 03 jz loc_344 ; Jump if zero -273F:18E6 EB 04 jmp short loc_345 ; (18EC) -273F:18E8 90 db 90h -273F:18E9 loc_344: ; 11111111000 -273F:18E9 B0 71 mov al,71h ; 'q' -273F:18EB C3 retn -273F:18EC loc_345: ; 11111111001 -273F:18EC B0 AD mov al,0ADh -273F:18EE C3 retn -273F:18EF loc_346: ; 1111111101 -273F:18EF E8 64B3 call read_bit -273F:18F2 74 03 jz loc_347 ; Jump if zero -273F:18F4 EB 0F jmp short loc_350 ; (1905) -273F:18F6 90 db 90h -273F:18F7 loc_347: ; 11111111010 -273F:18F7 E8 64AB call read_bit -273F:18FA 74 03 jz loc_348 ; Jump if zero -273F:18FC EB 04 jmp short loc_349 ; (1902) -273F:18FE 90 db 90h -273F:18FF loc_348: ; 111111110100 -273F:18FF B0 46 mov al,46h ; 'F' -273F:1901 C3 retn -273F:1902 loc_349: ; 111111110101 -273F:1902 B0 31 mov al,31h ; '1' -273F:1904 C3 retn -273F:1905 loc_350: ; 11111111011 -273F:1905 E8 649D call read_bit -273F:1908 74 03 jz loc_351 ; Jump if zero -273F:190A EB 04 jmp short loc_352 ; (1910) -273F:190C 90 db 90h -273F:190D loc_351: ; 111111110110 -273F:190D B0 AF mov al,0AFh -273F:190F C3 retn -273F:1910 loc_352: ; 111111110111 -273F:1910 E8 6492 call read_bit -273F:1913 74 03 jz loc_353 ; Jump if zero -273F:1915 EB 04 jmp short loc_354 ; (191B) -273F:1917 90 db 90h -273F:1918 loc_353: ; 1111111101110 -273F:1918 B0 3B mov al,3Bh ; ';' -273F:191A C3 retn -273F:191B loc_354: ; 1111111101111 -273F:191B B0 7A mov al,7Ah ; 'z' -273F:191D C3 retn -273F:191E loc_355: ; 111111111 -273F:191E E8 6484 call read_bit -273F:1921 74 03 jz loc_356 ; Jump if zero -273F:1923 EB 46 jmp short loc_369 ; (196B) -273F:1925 90 nop -273F:1926 loc_356: ; 1111111110 -273F:1926 E8 647C call read_bit -273F:1929 74 03 jz loc_357 ; Jump if zero -273F:192B EB 1A jmp short loc_362 ; (1947) -273F:192D 90 db 90h -273F:192E loc_357: ; 11111111100 -273F:192E E8 6474 call read_bit -273F:1931 74 03 jz loc_358 ; Jump if zero -273F:1933 EB 04 jmp short loc_359 ; (1939) -273F:1935 90 db 90h -273F:1936 loc_358: ; 111111111000 -273F:1936 B0 A5 mov al,0A5h -273F:1938 C3 retn -273F:1939 loc_359: ; 111111111001 -273F:1939 E8 6469 call read_bit -273F:193C 74 03 jz loc_360 ; Jump if zero -273F:193E EB 04 jmp short loc_361 ; (1944) -273F:1940 90 db 90h -273F:1941 loc_360: ; 1111111110010 -273F:1941 B0 32 mov al,32h ; '2' -273F:1943 C3 retn -273F:1944 loc_361: ; 1111111110011 -273F:1944 B0 B0 mov al,0B0h -273F:1946 C3 retn -273F:1947 loc_362: ; 11111111101 -273F:1947 E8 645B call read_bit -273F:194A 74 03 jz loc_363 ; Jump if zero -273F:194C EB 04 jmp short loc_364 ; (1952) -273F:194E 90 db 90h -273F:194F loc_363: ; 111111111010 -273F:194F B0 4B mov al,4Bh ; 'K' -273F:1951 C3 retn -273F:1952 loc_364: ; 111111111011 -273F:1952 E8 6450 call read_bit -273F:1955 74 03 jz loc_365 ; Jump if zero -273F:1957 EB 04 jmp short loc_366 ; (195D) -273F:1959 90 db 90h -273F:195A loc_365: ; 1111111110110 -273F:195A B0 25 mov al,25h ; '%' -273F:195C C3 retn -273F:195D loc_366: ; 1111111110111 -273F:195D E8 6445 call read_bit -273F:1960 74 03 jz loc_367 ; Jump if zero -273F:1962 EB 04 jmp short loc_368 ; (1968) -273F:1964 90 db 90h -273F:1965 loc_367: ; 11111111101110 -273F:1965 B0 A2 mov al,0A2h -273F:1967 C3 retn -273F:1968 loc_368: ; 11111111101111 -273F:1968 B0 35 mov al,35h ; '5' -273F:196A C3 retn -273F:196B loc_369: ; 1111111111 -273F:196B E8 6437 call read_bit -273F:196E 74 03 jz loc_370 ; Jump if zero -273F:1970 EB 30 jmp short loc_379 ; (19A2) -273F:1972 90 db 90h -273F:1973 loc_370: ; 11111111110 -273F:1973 E8 642F call read_bit -273F:1976 74 03 jz loc_371 ; Jump if zero -273F:1978 EB 0F jmp short loc_374 ; (1989) -273F:197A 90 db 90h -273F:197B loc_371: ; 111111111100 -273F:197B E8 6427 call read_bit -273F:197E 74 03 jz loc_372 ; Jump if zero -273F:1980 EB 04 jmp short loc_373 ; (1986) -273F:1982 90 db 90h -273F:1983 loc_372: ; 1111111111000 -273F:1983 B0 3A mov al,3Ah ; ':' -273F:1985 C3 retn -273F:1986 loc_373: ; 1111111111001 -273F:1986 B0 4A mov al,4Ah ; 'J' -273F:1988 C3 retn -273F:1989 loc_374: ; 111111111101 -273F:1989 E8 6419 call read_bit -273F:198C 74 03 jz loc_375 ; Jump if zero -273F:198E EB 04 jmp short loc_376 ; (1994) -273F:1990 90 db 90h -273F:1991 loc_375: ; 1111111111010 -273F:1991 B0 56 mov al,56h ; 'V' -273F:1993 C3 retn -273F:1994 loc_376: ; 1111111111011 -273F:1994 E8 640E call read_bit -273F:1997 74 03 jz loc_377 ; Jump if zero -273F:1999 EB 04 jmp short loc_378 ; (199F) -273F:199B 90 db 90h -273F:199C loc_377: ; 11111111110110 -273F:199C B0 36 mov al,36h ; '6' -273F:199E C3 retn -273F:199F loc_378: ; 11111111110111 -273F:199F B0 33 mov al,33h ; '3' -273F:19A1 C3 retn -273F:19A2 loc_379: ; 11111111111 -273F:19A2 E8 6400 call read_bit -273F:19A5 74 03 jz loc_380 ; Jump if zero -273F:19A7 EB 25 jmp short loc_387 ; (19CE) -273F:19A9 90 db 90h -273F:19AA loc_380: ; 111111111110 -273F:19AA E8 63F8 call read_bit -273F:19AD 74 03 jz loc_381 ; Jump if zero -273F:19AF EB 04 jmp short loc_382 ; (19B5) -273F:19B1 90 db 90h -273F:19B2 loc_381: ; 1111111111100 -273F:19B2 B0 AB mov al,0ABh -273F:19B4 C3 retn -273F:19B5 loc_382: ; 1111111111101 -273F:19B5 E8 63ED call read_bit -273F:19B8 74 03 jz loc_383 ; Jump if zero -273F:19BA EB 04 jmp short loc_384 ; (19C0) -273F:19BC 90 db 90h -273F:19BD loc_383: ; 11111111111010 -273F:19BD B0 AE mov al,0AEh -273F:19BF C3 retn -273F:19C0 loc_384: ; 11111111111011 -273F:19C0 E8 63E2 call read_bit -273F:19C3 74 03 jz loc_385 ; Jump if zero -273F:19C5 EB 04 jmp short loc_386 ; (19CB) -273F:19C7 90 db 90h -273F:19C8 loc_385: ; 111111111110110 -273F:19C8 B0 30 mov al,30h ; '0' -273F:19CA C3 retn -273F:19CB loc_386: ; 111111111110111 -273F:19CB B0 34 mov al,34h ; '4' -273F:19CD C3 retn -273F:19CE loc_387: ; 111111111111 -273F:19CE E8 63D4 call read_bit -273F:19D1 74 03 jz loc_388 ; Jump if zero -273F:19D3 EB 1A jmp short loc_393 ; (19EF) -273F:19D5 90 db 90h -273F:19D6 loc_388: ; 1111111111110 -273F:19D6 E8 63CC call read_bit -273F:19D9 74 03 jz loc_389 ; Jump if zero -273F:19DB EB 04 jmp short loc_390 ; (19E1) -273F:19DD 90 db 90h -273F:19DE loc_389: ; 11111111111100 -273F:19DE B0 37 mov al,37h ; '7' -273F:19E0 C3 retn -273F:19E1 loc_390: ; 11111111111101 -273F:19E1 E8 63C1 call read_bit -273F:19E4 74 03 jz loc_391 ; Jump if zero -273F:19E6 EB 04 jmp short loc_392 ; (19EC) -273F:19E8 90 db 90h -273F:19E9 loc_391: ; 111111111111010 -273F:19E9 B0 39 mov al,39h ; '9' -273F:19EB C3 retn -273F:19EC loc_392: ; 111111111111011 -273F:19EC B0 22 mov al,22h ; '"' -273F:19EE C3 retn -273F:19EF loc_393: ; 1111111111111 -273F:19EF E8 63B3 call read_bit -273F:19F2 74 03 jz loc_394 ; Jump if zero -273F:19F4 EB 0F jmp short loc_397 ; (1A05) -273F:19F6 90 db 90h -273F:19F7 loc_394: ; 11111111111110 -273F:19F7 E8 63AB call read_bit -273F:19FA 74 03 jz loc_395 ; Jump if zero -273F:19FC EB 04 jmp short loc_396 ; (1A02) -273F:19FE 90 db 90h -273F:19FF loc_395: ; 111111111111100 -273F:19FF B0 38 mov al,38h ; '8' -273F:1A01 C3 retn -273F:1A02 loc_396: ; 111111111111101 -273F:1A02 B0 A7 mov al,0A7h -273F:1A04 C3 retn -273F:1A05 loc_397: ; 11111111111111 -273F:1A05 E8 639D call read_bit -273F:1A08 74 03 jz loc_398 ; Jump if zero -273F:1A0A EB 0F jmp short loc_401 ; (1A1B) -273F:1A0C 90 db 90h -273F:1A0D loc_398: ; 111111111111110 -273F:1A0D E8 6395 call read_bit -273F:1A10 74 03 jz loc_399 ; Jump if zero -273F:1A12 EB 04 jmp short loc_400 ; (1A18) -273F:1A14 90 db 90h -273F:1A15 loc_399: ; 1111111111111100 -273F:1A15 B0 2F mov al,2Fh ; '/' -273F:1A17 C3 retn -273F:1A18 loc_400: ; 1111111111111101 -273F:1A18 B0 51 mov al,51h ; 'Q' -273F:1A1A C3 retn -273F:1A1B loc_401: ; 111111111111111 -273F:1A1B E8 6387 call read_bit -273F:1A1E 74 03 jz loc_402 ; Jump if zero -273F:1A20 EB 0F jmp short loc_405 ; (1A31) -273F:1A22 90 db 90h -273F:1A23 loc_402: ; 1111111111111110 -273F:1A23 E8 637F call read_bit -273F:1A26 74 03 jz loc_403 ; Jump if zero -273F:1A28 EB 04 jmp short loc_404 ; (1A2E) -273F:1A2A 90 db 90h -273F:1A2B loc_403: ; 11111111111111100 -273F:1A2B B0 A8 mov al,0A8h -273F:1A2D C3 retn -273F:1A2E loc_404: ; 11111111111111101 -273F:1A2E B0 28 mov al,28h ; '(' -273F:1A30 C3 retn -273F:1A31 loc_405: ; 1111111111111111 -273F:1A31 E8 6371 call read_bit -273F:1A34 74 03 jz loc_406 ; Jump if zero -273F:1A36 EB 0F jmp short loc_409 ; (1A47) -273F:1A38 90 db 90h -273F:1A39 loc_406: ; 11111111111111110 -273F:1A39 E8 6369 call read_bit -273F:1A3C 74 03 jz loc_407 ; Jump if zero -273F:1A3E EB 04 jmp short loc_408 ; (1A44) -273F:1A40 90 db 90h -273F:1A41 loc_407: ; 111111111111111100 -273F:1A41 B0 29 mov al,29h ; ')' -273F:1A43 C3 retn -273F:1A44 loc_408: ; 111111111111111101 -273F:1A44 B0 99 mov al,99h -273F:1A46 C3 retn -273F:1A47 loc_409: ; 11111111111111111 -273F:1A47 B0 A9 mov al,0A9h -273F:1A49 C3 retn - decode_character endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:631D - ; si=Character name, di = speech text, talk_character_id = character hotspot Id - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_dialog_init proc near -273F:1A4A 89 3E B9F9 mov talk_speech_ptr, di -273F:1A4E BD 0080 mov bp, 80h -273F:1A51 A1 4CF0 mov ax, font2_segment -273F:1A54 8E C0 mov es, ax -273F:1A56 56 push si -273F:1A57 33 D2 xor dx, dx ; Zero register -273F:1A59 B1 03 mov cl, 3 -273F:1A5B loc_410: ; xref 273F:1A68, 1A6D -273F:1A5B úAC lodsb ; String [si] to al -273F:1A5C 2C 20 sub al,20h ; ' ' -273F:1A5E 72 0F jc loc_411 ; Jump if carry Set -273F:1A60 98 cbw ; Convrt byte to word -273F:1A61 D3 E0 shl ax,cl ; Convert to font data offset -273F:1A63 8B D8 mov bx,ax -273F:1A65 26: 02 17 add dl,es:[bx] ; Increase width -273F:1A68 73 F1 jnc loc_410 ; Jump if carry=0 -273F:1A6A 80 C6 01 add dh,1 -273F:1A6D EB EC jmp short loc_410 ; (1A5B) -; dx = size of the character name? -273F:1A6F loc_411: ; xref 273F:1A5E -273F:1A6F B8 0080 mov ax,80h -273F:1A72 2B C2 sub ax,dx -273F:1A74 D1 E8 shr ax,1 ; Calculate centering name? -273F:1A76 50 push ax -273F:1A77 úBB B9F9 mov bx, offset talk_speech_ptr -273F:1A7A E8 00B3 call word_wrap_string -273F:1A7D A1 4CE6 mov ax, talk_dialog_buffer -273F:1A80 A3 B9FF mov talk_buffer_segment, ax -273F:1A83 8E C0 mov es, ax -273F:1A85 BF 0000 mov di,0 -273F:1A88 89 3E BA01 mov talk_buffer_offset, di -273F:1A8C 8B 2E B9FD mov bp, data_1122 -273F:1A90 57 push di -273F:1A91 FF 16 0756 call [draw_talk_dialog_proc] - -273F:1A95 A1 983B mov ax, talk_character_id -273F:1A98 E8 F24F call get_room_resource_pointer2 -273F:1A9B 8B 44 19 mov ax, [si+HS_WIDTH_COPY] ; Figure out hotspot X center -273F:1A9E D1 E8 shr ax,1 -273F:1AA0 03 44 0D add ax, [si+HS_X] -273F:1AA3 2D 0080 sub ax, 80h ; Remove 80h offset -273F:1AA6 72 19 jc loc_412 ; Character off-screen -273F:1AA8 8B 1E 11C4 mov bx, talk_dialog_width -273F:1AAC D1 EB shr bx,1 ; ax=X start for centering -273F:1AAE 2B C3 sub ax,bx ; dialog on character -273F:1AB0 72 0F jc loc_412 -273F:1AB2 BB 0136 mov bx, 310 -273F:1AB5 2B 1E 11C4 sub bx, talk_dialog_width -273F:1AB9 3B C3 cmp ax, bx ; Too far along horizontally? -273F:1ABB 72 06 jb loc_413 -273F:1ABD 8B C3 mov ax,bx ; Yes, so limit x start -273F:1ABF EB 02 jmp short loc_413 -273F:1AC1 loc_412: -273F:1AC1 33 C0 xor ax,ax -273F:1AC3 loc_413: -273F:1AC3 A3 11C2 mov talk_dialog_left, ax ; Set the x start -273F:1AC6 5F pop di -273F:1AC7 8B 36 076E mov si, data_571 -273F:1ACB 8A 7C 04 mov bh, [si+4] -273F:1ACE 8A 44 05 mov al, [si+5] -273F:1AD1 A2 BA06 mov data_ba06, al -273F:1AD4 58 pop ax -273F:1AD5 5E pop si -273F:1AD6 80 3E 0742 01 cmp video_style, VIDEO_STYLE_VGA -273F:1ADB 74 2A je loc_414 ; Jump if equal -273F:1ADD 81 C7 0140 add di,140h -273F:1AE1 8B 0E BA01 mov cx, talk_buffer_offset -273F:1AE5 81 C1 03C0 add cx, SCREEN_WIDTH*3 ; 3C0h ? -273F:1AE9 89 0E BA01 mov talk_buffer_offset, cx -273F:1AED 89 0E BA03 mov talk_buffer_offset_2, cx -273F:1AF1 8A C8 mov cl,al -273F:1AF3 80 E1 07 and cl,7 -273F:1AF6 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:1AF8 25 FFFC and ax,0FFFCh -273F:1AFB 03 F8 add di,ax -273F:1AFD BD 0040 mov bp,40h -273F:1B00 C6 06 BA05 05 mov byte ptr ds:data_465e,5 ; (273F:BA05=0) -273F:1B05 EB 19 jmp short loc_415 ; (1B20) -273F:1B07 loc_414: ; xref 273F:1ADB -273F:1B07 03 F8 add di,ax -273F:1B09 81 C7 0280 add di,280h -273F:1B0D 8B 0E BA01 mov cx, talk_buffer_offset -273F:1B11 81 C1 0785 add cx,785h -273F:1B15 89 0E BA01 mov talk_buffer_offset, cx -273F:1B19 89 0E BA03 mov talk_buffer_offset_2, cx -273F:1B1D BD 0080 mov bp,80h -273F:1B20 loc_415: ; xref 273F:1B05 -273F:1B20 89 2E B9FB mov data_b9fb, bp - -; Loop for adding the character name into the dialog -273F:1B24 úAC loc_416: lodsb ; String [si] to al -273F:1B25 2C 20 sub al,20h ; ' ' -273F:1B27 72 06 jc loc_ret_417 ; Jump if carry Set -273F:1B29 FF 16 075A call [display2_character_proc] -273F:1B2D EB F5 jmp short loc_416 ; (1B24) -273F:1B2F loc_ret_417: ; xref 273F:1B27 -273F:1B2F C3 retn - talk_dialog_init endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1A7A, 8980 - ; bx = talk data details record offset - ; di = text to handle - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1B30 word_wrap_string proc near -273F:1B30 8B F7 mov si,di -273F:1B32 C7 47 04 0000 mov word ptr [bx+4],0 -273F:1B37 loc_418: ; xref 273F:1B5C, 1B92 -273F:1B37 ú8B FE mov di,si -273F:1B39 83 47 04 01 add word ptr [bx+4],1 -273F:1B3D BA 0009 mov dx,9 -273F:1B40 loc_419: ; xref 273F:1B8C -273F:1B40 32 ED xor ch,ch ; Zero register -273F:1B42 loc_420: ; xref 273F:1B51, 1B58 -273F:1B42 úAC lodsb ; String [si] to al -273F:1B43 2C 20 sub al,20h ; ' ' -273F:1B45 74 17 jz loc_423 ; Jump if zero -273F:1B47 72 0A jc loc_421 ; Jump if carry Set -273F:1B49 98 cbw ; Convrt byte to word -273F:1B4A D3 E0 shl ax,cl ; Shift w/zeros fill -273F:1B4C 93 xchg bx,ax -273F:1B4D 26: 02 2F add ch,es:[bx] -273F:1B50 93 xchg bx,ax -273F:1B51 EB EF jmp short loc_420 ; (1B42) -273F:1B53 loc_421: ; xref 273F:1B47 -273F:1B53 3C E1 cmp al,0E1h -273F:1B55 75 03 jne loc_422 ; Jump if not equal -273F:1B57 AC lodsb ; String [si] to al -273F:1B58 EB E8 jmp short loc_420 ; (1B42) -273F:1B5A loc_422: ; xref 273F:1B55 -273F:1B5A 3C ED cmp al,0EDh -273F:1B5C 74 D9 je loc_418 ; Jump if equal -273F:1B5E loc_423: ; xref 273F:1B45 -273F:1B5E 02 D5 add dl,ch -273F:1B60 73 03 jnc loc_424 ; Jump if carry=0 -273F:1B62 80 C6 01 add dh,1 -273F:1B65 loc_424: ; xref 273F:1B60 -273F:1B65 3B EA cmp bp,dx -273F:1B67 74 1D je loc_426 ; Jump if equal -273F:1B69 73 0F jnc loc_425 ; Jump if carry=0 -273F:1B6B C6 45 FF 0D mov byte ptr [di-1],0Dh -273F:1B6F 8A D5 mov dl,ch -273F:1B71 80 C2 09 add dl,9 -273F:1B74 32 F6 xor dh,dh ; Zero register -273F:1B76 83 47 04 01 add word ptr [bx+4],1 -273F:1B7A loc_425: ; xref 273F:1B69 -273F:1B7A 8B FE mov di,si -273F:1B7C 26: 02 16 0000 add dl,es:data_1443e ; (8B57:0000=0) -273F:1B81 73 03 jnc loc_426 ; Jump if carry=0 -273F:1B83 80 C6 01 add dh,1 -273F:1B86 loc_426: ; xref 273F:1B67, 1B81 -273F:1B86 0A C0 or al,al ; Zero ? -273F:1B88 75 0A jnz loc_427 ; Jump if not zero -273F:1B8A 3B D5 cmp dx,bp -273F:1B8C 72 B2 jb loc_419 ; Jump if below -273F:1B8E C6 44 FF 0D mov byte ptr [si-1],0Dh ; Add a carriage return -273F:1B92 EB A3 jmp short loc_418 -273F:1B94 loc_427: -273F:1B94 8B 47 04 mov ax,[bx+4] -273F:1B97 C3 retn - word_wrap_string endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:634C, 899B, 8E28 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1B98 sub_51 proc near -273F:1B98 8B 37 mov si,[bx] -273F:1B9A 8B 7F 08 mov di,[bx+8] -273F:1B9D 8A 4F 0C mov cl,[bx+0Ch] -273F:1BA0 8B 47 06 mov ax,[bx+6] -273F:1BA3 8E C0 mov es,ax -273F:1BA5 53 push bx -273F:1BA6 8B 6F 02 mov bp, [bx+2] -273F:1BA9 8A 7F 0D mov bh, [bx+0Dh] -273F:1BAC loc_428: ; xref 273F:1BCE -273F:1BAC úAC lodsb ; String [si] to al -273F:1BAD 2C 20 sub al,20h ; ' ' -273F:1BAF 74 1F jz loc_430 ; Jump if zero -273F:1BB1 73 17 jnc loc_429 ; Jump if carry=0 -273F:1BB3 3C E1 cmp al,0E1h -273F:1BB5 72 29 jb loc_432 ; Jump if below -273F:1BB7 5B pop bx -273F:1BB8 8B 7F 0A mov di,[bx+0Ah] -273F:1BBB B8 0007 mov ax,7 -273F:1BBE F7 67 02 mul word ptr [bx+2] ; dx:ax = data * ax -273F:1BC1 03 F8 add di,ax -273F:1BC3 89 7F 0A mov [bx+0Ah], di -273F:1BC6 B1 05 mov cl, 5 -273F:1BC8 EB 0B jmp short loc_431 ; (1BD5) -273F:1BCA loc_429: ; xref 273F:1BB1 -273F:1BCA FF 16 075A call [display2_character_proc] -273F:1BCE EB DC jmp short loc_428 ; (1BAC) -273F:1BD0 loc_430: ; xref 273F:1BAF -273F:1BD0 FF 16 075A call [display2_character_proc] -273F:1BD4 5B pop bx -273F:1BD5 loc_431: ; xref 273F:1BC8 -273F:1BD5 89 7F 08 mov [bx+8],di -273F:1BD8 88 4F 0C mov [bx+0Ch],cl -273F:1BDB 89 37 mov [bx],si -273F:1BDD 33 C0 xor ax,ax ; Zero register -273F:1BDF C3 retn -273F:1BE0 loc_432: ; xref 273F:1BB5 -273F:1BE0 5B pop bx -273F:1BE1 0D FFFF or ax,0FFFFh -273F:1BE4 C3 retn - sub_51 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:59D2, 59F6, 5A2E, 5A68 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1BE5 sub_52 proc near -273F:1BE5 8B 0E 074C mov cx, menubar_block_size -273F:1BE9 F7 E1 mul cx ; dx:ax = reg * ax -273F:1BEB 8B F8 mov di,ax -273F:1BED A1 074A mov ax, char_width -273F:1BF0 F7 E3 mul bx ; dx:ax = reg * ax -273F:1BF2 03 F8 add di,ax -273F:1BF4 A1 4CE4 mov ax, data_segment2 -273F:1BF7 8E C0 mov es,ax -273F:1BF9 8B 2E 0748 mov bp, screen_width -273F:1BFD 32 C9 xor cl,cl ; Zero register -273F:1BFF 8B 1E 076E mov bx, data_571 -273F:1C03 8A 7F 05 mov bh,[bx+5] -273F:1C06 loc_433: ; xref 273F:1C0F -273F:1C06 úAC lodsb ; String [si] to al -273F:1C07 2C 20 sub al,20h ; ' ' -273F:1C09 72 06 jc loc_ret_434 ; Jump if carry Set -273F:1C0B FF 16 075A call [display2_character_proc] -273F:1C0F EB F5 jmp short loc_433 ; (1C06) - -273F:1C11 loc_ret_434: ; xref 273F:1C09 -273F:1C11 C3 retn - sub_52 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:010A, 93EC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_check_cursors proc near - - assume ds:data_seg -273F:1C12 A1 11E1 mov ax, cursor_index -273F:1C15 3D 0002 cmp ax, CURSOR_TIME_UP ; Check if it's in the clock animation -273F:1C18 72 24 jb loc_437 ; No -273F:1C1A 3D 0009 cmp ax, CURSOR_TIME_UP_LEFT -273F:1C1D 73 1F jae loc_437 ; Too high -273F:1C1F 80 3E 6D52 01 cmp player_action_state, CHAR_ACTION_START_WALK -273F:1C24 74 07 je loc_435 ; Jump if equal -273F:1C26 80 3E 6D52 04 cmp player_action_state, CHAR_ACTION_PROCESSING_PATH -273F:1C2B 75 11 jne loc_437 ; Jump if not equal -273F:1C2D loc_435: ; xref 273F:1C24 -273F:1C2D 05 0001 add ax,1 -273F:1C30 3D 000A cmp ax, CURSOR_CROSS ; Passed end of clock sequence? -273F:1C33 72 03 jb loc_436 ; Jump if below -273F:1C35 A1 0002 mov ax, CURSOR_TIME_UP ; Set clock back to start -273F:1C38 loc_436: -273F:1C38 A2 11E3 mov cursor_index_new, al -273F:1C3B E9 0180 jmp loc_451 - -273F:1C3E loc_437: -273F:1C3E E8 0374 call talk_dialog_mouse_check -273F:1C41 75 08 jnz loc_438 ; Not in dialog -273F:1C43 C6 06 11E3 10 mov cursor_index_new, CURSOR_TALK ; Show talk cursor -273F:1C48 E9 0173 jmp loc_451 - -273F:1C4B loc_438: ; xref 273F:1C41 -273F:1C4B 80 3E 9834 04 cmp cursor_state, CURSORSTATE_BUMPED -273F:1C50 74 5B je loc_440 ; Jump if equal -273F:1C52 80 3E 9834 03 cmp cursor_state, CURSORSTATE_TALK -273F:1C57 74 5C je loc_441 ; Jump if equal - -; Check for cursor in menubar area - -273F:1C59 83 3E 11D8 08 cmp mouse_y2, MENUBAR_Y_SIZE -273F:1C5E 73 10 jae loc_439 ; Jump if above or = -273F:1C60 F7 06 BA25 FFFF test old_room_number, 0FFFFh -273F:1C66 75 55 jnz loc_ret_442 ; Jump if not zero -273F:1C68 C6 06 11E3 11 mov cursor_index_new, CURSOR_MENUBAR_AREA -273F:1C6D E9 014E jmp loc_451 ; (1DBE) -273F:1C70 loc_439: ; xref 273F:1C5E -273F:1C70 F6 06 9834 FF test cursor_state, 0FFh -273F:1C75 74 47 jz loc_443 ; Jump if zero -273F:1C77 C7 06 1924 0000 mov hotspot_id, 0 -273F:1C7D C6 06 11E3 0F mov cursor_index_new, CURSOR_CAMERA -273F:1C82 8B 16 9832 mov dx, room_number -273F:1C86 úBF 623E mov di, offset hotspot_table_3 -273F:1C89 BD 2710 mov bp, START_EXIT_HOTSPOT_ID -273F:1C8C E8 01BC call room_check_hotspots -273F:1C8F úBF 63B1 mov di, offset hotspot_table_4 -273F:1C92 BD 7530 mov bp, START_NONVISUAL_HOTSPOT_ID -273F:1C95 E8 01B3 call room_check_hotspots -273F:1C98 úBF 5D98 mov di, offset hotspot_table_2 -273F:1C9B BD 03E8 mov bp, PLAYER_HOTSPOT_ID -273F:1C9E E8 01AA call room_check_hotspots -273F:1CA1 úBF 5EB8 mov di, offset hotspot_table_5 -273F:1CA4 BD 0408 mov bp, FIRST_OBJECT_HOTSPOT_ID -273F:1CA7 E8 01A1 call room_check_hotspots -273F:1CAA E9 0111 jmp loc_451 ; (1DBE) -273F:1CAD loc_440: ; xref 273F:1C50 -273F:1CAD C6 06 11E3 0F mov cursor_index_new, CURSOR_CAMERA -273F:1CB2 E9 0109 jmp loc_451 ; (1DBE) -273F:1CB5 loc_441: ; xref 273F:1C57 -273F:1CB5 C6 06 11E3 00 mov cursor_index_new, CURSOR_ARROW -273F:1CBA E9 0101 jmp loc_451 ; (1DBE) - -273F:1CBD loc_ret_442: ; xref 273F:1C66 -273F:1CBD C3 retn -273F:1CBE loc_443: ; xref 273F:1C75 -273F:1CBE C6 06 11E3 00 mov cursor_index_new, CURSOR_ARROW -273F:1CC3 C7 06 1924 0000 mov hotspot_id, 0 -273F:1CC9 C7 06 11E6 0000 mov hotspot_name_id, 0 -273F:1CCF 8B 16 9832 mov dx, room_number -273F:1CD3 úBF 623E mov di, offset hotspot_table_3 -273F:1CD6 BD 2710 mov bp, START_EXIT_HOTSPOT_ID -273F:1CD9 E8 016F call room_check_hotspots -273F:1CDC úBF 5D98 mov di, offset hotspot_table_2 -273F:1CDF BD 03E8 mov bp, PLAYER_HOTSPOT_ID -273F:1CE2 E8 0166 call room_check_hotspots -273F:1CE5 úBF 63B1 mov di, offset hotspot_table_4 -273F:1CE8 BD 7530 mov bp, START_NONVISUAL_HOTSPOT_ID -273F:1CEB E8 015D call room_check_hotspots -273F:1CEE úBF 5EB8 mov di, offset hotspot_table_5 -273F:1CF1 BD 0408 mov bp, FIRST_OBJECT_HOTSPOT_ID -273F:1CF4 E8 0154 call room_check_hotspots -273F:1CF7 F7 06 1924 FFFF test hotspot_id, 0FFFFh -273F:1CFD 74 05 jz loc_444 ; Not on hotspot -273F:1CFF C6 06 11E3 0A mov cursor_index_new, CURSOR_CROSS -273F:1D04 loc_444: ; xref 273F:1CFD -273F:1D04 A1 11E6 mov ax, hotspot_name_id -273F:1D07 3B 06 11E4 cmp ax, hotspot_name_id2 -273F:1D0B 74 36 je loc_446 ; Jump if equal -273F:1D0D A3 11E4 mov hotspot_name_id2, ax -273F:1D10 E8 52F2 call menubar_clear_image -273F:1D13 A1 11E4 mov ax, hotspot_name_id2 -273F:1D16 0B C0 or ax,ax ; Zero ? -273F:1D18 74 29 jz loc_446 ; Jump if zero -273F:1D1A BF 4B43 mov di, offset hotspot_name -273F:1D1D E8 601A call decode_string -273F:1D20 8B 36 076E mov si, data_571 -273F:1D24 8A 7C 05 mov bh,[si+5] -273F:1D27 úBE 4B43 mov si,offset hotspot_name -273F:1D2A BF 0000 mov di,0 -273F:1D2D B1 04 mov cl,4 -273F:1D2F 8B 2E 0748 mov bp, screen_width -273F:1D33 A1 4CE4 mov ax, data_segment2 -273F:1D36 8E C0 mov es,ax -273F:1D38 loc_445: ; xref 273F:1D41 -273F:1D38 úAC lodsb ; String [si] to al -273F:1D39 2C 20 sub al,20h ; ' ' -273F:1D3B 72 06 jc loc_446 ; Jump if carry Set -273F:1D3D FF 16 075A call [display2_character_proc] -273F:1D41 EB F5 jmp short loc_445 ; (1D38) -273F:1D43 loc_446: ; xref 273F:1D0B, 1D18, 1D3B -273F:1D43 C7 06 1920 0000 mov room_exit_hotspot_id, 0 -273F:1D49 C7 06 1922 0000 mov dest_room_num, 0 -273F:1D4F 8B 1E 9832 mov bx, room_number -273F:1D53 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:1D55 8B B7 2F61 mov si, room_exits_table[bx] -273F:1D59 0B F6 or si,si ; Zero ? -273F:1D5B 74 61 jz loc_451 ; Jump if zero -273F:1D5D 8B 1E 11D6 mov bx, mouse_x2 -273F:1D61 81 C3 0080 add bx, 80h -273F:1D65 8B 16 11D8 mov dx, mouse_y2 -273F:1D69 81 C2 0080 add dx,80h -273F:1D6D loc_447: ; xref 273F:1D89 -273F:1D6D ú8B 04 mov ax,[si] -273F:1D6F 0B C0 or ax,ax ; Record present? -273F:1D71 74 4B jz loc_451 ; If no, exit loop -273F:1D73 3B C3 cmp ax,bx -273F:1D75 73 0F jae loc_448 ; Jump if above or = -273F:1D77 3B 5C 02 cmp bx,[si+ROOMEXIT_X_END] -273F:1D7A 73 0A jae loc_448 ; Jump if above or = -273F:1D7C 3B 54 04 cmp dx,[si+ROOMEXIT_Y_START] -273F:1D7F 72 05 jb loc_448 ; Jump if below -273F:1D81 3B 54 06 cmp dx,[si+ROOMEXIT_Y_END] -273F:1D84 72 05 jb loc_449 ; Jump if below -273F:1D86 loc_448: -273F:1D86 83 C6 0E add si, ROOMEXIT_RECORD_SIZE ; Move to next record -273F:1D89 EB E2 jmp short loc_447 -273F:1D8B loc_449: ; xref 273F:1D84 -273F:1D8B 8B 44 0A mov ax,[si+ROOMEXIT_HOTSPOT_ID] ; Get asssociated hotspot Id -273F:1D8E 0B C0 or ax,ax ; Is there one? -273F:1D90 74 0D jz loc_450 ; No, so allow exit -273F:1D92 56 push si -273F:1D93 E8 5458 call room_exit_hs_get_pointer -273F:1D96 5F pop di -273F:1D97 87 F7 xchg si,di -273F:1D99 F6 45 0C FF test byte ptr [di+REHS_EXIT_BLOCKED],0FFh ; Is exit blocked? -273F:1D9D 75 1F jnz loc_451 ; Jump if yes -273F:1D9F loc_450: -273F:1D9F 8B 44 0A mov ax,[si+ROOMEXIT_HOTSPOT_ID] -273F:1DA2 A3 1920 mov room_exit_hotspot_id, ax -273F:1DA5 8B 44 0C mov ax,[si+ROOMEXIT_DEST_ROOM] -273F:1DA8 A3 1922 mov dest_room_num, ax -273F:1DAB 8B 44 08 mov ax,[si+ROOMEXIT_CURSOR_NUM] -273F:1DAE A2 11E3 mov cursor_index_new, al -273F:1DB1 F7 06 1924 FFFF test hotspot_id, 0FFFFh -273F:1DB7 74 05 jz loc_451 ; Jump if zero -273F:1DB9 80 06 11E3 07 add cursor_index_new, CURSOR_ARROW_UP2-CURSOR_ARROW_UP - ; Change standard arrow to cross arrow -273F:1DBE loc_451: ; xref 273F:1C3B, 1C48, 1C6D, 1CAA - ; 1CB2, 1CBA, 1D5B, 1D71 - ; 1D9D, 1DB7 -273F:1DBE A0 11E3 mov al, cursor_index_new -273F:1DC1 3A 06 11E1 cmp al, cursor_index -273F:1DC5 74 15 je loc_ret_453 ; Jump if equal -273F:1DC7 A2 11E1 mov cursor_index, al -273F:1DCA C6 06 11DF 00 mov cursor_centroid, 0 -273F:1DCF 3C 0A cmp al, CURSOR_CROSS -273F:1DD1 75 05 jne loc_452 ; Jump if not equal -273F:1DD3 C6 06 11DF 07 mov cursor_centroid, 7 -273F:1DD8 loc_452: ; xref 273F:1DD1 -273F:1DD8 FF 16 075E call word ptr [show_cursor_proc] - -273F:1DDC loc_ret_453: ; xref 273F:1DC5, 1E50 -273F:1DDC C3 retn - - room_check_cursors endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:1DDD C3 retn - ;* No entry point to code -273F:1DDE A1 11D8 mov ax, mouse_y2 -273F:1DE1 3D 0008 cmp ax,8 -273F:1DE4 72 18 jb loc_454 ; Jump if below -273F:1DE6 8A 1E CF09 mov bl, talk_line_num -273F:1DEA 80 FB 02 cmp bl,2 -273F:1DED 72 15 jb loc_455 ; Jump if below -273F:1DEF 80 C3 01 add bl,1 -273F:1DF2 32 FF xor bh,bh ; Zero register -273F:1DF4 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:1DF6 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:1DF8 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:1DFA 3B C3 cmp ax,bx -273F:1DFC 73 06 jae loc_455 ; Jump if above or = -273F:1DFE loc_454: ; xref 273F:1DE4 -273F:1DFE C6 06 11E3 00 mov byte ptr ds:[11E3h],0 ; (273F:11E3=74h) -273F:1E03 C3 retn -273F:1E04 loc_455: -273F:1E04 F6 06 9837 FF test talk_dialog_active, 0FFh -273F:1E09 74 3A jz loc_457 ; Jump if zero -273F:1E0B A1 11D6 mov ax, mouse_x2 -273F:1E0E 3B 06 11C2 cmp ax, talk_dialog_left -273F:1E12 72 31 jb loc_457 ; Jump if below -273F:1E14 2B 06 11C2 sub ax, talk_dialog_left -273F:1E18 3B 06 11C4 cmp ax, talk_dialog_width -273F:1E1C 73 27 jae loc_457 ; Jump if above or = -273F:1E1E 80 3E CF08 03 cmp talk_state, 3 -273F:1E23 74 07 je loc_456 ; Jump if equal -273F:1E25 80 3E CF08 04 cmp talk_state, 4 -273F:1E2A 75 19 jne loc_457 ; Jump if not equal -273F:1E2C loc_456: ; xref 273F:1E23 -273F:1E2C A1 11D8 mov ax, mouse_y2 -273F:1E2F 3B 06 11C0 cmp ax, talk_dialog_top -273F:1E33 72 10 jb loc_457 ; Jump if below -273F:1E35 2B 06 11C0 sub ax, talk_dialog_top -273F:1E39 3B 06 11C6 cmp ax, talk_dialog_height -273F:1E3D 73 06 jae loc_457 ; Jump if above or = -273F:1E3F C6 06 11E3 10 mov byte ptr ds:[11E3h],10h ; (273F:11E3=74h) -273F:1E44 C3 retn -273F:1E45 loc_457: ; xref 273F:1E09, 1E12, 1E1C, 1E2A - ; 1E33, 1E3D -273F:1E45 C6 06 11E3 16 mov byte ptr ds:[11E3h],16h ; (273F:11E3=74h) -273F:1E4A C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1C8C, 1C95, 1C9E, 1CA7, 1CD9, 1CE2, 1CEB - ; 1CF4 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1E4B room_check_hotspots proc near -273F:1E4B ú8B 35 mov si,[di] ; Get data ptr -273F:1E4D 83 FE FF cmp si,0FFFFh ; Reached end of list? -273F:1E50 74 8A je loc_ret_453 ; If yes, then exit -273F:1E52 39 54 06 cmp [si+HS_ROOM_NUM], dx ; Entry in same room? -273F:1E55 75 4F jne loc_463 ; No, so go move to next - -273F:1E57 F6 44 03 80 test byte ptr [si+HS_FLAGS1], HOTSPOTFLAG_HIGHLIGHTED -273F:1E5B 75 06 jnz loc_459 ; Jump if not zero -273F:1E5D F6 44 03 40 test byte ptr [si+HS_FLAGS1], HOTSPOTFLAG_SKIP -273F:1E61 75 43 jnz loc_463 -273F:1E63 loc_459: -273F:1E63 F6 44 03 20 test byte ptr [si+HS_FLAGS1], HOTSPOTFLAG_20 -273F:1E67 75 3D jnz loc_463 ; Jump if not zero -273F:1E69 81 FD 0409 cmp bp,409h -273F:1E6D 73 05 jae loc_460 ; Jump if above or = -273F:1E6F E8 293C call room_check_x_extents -273F:1E72 75 32 jnz loc_463 ; Jump if not zero -273F:1E74 loc_460: ; xref 273F:1E6D -273F:1E74 úBB 2A01 mov bx,offset hotspot_table -273F:1E77 loc_461: ; xref 273F:1E84 -273F:1E77 ú8B 07 mov ax,[bx] -273F:1E79 0B C0 or ax,ax ; Zero ? -273F:1E7B 74 31 jz loc_464 ; Jump if zero -273F:1E7D 3B C5 cmp ax,bp -273F:1E7F 74 05 je loc_462 ; Jump if equal -273F:1E81 83 C3 0A add bx, HOTSPOT_TABLE_ENTRY_SIZE -273F:1E84 EB F1 jmp short loc_461 ; Check next entry -273F:1E86 loc_462: - -273F:1E86 A1 11D6 mov ax, mouse_x2 -273F:1E89 05 0080 add ax,80h -273F:1E8C 3B 47 02 cmp ax,[bx+2] -273F:1E8F 72 15 jb loc_463 ; Jump if below -273F:1E91 3B 47 04 cmp ax,[bx+4] -273F:1E94 73 10 jae loc_463 ; Jump if above or = -273F:1E96 A1 11D8 mov ax, mouse_y2 -273F:1E99 05 0080 add ax,80h -273F:1E9C 3B 47 06 cmp ax,[bx+6] -273F:1E9F 72 05 jb loc_463 ; Jump if below -273F:1EA1 3B 47 08 cmp ax,[bx+8] -273F:1EA4 72 30 jb loc_465 ; Jump if below - -273F:1EA6 loc_463: -273F:1EA6 83 C7 09 add di,9 ; Move to next entry -273F:1EA9 83 C5 01 add bp,1 ; Increment result Id -273F:1EAC EB 9D jmp room_check_hotspots - -273F:1EAE loc_464: -273F:1EAE A1 11D6 mov ax, mouse_x2 -273F:1EB1 05 0080 add ax, 80h -273F:1EB4 8B 4C 0D mov cx, [si+HS_X] -273F:1EB7 3B C1 cmp ax, cx -273F:1EB9 72 EB jb loc_463 ; Jump if below -273F:1EBB 03 4C 19 add cx, [si+HS_WIDTH_COPY] -273F:1EBE 3B C8 cmp cx, ax -273F:1EC0 72 E4 jb loc_463 ; Jump if below -273F:1EC2 A1 11D8 mov ax, mouse_y2 -273F:1EC5 05 0080 add ax, 80h -273F:1EC8 8B 4C 0F mov cx, [si+HS_Y] -273F:1ECB 3B C1 cmp ax, cx -273F:1ECD 72 D7 jb loc_463 ; Jump if below -273F:1ECF 03 4C 13 add cx, [si+HS_HEIGHT] -273F:1ED2 3B C8 cmp cx, ax -273F:1ED4 72 D0 jb loc_463 ; Jump if below -273F:1ED6 loc_465: ; xref 273F:1EA4 -273F:1ED6 80 4C 03 80 or byte ptr [si+HS_FLAGS1], HOTSPOTFLAG_HIGHLIGHTED -273F:1EDA 89 2E 1924 mov hotspot_id, bp -273F:1EDE 8B 45 02 mov ax, [di+2] -273F:1EE1 80 E4 1F and ah, 1Fh -273F:1EE4 A3 11E6 mov hotspot_name_id, ax ; Save actions for this hotspot -273F:1EE7 C3 retn - room_check_hotspots endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0785, 94C8, 9DCC, 9DE5, 9DFE, 9E19, 9E33 - ; 9E4D, 9E63, 9E79 - ; cx=horiz, dx=vert, bx=buttons, ax=trigger, si/di=horiz/vert mickeys - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1EE8 mouse_handler proc near -273F:1EE8 50 push ax -273F:1EE9 53 push bx -273F:1EEA 51 push cx -273F:1EEB 52 push dx -273F:1EEC 56 push si -273F:1EED 57 push di -273F:1EEE 55 push bp -273F:1EEF 1E push ds -273F:1EF0 06 push es -273F:1EF1 9C pushf ; Push flags -273F:1EF2 81 F9 027E cmp cx, 638 -273F:1EF6 72 03 jb loc_466 ; Jump if below -273F:1EF8 B9 027D mov cx, 637 -273F:1EFB loc_466: -273F:1EFB D1 E9 shr cx,1 ; Translate horiz 0-637 to 0-318 -273F:1EFD 81 FA 00C8 cmp dx, 200 -273F:1F01 72 03 jb loc_467 ; Jump if below -273F:1F03 BA 00C7 mov dx, 199 -273F:1F06 loc_467: -273F:1F06 FC cld -273F:1F07 B8 31E4 mov ax,data_seg -273F:1F0A 8E D8 mov ds,ax -273F:1F0C 3A 1E 11D5 cmp bl, mouse_buttons ; Check mouse buttons -273F:1F10 74 27 je loc_468 ; Jump if no button change -273F:1F12 88 1E 11D5 mov mouse_buttons, bl ; Save new button status -273F:1F16 0A DB or bl,bl ; Zero ? -273F:1F18 74 1F jz loc_468 ; Jump if no buttons pressed - -273F:1F1A F6 06 11DA FF test mouse_buttons2, 0FFh -273F:1F1F 75 18 jnz loc_468 ; Jump if not zero -273F:1F21 88 1E 11DA mov mouse_buttons2, bl -273F:1F25 89 0E 11DB mov char_dest_x, cx -273F:1F29 81 06 11DB 0080 add char_dest_x, 80h -273F:1F2F 89 16 11DD mov char_dest_y, dx -273F:1F33 81 06 11DD 0080 add char_dest_y, 80h - -273F:1F39 loc_468: ; xref 273F:1F10, 1F18, 1F1F -273F:1F39 89 0E 11D1 mov mouse_x, cx -273F:1F3D 89 16 11D3 mov mouse_y, dx -273F:1F41 F6 06 11D0 06 test menubar_state, 6 ; (31E4:11D0=3) -273F:1F46 75 0C jnz loc_469 ; Jump if not zero -273F:1F48 89 0E 11D6 mov mouse_x2, cx -273F:1F4C 89 16 11D8 mov mouse_y2, dx -273F:1F50 FF 16 075E call word ptr [show_cursor_proc] -273F:1F54 loc_469: ; xref 273F:1F46 -273F:1F54 9D popf ; Pop flags -273F:1F55 07 pop es -273F:1F56 1F pop ds -273F:1F57 5D pop bp -273F:1F58 5F pop di -273F:1F59 5E pop si -273F:1F5A 5A pop dx -273F:1F5B 59 pop cx -273F:1F5C 5B pop bx -273F:1F5D 58 pop ax -273F:1F5E CB retf ; Return far - mouse_handler endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0013, 001D, 70B3, 77EA, 8F5A, 938B, A5B5 - ; A661, A8E3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1F5F show_disk_cursor proc near -273F:1F5F 80 3E 11E1 01 cmp cursor_index, CURSOR_DISK -273F:1F64 74 0E je loc_ret_470 ; Jump if equal -273F:1F66 C6 06 11E1 01 mov cursor_index, CURSOR_DISK -273F:1F6B C6 06 11DF 00 mov cursor_centroid, 0 -273F:1F70 FF 16 075E call word ptr [show_cursor_proc] - -273F:1F74 loc_ret_470: ; xref 273F:1F64, 1F7A -273F:1F74 C3 retn - show_disk_cursor endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00D0, 3D2B, 6D5A, 6E7E, 9342 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1F75 show_arrow_cursor proc near -273F:1F75 80 3E 11E1 00 cmp cursor_index, CURSOR_ARROW -273F:1F7A 74 F8 je loc_ret_470 ; Jump if equal -273F:1F7C C6 06 11E1 00 mov cursor_index, CURSOR_ARROW -273F:1F81 C6 06 11DF 00 mov cursor_centroid, 0 -273F:1F86 FF 16 075E call word ptr [show_cursor_proc] -273F:1F8A C3 retn - show_arrow_cursor endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:40CB, 413F, 5A6F, 5A75, 705E, 88EA, 88F0 - ; 912C, 93E9, 9401 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1F8B mouse_wait proc near -273F:1F8B loc_471: ; xref 273F:1F93 -273F:1F8B E8 F52A call set_vga_palette ; (14B8) -273F:1F8E F6 06 11D5 07 test byte ptr mouse_buttons, 7 -273F:1F93 75 F6 jnz loc_471 ; Mouse button being held down -273F:1F95 C3 retn - mouse_wait endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:40C7, 4142, 5A72, 7061, 70B0, 88ED - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:1F96 pause_for_input proc near -273F:1F96 loc_472: ; xref 273F:1F9C -273F:1F96 B4 06 mov ah,6 -273F:1F98 B2 FF mov dl,0FFh -273F:1F9A CD 21 int 21h ; Read character from STDIN -273F:1F9C 75 F8 jnz loc_472 ; key pressed - -273F:1F9E loc_473: ; xref 273F:1FAB -273F:1F9E E8 F517 call set_vga_palette ; (14B8) -273F:1FA1 E8 757C call check_keypress ; (9520) -273F:1FA4 75 0E jnz loc_ret_474 ; Jump if not zero -273F:1FA6 F6 06 11D5 07 test mouse_buttons, 7 -273F:1FAB 74 F1 jz loc_473 ; No buttons pressed -273F:1FAD C6 06 11DA 00 mov mouse_buttons2, 0 -273F:1FB2 33 C0 xor ax,ax ; Zero register - -273F:1FB4 loc_ret_474: ; xref 273F:1FA4 -273F:1FB4 C3 retn - pause_for_input endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1C3E - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_dialog_mouse_check proc near -273F:1FB5 C6 06 0DB4 00 mov talk_dialog_close_flag, 0 -273F:1FBA F6 06 9837 FF test talk_dialog_active, 0FFh ; Is the dialog active? -273F:1FBF 74 3D jz loc_475 ; Jump if zero -273F:1FC1 F6 06 4B40 FF test data_791, 0FFh -273F:1FC6 75 36 jnz loc_475 ; Jump if not zero -273F:1FC8 81 3E 983F 03E8 cmp data_1090, PLAYER_HOTSPOT_ID -273F:1FCE 75 2E jne loc_475 ; Jump if not equal -273F:1FD0 A1 11D6 mov ax, mouse_x2 -273F:1FD3 3B 06 11C2 cmp ax, talk_dialog_left -273F:1FD7 72 25 jb loc_475 ; Jump if below -273F:1FD9 2B 06 11C2 sub ax, talk_dialog_left -273F:1FDD 3B 06 11C4 cmp ax, talk_dialog_width -273F:1FE1 73 1B jae loc_475 ; Jump if above or = -273F:1FE3 A1 11D8 mov ax, mouse_y2 -273F:1FE6 3B 06 11C0 cmp ax, talk_dialog_top -273F:1FEA 72 12 jb loc_475 ; Jump if below -273F:1FEC 2B 06 11C0 sub ax, talk_dialog_top -273F:1FF0 3B 06 11C6 cmp ax, talk_dialog_height -273F:1FF4 73 08 jae loc_475 ; Jump if above or = -273F:1FF6 C6 06 0DB4 01 mov talk_dialog_close_flag, 1 -273F:1FFB 33 C0 xor ax,ax ; Zero register -273F:1FFD C3 retn - -273F:1FFE loc_475: ; xref 273F:1FBF, 1FC6, 1FCE, 1FD7 - ; 1FE1, 1FEA, 1FF4 -273F:1FFE B0 01 mov al,1 -273F:2000 0B C0 or ax,ax ; Zero ? -273F:2002 C3 retn - talk_dialog_mouse_check endp - -273F:2003 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00E7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:2004 sub_61 proc near -273F:2004 83 3E 9832 1F cmp room_number, ROOMNUM_TOWN_HALL -273F:2009 74 29 je loc_ret_476 ; Jump if equal -273F:200B 83 3E 9832 0E cmp room_number, ROOMNUM_MIDDLE_STREET -273F:2010 74 22 je loc_ret_476 ; Jump if equal -273F:2012 F7 06 BAA9 FFFF test script_val_80, 0FFFFh -273F:2018 74 1A jz loc_ret_476 ; Jump if zero -273F:201A F7 06 BA4F FFFF test script_val_29, 0FFFFh -273F:2020 74 12 jz loc_ret_476 ; Jump if zero -273F:2022 83 2E BA4F 01 sub script_val_29, 1 -273F:2027 75 0B jnz loc_ret_476 ; Jump if not zero -273F:2029 BB 0CB7 mov bx, 0CB7h -273F:202C B9 0002 mov cx,2 -273F:202F 33 D2 xor dx,dx ; Zero register -273F:2031 E8 27FC call add_sequence_delay - -273F:2034 loc_ret_476: ; xref 273F:2009, 2010, 2018, 2020 - ; 2027 -273F:2034 C3 retn - sub_61 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:2035 83 3E BA3B 03 cmp talk_record_index, 3 -273F:203A 73 1A jae loc_ret_477 ; Jump if above or = -273F:203C 83 3E 9832 2D cmp room_number, ROOMNUM_DINING_HALL -273F:2041 75 13 jne loc_ret_477 ; Jump if not equal -273F:2043 F6 06 BA9B FF test byte ptr script_val_73, 0FFh -273F:2048 75 0C jnz loc_ret_477 ; Jump if not zero -273F:204A C7 06 BA17 03E8 mov character_hotspot, PLAYER_HOTSPOT_ID -273F:2050 B8 1E15 mov ax,1E15h -273F:2053 E8 1DDE call sequence_execute - -273F:2056 loc_ret_477: ; xref 273F:203A, 2041, 2048 -273F:2056 C3 retn - -273F:2057 00 db 0 -273F:2058 00 data_233 db 0 ; xref 273F:2DA2, 2DD0, 2DD5, 2E2F - ; 2E7B, 2EB9, 2EE8, 2EED - ; 2F4F -273F:2059 00 data_234 db 0 ; xref 273F:2DA7, 2DE7, 2DEC, 2E3C - ; 2E80, 2EC0, 2EFF, 2F04 - ; 2F5C -273F:205A 00 data_235 db 0 ; xref 273F:2DAC, 2DFE, 2E03, 2E49 - ; 2E85, 2EC7, 2F16, 2F1B - ; 2F69 -273F:205B 00 data_236 db 0 ; xref 273F:2DB1, 2E15, 2E1A, 2E56 - ; 2E8A, 2ECE, 2F2D, 2F32 - ; 2F76 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7BBA, A7AD, A82B - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:205C ega_show_srceen proc near -273F:205C 80 0E 11D0 02 or menubar_state, 2 ; (31E4:11D0=3) -273F:2061 BA 03CE mov dx,3CEh -273F:2064 B8 0805 mov ax,805h -273F:2067 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2068 B8 0007 mov ax,7 -273F:206B EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:206C B0 03 mov al,3 -273F:206E EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 3, data rotate -273F:206F B8 FF08 mov ax,0FF08h -273F:2072 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2073 B2 C4 mov dl,0C4h -273F:2075 A1 0DB2 mov ax, screen_start_seg2 -273F:2078 8E C0 mov es,ax -273F:207A F6 06 4BF0 FF test byte ptr data_794,0FFh ; (31E4:4BF0=0) -273F:207F 74 03 jz loc_478 ; Jump if zero -273F:2081 E8 0F41 call sub_68 ; (2FC5) -273F:2084 loc_478: ; xref 273F:207F -273F:2084 úBB 07DC mov bx, offset display_mask -273F:2087 03 1E 0990 add bx,data_587 ; (31E4:0990=0) -273F:208B B9 060A mov cx,60Ah -273F:208E úBE 0500 mov si,data_12e ; (0000:0500=0) -273F:2091 úBF 0140 mov di,data_1449e ; (A200:0140=0) -273F:2094 loc_479: ; xref 273F:20E2, 20F4 -273F:2094 F6 07 01 test byte ptr [bx],1 -273F:2097 74 3D jz loc_482 ; Jump if zero -273F:2099 56 push si -273F:209A 57 push di -273F:209B 51 push cx -273F:209C 80 27 FE and byte ptr [bx],0FEh -273F:209F 1E push ds -273F:20A0 A1 4CE4 mov ax, data_segment2 -273F:20A3 8E D8 mov ds,ax -273F:20A5 B8 0802 mov ax,802h -273F:20A8 B9 0004 mov cx,4 - -273F:20AB locloop_480: ; xref 273F:20D0 -273F:20AB 51 push cx -273F:20AC 56 push si -273F:20AD 57 push di -273F:20AE EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:20AF B9 0020 mov cx,20h - -273F:20B2 locloop_481: ; xref 273F:20C6 -273F:20B2 A4 movsb ; Mov [si] to es:[di] -273F:20B3 83 C6 03 add si,3 -273F:20B6 A4 movsb ; Mov [si] to es:[di] -273F:20B7 83 C6 03 add si,3 -273F:20BA A4 movsb ; Mov [si] to es:[di] -273F:20BB 83 C6 03 add si,3 -273F:20BE A4 movsb ; Mov [si] to es:[di] -273F:20BF 81 C6 0093 add si,93h -273F:20C3 83 C7 24 add di,24h -273F:20C6 E2 EA loop locloop_481 ; Loop if cx > 0 - -273F:20C8 5F pop di -273F:20C9 5E pop si -273F:20CA 83 C6 01 add si,1 -273F:20CD D0 EC shr ah,1 ; Shift w/zeros fill -273F:20CF 59 pop cx -273F:20D0 E2 D9 loop locloop_480 ; Loop if cx > 0 - -273F:20D2 1F pop ds -273F:20D3 59 pop cx -273F:20D4 5F pop di -273F:20D5 5E pop si -273F:20D6 loc_482: ; xref 273F:2097 -273F:20D6 83 C6 10 add si,10h -273F:20D9 83 C7 04 add di,4 -273F:20DC 83 C3 01 add bx,1 -273F:20DF 80 E9 01 sub cl,1 -273F:20E2 75 B0 jnz loc_479 ; Jump if not zero -273F:20E4 83 C3 08 add bx,8 -273F:20E7 81 C6 1360 add si,1360h -273F:20EB 81 C7 04D8 add di,4D8h -273F:20EF B1 0A mov cl,0Ah -273F:20F1 80 ED 01 sub ch,1 -273F:20F4 75 9E jnz loc_479 ; Jump if not zero -273F:20F6 B8 0F02 mov ax,0F02h -273F:20F9 EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:20FA B2 CE mov dl,0CEh -273F:20FC B8 0005 mov ax,5 -273F:20FF EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2100 B8 0F07 mov ax,0F07h -273F:2103 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:2104 B8 FF08 mov ax,0FF08h -273F:2107 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2108 A1 0DB0 mov ax, screen_start_seg ; Swap screen segment -273F:210B 8B 1E 0DB2 mov bx, screen_start_seg2 -273F:210F 89 1E 0DB0 mov screen_start_seg, bx -273F:2113 A3 0DB2 mov screen_start_seg2, ax -273F:2116 1E push ds -273F:2117 07 pop es -273F:2118 úBE 11E8 mov si,offset data_638 ; (31E4:11E8=0) -273F:211B úBF 12AE mov di,offset data_642 ; (31E4:12AE=0) -273F:211E B9 0063 mov cx,63h -273F:2121 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:2123 C7 06 11EC 0000 mov data_640,0 ; (31E4:11EC=0) -273F:2129 E8 0987 call ega_cursor -273F:212C A0 0DB1 mov al, [screen_start_seg+1] -273F:212F D0 E8 shr al,1 ; Shift w/zeros fill -273F:2131 24 01 and al,1 -273F:2133 B4 05 mov ah,5 -273F:2135 CD 10 int 10h ; Video display ah=functn 05h - ; set display page al -273F:2137 B8 0040 mov ax,40h -273F:213A 8E C0 mov es,ax -273F:213C 26: 8B 16 0063 mov dx,es:video_port ; (0040:0063=3D4h) -273F:2141 80 C2 06 add dl,6 -273F:2144 loc_483: ; xref 273F:2147 -273F:2144 EC in al,dx ; port 3DAh, CGA/EGA vid status - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 85 - -273F:2145 A8 08 test al,8 -273F:2147 74 FB jz loc_483 ; Jump if zero -273F:2149 úBE 12AE mov si,offset data_642 ; (31E4:12AE=0) -273F:214C A1 0DB2 mov ax, screen_start_seg2 -273F:214F 8E C0 mov es,ax -273F:2151 E8 0AD1 call sub_67 ; (2C25) -273F:2154 80 36 0991 01 xor byte ptr data_587+1,1 ; (31E4:0991=0) -273F:2159 80 26 11D0 FD and menubar_state, 0FDh ; (31E4:11D0=3) -273F:215E C3 retn - ega_show_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [fade_out_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_empty_palette proc near - -273F:215F 80 0E 073C 20 or byte ptr ds:[73Ch],20h ; (273F:073C=17h) ' ' -273F:2164 80 26 11D0 CF and menubar_state, 0CFh ; (273F:11D0=56h) -273F:2169 B8 1002 mov ax,1002h -273F:216C 1E push ds -273F:216D 07 pop es -273F:216E úBA 0DB5 mov dx,0DB5h ; (273F:0DB5=0C7h) -273F:2171 CD 10 int 10h ; Video display ah=functn 10h - ; set palette regs from es:dx -273F:2173 C3 retn - - ega_empty_palette endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [fade_in_proc] - ; For EGA cards, don't do a fade-in.. just set the whole palette - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_fade_in proc near -273F:2174 80 26 073C DF and byte ptr ds:[73Ch],0DFh ; (273F:073C=17h) -273F:2179 B8 1002 mov ax,1002h -273F:217C 1E push ds -273F:217D 07 pop es -273F:217E úBA 1457 mov dx,offset unprocessed_vga_palette -273F:2181 CD 10 int 10h ; Video display ah=functn 10h - ; set palette regs from es:dx -273F:2183 C3 retn - ega_fade_in endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - -273F:2184 1E push ds -273F:2185 57 push di -273F:2186 56 push si -273F:2187 98 cbw ; Convrt byte to word -273F:2188 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:218A D1 E0 shl ax,1 ; Shift w/zeros fill -273F:218C D1 E0 shl ax,1 ; Shift w/zeros fill -273F:218E 8B F0 mov si,ax -273F:2190 8B 16 4CF0 mov dx, font2_segment -273F:2194 8E DA mov ds,dx -273F:2196 AC lodsb ; String [si] to al -273F:2197 50 push ax -273F:2198 B5 07 mov ch,7 -273F:219A loc_484: ; xref 273F:2202 -273F:219A AC lodsb ; String [si] to al -273F:219B 8A E0 mov ah,al -273F:219D 32 C0 xor al,al ; Zero register -273F:219F D3 E8 shr ax,cl ; Shift w/zeros fill -273F:21A1 8B D0 mov dx,ax -273F:21A3 F7 D2 not dx -273F:21A5 8A DF mov bl,bh -273F:21A7 D0 EB shr bl,1 ; Shift w/zeros fill -273F:21A9 73 09 jnc loc_485 ; Jump if carry=0 -273F:21AB 26: 08 25 or es:[di],ah -273F:21AE 26: 08 45 04 or es:[di+4],al -273F:21B2 EB 07 jmp short loc_486 ; (21BB) - -273F:21B4 loc_485: ; xref 273F:21A9 -273F:21B4 26: 20 35 and es:[di],dh -273F:21B7 26: 20 55 04 and es:[di+4],dl -273F:21BB loc_486: ; xref 273F:21B2 -273F:21BB D0 EB shr bl,1 ; Shift w/zeros fill -273F:21BD 73 0A jnc loc_487 ; Jump if carry=0 -273F:21BF 26: 08 65 01 or es:[di+1],ah -273F:21C3 26: 08 45 05 or es:[di+5],al -273F:21C7 EB 08 jmp short loc_488 ; (21D1) -273F:21C9 loc_487: ; xref 273F:21BD -273F:21C9 26: 20 75 01 and es:[di+1],dh -273F:21CD 26: 20 55 05 and es:[di+5],dl -273F:21D1 loc_488: ; xref 273F:21C7 -273F:21D1 D0 EB shr bl,1 ; Shift w/zeros fill -273F:21D3 73 0A jnc loc_489 ; Jump if carry=0 -273F:21D5 26: 08 65 02 or es:[di+2],ah -273F:21D9 26: 08 45 06 or es:[di+6],al -273F:21DD EB 08 jmp short loc_490 ; (21E7) -273F:21DF loc_489: ; xref 273F:21D3 -273F:21DF 26: 20 75 02 and es:[di+2],dh -273F:21E3 26: 20 55 06 and es:[di+6],dl -273F:21E7 loc_490: ; xref 273F:21DD -273F:21E7 D0 EB shr bl,1 ; Shift w/zeros fill -273F:21E9 73 0A jnc loc_491 ; Jump if carry=0 -273F:21EB 26: 08 65 03 or es:[di+3],ah -273F:21EF 26: 08 45 07 or es:[di+7],al -273F:21F3 EB 08 jmp short loc_492 ; (21FD) -273F:21F5 loc_491: ; xref 273F:21E9 -273F:21F5 26: 20 75 03 and es:[di+3],dh -273F:21F9 26: 20 55 07 and es:[di+7],dl -273F:21FD loc_492: ; xref 273F:21F3 -273F:21FD 03 FD add di,bp -273F:21FF 80 ED 01 sub ch,1 -273F:2202 75 96 jnz loc_484 ; Jump if not zero -273F:2204 58 pop ax -273F:2205 5E pop si -273F:2206 5F pop di -273F:2207 1F pop ds -273F:2208 02 C8 add cl,al -273F:220A 8A C1 mov al,cl -273F:220C 80 E1 07 and cl,7 -273F:220F 25 00F8 and ax,0F8h -273F:2212 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2214 03 F8 add di,ax -273F:2216 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_talk_dialog proc near -273F:2217 1E push ds -273F:2218 A1 11C0 mov ax, talk_dialog_top -273F:221B 50 push ax -273F:221C 05 0008 add ax,8 -273F:221F 8B D0 mov dx,ax -273F:2221 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2223 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2225 03 C2 add ax,dx -273F:2227 B1 05 mov cl,5 -273F:2229 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:222B 8B F8 mov di,ax -273F:222D A1 11C2 mov ax, talk_dialog_left -273F:2230 24 F8 and al,0F8h -273F:2232 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2234 03 F8 add di,ax -273F:2236 B8 0007 mov ax,7 -273F:2239 F7 26 B9FD mul data_1122 ; dx:ax = data * ax -273F:223D 05 0014 add ax,14h -273F:2240 8B D0 mov dx,ax -273F:2242 A3 11C6 mov talk_dialog_height, ax -273F:2245 A1 4CE4 mov ax, data_segment2 -273F:2248 8E C0 mov es,ax -273F:224A A1 4CE6 mov ax, talk_dialog_buffer -273F:224D 8E D8 mov ds,ax -273F:224F úBE 0000 mov si,data_69e ; (0874:0000=0C5h) -273F:2252 loc_493: ; xref 273F:225D -273F:2252 B9 0020 mov cx,20h -273F:2255 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:2257 83 C7 60 add di,60h -273F:225A 80 EA 01 sub dl,1 -273F:225D 75 F3 jnz loc_493 ; Jump if not zero -273F:225F 5B pop bx -273F:2260 1F pop ds -273F:2261 8B 16 11C6 mov dx, talk_dialog_height -273F:2265 A1 11C2 mov ax, talk_dialog_left -273F:2268 BD 0080 mov bp,80h -273F:226B 89 2E 11C4 mov talk_dialog_width, bp -273F:226F B9 0001 mov cx,1 -273F:2272 E9 E91A jmp loc_93 ; (0B8F) - ega_talk_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_draw_talk_dialog proc near -273F:2275 B8 0007 mov ax,7 -273F:2278 F7 E5 mul bp ; dx:ax = reg * ax -273F:227A 05 000E add ax,0Eh -273F:227D A3 11C6 mov talk_dialog_height, ax -273F:2280 8B E8 mov bp,ax -273F:2282 C7 06 11C4 0080 mov talk_dialog_width, 80h -273F:2288 1E push ds -273F:2289 55 push bp -273F:228A B8 44E4 mov ax, ega_talk_frame_seg -273F:228D 8E D8 mov ds,ax -273F:228F 33 F6 xor si,si ; Zero register -273F:2291 BB 000E mov bx,0Eh -273F:2294 BA 0003 mov dx,3 -273F:2297 loc_494: ; xref 273F:22A0 -273F:2297 E8 01B9 call sub_63 ; (2453) -273F:229A 83 EF 60 sub di,60h -273F:229D 83 EA 01 sub dx,1 -273F:22A0 75 F5 jnz loc_494 ; Jump if not zero -273F:22A2 5A pop dx -273F:22A3 loc_495: ; xref 273F:22AF -273F:22A3 E8 01AD call sub_63 ; (2453) -273F:22A6 83 EF 60 sub di,60h -273F:22A9 83 EE 0C sub si,0Ch -273F:22AC 83 EA 01 sub dx,1 -273F:22AF 75 F2 jnz loc_495 ; Jump if not zero -273F:22B1 BA 0003 mov dx,3 -273F:22B4 83 C6 0C add si,0Ch -273F:22B7 loc_496: ; xref 273F:22C0 -273F:22B7 E8 0199 call sub_63 ; (2453) -273F:22BA 83 EF 60 sub di,60h -273F:22BD 83 EA 01 sub dx,1 -273F:22C0 75 F5 jnz loc_496 ; Jump if not zero -273F:22C2 1F pop ds -273F:22C3 C3 retn - ega_draw_talk_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_menu_items proc near - -273F:22C4 BA 03CE mov dx,3CEh -273F:22C7 B8 0805 mov ax,805h -273F:22CA EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:22CB B8 0007 mov ax,7 -273F:22CE EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:22CF B0 03 mov al,3 -273F:22D1 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 3, data rotate -273F:22D2 B8 FF08 mov ax,0FF08h -273F:22D5 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:22D6 B2 C4 mov dl,0C4h -273F:22D8 55 push bp -273F:22D9 1E push ds -273F:22DA 8E DD mov ds,bp -273F:22DC A1 0DB2 mov ax,ds:data_25e ; (0000:0DB2=8340h) -273F:22DF 1F pop ds -273F:22E0 8E C0 mov es,ax -273F:22E2 úBF 08C1 mov di,data_1442e ; (8340:08C1=0) -273F:22E5 8B 36 335A mov si,word ptr ds:[335Ah] ; (273F:335A=0ACA4h) -273F:22E9 8A 1E 334E mov bl,byte ptr ds:[334Eh] ; (273F:334E=0E4h) -273F:22ED 32 FF xor bh,bh ; Zero register -273F:22EF 8B EB mov bp,bx -273F:22F1 1E push ds - assume ds:seg_code -273F:22F2 A1 3376 mov ax,data_265 ; (273F:3376=0F632h) -273F:22F5 8E D8 mov ds,ax -273F:22F7 B8 0802 mov ax,802h -273F:22FA B9 0004 mov cx,4 - -273F:22FD locloop_497: ; xref 273F:2323 -273F:22FD 51 push cx -273F:22FE 56 push si -273F:22FF 57 push di -273F:2300 EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:2301 B9 0048 mov cx,48h - -273F:2304 locloop_498: ; xref 273F:2319 -273F:2304 51 push cx -273F:2305 56 push si -273F:2306 57 push di -273F:2307 8B CD mov cx,bp - -273F:2309 locloop_499: ; xref 273F:230D -273F:2309 A4 movsb ; Mov [si] to es:[di] -273F:230A 83 C6 03 add si,3 -273F:230D E2 FA loop locloop_499 ; Loop if cx > 0 - -273F:230F 5F pop di -273F:2310 5E pop si -273F:2311 59 pop cx -273F:2312 83 C7 28 add di,28h -273F:2315 81 C6 00A0 add si,0A0h -273F:2319 E2 E9 loop locloop_498 ; Loop if cx > 0 - -273F:231B 5F pop di -273F:231C 5E pop si -273F:231D 83 C6 01 add si,1 -273F:2320 D0 EC shr ah,1 ; Shift w/zeros fill -273F:2322 59 pop cx -273F:2323 E2 D8 loop locloop_497 ; Loop if cx > 0 - -273F:2325 1F pop ds -273F:2326 5D pop bp -273F:2327 B8 0F02 mov ax,0F02h -273F:232A EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:232B B2 CE mov dl,0CEh -273F:232D B8 0005 mov ax,5 -273F:2330 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2331 B8 0F07 mov ax,0F07h -273F:2334 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:2335 B8 FF08 mov ax,0FF08h -273F:2338 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2339 1E push ds -273F:233A 55 push bp -273F:233B 8E DD mov ds,bp -273F:233D A1 0DB0 mov ax, screen_start_seg -273F:2340 8B 1E 0DB2 mov bx, screen_start_seg2 -273F:2344 89 1E 0DB0 mov screen_start_seg, bx -273F:2348 A3 0DB2 mov screen_start_seg2, ax -273F:234B A0 0DB1 mov al, [screen_start_seg+1] -273F:234E D0 E8 shr al,1 ; Shift w/zeros fill -273F:2350 24 01 and al,1 -273F:2352 B4 05 mov ah,5 -273F:2354 CD 10 int 10h ; Video display ah=functn 05h - ; set display page al -273F:2356 B8 0040 mov ax,40h -273F:2359 8E C0 mov es,ax -273F:235B 26: 8B 16 0063 mov dx,es:video_port ; (0040:0063=3D4h) -273F:2360 80 C2 06 add dl,6 -273F:2363 loc_500: ; xref 273F:2366 -273F:2363 EC in al,dx ; port 3DAh, CGA/EGA vid status -273F:2364 A8 08 test al,8 -273F:2366 74 FB jz loc_500 ; Jump if zero -273F:2368 80 36 0991 01 xor byte ptr ds:data_22e,1 ; (0000:0991=8Eh) -273F:236D 5D pop bp -273F:236E 1F pop ds -273F:236F C3 retn - - ega_menu_items endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [fade_out_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_draw_dialog proc near - -273F:2370 32 E4 xor ah,ah ; Zero register -273F:2372 32 FF xor bh,bh ; Zero register -273F:2374 32 ED xor ch,ch ; Zero register -273F:2376 32 F6 xor dh,dh ; Zero register -273F:2378 52 push dx -273F:2379 51 push cx -273F:237A 53 push bx -273F:237B 50 push ax -273F:237C 52 push dx -273F:237D 93 xchg bx,ax -273F:237E BA 0500 mov dx,500h -273F:2381 F7 E2 mul dx ; dx:ax = reg * ax -273F:2383 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:2385 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:2387 03 C3 add ax,bx -273F:2389 8B F8 mov di,ax -273F:238B 5A pop dx -273F:238C 83 C2 01 add dx,1 -273F:238F 8B C2 mov ax,dx -273F:2391 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2393 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2395 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2397 F7 C5 FFFF test bp,0FFFFh -273F:239B 75 02 jnz loc_501 ; Jump if not zero -273F:239D 2B D0 sub dx,ax -273F:239F loc_501: ; xref 273F:239B -273F:239F 83 C2 01 add dx,1 -273F:23A2 8B D9 mov bx,cx -273F:23A4 A1 4CE4 mov ax, data_segment2 -273F:23A7 8E C0 mov es,ax -273F:23A9 1E push ds -273F:23AA B8 44E4 mov ax, ega_talk_frame_seg -273F:23AD 8E D8 mov ds,ax -273F:23AF 33 F6 xor si,si ; Zero register -273F:23B1 52 push dx -273F:23B2 BA 0003 mov dx,3 -273F:23B5 loc_502: ; xref 273F:23BB -273F:23B5 E8 009B call sub_63 ; (2453) -273F:23B8 83 EA 01 sub dx,1 -273F:23BB 75 F8 jnz loc_502 ; Jump if not zero -273F:23BD 5A pop dx -273F:23BE loc_503: ; xref 273F:23C7 -273F:23BE E8 0092 call sub_63 ; (2453) -273F:23C1 83 EE 0C sub si,0Ch -273F:23C4 83 EA 01 sub dx,1 -273F:23C7 75 F5 jnz loc_503 ; Jump if not zero -273F:23C9 83 C6 0C add si,0Ch -273F:23CC BA 0003 mov dx,3 -273F:23CF loc_504: ; xref 273F:23D5 -273F:23CF E8 0081 call sub_63 ; (2453) -273F:23D2 83 EA 01 sub dx,1 -273F:23D5 75 F8 jnz loc_504 ; Jump if not zero -273F:23D7 1F pop ds -273F:23D8 58 pop ax -273F:23D9 5B pop bx -273F:23DA 5D pop bp -273F:23DB 5A pop dx -273F:23DC 83 EB 01 sub bx,1 -273F:23DF 83 C2 02 add dx,2 -273F:23E2 83 C5 02 add bp,2 -273F:23E5 B1 81 mov cl,81h -273F:23E7 E9 E799 jmp loc_92 - - ega_draw_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:23EA 32 FF xor bh,bh ; Zero register -273F:23EC 32 F6 xor dh,dh ; Zero register -273F:23EE 53 push bx -273F:23EF B0 0B mov al,0Bh -273F:23F1 2A C2 sub al,dl -273F:23F3 52 push dx -273F:23F4 B9 0500 mov cx,500h -273F:23F7 F7 E1 mul cx ; dx:ax = reg * ax -273F:23F9 05 00A0 add ax,0A0h -273F:23FC 5A pop dx -273F:23FD 8B F8 mov di,ax -273F:23FF D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2401 83 C2 01 add dx,1 -273F:2404 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2406 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:2408 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:240A 83 EA 08 sub dx,8 -273F:240D A1 4CE4 mov ax, data_segment2 -273F:2410 8E C0 mov es,ax -273F:2412 1E push ds -273F:2413 B8 44E4 mov ax, ega_talk_frame_seg -273F:2416 8E D8 mov ds,ax -273F:2418 33 F6 xor si,si ; Zero register -273F:241A 52 push dx -273F:241B BA 0003 mov dx,3 -273F:241E loc_505: ; xref 273F:2424 -273F:241E E8 0032 call sub_63 ; (2453) -273F:2421 83 EA 01 sub dx,1 -273F:2424 75 F8 jnz loc_505 ; Jump if not zero -273F:2426 5A pop dx -273F:2427 loc_506: ; xref 273F:2430 -273F:2427 E8 0029 call sub_63 ; (2453) -273F:242A 83 EE 0C sub si,0Ch -273F:242D 83 EA 01 sub dx,1 -273F:2430 75 F5 jnz loc_506 ; Jump if not zero -273F:2432 83 C6 0C add si,0Ch -273F:2435 BA 0003 mov dx,3 -273F:2438 loc_507: ; xref 273F:243E -273F:2438 E8 0018 call sub_63 ; (2453) -273F:243B 83 EA 01 sub dx,1 -273F:243E 75 F8 jnz loc_507 ; Jump if not zero -273F:2440 1F pop ds -273F:2441 B8 0001 mov ax,1 -273F:2444 BB 0007 mov bx,7 -273F:2447 5D pop bp -273F:2448 83 C5 02 add bp,2 -273F:244B BA 0009 mov dx,9 -273F:244E B1 81 mov cl,81h -273F:2450 E9 E730 jmp loc_92 ; (0B83) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:2297, 22A3, 22B7, 23B5, 23BE, 23CF, 241E - ; 2427, 2438, 3039, 303C, 303F, 3045, 3048 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:2453 sub_63 proc near -273F:2453 57 push di -273F:2454 A5 movsw ; Mov [si] to es:[di] -273F:2455 A5 movsw ; Mov [si] to es:[di] -273F:2456 AD lodsw ; String [si] to ax -273F:2457 8B E8 mov bp,ax -273F:2459 AD lodsw ; String [si] to ax -273F:245A 8B CB mov cx,bx - -273F:245C locloop_508: ; xref 273F:2460 -273F:245C 95 xchg bp,ax -273F:245D AB stosw ; Store ax to es:[di] -273F:245E 95 xchg bp,ax -273F:245F AB stosw ; Store ax to es:[di] -273F:2460 E2 FA loop locloop_508 ; Loop if cx > 0 - -273F:2462 A5 movsw ; Mov [si] to es:[di] -273F:2463 A5 movsw ; Mov [si] to es:[di] -273F:2464 5F pop di -273F:2465 81 C7 00A0 add di,0A0h -273F:2469 C3 retn - sub_63 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0C6B, 7BB1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:246A ega_decode_entry proc near -273F:246A 1E push ds -273F:246B 8E DA mov ds,dx -273F:246D úBE 0086 mov si,data_1435e ; (45F6:0086=15h) -273F:2470 33 FF xor di,di ; Zero register -273F:2472 BD 0020 mov bp,20h -273F:2475 8B 14 mov dx,[si] -273F:2477 86 F2 xchg dh,dl -273F:2479 83 C6 02 add si,2 -273F:247C B9 0008 mov cx,8 -273F:247F 33 DB xor bx,bx ; Zero register -273F:2481 loc_509: ; xref 273F:24C9, 24D3 -273F:2481 8A C6 mov al,dh -273F:2483 D0 E8 shr al,1 ; Shift w/zeros fill -273F:2485 D0 E8 shr al,1 ; Shift w/zeros fill -273F:2487 D0 E8 shr al,1 ; Shift w/zeros fill -273F:2489 88 01 mov [bx+di],al -273F:248B D1 D2 rcl dx,1 ; Rotate thru carry -273F:248D E2 07 loop locloop_510 ; Loop if cx > 0 - -273F:248F 86 D0 xchg dl,al -273F:2491 AC lodsb ; String [si] to al - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 93 - -273F:2492 86 D0 xchg dl,al -273F:2494 B1 08 mov cl,8 - -273F:2496 locloop_510: ; xref 273F:248D -273F:2496 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2498 E2 07 loop locloop_511 ; Loop if cx > 0 - -273F:249A 86 D0 xchg dl,al -273F:249C AC lodsb ; String [si] to al -273F:249D 86 D0 xchg dl,al -273F:249F B1 08 mov cl,8 - -273F:24A1 locloop_511: ; xref 273F:2498 -273F:24A1 D1 D2 rcl dx,1 ; Rotate thru carry -273F:24A3 E2 07 loop locloop_512 ; Loop if cx > 0 - -273F:24A5 86 D0 xchg dl,al -273F:24A7 AC lodsb ; String [si] to al -273F:24A8 86 D0 xchg dl,al -273F:24AA B1 08 mov cl,8 - -273F:24AC locloop_512: ; xref 273F:24A3 -273F:24AC D1 D2 rcl dx,1 ; Rotate thru carry -273F:24AE E2 07 loop locloop_513 ; Loop if cx > 0 - -273F:24B0 86 D0 xchg dl,al -273F:24B2 AC lodsb ; String [si] to al -273F:24B3 86 D0 xchg dl,al -273F:24B5 B1 08 mov cl,8 - -273F:24B7 locloop_513: ; xref 273F:24AE -273F:24B7 D1 D2 rcl dx,1 ; Rotate thru carry -273F:24B9 E2 07 loop locloop_514 ; Loop if cx > 0 - -273F:24BB 86 D0 xchg dl,al -273F:24BD AC lodsb ; String [si] to al -273F:24BE 86 D0 xchg dl,al -273F:24C0 B1 08 mov cl,8 - -273F:24C2 locloop_514: ; xref 273F:24B9 -273F:24C2 83 C3 20 add bx,20h -273F:24C5 ú81 FB 0080 cmp bx,data_1434e ; (45F6:0080=0) -273F:24C9 75 B6 jne loc_509 ; Jump if not equal -273F:24CB 33 DB xor bx,bx ; Zero register -273F:24CD 83 C7 01 add di,1 -273F:24D0 83 ED 01 sub bp,1 -273F:24D3 75 AC jnz loc_509 ; Jump if not zero -273F:24D5 90 nop -273F:24D6 33 FF xor di,di ; Zero register -273F:24D8 8A C6 mov al,dh -273F:24DA D0 E8 shr al,1 ; Shift w/zeros fill -273F:24DC D0 E8 shr al,1 ; Shift w/zeros fill -273F:24DE D0 E8 shr al,1 ; Shift w/zeros fill -273F:24E0 AA stosb ; Store al to es:[di] -273F:24E1 D1 D2 rcl dx,1 ; Rotate thru carry -273F:24E3 E2 07 loop locloop_515 ; Loop if cx > 0 - -273F:24E5 86 D0 xchg dl,al -273F:24E7 AC lodsb ; String [si] to al -273F:24E8 86 D0 xchg dl,al -273F:24EA B1 08 mov cl,8 - -273F:24EC locloop_515: ; xref 273F:24E3 -273F:24EC D1 D2 rcl dx,1 ; Rotate thru carry -273F:24EE E2 07 loop locloop_516 ; Loop if cx > 0 - -273F:24F0 86 D0 xchg dl,al -273F:24F2 AC lodsb ; String [si] to al -273F:24F3 86 D0 xchg dl,al -273F:24F5 B1 08 mov cl,8 - -273F:24F7 locloop_516: ; xref 273F:24EE -273F:24F7 D1 D2 rcl dx,1 ; Rotate thru carry -273F:24F9 E2 07 loop locloop_517 ; Loop if cx > 0 - -273F:24FB 86 D0 xchg dl,al -273F:24FD AC lodsb ; String [si] to al -273F:24FE 86 D0 xchg dl,al -273F:2500 B1 08 mov cl,8 - -273F:2502 locloop_517: ; xref 273F:24F9 -273F:2502 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2504 E2 07 loop locloop_518 ; Loop if cx > 0 - -273F:2506 86 D0 xchg dl,al -273F:2508 AC lodsb ; String [si] to al -273F:2509 86 D0 xchg dl,al -273F:250B B1 08 mov cl,8 - -273F:250D locloop_518: ; xref 273F:2504 -273F:250D D1 D2 rcl dx,1 ; Rotate thru carry -273F:250F E2 07 loop locloop_519 ; Loop if cx > 0 - -273F:2511 86 D0 xchg dl,al -273F:2513 AC lodsb ; String [si] to al -273F:2514 86 D0 xchg dl,al -273F:2516 B1 08 mov cl,8 - -273F:2518 locloop_519: ; xref 273F:250F -273F:2518 8A D8 mov bl,al -273F:251A 32 FF xor bh,bh ; Zero register -273F:251C loc_520: ; xref 273F:252E, 2550, 2558, 256D - ; 25C4, 2681 -273F:251C úD1 D2 rcl dx,1 ; Rotate thru carry -273F:251E E2 07 loop locloop_521 ; Loop if cx > 0 - -273F:2520 86 D0 xchg dl,al -273F:2522 AC lodsb ; String [si] to al -273F:2523 86 D0 xchg dl,al -273F:2525 B1 08 mov cl,8 - -273F:2527 locloop_521: ; xref 273F:251E -273F:2527 72 07 jc loc_522 ; Jump if carry Set -273F:2529 8A 1F mov bl,[bx] -273F:252B 8A C3 mov al,bl -273F:252D AA stosb ; Store al to es:[di] -273F:252E EB EC jmp short loc_520 ; (251C) -273F:2530 loc_522: ; xref 273F:2527 -273F:2530 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2532 E2 07 loop locloop_523 ; Loop if cx > 0 - -273F:2534 86 D0 xchg dl,al -273F:2536 AC lodsb ; String [si] to al -273F:2537 86 D0 xchg dl,al -273F:2539 B1 08 mov cl,8 - -273F:253B locloop_523: ; xref 273F:2532 -273F:253B 72 1D jc loc_526 ; Jump if carry Set -273F:253D D1 D2 rcl dx,1 ; Rotate thru carry -273F:253F E2 07 loop locloop_524 ; Loop if cx > 0 - -273F:2541 86 D0 xchg dl,al -273F:2543 AC lodsb ; String [si] to al -273F:2544 86 D0 xchg dl,al -273F:2546 B1 08 mov cl,8 - -273F:2548 locloop_524: ; xref 273F:253F -273F:2548 72 08 jc loc_525 ; Jump if carry Set -273F:254A 8A 5F 20 mov bl,[bx+20h] -273F:254D 8A C3 mov al,bl -273F:254F AA stosb ; Store al to es:[di] -273F:2550 EB CA jmp short loc_520 ; (251C) -273F:2552 loc_525: ; xref 273F:2548 -273F:2552 8A 5F 40 mov bl,[bx+40h] -273F:2555 8A C3 mov al,bl -273F:2557 AA stosb ; Store al to es:[di] -273F:2558 EB C2 jmp short loc_520 ; (251C) -273F:255A loc_526: ; xref 273F:253B -273F:255A D1 D2 rcl dx,1 ; Rotate thru carry -273F:255C E2 07 loop locloop_527 ; Loop if cx > 0 - -273F:255E 86 D0 xchg dl,al -273F:2560 AC lodsb ; String [si] to al -273F:2561 86 D0 xchg dl,al -273F:2563 B1 08 mov cl,8 - -273F:2565 locloop_527: ; xref 273F:255C -273F:2565 72 08 jc loc_528 ; Jump if carry Set -273F:2567 8A 5F 60 mov bl,[bx+60h] -273F:256A 8A C3 mov al,bl -273F:256C AA stosb ; Store al to es:[di] -273F:256D EB AD jmp short loc_520 ; (251C) -273F:256F loc_528: ; xref 273F:2565 -273F:256F 8A C6 mov al,dh -273F:2571 D0 E8 shr al,1 ; Shift w/zeros fill -273F:2573 D0 E8 shr al,1 ; Shift w/zeros fill -273F:2575 D0 E8 shr al,1 ; Shift w/zeros fill -273F:2577 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2579 E2 07 loop locloop_529 ; Loop if cx > 0 - -273F:257B 86 D0 xchg dl,al -273F:257D AC lodsb ; String [si] to al -273F:257E 86 D0 xchg dl,al -273F:2580 B1 08 mov cl,8 - -273F:2582 locloop_529: ; xref 273F:2579 -273F:2582 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2584 E2 07 loop locloop_530 ; Loop if cx > 0 - -273F:2586 86 D0 xchg dl,al -273F:2588 AC lodsb ; String [si] to al -273F:2589 86 D0 xchg dl,al -273F:258B B1 08 mov cl,8 - -273F:258D locloop_530: ; xref 273F:2584 -273F:258D D1 D2 rcl dx,1 ; Rotate thru carry -273F:258F E2 07 loop locloop_531 ; Loop if cx > 0 - -273F:2591 86 D0 xchg dl,al -273F:2593 AC lodsb ; String [si] to al -273F:2594 86 D0 xchg dl,al -273F:2596 B1 08 mov cl,8 - -273F:2598 locloop_531: ; xref 273F:258F -273F:2598 D1 D2 rcl dx,1 ; Rotate thru carry -273F:259A E2 07 loop locloop_532 ; Loop if cx > 0 - -273F:259C 86 D0 xchg dl,al -273F:259E AC lodsb ; String [si] to al -273F:259F 86 D0 xchg dl,al -273F:25A1 B1 08 mov cl,8 - -273F:25A3 locloop_532: ; xref 273F:259A -273F:25A3 D1 D2 rcl dx,1 ; Rotate thru carry -273F:25A5 E2 07 loop locloop_533 ; Loop if cx > 0 - -273F:25A7 86 D0 xchg dl,al -273F:25A9 AC lodsb ; String [si] to al -273F:25AA 86 D0 xchg dl,al -273F:25AC B1 08 mov cl,8 - -273F:25AE locloop_533: ; xref 273F:25A5 -273F:25AE 3A 07 cmp al,[bx] -273F:25B0 74 15 je loc_534 ; Jump if equal -273F:25B2 3A 47 20 cmp al,[bx+20h] -273F:25B5 74 27 je loc_536 ; Jump if equal -273F:25B7 3A 47 40 cmp al,[bx+40h] -273F:25BA 74 2D je loc_537 ; Jump if equal -273F:25BC 3A 47 60 cmp al,[bx+60h] -273F:25BF 74 77 je loc_544 ; Jump if equal -273F:25C1 8A D8 mov bl,al -273F:25C3 AA stosb ; Store al to es:[di] -273F:25C4 E9 FF55 jmp loc_520 ; (251C) -273F:25C7 loc_534: ; xref 273F:25B0 -273F:25C7 51 push cx -273F:25C8 E8 4F56 call sub_187 ; (7521) -273F:25CB 8A E0 mov ah,al -273F:25CD E8 4F51 call sub_187 ; (7521) -273F:25D0 8A EC mov ch,ah -273F:25D2 8A C8 mov cl,al -273F:25D4 0B C9 or cx,cx ; Zero ? -273F:25D6 74 03 jz loc_535 ; Jump if zero -273F:25D8 E9 00A1 jmp loc_550 ; (267C) -273F:25DB loc_535: ; xref 273F:25D6 -273F:25DB E9 00A6 jmp loc_551 ; (2684) -273F:25DE loc_536: ; xref 273F:25B5 -273F:25DE 51 push cx -273F:25DF E8 4F3F call sub_187 ; (7521) -273F:25E2 8A C8 mov cl,al -273F:25E4 32 ED xor ch,ch ; Zero register -273F:25E6 E9 0093 jmp loc_550 ; (267C) -273F:25E9 loc_537: ; xref 273F:25BA -273F:25E9 8A C6 mov al,dh -273F:25EB D0 E8 shr al,1 ; Shift w/zeros fill -273F:25ED D0 E8 shr al,1 ; Shift w/zeros fill -273F:25EF D1 D2 rcl dx,1 ; Rotate thru carry -273F:25F1 E2 07 loop locloop_538 ; Loop if cx > 0 - -273F:25F3 86 D0 xchg dl,al -273F:25F5 AC lodsb ; String [si] to al -273F:25F6 86 D0 xchg dl,al -273F:25F8 B1 08 mov cl,8 - -273F:25FA locloop_538: ; xref 273F:25F1 -273F:25FA D1 D2 rcl dx,1 ; Rotate thru carry -273F:25FC E2 07 loop locloop_539 ; Loop if cx > 0 - -273F:25FE 86 D0 xchg dl,al -273F:2600 AC lodsb ; String [si] to al -273F:2601 86 D0 xchg dl,al -273F:2603 B1 08 mov cl,8 - -273F:2605 locloop_539: ; xref 273F:25FC -273F:2605 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2607 E2 07 loop locloop_540 ; Loop if cx > 0 - -273F:2609 86 D0 xchg dl,al -273F:260B AC lodsb ; String [si] to al -273F:260C 86 D0 xchg dl,al -273F:260E B1 08 mov cl,8 - -273F:2610 locloop_540: ; xref 273F:2607 -273F:2610 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2612 E2 07 loop locloop_541 ; Loop if cx > 0 - -273F:2614 86 D0 xchg dl,al -273F:2616 AC lodsb ; String [si] to al -273F:2617 86 D0 xchg dl,al -273F:2619 B1 08 mov cl,8 - -273F:261B locloop_541: ; xref 273F:2612 -273F:261B D1 D2 rcl dx,1 ; Rotate thru carry -273F:261D E2 07 loop locloop_542 ; Loop if cx > 0 - -273F:261F 86 D0 xchg dl,al -273F:2621 AC lodsb ; String [si] to al -273F:2622 86 D0 xchg dl,al -273F:2624 B1 08 mov cl,8 - -273F:2626 locloop_542: ; xref 273F:261D -273F:2626 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2628 E2 07 loop locloop_543 ; Loop if cx > 0 - -273F:262A 86 D0 xchg dl,al -273F:262C AC lodsb ; String [si] to al -273F:262D 86 D0 xchg dl,al -273F:262F B1 08 mov cl,8 - -273F:2631 locloop_543: ; xref 273F:2628 -273F:2631 51 push cx -273F:2632 8A C8 mov cl,al -273F:2634 32 ED xor ch,ch ; Zero register -273F:2636 EB 44 jmp short loc_550 ; (267C) -273F:2638 loc_544: ; xref 273F:25BF -273F:2638 8A C6 mov al,dh -273F:263A D0 E8 shr al,1 ; Shift w/zeros fill -273F:263C D0 E8 shr al,1 ; Shift w/zeros fill -273F:263E D0 E8 shr al,1 ; Shift w/zeros fill -273F:2640 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2642 E2 07 loop locloop_545 ; Loop if cx > 0 - -273F:2644 86 D0 xchg dl,al -273F:2646 AC lodsb ; String [si] to al -273F:2647 86 D0 xchg dl,al -273F:2649 B1 08 mov cl,8 - -273F:264B locloop_545: ; xref 273F:2642 -273F:264B D1 D2 rcl dx,1 ; Rotate thru carry -273F:264D E2 07 loop locloop_546 ; Loop if cx > 0 - -273F:264F 86 D0 xchg dl,al -273F:2651 AC lodsb ; String [si] to al -273F:2652 86 D0 xchg dl,al -273F:2654 B1 08 mov cl,8 - -273F:2656 locloop_546: ; xref 273F:264D -273F:2656 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2658 E2 07 loop locloop_547 ; Loop if cx > 0 - -273F:265A 86 D0 xchg dl,al -273F:265C AC lodsb ; String [si] to al -273F:265D 86 D0 xchg dl,al -273F:265F B1 08 mov cl,8 - -273F:2661 locloop_547: ; xref 273F:2658 -273F:2661 D1 D2 rcl dx,1 ; Rotate thru carry -273F:2663 E2 07 loop locloop_548 ; Loop if cx > 0 - -273F:2665 86 D0 xchg dl,al -273F:2667 AC lodsb ; String [si] to al -273F:2668 86 D0 xchg dl,al -273F:266A B1 08 mov cl,8 - -273F:266C locloop_548: ; xref 273F:2663 -273F:266C D1 D2 rcl dx,1 ; Rotate thru carry -273F:266E E2 07 loop locloop_549 ; Loop if cx > 0 - -273F:2670 86 D0 xchg dl,al -273F:2672 AC lodsb ; String [si] to al -273F:2673 86 D0 xchg dl,al -273F:2675 B1 08 mov cl,8 - -273F:2677 locloop_549: ; xref 273F:266E -273F:2677 51 push cx -273F:2678 8A C8 mov cl,al -273F:267A 32 ED xor ch,ch ; Zero register -273F:267C loc_550: ; xref 273F:25D8, 25E6, 2636 -273F:267C 8A C3 mov al,bl -273F:267E F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:2680 59 pop cx -273F:2681 E9 FE98 jmp loc_520 ; (251C) -273F:2684 loc_551: ; xref 273F:25DB -273F:2684 58 pop ax -273F:2685 1F pop ds -273F:2686 EB 00 jmp short $+2 ; delay for I/O -273F:2688 57 push di -273F:2689 8B EF mov bp,di -273F:268B 1E push ds -273F:268C 06 push es -273F:268D 1F pop ds -273F:268E 8B F7 mov si,di -273F:2690 83 EE 02 sub si,2 -273F:2693 83 C7 06 add di,6 -273F:2696 8B CD mov cx,bp -273F:2698 FD std ; Set direction flag -273F:2699 D1 E9 shr cx,1 ; Shift w/zeros fill -273F:269B F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:269D FC cld ; Clear direction -273F:269E 33 FF xor di,di ; Zero register -273F:26A0 úBE 0008 mov si,data_1459e ; (FF12:0008=0) -273F:26A3 loc_552: ; xref 273F:26C2 -273F:26A3 B9 0008 mov cx,8 - -273F:26A6 locloop_553: ; xref 273F:26BA -273F:26A6 AC lodsb ; String [si] to al -273F:26A7 D0 D8 rcr al,1 ; Rotate thru carry -273F:26A9 D0 55 03 rcl byte ptr [di+3],1 ; Rotate thru carry -273F:26AC D0 D8 rcr al,1 ; Rotate thru carry -273F:26AE D0 55 02 rcl byte ptr [di+2],1 ; Rotate thru carry -273F:26B1 D0 D8 rcr al,1 ; Rotate thru carry -273F:26B3 D0 55 01 rcl byte ptr [di+1],1 ; Rotate thru carry -273F:26B6 D0 D8 rcr al,1 ; Rotate thru carry -273F:26B8 D0 15 rcl byte ptr [di],1 ; Rotate thru carry -273F:26BA E2 EA loop locloop_553 ; Loop if cx > 0 - -273F:26BC 83 C7 04 add di,4 -273F:26BF 83 ED 08 sub bp,8 -273F:26C2 77 DF ja loc_552 ; Jump if above -273F:26C4 1F pop ds -273F:26C5 59 pop cx -273F:26C6 C3 retn - ega_decode_entry endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:26C7 1E push ds -273F:26C8 06 push es -273F:26C9 1F pop ds -273F:26CA úBE 0040 mov si,40h ; (273F:0040=0) -273F:26CD 57 push di -273F:26CE 2B FE sub di,si -273F:26D0 8B EF mov bp,di -273F:26D2 32 D2 xor dl,dl ; Zero register -273F:26D4 loc_554: ; xref 273F:2708 -273F:26D4 8A 04 mov al,[si] -273F:26D6 8A 64 01 mov ah,[si+1] -273F:26D9 8A 5C 02 mov bl,[si+2] -273F:26DC 8A 7C 03 mov bh,[si+3] -273F:26DF B9 0004 mov cx,4 - -273F:26E2 locloop_555: ; xref 273F:26F8, 2700 -273F:26E2 D0 D0 rcl al,1 ; Rotate thru carry -273F:26E4 D0 14 rcl byte ptr [si],1 ; Rotate thru carry -273F:26E6 D0 D0 rcl al,1 ; Rotate thru carry -273F:26E8 D0 54 01 rcl byte ptr [si+1],1 ; Rotate thru carry -273F:26EB D0 D0 rcl al,1 ; Rotate thru carry -273F:26ED D0 54 02 rcl byte ptr [si+2],1 ; Rotate thru carry -273F:26F0 D0 D0 rcl al,1 ; Rotate thru carry -273F:26F2 D0 54 03 rcl byte ptr [si+3],1 ; Rotate thru carry -273F:26F5 80 F2 01 xor dl,1 -273F:26F8 75 E8 jnz locloop_555 ; Jump if not zero -273F:26FA 8A C4 mov al,ah -273F:26FC 8A E3 mov ah,bl -273F:26FE 8A DF mov bl,bh -273F:2700 E2 E0 loop locloop_555 ; Loop if cx > 0 - -273F:2702 83 C6 04 add si,4 -273F:2705 83 ED 04 sub bp,4 -273F:2708 77 CA ja loc_554 ; Jump if above -273F:270A 5F pop di -273F:270B 1F pop ds -273F:270C C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_segment_screen proc near -273F:270D C6 06 0DA4 00 mov datavar1, 0 -273F:2712 88 0E 0DA5 mov current_layer, cl -273F:2716 C7 06 0DA2 0200 mov rectangle_size, 200h -273F:271C 0A C9 or cl,cl ; Zero ? -273F:271E 74 06 jz loc_556 ; Jump if zero -273F:2720 81 06 0DA2 0080 add rectangle_size, 80h -273F:2726 loc_556: ; xref 273F:271E -273F:2726 33 F6 xor si,si ; Zero register -273F:2728 B5 06 mov ch,6 -273F:272A loc_557: ; xref 273F:2771 -273F:272A B1 0A mov cl,0Ah -273F:272C loc_558: ; xref 273F:2765 -273F:272C 1E push ds -273F:272D 53 push bx -273F:272E 51 push cx -273F:272F 56 push si -273F:2730 57 push di -273F:2731 A1 4CE4 mov ax, data_segment2 -273F:2734 8E D8 mov ds,ax -273F:2736 E8 003B call sub_65 ; (2774) -273F:2739 5F pop di -273F:273A 5E pop si -273F:273B 59 pop cx -273F:273C 5B pop bx -273F:273D 1F pop ds -273F:273E F6 06 0DA5 FF test byte ptr ds:[0DA5h],0FFh ; (273F:0DA5=31h) -273F:2743 74 09 jz loc_559 ; Jump if zero -273F:2745 0A F6 or dh,dh ; Zero ? -273F:2747 75 05 jnz loc_559 ; Jump if not zero -273F:2749 C6 07 FF mov byte ptr [bx],0FFh -273F:274C EB 0E jmp short loc_560 ; (275C) -273F:274E loc_559: ; xref 273F:2743, 2747 -273F:274E 03 3E 0DA2 add di, [rectangle_size] -273F:2752 A0 0DA4 mov al, datavar1 -273F:2755 88 07 mov [bx], al -273F:2757 80 06 0DA4 01 add datavar1, 1 -273F:275C loc_560: ; xref 273F:274C -273F:275C 83 C6 10 add si,10h -273F:275F 83 C3 01 add bx,1 -273F:2762 80 E9 01 sub cl,1 -273F:2765 75 C5 jnz loc_558 ; Jump if not zero -273F:2767 ú81 C6 1360 add si,data_1464e ; (FF12:1360=1Eh) -273F:276B 83 C3 08 add bx,8 -273F:276E 80 ED 01 sub ch,1 -273F:2771 75 B7 jnz loc_557 ; Jump if not zero -273F:2773 C3 retn - ega_segment_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:2736 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:2774 sub_65 proc near -273F:2774 8B DF mov bx,di -273F:2776 ú81 C3 0200 add bx,200h ; (273F:0200=0F6h) -273F:277A 32 F6 xor dh,dh ; Zero register -273F:277C B5 20 mov ch,20h ; ' ' -273F:277E loc_561: ; xref 273F:27AE -273F:277E B1 04 mov cl,4 -273F:2780 loc_562: ; xref 273F:27A5 -273F:2780 32 D2 xor dl,dl ; Zero register -273F:2782 AC lodsb ; String [si] to al -273F:2783 0A D0 or dl,al -273F:2785 0A F0 or dh,al -273F:2787 AA stosb ; Store al to es:[di] -273F:2788 AC lodsb ; String [si] to al -273F:2789 0A D0 or dl,al -273F:278B 0A F0 or dh,al -273F:278D AA stosb ; Store al to es:[di] -273F:278E AC lodsb ; String [si] to al - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 102 - -273F:278F 0A D0 or dl,al -273F:2791 0A F0 or dh,al -273F:2793 AA stosb ; Store al to es:[di] -273F:2794 AC lodsb ; String [si] to al -273F:2795 0A D0 or dl,al -273F:2797 0A F0 or dh,al -273F:2799 AA stosb ; Store al to es:[di] -273F:279A F6 D2 not dl -273F:279C 26: 88 17 mov es:[bx],dl -273F:279F 83 C3 01 add bx,1 -273F:27A2 80 E9 01 sub cl,1 -273F:27A5 75 D9 jnz loc_562 ; Jump if not zero -273F:27A7 81 C6 0090 add si,90h -273F:27AB 80 ED 01 sub ch,1 -273F:27AE 75 CE jnz loc_561 ; Jump if not zero -273F:27B0 C3 retn - sub_65 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_show_compressed_screen proc near - -273F:27B1 úBB 07DC mov bx, offset display_mask -273F:27B4 A1 4CE4 mov ax, data_segment2 -273F:27B7 8E C0 mov es,ax -273F:27B9 úBF 0500 mov di,data_1462e ; (FF12:0500=0) -273F:27BC 8B 16 4CE0 mov dx, current_room_segment -273F:27C0 33 F6 xor si,si ; Zero register -273F:27C2 B5 06 mov ch,6 -273F:27C4 loc_563: ; xref 273F:280C -273F:27C4 B1 0A mov cl,0Ah -273F:27C6 loc_564: ; xref 273F:2800 -273F:27C6 F6 07 80 test byte ptr [bx],80h -273F:27C9 74 28 jz loc_567 ; Jump if zero -273F:27CB 80 27 7F and byte ptr [bx],7Fh -273F:27CE 80 0F 01 or byte ptr [bx],1 -273F:27D1 80 8F 0100 01 or byte ptr ds:[100h][bx],1 ; (273F:0100=6) -273F:27D6 57 push di -273F:27D7 1E push ds -273F:27D8 56 push si -273F:27D9 8E DA mov ds,dx -273F:27DB B6 20 mov dh,20h ; ' ' -273F:27DD loc_565: ; xref 273F:27EC -273F:27DD B2 08 mov dl,8 -273F:27DF loc_566: ; xref 273F:27E3 -273F:27DF A5 movsw ; Mov [si] to es:[di] -273F:27E0 80 EA 01 sub dl,1 -273F:27E3 75 FA jnz loc_566 ; Jump if not zero -273F:27E5 81 C7 0090 add di,90h -273F:27E9 80 EE 01 sub dh,1 -273F:27EC 75 EF jnz loc_565 ; Jump if not zero -273F:27EE 5E pop si -273F:27EF 8C DA mov dx,ds -273F:27F1 1F pop ds -273F:27F2 5F pop di -273F:27F3 loc_567: ; xref 273F:27C9 -273F:27F3 83 C3 01 add bx,1 -273F:27F6 83 C7 10 add di,10h -273F:27F9 81 C6 0200 add si,200h -273F:27FD 80 E9 01 sub cl,1 -273F:2800 75 C4 jnz loc_564 ; Jump if not zero -273F:2802 83 C3 08 add bx,8 -273F:2805 ú81 C7 1360 add di,1360h ; (273F:1360=0) -273F:2809 80 ED 01 sub ch,1 -273F:280C 75 B6 jnz loc_563 ; Jump if not zero -273F:280E 80 0E 11D0 30 or menubar_state, 30h ; (273F:11D0=56h) '0' -273F:2813 C3 retn - - ega_show_compressed_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:2814 úBE 0992 mov si, offset rects_layer_0 -273F:2817 83 C6 4C add si,4Ch -273F:281A C7 06 0DA6 0D92 mov rect_x_start, offset room_layers -273F:2820 C7 06 0DAA 0D96 mov num_horiz_rects, 0D96h -273F:2826 B9 0003 mov cx,3 -273F:2829 loc_568: ; xref 273F:28E9 -273F:2829 ú51 push cx -273F:282A úBB 0100 mov bx,100h ; (273F:0100=6) -273F:282D loc_569: ; xref 273F:28CF -273F:282D ú51 push cx -273F:282E 56 push si -273F:282F 8B 3E 0DA6 mov di, rect_x_start -273F:2833 8B 05 mov ax,[di] -273F:2835 8E C0 mov es,ax -273F:2837 8B 45 02 mov ax,[di+2] -273F:283A A3 0DA8 mov rect_y_end, ax -273F:283D 8B 3E 0DAA mov di, num_horiz_rects -273F:2841 8B 05 mov ax,[di] -273F:2843 8B D0 mov dx,ax -273F:2845 8B 45 02 mov ax,[di+2] -273F:2848 A3 0DAC mov word ptr ds:[0DACh],ax ; (273F:0DAC=0EB09h) -273F:284B B5 06 mov ch,6 -273F:284D loc_570: ; xref 273F:28BE -273F:284D B1 0A mov cl,0Ah -273F:284F loc_571: ; xref 273F:28B6 -273F:284F F6 04 80 test byte ptr [si],80h -273F:2852 75 5C jnz loc_573 ; Jump if not zero -273F:2854 F6 00 80 test byte ptr [bx+si],80h -273F:2857 75 57 jnz loc_573 ; Jump if not zero -273F:2859 56 push si -273F:285A 52 push dx -273F:285B 8A 04 mov al,[si] -273F:285D 32 E4 xor ah,ah ; Zero register -273F:285F F7 26 0DA8 mul rect_y_end -273F:2863 8B F8 mov di,ax -273F:2865 8A 00 mov al,[bx+si] -273F:2867 32 E4 xor ah,ah ; Zero register -273F:2869 F7 26 0DAC mul word ptr ds:[0DACh] ; (273F:0DAC=0EB09h) dx:ax = data * ax -273F:286D 8B F0 mov si,ax -273F:286F 5A pop dx -273F:2870 1E push ds -273F:2871 51 push cx -273F:2872 53 push bx -273F:2873 8E DA mov ds,dx -273F:2875 B9 0080 mov cx,80h -273F:2878 8B DE mov bx,si -273F:287A ú81 C3 0200 add bx,data_11e ; (0000:0200=0) - -273F:287E locloop_572: ; xref 273F:28A8 -273F:287E 8A 17 mov dl,[bx] -273F:2880 AC lodsb ; String [si] to al -273F:2881 26: 20 15 and es:[di],dl -273F:2884 26: 08 05 or es:[di],al -273F:2887 AC lodsb ; String [si] to al -273F:2888 26: 20 55 01 and es:[di+1],dl -273F:288C 26: 08 45 01 or es:[di+1],al -273F:2890 AC lodsb ; String [si] to al -273F:2891 26: 20 55 02 and es:[di+2],dl -273F:2895 26: 08 45 02 or es:[di+2],al -273F:2899 AC lodsb ; String [si] to al -273F:289A 26: 20 55 03 and es:[di+3],dl -273F:289E 26: 08 45 03 or es:[di+3],al -273F:28A2 83 C7 04 add di,4 -273F:28A5 83 C3 01 add bx,1 -273F:28A8 E2 D4 loop locloop_572 ; Loop if cx > 0 - -273F:28AA 5B pop bx -273F:28AB 59 pop cx -273F:28AC 8C DA mov dx,ds -273F:28AE 1F pop ds -273F:28AF 5E pop si -273F:28B0 loc_573: ; xref 273F:2852, 2857 -273F:28B0 83 C6 01 add si,1 -273F:28B3 80 E9 01 sub cl,1 -273F:28B6 75 97 jnz loc_571 ; Jump if not zero -273F:28B8 83 C6 08 add si,8 -273F:28BB 80 ED 01 sub ch,1 -273F:28BE 75 8D jnz loc_570 ; Jump if not zero -273F:28C0 83 06 0DAA 04 add num_horiz_rects, 4 -273F:28C5 81 C3 0100 add bx,100h -273F:28C9 5E pop si -273F:28CA 59 pop cx -273F:28CB E2 02 loop locloop_574 ; Loop if cx > 0 - -273F:28CD EB 03 jmp short loc_575 ; (28D2) - -273F:28CF locloop_574: ; xref 273F:28CB -273F:28CF E9 FF5B jmp loc_569 ; (282D) -273F:28D2 loc_575: ; xref 273F:28CD -273F:28D2 59 pop cx -273F:28D3 E2 02 loop locloop_576 ; Loop if cx > 0 - -273F:28D5 EB 15 jmp short loc_577 ; (28EC) - -273F:28D7 locloop_576: ; xref 273F:28D3 -273F:28D7 81 C6 0100 add si,100h -273F:28DB 83 06 0DA6 04 add rect_x_start, 4 -273F:28E0 A1 0DA6 mov ax, rect_x_start -273F:28E3 05 0004 add ax,4 -273F:28E6 A3 0DAA mov num_horiz_rects, ax -273F:28E9 E9 FF3D jmp loc_568 ; (2829) -273F:28EC loc_577: ; xref 273F:28D5 -273F:28EC úBE 0A92 mov si, offset rects_layer_1 -273F:28EF 83 C6 4C add si, FULL_HORIZ_RECTS * 4 + 4 ; 4Ch -273F:28F2 C7 06 0DA6 0D96 mov rect_x_start, 0D96h -273F:28F8 C7 06 0DAA 0D9A mov num_horiz_rects, 0D9Ah -273F:28FE B9 0002 mov cx,2 -273F:2901 loc_578: ; xref 273F:29A0 -273F:2901 ú51 push cx -273F:2902 úBB 0100 mov bx,100h ; (273F:0100=6) -273F:2905 loc_579: ; xref 273F:2986 -273F:2905 ú51 push cx -273F:2906 56 push si -273F:2907 8B 3E 0DA6 mov di, rect_x_start -273F:290B 8B 05 mov ax,[di] -273F:290D 8E C0 mov es,ax -273F:290F 8B 45 02 mov ax,[di+2] -273F:2912 A3 0DA8 mov rect_y_end, ax -273F:2915 8B 3E 0DAA mov di, num_horiz_rects -273F:2919 8B 05 mov ax,[di] -273F:291B 8B D0 mov dx,ax -273F:291D 8B 45 02 mov ax,[di+2] -273F:2920 A3 0DAC mov word ptr ds:[0DACh],ax ; (273F:0DAC=0EB09h) -273F:2923 B5 06 mov ch,6 -273F:2925 loc_580: ; xref 273F:2975 -273F:2925 B1 0A mov cl,0Ah -273F:2927 loc_581: ; xref 273F:296D -273F:2927 F6 04 80 test byte ptr [si],80h -273F:292A 75 3B jnz loc_583 ; Jump if not zero -273F:292C F6 00 80 test byte ptr [bx+si],80h -273F:292F 75 36 jnz loc_583 ; Jump if not zero -273F:2931 56 push si -273F:2932 52 push dx -273F:2933 8A 04 mov al,[si] -273F:2935 32 E4 xor ah,ah ; Zero register -273F:2937 F7 26 0DA8 mul rect_y_end -273F:293B 8B F8 mov di,ax -273F:293D 8A 00 mov al,[bx+si] -273F:293F 32 E4 xor ah,ah ; Zero register -273F:2941 F7 26 0DAC mul word ptr ds:[0DACh] ; (273F:0DAC=0EB09h) dx:ax = data * ax -273F:2945 8B F0 mov si,ax -273F:2947 5A pop dx -273F:2948 1E push ds -273F:2949 51 push cx -273F:294A 53 push bx -273F:294B 8E DA mov ds,dx -273F:294D B9 0080 mov cx,80h -273F:2950 ú81 C6 0200 add si,data_11e ; (0000:0200=0) -273F:2954 ú81 C7 0200 add di,data_1436e ; (4789:0200=27h) - -273F:2958 locloop_582: ; xref 273F:295F -273F:2958 AC lodsb ; String [si] to al -273F:2959 26: 20 05 and es:[di],al -273F:295C 83 C7 01 add di,1 -273F:295F E2 F7 loop locloop_582 ; Loop if cx > 0 - -273F:2961 5B pop bx -273F:2962 59 pop cx -273F:2963 8C DA mov dx,ds -273F:2965 1F pop ds -273F:2966 5E pop si -273F:2967 loc_583: ; xref 273F:292A, 292F -273F:2967 83 C6 01 add si,1 -273F:296A 80 E9 01 sub cl,1 -273F:296D 75 B8 jnz loc_581 ; Jump if not zero -273F:296F 83 C6 08 add si,8 -273F:2972 80 ED 01 sub ch,1 -273F:2975 75 AE jnz loc_580 ; Jump if not zero -273F:2977 83 06 0DAA 04 add num_horiz_rects, 4 -273F:297C ú81 C3 0100 add bx,100h ; (273F:0100=6) -273F:2980 5E pop si -273F:2981 59 pop cx -273F:2982 E2 02 loop locloop_584 ; Loop if cx > 0 - -273F:2984 EB 03 jmp short loc_585 ; (2989) - -273F:2986 locloop_584: ; xref 273F:2982 -273F:2986 E9 FF7C jmp loc_579 ; (2905) -273F:2989 loc_585: ; xref 273F:2984 -273F:2989 59 pop cx -273F:298A E2 02 loop locloop_586 ; Loop if cx > 0 - -273F:298C EB 15 jmp short loc_ret_587 ; (29A3) - -273F:298E locloop_586: ; xref 273F:298A -273F:298E ú81 C6 0100 add si,100h ; (273F:0100=6) -273F:2992 83 06 0DA6 04 add rect_x_start, 4 -273F:2997 A1 0DA6 mov ax, rect_x_start -273F:299A 05 0004 add ax,4 -273F:299D A3 0DAA mov num_horiz_rects, ax -273F:29A0 E9 FF5E jmp loc_578 ; (2901) - -273F:29A3 loc_ret_587: ; xref 273F:298C -273F:29A3 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_add_layer proc near -273F:29A4 8B CD mov cx, bp -273F:29A6 locloop_588: -273F:29A6 80 39 FE cmp byte ptr [bx+di],0FEh -273F:29A9 72 0A jb loc_589 ; Jump if below -273F:29AB ú81 C7 0100 add di,100h ; (273F:0100=6) -273F:29AF 83 C6 04 add si,4 -273F:29B2 E2 F2 loop locloop_588 ; Loop if cx > 0 - -273F:29B4 C3 retn -273F:29B5 loc_589: ; xref 273F:29A9 -273F:29B5 1E push ds -273F:29B6 52 push dx -273F:29B7 8B D0 mov dx,ax -273F:29B9 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:29BB D1 E0 shl ax,1 ; Shift w/zeros fill -273F:29BD 03 D0 add dx,ax -273F:29BF B1 0A mov cl,0Ah -273F:29C1 D3 E2 shl dx,cl ; Shift w/zeros fill -273F:29C3 81 C2 0500 add dx,500h -273F:29C7 58 pop ax -273F:29C8 B1 04 mov cl,4 -273F:29CA D3 E0 shl ax,cl ; Shift w/zeros fill -273F:29CC 03 D0 add dx,ax -273F:29CE 8A 01 mov al,[bx+di] -273F:29D0 8B 1E 4CE4 mov bx, data_segment2 -273F:29D4 8E C3 mov es,bx -273F:29D6 8B 1C mov bx,[si] -273F:29D8 8E DB mov ds,bx -273F:29DA 8B FA mov di,dx -273F:29DC 32 E4 xor ah,ah ; Zero register -273F:29DE 8B D0 mov dx,ax -273F:29E0 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:29E2 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:29E4 03 C2 add ax,dx -273F:29E6 B1 07 mov cl,7 -273F:29E8 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:29EA 8B F0 mov si,ax -273F:29EC 8B DE mov bx,si -273F:29EE ú81 C3 0200 add bx,data_1455e ; (E4B8:0200=0) -273F:29F2 B9 0020 mov cx,20h - -273F:29F5 locloop_590: ; xref 273F:2A2D -273F:29F5 51 push cx -273F:29F6 B9 0004 mov cx,4 - -273F:29F9 locloop_591: ; xref 273F:2A26 -273F:29F9 8A 17 mov dl,[bx] -273F:29FB AC lodsb ; String [si] to al -273F:29FC 26: 20 15 and es:[di],dl -273F:29FF 26: 08 05 or es:[di],al -273F:2A02 83 C7 01 add di,1 -273F:2A05 AC lodsb ; String [si] to al -273F:2A06 26: 20 15 and es:[di],dl -273F:2A09 26: 08 05 or es:[di],al -273F:2A0C 83 C7 01 add di,1 -273F:2A0F AC lodsb ; String [si] to al -273F:2A10 26: 20 15 and es:[di],dl -273F:2A13 26: 08 05 or es:[di],al -273F:2A16 83 C7 01 add di,1 -273F:2A19 AC lodsb ; String [si] to al -273F:2A1A 26: 20 15 and es:[di],dl -273F:2A1D 26: 08 05 or es:[di],al -273F:2A20 83 C7 01 add di,1 -273F:2A23 83 C3 01 add bx,1 -273F:2A26 E2 D1 loop locloop_591 ; Loop if cx > 0 - -273F:2A28 ú81 C7 0090 add di,90h ; (273F:0090=15h) -273F:2A2C 59 pop cx -273F:2A2D E2 C6 loop locloop_590 ; Loop if cx > 0 - -273F:2A2F 1F pop ds -273F:2A30 C3 retn - ega_add_layer endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_display_character proc near - -273F:2A31 57 push di -273F:2A32 1E push ds -273F:2A33 51 push cx -273F:2A34 56 push si -273F:2A35 8E DD mov ds,bp -273F:2A37 8A F2 mov dh,dl -273F:2A39 2C 20 sub al,20h ; ' ' -273F:2A3B B1 03 mov cl,3 -273F:2A3D 32 E4 xor ah,ah ; Zero register -273F:2A3F D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2A41 8B F0 mov si,ax -273F:2A43 B9 0008 mov cx,8 - -273F:2A46 locloop_592: ; xref 273F:2AA2 -273F:2A46 AC lodsb ; String [si] to al -273F:2A47 8A E0 mov ah,al -273F:2A49 F6 D4 not ah -273F:2A4B 26: C6 05 00 mov byte ptr es:[di],0 -273F:2A4F D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A51 73 03 jnc loc_593 ; Jump if carry=0 -273F:2A53 26: 88 05 mov es:[di],al -273F:2A56 loc_593: ; xref 273F:2A51 -273F:2A56 D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A58 73 03 jnc loc_594 ; Jump if carry=0 -273F:2A5A 26: 08 25 or es:[di],ah -273F:2A5D loc_594: ; xref 273F:2A58 -273F:2A5D 83 C7 01 add di,1 -273F:2A60 26: C6 05 00 mov byte ptr es:[di],0 -273F:2A64 D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A66 73 03 jnc loc_595 ; Jump if carry=0 -273F:2A68 26: 88 05 mov es:[di],al -273F:2A6B loc_595: ; xref 273F:2A66 -273F:2A6B D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A6D 73 03 jnc loc_596 ; Jump if carry=0 -273F:2A6F 26: 08 25 or es:[di],ah -273F:2A72 loc_596: ; xref 273F:2A6D -273F:2A72 83 C7 01 add di,1 -273F:2A75 26: C6 05 00 mov byte ptr es:[di],0 -273F:2A79 D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A7B 73 03 jnc loc_597 ; Jump if carry=0 -273F:2A7D 26: 88 05 mov es:[di],al -273F:2A80 loc_597: ; xref 273F:2A7B -273F:2A80 D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A82 73 03 jnc loc_598 ; Jump if carry=0 -273F:2A84 26: 08 25 or es:[di],ah -273F:2A87 loc_598: ; xref 273F:2A82 -273F:2A87 83 C7 01 add di,1 -273F:2A8A 26: C6 05 00 mov byte ptr es:[di],0 -273F:2A8E D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A90 73 03 jnc loc_599 ; Jump if carry=0 -273F:2A92 26: 88 05 mov es:[di],al -273F:2A95 loc_599: ; xref 273F:2A90 -273F:2A95 D0 E2 shl dl,1 ; Shift w/zeros fill -273F:2A97 73 03 jnc loc_600 ; Jump if carry=0 -273F:2A99 26: 08 25 or es:[di],ah -273F:2A9C loc_600: ; xref 273F:2A97 -273F:2A9C 81 C7 009D add di,9Dh -273F:2AA0 8A D6 mov dl,dh -273F:2AA2 E2 A2 loop locloop_592 ; Loop if cx > 0 - -273F:2AA4 5E pop si -273F:2AA5 59 pop cx -273F:2AA6 1F pop ds -273F:2AA7 5F pop di - -273F:2AA8 loc_ret_601: ; xref 273F:2ABE -273F:2AA8 C3 retn - - ega_display_character endp - -273F:2AA9 00 data_238 db 0 ; xref 273F:2B37, 2BA1 -273F:2AAA 00 data_239 db 0 ; xref 273F:2B0C, 2B9A -273F:2AAB 0000 data_240 dw 0 ; xref 273F:2B3C, 2C04 -273F:2AAD loc_602: ; xref 273F:2ADD -273F:2AAD 80 26 11D0 FB and menubar_state, 0FBh ; (273F:11D0=56h) -273F:2AB2 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:2129 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:2AB3 ega_cursor proc near -273F:2AB3 C7 06 F010 0000 mov timer_ticks, 0 -273F:2AB9 F6 06 11D0 04 test menubar_state, 4 ; (273F:11D0=56h) -273F:2ABE 75 E8 jnz loc_ret_601 ; Jump if not zero -273F:2AC0 80 0E 11D0 04 or menubar_state, 4 ; (273F:11D0=56h) -273F:2AC5 F7 06 11EC FFFF test word ptr ds:[11ECh],0FFFFh ; (273F:11EC=1B55h) -273F:2ACB 74 0B jz loc_603 ; Jump if zero -273F:2ACD A1 0DB0 mov ax, screen_start_seg -273F:2AD0 8E C0 mov es,ax -273F:2AD2 úBE 11E8 mov si,offset data_638 ; (31E4:11E8=0) -273F:2AD5 E8 014D call sub_67 ; (2C25) -273F:2AD8 loc_603: ; xref 273F:2ACB - assume ds:data_seg -273F:2AD8 F6 06 11D0 01 test menubar_state, 1 ; (31E4:11D0=3) -273F:2ADD 75 CE jnz loc_602 ; Jump if not zero -273F:2ADF A1 11D8 mov ax, mouse_y2 -273F:2AE2 2B 06 11DF sub ax, cursor_centroid -273F:2AE6 73 02 jnc loc_604 ; Jump if carry=0 -273F:2AE8 33 C0 xor ax,ax ; Zero register -273F:2AEA loc_604: ; xref 273F:2AE6 -273F:2AEA BD 00C8 mov bp,0C8h -273F:2AED 2B E8 sub bp,ax -273F:2AEF 83 FD 11 cmp bp,11h -273F:2AF2 72 03 jb loc_605 ; Jump if below -273F:2AF4 BD 0010 mov bp,10h -273F:2AF7 loc_605: ; xref 273F:2AF2 -273F:2AF7 89 2E 11EC mov data_640,bp ; (31E4:11EC=0) -273F:2AFB 8B 36 11D6 mov si, mouse_x2 -273F:2AFF 2B 36 11DF sub si, cursor_centroid -273F:2B03 73 02 jnc loc_606 ; Jump if carry=0 -273F:2B05 33 F6 xor si,si ; Zero register -273F:2B07 loc_606: ; xref 273F:2B03 -273F:2B07 8B CE mov cx,si -273F:2B09 80 E1 07 and cl,7 -273F:2B0C 2E: 88 0E 2AAA mov cs:data_239,cl ; (273F:2AAA=0) -273F:2B11 B1 03 mov cl,3 -273F:2B13 D3 EE shr si,cl ; Shift w/zeros fill -273F:2B15 BB 0028 mov bx,28h -273F:2B18 2B DE sub bx,si -273F:2B1A 80 FB 04 cmp bl,4 -273F:2B1D 72 02 jb loc_607 ; Jump if below -273F:2B1F B3 03 mov bl,3 -273F:2B21 loc_607: ; xref 273F:2B1D -273F:2B21 88 1E 11EA mov data_639,bl ; (31E4:11EA=0) -273F:2B25 8B D0 mov dx,ax -273F:2B27 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2B29 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2B2B 03 C2 add ax,dx -273F:2B2D D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2B2F 03 F0 add si,ax -273F:2B31 89 36 11E8 mov data_638,si ; (31E4:11E8=0) -273F:2B35 32 FF xor bh,bh ; Zero register -273F:2B37 2E: 88 1E 2AA9 mov cs:data_238,bl ; (273F:2AA9=0) -273F:2B3C 2E: 89 2E 2AAB mov cs:data_240,bp ; (273F:2AAB=0) -273F:2B41 BA 03CE mov dx,3CEh -273F:2B44 B8 0005 mov ax,5 -273F:2B47 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2B48 B8 0007 mov ax,7 -273F:2B4B EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:2B4C B0 03 mov al,3 -273F:2B4E EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 3, data rotate -273F:2B4F FF 36 4CF4 push cursors_segment -273F:2B53 FF 36 11E1 push cursor_index -273F:2B57 1E push ds -273F:2B58 07 pop es -273F:2B59 A1 0DB0 mov ax, screen_start_seg -273F:2B5C 8E D8 mov ds,ax -273F:2B5E B8 0304 mov ax,304h -273F:2B61 úBF 11EE mov di,offset data_641 ; (31E4:11EE=0) -273F:2B64 loc_608: ; xref 273F:2B7A -273F:2B64 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 4, read map select -273F:2B65 56 push si -273F:2B66 55 push bp -273F:2B67 loc_609: ; xref 273F:2B73 -273F:2B67 56 push si -273F:2B68 8B CB mov cx,bx -273F:2B6A F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:2B6C 5E pop si -273F:2B6D 83 C6 28 add si,28h -273F:2B70 83 ED 01 sub bp,1 -273F:2B73 75 F2 jnz loc_609 ; Jump if not zero -273F:2B75 5D pop bp -273F:2B76 5E pop si -273F:2B77 80 EC 01 sub ah,1 -273F:2B7A 73 E8 jnc loc_608 ; Jump if carry=0 -273F:2B7C 8B FE mov di,si -273F:2B7E BA 03CE mov dx,3CEh -273F:2B81 B8 0805 mov ax,805h -273F:2B84 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2B85 B8 0007 mov ax,7 -273F:2B88 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:2B89 B0 03 mov al,3 -273F:2B8B EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 3, data rotate -273F:2B8C B8 FF08 mov ax,0FF08h -273F:2B8F EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2B90 1E push ds -273F:2B91 07 pop es -273F:2B92 5E pop si -273F:2B93 B1 06 mov cl,6 -273F:2B95 D3 E6 shl si,cl ; Shift w/zeros fill -273F:2B97 1F pop ds -273F:2B98 87 D5 xchg dx,bp -273F:2B9A 2E: 8A 0E 2AAA mov cl,cs:data_239 ; (273F:2AAA=0) -273F:2B9F loc_610: ; xref 273F:2C0A -273F:2B9F 56 push si -273F:2BA0 57 push di -273F:2BA1 2E: 8A 2E 2AA9 mov ch,cs:data_238 ; (273F:2AA9=0) -273F:2BA6 33 DB xor bx,bx ; Zero register -273F:2BA8 33 D2 xor dx,dx ; Zero register -273F:2BAA 8A 34 mov dh,[si] -273F:2BAC D3 EA shr dx,cl ; Shift w/zeros fill -273F:2BAE 8A E6 mov ah,dh -273F:2BB0 B0 08 mov al,8 -273F:2BB2 87 D5 xchg dx,bp -273F:2BB4 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2BB5 87 D5 xchg dx,bp -273F:2BB7 8A 7C 01 mov bh,[si+1] -273F:2BBA D3 EB shr bx,cl ; Shift w/zeros fill -273F:2BBC 8A C7 mov al,bh -273F:2BBE 26: 8A 25 mov ah,es:[di] -273F:2BC1 AA stosb ; Store al to es:[di] -273F:2BC2 80 ED 01 sub ch,1 -273F:2BC5 74 35 jz loc_612 ; Jump if zero -273F:2BC7 8A 64 02 mov ah,[si+2] -273F:2BCA 32 C0 xor al,al ; Zero register -273F:2BCC D3 E8 shr ax,cl ; Shift w/zeros fill -273F:2BCE 0A E2 or ah,dl -273F:2BD0 8A D0 mov dl,al -273F:2BD2 87 D5 xchg dx,bp -273F:2BD4 B0 08 mov al,8 -273F:2BD6 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2BD7 8A 64 03 mov ah,[si+3] -273F:2BDA 32 C0 xor al,al ; Zero register -273F:2BDC D3 E8 shr ax,cl ; Shift w/zeros fill -273F:2BDE 0A E3 or ah,bl -273F:2BE0 8A D8 mov bl,al -273F:2BE2 8A C4 mov al,ah -273F:2BE4 26: 8A 25 mov ah,es:[di] -273F:2BE7 AA stosb ; Store al to es:[di] -273F:2BE8 80 ED 01 sub ch,1 -273F:2BEB 74 0D jz loc_611 ; Jump if zero -273F:2BED 8B C5 mov ax,bp -273F:2BEF 8A E0 mov ah,al -273F:2BF1 B0 08 mov al,8 -273F:2BF3 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2BF4 8A C3 mov al,bl - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 112 - -273F:2BF6 26: 8A 25 mov ah,es:[di] -273F:2BF9 AA stosb ; Store al to es:[di] -273F:2BFA loc_611: ; xref 273F:2BEB -273F:2BFA 87 D5 xchg dx,bp -273F:2BFC loc_612: ; xref 273F:2BC5 -273F:2BFC 5F pop di -273F:2BFD 5E pop si -273F:2BFE 83 C6 04 add si,4 -273F:2C01 83 C7 28 add di,28h -273F:2C04 2E: 83 2E 2AAB 01 sub cs:data_240,1 ; (273F:2AAB=0) -273F:2C0A 75 93 jnz loc_610 ; Jump if not zero -273F:2C0C 87 D5 xchg dx,bp -273F:2C0E B8 0005 mov ax,5 -273F:2C11 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2C12 B8 0F07 mov ax,0F07h -273F:2C15 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:2C16 B8 FF08 mov ax,0FF08h -273F:2C19 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 8, data bit mask -273F:2C1A B8 31E4 mov ax,data_seg -273F:2C1D 8E D8 mov ds,ax -273F:2C1F 80 26 11D0 FB and menubar_state, 0FBh ; (31E4:11D0=3) - -273F:2C24 loc_ret_613: ; xref 273F:2C31 -273F:2C24 C3 retn - - ega_cursor endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:2151, 2AD5 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:2C25 sub_67 proc near -273F:2C25 8B 3C mov di,[si] -273F:2C27 8A 5C 02 mov bl,[si+2] -273F:2C2A 32 FF xor bh,bh ; Zero register -273F:2C2C 8B 6C 04 mov bp,[si+4] -273F:2C2F 0B ED or bp,bp ; Zero ? -273F:2C31 74 F1 jz loc_ret_613 ; Jump if zero -273F:2C33 C7 44 04 0000 mov word ptr [si+4],0 -273F:2C38 83 C6 06 add si,6 -273F:2C3B BA 03CE mov dx,3CEh -273F:2C3E B8 0805 mov ax,805h -273F:2C41 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 5, mode -273F:2C42 B8 0007 mov ax,7 -273F:2C45 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 7, ignore color bits -273F:2C46 B0 03 mov al,3 -273F:2C48 EF out dx,ax ; port 3CEh, EGA graphic index - ; al = 3, data rotate -273F:2C49 B8 FF08 mov ax,0FF08h -273F:2C4C EF out dx,ax ; port 3CEh, EGA graphic index - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 113 - - ; al = 8, data bit mask -273F:2C4D B8 31E4 mov ax,data_seg -273F:2C50 8E D8 mov ds,ax -273F:2C52 B2 C4 mov dl,0C4h -273F:2C54 B8 0802 mov ax,802h -273F:2C57 B9 0004 mov cx,4 - -273F:2C5A locloop_614: ; xref 273F:2C70 -273F:2C5A EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:2C5B 51 push cx -273F:2C5C 57 push di -273F:2C5D 8B CD mov cx,bp - -273F:2C5F locloop_615: ; xref 273F:2C6A -273F:2C5F 51 push cx -273F:2C60 57 push di -273F:2C61 8B CB mov cx,bx -273F:2C63 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:2C65 5F pop di -273F:2C66 83 C7 28 add di,28h -273F:2C69 59 pop cx -273F:2C6A E2 F3 loop locloop_615 ; Loop if cx > 0 - -273F:2C6C 5F pop di -273F:2C6D 59 pop cx -273F:2C6E D0 EC shr ah,1 ; Shift w/zeros fill -273F:2C70 E2 E8 loop locloop_614 ; Loop if cx > 0 - -273F:2C72 B4 0F mov ah,0Fh -273F:2C74 EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:2C75 C3 retn - sub_67 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_add_animation proc near - -273F:2C76 8A 47 04 mov al,[bx+4] -273F:2C79 8A 6F 06 mov ch,[bx+6] -273F:2C7C F6 E5 mul ch ; ax = reg * al -273F:2C7E D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2C80 03 C6 add ax,si -273F:2C82 A3 1440 mov word ptr ds:[1440h],ax ; (273F:1440=0BA00h) -273F:2C85 B8 FFFF mov ax,0FFFFh - assume ds:seg_code -273F:2C88 2E: A3 1500 mov word ptr cs:data_215,ax ; (273F:1500=0) -273F:2C8C 2E: A3 1502 mov cs:data_216,ax ; (273F:1502=0) -273F:2C90 2E: A2 1504 mov cs:data_217,al ; (273F:1504=0) -273F:2C94 C6 06 11B0 00 mov data_11b0, 0 -273F:2C99 8B 47 02 mov ax,[bx+2] -273F:2C9C 2D 0088 sub ax,88h -273F:2C9F 73 2A jnc loc_618 ; Jump if carry=0 -273F:2CA1 50 push ax -273F:2CA2 03 47 06 add ax,[bx+6] -273F:2CA5 58 pop ax -273F:2CA6 74 02 jz loc_616 ; Jump if zero -273F:2CA8 72 03 jc loc_617 ; Jump if carry Set -273F:2CAA loc_616: ; xref 273F:2CA6, 2D26 -273F:2CAA E9 02EE jmp loc_ret_636 ; (2F9B) -273F:2CAD loc_617: ; xref 273F:2CA8 -273F:2CAD F7 D8 neg ax -273F:2CAF 2A E8 sub ch,al -273F:2CB1 F6 67 04 mul byte ptr [bx+4] ; ax = data * al -273F:2CB4 B1 03 mov cl,3 -273F:2CB6 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:2CB8 01 06 1440 add word ptr ds:[1440h],ax ; (273F:1440=0BA00h) -273F:2CBC D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2CBE D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2CC0 03 F0 add si,ax -273F:2CC2 33 C0 xor ax,ax ; Zero register -273F:2CC4 C6 06 11B0 01 mov data_11b0, 1 -273F:2CC9 EB 1C jmp short loc_621 ; (2CE7) -273F:2CCB loc_618: ; xref 273F:2C9F -273F:2CCB 3D 00C0 cmp ax,0C0h -273F:2CCE 72 03 jb loc_619 ; Jump if below -273F:2CD0 E9 02C8 jmp loc_ret_636 ; (2F9B) -273F:2CD3 loc_619: ; xref 273F:2CCE -273F:2CD3 50 push ax -273F:2CD4 03 47 06 add ax,[bx+6] -273F:2CD7 3D 00C1 cmp ax,0C1h -273F:2CDA 72 0A jb loc_620 ; Jump if below -273F:2CDC 2D 00C0 sub ax,0C0h -273F:2CDF 2A E8 sub ch,al -273F:2CE1 C6 06 11B0 01 mov data_11b0, 1 -273F:2CE6 loc_620: ; xref 273F:2CDA -273F:2CE6 58 pop ax -273F:2CE7 loc_621: ; xref 273F:2CC9 -273F:2CE7 8B D0 mov dx,ax -273F:2CE9 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2CEB D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2CED 03 C2 add ax,dx -273F:2CEF B1 05 mov cl,5 -273F:2CF1 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2CF3 05 0500 add ax,500h -273F:2CF6 8B F8 mov di,ax -273F:2CF8 8B 47 04 mov ax,[bx+4] -273F:2CFB B1 03 mov cl,3 -273F:2CFD D3 E8 shr ax,cl ; Shift w/zeros fill -273F:2CFF 2E: A2 1509 mov cs:data_220,al ; (273F:1509=0) -273F:2D03 2E: A3 1507 mov cs:data_219,ax ; (273F:1507=0) -273F:2D07 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2D09 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:2D0B 2E: A3 1505 mov cs:data_218,ax ; (273F:1505=0) -273F:2D0F 8B 07 mov ax,[bx] -273F:2D11 8A C8 mov cl,al -273F:2D13 80 E1 07 and cl,7 -273F:2D16 89 0E 1442 mov word ptr ds:[1442h],cx ; (273F:1442=1) -273F:2D1A 2D 0080 sub ax,80h -273F:2D1D 73 31 jnc loc_623 ; Jump if carry=0 -273F:2D1F 50 push ax -273F:2D20 8B 57 04 mov dx,[bx+4] -273F:2D23 03 C2 add ax,dx -273F:2D25 58 pop ax -273F:2D26 74 82 jz loc_616 ; Jump if zero -273F:2D28 72 03 jc loc_622 ; Jump if carry Set -273F:2D2A E9 026E jmp loc_ret_636 ; (2F9B) -273F:2D2D loc_622: ; xref 273F:2D28 -273F:2D2D F7 D0 not ax -273F:2D2F 25 FFF8 and ax,0FFF8h -273F:2D32 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2D34 2E: A3 1500 mov word ptr cs:data_215,ax ; (273F:1500=0) -273F:2D38 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2D3A D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2D3C 2E: A3 1502 mov cs:data_216,ax ; (273F:1502=0) -273F:2D40 04 01 add al,1 -273F:2D42 2E: 28 06 1509 sub cs:data_220,al ; (273F:1509=0) -273F:2D47 C6 06 11B0 01 mov data_11b0, 1 -273F:2D4C 33 C0 xor ax,ax ; Zero register -273F:2D4E EB 29 jmp short loc_625 ; (2D79) -273F:2D50 loc_623: ; xref 273F:2D1D -273F:2D50 3D 0140 cmp ax,140h -273F:2D53 72 03 jb loc_624 ; Jump if below -273F:2D55 E9 0243 jmp loc_ret_636 ; (2F9B) -273F:2D58 loc_624: ; xref 273F:2D53 -273F:2D58 8B 57 04 mov dx,[bx+4] -273F:2D5B 03 D0 add dx,ax -273F:2D5D 81 EA 0140 sub dx,140h -273F:2D61 72 16 jc loc_625 ; Jump if carry Set -273F:2D63 74 14 jz loc_625 ; Jump if zero -273F:2D65 B1 03 mov cl,3 -273F:2D67 D3 EA shr dx,cl ; Shift w/zeros fill -273F:2D69 2E: 28 16 1509 sub cs:data_220,dl ; (273F:1509=0) -273F:2D6E 2E: C6 06 1504 00 mov cs:data_217,0 ; (273F:1504=0) -273F:2D74 C6 06 11B0 01 mov data_11b0, 1 -273F:2D79 loc_625: ; xref 273F:2D4E, 2D61, 2D63 -273F:2D79 25 FFF8 and ax,0FFF8h -273F:2D7C D1 E8 shr ax,1 ; Shift w/zeros fill -273F:2D7E 03 F8 add di,ax -273F:2D80 8B 0E 1442 mov cx,word ptr ds:[1442h] ; (273F:1442=1) -273F:2D84 80 F1 07 xor cl,7 -273F:2D87 80 C1 01 add cl,1 -273F:2D8A 8B 1E 1440 mov bx,word ptr ds:[1440h] ; (273F:1440=0BA00h) -273F:2D8E 80 3E 11B0 01 cmp data_11b0, 1 -273F:2D93 75 03 jne loc_626 ; Jump if not equal -273F:2D95 E9 00D9 jmp loc_630 ; (2E71) -273F:2D98 loc_626: ; xref 273F:2D93 -273F:2D98 1E push ds -273F:2D99 06 push es -273F:2D9A A1 4CE4 mov ax, data_segment2 -273F:2D9D 8E C0 mov es,ax -273F:2D9F 1F pop ds -273F:2DA0 loc_627: ; xref 273F:2E6B -273F:2DA0 ú32 D2 xor dl,dl ; Zero register -273F:2DA2 2E: 88 16 2058 mov cs:data_233,dl ; (273F:2058=0) -273F:2DA7 2E: 88 16 2059 mov cs:data_234,dl ; (273F:2059=0) -273F:2DAC 2E: 88 16 205A mov cs:data_235,dl ; (273F:205A=0) -273F:2DB1 2E: 88 16 205B mov cs:data_236,dl ; (273F:205B=0) -273F:2DB6 F6 D2 not dl -273F:2DB8 51 push cx -273F:2DB9 57 push di -273F:2DBA 2E: 8A 2E 1509 mov ch,cs:data_220 ; (273F:1509=0) -273F:2DBF loc_628: ; xref 273F:2E2D -273F:2DBF 33 C0 xor ax,ax ; Zero register -273F:2DC1 8A 07 mov al,[bx] -273F:2DC3 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2DC5 F7 D0 not ax -273F:2DC7 22 E2 and ah,dl -273F:2DC9 8B D0 mov dx,ax -273F:2DCB AC lodsb ; String [si] to al -273F:2DCC 32 E4 xor ah,ah ; Zero register -273F:2DCE D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2DD0 2E: 0A 26 2058 or ah,cs:data_233 ; (273F:2058=0) -273F:2DD5 2E: A2 2058 mov cs:data_233,al ; (273F:2058=0) -273F:2DD9 26: 20 35 and es:[di],dh -273F:2DDC 26: 08 25 or es:[di],ah -273F:2DDF 83 C7 01 add di,1 -273F:2DE2 AC lodsb ; String [si] to al -273F:2DE3 32 E4 xor ah,ah ; Zero register -273F:2DE5 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2DE7 2E: 0A 26 2059 or ah,cs:data_234 ; (273F:2059=0) -273F:2DEC 2E: A2 2059 mov cs:data_234,al ; (273F:2059=0) -273F:2DF0 26: 20 35 and es:[di],dh -273F:2DF3 26: 08 25 or es:[di],ah -273F:2DF6 83 C7 01 add di,1 -273F:2DF9 AC lodsb ; String [si] to al -273F:2DFA 32 E4 xor ah,ah ; Zero register -273F:2DFC D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2DFE 2E: 0A 26 205A or ah,cs:data_235 ; (273F:205A=0) -273F:2E03 2E: A2 205A mov cs:data_235,al ; (273F:205A=0) -273F:2E07 26: 20 35 and es:[di],dh -273F:2E0A 26: 08 25 or es:[di],ah -273F:2E0D 83 C7 01 add di,1 -273F:2E10 AC lodsb ; String [si] to al -273F:2E11 32 E4 xor ah,ah ; Zero register -273F:2E13 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2E15 2E: 0A 26 205B or ah,cs:data_236 ; (273F:205B=0) -273F:2E1A 2E: A2 205B mov cs:data_236,al ; (273F:205B=0) -273F:2E1E 26: 20 35 and es:[di],dh -273F:2E21 26: 08 25 or es:[di],ah -273F:2E24 83 C7 01 add di,1 -273F:2E27 83 C3 01 add bx,1 -273F:2E2A 80 ED 01 sub ch,1 -273F:2E2D 75 90 jnz loc_628 ; Jump if not zero -273F:2E2F 2E: A0 2058 mov al,cs:data_233 ; (273F:2058=0) -273F:2E33 26: 20 15 and es:[di],dl -273F:2E36 26: 08 05 or es:[di],al -273F:2E39 83 C7 01 add di,1 -273F:2E3C 2E: A0 2059 mov al,cs:data_234 ; (273F:2059=0) -273F:2E40 26: 20 15 and es:[di],dl -273F:2E43 26: 08 05 or es:[di],al -273F:2E46 83 C7 01 add di,1 -273F:2E49 2E: A0 205A mov al,cs:data_235 ; (273F:205A=0) -273F:2E4D 26: 20 15 and es:[di],dl -273F:2E50 26: 08 05 or es:[di],al -273F:2E53 83 C7 01 add di,1 -273F:2E56 2E: A0 205B mov al,cs:data_236 ; (273F:205B=0) -273F:2E5A 26: 20 15 and es:[di],dl -273F:2E5D 26: 08 05 or es:[di],al -273F:2E60 5F pop di -273F:2E61 ú81 C7 00A0 add di,data_1460e ; (FF12:00A0=0) -273F:2E65 59 pop cx -273F:2E66 80 ED 01 sub ch,1 -273F:2E69 74 03 jz loc_629 ; Jump if zero -273F:2E6B E9 FF32 jmp loc_627 ; (2DA0) -273F:2E6E loc_629: ; xref 273F:2E69 -273F:2E6E E9 0129 jmp loc_635 ; (2F9A) -273F:2E71 loc_630: ; xref 273F:2D95 -273F:2E71 1E push ds -273F:2E72 06 push es -273F:2E73 A1 4CE4 mov ax, data_segment2 -273F:2E76 8E C0 mov es,ax -273F:2E78 1F pop ds -273F:2E79 loc_631: ; xref 273F:2F97 -273F:2E79 ú32 D2 xor dl,dl ; Zero register -273F:2E7B 2E: 88 16 2058 mov cs:data_233,dl ; (273F:2058=0) -273F:2E80 2E: 88 16 2059 mov cs:data_234,dl ; (273F:2059=0) -273F:2E85 2E: 88 16 205A mov cs:data_235,dl ; (273F:205A=0) -273F:2E8A 2E: 88 16 205B mov cs:data_236,dl ; (273F:205B=0) -273F:2E8F F6 D2 not dl -273F:2E91 51 push cx -273F:2E92 53 push bx -273F:2E93 56 push si -273F:2E94 57 push di -273F:2E95 2E: 8A 2E 1509 mov ch,cs:data_220 ; (273F:1509=0) -273F:2E9A 2E: F7 06 1500 0080 test word ptr cs:data_215,80h ; (273F:1500=0) -273F:2EA1 75 34 jnz loc_632 ; Jump if not zero -273F:2EA3 2E: 03 36 1500 add si,word ptr cs:data_215 ; (273F:1500=0) -273F:2EA8 2E: 03 1E 1502 add bx,cs:data_216 ; (273F:1502=0) -273F:2EAD 8A 17 mov dl,[bx] -273F:2EAF D3 E2 shl dx,cl ; Shift w/zeros fill -273F:2EB1 F6 D2 not dl -273F:2EB3 83 C3 01 add bx,1 -273F:2EB6 AC lodsb ; String [si] to al -273F:2EB7 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2EB9 2E: A2 2058 mov cs:data_233,al ; (273F:2058=0) -273F:2EBD AC lodsb ; String [si] to al -273F:2EBE D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2EC0 2E: A2 2059 mov cs:data_234,al ; (273F:2059=0) -273F:2EC4 AC lodsb ; String [si] to al -273F:2EC5 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2EC7 2E: A2 205A mov cs:data_235,al ; (273F:205A=0) -273F:2ECB AC lodsb ; String [si] to al -273F:2ECC D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2ECE 2E: A2 205B mov cs:data_236,al ; (273F:205B=0) -273F:2ED2 F6 C5 FF test ch,0FFh -273F:2ED5 74 78 jz loc_633 ; Jump if zero -273F:2ED7 loc_632: ; xref 273F:2EA1, 2F45 -273F:2ED7 33 C0 xor ax,ax ; Zero register -273F:2ED9 8A 07 mov al,[bx] -273F:2EDB D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2EDD F7 D0 not ax -273F:2EDF 22 E2 and ah,dl -273F:2EE1 8B D0 mov dx,ax -273F:2EE3 AC lodsb ; String [si] to al -273F:2EE4 32 E4 xor ah,ah ; Zero register -273F:2EE6 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2EE8 2E: 0A 26 2058 or ah,cs:data_233 ; (273F:2058=0) -273F:2EED 2E: A2 2058 mov cs:data_233,al ; (273F:2058=0) -273F:2EF1 26: 20 35 and es:[di],dh -273F:2EF4 26: 08 25 or es:[di],ah -273F:2EF7 83 C7 01 add di,1 -273F:2EFA AC lodsb ; String [si] to al -273F:2EFB 32 E4 xor ah,ah ; Zero register -273F:2EFD D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2EFF 2E: 0A 26 2059 or ah,cs:data_234 ; (273F:2059=0) -273F:2F04 2E: A2 2059 mov cs:data_234,al ; (273F:2059=0) -273F:2F08 26: 20 35 and es:[di],dh -273F:2F0B 26: 08 25 or es:[di],ah -273F:2F0E 83 C7 01 add di,1 -273F:2F11 AC lodsb ; String [si] to al -273F:2F12 32 E4 xor ah,ah ; Zero register -273F:2F14 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2F16 2E: 0A 26 205A or ah,cs:data_235 ; (273F:205A=0) -273F:2F1B 2E: A2 205A mov cs:data_235,al ; (273F:205A=0) -273F:2F1F 26: 20 35 and es:[di],dh -273F:2F22 26: 08 25 or es:[di],ah -273F:2F25 83 C7 01 add di,1 -273F:2F28 AC lodsb ; String [si] to al -273F:2F29 32 E4 xor ah,ah ; Zero register -273F:2F2B D3 E0 shl ax,cl ; Shift w/zeros fill -273F:2F2D 2E: 0A 26 205B or ah,cs:data_236 ; (273F:205B=0) -273F:2F32 2E: A2 205B mov cs:data_236,al ; (273F:205B=0) -273F:2F36 26: 20 35 and es:[di],dh -273F:2F39 26: 08 25 or es:[di],ah -273F:2F3C 83 C7 01 add di,1 -273F:2F3F 83 C3 01 add bx,1 -273F:2F42 80 ED 01 sub ch,1 -273F:2F45 75 90 jnz loc_632 ; Jump if not zero -273F:2F47 2E: F6 06 1504 FF test cs:data_217,0FFh ; (273F:1504=0) -273F:2F4D 74 31 jz loc_634 ; Jump if zero -273F:2F4F loc_633: ; xref 273F:2ED5 -273F:2F4F 2E: A0 2058 mov al,cs:data_233 ; (273F:2058=0) -273F:2F53 26: 20 15 and es:[di],dl -273F:2F56 26: 08 05 or es:[di],al -273F:2F59 83 C7 01 add di,1 -273F:2F5C 2E: A0 2059 mov al,cs:data_234 ; (273F:2059=0) -273F:2F60 26: 20 15 and es:[di],dl -273F:2F63 26: 08 05 or es:[di],al -273F:2F66 83 C7 01 add di,1 -273F:2F69 2E: A0 205A mov al,cs:data_235 ; (273F:205A=0) -273F:2F6D 26: 20 15 and es:[di],dl -273F:2F70 26: 08 05 or es:[di],al -273F:2F73 83 C7 01 add di,1 -273F:2F76 2E: A0 205B mov al,cs:data_236 ; (273F:205B=0) -273F:2F7A 26: 20 15 and es:[di],dl -273F:2F7D 26: 08 05 or es:[di],al -273F:2F80 loc_634: ; xref 273F:2F4D -273F:2F80 5F pop di -273F:2F81 ú81 C7 00A0 add di,data_1460e ; (FF12:00A0=0) -273F:2F85 5E pop si -273F:2F86 2E: 03 36 1505 add si,cs:data_218 ; (273F:1505=0) -273F:2F8B 5B pop bx -273F:2F8C 2E: 03 1E 1507 add bx,cs:data_219 ; (273F:1507=0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 119 - -273F:2F91 59 pop cx -273F:2F92 80 ED 01 sub ch,1 -273F:2F95 74 03 jz loc_635 ; Jump if zero -273F:2F97 E9 FEDF jmp loc_631 ; (2E79) -273F:2F9A loc_635: ; xref 273F:2E6E, 2F95 -273F:2F9A 1F pop ds - -273F:2F9B loc_ret_636: ; xref 273F:2CAA, 2CD0, 2D2A, 2D55 -273F:2F9B C3 retn -273F:2F9C loc_637: ; xref 273F:8E45 -273F:2F9C úD1 EF shr di,1 ; Shift w/zeros fill -273F:2F9E D1 EB shr bx,1 ; Shift w/zeros fill -273F:2FA0 D1 EB shr bx,1 ; Shift w/zeros fill -273F:2FA2 D1 EB shr bx,1 ; Shift w/zeros fill -273F:2FA4 A1 4CE4 mov ax, data_segment2 -273F:2FA7 8E C0 mov es,ax -273F:2FA9 BA 0008 mov dx,8 -273F:2FAC loc_638: ; xref 273F:2FC2 -273F:2FAC 57 push di -273F:2FAD 8B CB mov cx,bx - -273F:2FAF locloop_639: ; xref 273F:2FBA -273F:2FAF 26: 8A 45 02 mov al,es:[di+2] -273F:2FB3 26: 30 45 01 xor es:[di+1],al -273F:2FB7 83 C7 04 add di,4 -273F:2FBA E2 F3 loop locloop_639 ; Loop if cx > 0 - -273F:2FBC 5F pop di -273F:2FBD ú81 C7 00A0 add di,data_68e ; (0031:00A0=0) -273F:2FC1 4A dec dx -273F:2FC2 75 E8 jnz loc_638 ; Jump if not zero -273F:2FC4 C3 retn - - ega_add_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:2081 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:2FC5 sub_68 proc near -273F:2FC5 1E push ds -273F:2FC6 A1 4CE4 mov ax, data_segment2 -273F:2FC9 8E D8 mov ds,ax -273F:2FCB 33 F6 xor si,si ; Zero register -273F:2FCD 33 FF xor di,di ; Zero register -273F:2FCF B8 0802 mov ax,802h -273F:2FD2 B9 0004 mov cx,4 - -273F:2FD5 locloop_640: ; xref 273F:2FEA -273F:2FD5 51 push cx -273F:2FD6 56 push si -273F:2FD7 57 push di -273F:2FD8 EF out dx,ax ; port 3C4h, EGA sequencr index - ; al = 2, map mask register -273F:2FD9 B9 0140 mov cx,140h - -273F:2FDC locloop_641: ; xref 273F:2FE0 -273F:2FDC A4 movsb ; Mov [si] to es:[di] -273F:2FDD 83 C6 03 add si,3 -273F:2FE0 E2 FA loop locloop_641 ; Loop if cx > 0 - -273F:2FE2 5F pop di -273F:2FE3 5E pop si -273F:2FE4 83 C6 01 add si,1 -273F:2FE7 D0 EC shr ah,1 ; Shift w/zeros fill -273F:2FE9 59 pop cx -273F:2FEA E2 E9 loop locloop_640 ; Loop if cx > 0 - -273F:2FEC 1F pop ds -273F:2FED 80 2E 4BF0 01 sub byte ptr ds:[4BF0h],1 ; (273F:4BF0=3) -273F:2FF2 C3 retn - sub_68 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_toggle_menu_highlight proc near - -273F:2FF3 D1 EF shr di,1 ; Shift w/zeros fill -273F:2FF5 83 E7 FC and di,0FFFCh -273F:2FF8 B1 03 mov cl,3 -273F:2FFA 83 C3 07 add bx,7 -273F:2FFD D3 EB shr bx,cl ; Shift w/zeros fill -273F:2FFF A1 4CE4 mov ax, data_segment2 -273F:3002 8E C0 mov es,ax -273F:3004 BA 0008 mov dx,8 -273F:3007 loc_642: ; xref 273F:3022 -273F:3007 57 push di -273F:3008 8B CB mov cx,bx - -273F:300A locloop_643: ; xref 273F:301A -273F:300A 26: 8A 05 mov al,es:[di] -273F:300D F6 D0 not al -273F:300F 26: 30 45 01 xor es:[di+1],al -273F:3013 26: 30 45 02 xor es:[di+2],al -273F:3017 83 C7 04 add di,4 -273F:301A E2 EE loop locloop_643 ; Loop if cx > 0 - -273F:301C 5F pop di -273F:301D 81 C7 00A0 add di,0A0h -273F:3021 4A dec dx -273F:3022 75 E3 jnz loc_642 ; Jump if not zero -273F:3024 C3 retn - - ega_toggle_menu_highlight endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:90CB - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3025 sub_69 proc near -273F:3025 1E push ds -273F:3026 A1 4CE4 mov ax, data_segment2 -273F:3029 8E C0 mov es,ax -273F:302B úBF 1F48 mov di,data_1407e ; (44E4:1F48=0) -273F:302E B8 44E4 mov ax, ega_talk_frame_seg -273F:3031 8E D8 mov ds,ax -273F:3033 úBE 0030 mov si,offset data_1405 ; (44E4:0030=3Fh) -273F:3036 BB 0020 mov bx,20h -273F:3039 E8 F417 call sub_63 ; (2453) -273F:303C E8 F414 call sub_63 ; (2453) -273F:303F E8 F411 call sub_63 ; (2453) -273F:3042 úBE 000C mov si,offset data_1404 ; (44E4:000C=0) -273F:3045 E8 F40B call sub_63 ; (2453) -273F:3048 E8 F408 call sub_63 ; (2453) -273F:304B 1F pop ds -273F:304C C3 retn - sub_69 endp - -273F:304D 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:304E vga_show_screen proc near - -273F:304E 80 0E 11D0 02 or menubar_state, 2 -273F:3053 E8FD06 call sub_unknown_1 - -273F:3056 F6 06 4BF0 FF test byte ptr [4BF0h], 0ffh -273F:305B 74 03 jz vga_loc_1 -273F:305D E8 0F 09 call menubar_copy_to_screen -273F:3060 BE 0A00 vga_loc_1: mov si, MENUBAR_BLOCK_SIZE ; Set SI and DI to after menubar area -273F:3063 8B FE mov di, si -273F:3065 B9 060A mov cx, 060Ah ; 10x6 sets of 32x32 rectangles -273F:3068 8C DA mov dx, ds ; Make a backup of DS -273F:306A A1 0DB0 mov ax, screen_start_seg -273F:306D 8E C0 mov es, ax -273F:306F BB DC 07 mov bx, offset display_mask - -273F:3072 loc_644: -273F:3072 F6 07 01 test byte ptr [bx],1 ; Is bit 0 turned on? -273F:3075 74 23 jz loc_646 ; No, so jump -273F:3077 80 27 FE and byte ptr [bx],0FEh ; Clear bit 0 - -; The following code copies a rectangle from (x+0,y+0) - (x+31,y+31) from data_segment2 to screen_start_seg - -273F:307A 57 push di -273F:307B 51 push cx -273F:307C A1 4CE4 mov ax, data_segment2 ; Get screen source from data_segment2 -273F:307F 8E D8 mov ds, ax -273F:3081 B8 0020 mov ax,20h ; Number of lines -273F:3084 loc_645: -273F:3084 B9 0010 mov cx,10h ; Rep when cx >0 Mov [si] to es:[di] -273F:3087 F3/ A5 rep movsw ; (moves first 32 pixels of line) -273F:3089 81 C6 0120 add si,120h ; Move to start of next line -273F:308D 81 C7 0120 add di,120h -273F:3091 2D 0001 sub ax,1 ; Decrement number of lines to do -273F:3094 75 EE jnz loc_645 ; Jump if not zero -273F:3096 8E DA mov ds,dx ; Restore data segment -273F:3098 59 pop cx -273F:3099 5F pop di - -273F:309A loc_646: -273F:309A 83 C7 20 add di,20h ; Move to next rectangle position -273F:309D 8B F7 mov si,di ; Match source to destination -273F:309F 83 C3 01 add bx,1 ; Move to next mask position -273F:30A2 80 E9 01 sub cl,1 ; Subtract remaining horiz blocks -273F:30A5 75 CB jnz loc_644 ; Jump if not yet end of line -273F:30A7 81 C7 26C0 add di,26C0h ; Reset soruce/dest to start of next -273F:30AB 8B F7 mov si,di ; rect vertically at start of line -273F:30AD 83 C3 08 add bx,8 -273F:30B0 B1 0A mov cl,0Ah ; Number of horizontal rectangles -273F:30B2 80 ED 01 sub ch,1 ; Decrement remaining vertical rectangles -273F:30B5 75 BB jnz loc_644 ; Jump if not done - -273F:30B7 E8 0704 call sub_73 ; (37BE) -273F:30BA A1 11D6 mov ax, mouse_x2 -273F:30BD 39 06 11D1 cmp mouse_x, ax -273F:30C1 75 09 jne loc_647 ; Jump if not equal -273F:30C3 A1 11D8 mov ax, mouse_y2 -273F:30C6 39 06 11D3 cmp mouse_y, ax -273F:30CA 74 10 je loc_648 ; Jump if equal -273F:30CC loc_647: ; xref 273F:30C1 -273F:30CC A1 11D1 mov ax, mouse_x -273F:30CF A3 11D6 mov mouse_x2, ax -273F:30D2 A1 11D3 mov ax, mouse_y -273F:30D5 A3 11D8 mov mouse_y2, ax -273F:30D8 FF 16 075E call word ptr ds:data_18e ; (0000:075E=0) -273F:30DC loc_648: ; xref 273F:30CA -273F:30DC 80 26 11D0 FD and byte ptr ds:data_26e,0FDh ; (0000:11D0=80h) - -273F:30E1 loc_ret_649: ; xref 273F:30EC -273F:30E1 C3 retn - - vga_show_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [fade_out_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:30E2 vga_fade_out proc near -273F:30E2 80 26 11D0 CF and menubar_state, 0CFh ; (273F:11D0=56h) -273F:30E7 F6 06 073C 20 test byte ptr ds:[73Ch],20h ; (273F:073C=17h) ' ' -273F:30EC 75 F3 jnz loc_ret_649 ; Jump if not zero -273F:30EE 80 0E 073C 20 or byte ptr ds:[73Ch],20h ; (273F:073C=17h) ' ' - -273F:30F3 úBE 1457 mov si, offset unprocessed_vga_palette -273F:30F6 úBF 0DB5 mov di, offset processed_vga_palette -273F:30F9 1E push ds -273F:30FA 07 pop es -273F:30FB B9 0156 mov cx,156h -273F:30FE F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:3100 B9 0040 mov cx,40h - -273F:3103 locloop_650: ; xref 273F:3156 -273F:3103 51 push cx -273F:3104 úBB 0DB5 mov bx, offset processed_vga_palette -273F:3107 B9 00E4 mov cx,0E4h - -273F:310A locloop_651: ; xref 273F:3129 -273F:310A F6 07 3F test byte ptr [bx],3Fh ; '?' -273F:310D 74 03 jz loc_652 ; Jump if zero -273F:310F 80 2F 01 sub byte ptr [bx],1 -273F:3112 loc_652: ; xref 273F:310D -273F:3112 F6 47 01 3F test byte ptr [bx+1],3Fh ; '?' -273F:3116 74 04 jz loc_653 ; Jump if zero -273F:3118 80 6F 01 01 sub byte ptr [bx+1],1 -273F:311C loc_653: ; xref 273F:3116 -273F:311C F6 47 02 3F test byte ptr [bx+2],3Fh ; '?' -273F:3120 74 04 jz loc_654 ; Jump if zero -273F:3122 80 6F 02 01 sub byte ptr [bx+2],1 -273F:3126 loc_654: ; xref 273F:3120 -273F:3126 83 C3 03 add bx,3 -273F:3129 E2 DF loop locloop_651 ; Loop if cx > 0 - -273F:312B E8 002B call wait_for_video_port ; (3159) -273F:312E 56 push si -273F:312F 32 C0 xor al,al ; Zero register -273F:3131 BA 03C8 mov dx,3C8h -273F:3134 EE out dx,al ; port 3C8h, VGA pel address -273F:3135 42 inc dx -273F:3136 úBE 0DB5 mov si, offset processed_vga_palette -273F:3139 B9 0156 mov cx,156h - -273F:313C locloop_655: ; xref 273F:313E -273F:313C AC lodsb ; String [si] to al -273F:313D EE out dx,al ; port 3C9h, VGA pel data reg -273F:313E E2 FC loop locloop_655 ; Loop if cx > 0 - -273F:3140 E8 0016 call wait_for_video_port ; (3159) -273F:3143 B0 72 mov al,72h ; 'r' -273F:3145 BA 03C8 mov dx,3C8h -273F:3148 EE out dx,al ; port 3C8h, VGA pel address -273F:3149 42 inc dx -273F:314A úBE 0F0B mov si, offset processed_vga_palette + 156h -273F:314D B9 0156 mov cx,156h - -273F:3150 locloop_656: ; xref 273F:3152 -273F:3150 AC lodsb ; String [si] to al -273F:3151 EE out dx,al ; port 3C9h, VGA pel data reg -273F:3152 E2 FC loop locloop_656 ; Loop if cx > 0 - -273F:3154 5E pop si -273F:3155 59 pop cx -273F:3156 E2 AB loop locloop_650 ; Loop if cx > 0 - -273F:3158 C3 retn - vga_fade_out endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:312B, 3140, 31A5, 31BA, 3C86 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3159 wait_for_video_port proc near -273F:3159 50 push ax -273F:315A 06 push es -273F:315B 52 push dx -273F:315C B8 0040 mov ax,40h -273F:315F 8E C0 mov es,ax -273F:3161 26: 8B 16 0063 mov dx,es:video_port ; (0040:0063=3D4h) -273F:3166 80 C2 06 add dl,6 -273F:3169 loc_657: ; xref 273F:316C -273F:3169 EC in al,dx ; port 3DAh, CGA/EGA vid status -273F:316A A8 08 test al,8 -273F:316C 74 FB jz loc_657 ; Jump if zero -273F:316E loc_658: ; xref 273F:3171 -273F:316E EC in al,dx ; port 3DAh, CGA/EGA vid status -273F:316F A8 08 test al,8 -273F:3171 75 FB jnz loc_658 ; Jump if not zero -273F:3173 5A pop dx -273F:3174 07 pop es -273F:3175 58 pop ax -273F:3176 C3 retn - wait_for_video_port endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [fade_in_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_fade_in proc near -273F:3177 80 26 073C DF and byte ptr ds:[73Ch],0DFh ; (273F:073C=17h) -273F:317C 1E push ds -273F:317D 07 pop es -273F:317E úBF 0DB5 mov di, offset processed_vga_palette -273F:3181 B9 0156 mov cx, 156h ; Only first 228 palette entries used -273F:3184 33 C0 xor ax,ax ; Zero register -273F:3186 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] - -273F:3188 úBE 0DB5 mov si, offset processed_vga_palette -273F:318B úBF 1457 mov di, offset unprocessed_vga_palette -273F:318E B9 0040 mov cx,40h ; Number of fade-in increments - -273F:3191 locloop_659: -273F:3191 51 push cx -273F:3192 B9 02AC mov cx,2ACh ; 228*3 (each paleete entry is 3 bytes) -273F:3195 33 DB xor bx,bx -; Update the RGB components of each palette entry by 1 unless a colour has already reached it's final value -273F:3197 locloop_660: -273F:3197 8A 00 mov al,[bx+si] ; Get in current palette intensity -273F:3199 3A 01 cmp al,[bx+di] ; Has it reached final intensity? -273F:319B 74 03 je loc_661 ; Jump if equal -273F:319D 80 00 01 add byte ptr [bx+si],1 ; Increment the intensity -273F:31A0 loc_661: -273F:31A0 83 C3 01 add bx,1 -273F:31A3 E2 F2 loop locloop_660 ; Loop if cx > 0 - -273F:31A5 E8 FFB1 call wait_for_video_port ; (3159) -273F:31A8 56 push si -273F:31A9 32 C0 xor al,al ; Zero register -273F:31AB BA 03C8 mov dx,3C8h -273F:31AE EE out dx,al ; port 3C8h, VGA pel address -273F:31AF 42 inc dx -; Output the first half ot the new set of palette entries -273F:31B0 úBE 0DB5 mov si,0DB5h ; (273F:0DB5=0C7h) -273F:31B3 B9 0156 mov cx,156h -273F:31B6 locloop_662: ; xref 273F:31B8 -273F:31B6 AC lodsb ; String [si] to al -273F:31B7 EE out dx,al ; port 3C9h, VGA pel data reg -273F:31B8 E2 FC loop locloop_662 ; Loop if cx > 0 - -273F:31BA E8 FF9C call wait_for_video_port ; (3159) -273F:31BD B0 72 mov al,72h ; 'r' -273F:31BF BA 03C8 mov dx,3C8h -273F:31C2 EE out dx,al ; port 3C8h, VGA pel address -273F:31C3 42 inc dx - -; Output the second half ot the new set of palette entries -273F:31C4 úBE 0F0B mov si, offset processed_vga_palette + 156h -273F:31C7 B9 0156 mov cx,156h -273F:31CA locloop_663: ; xref 273F:31CC -273F:31CA AC lodsb ; String [si] to al -273F:31CB EE out dx,al ; port 3C9h, VGA pel data reg -273F:31CC E2 FC loop locloop_663 ; Loop if cx > 0 - -; Loop for remaining increments of fade-in sequence -273F:31CE 5E pop si -273F:31CF 59 pop cx -273F:31D0 E2 BF loop locloop_659 ; Loop if cx > 0 - -273F:31D2 C3 retn - vga_fade_in endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:312B, 3140, 31A5, 31BA, 3C86 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_set_lower_palette proc near - -273F:31D3 80 26 073C DF and byte ptr ds:[73Ch],0DFh ; (273F:073C=17h) -273F:31D8 1E push ds -273F:31D9 07 pop es -273F:31DA úBA 1457 mov dx,offset unprocessed_vga_palette -273F:31DD B8 1012 mov ax,1012h -273F:31E0 BB 0000 mov bx,0 -273F:31E3 B9 00E4 mov cx,0E4h -273F:31E6 CD 10 int 10h ; Video display ah=functn 10h - ; set cx color registers from - ; ptr es:dx, bx=first reg -273F:31E8 C3 retn - - vga_set_lower_palette endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:312B, 3140, 31A5, 31BA, 3C86 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_empty_palette proc near - -273F:31E9 80 0E 073C 20 or byte ptr ds:[73Ch],20h -273F:31EE 1E push ds -273F:31EF 07 pop es -273F:31F0 úBF 0DB5 mov di, offset processed_vga_palette -273F:31F3 B9 0156 mov cx,156h -273F:31F6 33 C0 xor ax,ax ; Zero register -273F:31F8 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:31FA úBA 0DB5 mov dx, offset processed_vga_palette -273F:31FD B8 1012 mov ax,1012h -273F:3200 BB 0000 mov bx,0 -273F:3203 B9 00E4 mov cx,0E4h -273F:3206 CD 10 int 10h ; Video display ah=functn 10h - ; set cx color registers from - ; ptr es:dx, bx=first reg -273F:3208 C3 retn - - vga_empty_palette endp - - vga_display2_character proc near -273F:3209 1E push ds -273F:320A 57 push di -273F:320B 56 push si -273F:320C 98 cbw ; Convrt byte to word -273F:320D D1 E0 shl ax,1 ; Shift w/zeros fill -273F:320F D1 E0 shl ax,1 ; Shift w/zeros fill -273F:3211 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:3213 8B F0 mov si,ax -273F:3215 8B 16 4CF0 mov dx, font2_segment -273F:3219 8E DA mov ds,dx -273F:321B AC lodsb ; String [si] to al -273F:321C 32 E4 xor ah,ah ; Zero register -273F:321E 50 push ax -273F:321F B2 07 mov dl,7 -273F:3221 loc_664: ; xref 273F:3239 -273F:3221 AC lodsb ; String [si] to al -273F:3222 B9 0008 mov cx,8 - -273F:3225 locloop_665: ; xref 273F:322F -273F:3225 D0 E0 shl al,1 ; Shift w/zeros fill -273F:3227 73 03 jnc loc_666 ; Jump if carry=0 -273F:3229 26: 88 3D mov es:[di],bh -273F:322C loc_666: ; xref 273F:3227 -273F:322C 83 C7 01 add di,1 -273F:322F E2 F4 loop locloop_665 ; Loop if cx > 0 - -273F:3231 03 FD add di,bp -273F:3233 83 EF 08 sub di,8 -273F:3236 80 EA 01 sub dl,1 -273F:3239 75 E6 jnz loc_664 ; Jump if not zero -273F:323B 58 pop ax -273F:323C 5E pop si -273F:323D 5F pop di -273F:323E 1F pop ds -273F:323F 03 F8 add di,ax -273F:3241 C3 retn - vga_display2_character endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - vga_talk_dialog proc near -273F:3242 1E push ds -273F:3243 A1 11C0 mov ax, talk_dialog_top -273F:3246 50 push ax -273F:3247 05 0008 add ax, 8 -273F:324A 8B D0 mov dx, ax -273F:324C D1 E2 shl dx, 1 ; Shift w/zeros fill -273F:324E D1 E2 shl dx, 1 ; Shift w/zeros fill -273F:3250 03 C2 add ax, dx -273F:3252 B1 06 mov cl, 6 -273F:3254 D3 E0 shl ax, cl ; Shift w/zeros fill -273F:3256 8B F8 mov di, ax -273F:3258 03 3E 11C2 add di, talk_dialog_left -273F:325C B8 0007 mov ax, 7 -273F:325F F7 26 B9FD mul data_1122 ; dx:ax = data * ax -273F:3263 05 0013 add ax, 19 ; Number of lines? -273F:3266 8B D0 mov dx, ax -273F:3268 A1 4CE4 mov ax, data_segment2 -273F:326B 8E C0 mov es, ax -273F:326D A1 4CE6 mov ax, talk_dialog_buffer -273F:3270 8E D8 mov ds, ax -273F:3272 úBE 0000 mov si, 0 -273F:3275 loc_667: ; xref 273F:3281 -273F:3275 B9 0040 mov cx, TALK_DIALOG_WIDTH/2 -273F:3278 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:327A 81 C7 00C0 add di, FULL_SCREEN_WIDTH-TALK_DIALOG_WIDTH -273F:327E 80 EA 01 sub dl, 1 -273F:3281 75 F2 jnz loc_667 ; Jump if not zero -273F:3283 5B pop bx -273F:3284 1F pop ds -273F:3285 8B 16 11C6 mov dx, talk_dialog_height -273F:3289 A1 11C2 mov ax, talk_dialog_left -273F:328C BD 0080 mov bp, 80h -273F:328F B1 01 mov cl, 1 -273F:3291 E8 D8FB call sub_22 ; Specify non-redraw area -273F:3294 C3 retn - vga_talk_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called by the table entry [draw_dialog_proc] - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; DL = number of lines? -;???? Not sure about this method. - - vga_draw_dialog proc near - -273F:3295 32 E4 xor ah,ah ; Zero register -273F:3297 32 FF xor bh,bh ; Zero register -273F:3299 32 ED xor ch,ch ; Zero register -273F:329B 32 F6 xor dh,dh ; Zero register -273F:329D 52 push dx -273F:329E 51 push cx -273F:329F 53 push bx -273F:32A0 50 push ax -273F:32A1 8A EA mov ch,dl -273F:32A3 93 xchg bx,ax -273F:32A4 32 E4 xor ah,ah ; Zero register -273F:32A6 BA 0A00 mov dx,0A00h -273F:32A9 F7 E2 mul dx ; dx:ax = reg * ax -273F:32AB 2D 03C0 sub ax,3C0h -273F:32AE 3D 0640 cmp ax,640h -273F:32B1 75 03 jne loc_668 ; Jump if not equal -273F:32B3 05 03C0 add ax,3C0h -273F:32B6 loc_668: ; xref 273F:32B1 -273F:32B6 32 FF xor bh,bh ; Zero register -273F:32B8 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:32BA D1 E3 shl bx,1 ; Shift w/zeros fill -273F:32BC D1 E3 shl bx,1 ; Shift w/zeros fill -273F:32BE 03 C3 add ax,bx -273F:32C0 2D 0003 sub ax,3 -273F:32C3 8B F8 mov di,ax -273F:32C5 A1 4CE4 mov ax, data_segment2 -273F:32C8 8E C0 mov es,ax -273F:32CA 8A D9 mov bl,cl -273F:32CC 32 FF xor bh,bh ; Zero register -273F:32CE D1 E3 shl bx,1 ; Shift w/zeros fill -273F:32D0 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:32D2 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:32D4 83 C3 04 add bx,4 -273F:32D7 8A D5 mov dl,ch -273F:32D9 32 F6 xor dh,dh ; Zero register -273F:32DB 8B C2 mov ax,dx -273F:32DD D1 E2 shl dx,1 ; Shift w/zeros fill -273F:32DF D1 E2 shl dx,1 ; Shift w/zeros fill -273F:32E1 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:32E3 F7 C5 FFFF test bp,0FFFFh -273F:32E7 75 02 jnz loc_669 ; Jump if not zero -273F:32E9 2B D0 sub dx,ax -273F:32EB loc_669: ; xref 273F:32E7 -273F:32EB 83 C2 05 add dx,5 -273F:32EE E8 001A call draw_dialog_frame -273F:32F1 58 pop ax -273F:32F2 2D 0001 sub ax,1 -273F:32F5 5B pop bx -273F:32F6 83 EB 02 sub bx,2 -273F:32F9 73 02 jnc loc_670 ; Jump if carry=0 -273F:32FB 33 DB xor bx,bx ; Zero register -273F:32FD loc_670: ; xref 273F:32F9 -273F:32FD 5D pop bp -273F:32FE 83 C5 04 add bp,4 -273F:3301 5A pop dx -273F:3302 83 C2 04 add dx,4 -273F:3305 B1 81 mov cl,81h -273F:3307 E8 D879 call sub_21 ; (0B83) -273F:330A C3 retn - - vga_draw_menu endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:32EE, 339D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:330B draw_dialog_frame proc near -273F:330B 1E push ds -273F:330C B8 44EA mov ax, dialog_segment -273F:330F 8E D8 mov ds,ax -273F:3311 33 F6 xor si,si ; Zero register -273F:3313 BD 0009 mov bp,9 -273F:3316 loc_671: ; xref 273F:3331 -273F:3316 57 push di -273F:3317 B9 0007 mov cx,7 -273F:331A F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:331C AC lodsb ; String [si] to al -273F:331D 8B CB mov cx,bx -273F:331F 83 C1 02 add cx,2 -273F:3322 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:3324 B9 0009 mov cx,9 -273F:3327 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3329 5F pop di -273F:332A ú81 C7 0140 add di, SCREEN_WIDTH -273F:332E 83 ED 01 sub bp,1 -273F:3331 75 E3 jnz loc_671 ; Jump if not zero -273F:3333 loc_672: ; xref 273F:334D -273F:3333 56 push si -273F:3334 57 push di -273F:3335 B9 0009 mov cx,9 -273F:3338 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:333A AC lodsb ; String [si] to al -273F:333B 8B CB mov cx,bx -273F:333D F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:333F B9 0009 mov cx,9 -273F:3342 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3344 5F pop di -273F:3345 5E pop si -273F:3346 ú81 C7 0140 add di, SCREEN_WIDTH -273F:334A 83 EA 01 sub dx,1 -273F:334D 75 E4 jnz loc_672 ; Jump if not zero -273F:334F 83 C6 13 add si,13h -273F:3352 BD 0009 mov bp,9 -273F:3355 loc_673: ; xref 273F:3370 -273F:3355 57 push di -273F:3356 B9 0009 mov cx,9 -273F:3359 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:335B AC lodsb ; String [si] to al -273F:335C 8B CB mov cx,bx -273F:335E 83 C1 01 add cx,1 -273F:3361 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:3363 B9 0008 mov cx,8 -273F:3366 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3368 5F pop di -273F:3369 81 C7 0140 add di, SCREEN_WIDTH -273F:336D 83 ED 01 sub bp,1 -273F:3370 75 E3 jnz loc_673 ; Jump if not zero -273F:3372 1F pop ds -273F:3373 C3 retn - - draw_dialog_frame endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3374 32 FF xor bh, bh -273F:3376 32 F6 xor dh, dh -273F:3378 BF 62C0 mov di, 62C0h -273F:337B B9 004E mov cx, 4Eh -273F:337E 8B C2 mov ax, dx -273F:3380 2D 0001 sub ax, 1 -273F:3383 74 0C jz loc_675 ; Jump if zero -273F:3385 81 EF 0A00 sub di,0A00h -273F:3389 83 E9 08 sub cx,8 -273F:338C 80 C2 01 add dl,1 -273F:338F EB EF jmp short loc_674 ; (3380) -273F:3391 loc_675: ; xref 273F:3383 -273F:3391 51 push cx -273F:3392 B1 03 mov cl,3 -273F:3394 D3 E3 shl bx,cl ; Shift w/zeros fill -273F:3396 D3 E2 shl dx,cl ; Shift w/zeros fill -273F:3398 83 EB 01 sub bx,1 -273F:339B 53 push bx -273F:339C 52 push dx -273F:339D E8 FF6B call draw_dialog_frame -273F:33A0 33 C0 xor ax,ax ; Zero register -273F:33A2 5A pop dx -273F:33A3 5D pop bp -273F:33A4 5B pop bx -273F:33A5 83 EB 08 sub bx,8 -273F:33A8 83 C5 12 add bp,12h -273F:33AB 83 C2 14 add dx,14h -273F:33AE B1 81 mov cl,81h -273F:33B0 E9 D7DC jmp loc_93 ; (0B8F) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_draw_talk_dialog proc near -273F:33B3 8B C5 mov ax,bp -273F:33B5 D1 E5 shl bp,1 ; Shift w/zeros fill -273F:33B7 D1 E5 shl bp,1 ; Shift w/zeros fill -273F:33B9 D1 E5 shl bp,1 ; Shift w/zeros fill -273F:33BB 2B E8 sub bp,ax -273F:33BD 83 C5 0D add bp,0Dh -273F:33C0 89 2E 11C6 mov talk_dialog_height, bp -273F:33C4 83 06 11C6 12 add talk_dialog_height, 12h -273F:33C9 C7 06 11C4 0080 mov talk_dialog_width, TALK_DIALOG_WIDTH -273F:33CF 1E push ds -273F:33D0 B8 44FF mov ax, vga_talk_frame_seg -273F:33D3 8E D8 mov ds,ax -273F:33D5 33 F6 xor si,si ; Zero register - -273F:33D7 BA 0003 mov dx,3 ; First three lines - -273F:33DA loc_676: -273F:33DA A5 movsw ; Mov [si] to es:[di] -273F:33DB AC lodsb ; String [si] to al -273F:33DC B9 007B mov cx,7Bh -273F:33DF F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:33E1 A5 movsw ; Mov [si] to es:[di] -273F:33E2 A4 movsb ; Mov [si] to es:[di] -273F:33E3 83 EA 01 sub dx,1 -273F:33E6 75 F2 jnz loc_676 ; Jump if not zero -273F:33E8 loc_677: ; xref 273F:33F7 -273F:33E8 56 push si -273F:33E9 A5 movsw ; Mov [si] to es:[di] -273F:33EA A4 movsb ; Mov [si] to es:[di] -273F:33EB AC lodsb ; String [si] to al -273F:33EC B9 007A mov cx,7Ah -273F:33EF F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:33F1 A5 movsw ; Mov [si] to es:[di] -273F:33F2 A4 movsb ; Mov [si] to es:[di] -273F:33F3 5E pop si -273F:33F4 83 ED 01 sub bp,1 -273F:33F7 75 EF jnz loc_677 ; Jump if not zero -273F:33F9 83 C6 07 add si,7 -273F:33FC BA 0003 mov dx,3 -273F:33FF loc_678: ; xref 273F:340B -273F:33FF A5 movsw ; Mov [si] to es:[di] -273F:3400 A4 movsb ; Mov [si] to es:[di] -273F:3401 AC lodsb ; String [si] to al -273F:3402 B9 007B mov cx,7Bh -273F:3405 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:3407 A5 movsw ; Mov [si] to es:[di] -273F:3408 83 EA 01 sub dx,1 -273F:340B 75 F2 jnz loc_678 ; Jump if not zero -273F:340D 1F pop ds -273F:340E C3 retn - vga_draw_talk_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_show_compressed_screen proc near - -273F:340F úBB 07DC mov bx, offset display_mask -273F:3412 A1 4CE4 mov ax, data_segment2 -273F:3415 8E C0 mov es,ax -273F:3417 úBF 0A00 mov di,data_1463e ; (FF12:0A00=0) -273F:341A 8B 16 4CE0 mov dx, current_room_segment -273F:341E 33 F6 xor si,si ; Zero register -273F:3420 B5 06 mov ch,6 -273F:3422 loc_679: ; xref 273F:3465 -273F:3422 B1 0A mov cl, NUM_HORIZ_RECTS -273F:3424 loc_680: ; Screen horizontal loop -273F:3424 F6 07 80 test byte ptr [bx],80h ; Does rect need displaying? -273F:3427 74 23 jz loc_683 ; If not then skip -273F:3429 80 27 7F and byte ptr [bx],7Fh ; Clear displayed bit -273F:342C 80 0F 01 or byte ptr [bx],1 -273F:342F 57 push di -273F:3430 56 push si -273F:3431 1E push ds -273F:3432 8E DA mov ds,dx - -273F:3434 B6 20 mov dh, RECT_SIZE -273F:3436 loc_681: ; Vertical loop -273F:3436 B2 10 mov dl, RECT_SIZE/2 -273F:3438 loc_682: ; Horizontal loop -273F:3438 A5 movsw ; Mov [si] to es:[di] -273F:3439 80 EA 01 sub dl,1 -273F:343C 75 FA jnz loc_682 ; End of horizontal loop - -273F:343E 81 C7 0120 add di, SCREEN_WIDTH-RECT_SIZE -273F:3442 80 EE 01 sub dh,1 -273F:3445 75 EF jnz loc_681 ; End of vertical loop - -273F:3447 8C DA mov dx,ds -273F:3449 1F pop ds -273F:344A 5E pop si -273F:344B 5F pop di -273F:344C loc_683: ; xref 273F:3427 -273F:344C 83 C3 01 add bx,1 -273F:344F 83 C7 20 add di, RECT_SIZE ; Next horizontal rect -273F:3452 81 C6 0400 add si, RECT_SIZE*RECT_SIZE ; Move to data for next src rect -273F:3456 80 E9 01 sub cl,1 -273F:3459 75 C9 jnz loc_680 ; Jump if not zero - -273F:345B 83 C3 08 add bx,8 -273F:345E ú81 C7 26C0 add di,26C0h ; (273F:26C0=0EDh) -273F:3462 80 ED 01 sub ch,1 -273F:3465 75 BB jnz loc_679 ; Jump if not zero -273F:3467 80 0E 11D0 30 or menubar_state, 30h ; (273F:11D0=56h) '0' -273F:346C C3 retn - - vga_show_compressed_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_346d proc near -273F:346D úBE 0992 mov si, offset rects_layer_0 -273F:3470 83 C6 4C add si,4Ch -273F:3473 C7 06 0DA6 0D92 mov rect_x_start, room_layers -273F:3479 C7 06 0DAA 0D96 mov num_horiz_rects, 0D96h -273F:347F B9 0003 mov cx,3 -273F:3482 loc_684: ; xref 273F:3523 -273F:3482 ú51 push cx -273F:3483 úBB 0100 mov bx,100h ; (273F:0100=6) -273F:3486 loc_685: ; xref 273F:3509 -273F:3486 ú51 push cx -273F:3487 56 push si -273F:3488 8B 3E 0DA6 mov di, rect_x_start -273F:348C 8B 05 mov ax,[di] -273F:348E 8E C0 mov es,ax -273F:3490 8B 45 02 mov ax,[di+2] -273F:3493 A3 0DA8 mov rect_y_end, ax -273F:3496 8B 3E 0DAA mov di, num_horiz_rects -273F:349A 8B 05 mov ax,[di] -273F:349C 8B D0 mov dx,ax -273F:349E 8B 45 02 mov ax,[di+2] -273F:34A1 A3 0DAC mov word ptr ds:[0DACh],ax ; (273F:0DAC=0EB09h) -273F:34A4 B5 06 mov ch,6 -273F:34A6 loc_686: ; xref 273F:34F8 -273F:34A6 B1 0A mov cl,0Ah -273F:34A8 loc_687: ; xref 273F:34F0 -273F:34A8 F6 04 80 test byte ptr [si],80h -273F:34AB 75 3D jnz loc_690 ; Jump if not zero -273F:34AD F6 00 80 test byte ptr [bx+si],80h -273F:34B0 75 38 jnz loc_690 ; Jump if not zero -273F:34B2 56 push si -273F:34B3 52 push dx -273F:34B4 8A 04 mov al,[si] -273F:34B6 32 E4 xor ah,ah ; Zero register -273F:34B8 F7 26 0DA8 mul rect_y_end -273F:34BC 8B F8 mov di,ax -273F:34BE 8A 00 mov al,[bx+si] -273F:34C0 32 E4 xor ah,ah ; Zero register -273F:34C2 F7 26 0DAC mul word ptr ds:[0DACh] ; (273F:0DAC=0EB09h) dx:ax = data * ax -273F:34C6 8B F0 mov si,ax -273F:34C8 5A pop dx -273F:34C9 1E push ds -273F:34CA 51 push cx -273F:34CB 53 push bx -273F:34CC 8E DA mov ds,dx -273F:34CE B9 0400 mov cx,400h -273F:34D1 8B DE mov bx,si -273F:34D3 81 C3 0200 add bx,200h - -273F:34D7 locloop_688: ; xref 273F:34E2 -273F:34D7 AC lodsb ; String [si] to al -273F:34D8 0A C0 or al,al ; Zero ? -273F:34DA 74 03 jz loc_689 ; Jump if zero -273F:34DC 26: 88 05 mov es:[di],al -273F:34DF loc_689: ; xref 273F:34DA -273F:34DF 83 C7 01 add di,1 -273F:34E2 E2 F3 loop locloop_688 ; Loop if cx > 0 - -273F:34E4 5B pop bx -273F:34E5 59 pop cx -273F:34E6 8C DA mov dx,ds -273F:34E8 1F pop ds -273F:34E9 5E pop si -273F:34EA loc_690: ; xref 273F:34AB, 34B0 -273F:34EA 83 C6 01 add si,1 -273F:34ED 80 E9 01 sub cl,1 -273F:34F0 75 B6 jnz loc_687 ; Jump if not zero -273F:34F2 83 C6 08 add si,8 -273F:34F5 80 ED 01 sub ch,1 -273F:34F8 75 AC jnz loc_686 ; Jump if not zero -273F:34FA 83 06 0DAA 04 add num_horiz_rects, 4 -273F:34FF 81 C3 0100 add bx,100h -273F:3503 5E pop si -273F:3504 59 pop cx -273F:3505 E2 02 loop locloop_691 ; Loop if cx > 0 - -273F:3507 EB 03 jmp short loc_692 ; (350C) - -273F:3509 locloop_691: ; xref 273F:3505 -273F:3509 E9 FF7A jmp loc_685 ; (3486) -273F:350C loc_692: ; xref 273F:3507 -273F:350C 59 pop cx -273F:350D E2 02 loop locloop_693 ; Loop if cx > 0 - -273F:350F EB 15 jmp short loc_ret_694 ; (3526) - -273F:3511 locloop_693: ; xref 273F:350D -273F:3511 81 C6 0100 add si,100h -273F:3515 83 06 0DA6 04 add rect_x_start, 4 -273F:351A A1 0DA6 mov ax, rect_x_start -273F:351D 05 0004 add ax,4 -273F:3520 A3 0DAA mov num_horiz_rects, ax -273F:3523 E9 FF5C jmp loc_684 ; (3482) - -273F:3526 loc_ret_694: ; xref 273F:350F -273F:3526 C3 retn - vga_346d endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; es:di = pointer to decoded screen - ; bx = buffer to store status of each screen rectangle - ; cl = layer number (0 to 3) - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_segment_screen proc near -273F:3527 88 0E 0DA5 mov current_layer, cl -273F:352B C6 06 0DA4 00 mov num_occupied_rects, 0 -273F:3530 C7 06 0DA2 0400 mov rectangle_size, RECTANGLE_SIZE -273F:3536 33 F6 xor si, si ; Zero register -273F:3538 B5 06 mov ch, NUM_VERT_RECTS -273F:353A loc_695: -273F:353A B1 0A mov cl, NUM_HORIZ_RECTS -273F:353C loc_696: -273F:353C 1E push ds -273F:353D 51 push cx -273F:353E 56 push si -273F:353F 57 push di -273F:3540 A1 4CE4 mov ax, data_segment2 -273F:3543 8E D8 mov ds,ax -273F:3545 E8 003A call copy_rectangle -273F:3548 5F pop di -273F:3549 5E pop si -273F:354A 59 pop cx -273F:354B 1F pop ds -273F:354C F6 06 0DA5 FF test current_layer, 0FFh ; Background layer? -273F:3551 74 09 jz loc_697 ; If yes, ignore empty check -273F:3553 0B D2 or dx,dx ; Was rectangle non-empty? -273F:3555 75 05 jnz loc_697 ; If yes, then jump -273F:3557 C6 07 FF mov byte ptr [bx], 0FFh ; Flag rect as empty -273F:355A EB 0E jmp short loc_698 -273F:355C loc_697: -273F:355C 03 3E 0DA2 add di, rectangle_size -273F:3560 A0 0DA4 mov al, num_occupied_rects -273F:3563 88 07 mov [bx], al -273F:3565 80 06 0DA4 01 add num_occupied_rects, 1 -273F:356A loc_698: ; xref 273F:355A -273F:356A 83 C6 20 add si, RECT_SIZE ; Move to next src rect -273F:356D 83 C3 01 add bx, 1 -273F:3570 80 E9 01 sub cl, 1 -273F:3573 75 C7 jnz loc_696 ; Loop for horiz rects -273F:3575 ú81 C6 26C0 add si, (RECT_SIZE-1) * SCREEN_WIDTH -273F:3579 83 C3 08 add bx, 8 -273F:357C 80 ED 01 sub ch, 1 -273F:357F 75 B9 jnz loc_695 ; Loop for vert rects -273F:3581 C3 retn - vga_segment_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3545 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3582 copy_rectangle proc near -273F:3582 33 D2 xor dx,dx ; Zero register -273F:3584 B9 0020 mov cx, 32 - -273F:3587 locloop_699: ; xref 273F:3596 -273F:3587 51 push cx -273F:3588 B9 0010 mov cx, 32/2 - -273F:358B locloop_700: ; Horizontal loop -273F:358B AD lodsw -273F:358C 0B D0 or dx, ax -273F:358E AB stosw ; Store ax to es:[di] -273F:358F E2 FA loop locloop_700 ; Loop if cx > 0 - -273F:3591 81 C6 0120 add si, 320 - 32 ; Move to next line -273F:3595 59 pop cx -273F:3596 E2 EF loop locloop_699 ; Vertical loop - -273F:3598 C3 retn - copy_rectangle endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; ax = Y rect, dx = x rect, bp = current layer num - ; bx = rect mapping index - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_add_rect proc near -273F:3599 8B CD mov cx, bp -273F:359B locloop_701: ; xref 273F:35A7 -273F:359B 80 39 FE cmp byte ptr [bx+di],0FEh -273F:359E 72 0A jb loc_702 ; Jump if below -273F:35A0 ú81 C7 0100 add di, 100h -273F:35A4 83 C6 04 add si, 4 -273F:35A7 E2 F2 loop locloop_701 ; Loop if cx > 0 - -273F:35A9 C3 retn -273F:35AA loc_702: ; xref 273F:359E -273F:35AA 1E push ds -273F:35AB 52 push dx -273F:35AC 8B D0 mov dx, ax ; dx = y rect -273F:35AE D1 E0 shl ax, 1 ; ax=y*2 -273F:35B0 D1 E0 shl ax, 1 ; ax=y*4 -273F:35B2 03 D0 add dx, ax ; dx=y*5 -273F:35B4 B1 0B mov cl, 11 -273F:35B6 D3 E2 shl dx,cl ; dx=y*(32*320) -273F:35B8 81 C2 0A00 add dx, MENUBAR_BLOCK_SIZE ; dx =Y start on screen -273F:35BC 58 pop ax ; ax = x rect -273F:35BD B1 05 mov cl,5 -273F:35BF D3 E0 shl ax,cl ; ax=x*32 -273F:35C1 03 D0 add dx,ax ; dx=start pos on screen - -273F:35C3 8A 01 mov al, [bx+di] ; get cell status -273F:35C5 8B 1E 4CE4 mov bx, data_segment2 -273F:35C9 8E C3 mov es,bx -273F:35CB 8B 1C mov bx, [si] ; Get segment for layer to use -273F:35CD 8E DB mov ds, bx ; ds = source data -273F:35CF 8B FA mov di, dx ; es:di = destination -273F:35D1 32 E4 xor ah, ah -273F:35D3 B1 0A mov cl, 10 -273F:35D5 D3 E0 shl ax, cl ; ax=cell status*1024 -273F:35D7 8B F0 mov si, ax - -273F:35D9 B9 0020 mov cx, 32 ; Number of rows - -273F:35DC locloop_703: ; xref 273F:35F2 -273F:35DC 51 push cx -273F:35DD B9 0020 mov cx, 32 ; Set pixel width - -273F:35E0 locloop_704: -273F:35E0 AC lodsb ; Get next pixel -273F:35E1 0A C0 or al,al ; Zero (transparent)? -273F:35E3 74 03 jz loc_705 ; If yes, then skip -273F:35E5 26: 88 05 mov es:[di],al ; Store pixel -273F:35E8 loc_705: -273F:35E8 83 C7 01 add di,1 ; Move to next dest pos -273F:35EB E2 F3 loop locloop_704 - -273F:35ED ú81 C7 0120 add di, 320 - 32 ; Move to next line of rect -273F:35F1 59 pop cx -273F:35F2 E2 E8 loop locloop_703 ; Loop remaining lines - -273F:35F4 1F pop ds -273F:35F5 C3 retn - vga_add_rect endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_display_character proc near - -273F:35F6 57 push di -273F:35F7 1E push ds -273F:35F8 53 push bx -273F:35F9 51 push cx -273F:35FA 56 push si -273F:35FB 8E DD mov ds,bp -273F:35FD 2C 20 sub al,20h ; ' ' -273F:35FF 32 E4 xor ah,ah ; Zero register -273F:3601 B1 03 mov cl,3 -273F:3603 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:3605 8B F0 mov si,ax -273F:3607 B3 08 mov bl,8 ; Number of rows -273F:3609 loc_706: -273F:3609 B9 0008 mov cx,8 -273F:360C AC lodsb ; String [si] to al - -273F:360D locloop_707: ; xref 273F:361C -273F:360D D0 E0 shl al,1 ; Shift w/zeros fill -273F:360F 72 05 jc loc_708 ; Jump if carry Set -273F:3611 26: 88 15 mov es:[di],dl -273F:3614 EB 03 jmp short loc_709 ; (3619) -273F:3616 loc_708: ; xref 273F:360F -273F:3616 26: 88 35 mov es:[di],dh -273F:3619 loc_709: ; xref 273F:3614 -273F:3619 83 C7 01 add di,1 -273F:361C E2 EF loop locloop_707 ; Loop if cx > 0 - -273F:361E ú81 C7 0138 add di,data_1445e ; (A000:0138=0) -273F:3622 80 EB 01 sub bl,1 -273F:3625 75 E2 jnz loc_706 ; Jump if not zero -273F:3627 5E pop si -273F:3628 59 pop cx -273F:3629 5B pop bx -273F:362A 1F pop ds -273F:362B 5F pop di -273F:362C C3 retn - - vga_display_character endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_menu_items proc near - -273F:362D B8 A000 mov ax, VGA_SEGMENT -273F:3630 8E C0 mov es,ax -273F:3632 B1 03 mov cl,3 -273F:3634 BA 0048 mov dx,48h -273F:3637 8A 1E 334E mov bl,byte ptr ds:[334Eh] ; (273F:334E=0E4h) -273F:363B 32 FF xor bh,bh ; Zero register -273F:363D D3 E3 shl bx,cl ; Shift w/zeros fill -273F:363F 1E push ds -273F:3640 8B 36 335A mov si,word ptr ds:[335Ah] ; (273F:335A=0ACA4h) -273F:3644 8B FE mov di,si -273F:3646 A1 3376 mov ax,data_265 ; (273F:3376=0F632h) -273F:3649 8E D8 mov ds,ax -273F:364B loc_710: ; xref 273F:365A -273F:364B 56 push si -273F:364C 8B CB mov cx,bx -273F:364E F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3650 5E pop si -273F:3651 81 C6 0140 add si,140h -273F:3655 8B FE mov di,si -273F:3657 83 EA 01 sub dx,1 -273F:365A 75 EF jnz loc_710 ; Jump if not zero -273F:365C 1F pop ds - -273F:365D loc_ret_711: ; xref 273F:366F -273F:365D C3 retn -273F:365E loc_712: ; xref 273F:36AD -273F:365E 80 26 11D0 FB and menubar_state, 0FBh ; (273F:11D0=56h) -273F:3663 C3 retn - - vga_menu_items endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [show_cursor_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_cursor proc near - -273F:3664 C7 06 F010 0000 mov timer_ticks, 0 -273F:366A F6 06 11D0 04 test menubar_state, 4 ; (273F:11D0=56h) -273F:366F 75 EC jnz loc_ret_711 ; Jump if not zero -273F:3671 80 0E 11D0 04 or menubar_state, 4 ; (273F:11D0=56h) -273F:3676 8B 3E 11E8 mov di,word ptr ds:[11E8h] ; (273F:11E8=14B9h) -273F:367A úBE 11EE mov si, offset data_641 -273F:367D 8B 1E 11EA mov bx,word ptr ds:[11EAh] ; (273F:11EA=8B00h) -273F:3681 8B 16 11EC mov dx,word ptr ds:[11ECh] ; (273F:11EC=1B55h) -273F:3685 0B D2 or dx,dx ; Zero ? -273F:3687 74 1F jz loc_714 ; Jump if zero - -273F:3689 B8 A000 mov ax, VGA_SEGMENT -273F:368C 8E C0 mov es,ax -273F:368E loc_713: ; xref 273F:36A0 -273F:368E 56 push si -273F:368F 57 push di -273F:3690 8B CB mov cx,bx -273F:3692 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3694 5F pop di -273F:3695 5E pop si -273F:3696 83 C6 10 add si,10h -273F:3699 81 C7 0140 add di,140h -273F:369D 83 EA 01 sub dx,1 -273F:36A0 75 EC jnz loc_713 ; Jump if not zero -273F:36A2 C7 06 11EC 0000 mov word ptr ds:[11ECh],0 ; (273F:11EC=1B55h) -273F:36A8 loc_714: ; xref 273F:3687 -273F:36A8 F6 06 11D0 01 test menubar_state, 1 ; (273F:11D0=56h) -273F:36AD 75 AF jnz loc_712 ; Jump if not zero -273F:36AF A1 11D8 mov ax, mouse_y2 -273F:36B2 2B 06 11DF sub ax, cursor_centroid -273F:36B6 73 02 jnc loc_715 ; Jump if carry=0 -273F:36B8 33 C0 xor ax,ax ; Zero register -273F:36BA loc_715: ; xref 273F:36B6 -273F:36BA BA 00C8 mov dx,0C8h -273F:36BD 2B D0 sub dx,ax -273F:36BF 83 FA 11 cmp dx,11h -273F:36C2 72 03 jb loc_716 ; Jump if below -273F:36C4 BA 0010 mov dx,10h -273F:36C7 loc_716: ; xref 273F:36C2 -273F:36C7 89 16 11EC mov word ptr ds:[11ECh],dx ; (273F:11EC=1B55h) -273F:36CB 8B 36 11D6 mov si, mouse_x2 -273F:36CF 2B 36 11DF sub si, cursor_centroid -273F:36D3 73 02 jnc loc_717 ; Jump if carry=0 -273F:36D5 33 F6 xor si,si ; Zero register -273F:36D7 loc_717: ; xref 273F:36D3 -273F:36D7 BD 0140 mov bp,140h -273F:36DA 2B EE sub bp,si -273F:36DC 83 FD 11 cmp bp,11h -273F:36DF 72 03 jb loc_718 ; Jump if below -273F:36E1 BD 0010 mov bp,10h -273F:36E4 loc_718: ; xref 273F:36DF -273F:36E4 89 2E 11EA mov word ptr ds:[11EAh],bp ; (273F:11EA=8B00h) -273F:36E8 8B C8 mov cx,ax -273F:36EA D1 E0 shl ax,1 ; Shift w/zeros fill -273F:36EC D1 E0 shl ax,1 ; Shift w/zeros fill -273F:36EE 03 C1 add ax,cx -273F:36F0 B1 06 mov cl,6 -273F:36F2 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:36F4 03 F0 add si,ax -273F:36F6 89 36 11E8 mov word ptr ds:[11E8h],si ; (273F:11E8=14B9h) -273F:36FA 1E push ds -273F:36FB FF 36 4CF4 push cursors_segment -273F:36FF FF 36 11E1 push cursor_index -273F:3703 1E push ds -273F:3704 07 pop es -273F:3705 B8 A000 mov ax, VGA_SEGMENT -273F:3708 8E D8 mov ds,ax -273F:370A úBF 11EE mov di, offset data_641 -273F:370D 56 push si -273F:370E 52 push dx -273F:370F loc_719: ; xref 273F:3721 -273F:370F 56 push si -273F:3710 57 push di -273F:3711 8B CD mov cx,bp -273F:3713 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3715 5F pop di -273F:3716 5E pop si -273F:3717 ú81 C6 0140 add si,data_1451e ; (B2DE:0140=0) -273F:371B 83 C7 10 add di,10h -273F:371E 83 EA 01 sub dx,1 -273F:3721 75 EC jnz loc_719 ; Jump if not zero -273F:3723 1E push ds -273F:3724 07 pop es - -273F:3725 5A pop dx -273F:3726 5F pop di -273F:3727 58 pop ax -273F:3728 86 E0 xchg ah,al -273F:372A 8B F0 mov si,ax -273F:372C 1F pop ds -273F:372D loc_720: ; xref 273F:374A -273F:372D 56 push si -273F:372E 57 push di -273F:372F 8B CD mov cx,bp - -273F:3731 locloop_721: ; xref 273F:373C -273F:3731 AC lodsb ; String [si] to al -273F:3732 0A C0 or al,al ; Zero ? -273F:3734 74 03 jz loc_722 ; Jump if zero -273F:3736 26: 88 05 mov es:[di],al -273F:3739 loc_722: ; xref 273F:3734 -273F:3739 83 C7 01 add di,1 -273F:373C E2 F3 loop locloop_721 ; Loop if cx > 0 - -273F:373E 5F pop di -273F:373F 5E pop si -273F:3740 83 C6 10 add si,10h -273F:3743 81 C7 0140 add di,140h -273F:3747 83 EA 01 sub dx,1 -273F:374A 75 E1 jnz loc_720 ; Jump if not zero -273F:374C 1F pop ds -273F:374D 80 26 11D0 FB and menubar_state, 0FBh ; (273F:11D0=56h) - -273F:3752 loc_ret_723: ; xref 273F:3758 -273F:3752 C3 retn - - vga_cursor endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - sub_unknown_1 proc near - -273F:3753 F6 06 11D0 01 test menubar_state, 1 -273F:3758 75 F8 jnz loc_ret_723 -273F:375A 1E push ds -273F:375B 8B 36 11E8 mov si,word ptr ds:[11E8h] -273F:375F 8B 1E 11EA mov bx,word ptr ds:[11EAh] -273F:3763 8B 16 11EC mov dx,word ptr ds:[11ECh] -273F:3767 0B D2 or dx,dx -273F:3769 74 51 jz loc_728 -273F:376B FF 36 4CF4 push cursors_segment -273F:376F FF 36 11E1 push cursor_index -273F:3773 52 push dx -273F:3774 56 push si -273F:3775 1E push ds -273F:3776 07 pop es -273F:3777 A1 4CE4 mov ax, data_segment2 -273F:377A 8E D8 mov ds,ax -273F:377C úBF 11EE mov di,11EEh -273F:377F loc_724: -273F:377F 56 push si -273F:3780 57 push di -273F:3781 8B CB mov cx,bx -273F:3783 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3785 5F pop di -273F:3786 5E pop si -273F:3787 83 C7 10 add di,10h -273F:378A ú81 C6 0140 add si,data_1451e ; (B2DE:0140=0) -273F:378E 83 EA 01 sub dx,1 -273F:3791 75 EC jnz loc_724 ; Jump if not zero -273F:3793 1E push ds -273F:3794 07 pop es -273F:3795 5F pop di -273F:3796 5A pop dx -273F:3797 58 pop ax -273F:3798 86 E0 xchg ah,al -273F:379A 8B F0 mov si,ax -273F:379C 1F pop ds -273F:379D loc_725: ; xref 273F:37BA -273F:379D 57 push di -273F:379E 56 push si -273F:379F 8B CB mov cx,bx - -273F:37A1 locloop_726: ; xref 273F:37AC -273F:37A1 AC lodsb ; String [si] to al -273F:37A2 0A C0 or al,al ; Zero ? -273F:37A4 74 03 jz loc_727 ; Jump if zero -273F:37A6 26: 88 05 mov es:[di],al -273F:37A9 loc_727: ; xref 273F:37A4 -273F:37A9 83 C7 01 add di,1 -273F:37AC E2 F3 loop locloop_726 ; Loop if cx > 0 - -273F:37AE 5E pop si -273F:37AF 5F pop di -273F:37B0 83 C6 10 add si,10h -273F:37B3 ú81 C7 0140 add di, SCREEN_WIDTH -273F:37B7 83 EA 01 sub dx,1 -273F:37BA 75 E1 jnz loc_725 ; Jump if not zero -273F:37BC loc_728: ; xref 273F:3769 -273F:37BC 1F pop ds -273F:37BD C3 retn - - sub_unknown_1 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:30B7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:37BE sub_73 proc near -273F:37BE F6 06 11D0 01 test menubar_state, 1 ; (273F:11D0=56h) -273F:37C3 75 2C jnz loc_ret_730 ; Jump if not zero -273F:37C5 A1 4CE4 mov ax, data_segment2 -273F:37C8 8E C0 mov es,ax -273F:37CA 8B 3E 11E8 mov di,word ptr ds:[11E8h] ; (273F:11E8=14B9h) -273F:37CE 8B 1E 11EA mov bx,word ptr ds:[11EAh] ; (273F:11EA=8B00h) -273F:37D2 8B 16 11EC mov dx,word ptr ds:[11ECh] ; (273F:11EC=1B55h) -273F:37D6 0B D2 or dx,dx ; Zero ? -273F:37D8 74 17 jz loc_ret_730 ; Jump if zero -273F:37DA úBE 11EE mov si,11EEh ; (273F:11EE=3Bh) -273F:37DD loc_729: ; xref 273F:37EF -273F:37DD 57 push di -273F:37DE 56 push si -273F:37DF 8B CB mov cx,bx -273F:37E1 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:37E3 5E pop si -273F:37E4 5F pop di -273F:37E5 81 C7 0140 add di,140h -273F:37E9 83 C6 10 add si,10h -273F:37EC 83 EA 01 sub dx,1 -273F:37EF 75 EC jnz loc_729 ; Jump if not zero - -273F:37F1 loc_ret_730: ; xref 273F:37C3, 37D8 -273F:37F1 C3 retn - sub_73 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_add_animation proc near -273F:37F2 2E: C7 06 1500 0000 mov word ptr cs:data_215,0 ; (273F:1500=0) -273F:37F9 C6 06 11B0 00 mov data_11b0, 0 -273F:37FE 8A 6F 06 mov ch, [bx+ANIM_HEIGHT] ; Get height -273F:3801 8A 4F 04 mov cl, [bx+ANIM_WIDTH] ; Get width -273F:3804 8B 47 02 mov ax, [bx+ANIM_Y] ; Get Y position -273F:3807 2D 0088 sub ax, 88h -273F:380A 73 16 jnc loc_731 - -273F:380C 8B D0 mov dx, ax ; Top clipping -273F:380E 02 D5 add dl, ch -273F:3810 73 15 jnc loc_ret_732 ; Jump if carry=0 -273F:3812 74 13 jz loc_ret_732 ; Jump if zero -273F:3814 F7 D8 neg ax -273F:3816 2A E8 sub ch, al -273F:3818 F6 E1 mul cl ; ax = reg * al -273F:381A D1 E8 shr ax, 1 -273F:381C 03 F0 add si, ax -273F:381E 33 C0 xor ax, ax ; Zero register -273F:3820 EB 13 jmp short loc_734 -273F:3822 loc_731: ; xref 273F:380A -273F:3822 3D 00C0 cmp ax, 192 ; Below bottom row? -273F:3825 72 01 jb loc_733 - -273F:3827 loc_ret_732: ; xref 273F:3810, 3812 -273F:3827 C3 retn -273F:3828 loc_733: -273F:3828 8B D0 mov dx, ax ; Get start row -273F:382A 03 57 06 add dx, [bx+ANIM_HEIGHT] ; Add number of rows -273F:382D 81 EA 00C0 sub dx, 192 ; Bottom row > 192? -273F:3831 76 02 jbe loc_734 -273F:3833 2A EA sub ch, dl ; Yes, reduce height to fit -273F:3835 loc_734: -273F:3835 51 push cx -273F:3836 8B D0 mov dx, ax ; ax = line number, and -273F:3838 D1 E0 shl ax, 1 ; will be * 320 -273F:383A D1 E0 shl ax, 1 -273F:383C 03 D0 add dx, ax -273F:383E B1 06 mov cl, 6 -273F:3840 D3 E2 shl dx, cl -273F:3842 8B FA mov di, dx ; di = start of line -273F:3844 ú81 C7 0A00 add di, MENUBAR_BLOCK_SIZE ; Compensate for menubar -273F:3848 59 pop cx - -273F:3849 8B 07 mov ax, [bx+ANIM_X] ; Get start X position -273F:384B 2D 0080 sub ax, 80h -273F:384E 73 21 jnc loc_736 ; Completely on-screen -273F:3850 8B D0 mov dx, ax -273F:3852 02 D1 add dl, cl -273F:3854 72 01 jc loc_735 ; Jump if carry Set -273F:3856 C3 retn -273F:3857 loc_735: ; xref 273F:3854 -273F:3857 F7 D0 not ax -273F:3859 2A C8 sub cl, al -273F:385B 2E: A3 1500 mov word ptr cs:data_215, ax -273F:385F C6 06 11B0 01 mov data_11b0, 1 -273F:3864 8B 47 04 mov ax, [bx+ANIM_WIDTH] -273F:3867 D1 E8 shr ax, 1 -273F:3869 2E: A3 1505 mov cs:data_218, ax -273F:386D 33 C0 xor ax, ax ; Zero register -273F:386F EB 22 jmp short loc_738 ; (3893) -273F:3871 loc_736: ; xref 273F:384E -273F:3871 3D 0140 cmp ax, SCREEN_WIDTH -273F:3874 72 01 jb loc_737 ; Jump if below -273F:3876 C3 retn - -273F:3877 loc_737: ; xref 273F:3874 -273F:3877 8B D0 mov dx, ax -273F:3879 03 57 04 add dx, [bx+ANIM_WIDTH] -273F:387C 81 EA 0140 sub dx, SCREEN_WIDTH -273F:3880 76 11 jbe loc_738 ; Jump if below or = -273F:3882 2A CA sub cl, dl -273F:3884 C6 06 11B0 01 mov data_11b0, 1 - -273F:3889 8B 57 04 mov dx, [bx+ANIM_WIDTH] -273F:388C D1 EA shr dx, 1 -273F:388E 2E: 89 16 1505 mov cs:data_218, dx -273F:3893 loc_738: -273F:3893 03 F8 add di, ax -273F:3895 8A 5F 28 mov bl, [bx+ANIM_START_COLOUR] ; Colour offset start -273F:3898 F6 06 11B0 FF test data_11b0, 0FFh -273F:389D 75 47 jnz loc_743 ; Jump if not zero -273F:389F 1E push ds -273F:38A0 06 push es -273F:38A1 A1 4CE4 mov ax, data_segment2 -273F:38A4 8E C0 mov es, ax -273F:38A6 1F pop ds -273F:38A7 8A D1 mov dl, cl -273F:38A9 8A CD mov cl, ch -273F:38AB 32 ED xor ch, ch ; Zero register -273F:38AD 32 F6 xor dh, dh ; Zero register -273F:38AF D1 EA shr dx, 1 ; Divide by 2 - -; This seems to be the loop for applying an animation to the off-screen buffer -; cx = height, dx = width/2, es:di = dest, bl = starting colour offset -; ds:si = source - each byte consists of two pixels. An output pixel will -; be the starting colour offset + the nibble value of the source byte - -273F:38B1 locloop_739: ; xref 273F:38E2 -273F:38B1 51 push cx -273F:38B2 52 push dx -273F:38B3 B1 04 mov cl, 4 -273F:38B5 57 push di -273F:38B6 loc_740: ; xref 273F:38D9 -273F:38B6 AC lodsb ; String [si] to al -273F:38B7 8A E0 mov ah, al -273F:38B9 D2 EC shr ah, cl ; Shift w/zeros fill -273F:38BB 25 0F0F and ax, 0F0Fh -273F:38BE 0A E4 or ah,ah ; Zero ? -273F:38C0 74 05 jz loc_741 ; Jump if zero -273F:38C2 02 E3 add ah,bl -273F:38C4 26: 88 25 mov es:[di],ah -273F:38C7 loc_741: ; xref 273F:38C0 -273F:38C7 83 C7 01 add di, 1 -273F:38CA 0A C0 or al, al ; Zero ? -273F:38CC 74 05 jz loc_742 ; Jump if zero -273F:38CE 02 C3 add al, bl -273F:38D0 26: 88 05 mov es:[di], al -273F:38D3 loc_742: ; xref 273F:38CC -273F:38D3 83 C7 01 add di,1 -273F:38D6 83 EA 01 sub dx,1 -273F:38D9 75 DB jnz loc_740 ; Jump if not zero - -273F:38DB 5F pop di -273F:38DC ú81 C7 0140 add di, SCREEN_WIDTH -273F:38E0 5A pop dx -273F:38E1 59 pop cx -273F:38E2 E2 CD loop locloop_739 ; Loop if cx > 0 - -273F:38E4 1F pop ds -273F:38E5 C3 retn - - -273F:38E6 loc_743: ; xref 273F:389D -273F:38E6 1E push ds -273F:38E7 06 push es -273F:38E8 A1 4CE4 mov ax, data_segment2 -273F:38EB 8E C0 mov es, ax -273F:38ED 1F pop ds -273F:38EE 8A D1 mov dl, cl -273F:38F0 8A CD mov cl, ch -273F:38F2 32 ED xor ch, ch ; Zero register -273F:38F4 32 F6 xor dh, dh ; Zero register - -273F:38F6 locloop_744: ; xref 273F:3944 -273F:38F6 51 push cx -273F:38F7 8B CA mov cx,dx -273F:38F9 57 push di -273F:38FA 56 push si -273F:38FB 2E: A1 1500 mov ax,word ptr cs:data_215 ; (273F:1500=0) -273F:38FF D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3901 9C pushf ; Push flags -273F:3902 03 F0 add si,ax -273F:3904 9D popf ; Pop flags -273F:3905 73 05 jnc locloop_745 ; Jump if carry=0 -273F:3907 AC lodsb ; String [si] to al -273F:3908 24 0F and al,0Fh -273F:390A EB 1E jmp short locloop_747 ; (392A) - -273F:390C locloop_745: ; xref 273F:3905, 3936 -273F:390C AC lodsb ; String [si] to al -273F:390D 8A E0 mov ah,al -273F:390F D0 EC shr ah,1 ; Shift w/zeros fill -273F:3911 D0 EC shr ah,1 ; Shift w/zeros fill -273F:3913 D0 EC shr ah,1 ; Shift w/zeros fill -273F:3915 D0 EC shr ah,1 ; Shift w/zeros fill -273F:3917 25 0F0F and ax,0F0Fh -273F:391A 0A E4 or ah,ah ; Zero ? -273F:391C 74 05 jz loc_746 ; Jump if zero -273F:391E 02 E3 add ah,bl -273F:3920 26: 88 25 mov es:[di],ah -273F:3923 loc_746: ; xref 273F:391C -273F:3923 83 C7 01 add di,1 -273F:3926 E2 02 loop locloop_747 ; Loop if cx > 0 - -273F:3928 EB 0E jmp short loc_749 ; (3938) - -273F:392A locloop_747: ; xref 273F:390A, 3926 -273F:392A 0A C0 or al,al ; Zero ? -273F:392C 74 05 jz loc_748 ; Jump if zero -273F:392E 02 C3 add al,bl -273F:3930 26: 88 05 mov es:[di],al -273F:3933 loc_748: ; xref 273F:392C -273F:3933 83 C7 01 add di,1 -273F:3936 E2 D4 loop locloop_745 ; Loop if cx > 0 - -273F:3938 loc_749: ; xref 273F:3928 -273F:3938 5E pop si -273F:3939 2E: 03 36 1505 add si,cs:data_218 ; (273F:1505=0) -273F:393E 5F pop di -273F:393F ú81 C7 0140 add di, SCREEN_WIDTH -273F:3943 59 pop cx -273F:3944 E2 B0 loop locloop_744 ; Loop if cx > 0 - -273F:3946 1F pop ds -273F:3947 C3 retn - vga_add_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:3948 A1 4CE4 mov ax, data_segment2 -273F:394B 8E C0 mov es,ax -273F:394D B2 08 mov dl,8 -273F:394F loc_750: ; xref 273F:396C -273F:394F 57 push di -273F:3950 8B CB mov cx,bx - -273F:3952 locloop_751: ; xref 273F:3963 -273F:3952 26: 80 3D E2 cmp byte ptr es:[di],0E2h -273F:3956 74 06 je loc_752 ; Jump if equal -273F:3958 26: 80 3D FF cmp byte ptr es:[di],0FFh -273F:395C 75 04 jne loc_753 ; Jump if not equal -273F:395E loc_752: ; xref 273F:3956 -273F:395E 26: 80 35 1D xor byte ptr es:[di],1Dh -273F:3962 loc_753: ; xref 273F:395C -273F:3962 47 inc di -273F:3963 E2 ED loop locloop_751 ; Loop if cx > 0 - -273F:3965 5F pop di -273F:3966 ú81 C7 0140 add di,data_1446e ; (A000:0140=0) -273F:396A FE CA dec dl -273F:396C 75 E1 jnz loc_750 ; Jump if not zero -273F:396E C3 retn - - vga_add_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - menubar_copy_to_screen proc near - -273F:396F B8 A000 mov ax, VGA_SEGMENT -273F:3972 8E C0 mov es,ax -273F:3974 1E push ds -273F:3975 A1 4CE4 mov ax, data_segment2 -273F:3978 8E D8 mov ds,ax -273F:397A B9 0500 mov cx, MENUBAR_BLOCK_SIZE/2 ; 500h words -500h -273F:397D 33 F6 xor si,si ; Zero register -273F:397F 33 FF xor di,di ; Zero register -273F:3981 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:3983 1F pop ds -273F:3984 C6 06 4BF0 00 mov byte ptr ds:[4BF0h],0 ; (273F:4BF0=3) -273F:3989 C3 retn - - menubar_copy_to_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0BF9, 7B99, A7CC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:398A decode_file_entry proc near -273F:398A 83 C2 08 add dx,8 -273F:398D 1E push ds -273F:398E 8C C3 mov bx,es -273F:3990 8E C2 mov es,dx -273F:3992 8E DA mov ds,dx -273F:3994 A1 0402 mov ax, ds:[402h] -273F:3997 B1 0C mov cl,0Ch -273F:3999 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:399B 03 D0 add dx,ax -273F:399D A1 0400 mov ax, ds:[400h] -273F:39A0 B1 04 mov cl,4 -273F:39A2 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:39A4 03 D0 add dx,ax -273F:39A6 8B 36 0400 mov si, ds:[400h] -273F:39AA 83 E6 0F and si,0Fh -273F:39AD 8E DA mov ds,dx -273F:39AF 8B D3 mov dx,bx -273F:39B1 33 FF xor di,di ; Zero register -273F:39B3 úBB 0404 mov bx, ds:[404h] -273F:39B6 26: 8A 2F mov ch,es:[bx] -273F:39B9 83 C3 01 add bx,1 -273F:39BC B1 09 mov cl,9 -273F:39BE loc_754: ; xref 273F:3A70 -273F:39BE úAC lodsb ; String [si] to al -273F:39BF 06 push es -273F:39C0 8E C2 mov es,dx -273F:39C2 AA stosb ; Store al to es:[di] -273F:39C3 07 pop es -273F:39C4 32 E4 xor ah,ah ; Zero register -273F:39C6 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:39C8 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:39CA 8B E8 mov bp,ax -273F:39CC loc_755: ; xref 273F:3A02, 3A1D, 3A9C -273F:39CC ú80 E9 01 sub cl,1 -273F:39CF 75 08 jnz loc_756 ; Jump if not zero -273F:39D1 26: 8A 2F mov ch,es:[bx] -273F:39D4 B1 08 mov cl,8 -273F:39D6 83 C3 01 add bx,1 -273F:39D9 loc_756: ; xref 273F:39CF -273F:39D9 D0 E5 shl ch,1 ; Shift w/zeros fill -273F:39DB 72 42 jc loc_761 ; Jump if carry Set -273F:39DD 80 E9 01 sub cl,1 -273F:39E0 75 08 jnz loc_757 ; Jump if not zero -273F:39E2 26: 8A 2F mov ch,es:[bx] -273F:39E5 B1 08 mov cl,8 -273F:39E7 83 C3 01 add bx,1 -273F:39EA loc_757: ; xref 273F:39E0 -273F:39EA D0 E5 shl ch,1 ; Shift w/zeros fill -273F:39EC 72 16 jc loc_759 ; Jump if carry Set -273F:39EE 87 DD xchg bx,bp -273F:39F0 26: 8A 07 mov al,es:[bx] -273F:39F3 8B DD mov bx,bp -273F:39F5 loc_758: ; xref 273F:3A49, 3A53, 3A6E -273F:39F5 ú06 push es -273F:39F6 8E C2 mov es,dx -273F:39F8 AA stosb ; Store al to es:[di] -273F:39F9 07 pop es -273F:39FA 32 E4 xor ah,ah ; Zero register -273F:39FC D1 E0 shl ax,1 ; Shift w/zeros fill -273F:39FE D1 E0 shl ax,1 ; Shift w/zeros fill -273F:3A00 8B E8 mov bp,ax -273F:3A02 EB C8 jmp short loc_755 ; (39CC) -273F:3A04 loc_759: ; xref 273F:39EC -273F:3A04 8B C5 mov ax,bp -273F:3A06 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A08 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A0A 8A 24 mov ah,[si] -273F:3A0C 83 C6 01 add si,1 -273F:3A0F 0A E4 or ah,ah ; Zero ? -273F:3A11 74 60 jz loc_768 ; Jump if zero -273F:3A13 06 push es -273F:3A14 8E C2 mov es,dx -273F:3A16 loc_760: ; xref 273F:3A1A -273F:3A16 AA stosb ; Store al to es:[di] -273F:3A17 80 EC 01 sub ah,1 -273F:3A1A 75 FA jnz loc_760 ; Jump if not zero -273F:3A1C 07 pop es -273F:3A1D EB AD jmp short loc_755 ; (39CC) -273F:3A1F loc_761: ; xref 273F:39DB -273F:3A1F 80 E9 01 sub cl,1 -273F:3A22 75 08 jnz loc_762 ; Jump if not zero -273F:3A24 26: 8A 2F mov ch,es:[bx] -273F:3A27 B1 08 mov cl,8 -273F:3A29 83 C3 01 add bx,1 -273F:3A2C loc_762: ; xref 273F:3A22 -273F:3A2C D0 E5 shl ch,1 ; Shift w/zeros fill -273F:3A2E 72 25 jc loc_765 ; Jump if carry Set -273F:3A30 80 E9 01 sub cl,1 -273F:3A33 75 08 jnz loc_763 ; Jump if not zero -273F:3A35 26: 8A 2F mov ch,es:[bx] -273F:3A38 B1 08 mov cl,8 -273F:3A3A 83 C3 01 add bx,1 -273F:3A3D loc_763: ; xref 273F:3A33 -273F:3A3D D0 E5 shl ch,1 ; Shift w/zeros fill -273F:3A3F 72 0A jc loc_764 ; Jump if carry Set -273F:3A41 87 DD xchg bx,bp -273F:3A43 26: 8A 47 01 mov al,es:[bx+1] -273F:3A47 8B DD mov bx,bp -273F:3A49 EB AA jmp short loc_758 ; (39F5) -273F:3A4B loc_764: ; xref 273F:3A3F -273F:3A4B 87 DD xchg bx,bp -273F:3A4D 26: 8A 47 02 mov al,es:[bx+2] -273F:3A51 8B DD mov bx,bp -273F:3A53 EB A0 jmp short loc_758 ; (39F5) -273F:3A55 loc_765: ; xref 273F:3A2E -273F:3A55 80 E9 01 sub cl,1 -273F:3A58 75 08 jnz loc_766 ; Jump if not zero -273F:3A5A 26: 8A 2F mov ch,es:[bx] -273F:3A5D B1 08 mov cl,8 -273F:3A5F 83 C3 01 add bx,1 -273F:3A62 loc_766: ; xref 273F:3A58 -273F:3A62 D0 E5 shl ch,1 ; Shift w/zeros fill -273F:3A64 72 0A jc loc_767 ; Jump if carry Set -273F:3A66 87 DD xchg bx,bp -273F:3A68 26: 8A 47 03 mov al,es:[bx+3] -273F:3A6C 8B DD mov bx,bp -273F:3A6E EB 85 jmp short loc_758 ; (39F5) -273F:3A70 loc_767: ; xref 273F:3A64 -273F:3A70 E9 FF4B jmp loc_754 ; (39BE) -273F:3A73 loc_768: ; xref 273F:3A11 -273F:3A73 AC lodsb ; String [si] to al -273F:3A74 0A C0 or al,al ; Zero ? -273F:3A76 74 27 jz loc_769 ; Jump if zero -273F:3A78 8B C7 mov ax,di -273F:3A7A D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A7C D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A7E D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A80 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A82 03 D0 add dx,ax -273F:3A84 83 E7 0F and di,0Fh -273F:3A87 51 push cx -273F:3A88 8C D9 mov cx,ds -273F:3A8A 8B C6 mov ax,si -273F:3A8C D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A8E D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A90 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A92 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:3A94 03 C8 add cx,ax -273F:3A96 8E D9 mov ds,cx -273F:3A98 83 E6 0F and si,0Fh -273F:3A9B 59 pop cx -273F:3A9C E9 FF2D jmp loc_755 ; (39CC) -273F:3A9F loc_769: ; xref 273F:3A76 -273F:3A9F 1F pop ds -273F:3AA0 83 C7 0F add di,0Fh -273F:3AA3 D1 EF shr di,1 ; Shift w/zeros fill -273F:3AA5 D1 EF shr di,1 ; Shift w/zeros fill -273F:3AA7 D1 EF shr di,1 ; Shift w/zeros fill -273F:3AA9 D1 EF shr di,1 ; Shift w/zeros fill -273F:3AAB 03 D7 add dx,di -273F:3AAD C3 retn - decode_file_entry endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00C9, 70CA, 8FFA - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3AAE replace_vga_palette proc near -273F:3AAE 1E push ds -273F:3AAF 07 pop es -273F:3AB0 úBE 1757 mov si,offset replacement_vga_palette -273F:3AB3 úBF 15DA mov di,offset unprocessed_vga_palette2 -273F:3AB6 B9 00B4 mov cx, 60*3 ; Move 60 palette entries -273F:3AB9 F3/ A4 rep movsb - -273F:3ABB replace_vga_palette2: -273F:3ABB úBE 180B mov si, offset replacement_vga_ palette2 -273F:3ABE úBF 16EB mov di, offset unprocessed_vga_palette3 -273F:3AC1 B9 0018 mov cx, 8*3 ; Move 8 palette entries -273F:3AC4 F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:3AC6 C3 retn - replace_vga_palette endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0C13, 0C35, 0C5A, 3C95, 75AE, 75D2, 75F0 - ; 760E, A549, A5BB, A66D, A6C4, A914 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3AC7 read_palette proc near -273F:3AC7 8C D9 mov cx,ds -273F:3AC9 BA 1457 mov dx, unprocessed_vga_palette -273F:3ACC 56 push si -273F:3ACD E8 C844 call read_entry ; (0314) -273F:3AD0 5E pop si -273F:3AD1 C6 06 1456 FF mov current_room_num, 0FFh ; (31E4:1456=0FFh) -273F:3AD6 C3 retn - read_palette endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - vga_toggle_menu_highlight proc near - -273F:3AD7 A1 4CE4 mov ax, data_segment2 -273F:3ADA 8E C0 mov es,ax -273F:3ADC BA 0008 mov dx,8 ; Number of lines -273F:3ADF B0 F7 mov al,0F7h -273F:3AE1 loc_770: ; xref 273F:3AFA -273F:3AE1 57 push di -273F:3AE2 8B CB mov cx,bx - -273F:3AE4 locloop_771: ; xref 273F:3AF2 -273F:3AE4 26: 84 05 test al,es:[di] -273F:3AE7 74 05 jz loc_772 ; Jump if zero -273F:3AE9 26: 38 05 cmp es:[di],al -273F:3AEC 75 03 jne loc_773 ; Jump if not equal -273F:3AEE loc_772: ; xref 273F:3AE7 -273F:3AEE 26: 30 05 xor es:[di],al -273F:3AF1 loc_773: ; xref 273F:3AEC -273F:3AF1 47 inc di -273F:3AF2 E2 F0 loop locloop_771 ; Loop if cx > 0 - -273F:3AF4 5F pop di -273F:3AF5 81 C7 0140 add di,140h -273F:3AF9 4A dec dx -273F:3AFA 75 E5 jnz loc_770 ; Jump if not zero -273F:3AFC C3 retn - - vga_toggle_menu_highlight endp - -273F:3AFD 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - copy_protection_check proc near - -273F:3AFE F6 06 1854 FF test cp_num_digits, 0FFh ; Sequence previously entered? -273F:3B03 74 01 jz loc_3B06 -273F:3B05 C3 ret -273F:3B06 8B 04 loc_3B06: mov ax, [si] -273F:3B08 E8 86 01 call read_screen_alt -273F:3B0B BB 1830 mov bx, offset animation_rec_1 -273F:3B0E E8 D1 3C call animation_decode -273F:3B11 BB 1839 mov bx, offset animation_rec_2 -273F:3B14 E8 CB 3C call animation_decode -273F:3B17 BB 1842 mov bx, offset animation_rec_3 -273F:3B1A E8 C5 3C call animation_decode - -; Make a backup copy of the first 10 animation table entries - -273F:3B1D A1 4D00 mov ax, buffer_segment -273F:3B20 8EC0 mov es, ax -273F:3B22 BE4EB1 mov si, offset animation_table -273F:3B25 33FF xor di, di -273F:3B27 B9CD00 mov cx, ANIMATION_SLOT_SIZE*10/2 ; 00CDh -273F:3B2A F3 A5 rep movsw - -; Current hard coded jump to bypass copy protection code - -273F:3B2C E92401 jmp loc_784 - -; Original program's code below - -273F:3B2C 1E push ds -273F:3B2D 07 pop es -273F:3B2E BF B14E mov di, offset animation_table -273F:3B31 BE 1850 mov si, offset anim_src_table -273F:3B34 BB 1830 mov bx, offset animation_rec_1 -273F:3B37 8B4703 mov ax, [bx+3] -273F:3B3A B200 mov dl, 0 -273F:3B3C E8BE01 call animation_set_entry -273F:3B3F E8BB01 call animation_set_entry -273F:3B42 BB3918 mov bx, offset animation_rec_2 -273F:3B45 8B4703 mov ax, [bx+03] -273F:3B48 B220 mov dl, 20 -273F:3B4A E8B001 call animation_set_entry -273F:3B4D BB4218 mov bx, offset animation_rec_3 -273F:3B50 8B4703 mov ax, [bx+3] -273F:3B53 E8A701 call animation_set_entry -273F:3B56 E8A401 call animation_set_entry -273F:3B59 E8A101 call animation_set_entry -273F:3B5C E89E01 call animation_set_entry -273F:3B5F FF164407 call [show_screen_proc] -273F:3B63 FF166207 call [set_lower_palette_proc] - -273F:3B67 loc_774: ; xref 273F:3C48 -273F:3B67 úB8 0002 mov ax,2 -273F:3B6A úBB 0001 mov bx,1 ; (273F:0001=0E4h) -273F:3B6D E8 0169 call animation_draw -273F:3B70 FF 16 0744 call word ptr [show_screen_proc] -273F:3B74 loc_775: ; xref 273F:3B82 -273F:3B74 B8 0005 mov ax,5 -273F:3B77 E8 0E6F call sleep ; (49E9) -273F:3B7A E8 00EE call protection_cycle_characters -273F:3B7D F6 06 11D5 FF test mouse_buttons, 0FFh -273F:3B82 75 F0 jnz loc_775 ; Jump if not zero -273F:3B84 loc_776: ; xref 273F:3B87 -273F:3B84 E8 5999 call check_keypress ; (9520) -273F:3B87 75 FB jnz loc_776 ; Jump if not zero - -273F:3B89 loc_777: ; xref 273F:3B9C -273F:3B89 B8 0005 mov ax,5 -273F:3B8C E8 0E5A call sleep ; (49E9) -273F:3B8F E8 00D9 call protection_cycle_characters -273F:3B92 E8 598B call check_keypress ; (9520) -273F:3B95 75 07 jnz loc_778 ; Jump if not zero -273F:3B97 F6 06 11D5 FF test mouse_buttons, 0FFh -273F:3B9C 74 EB jz loc_777 ; Jump if zero -273F:3B9E loc_778: ; xref 273F:3B95 -273F:3B9E B8 0002 mov ax,2 ; Change title text -273F:3BA1 33 DB xor bx,bx ; Anim #2, frame #0 -273F:3BA3 E8 0133 call animation_draw -273F:3BA6 FF 16 0744 call word ptr [show_screen_proc] -273F:3BAA C6 06 1854 00 mov cp_num_digits, 0 - -273F:3BAF loc_779: ; Get keypress -273F:3BAF úE8 596E call check_keypress -273F:3BB2 74 FB jz loc_779 -273F:3BB4 3C 08 cmp al,8 ; Backspace? -273F:3BB6 74 28 je cp_backspace ; Jump if equal -273F:3BB8 3C 30 cmp al,30h ; '0' -273F:3BBA 72 F3 jb loc_779 ; Jump if below -273F:3BBC 3C 3A cmp al,3Ah ; '9' + 1 -273F:3BBE 73 EF jae loc_779 ; Jump if above or = - -; At this point a numeric key has been pressed - -273F:3BC0 25 000F and ax,0Fh -273F:3BC3 8B D8 mov bx,ax -273F:3BC5 A0 1854 mov al, cp_num_digits -273F:3BC8 05 0003 add ax,3 -273F:3BCB E8 010B call animation_draw -273F:3BCE FF 16 0744 call word ptr [show_screen_proc] -273F:3BD2 80 06 1854 01 add cp_num_digits, 1 -273F:3BD7 80 3E 1854 04 cmp cp_num_digits, 4 -273F:3BDC 72 D1 jb loc_779 ; Jump if below -273F:3BDE 73 1F jnc cp_done ; Entered all 4 digits - -273F:3BE0 cp_backspace: ; xref 273F:3BB6 -273F:3BE0 F6 06 1854 FF test cp_num_digits, 0FFh -273F:3BE5 74 C8 jz loc_779 ; Jump if zero -273F:3BE7 80 2E 1854 01 sub cp_num_digits, 1 -273F:3BEC A0 1854 mov al, cp_num_digits -273F:3BEF 04 03 add al,3 -273F:3BF1 32 E4 xor ah,ah ; Zero register -273F:3BF3 úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:3BF6 E8 00E0 call animation_draw -273F:3BF9 FF 16 0744 call word ptr [show_screen_proc] -273F:3BFD EB B0 jmp short loc_779 ; (3BAF) - -; At this point four digits have been entered, so it's time to check if it's valid - -273F:3BFF cp_done: ; xref 273F:3BDE -273F:3BFF C7 06 38B1 0000 mov time_ctr, 0 -273F:3C05 loc_782: ; xref 273F:3C0B -273F:3C05 81 3E 38B1 00C8 cmp time_ctr, 0C8h -273F:3C0B 72 F8 jb loc_782 - -273F:3C0D FF 16 1856 call [cp_proc] -273F:3C11 73 7D jnc loc_ret_786 ; Numbers correct - -; Redraw the originally displayed message - -273F:3C13 C6 06 1854 00 mov cp_num_digits, 0 -273F:3C18 B8 0003 mov ax,3 -273F:3C1B úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:3C1E E8 00B8 call animation_draw -273F:3C21 B8 0004 mov ax,4 -273F:3C24 úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:3C27 E8 00AF call animation_draw -273F:3C2A B8 0005 mov ax,5 -273F:3C2D úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:3C30 E8 00A6 call animation_draw -273F:3C33 B8 0006 mov ax,6 -273F:3C36 úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:3C39 E8 009D call animation_draw -273F:3C3C 80 06 1855 01 add cp_num_tries, 1 -273F:3C41 80 3E 1855 03 cmp cp_num_tries, 3 -273F:3C46 73 03 jae loc_783 ; Jump if above or = -273F:3C48 E9 FF1C jmp loc_774 ; (3B67) -273F:3C4B loc_783: -273F:3C4B B8 000A mov ax,0Ah ; Copy protection failed -273F:3C4E B6 01 mov dh,1 -273F:3C50 E8 0351 call display_message ; (3FA4) - -; Restore the backup copy of the current animation table - -273F:3C53 loc_784: -273F:3C53 1E push ds -273F:3C54 1E push ds -273F:3C55 07 pop es -273F:3C56 A1 4D00 mov ax, buffer_segment -273F:3C59 8E D8 mov ds,ax -273F:3C5B 33 F6 xor si,si ; Zero register -273F:3C5D úBF B14E mov di, offset animation_table -273F:3C60 B9 00CD mov cx, ANIMATION_SLOT_SIZE*10/2 ; 0CDh -273F:3C63 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:3C65 1F pop ds -273F:3C66 FF 16 0766 call word ptr ds:[fade_out_proc] -273F:3C6A C3 retn - - copy_protection_check endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3B7A, 3B8F - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3C6B protection_cycle_characters proc near - -273F:3C6B 56 push si -273F:3C6C 57 push di -273F:3C6D 06 push es -273F:3C6E B9 0014 mov cx,14h - -; Loop below to choose two random frames from the animation of possible characters. -; If both selections are identical, it will loop back and re-generate two new values - -273F:3C71 loc_785: ; xref 273F:3C81 -273F:3C71 E8 07F8 call random -273F:3C74 F7 E1 mul cx ; dx:ax = reg * ax -273F:3C76 8B DA mov bx,dx -273F:3C78 E8 07F1 call random -273F:3C7B F7 E1 mul cx ; dx:ax = reg * ax -273F:3C7D 8B C2 mov ax,dx -273F:3C7F 3B C3 cmp ax,bx ; Prevent both images -273F:3C81 74 EE je loc_785 ; being identical - -273F:3C83 E8 0045 call protection_draw_characters -273F:3C86 E8 F4D0 call wait_for_video_port -273F:3C89 FF 16 0744 call word ptr [show_screen_proc] -273F:3C8D 07 pop es -273F:3C8E 5F pop di -273F:3C8F 5E pop si - -273F:3C90 loc_ret_786: ; xref 273F:3C11 -273F:3C90 C3 retn - - protection_cycle_characters endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3D22 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3C91 read_screen_alt proc near -273F:3C91 50 push ax -273F:3C92 2D 0001 sub ax,1 -273F:3C95 E8 FE2F call read_palette ; (3AC7) -273F:3C98 E8 336A call menubar_clear_image -273F:3C9B 58 pop ax -273F:3C9C 8B 0E 4CE2 mov cx, data_segment -273F:3CA0 BA 0080 mov dx,80h -273F:3CA3 E8 C66E call read_entry ; (0314) -273F:3CA6 A1 4CE4 mov ax, data_segment2 -273F:3CA9 8B 1E 074C mov bx, menubar_block_size -273F:3CAD B1 04 mov cl,4 -273F:3CAF D3 EB shr bx,cl ; Shift w/zeros fill -273F:3CB1 03 C3 add ax,bx -273F:3CB3 8E C0 mov es,ax -273F:3CB5 8B 16 4CE2 mov dx, data_segment -273F:3CB9 FF 16 077C call [decode_entry_proc] -273F:3CBD E8 CCA1 call clear_hotspot_rects -273F:3CC0 80 0E 11D0 10 or menubar_state, 10h ; (273F:11D0=56h) -273F:3CC5 80 26 11D0 DF and menubar_state, 0DFh ; (273F:11D0=56h) -273F:3CCA C3 retn - read_screen_alt endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3C83 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3CCB protection_draw_characters proc near -273F:3CCB 50 push ax -273F:3CCC B8 0001 mov ax,1 -273F:3CCF E8 0007 call animation_draw ; Draw right character -273F:3CD2 5B pop bx -273F:3CD3 33 C0 xor ax,ax -273F:3CD5 E8 0001 call animation_draw ; Draw left character -273F:3CD8 C3 retn - protection_draw_characters endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3B6D, 3BA3, 3BCB, 3BF6, 3C1E, 3C27, 3C30 - ; 3C39, 3CCF, 3CD5, 3D48, 3D51, 3D8F, 3D98 - ; 3DE1, 3DEA, 3E11, 3E1A - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animation_draw proc near -273F:3CD9 B9 0029 mov cx, ANIMATION_SLOT_SIZE -273F:3CDC F7 E1 mul cx -273F:3CDE 05 B14E add ax, offset animation_table ; Calculate anim offset -273F:3CE1 93 xchg bx,ax -273F:3CE2 8B 77 19 mov si,[bx+19h] ; Get address for hotspot -273F:3CE5 F7 64 07 mul word ptr [si+7] ; multiply by frame size -273F:3CE8 8B F0 mov si,ax ; Store pixel data start -273F:3CEA 89 77 08 mov [bx+8],si -273F:3CED 53 push bx -273F:3CEE FF 77 0A push word ptr [bx+0Ah] ; Pixel segment -273F:3CF1 07 pop es -273F:3CF2 FF 16 0754 call [add_animation_proc] -273F:3CF6 5F pop di -273F:3CF7 B0 01 mov al,1 -273F:3CF9 E8 CE2C call flag_covered_cells -273F:3CFC C3 retn - animation_draw endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3D3E, 3D41 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3CFD animation_set_entry proc near - -273F:3CFD 89 45 0A mov [di+0Ah],ax -273F:3D00 89 5D 19 mov [di+19h],bx -273F:3D03 88 55 28 mov [di+28h],dl -273F:3D06 B9 0004 mov cx,4 -273F:3D09 F3/ A5 rep movsw ; Copy first 8 bytes -273F:3D0B 83 C7 21 add di, ANIMATION_SLOT_SIZE - 8 -273F:3D0E C3 retn - - animation_set_entry endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - cp_proc_1 proc near - -273F:3D0F E8 075A call random -273F:3D12 8A 1E 1855 mov bl, cp_num_tries -273F:3D16 F6 26 1854 mul cp_num_digits ; ax = data * al -273F:3D1A F8 clc ; Clear carry flag -273F:3D1B 0B C0 or ax,ax ; Zero ? -273F:3D1D C3 retn - - cp_proc_1 proc near - -273F:3D1E 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:937C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3D1F restart_restore_dialog proc near - -273F:3D1F B8 7900 mov ax,7900h ; Restart/Restore image -273F:3D22 E8 FF6C call sub_79 ; Decode it -273F:3D25 úBB 184B mov bx, offset animation_rec_4 -273F:3D28 E8 3AB7 call animation_decode -273F:3D2B E8 E247 call show_arrow_cursor -273F:3D2E 1E push ds -273F:3D2F 07 pop es -273F:3D30 úBF B14E mov di, offset animation_table -273F:3D33 úBE 1890 mov si, 1890h -273F:3D36 úBB 184B mov bx, offset animation_rec_4 -273F:3D39 8B 47 03 mov ax, [bx+3] -273F:3D3C B2 00 mov dl, 0 -273F:3D3E E8 FFBC call animation_set_entry -273F:3D41 E8 FFB9 call animation_set_entry -273F:3D44 33 C0 xor ax,ax ; Zero register -273F:3D46 33 DB xor bx,bx ; Zero register -273F:3D48 E8 FF8E call animation_draw -273F:3D4B B8 0001 mov ax,1 -273F:3D4E úBB 0001 mov bx,offset copyright+1 ; (31E4:0001='o') -273F:3D51 E8 FF85 call animation_draw -273F:3D54 FF 16 0744 call word ptr [show_screen_proc] -273F:3D58 FF 16 0760 call word ptr [fade_in_proc] -273F:3D5C C6 06 11DA 00 mov mouse_buttons2, 0 -273F:3D61 loc_787: ; xref 273F:3DB0, 3E02, 3E30 -273F:3D61 úFF 16 0744 call word ptr [show_screen_proc] -273F:3D65 loc_788: ; xref 273F:3DA8 -273F:3D65 E8 5660 call room_check_keypresses -273F:3D68 A1 11D6 mov ax, mouse_x2 -273F:3D6B 05 0080 add ax,80h -273F:3D6E 2B 06 1890 sub ax,word ptr ds:[1890h] ; (31E4:1890=0F6h) -273F:3D72 72 47 jc loc_791 ; Jump if carry Set -273F:3D74 3D 0025 cmp ax,25h -273F:3D77 73 42 jae loc_791 ; Jump if above or = -273F:3D79 A1 11D8 mov ax, mouse_y2 -273F:3D7C 05 0080 add ax,80h -273F:3D7F 2B 06 1892 sub ax,word ptr ds:[1892h] ; (31E4:1892=118h) -273F:3D83 72 36 jc loc_791 ; Jump if carry Set -273F:3D85 3D 000E cmp ax,0Eh -273F:3D88 73 31 jae loc_791 ; Jump if above or = -273F:3D8A 33 C0 xor ax,ax ; Zero register -273F:3D8C úBB 0002 mov bx,offset copyright+2 ; (31E4:0002='py') -273F:3D8F E8 FF47 call animation_draw -273F:3D92 B8 0001 mov ax,1 -273F:3D95 úBB 0001 mov bx,offset copyright+1 ; (31E4:0001='o') -273F:3D98 E8 FF3E call animation_draw -273F:3D9B F6 06 11DA FF test mouse_buttons2, 0FFh -273F:3DA0 75 10 jnz loc_790 ; Jump if not zero -273F:3DA2 2E: 80 3E 3D1E 01 cmp cs:data_288,1 ; (273F:3D1E=0) -273F:3DA8 loc_789: ; xref 273F:3DFA -273F:3DA8 74 BB je loc_788 ; Jump if equal -273F:3DAA 2E: C6 06 3D1E 01 mov cs:data_288,1 ; (273F:3D1E=0) -273F:3DB0 EB AF jmp short loc_787 ; (3D61) -273F:3DB2 loc_790: ; xref 273F:3DA0 -273F:3DB2 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:3DB7 0D 0001 or ax,1 -273F:3DBA C3 retn -273F:3DBB loc_791: ; xref 273F:3D72, 3D77, 3D83, 3D88 -273F:3DBB A1 11D6 mov ax, mouse_x2 -273F:3DBE 05 0080 add ax,80h -273F:3DC1 2B 06 1898 sub ax,word ptr ds:[1898h] ; (31E4:1898=128h) -273F:3DC5 72 46 jc loc_794 ; Jump if carry Set -273F:3DC7 3D 0025 cmp ax,25h -273F:3DCA 73 41 jae loc_794 ; Jump if above or = -273F:3DCC A1 11D8 mov ax, mouse_y2 -273F:3DCF 05 0080 add ax,80h -273F:3DD2 2B 06 189A sub ax,word ptr ds:[189Ah] ; (31E4:189A=118h) -273F:3DD6 72 35 jc loc_794 ; Jump if carry Set -273F:3DD8 3D 000E cmp ax,0Eh -273F:3DDB 73 30 jae loc_794 ; Jump if above or = -273F:3DDD 33 C0 xor ax,ax ; Zero register -273F:3DDF 33 DB xor bx,bx ; Zero register -273F:3DE1 E8 FEF5 call animation_draw -273F:3DE4 B8 0001 mov ax,1 -273F:3DE7 úBB 0003 mov bx,offset copyright+3 ; (31E4:0003='y') -273F:3DEA E8 FEEC call animation_draw -273F:3DED F6 06 11DA FF test mouse_buttons2, 0FFh -273F:3DF2 75 11 jnz loc_793 ; Jump if not zero -273F:3DF4 2E: 80 3E 3D1E 02 cmp cs:data_288,2 ; (273F:3D1E=0) -273F:3DFA loc_792: ; xref 273F:3E28 -273F:3DFA 74 AC je loc_789 ; Jump if equal -273F:3DFC 2E: C6 06 3D1E 02 mov cs:data_288,2 ; (273F:3D1E=0) -273F:3E02 E9 FF5C jmp loc_787 ; (3D61) -273F:3E05 loc_793: ; xref 273F:3DF2 -273F:3E05 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:3E0A 33 C0 xor ax,ax ; Zero register -273F:3E0C C3 retn -273F:3E0D loc_794: ; xref 273F:3DC5, 3DCA, 3DD6, 3DDB -273F:3E0D 33 C0 xor ax,ax ; Zero register -273F:3E0F 33 DB xor bx,bx ; Zero register -273F:3E11 E8 FEC5 call animation_draw -273F:3E14 B8 0001 mov ax,1 -273F:3E17 úBB 0001 mov bx,offset copyright+1 ; (31E4:0001='o') -273F:3E1A E8 FEBC call animation_draw -273F:3E1D C6 06 11DA 00 mov mouse_buttons2, 0 -273F:3E22 2E: F6 06 3D1E FF test cs:data_288,0FFh ; (273F:3D1E=0) -273F:3E28 74 D0 jz loc_792 ; Jump if zero -273F:3E2A 2E: C6 06 3D1E 00 mov cs:data_288,0 ; (273F:3D1E=0) -273F:3E30 E9 FF2E jmp loc_787 ; (3D61) - - restart_restore_dialog endp - -273F:3E33 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:000B, 009D, 2053, 4792, 4FAB, 5024, 5423 - ; 5738, 57D3, 5838, 58DA, 592B, 5AF2, 5B55 - ; 5BCF, 5C21, 5C66, 5C87, 5CD7, 5D40, 8A0D - ; 8AFF, 8C52, 8C67, 8C7A, 8CA4, 95F7, 962F - ; 9635 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3E34 sequence_execute proc near -273F:3E34 ú57 push di -273F:3E35 56 push si -273F:3E36 55 push bp -273F:3E37 53 push bx -273F:3E38 8B F0 mov si,ax -273F:3E3A C7 06 BA1D 0000 mov sequence_result, 0 -273F:3E40 E8 000A call sequence_execute_inner -273F:3E43 5B pop bx -273F:3E44 5D pop bp -273F:3E45 5E pop si -273F:3E46 5F pop di -273F:3E47 A1 BA1D mov ax, sequence_result -273F:3E4A 0B C0 or ax,ax ; Zero ? -273F:3E4C C3 retn - sequence_execute endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3E40, 3F51 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - - sequence_execute_inner proc near -273F:3E4D 89 26 1910 mov current_sp, sp -273F:3E51 BF 1910 mov di, offset current_sp ; Set up stack frame -273F:3E54 B8 450F mov ax, scripts_seg -273F:3E57 8E C0 mov es,ax - -273F:3E59 loc_796: -273F:3E59 ú26: 8A 1C mov bl,es:[si] -273F:3E5C 83 C6 01 add si,1 -273F:3E5F F6 C3 01 test bl,1 -273F:3E62 74 06 jz loc_797 ; Jump if zero -273F:3E64 26: 8B 14 mov dx,es:[si] -273F:3E67 83 C6 02 add si,2 -273F:3E6A loc_797: ; xref 273F:3E62 -273F:3E6A 81 E3 00FE and bx,0FEh -273F:3E6E FF A7 18A0 jmp word ptr ds:[sequence_table][bx] - sequence_execute_inner endp - - -273F:3E72 8B 05 sequence_add: mov ax,[di] -273F:3E74 01 45 02 add [di+2],ax -273F:3E77 83 C7 02 add di,2 -273F:3E7A EB DD jmp short loc_796 ; (3E59) - - - ;* No entry point to code -273F:3E7C 8B 05 sequence_subtract: mov ax,[di] -273F:3E7E 29 45 02 sub [di+2],ax -273F:3E81 83 C7 02 add di,2 -273F:3E84 EB D3 jmp short loc_796 ; (3E59) - ;* No entry point to code -273F:3E86 8B 05 sequence_multiply: mov ax,[di] -273F:3E88 F7 65 02 mul word ptr [di+2] ; dx:ax = data * ax -273F:3E8B 83 C7 02 add di,2 -273F:3E8E 89 05 mov [di],ax -273F:3E90 EB C7 jmp short loc_796 ; (3E59) - -273F:3E92 8B 45 02 sequence_divide: mov ax,[di+2] -273F:3E95 33 D2 xor dx,dx ; Zero register -273F:3E97 F7 35 div word ptr [di] ; ax,dxrem=dx:ax/data -273F:3E99 83 C7 02 add di,2 -273F:3E9C 89 05 mov [di],ax -273F:3E9E EB B9 jmp short loc_796 ; (3E59) - -273F:3EA0 8B 05 sequence_not_equals: mov ax,[di] -273F:3EA2 3B 45 02 cmp ax,[di+2] -273F:3EA5 74 0A je loc_one ; Jump if equal - -273F:3EA7 úC7 45 02 0000 loc_zero: mov word ptr [di+2],0 -273F:3EAC 83 C7 02 add di,2 -273F:3EAF EB A8 jmp short loc_796 ; (3E59) - -273F:3EB1 ú83 C7 02 loc_one: add di,2 -273F:3EB4 C7 05 0001 mov word ptr [di],1 -273F:3EB8 EB 9F jmp short loc_796 ; (3E59) -273F:3EBA 8B 05 sequence_equals: mov ax,[di] -273F:3EBC 3B 45 02 cmp ax,[di+2] -273F:3EBF 75 F0 jne loc_one ; Jump if not equal -273F:3EC1 EB E4 jmp short loc_zero ; (3EA7) - -273F:3EC3 8B 45 02 sequence_greater: mov ax,[di+2] -273F:3EC6 2B 05 sub ax,[di] -273F:3EC8 72 E7 jc loc_one ; Jump if carry Set -273F:3ECA EB DB jmp short loc_zero ; (3EA7) - -273F:3ECC 8B 05 sequence_smaller: mov ax,[di] -273F:3ECE 2B 45 02 sub ax,[di+2] -273F:3ED1 72 DE jc loc_one ; Jump if carry Set -273F:3ED3 EB D2 jmp short loc_zero ; (3EA7) - -273F:3ED5 8B 05 sequence_smaller2: mov ax,[di] -273F:3ED7 2B 45 02 sub ax,[di+2] -273F:3EDA 78 CB js loc_zero ; Jump if sign=1 -273F:3EDC EB D3 jmp short loc_one ; (3EB1) - -273F:3EDE 8B 45 02 sequence_greater2: mov ax,[di+2] -273F:3EE1 2B 05 sub ax,[di] -273F:3EE3 78 C2 js loc_zero ; Jump if sign=1 -273F:3EE5 EB CA jmp short loc_one ; (3EB1) - -273F:3EE7 8B 05 sequence_and: mov ax,[di] -273F:3EE9 21 45 02 and [di+2],ax -273F:3EEC 83 C7 02 add di,2 -273F:3EEF E9 FF67 jmp loc_796 ; (3E59) - -273F:3EF2 8B 05 sequence_or: mov ax,[di] -273F:3EF4 09 45 02 or [di+2],ax -273F:3EF7 83 C7 02 add di,2 -273F:3EFA E9 FF5C jmp loc_796 ; (3E59) - -273F:3EFD F7 45 02 FFFF sequence_logical_and: test word ptr [di+2],0FFFFh -273F:3F02 74 A3 jz loc_zero ; Jump if zero -273F:3F04 F7 05 FFFF test word ptr [di],0FFFFh -273F:3F08 74 9D jz loc_zero ; Jump if zero -273F:3F0A EB A5 jmp short loc_one ; (3EB1) - -273F:3F0C F7 45 02 FFFF sequence_logical_or: test word ptr [di+2],0FFFFh -273F:3F11 75 9E jnz loc_one ; Jump if not zero -273F:3F13 F7 05 FFFF test word ptr [di],0FFFFh -273F:3F17 75 98 jnz loc_one ; Jump if not zero -273F:3F19 EB 8C jmp short loc_zero ; (3EA7) - -273F:3F1B 83 EF 02 sequence_get_field: sub di,2 -273F:3F1E 81 C2 BA15 add dx, offset room_number_2 -273F:3F22 57 push di -273F:3F23 8B FA mov di,dx -273F:3F25 8B 05 mov ax,[di] -273F:3F27 5F pop di -273F:3F28 89 05 mov [di],ax -273F:3F2A E9 FF2C jmp loc_796 ; (3E59) - -273F:3F2D 81 C2 BA15 sequence_set_field: add dx, offset room_number_2 -273F:3F31 8B 05 mov ax,[di] ; Get value off stack -273F:3F33 57 push di -273F:3F34 8B FA mov di,dx -273F:3F36 89 05 mov [di],ax ; Set field value -273F:3F38 5F pop di -273F:3F39 83 C7 02 add di,2 ; Pop stack element -273F:3F3C E9 FF1A jmp loc_796 - -273F:3F3F E8 052A sequence_random: call random -273F:3F42 8A D4 mov dl,ah -273F:3F44 32 F6 xor dh,dh ; Zero register - -273F:3F46 83 EF 02 sequence_push_value: sub di,2 -273F:3F49 89 15 mov [di],dx -273F:3F4B E9 FF0B jmp loc_796 ; (3E59) - ;* No entry point to code -273F:3F4E 56 sequence_subroutine: push si -273F:3F4F 8B F2 mov si,dx -273F:3F51 E8 FEF9 call sequence_execute_inner -273F:3F54 5E pop si -273F:3F55 loc_800: ; xref 273F:3F97 -273F:3F55 E9 FF01 jmp loc_796 ; (3E59) - -273F:3F58 D1 E2 sequence_call_method: shl dx,1 -273F:3F5A 81 C2 BABF add dx, offset sequence_method_list -273F:3F5E 57 push di -273F:3F5F 8B FA mov di,dx -273F:3F61 8B 05 mov ax,[di] ; Get address of method -273F:3F63 5F pop di -273F:3F64 ú81 FF 1910 cmp di, offset current_sp ; Any value on stack? -273F:3F68 74 1B je loc_801 ; No, so go call method -273F:3F6A 8B 1D mov bx,[di] ; bx = top stack value -273F:3F6C 83 C7 02 add di,2 -273F:3F6F ú81 FF 1910 cmp di, offset current_sp ; Any value on stack? -273F:3F73 74 10 je loc_801 ; No, so go call method -273F:3F75 8B 0D mov cx,[di] ; cx = top stack value -273F:3F77 83 C7 02 add di,2 -273F:3F7A ú81 FF 1910 cmp di, offset current_sp ; Any value on stack? -273F:3F7E 74 05 je loc_801 ; No, so go call method -273F:3F80 8B 15 mov dx,[di] ; dx = top stack value -273F:3F82 83 C7 02 add di,2 -273F:3F85 loc_801: -273F:3F85 56 push si -273F:3F86 57 push di -273F:3F87 06 push es -273F:3F88 FF D0 call ax ; Call method -273F:3F8A 07 pop es -273F:3F8B 5F pop di -273F:3F8C 5E pop si -273F:3F8D E9 FEC9 jmp loc_796 ; (3E59) - -273F:3F90 8B 05 sequence_cond_jump: mov ax,[di] -273F:3F92 83 C7 02 add di,2 -273F:3F95 0B C0 or ax,ax ; Zero ? -273F:3F97 75 BC jnz loc_800 ; Jump if not zero -273F:3F99 03 F2 sequence_jump: add si,dx -273F:3F9B E9 FEBB jmp loc_796 ; (3E59) - -273F:3F9E C3 sequence_end: retn - -273F:3F9F 8B 26 10 19 sequence_restore_sp: mov sp, current_sp -273F:3FA3 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:029A, 02A6, 0365, 03BB, 03C7, 0426, 04FC - ; 0691, 3C50, 7041, 7591, 7B04, 902C, 9414 - ; AA1B - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:3FA4 display_message proc near -273F:3FA4 80 0E 073D 01 or status_flags2, 1 -273F:3FA9 80 0E 11D0 08 or menubar_state, 8 -273F:3FAE 3D 000C cmp ax,0Ch -273F:3FB1 72 03 jb loc_802 ; Jump if below -273F:3FB3 B8 000C mov ax,0Ch -273F:3FB6 loc_802: ; xref 273F:3FB1 -273F:3FB6 F6 C6 FF test dh,0FFh -273F:3FB9 75 03 jnz loc_803 ; Jump if not zero -273F:3FBB E9 0128 jmp loc_816 ; (40E6) -273F:3FBE loc_803: ; xref 273F:3FB9 -273F:3FBE 50 push ax -273F:3FBF B8 31E4 mov ax,data_seg -273F:3FC2 8E D8 mov ds,ax -273F:3FC4 F6 06 073C 04 test status_flags, STATUS_TIMER_SET -273F:3FC9 74 12 jz loc_804 ; Jump if zero -273F:3FCB 1E push ds -273F:3FCC 2E: A1 04AC mov ax,word ptr cs:old_timer_int_proc+2 ; (273F:04AC=40h) -273F:3FD0 8E D8 mov ds,ax -273F:3FD2 2E: 8B 16 04AA mov dx,cs:old_timer_int_proc -273F:3FD7 B8 2508 mov ax,2508h -273F:3FDA CD 21 int 21h ; DOS Services ah=function 25h - ; set intrpt vector al to ds:dx -273F:3FDC 1F pop ds -273F:3FDD loc_804: ; xref 273F:3FC9 -273F:3FDD F6 06 073C 10 test status_flags, STATUS_CRITICAL_SET -273F:3FE2 74 12 jz loc_805 ; Jump if zero -273F:3FE4 1E push ds -273F:3FE5 2E: A1 04B4 mov ax,cs:old_critical_int_proc+2 -273F:3FE9 8E D8 mov ds,ax -273F:3FEB 2E: 8B 16 04B2 mov dx,cs:old_critical_int_proc -273F:3FF0 B8 2524 mov ax,2524h -273F:3FF3 CD 21 int 21h ; DOS Services ah=function 25h - ; set intrpt vector al to ds:dx -273F:3FF5 1F pop ds -273F:3FF6 loc_805: ; xref 273F:3FE2 -273F:3FF6 F6 06 073C 40 test status_flags, STATUS_KEYBOARD_SET -273F:3FFB 74 12 jz loc_806 ; Jump if zero -273F:3FFD 1E push ds -273F:3FFE 2E: A1 04B0 mov ax, word ptr cs:old_kbd_int_proc+2 -273F:4002 8E D8 mov ds,ax -273F:4004 2E: 8B 16 04AE mov dx, cs:old_kbd_int_proc -273F:4009 B8 2509 mov ax,2509h -273F:400C CD 21 int 21h ; DOS Services ah=function 25h - ; set intrpt vector al to ds:dx -273F:400E 1F pop ds -273F:400F loc_806: ; xref 273F:3FFB -273F:400F F6 06 073C 01 test status_flags, STATUS_VIDEO_MODE_SET -273F:4014 74 07 jz loc_807 ; Jump if zero -273F:4016 A0 073B mov al,data_542 ; (31E4:073B=0) -273F:4019 32 E4 xor ah,ah ; Zero register -273F:401B CD 10 int 10h ; Video display ah=functn 00h - ; set display mode in al -273F:401D loc_807: ; xref 273F:4014 -273F:401D B8 0000 mov ax,0 -273F:4020 CD 33 int 33h ; Mouse driver ax=func 0000h - ; installed?, ax=0 no, =-1 yes - ; bx=number of mouse buttons -273F:4022 F6 06 073C 08 test status_flags, STATUS_CTRL_BREAK_SET -273F:4027 74 24 jz loc_808 ; Jump if zero -273F:4029 B8 3301 mov ax,3301h -273F:402C 8A 16 073E mov dl, old_ctrl_break_flag -273F:4030 CD 21 int 21h ; DOS Services ah=function 33h - ; set ctrl-break flag dl=off/on -273F:4032 B8 0040 mov ax,40h -273F:4035 8E C0 mov es,ax -273F:4037 A0 073F mov al,data_546 ; (31E4:073F=1) -273F:403A 24 70 and al,70h ; 'p' -273F:403C 26: 80 26 0017 8F and byte ptr es:keybd_flags_1,8Fh ; (0040:0017=0) -273F:4042 26: 08 06 0017 or es:keybd_flags_1,al ; (0040:0017=0) -273F:4047 B4 06 mov ah,6 -273F:4049 B2 FF mov dl,0FFh -273F:404B CD 21 int 21h ; DOS Services ah=function 06h - ; special char i/o, dl=subfunc -273F:404D loc_808: ; xref 273F:4027 -273F:404D 58 pop ax -273F:404E 0B C0 or ax,ax ; Zero ? -273F:4050 74 15 jz loc_809 ; Jump if zero -273F:4052 50 push ax -273F:4053 B4 09 mov ah,9 -273F:4055 úBA 3848 mov dx,offset data_779 ; (31E4:3848='') -273F:4058 CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:405A 58 pop ax -273F:405B D1 E0 shl ax,1 ; Shift w/zeros fill -273F:405D 8B D8 mov bx,ax -273F:405F 8B 97 3670 mov dx,errormsg_list[bx] ; (31E4:3670=0) -273F:4063 B4 09 mov ah,9 -273F:4065 CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:4067 loc_809: ; xref 273F:4050 -273F:4067 E8 6189 call sub_257 ; (A1F3) -273F:406A B9 FFFF mov cx,0FFFFh -273F:406D B0 36 mov al,36h ; '6' -273F:406F E6 43 out 43h,al ; port 43h, 8253 timer control -273F:4071 EB 00 jmp short $+2 ; delay for I/O -273F:4073 EB 00 jmp short $+2 ; delay for I/O -273F:4075 8A C1 mov al,cl -273F:4077 E6 40 out 40h,al ; port 40h, 8253 timer 0 clock -273F:4079 EB 00 jmp short $+2 ; delay for I/O -273F:407B EB 00 jmp short $+2 ; delay for I/O -273F:407D 8A C5 mov al,ch -273F:407F E6 40 out 40h,al ; port 40h, 8253 timer 0 clock -273F:4081 B0 00 mov al,0 -273F:4083 B4 4C mov ah,4Ch -273F:4085 CD 21 int 21h ; DOS Services ah=function 4Ch - ; terminate with al=return code -273F:4087 loc_810: ; xref 273F:40F2 -273F:4087 50 push ax -273F:4088 A0 073B mov al,data_542 ; (31E4:073B=0) -273F:408B 32 E4 xor ah,ah ; Zero register -273F:408D CD 10 int 10h ; Video display ah=functn 00h - ; set display mode in al -273F:408F EB 01 jmp short loc_812 ; (4092) -273F:4091 loc_811: ; xref 273F:40EB -273F:4091 50 push ax -273F:4092 loc_812: ; xref 273F:408F -273F:4092 B4 09 mov ah,9 -273F:4094 úBA 3848 mov dx,offset data_779 ; (31E4:3848='') -273F:4097 CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:4099 58 pop ax -273F:409A D1 E0 shl ax,1 ; Shift w/zeros fill -273F:409C 8B D8 mov bx,ax -273F:409E 8B 97 3670 mov dx,errormsg_list[bx] ; (31E4:3670=0) -273F:40A2 83 C2 02 add dx,2 -273F:40A5 B4 09 mov ah,9 -273F:40A7 CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:40A9 B4 09 mov ah,9 -273F:40AB úBA 3848 mov dx,offset data_779 ; (31E4:3848='') -273F:40AE CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:40B0 F6 06 073C 80 test status_flags, STATUS_MOUSE_HANDLER_SET -273F:40B5 74 09 jz loc_813 ; Jump if zero -273F:40B7 B4 09 mov ah,9 -273F:40B9 úBA 37D0 mov dx,offset data_777 ; (31E4:37D0='Press a mouse bu') -273F:40BC CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:40BE EB 07 jmp short loc_814 ; (40C7) -273F:40C0 loc_813: ; xref 273F:40B5 -273F:40C0 B4 09 mov ah,9 -273F:40C2 úBA 37F2 mov dx,offset data_778 ; (31E4:37F2='and press any ke') -273F:40C5 CD 21 int 21h ; DOS Services ah=function 09h - ; display char string at ds:dx -273F:40C7 loc_814: ; xref 273F:40BE -273F:40C7 E8 DECC call pause_for_input ; (1F96) -273F:40CA 50 push ax -273F:40CB E8 DEBD call mouse_wait ; (1F8B) -273F:40CE F6 06 073C 01 test status_flags, STATUS_VIDEO_MODE_SET -273F:40D3 74 0A jz loc_815 ; Jump if zero -273F:40D5 A0 0743 mov al,video_mode ; (31E4:0743=0) -273F:40D8 32 E4 xor ah,ah ; Zero register -273F:40DA CD 10 int 10h ; Video display ah=functn 00h - ; set display mode in al -273F:40DC E8 00A6 call set_upper_vga_palette ; (4185) -273F:40DF loc_815: ; xref 273F:40D3 -273F:40DF 58 pop ax -273F:40E0 80 26 073D FE and status_flags2, 0FEh -273F:40E5 C3 retn -273F:40E6 loc_816: ; xref 273F:3FBB -273F:40E6 F6 06 073C 01 test status_flags, STATUS_VIDEO_MODE_SET -273F:40EB 74 A4 jz loc_811 ; Jump if zero -273F:40ED F6 06 073C 02 test status_flags, STATUS_UNKNOWN -273F:40F2 74 93 jz loc_810 ; Jump if zero -273F:40F4 8A 1E 11D0 mov bl,data_623 ; (31E4:11D0=3) -273F:40F8 53 push bx -273F:40F9 50 push ax -273F:40FA 80 0E 11D0 01 or menubar_state, 1 ; (31E4:11D0=3) -273F:40FF FF 16 075E call word ptr [show_cursor_proc] -273F:4103 F6 06 11D0 10 test menubar_state, 10h ; (31E4:11D0=3) -273F:4108 75 14 jnz loc_817 ; Jump if not zero -273F:410A A1 4CE4 mov ax, data_segment2 -273F:410D 8E C0 mov es,ax -273F:410F 33 C0 xor ax,ax ; Zero register -273F:4111 8B 0E 0746 mov cx, screen_size -273F:4115 D1 E9 shr cx,1 ; Shift w/zeros fill -273F:4117 33 FF xor di,di ; Zero register -273F:4119 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:411B E8 C843 call clear_hotspot_rects -273F:411E loc_817: ; xref 273F:4108 -273F:411E 58 pop ax -273F:411F D1 E0 shl ax,1 ; Shift w/zeros fill -273F:4121 8B D8 mov bx,ax -273F:4123 8B B7 3670 mov si,errormsg_list[bx] ; (31E4:3670=0) -273F:4127 8B 34 mov si,[si] -273F:4129 E8 47E1 call sub_216 ; (890D) -273F:412C F6 06 073C 20 test status_flags, STATUS_UNKNOWN2 -273F:4131 74 0C jz loc_818 ; Jump if zero -273F:4133 FF 36 073C push status_flags -273F:4137 FF 16 0762 call [set_lower_palette_proc] -273F:413B 8F 06 073C pop status_flags -273F:413F loc_818: ; xref 273F:4131 -273F:413F E8 DE49 call mouse_wait ; (1F8B) -273F:4142 E8 DE51 call pause_for_input ; (1F96) -273F:4145 5B pop bx -273F:4146 50 push ax -273F:4147 53 push bx -273F:4148 F6 06 073C 20 test status_flags, STATUS_UNKNOWN2 -273F:414D 74 09 jz loc_819 ; Jump if zero -273F:414F 80 26 073C DF and status_flags, !STATUS_UNKNOWN2 -273F:4154 FF 16 0764 call [empty_palette_proc] -273F:4158 loc_819: -273F:4158 58 pop ax -273F:4159 24 01 and al,1 -273F:415B 75 09 jnz loc_820 ; Jump if not zero -273F:415D 80 26 11D0 FE and menubar_state, 0FEh ; (31E4:11D0=3) -273F:4162 FF 16 075E call word ptr [show_cursor_proc] -273F:4166 loc_820: ; xref 273F:415B -273F:4166 F6 06 11D0 20 test menubar_state, 20h ; (31E4:11D0=3) ' ' -273F:416B 74 0B jz loc_821 ; Jump if zero -273F:416D FF 16 0752 call [show_compressed_screen_proc] -273F:4171 E8 D39A call room_add_animations -273F:4174 FF 16 0744 call word ptr [show_screen_proc] -273F:4178 loc_821: ; xref 273F:416B -273F:4178 58 pop ax -273F:4179 80 26 073D FE and status_flags2, 0FEh -273F:417E C3 retn - display_message endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_kill_player proc near -273F:417F 80 0E 073D 50 or status_flags2, FLAG_RESTART|FLAG_RESTORERESTART ;50h -273F:4184 C3 retn - seq_kill_player endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; Sets the upper 16 palette entries of the VGA palette - ; - ; Called from: 273F:075B, 40DC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:4185 set_upper_vga_palette proc near -273F:4185 1E push ds -273F:4186 07 pop es -273F:4187 B8 1012 mov ax,1012h -273F:418A BB 00F0 mov bx,0F0h ; Start with palette entry #F0h -273F:418D B9 0010 mov cx,10h ; Set 16 palette entries -273F:4190 úBA 1727 mov dx,offset vga_palette ; es:dx pointer to table -273F:4193 CD 10 int 10h ; Video display ah=functn 10h - ; set cx color registers from - ; ptr es:dx, bx=first reg -273F:4195 C3 retn - set_upper_vga_palette endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00AF, 0110, 60FF, 9762 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animation_tick proc near - -273F:4196 úBF B14E mov di, offset animation_table -273F:4199 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:419C locloop_822: -273F:419C F6 45 0C FF test byte ptr [di+0Ch], 0FFh -273F:41A0 74 16 jz loc_823 - -273F:41A2 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:41A5 A3 BA17 mov character_hotspot, ax -273F:41A8 89 3E 1927 mov active_animation_offset, di -273F:41AC 8B 45 11 mov ax, [di+ANIM_TICK_PROC] -273F:41AF 8B 75 19 mov si, [di+ANIM_HOTSPOT_OFFSET] -273F:41B2 57 push di -273F:41B3 51 push cx -273F:41B4 FF D0 call ax ; Call entry's handler proc -273F:41B6 59 pop cx -273F:41B7 5F pop di - -273F:41B8 loc_823: -273F:41B8 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:41BB E2 DF loop locloop_822 ; Loop if cx > 0 - -273F:41BD C3 null_tick_proc: retn - - animation_tick endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5F41 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:41BE action_dispatch proc near -273F:41BE úC7 44 52 0000 mov [si+HS_DEST_HOTSPOT], 0 -273F:41C3 8B 5F 01 mov bx, [bx+CURRENT_ACTION_SUPPORT_TABLE] -273F:41C6 8B EB mov bp, bx -273F:41C8 8B 1F mov bx, [bx] -273F:41CA 89 1E BB45 mov current_action_num, bx -273F:41CE 83 C5 02 add bp, 2 -273F:41D1 D1 E3 shl bx, 1 ; Shift w/zeros fill -273F:41D3 8B 87 3850 mov ax,word ptr ds:[actions2_proc_list][bx] -273F:41D7 FF E0 jmp ax - action_dispatch endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:41D9 loc_825: ; xref 273F:52BB -273F:41D9 ú8B DE mov bx, si -273F:41DB 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:41DE 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:41E1 F7 44 61 FFFF test word ptr [si+HS_ACTION_OFFSET], 0FFFFh -273F:41E6 74 0F jz loc_826 ; Jump if zero -273F:41E8 83 6C 61 05 sub word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:41EC 83 EB 05 sub bx, CURRENT_ACTION_RECORD_SIZE -273F:41EF C6 44 4D 00 mov byte ptr [si+4Dh], 0 -273F:41F3 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:41F6 C3 retn -273F:41F7 loc_826: ; xref 273F:41E6 -273F:41F7 C6 07 00 mov byte ptr [bx], CHAR_ACTION_NONE -273F:41FA 81 7D 1B 03E8 cmp word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID -273F:41FF 75 0B jne loc_ret_827 ; Jump if not equal -273F:4201 C6 06 9834 00 mov cursor_state, CURSORSTATE_NONE -273F:4206 C7 06 11E4 FFFF mov hotspot_name_id2, 0FFFFh - -273F:420C loc_ret_827: ; xref 273F:41FF -273F:420C C3 retn - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:51EE, 5FE0 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_translate_movements proc near -273F:420D 8B 4C 21 mov cx, [si+HS_PIXEL_OFFSET] -273F:4210 8B 44 5A mov ax, [si+HS_MOVEMENT_SRC_OFFSET] -273F:4213 89 44 24 mov [si+HS_MOVEMENT_OFFSET], ax -273F:4216 C7 44 26 0000 mov word ptr [si+HS_STEP_CTR], 0 -273F:421B C7 44 28 0000 mov word ptr [si+HS_FRAME_OFFSET], 0 -273F:4220 56 push si -273F:4221 57 push di -273F:4222 53 push bx -273F:4223 8B F8 mov di, ax -273F:4225 8B F1 mov si, cx -273F:4227 8B DA mov bx, dx - -273F:4229 loc_828: -273F:4229 ú8B 0F mov cx, [bx] -273F:422B 0B C9 or cx, cx ; No more movements needed? -273F:422D 74 51 jz loc_832 ; Exit if yes -273F:422F 8B 57 02 mov dx, [bx+2] ; Get direction -273F:4232 83 C3 04 add bx, 4 ; Move ptr to next move rec -273F:4235 83 FA 01 cmp dx, FACING2_LEFT -273F:4238 74 26 je loc_830 ; Jump if equal -273F:423A 83 FA 02 cmp dx, FACING2_RIGHT -273F:423D 74 31 je loc_831 ; Jump if equal -273F:423F 83 FA 04 cmp dx, FACING2_UP -273F:4242 74 0E je loc_829 ; Jump if equal -273F:4244 83 C1 01 add cx, 1 -273F:4247 D1 E9 shr cx, 1 -273F:4249 8B 44 0B mov ax, [si+PIXEL_MOVEREC_DOWN] -273F:424C AB stosw ; Store movement records -273F:424D 8B C1 mov ax,cx -273F:424F AB stosw ; Store steps -273F:4250 EB D7 jmp short loc_828 -273F:4252 loc_829: -273F:4252 83 C1 01 add cx, 1 -273F:4255 D1 E9 shr cx, 1 -273F:4257 8B 44 09 mov ax, [si+PIXEL_MOVEREC_UP] -273F:425A AB stosw ; Store movement records -273F:425B 8B C1 mov ax,cx -273F:425D AB stosw ; Store steps -273F:425E EB C9 jmp short loc_828 -273F:4260 loc_830: -273F:4260 83 C1 03 add cx, 3 -273F:4263 D1 E9 shr cx, 1 -273F:4265 D1 E9 shr cx, 1 -273F:4267 8B 44 0D mov ax, [si+PIXEL_MOVEREC_LEFT] -273F:426A AB stosw ; Store movement records -273F:426B 8B C1 mov ax,cx -273F:426D AB stosw ; Store steps -273F:426E EB B9 jmp short loc_828 -273F:4270 loc_831: -273F:4270 83 C1 03 add cx, 3 -273F:4273 D1 E9 shr cx, 1 -273F:4275 D1 E9 shr cx, 1 -273F:4277 8B 44 0F mov ax, [si+PIXEL_MOVEREC_RIGHT] -273F:427A AB stosw ; Store movement records -273F:427B 8B C1 mov ax,cx -273F:427D AB stosw ; Store steps -273F:427E EB A9 jmp short loc_828 -273F:4280 loc_832: -273F:4280 B8 FFFF mov ax,0FFFFh -273F:4283 AB stosw ; Store end makrer -273F:4284 5B pop bx -273F:4285 5F pop di -273F:4286 5E pop si -273F:4287 C3 retn - character_translate_movements endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5242 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_check_room_change proc near -273F:4288 ú56 push si -273F:4289 8B 45 0E mov ax, [di+ANIM_ROOM_NUM] -273F:428C E8 CA5B call get_room_resource_pointer2 ; Get room resource -273F:428F 83 C6 1D add si, ROOM_EXITS_START ; Get pointer to room exits list -273F:4292 8B 05 mov ax, [di+ANIM_X] ; get X start -273F:4294 8B 4D 13 mov cx, [di+ANIM_WIDTH_COPY]; Get animation width -273F:4297 D1 E9 shr cx, 1 -273F:4299 03 C1 add ax, cx -273F:429B 8B 55 02 mov dx, [di+ANIM_Y] -273F:429E 03 55 15 add dx, [di+ANIM_HEIGHT_COPY] -273F:42A1 8B 4D 17 mov cx, [di+ANIM_Y_CORRECTION] -273F:42A4 D1 E9 shr cx,1 -273F:42A6 2B D1 sub dx,cx ; ax=x, dx=y - -273F:42A8 loc_834: -273F:42A8 ú83 3C FF cmp word ptr [si],0FFFFh ; End of list reached? -273F:42AB 74 3A je loc_837 ; Jump if yes -273F:42AD 3B 04 cmp ax, [si+ROOMREC_EXIT_X_START] ; Check bounds of the -273F:42AF 72 27 jb loc_836 ; room exit against character -273F:42B1 3B 44 02 cmp ax, [si+ROOMREC_EXIT_X_END] -273F:42B4 73 22 jae loc_836 -273F:42B6 3B 54 04 cmp dx, [si+ROOMREC_EXIT_Y_START] -273F:42B9 72 1D jb loc_836 -273F:42BB 3B 54 06 cmp dx, [si+ROOMREC_EXIT_Y_END] -273F:42BE 73 18 jae loc_836 -273F:42C0 8B 44 08 mov ax, [si+ROOMREC_EXIT_SEQUENCE] -273F:42C3 3D FFFF cmp ax, 0FFFFh ; Any sequence to run? -273F:42C6 74 04 je loc_835 ; If no, go set room directly -273F:42C8 5E pop si -273F:42C9 E9 FB68 jmp sequence_execute -273F:42CC loc_835: ; xref 273F:42C6 -273F:42CC 8B 54 0A mov dx, [si+ROOMREC_EXIT_ROOM_NUM] ; Get new room #/direction -273F:42CF 8B 4C 0C mov cx, [si+ROOMREC_EXIT_NEW_X] ; Get new X -273F:42D2 8B 5C 0E mov bx, [si+ROOMREC_EXIT_NEW_Y] ; Get new Y -273F:42D5 5E pop si -273F:42D6 EB 11 jmp character_change_room -273F:42D8 loc_836: -273F:42D8 8B 5C 08 mov bx, [si+ROOMREC_EXIT_SEQUENCE] ; Get sequence Id -273F:42DB 83 C6 0A add si, 0Ah ; Move to next entry -273F:42DE 0B DB or bx, bx ; Did entry have a script? -273F:42E0 79 C6 jns loc_834 ; If not, go check next record -273F:42E2 83 C6 06 add si, 6 ; Skip over room/x/y vals -273F:42E5 EB C1 jmp short loc_834 ; Check next record -273F:42E7 loc_837: -273F:42E7 5E pop si -273F:42E8 C3 retn - character_check_room_change endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:960F, 9628 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_change_room proc near -273F:42E9 A1 BA17 mov ax, character_hotspot -273F:42EC 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID ; Is character the player? -273F:42EF 75 2E jne loc_840 ; Jump if not -273F:42F1 F6 06 9834 FF test cursor_state, 0FFh -273F:42F6 75 26 jnz loc_ret_839 ; Jump if not zero - -; Room change code for the player -273F:42F8 úBE 6CEF mov si, offset player_hotspot_rec -273F:42FB 88 74 50 mov [si+HS_DIRECTION], dh -273F:42FE C6 44 51 00 mov byte ptr [si+HS_DIRECTION+1], 0 -273F:4302 32 F6 xor dh,dh ; Zero register -273F:4304 83 EB 30 sub bx, 48 -273F:4307 89 16 982C mov new_room_number_2, dx -273F:430B 89 0E 982E mov new_room_x, cx -273F:430F 89 1E 9830 mov new_room_y, bx -273F:4313 E8 1D23 call character_change_room_check_bumped -273F:4316 75 06 jnz loc_ret_839 ; Jump if not zero -273F:4318 C7 06 982C 0000 mov new_room_number_2, 0 -273F:431E loc_ret_839: retn - -; Room change code for other characters -273F:431F loc_840: -273F:431F 8B 3E 1927 mov di, active_animation_offset -273F:4323 8B 75 19 mov si, [di+ANIM_HOTSPOT_OFFSET] -273F:4326 53 push bx -273F:4327 51 push cx -273F:4328 52 push dx -273F:4329 E8 017D call check_for_impinging_characters -273F:432C 5A pop dx -273F:432D 59 pop cx -273F:432E 5B pop bx -273F:432F 75 06 jnz loc_841 ; Jump if not zero -273F:4331 33 C0 xor ax,ax ; Zero register -273F:4333 E8 01F2 call set_new_dispatch_action -273F:4336 C3 retn -273F:4337 loc_841: ; xref 273F:432F -273F:4337 83 E1 F8 and cx, 0FFF8h -273F:433A 83 C9 05 or cx, 5 -273F:433D 89 0D mov [di+ANIM_X], cx -273F:433F 89 4C 0D mov [si+HS_X], cx -273F:4342 8A CE mov cl, dh -273F:4344 32 F6 xor dh, dh ; Zero register -273F:4346 89 55 0E mov [di+ANIM_ROOM_NUM], dx -273F:4349 89 54 06 mov [si+HS_ROOM_NUM], dx -273F:434C 2B 5C 1B sub bx, [si+HS_HEIGHT_COPY] -273F:434F 83 E3 F8 and bx, 0FFF8h -273F:4352 89 5D 02 mov [di+ANIM_Y], bx -273F:4355 89 5C 0F mov [si+HS_Y], bx -273F:4358 8B DE mov bx, si -273F:435A 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:435D 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:4360 E9 0EE3 jmp character_change_room_2 - character_change_room endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_update_movement_2: -273F:4363 ú88 44 44 mov [si+HS_CHAR_MODE], al - - - character_update_movement proc near -273F:4366 ú53 push bx -273F:4367 8B DE mov bx, si -273F:4369 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:436C 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:436F 8A 07 mov al, [bx] -273F:4371 5B pop bx -273F:4372 3C 03 cmp al, CHAR_ACTION_EXEC_SCRIPT -273F:4374 74 10 je loc_ret_845 ; Exit if running script -273F:4376 F6 44 49 FF test byte ptr [si+HS_PATHFIND_COVERED], 0FFh -273F:437A 75 07 jnz loc_844 ; Jump if not zero -273F:437C C6 44 49 01 mov byte ptr [si+HS_PATHFIND_COVERED], 1 -273F:4380 E8 2DAB call pathfind_flag_covered_cells -273F:4383 loc_844: ; xref 273F:437A -273F:4383 E9 032B jmp character_reset_direction - -273F:4386 loc_ret_845: ; xref 273F:4374, 438B -273F:4386 C3 retn - character_update_movement endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5050, 50B1, 512D, 5224, 5EC4, 5EF1, 5F5C - ; 7758 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_pathfind_clear proc near -273F:4387 F6 44 49 FF test byte ptr [si+HS_PATHFIND_COVERED], 0FFh -273F:438B 74 F9 jz loc_ret_845 ; Jump if zero -273F:438D C6 44 49 00 mov byte ptr [si+HS_PATHFIND_COVERED], 0 -273F:4391 E9 2DAF jmp pathfind_clear_covered_cells - character_pathfind_clear endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:56D0, 712F, 7144 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_get_cell proc near -273F:4394 8B 45 0E mov ax, [di+ANIM_ROOM_NUM] -273F:4397 2D 0001 sub ax, 1 ; ax=room # - 1 -273F:439A 8B D8 mov bx, ax -273F:439C B1 04 mov cl, 4 -273F:439E D3 E3 shl bx, cl ; bx=(R-1)*16 -273F:43A0 2B D8 sub bx, ax ; bx=(R-1)*15 -273F:43A2 B1 03 mov cl, 3 -273F:43A4 D3 E3 shl bx, cl ; bx=(R-1)*120 -273F:43A6 81 C3 984A add bx, offset pathfind_data2 -273F:43AA 8B 45 02 mov ax, [di+ANIM_Y] -273F:43AD 2D 0088 sub ax, 88h -273F:43B0 03 45 15 add ax, [di+ANIM_HEIGHT_COPY] -273F:43B3 2D 0004 sub ax, 4 -273F:43B6 D3 E8 shr ax, cl -273F:43B8 3D 0018 cmp ax, 18h ; (y+height-8-4) >= 200? -273F:43BB 73 50 jae loc_850 ; If yes then jump to exit -273F:43BD 8B D0 mov dx, ax ; ax=0->17 -273F:43BF D1 E0 shl ax, 1 -273F:43C1 D1 E0 shl ax, 1 ; ax=ax*4 -273F:43C3 03 C2 add ax, dx ; ax=ax*5 -273F:43C5 03 D8 add bx, ax ; Add bx onto offset - -; At this point bx = (Room# - 1) * 120 + (Y# * 5), where Y# is between 0 to 17 -273F:43C7 8B 05 mov ax, [di+ANIM_X] -273F:43C9 D3 E8 shr ax, cl -273F:43CB 8B 55 13 mov dx, [di+ANIM_WIDTH_COPY] -273F:43CE D3 EA ` shr dx, cl ; ax=left/8, dx=width/8 -273F:43D0 75 03 jnz loc_846 ; Is width < 8 pixels? -273F:43D2 BA 0001 mov dx, 1 ; Yes, default to 1 (8 pixels) -273F:43D5 loc_846: -273F:43D5 2D 0010 sub ax, 10h ; Is left < 0 -273F:43D8 73 0A jnc loc_847 ; Jump if not -273F:43DA F7 D8 neg ax -273F:43DC 2B D0 sub dx, ax -273F:43DE 72 2D jc loc_850 ; Exit if offscreen to left -273F:43E0 74 2B jz loc_850 -273F:43E2 33 C0 xor ax, ax ; Default to 0 -273F:43E4 loc_847: -273F:43E4 8B E8 mov bp, ax -273F:43E6 03 EA add bp, dx ; Add width -273F:43E8 83 ED 29 sub bp, ROOM_PATHS_WIDTH+1 -273F:43EB 72 09 jc loc_848 ; Jump if on screen -273F:43ED 83 C5 01 add bp, 1 -273F:43F0 2B D5 sub dx, bp -273F:43F2 72 19 jc loc_850 ; Jump if carry Set -273F:43F4 74 17 jz loc_850 ; Jump if zero -273F:43F6 loc_848: -273F:43F6 8B E8 mov bp, ax ; bp,ax=(left/8)-10h -273F:43F8 D3 E8 shr ax, cl -273F:43FA 03 D8 add bx, ax ; Increment X offset -273F:43FC 8B CD mov cx, bp -273F:43FE B8 0080 mov ax, 80h -273F:4401 83 E1 07 and cx, 7 -273F:4404 74 02 jz loc_849 -273F:4406 D3 E8 shr ax, cl ; Setup bit mask -273F:4408 loc_849: ; xref 273F:4404 -273F:4408 8B CA mov cx, dx -273F:440A 0B C9 or cx, cx -273F:440C C3 retn -273F:440D loc_850: ; xref 273F:43BB, 43DE, 43E0, 43F2 - ; 43F4 -273F:440D 33 C9 xor cx, cx ; Zero register -273F:440F C3 retn - pathfind_get_cell endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0107, 60FC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_paused_list_countdown proc near -273F:4410 BB B0AE mov bx, offset character_pause_list -273F:4413 B9 0014 mov cx, NUM_PAUSED_CHARS_SLOTS - -273F:4416 locloop_851: -273F:4416 F7 07 FFFF test word ptr [bx+PC_HOTSPOT_PTR],0FFFFh ; Entry position in use? -273F:441A 74 1F jz loc_853 ; Skip entry if not -273F:441C 83 6F 04 01 sub word ptr [bx+PC_COUNTER], 1 ; Decrement entry counter -273F:4420 8B 47 04 mov ax, [bx+PC_COUNTER] -273F:4423 0B C0 or ax,ax ; Reached zero? -273F:4425 75 04 jnz loc_852 ; Jump if not -273F:4427 C7 07 0000 mov word ptr [bx+PC_SRC_CHAR_ID], 0 ; Clear slot -273F:442B loc_852: -273F:442B 81 7F 02 2710 cmp word ptr [bx+PC_DEST_CHAR_ID], START_EXIT_HOTSPOT_ID -273F:4430 73 09 jae loc_853 ; Jump if >= 2710h -273F:4432 8B 77 06 mov si, [bx+PC_HOTSPOT_PTR] -273F:4435 05 0001 add ax, 1 -273F:4438 89 44 4A mov [si+HS_PAUSE_CTR], ax -273F:443B loc_853: -273F:443B 83 C3 08 add bx, PAUSED_CHAR_SLOT_SIZE -273F:443E E2 D6 loop locloop_851 ; Loop if cx > 0 - -273F:4440 C3 retn - character_paused_list_countdown endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:479F, 51A8, 5FB9 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_paused_list_reset proc near -273F:4441 53 push bx -273F:4442 BB B0AE mov bx, offset character_pause_list -273F:4445 B9 0014 mov cx, NUM_PAUSED_CHARS_SLOTS -273F:4448 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] - -273F:444B locloop_854: -273F:444B 3B 07 cmp ax, [bx+PC_SRC_CHAR_ID] -273F:444D 75 16 jne loc_855 ; Skip if entry is empty -273F:444F C7 47 04 0001 mov word ptr [bx+PC_COUNTER], 1 -273F:4454 81 7F 02 2710 cmp word ptr [bx+PC_DEST_CHAR_ID], START_EXIT_HOTSPOT_ID -273F:4459 73 0A jae loc_855 ; Jump if above or = -273F:445B 56 push si -273F:445C 8B 77 06 mov si, [bx+PC_HOTSPOT_PTR] -273F:445F C7 44 4A 0001 mov word ptr [si+HS_PAUSE_CTR], 1 -273F:4464 5E pop si -273F:4465 loc_855: ; Move to next entry -273F:4465 83 C3 08 add bx, PAUSED_CHAR_SLOT_SIZE -273F:4468 E2 E1 loop locloop_854 ; Loop through list - -273F:446A 5B pop bx -273F:446B C3 retn - character_paused_list_reset endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3C71, 3C78, 3D0F, 3F3F, 4971, 5687, 5697 - ; 7CAF, 7D2C, 81E1, 8224, 830A, 833D, 8385 - ; 988C, 9F4B - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - random proc near -273F:446C 56 push si -273F:446D 57 push di -273F:446E 53 push bx -273F:446F 51 push cx -273F:4470 8B 16 38A2 mov dx, random_v1 -273F:4474 A1 38A4 mov ax, random_v2 -273F:4477 B9 015A mov cx,15Ah -273F:447A BB 4E35 mov bx,4E35h -273F:447D 56 push si -273F:447E 96 xchg si,ax -273F:447F 92 xchg dx,ax -273F:4480 85 C0 test ax,ax -273F:4482 74 02 jz loc_856 ; Jump if zero -273F:4484 F7 E3 mul bx ; dx:ax = reg * ax -273F:4486 loc_856: ; xref 273F:4482 -273F:4486 91 xchg cx,ax -273F:4487 85 C0 test ax,ax -273F:4489 74 04 jz loc_857 ; Jump if zero -273F:448B F7 E6 mul si ; dx:ax = reg * ax -273F:448D 03 C8 add cx,ax -273F:448F loc_857: ; xref 273F:4489 -273F:448F 96 xchg si,ax -273F:4490 F7 E3 mul bx ; dx:ax = reg * ax -273F:4492 03 D1 add dx,cx -273F:4494 5E pop si -273F:4495 05 0001 add ax,1 -273F:4498 83 D2 00 adc dx,0 -273F:449B 89 16 38A2 mov random_v1, dx -273F:449F A3 38A4 mov random_v2, ax -273F:44A2 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:44A4 59 pop cx -273F:44A5 5B pop bx -273F:44A6 5F pop di -273F:44A7 5E pop si -273F:44A8 C3 retn - random endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4329, 603C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - check_for_impinging_characters proc near -273F:44A9 úBB B14E mov bx, offset animation_table -273F:44AC B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:44AF 8B 55 0E mov dx, [di+ANIM_ROOM_NUM] - -273F:44B2 locloop_858: ; xref 273F:44D0 -273F:44B2 F6 47 1D FF test byte ptr [bx+ANIM_SKIP], 0FFh -273F:44B6 74 15 jz loc_859 ; Jump if zero -273F:44B8 F6 47 0C FF test byte ptr [bx+ANIM_LAYER], 0FFh -273F:44BC 74 0F jz loc_859 ; Jump if zero -273F:44BE 3B 57 0E cmp dx, [bx+ANIM_ROOM_NUM] -273F:44C1 75 0A jne loc_859 ; Jump if not equal -273F:44C3 53 push bx -273F:44C4 8B 5F 19 mov bx, [bx+ANIM_HOTSPOT_OFFSET] -273F:44C7 E8 10D7 call characters_impinging_check -273F:44CA 5B pop bx -273F:44CB 75 09 jnz loc_860 ; Jump if not zero -273F:44CD loc_859: ; xref 273F:44B6, 44BC, 44C1 -273F:44CD 83 C3 29 add bx, ANIMATION_SLOT_SIZE -273F:44D0 E2 E0 loop locloop_858 ; Loop if cx > 0 - -273F:44D2 0D 0001 or ax, 1 -273F:44D5 C3 retn -273F:44D6 loc_860: ; xref 273F:44CB -273F:44D6 33 C0 xor ax, ax -273F:44D8 C3 retn - check_for_impinging_characters endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:476C, 85A3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - char_face_up proc near -273F:44D9 ú8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:44DC 8A 47 11 mov al, [bx+PIXEL_FRAMENUM_UP] -273F:44DF C7 45 22 0004 mov word ptr [di+ANIM_CHAR_RECT_Y], 4 -273F:44E4 C6 45 26 00 mov byte ptr [di+ANIM_DIRECTION], FACING_UP -273F:44E8 EB 33 jmp short char_face_end - char_face_up endp - - char_face_down proc near -273F:44EA ú8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:44ED 8A 47 12 mov al, [bx+PIXEL_FRAMENUM_DOWN] -273F:44F0 C7 45 22 0004 mov word ptr [di+ANIM_CHAR_RECT_Y], 4 -273F:44F5 C6 45 26 01 mov byte ptr [di+ANIM_DIRECTION], FACING_DOWN -273F:44F9 EB 22 jmp short char_face_end - char_face_down endp - - char_face_left proc near -273F:44FB ú8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:44FE 8A 47 13 mov al, [bx+PIXEL_FRAMENUM_LEFT] -273F:4501 C7 45 22 0000 mov word ptr [di+ANIM_CHAR_RECT_Y], 0 -273F:4506 C6 45 26 02 mov byte ptr [di+ANIM_DIRECTION], FACING_LEFT -273F:450A EB 11 jmp short char_face_end - char_face_left endp - - char_face_right proc near -273F:450C ú8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:450F 8A 47 14 mov al, [bx+PIXEL_FRAMENUM_RIGHT] -273F:4512 C7 45 22 0000 mov word ptr [di+ANIM_CHAR_RECT_Y], 0 -273F:4517 C6 45 26 03 mov byte ptr [di+ANIM_DIRECTION], FACING_RIGHT -273F:451B EB 00 jmp short char_face_end - char_face_right endp - -273F:451D char_face_end: -273F:451D 8B 5F 07 mov bx, [bx+PIXEL_FRAME_SIZE] ; Calculate frame offset -273F:4520 32 E4 xor ah, ah -273F:4522 F7 E3 mul bx -273F:4524 89 45 08 mov [di+ANIM_FRAME_OFFSET], ax -273F:4527 C3 retn - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4333 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - set_new_dispatch_action proc near -273F:4528 ú83 44 61 05 add word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:452C EB 0C jmp short loc_868 - set_new_dispatch_action endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_set_new_dispatch_action proc near -273F:452E 53 push bx -273F:452F 8B C1 mov ax, cx ; Get param -273F:4531 E8 C7B6 call get_room_resource_pointer2 ; Get HS resource -273F:4534 58 pop ax -273F:4535 loc_867: -273F:4535 úC7 44 61 0005 mov word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:453A loc_868: -273F:453A C6 44 4D 00 mov byte ptr [si+HS_V4D], 0 -273F:453E D1 E0 shl ax, 1 ; Shift w/zeros fill -273F:4540 05 1380 add ax, offset support_data_offset_list -273F:4543 8B D8 mov bx, ax -273F:4545 8B 07 mov ax, [bx] ; Get support entry -273F:4547 8B DE mov bx, si -273F:4549 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:454C 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:454F 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax -273F:4552 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:4555 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:4558 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:455B C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:455F C3 retn - seq_set_new_dispatch_action endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5133, 5F63 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_paused_list_scan proc near -273F:4560 úF6 44 4C FF test byte ptr [si+HS_BLOCKED_FLAG], 0FFh -273F:4564 74 2C jz loc_ret_873 ; Jump if zero - character_paused_list_scan_2: -273F:4566 ú53 push bx -273F:4567 BB B0AE mov bx, offset character_pause_list -273F:456A B9 0014 mov cx, NUM_PAUSED_CHARS_SLOTS -273F:456D 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] - -273F:4570 locloop_871: ; xref 273F:458F -273F:4570 3B 07 cmp ax, [bx+PC_SRC_CHAR_ID] ; Found slot for hotspot? -273F:4572 75 18 jne loc_872 ; Skip if not -273F:4574 C7 47 04 000F mov word ptr [bx+PC_COUNTER], 15 -273F:4579 81 7F 02 2710 cmp word ptr [bx+PC_DEST_CHAR_ID], START_EXIT_HOTSPOT_ID -273F:457E 73 0C jae loc_872 -273F:4580 56 push si -273F:4581 51 push cx -273F:4582 8B 77 06 mov si, [bx+PC_HOTSPOT_PTR] -273F:4585 C7 44 4A 000F mov word ptr [si+HS_PAUSE_CTR], 15 -273F:458A 59 pop cx -273F:458B 5E pop si -273F:458C loc_872: ; xref 273F:4572, 457E -273F:458C 83 C3 08 add bx, PAUSED_CHAR_SLOT_SIZE -273F:458F E2 DF loop locloop_871 ; Loop if cx > 0 - -273F:4591 5B pop bx - -273F:4592 loc_ret_873: ; xref 273F:4564 -273F:4592 C3 retn - character_paused_list_scan endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:131F, 56FC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - is_roomexit_hotspot proc near -273F:4593 loc_874: ; xref 273F:459F -273F:4593 3B 04 cmp ax,[si] -273F:4595 74 0D je loc_875 ; Jump if equal -273F:4597 83 C6 02 add si,2 -273F:459A F7 44 FE FFFF test word ptr [si-2],0FFFFh -273F:459F 75 F2 jnz loc_874 ; Jump if not zero -273F:45A1 0C 01 or al,1 -273F:45A3 C3 retn -273F:45A4 loc_875: ; xref 273F:4595 -273F:45A4 33 C0 xor ax,ax ; Zero register -273F:45A6 C3 retn - is_roomexit_hotspot endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5402, 5713, 5816, 5909, 5944, 5AB8, 5B30 - ; 5B96, 5C34, 5CB3, 5D7E, 5DAA, 89F0 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - hotspot_action_precheck proc near -273F:45A7 3D 0420 cmp ax, 420h -273F:45AA 74 0A je loc_876 ; Jump if equal -273F:45AC 3D 0436 cmp ax, 436h -273F:45AF 74 05 je loc_876 ; Jump if equal -273F:45B1 3D 0429 cmp ax, 429h -273F:45B4 75 1A jne loc_879 ; Jump if not equal -273F:45B6 loc_876: ; xref 273F:45AA, 45AF -273F:45B6 50 push ax -273F:45B7 55 push bp -273F:45B8 E8 3F9F call sub_213 ; (855A) -273F:45BB 5D pop bp -273F:45BC 0B C0 or ax, ax ; Zero ? -273F:45BE 74 0B jz loc_878 ; Jump if zero -273F:45C0 58 pop ax -273F:45C1 56 push si -273F:45C2 E8 C725 call get_room_resource_pointer2 -273F:45C5 5B pop bx -273F:45C6 87 F3 xchg si, bx ; si=char, bx=hotspot -273F:45C8 loc_877: -273F:45C8 E9 00BB jmp loc_888 -273F:45CB loc_878: -273F:45CB 58 pop ax -273F:45CC B8 0003 mov ax, 3 ; Initial call for action -273F:45CF C3 retn ; (prior to moving to it) -273F:45D0 loc_879: -273F:45D0 56 push si -273F:45D1 E8 C716 call get_room_resource_pointer2 -273F:45D4 5B pop bx -273F:45D5 87 DE xchg bx, si - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:58B0 - - hotspot_action_precheck_2: -273F:45D7 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Is object in same room -273F:45DA 3B 47 06 cmp ax, [bx+HS_ROOM_NUM] ; as the character? -273F:45DD 75 72 jne loc_884 ; Jump if not -273F:45DF F6 44 2A FF test byte ptr [si+HS_ACTION_CTR], 0FFh -273F:45E3 75 46 jnz loc_883 ; Jump if not zero -273F:45E5 C6 44 2A 01 mov byte ptr [si+HS_ACTION_CTR], 1 -273F:45E9 81 3E BA1B 0408 cmp active_hotspot_id, FIRST_OBJECT_HOTSPOT_ID -273F:45EF 72 09 jb loc_881 ; Jump if below -273F:45F1 loc_880: ; xref 273F:4606, 463B, 4641, 4647 - ; 464F -273F:45F1 úE8 0E95 call character_walking_check -273F:45F4 75 D2 jnz loc_877 ; Jump if not zero -273F:45F6 B8 0003 mov ax, 3 ; Flag walking is required -273F:45F9 C3 retn -273F:45FA loc_881: ; xref 273F:45EF -273F:45FA 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:45FD 3B 47 50 cmp ax, [bx+HS_ACTION_HOTSPOT] -273F:4600 74 C6 je loc_877 ; Jump if equal -273F:4602 80 7F 44 04 cmp byte ptr [bx+HS_CHAR_MODE], CHARMODE_4 -273F:4606 74 E9 je loc_880 ; Jump if equal -273F:4608 80 3E BAB9 02 cmp byte ptr script_val_88, 2 -273F:460D 74 0D je loc_882 ; Jump if equal -273F:460F 53 push bx -273F:4610 BB 0005 mov bx,5 -273F:4613 E8 1D8C call display_message_dialog_2 -273F:4616 5B pop bx -273F:4617 C7 44 42 0004 mov word ptr [si+HS_DELAY_CTR], 4 -273F:461C loc_882: ; xref 273F:460D -273F:461C C7 47 2B 002A mov word ptr [bx+HS_V2B], 2Ah -273F:4621 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:4624 89 47 2F mov [bx+HS_USE_HOTSPOT_ID], ax -273F:4627 B8 0003 mov ax,3 -273F:462A C3 retn -273F:462B loc_883: ; xref 273F:45E3 -273F:462B 80 44 2A 01 add byte ptr [si+HS_ACTION_CTR], 1 -273F:462F 80 7C 2A 06 cmp byte ptr [si+HS_ACTION_CTR], 6 -273F:4633 73 41 jae loc_887 ; Jump if above or = -273F:4635 81 3E BA1B 0408 cmp active_hotspot_id, FIRST_OBJECT_HOTSPOT_ID -273F:463B 73 B4 jae loc_880 ; Jump if above or = -273F:463D 80 7F 44 08 cmp byte ptr [bx+HS_CHAR_MODE], CHARMODE_8 -273F:4641 74 AE je loc_880 ; Jump if equal -273F:4643 80 7F 44 04 cmp byte ptr [bx+HS_CHAR_MODE], CHARMODE_4 -273F:4647 74 A8 je loc_880 ; Jump if equal -273F:4649 80 7F 44 07 cmp byte ptr [bx+HS_CHAR_MODE], CHARMODE_7 -273F:464D 75 17 jne loc_886 ; Jump if not equal -273F:464F EB A0 jmp short loc_880 ; (45F1) -273F:4651 loc_884: ; xref 273F:45DD -273F:4651 F6 44 2A FF test byte ptr [si+HS_ACTION_CTR],0FFh -273F:4655 75 07 jnz loc_885 ; Jump if yes -273F:4657 33 C0 xor ax, ax ; Zero register -273F:4659 53 push bx -273F:465A E8 1D54 call display_message_dialog_3 -273F:465D 5B pop bx -273F:465E loc_885: -273F:465E C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:4662 B8 0001 mov ax, 1 -273F:4665 C3 retn -273F:4666 loc_886: ; xref 273F:464D -273F:4666 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:466A B8 000E mov ax, 0Eh -273F:466D 53 push bx -273F:466E E8 1D40 call display_message_dialog_3 -273F:4671 5B pop bx -273F:4672 B8 0002 mov ax,2 -273F:4675 C3 retn -273F:4676 loc_887: ; xref 273F:4633 -273F:4676 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:467A B8 000D mov ax, 0Dh -273F:467D 53 push bx -273F:467E E8 1D30 call display_message_dialog_3 -273F:4681 5B pop bx -273F:4682 B8 0004 mov ax,4 -273F:4685 C3 retn -273F:4686 loc_888: ; xref 273F:45C8 -273F:4686 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:468A 81 3E BA1B 0408 cmp active_hotspot_id, FIRST_OBJECT_HOTSPOT_ID -273F:4690 73 0F jae loc_889 ; Jump if above or = -273F:4692 C6 47 44 08 mov byte ptr [bx+HS_CHAR_MODE], CHARMODE_8 -273F:4696 C7 47 42 001E mov word ptr [bx+HS_DELAY_CTR], 30 -273F:469B 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:469E 89 47 50 mov [bx+HS_ACTION_HOTSPOT], ax -273F:46A1 loc_889: ; xref 273F:4690 -273F:46A1 33 C0 xor ax,ax ; Zero register -273F:46A3 C3 retn - hotspot_action_precheck endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_45 proc near -273F:46A4 E8 C641 call get_room_resource_pointer -273F:46A7 C6 44 44 07 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_7 -273F:46AB C7 44 42 0082 mov word ptr [si+HS_DELAY_CTR], 130 -273F:46B0 C3 retn - seq_method_45 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_reset_direction proc near -273F:46B1 53 push bx -273F:46B2 80 25 F8 and byte ptr [di+ANIM_X], 0F8h -273F:46B5 80 64 0D F8 and byte ptr [si+HS_X], 0F8h -273F:46B9 80 0D 05 or byte ptr [di+ANIM_X], 5 -273F:46BC 80 4C 0D 05 or byte ptr [si+HS_X], 5 -273F:46C0 8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:46C3 8A 45 26 mov al, [di+ANIM_DIRECTION] -273F:46C6 3C 01 cmp al, FACING_DOWN -273F:46C8 72 10 jb loc_893 ; Jump if up -273F:46CA 74 09 jz loc_892 ; Jump if down -273F:46CC 3C 03 cmp al, 3 -273F:46CE 72 0F jb loc_894 ; Jump if left -273F:46D0 loc_891: -273F:46D0 ú8A 47 14 mov al, [bx+PIXEL_FRAMENUM_RIGHT] -273F:46D3 EB 0D jmp short loc_895 -273F:46D5 loc_892: -273F:46D5 8A 47 12 mov al, [bx+PIXEL_FRAMENUM_DOWN] -273F:46D8 EB 08 jmp short loc_895 -273F:46DA loc_893: -273F:46DA 8A 47 11 mov al, [bx+PIXEL_FRAMENUM_UP] -273F:46DD EB 03 jmp short loc_895 -273F:46DF loc_894: -273F:46DF 8A 47 13 mov al, [bx+PIXEL_FRAMENUM_LEFT] -273F:46E2 loc_895: -273F:46E2 8B 5F 07 mov bx, [bx+PIXEL_FRAME_SIZE] -273F:46E5 32 E4 xor ah, ah ; Zero register -273F:46E7 F7 E3 mul bx ; dx:ax = reg * ax -273F:46E9 89 45 08 mov [di+ANIM_FRAME_OFFSET], ax -273F:46EC 5B pop bx -273F:46ED C3 retn - character_reset_direction endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5411, 572B, 57C6, 58C3, 5920, 5958, 5ACA - ; 5B43, 5BAA, 5C76, 5CC7, 8A00 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_face_hotspot proc near -273F:46EE 53 push bx -273F:46EF 57 push di -273F:46F0 56 push si -273F:46F1 EB 17 jmp short loc_896 ; (470A) - ;* No entry point to code - -273F:46F3 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:46F6 8B 1E BA1B mov bx, active_hotspot_id - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:61C5, 61CA - - character_face_hotspot_2: -273F:46FA 53 push bx -273F:46FB 57 push di -273F:46FC 56 push si -273F:46FD 50 push ax -273F:46FE E8 C5E7 call get_room_resource_pointer -273F:4701 5B pop bx -273F:4702 56 push si -273F:4703 E8 C5E2 call get_room_resource_pointer -273F:4706 5B pop bx -273F:4707 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] -273F:470A loc_896: ; xref 273F:46F1 -273F:470A 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:470D 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:4710 72 70 jb loc_903 ; Jump if below -273F:4712 3D 0408 cmp ax, FIRST_OBJECT_HOTSPOT_ID -273F:4715 73 6B jae loc_903 ; Jump if above or = -273F:4717 53 push bx -273F:4718 8B DE mov bx, si -273F:471A 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:471D 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:4720 8A 07 mov al, [bx] ; Get current action -273F:4722 5B pop bx -273F:4723 81 3E BA1B 7530 cmp active_hotspot_id, START_NONVISUAL_HOTSPOT_ID -273F:4729 72 17 jb loc_897 -273F:472B 5E pop si ; Non selectable hotspot -273F:472C 5F pop di -273F:472D 8A 47 08 mov al, [bx+HS_LOAD_FLAG] -273F:4730 88 45 26 mov [di+ANIM_DIRECTION], al -273F:4733 8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:4736 3C 01 cmp al, FACING_DOWN -273F:4738 72 A0 jb loc_893 ; Jump if up -273F:473A 74 99 jz loc_892 ; Jump if down -273F:473C 3C 03 cmp al, FACING_LEFT -273F:473E 72 9F jb loc_894 ; Jump if left -273F:4740 EB 8E jmp short loc_891 ; Jump for right -273F:4742 loc_897: -273F:4742 8B 54 0F mov dx, [si+HS_Y] -273F:4745 03 54 1B add dx, [si+HS_HEIGHT_COPY] -273F:4748 2B 57 0F sub dx, [bx+HS_Y] -273F:474B 2B 57 1B sub dx, [bx+HS_HEIGHT_COPY] -273F:474E 8B 4C 0D mov cx, [si+HS_X] -273F:4751 2B 4F 0D sub cx, [bx+HS_X] -273F:4754 8B C1 mov ax, cx -273F:4756 0B C0 or ax, ax ; Zero ? -273F:4758 79 02 jns loc_898 ; Jump if not sign -273F:475A F7 D8 neg ax -273F:475C loc_898: ; xref 273F:4758 -273F:475C 8B DA mov bx, dx -273F:475E 0B DB or bx, bx ; Zero ? -273F:4760 79 02 jns loc_899 ; Jump if not sign -273F:4762 F7 DB neg bx -273F:4764 loc_899: ; xref 273F:4760 -273F:4764 3B D8 cmp bx, ax -273F:4766 72 09 jb loc_900 ; Jump if below -273F:4768 0B D2 or dx, dx ; Zero ? -273F:476A 78 0E js loc_901 ; Jump if sign=1 -273F:476C E8 FD6A call char_face_up -273F:476F EB 11 jmp short loc_903 ; (4782) -273F:4771 loc_900: ; xref 273F:4766 -273F:4771 0B C9 or cx,cx ; Zero ? -273F:4773 78 0A js loc_902 ; Jump if sign=1 -273F:4775 E8 FD83 call char_face_left -273F:4778 EB 08 jmp short loc_903 ; (4782) -273F:477A loc_901: ; xref 273F:476A -273F:477A E8 FD6D call char_face_down -273F:477D EB 03 jmp short loc_903 ; (4782) -273F:477F loc_902: ; xref 273F:4773 -273F:477F E8 FD8A call char_face_right -273F:4782 loc_903: ; xref 273F:4710, 4715, 476F, 4778 - ; 477D -273F:4782 5E pop si -273F:4783 5F pop di -273F:4784 5B pop bx -273F:4785 C3 retn - character_face_hotspot endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_execute_script_proc proc near -273F:4786 8B DD mov bx, bp -273F:4788 8B 07 mov ax, [bx] -273F:478A 50 push ax -273F:478B 83 C5 02 add bp, 2 -273F:478E E8 0DF0 call character_walking_end -273F:4791 58 pop ax -273F:4792 E8 F69F call sequence_execute -273F:4795 C3 retn - npc_execute_script_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_reset_paused_list proc near -273F:4796 C6 44 44 01 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_1 -273F:479A C7 44 42 0016 mov word ptr [si+HS_DELAY_CTR], 16h -273F:479F E8 FC9F call character_paused_list_reset -273F:47A2 8B DE mov bx,si ; Move to next npc action -273F:47A4 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:47A7 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:47AA 89 6F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], bp -273F:47AD C3 retn - npc_reset_paused_list endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1E6F, 6279, 6585 - ; si = hotspot record - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_check_x_extents proc near -273F:47AE 53 push bx -273F:47AF 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:47B2 B3 09 mov bl, RH_TABLE_ENTRY_SIZE -273F:47B4 F6 E3 mul bl ; Calculate offset -273F:47B6 8B D8 mov bx, ax -273F:47B8 8B 9F BF40 mov bx, [room_info_table][bx] ; Get room record ptr -273F:47BC 83 C3 19 add bx, ROOM_X_START -273F:47BF 8B 44 0D mov ax, [si+HS_X] ; Get X start -273F:47C2 3B 07 cmp ax, [bx] -273F:47C4 72 13 jb loc_905 ; Jump if below -273F:47C6 05 0020 add ax, 20h -273F:47C9 F7 47 02 FFFF test word ptr [bx+2], 0FFFFh -273F:47CE 74 05 jz loc_904 ; Jump if zero -273F:47D0 3B 47 02 cmp ax, [bx+2] -273F:47D3 73 04 jae loc_905 ; Jump if above or = -273F:47D5 loc_904: ; xref 273F:47CE -273F:47D5 5B pop bx -273F:47D6 33 C0 xor ax,ax ; Zero register -273F:47D8 C3 retn -273F:47D9 loc_905: ; xref 273F:47C4, 47D3 -273F:47D9 5B pop bx -273F:47DA 0D 0001 or ax,1 -273F:47DD C3 retn - room_check_x_extents endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00A3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animations_preload_ticks proc near -273F:47DE A1 9832 mov ax, room_number -273F:47E1 E8 C506 call get_room_resource_pointer2 -273F:47E4 83 7C 13 FF cmp word ptr [si+ROOM_ENTRY_TIME], 0FFFFh -273F:47E8 74 3F je loc_909 ; Jump if equal -273F:47EA 8B 0E B0AA mov cx, game_time_ctr -273F:47EE 2B 4C 13 sub cx, [si+ROOM_ENTRY_TIME] -273F:47F1 74 36 jz loc_909 ; Exit if same -273F:47F3 C6 06 1926 01 mov data_669, 1 - -273F:47F8 81 F9 012C cmp cx, 300 ; Max value -273F:47FC 72 03 jb locloop_906 ; Jump if below -273F:47FE B9 012C mov cx, 300 - -273F:4801 locloop_906: -273F:4801 51 push cx -273F:4802 úBF B14E mov di, offset animation_table -273F:4805 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:4808 locloop_907: ; xref 273F:4824 -273F:4808 F6 45 0C FF test byte ptr [di+ANIM_LAYER], 0FFh -273F:480C 74 13 jz loc_908 ; Skip animation -273F:480E 81 7D 1B 0408 cmp word ptr [di+ANIM_HOTSPOT_ID], FIRST_OBJECT_HOTSPOT_ID -273F:4813 72 0C jb loc_908 ; Skip character hotspots -273F:4815 8B 75 19 mov si, [di+ANIM_HOTSPOT_OFFSET] -273F:4818 8B 45 11 mov ax, [di+ANIM_TICK_PROC] -273F:481B 57 push di -273F:481C 51 push cx -273F:481D FF D0 call ax ; Call hotspot's tick proc -273F:481F 59 pop cx -273F:4820 5F pop di -273F:4821 loc_908: ; xref 273F:480C, 4813 -273F:4821 83 C7 29 add di, ANIMATION_SLOT_SIZE ; Move to next animation -273F:4824 E2 E2 loop locloop_907 - -273F:4826 59 pop cx -273F:4827 E2 D8 loop locloop_906 ; Loop if cx > 0 - -273F:4829 loc_909: ; xref 273F:47E8, 47F1 -273F:4829 C6 06 1926 00 mov data_669, 0 -273F:482E C3 retn - animations_preload_ticks endp - -273F:482F 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:2031 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - add_sequence_delay proc near -273F:4830 03 0E B8AB add cx, seq_timer_ctr -273F:4834 33 C0 xor ax,ax ; Zero register -273F:4836 13 06 B8AD adc ax, seq_timer_ctr_2 -273F:483A BE B8AF mov si, offset sequence_delay_table -273F:483D EB 62 jmp short add_sequence_delay_2 - add_sequence_delay endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0024 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - clear_sequence_delay_table proc near -273F:483F úBE B8AF mov si,offset sequence_delay_table -273F:4842 B9 0028 mov cx, NUM_DELAY_ENTRIES - -273F:4845 locloop_910: ; xref 273F:4857 -273F:4845 F6 44 06 FF test byte ptr [si+6], 0FFh ; Can the entry be cleared? -273F:4849 74 09 jz loc_911 ; Skip if not -273F:484B C7 04 0000 mov word ptr [si], 0 ; Clear the entry -273F:484F C7 44 02 0000 mov word ptr [si+2], 0 -273F:4854 loc_911: -273F:4854 83 C6 07 add si, DELAY_ENTRY_SIZE -273F:4857 E2 EC loop locloop_910 ; Loop if cx > 0 - -273F:4859 C3 retn - clear_sequence_delay_table endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - sequence_delay_check proc near -273F:485A 8B 16 B8AB mov dx, seq_timer_ctr -273F:485E 8B 1E B8AD mov bx, seq_timer_ctr_2 -273F:4862 úBE B8AF mov si, offset sequence_delay_table -273F:4865 B9 0028 mov cx, NUM_DELAY_ENTRIES - -273F:4868 locloop_912: ; xref 273F:4889 -273F:4868 F7 04 FFFF test word ptr [si], 0FFFFh ; Any entry here? -273F:486C 74 18 jz loc_913 ; Skip if not -273F:486E 3B 5C 02 cmp bx, [si+2] ; Check high word of expiry time -273F:4871 72 13 jb loc_913 ; Jump if below -273F:4873 3B 14 cmp dx, [si] ; Check low word -273F:4875 72 0F jb loc_913 ; Jump if below -273F:4877 C7 04 0000 mov word ptr [si], 0 ; Timeout for entry reached -273F:487B C7 44 02 0000 mov word ptr [si+2], 0 -273F:4880 8B 44 04 mov ax, [si+4] ; Get script to execute -273F:4883 E9 F5AE jmp sequence_execute ; Execute the script -273F:4886 loc_913: -273F:4886 83 C6 07 add si, DELAY_ENTRY_SIZE ; Move to next entry -273F:4889 E2 DD loop locloop_912 ; Loop if cx > 0 -273F:488B C3 retn - sequence_delay_check endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - sequence_delay_list_init proc near -273F:488C úBE B8AF mov si, offset sequence_delay_table -273F:488F B9 0028 mov cx, NUM_DELAY_ENTRIES -273F:4892 locloop_914: -273F:4892 C7 04 0000 mov word ptr [si], 0 -273F:4896 83 C6 07 add si, DELAY_ENTRY_SIZE -273F:4899 E2 F7 loop locloop_914 ; Loop if cx > 0 -273F:489B C3 retn - sequence_delay_list_init endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:489C BE B8AF mov si, offset sequence_delay_table -273F:489F 33 C0 xor ax, ax - add_sequence_delay_2: -273F:48A1 8B E9 mov bp, cx -273F:48A3 B9 0028 mov cx, NUM_DELAY_ENTRIES - -273F:48A6 locloop_916: -273F:48A6 F7 04 FFFF test word ptr [si],0FFFFh ; Slot free? -273F:48AA 75 13 jnz loc_917 ; If not, then skip -273F:48AC F7 44 02 FFFF test word ptr [si+2],0FFFFh -273F:48B1 75 0C jnz loc_917 -273F:48B3 89 2C mov [si],bp ; Store low word of expiry time -273F:48B5 89 44 02 mov [si+2], ax ; Store high word of expiry time -273F:48B8 89 5C 04 mov [si+4], bx ; Store script offset -273F:48BB 88 54 06 mov [si+6], dl -273F:48BE C3 retn -273F:48BF loc_917: -273F:48BF 83 C6 07 add si, DELAY_ENTRY_SIZE ; Loop through table -273F:48C2 E2 E2 loop locloop_916 - -273F:48C4 03 00 add ax, [bx+si] - - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - ; - ; External Entry Point - ; - ; Timer Handler - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -273F:48C6 timer_handler proc far ; xref 273F:06AA -273F:48C6 50 push ax -273F:48C7 53 push bx -273F:48C8 51 push cx -273F:48C9 52 push dx -273F:48CA 56 push si -273F:48CB 57 push di -273F:48CC 55 push bp -273F:48CD 1E push ds -273F:48CE 06 push es -273F:48CF 9C pushf ; Push flags -273F:48D0 B8 31E4 mov ax,data_seg -273F:48D3 8E D8 mov ds,ax - -; Timer ticks incrementor - -273F:48D5 81 3E F010 2EE0 cmp timer_ticks, TIMER_TICKS_MAX -273F:48DB 73 05 jae loc_918 ; Jump if above or = -273F:48DD 83 06 F010 01 add timer_ticks, 1 ; (31E4:F010=0) -273F:48E2 loc_918: - -; Code below is responsible for blinking musical note and playing music if a music sequence is set - -273F:48E2 F6 06 5668 FF test note_flag, 0FFh ; Any need to display note? -273F:48E7 74 52 jz loc_923 ; No, so skip this section -273F:48E9 A0 5668 mov al, note_flag -273F:48EC 24 3F and al,3Fh -273F:48EE 75 46 jnz loc_922 ; Not yet at blink switch over -273F:48F0 80 0E 5668 0F or note_flag, 0Fh ; Reset for blink interval -273F:48F5 80 36 5668 40 xor note_flag, 40h ; Toggle whether note is visble -273F:48FA B8 A000 mov ax, VGA_SEGMENT -273F:48FD 8E C0 mov es,ax -273F:48FF úBF E740 mov di, NOTE_DISPLAY_ADDR ; Where note will be displayed -273F:4902 BB 0007 mov bx, NOTE_IMAGE_WIDTH/2 ; Number of horiz words (width/2) -273F:4905 BA 000E mov dx, NOTE_IMAGE_HEIGHT ; Number of lines to display -273F:4908 F6 06 5668 40 test note_flag, MUSIC_NOTE_VISIBLE -273F:490D 74 18 jz loc_920 ; No, so wipe out area -273F:490F 1E push ds -273F:4910 B8 4502 mov ax, musical_note_seg -273F:4913 8E D8 mov ds,ax -273F:4915 33 F6 xor si,si -273F:4917 loc_919: -273F:4917 8B CB mov cx,bx -273F:4919 F3/ A5 rep movsw ; Loop for moving one line of image -273F:491B ú81 C7 0132 add di, 320-MUSIC_NOTE_WIDTH ; Move to start of next line -273F:491F 83 EA 01 sub dx,1 -273F:4922 75 F3 jnz loc_919 ; Jump if not zero -273F:4924 1F pop ds -273F:4925 EB 14 jmp short loc_923 ; (493B) -273F:4927 loc_920: ; xref 273F:490D -273F:4927 33 C0 xor ax,ax ; Blank out area where note is -273F:4929 loc_921: -273F:4929 8B CB mov cx,bx -273F:492B F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:492D 81 C7 0132 add di,132h -273F:4931 83 EA 01 sub dx,1 -273F:4934 75 F3 jnz loc_921 ; Jump if not zero -273F:4936 loc_922: ; xref 273F:48EE -273F:4936 80 2E 5668 01 sub note_flag, 1 ; Decrement remaining time until -273F:493B loc_923: ; next time note is shown/hidden -273F:493B F6 06 5660 04 test music_status,4 ; Once every 8 cycles (approx every -273F:4940 74 0D jz loc_924 ; 1/2 second), keep music playing -273F:4942 F6 06 5660 02 test music_status,2 -273F:4947 75 06 jnz loc_924 -273F:4949 B4 02 mov ah,2 -273F:494B FF 1E 5662 call dword ptr [play_music_proc] - -; Remaining code is as of yet unknown - -273F:494F loc_924: -273F:494F F6 06 38B0 FF test data_781, 0FFh -273F:4954 75 1E jnz loc_925 ; Jump if not zero -273F:4956 80 2E 38B3 01 sub byte ptr data_783,1 ; (31E4:38B3=32h) -273F:495B 75 17 jnz loc_925 ; Jump if not zero -273F:495D 83 06 B8AB 01 add seq_timer_ctr, 1 -273F:4962 83 16 B8AD 00 adc seq_timer_ctr_2, 0 -273F:4967 C6 06 38B3 32 mov byte ptr data_783,32h ; (31E4:38B3=32h) '2' -273F:496C 80 0E 073D 02 or status_flags2, 2 -273F:4971 E8 FAF8 call random -273F:4974 loc_925: ; xref 273F:4954, 495B -273F:4974 83 06 38B1 01 add time_ctr, 1 ; (31E4:38B1=0) -273F:4979 2E: 80 2E 48C4 01 sub byte ptr cs:[48C4h],1 ; (273F:48C4=3) -273F:497F 75 2C jnz loc_928 ; Jump if not zero -273F:4981 B0 02 mov al,2 -273F:4983 2E: 80 3E 48C5 44 cmp byte ptr cs:[48C5h],44h ; (273F:48C5=0) 'D' -273F:4989 73 02 jae loc_926 ; Jump if above or = -273F:498B 04 01 add al,1 -273F:498D loc_926: ; xref 273F:4989 -273F:498D 2E: A2 48C4 mov byte ptr cs:[48C4h],al ; (273F:48C4=3) -273F:4991 2E: 80 06 48C5 01 add byte ptr cs:[48C5h],1 ; (273F:48C5=0) -273F:4997 2E: 80 3E 48C5 5B cmp byte ptr cs:[48C5h],5Bh ; (273F:48C5=0) '[' -273F:499D 72 06 jb loc_927 ; Jump if below -273F:499F 2E: C6 06 48C5 00 mov byte ptr cs:[48C5h],0 ; (273F:48C5=0) - - -; Interrupt ending code - either send to old timer interrupt, or signal end without calling it - -273F:49A5 loc_927: ; xref 273F:499D -273F:49A5 9C pushf ; Push flags -273F:49A6 2E: FF 1E 04AA call dword ptr cs:old_timer_int_proc -273F:49AB EB 04 jmp short loc_929 ; (49B1) -273F:49AD loc_928: ; xref 273F:497F -273F:49AD B0 20 mov al,20h ; ' ' -273F:49AF E6 20 out 20h,al ; port 20h, 8259-1 int command - ; al = 20h, end of interrupt -273F:49B1 loc_929: ; xref 273F:49AB -273F:49B1 9D popf ; Pop flags -273F:49B2 07 pop es -273F:49B3 1F pop ds -273F:49B4 5D pop bp -273F:49B5 5F pop di -273F:49B6 5E pop si -273F:49B7 5A pop dx -273F:49B8 59 pop cx -273F:49B9 5B pop bx -273F:49BA 58 pop ax -273F:49BB CF iret ; Interrupt return - timer_handler endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0127 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:49BC room_sleep proc near -273F:49BC 83 3E 9832 23 cmp room_number, ROOMNUM_VILLAGE_SHOP -273F:49C1 75 26 jne sleep -273F:49C3 F7 06 BA25 FFFF test old_room_number, 0FFFFh -273F:49C9 75 1E jnz sleep -273F:49CB F6 06 073D 02 test status_flags2, 2 -273F:49D0 74 17 jz sleep -273F:49D2 50 push ax -273F:49D3 BB 0010 mov bx,10h -273F:49D6 F6 06 073D 04 test status_flags2, 4 -273F:49DB 75 03 jnz loc_930 ; Jump if not zero -273F:49DD BB 0032 mov bx,32h -273F:49E0 loc_930: ; xref 273F:49DB -273F:49E0 E8 561A call play_sound ; (9FFD) -273F:49E3 80 36 073D 06 xor status_flags2, 6 -273F:49E8 58 pop ax - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:3B77, 3B8C, 75BC, 75C8, 75DA, 75E6, 75F8 - ; 7604, 7616, 764A, 977D, A1C3, A1D9, A5E6 - ; A615, A63A, A68D, A6F0, A93F, AA03 - -273F:49E9 sleep: -273F:49E9 loc_931: ; xref 273F:49C1, 49C9, 49D0, 49ED -273F:49E9 39 06 38B1 cmp time_ctr, ax -273F:49ED 72 FA jb loc_931 -273F:49EF C7 06 38B1 0000 mov time_ctr, 0 -273F:49F5 C3 retn - room_sleep endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5142, 5F79 - ; ax=character Hotspot Id, bx=dest x, cx=dest y, dl=[4ch] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_pathfind proc near -273F:49F6 89 26 3942 mov pathfind_sp, sp ; Backup current SP -273F:49FA C7 06 3944 0FA0 mov pathfind_countdown_ctr, 0FA0h -273F:4A00 F6 06 3946 FF test pathfind_in_progress, 0FFh -273F:4A05 74 0E jz loc_933 ; Jump if zero -273F:4A07 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:4A0A 74 03 je loc_932 ; Jump if equal -273F:4A0C 33 C0 xor ax,ax ; Zero register -273F:4A0E C3 retn -273F:4A0F loc_932: -273F:4A0F úBE 3983 mov si, offset player_pathfind_data -273F:4A12 8B 24 mov sp, [si] ; Get SP for restore point -273F:4A14 C3 retn ; (ie. carry on where we left off) -273F:4A15 loc_933: -273F:4A15 BE 3983 mov si, offset player_pathfind_data -273F:4A18 BD 03E8 mov bp, PLAYER_HOTSPOT_ID -273F:4A1B 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:4A1E 74 17 je loc_935 ; Jump if equal -273F:4A20 úBE 4227 mov si, offset chars_pathfind_data -273F:4A23 BD 057A mov bp, 57Ah -273F:4A26 F7 04 FFFF test word ptr [si], 0FFFFh -273F:4A2A 74 10 jz loc_936 ; Jump if zero -273F:4A2C 3B 44 02 cmp ax, [si+2] -273F:4A2F 74 03 je loc_934 ; Jump if equal -273F:4A31 33 C0 xor ax, ax ; Zero register -273F:4A33 C3 retn -273F:4A34 loc_934: ; xref 273F:4A2F -273F:4A34 8B 24 mov sp, [si] -273F:4A36 C3 retn -273F:4A37 loc_935: ; xref 273F:4A1E -273F:4A37 C6 06 3946 01 mov pathfind_in_progress, 1 -273F:4A3C loc_936: ; xref 273F:4A2A -273F:4A3C 88 54 04 mov [si+PATHFIND_HS4C], dl -273F:4A3F 89 44 02 mov [si+PATHFIND_CHARACTER_ID], ax ; Store character Id -273F:4A42 8B E5 mov sp, bp - -; Handle adjusting destination X for left & right screen edges to place it completely -; off-screen. This will allows characters to walk completely off-screen as they exit -273F:4A44 81 FB 008A cmp bx, 80h + 10 ; dest x >= 10? -273F:4A48 73 05 jae loc_937 ; Jump if yes -273F:4A4A 83 EB 32 sub bx, 50 -273F:4A4D EB 09 jmp short loc_938 ; (4A58) -273F:4A4F loc_937: ; xref 273F:4A48 -273F:4A4F 81 FB 01B6 cmp bx, 80h + 310 -273F:4A53 72 03 jb loc_938 ; Jump if below -273F:4A55 83 C3 32 add bx, 50 -273F:4A58 loc_938: -273F:4A58 89 5C 06 mov [si+PATHFIND_DEST_X], bx ; Store X -273F:4A5B 89 4C 08 mov [si+PATHFIND_DEST_Y], cx ; Store Y - -273F:4A5E 8B 6D 13 mov bp, [di+ANIM_WIDTH_COPY] -273F:4A61 83 ED 01 sub bp, 1 -273F:4A64 B1 03 mov cl, 3 -273F:4A66 D3 ED shr bp, cl ; bp=(width copy-1)/8 -273F:4A68 57 push di -273F:4A69 ú81 C6 08A2 add si, 8A2h - -; Figure out the address for the bit-compressed data for screen walkable areas -273F:4A6D 8B 45 0E mov ax, [di+ANIM_ROOM_NUM] -273F:4A70 8B D8 mov bx, ax -273F:4A72 B1 04 mov cl, 4 -273F:4A74 D3 E0 shl ax, cl -273F:4A76 2B C3 sub ax, bx -273F:4A78 B1 03 mov cl, 3 -273F:4A7A D3 E0 shl ax, cl ; ax=Room # * 120 - -; Extract the bit-compressed data of the pathfinding data for the room into an -; uncompressed 26*42 byte array indicating whether each 8x8 pixel block on screen -; (and a surrounding column and row around the screen edge) can be traveled on -; cx = bit number, dl = number of columns, dh = number of rows - -273F:4A7C 05 9849 add ax, offset pathfind_data2 - 1 -273F:4A7F 1E push ds -273F:4A80 07 pop es -273F:4A81 8B FE mov di, si ; for player di=4225h -273F:4A83 8B F0 mov si, ax ; si=end of pathfind layer for room -273F:4A85 FD std ; Set for reverse direction -273F:4A86 33 C0 xor ax, ax -273F:4A88 B9 002B mov cx, 2Bh ; # cols + end col of 2nd last row -273F:4A8B F3/ AB rep stosw ; Clear area -273F:4A8D 83 C7 01 add di, 1 ; For player di=41D0h - -273F:4A90 B6 18 mov dh, 24 ; Number of rows on-screen -273F:4A92 loc_939: -273F:4A92 B2 05 mov dl, 5 ; Number of bytes horizontally - -273F:4A94 loc_940: -273F:4A94 AC lodsb ; Get next byte -273F:4A95 86 E0 xchg ah, al ; Move it into AH -273F:4A97 32 C0 xor al, al ; Reset AL to 0 for storage -273F:4A99 B9 0008 mov cx, 8 ; Number of bits in the byte - -273F:4A9C locloop_941: ; xref 273F:4AA2, 4AB3 -273F:4A9C D0 EC shr ah, 1 ; Move next bit for processing -273F:4A9E 72 06 jc loc_942 ; Jump if bit set (block occupied) -273F:4AA0 AA stosb ; Store 0 to es:[di] -273F:4AA1 AA stosb ; Store 0 to es:[di] -273F:4AA2 E2 F8 loop locloop_941 ; Loop for remaining bits - -273F:4AA4 EB 33 jmp short loc_948 -273F:4AA6 loc_942: ; Handling for occupied blocks -273F:4AA6 F6 D0 not al -273F:4AA8 AA stosb ; Store 0FFh to es:[di] -273F:4AA9 AA stosb ; Store 0FFh to es:[di] -273F:4AAA F6 D0 not al -273F:4AAC 8B DD mov bx, bp ; Get width/8 val -273F:4AAE 83 EB 01 sub bx, 1 -273F:4AB1 73 1D jnc loc_947 ; Jump if width/8 val != 0 -273F:4AB3 loc_943: -273F:4AB3 E2 E7 loop locloop_941 ; Keep looping - -273F:4AB5 EB 22 jmp short loc_948 ; (4AD9) -273F:4AB7 loc_944: ; xref 273F:4AD5 -273F:4AB7 B9 0008 mov cx,8 -273F:4ABA AC lodsb ; String [si] to al -273F:4ABB 86 E0 xchg ah,al -273F:4ABD 32 C0 xor al,al ; Zero register - -273F:4ABF locloop_945: ; xref 273F:4AD0 -273F:4ABF D0 EC shr ah,1 ; Shift w/zeros fill -273F:4AC1 73 02 jnc loc_946 ; Jump if carry=0 -273F:4AC3 8B DD mov bx,bp -273F:4AC5 loc_946: ; xref 273F:4AC1 -273F:4AC5 F6 D0 not al -273F:4AC7 AA stosb ; Store al to es:[di] -273F:4AC8 AA stosb ; Store al to es:[di] -273F:4AC9 F6 D0 not al -273F:4ACB 83 EB 01 sub bx,1 -273F:4ACE 72 E3 jc loc_943 ; Jump if carry Set -273F:4AD0 loc_947: ; xref 273F:4AB1 -273F:4AD0 E2 ED loop locloop_945 ; Loop if cx > 0 - -273F:4AD2 80 EA 01 sub dl,1 -273F:4AD5 75 E0 jnz loc_944 ; Jump if not zero -273F:4AD7 EB 05 jmp short loc_949 ; (4ADE) - -273F:4AD9 loc_948: ; xref 273F:4AA4, 4AB5 -273F:4AD9 80 EA 01 sub dl,1 -273F:4ADC 75 B6 jnz loc_940 ; Jump if not zero -273F:4ADE loc_949: -273F:4ADE B9 0004 mov cx, 4 ; Store end col, next row start col -273F:4AE1 F3/ AA rep stosb -273F:4AE3 B2 05 mov dl, 5 -273F:4AE5 80 EE 01 sub dh, 1 -273F:4AE8 75 A8 jnz loc_939 ; Jump if not zero - -273F:4AEA 83 EF 01 sub di, 1 -273F:4AED B9 0029 mov cx, 29h ; Handle final top off-screen row -273F:4AF0 33 C0 xor ax, ax -273F:4AF2 F3/ AB rep stosw - -; End of decompression code for the path finding layer. - -273F:4AF4 83 EF 1A sub di, 1Ah ; di=3983 again (skips local variables) -273F:4AF7 5E pop si ; si=anim slot -273F:4AF8 33 C0 xor ax, ax ; Zero register -273F:4AFA 89 45 0A mov [di+PATHFIND_Y], ax -273F:4AFD 89 45 0C mov [di+PATHFIND_X], ax -273F:4B00 89 45 10 mov [di+PATHFIND_DEST_X2], ax -273F:4B03 89 45 0E mov [di+PATHFIND_0E], ax -273F:4B06 88 45 05 mov [di+PATHFIND_DEST_STATE], al -273F:4B09 81 2E 3944 02BC sub pathfind_countdown_ctr, 2BCh ; v2=0FA0h-2BCh=CE4h -273F:4B0F 8B 04 mov ax, [si+ANIM_X] ; Get current X -273F:4B11 2D 0080 sub ax, 80h ; Subtract the 80h offset -273F:4B14 73 05 jnc loc_950 ; Jump if current X on-screen -273F:4B16 89 45 0C mov [di+PATHFIND_X], ax -273F:4B19 33 C0 xor ax, ax ; Zero register -273F:4B1B loc_950: ; ax = max(0, X) -273F:4B1B BB 013F mov bx, 319 -273F:4B1E 2B 5C 13 sub bx, [si+ANIM_WIDTH_COPY] -273F:4B21 3B C3 cmp ax, bx -273F:4B23 72 07 jb loc_951 ; X + full width on screen? -273F:4B25 2B C3 sub ax, bx -273F:4B27 89 45 0C mov [di+PATHFIND_X], ax ; X = min(X, 319 - width) -273F:4B2A 8B C3 mov ax, bx -273F:4B2C loc_951: -273F:4B2C 8B 5C 02 mov bx, [si+ANIM_Y] -273F:4B2F 80 E3 F8 and bl, 0F8h -273F:4B32 03 5C 15 add bx, [si+ANIM_HEIGHT_COPY] -273F:4B35 83 EB 04 sub bx, 4 -273F:4B38 81 EB 0088 sub bx, 88h ; bx=(Y&0F8h+height-4-8) -273F:4B3C 73 05 jnc loc_952 ; Jump if bx (y bottom) < 0 -273F:4B3E 89 5D 0A mov [di+PATHFIND_Y], bx -273F:4B41 33 DB xor bx, bx ; Zero register -273F:4B43 loc_952: -273F:4B43 81 FB 00C0 cmp bx, 192 ; Is it on-screen? -273F:4B47 72 0A jb loc_953 ; Jump if below -273F:4B49 81 EB 00BF sub bx, 191 -273F:4B4D 89 5D 0A mov [di+PATHFIND_Y], bx -273F:4B50 BB 00BF mov bx, 191 - -273F:4B53 loc_953: -273F:4B53 8B 4D 06 mov cx, [di+PATHFIND_DEST_X] -273F:4B56 81 E9 0080 sub cx, 128 -273F:4B5A 73 05 jnc loc_954 ; Jump if x >= 0 -273F:4B5C 89 4D 10 mov [di+PATHFIND_DEST_X2], cx ; Store X (will be negative) -273F:4B5F 33 C9 xor cx, cx -273F:4B61 loc_954: -273F:4B61 BA 0140 mov dx, SCREEN_WIDTH -273F:4B64 2B 54 13 sub dx, [si+ANIM_WIDTH_COPY] -273F:4B67 3B CA cmp cx, dx -273F:4B69 72 07 jb loc_955 ; Jump if fully on screen -273F:4B6B 2B CA sub cx, dx -273F:4B6D 89 4D 10 mov [di+PATHFIND_DEST_X2], cx -273F:4B70 8B CA mov cx, dx -273F:4B72 loc_955: -273F:4B72 8B 55 08 mov dx, [di+PATHFIND_DEST_Y] -273F:4B75 81 EA 0088 sub dx, 88h -273F:4B79 73 02 jnc loc_956 ; Jump if y >= 0 -273F:4B7B 33 D2 xor dx, dx ; Zero register -273F:4B7D loc_956: -273F:4B7D 81 FA 00C0 cmp dx, 192 -273F:4B81 72 03 jb loc_957 ; Jump if below -273F:4B83 BA 00BF mov dx, 191 -273F:4B86 loc_957: ; xref 273F:4B81 -273F:4B86 8B E9 mov bp, cx - -; current=(ax,bx), dest=(bp,dx). Check to see if a move of only a few pixels is required -273F:4B88 B1 03 mov cl, 3 -273F:4B8A D3 E8 shr ax, cl -273F:4B8C D3 EB shr bx, cl -273F:4B8E D3 ED shr bp, cl -273F:4B90 D3 EA shr dx, cl -273F:4B92 3B C5 cmp ax, bp ; Is x/8=dest_x/8? -273F:4B94 75 2B jne loc_961 ; Jump if not -273F:4B96 3B DA cmp bx, dx ; Is y/8=dest_y/8? -273F:4B98 75 27 jne loc_961 ; Jump if not - -; Destination is very close to source. -; If (I think) the PATHFIND_DEST_X2 != 0 (ie. dest is partially off-screen), then -; an initial walk entry is placed. Then irrespective, control jumps to loc_1003, -; which puts another left/right walking entry to move the character to dest X - -273F:4B9A úBB 3940 mov bx, offset pathfind_buffer_end -273F:4B9D C7 07 0000 mov word ptr [bx], 0 ; Set end of pathfind sequence -273F:4BA1 8B 45 10 mov ax, [di+PATHFIND_DEST_X2] -273F:4BA4 0B C0 or ax, ax ; Any partial off-screen move? -273F:4BA6 74 16 jz loc_960 ; Jump if zero -273F:4BA8 78 07 js loc_958 ; Jump if sign=1 -273F:4BAA C7 47 FE 0002 mov word ptr [bx-2], FACING2_RIGHT -273F:4BAF EB 07 jmp short loc_959 ; (4BB8) -273F:4BB1 loc_958: ; xref 273F:4BA8 -273F:4BB1 C7 47 FE 0001 mov word ptr [bx-2], FACING2_LEFT -273F:4BB6 F7 D8 neg ax -273F:4BB8 loc_959: ; xref 273F:4BAF -273F:4BB8 89 47 FC mov [bx-4], ax ; Store # steps -273F:4BBB 83 EB 04 sub bx, 4 ; Move back for next record -273F:4BBE loc_960: -273F:4BBE E9 02B3 jmp loc_1003 - -; Destination isn't close, so here's where the actual pathfinding needs to be done -; current=(ax,bx)/8, dest=(bp,dx)/8 - -273F:4BC1 loc_961: ; xref 273F:4B94, 4B98 -273F:4BC1 50 push ax -273F:4BC2 53 push bx -273F:4BC3 55 push bp -273F:4BC4 52 push dx -273F:4BC5 89 6D 06 mov [di+PATHFIND_DEST_X], bp ; Store dest pos/8 -273F:4BC8 89 55 08 mov [di+PATHFIND_DEST_Y], dx - -273F:4BCB D1 E0 shl ax, 1 ; ax=sb_x*2 -273F:4BCD 8B F3 mov si, bx ; si=sb_y -273F:4BCF B1 02 mov cl, 2 -273F:4BD1 D3 E3 shl bx, cl ; bx=sb_y*4 -273F:4BD3 03 DE add bx, si ; bx=sb_y*5 -273F:4BD5 D3 E3 shl bx, cl ; bx=sb_y*20 -273F:4BD7 03 DE add bx, si ; bx=sb_y*21 -273F:4BD9 D3 E3 shl bx, cl ; bx=sb_y*84 -273F:4BDB 03 D8 add bx, ax ; bx=sb_y*84 + sb_x*2 -273F:4BDD 83 C3 72 add bx, 72h ; Add on buffer & blank line offset -273F:4BE0 03 DF add bx, di ; bx=source cell -273F:4BE2 C7 07 0001 mov word ptr [bx],1 ; Flag source cell -273F:4BE6 D1 E5 shl bp, 1 -273F:4BE8 8B F2 mov si, dx -273F:4BEA D3 E6 shl si, cl -273F:4BEC 03 F2 add si, dx -273F:4BEE D3 E6 shl si, cl -273F:4BF0 03 F2 add si, dx -273F:4BF2 D3 E6 shl si, cl -273F:4BF4 03 F5 add si, bp -273F:4BF6 83 C6 72 add si, 72h -273F:4BF9 03 F7 add si, di ; si=dest cell -273F:4BFB C6 45 12 00 mov byte ptr [di+PATHFIND_DEST_OCCUPIED], 0 -273F:4BFF F6 04 FF test byte ptr [si], 0FFh ; Is dest cell blocked? -273F:4C02 74 0C jz loc_962 ; Jump if clear -273F:4C04 C7 04 0000 mov word ptr [si], 0 ; Mark dest cell as unblocked -273F:4C08 C6 45 12 01 mov byte ptr [di+PATHFIND_DEST_OCCUPIED], 1 -273F:4C0C C6 45 05 01 mov byte ptr [di+PATHFIND_DEST_STATE], 1 ; Dest occupied -273F:4C10 loc_962: -273F:4C10 F6 45 04 FF test byte ptr [di+PATHFIND_HS4C],0FFh -273F:4C14 74 00 jz $+2 -273F:4C16 5A pop dx -273F:4C17 59 pop cx -273F:4C18 5D pop bp -273F:4C19 58 pop ax - -; Source/8=(ax,bp), Dest/8=(cx,dx), bx=source cell, si=dest cell -273F:4C1A 3B C1 cmp ax,cx ; Start X against Dest X -273F:4C1C 73 19 jae loc_964 ; Jump if >= -273F:4C1E 0B C0 or ax,ax ; Is Start X 0? -273F:4C20 74 06 jz loc_963 ; Jump if yes -273F:4C22 2D 0001 sub ax, 1 -273F:4C25 83 EB 02 sub bx, 2 -273F:4C28 loc_963: -273F:4C28 C7 45 14 0002 mov word ptr [di+PATHFIND_X_CHANGE1], 2 -273F:4C2D B9 0028 mov cx, ROOM_PATHS_WIDTH -273F:4C30 2B C8 sub cx, ax -273F:4C32 89 4D 18 mov [di+PATHFIND_X_CHANGE2], cx -273F:4C35 EB 17 jmp short loc_966 ; (4C4E) -273F:4C37 loc_964: ; xref 273F:4C1C -273F:4C37 3D 0027 cmp ax, ROOM_PATHS_WIDTH - 1 -273F:4C3A 74 06 je loc_965 ; Jump if equal -273F:4C3C 05 0001 add ax, 1 -273F:4C3F 83 C3 02 add bx, 2 -273F:4C42 loc_965: ; xref 273F:4C3A -273F:4C42 C7 45 14 FFFE mov word ptr [di+PATHFIND_X_CHANGE1], 0FFFEh -273F:4C47 89 45 18 mov [di+PATHFIND_X_CHANGE2],ax -273F:4C4A 83 45 18 01 add word ptr [di+PATHFIND_X_CHANGE2], 1 -273F:4C4E loc_966: ; xref 273F:4C35 -273F:4C4E 3B EA cmp bp, dx -273F:4C50 72 19 jb loc_968 ; Jump if below -273F:4C52 83 FD 17 cmp bp, ROOM_PATHS_HEIGHT - 1 -273F:4C55 74 06 je loc_967 ; Jump if equal -273F:4C57 83 C5 01 add bp, 1 -273F:4C5A 83 C3 54 add bx, DECODED_PATHS_WIDTH * 2 -273F:4C5D loc_967: ; xref 273F:4C55 -273F:4C5D C7 45 16 FFAC mov [di+PATHFIND_Y_CHANGE1], -DECODED_PATHS_WIDTH*2 -273F:4C62 89 6D 1A mov [di+PATHFIND_Y_CHANGE2], bp -273F:4C65 83 45 1A 01 add [di+PATHFIND_Y_CHANGE2], 1 -273F:4C69 EB 17 jmp short loc_970 ; (4C82) -273F:4C6B loc_968: ; xref 273F:4C50 -273F:4C6B 0B ED or bp, bp ; Zero ? -273F:4C6D 74 06 jz loc_969 ; Jump if zero -273F:4C6F 83 ED 01 sub bp, 1 -273F:4C72 83 EB 54 sub bx, DECODED_PATHS_WIDTH * 2 -273F:4C75 loc_969: ; xref 273F:4C6D -273F:4C75 C7 45 16 0054 mov word ptr [di+PATHFIND_Y_CHANGE1], DECODED_PATHS_WIDTH * 2 -273F:4C7A B9 0018 mov cx, ROOM_PATHS_HEIGHT -273F:4C7D 2B CD sub cx, bp -273F:4C7F 89 4D 1A mov [di+PATHFIND_Y_CHANGE2], cx -273F:4C82 loc_970: - -; This next section populates the walkable sections of the decompressed array -; with incrementing numbers indicating the number of cells away each cell is -; from the source. A walkable path can be later formed by following the -; path of decrementing numbers from the destination to the source and reversing it - -273F:4C82 8B 55 14 mov dx,[di+PATHFIND_X_CHANGE1] -273F:4C85 loc_971: ; xref 273F:4CC6, 4CCE, 4CDA -273F:4C85 ú56 push si -273F:4C86 53 push bx -273F:4C87 8B 36 3944 mov si, pathfind_countdown_ctr -273F:4C8B 8B 4D 1A mov cx, [di+PATHFIND_Y_CHANGE2] - -273F:4C8E locloop_972: ; xref 273F:4C9F -273F:4C8E 51 push cx -273F:4C8F 53 push bx -273F:4C90 8B 4D 18 mov cx, [di+PATHFIND_X_CHANGE2] - -273F:4C93 locloop_973: ; xref 273F:4C98 -273F:4C93 E8 021A call pathfind_populate_cells -273F:4C96 03 DA add bx, dx -273F:4C98 E2 F9 loop locloop_973 ; Loop if cx > 0 - -273F:4C9A 5B pop bx -273F:4C9B 59 pop cx -273F:4C9C 03 5D 16 add bx, [di+PATHFIND_Y_CHANGE1] -273F:4C9F E2 ED loop locloop_972 ; Loop if cx > 0 - -273F:4CA1 89 36 3944 mov pathfind_countdown_ctr, si -273F:4CA5 5B pop bx -273F:4CA6 5E pop si -273F:4CA7 F7 04 FFFF test word ptr [si], 0FFFFh ; Dest been filled in yet? -273F:4CAB 75 2F jnz loc_977 ; Jump if yes - -273F:4CAD 80 7D 1A 18 cmp byte ptr [di+PATHFIND_Y_CHANGE2], ROOM_PATHS_HEIGHT -273F:4CB1 75 08 jne loc_974 ; Jump if not equal -273F:4CB3 80 7D 18 28 cmp byte ptr [di+PATHFIND_X_CHANGE2], ROOM_PATHS_WIDTH -273F:4CB7 74 17 je loc_976 ; Jump if equal -273F:4CB9 EB 07 jmp short loc_975 -273F:4CBB loc_974: ; xref 273F:4CB1 -273F:4CBB 2B 5D 16 sub bx, [di+PATHFIND_Y_CHANGE1] -273F:4CBE 83 45 1A 01 add word ptr [di+PATHFIND_Y_CHANGE2], 1 -273F:4CC2 loc_975: -273F:4CC2 80 7D 18 28 cmp byte ptr [di+PATHFIND_X_CHANGE2], ROOM_PATHS_WIDTH -273F:4CC6 74 BD je loc_971 ; Jump if equal -273F:4CC8 2B DA sub bx, dx -273F:4CCA 83 45 18 01 add word ptr [di+PATHFIND_X_CHANGE2], 1 -273F:4CCE EB B5 jmp short loc_971 - -273F:4CD0 loc_976: -273F:4CD0 F6 45 13 FF test byte ptr [di+PATHFIND_CELL_POPULATED], 0FFh -273F:4CD4 74 08 jz loc_978 ; Jump if no cell populated -273F:4CD6 C6 45 13 00 mov byte ptr [di+PATHFIND_CELL_POPULATED], 0 -273F:4CDA EB A9 jmp short loc_971 ; Jump for another try -273F:4CDC loc_977: -273F:4CDC EB 66 jmp short loc_982 -273F:4CDE loc_978: -273F:4CDE C6 45 05 02 mov byte ptr [di+PATHFIND_DEST_STATE], 2 ; No path to destination -273F:4CE2 loc_979: -273F:4CE2 F6 45 12 FF test byte ptr [di+PATHFIND_DEST_OCCUPIED], 0FFh -273F:4CE6 74 08 jz loc_980 ; Jump if zero -273F:4CE8 C7 04 FFFF mov word ptr [si], 0FFFFh ; Restore destination occupied -273F:4CEC C6 45 12 00 mov byte ptr [di+PATHFIND_DEST_OCCUPIED], 0 -273F:4CF0 loc_980: - -; Do a scan of the lines, if necessary, to allow the character to walk up to -; a wall without walking into it -273F:4CF0 57 push di -273F:4CF1 8B EE mov bp, si -273F:4CF3 8B DE mov bx, si ; bx=bp=destination cell -273F:4CF5 B2 FF mov dl, 0FFh -273F:4CF7 8B 4D 06 mov cx, [di+PATHFIND_DEST_X] -273F:4CFA 83 C1 01 add cx, 1 -273F:4CFD BF FFFE mov di, 0FFFEh -273F:4D00 E8 0220 call pathfind_scan_line -273F:4D03 5F pop di -273F:4D04 57 push di -273F:4D05 B9 0028 mov cx, ROOM_PATHS_WIDTH -273F:4D08 2B 4D 06 sub cx, [di+PATHFIND_DEST_X] -273F:4D0B BF 0002 mov di, 2 -273F:4D0E E8 0212 call pathfind_scan_line -273F:4D11 5F pop di -273F:4D12 57 push di -273F:4D13 8B 4D 08 mov cx, [di+PATHFIND_DEST_Y] -273F:4D16 83 C1 01 add cx, 1 -273F:4D19 BF FFAC mov di, -DECODED_PATHS_WIDTH*2 -273F:4D1C E8 0204 call pathfind_scan_line -273F:4D1F 5F pop di -273F:4D20 57 push di -273F:4D21 B9 0018 mov cx, ROOM_PATHS_HEIGHT -273F:4D24 2B 4D 08 sub cx, [di+PATHFIND_DEST_Y] -273F:4D27 BF 0054 mov di, DECODED_PATHS_WIDTH*2 -273F:4D2A E8 01F6 call pathfind_scan_line -273F:4D2D 5F pop di -273F:4D2E 8B F5 mov si, bp -273F:4D30 3B DE cmp bx, si -273F:4D32 75 0E jne loc_981 ; Jump if not equal -273F:4D34 C6 45 05 03 mov byte ptr [di+PATHFIND_DEST_STATE], 3 -273F:4D38 úBB 3940 mov bx, offset pathfind_buffer_end -273F:4D3B C7 07 0000 mov word ptr [bx], 0 -273F:4D3F E9 0132 jmp loc_1003 ; (4E74) -273F:4D42 loc_981: ; xref 273F:4D32 -273F:4D42 8B F3 mov si, bx - -273F:4D44 loc_982: ; xref 273F:4CDC -273F:4D44 F6 45 12 FF test byte ptr [di+PATHFIND_DEST_OCCUPIED], 0FFh -273F:4D48 75 98 jnz loc_979 ; Jump if not zero - -; end of cell population -; Fill out any cells that are still blank (ie. anywhere that can't reach the -; destination) as occupied - -273F:4D4A FC cld ; Clear direction -273F:4D4B 57 push di -273F:4D4C 83 C7 1C add di, 1Ch ; di=start of grid -273F:4D4F B9 0445 mov cx, DECODED_PATHS_WIDTH*DECODED_PATHS_HEIGHT+1 ;445h -273F:4D52 33 C0 xor ax, ax -273F:4D54 loc_983: -273F:4D54 úF2/ AF repne scasw ; Scan for an empty cell -273F:4D56 0B C9 or cx, cx ; Reached end of list? -273F:4D58 74 07 jz loc_984 ; Jump if yes -273F:4D5A C7 45 FE FFFF mov word ptr [di-2], 0FFFFh ; Replace it with occupied state -273F:4D5F EB F3 jmp short loc_983 - -273F:4D61 loc_984: -273F:4D61 5F pop di -273F:4D62 33 D2 xor dx, dx -273F:4D64 B1 FF mov cl,0FFh -273F:4D66 úBB 3940 mov bx, offset pathfind_buffer_end -273F:4D69 C7 07 0000 mov word ptr [bx], 0 -273F:4D6D F6 45 05 FF test byte ptr [di+PATHFIND_DEST_STATE], 0FFh -273F:4D71 75 1D jnz loc_987 ; Jump if not zero -273F:4D73 8B 45 10 mov ax, [di+PATHFIND_DEST_X2] -273F:4D76 0B C0 or ax,ax ; Zero ? -273F:4D78 74 16 jz loc_987 ; Jump if zero -273F:4D7A 78 07 js loc_985 ; Jump if sign=1 -273F:4D7C C7 47 FE 0002 mov word ptr [bx-2], FACING2_RIGHT -273F:4D81 EB 07 jmp short loc_986 ; (4D8A) -273F:4D83 loc_985: ; xref 273F:4D7A -273F:4D83 C7 47 FE 0001 mov word ptr [bx-2], FACING2_LEFT -273F:4D88 F7 D8 neg ax -273F:4D8A loc_986: ; xref 273F:4D81 -273F:4D8A 89 47 FC mov [bx-4], ax ; Save # steps -273F:4D8D 83 EB 04 sub bx, 4 -273F:4D90 loc_987: ; xref 273F:4D71, 4D78, 4E64, 4E6F - -273F:4D90 ú53 push bx -273F:4D91 56 push si - -; Form a set of steps starting at the source -273F:4D92 loc_988: -273F:4D92 ú8B 04 mov ax, [si] ; Get steps value from current pos -273F:4D94 2D 0001 sub ax, 1 -273F:4D97 74 4A jz loc_992 ; Jump if zero -273F:4D99 F6 C2 26 test dl, 38 -273F:4D9C 75 11 jnz loc_989 ; Jump if not zero -273F:4D9E 39 44 AC cmp [si-DECODED_PATHS_WIDTH*2], ax -273F:4DA1 74 67 je loc_996 ; Jump if equal -273F:4DA3 39 44 54 cmp [si+DECODED_PATHS_WIDTH*2], ax -273F:4DA6 74 60 je loc_995 ; Jump if equal -273F:4DA8 39 44 02 cmp [si+2], ax -273F:4DAB 74 38 je loc_993 ; Jump if equal -273F:4DAD EB 11 jmp short loc_990 ; (4DC0) -273F:4DAF loc_989: ; xref 273F:4D9C -273F:4DAF 39 44 02 cmp [si+2], ax -273F:4DB2 74 31 je loc_993 ; Jump if equal -273F:4DB4 39 44 FE cmp [si-2], ax -273F:4DB7 74 07 je loc_990 ; Jump if equal -273F:4DB9 39 44 54 cmp [si+DECODED_PATHS_WIDTH*2], ax -273F:4DBC 74 70 je loc_998 ; Jump if equal -273F:4DBE EB 4A jmp short loc_996 ; (4E0A) -273F:4DC0 loc_990: ; xref 273F:4DAD, 4DB7 -273F:4DC0 80 E2 03 and dl,3 -273F:4DC3 F6 C2 02 test dl,2 -273F:4DC6 75 10 jnz loc_991 ; Jump if not zero -273F:4DC8 80 C6 01 add dh,1 -273F:4DCB C7 47 FE 0002 mov word ptr [bx-2], FACING2_RIGHT -273F:4DD0 C7 47 FC 0000 mov word ptr [bx-4], 0 -273F:4DD5 83 EB 04 sub bx, 4 -273F:4DD8 loc_991: ; xref 273F:4DC6 -273F:4DD8 83 EE 02 sub si,2 -273F:4DDB 83 07 08 add word ptr [bx],8 -273F:4DDE 80 CA 02 or dl,2 -273F:4DE1 EB AF jmp short loc_988 ; (4D92) -273F:4DE3 loc_992: ; xref 273F:4D97 -273F:4DE3 EB 6D jmp short loc_1000 ; (4E52) -273F:4DE5 loc_993: ; xref 273F:4DAB, 4DB2 -273F:4DE5 80 E2 05 and dl,5 -273F:4DE8 F6 C2 04 test dl,4 -273F:4DEB 75 10 jnz loc_994 ; Jump if not zero -273F:4DED 80 C6 01 add dh,1 -273F:4DF0 C7 47 FE 0001 mov word ptr [bx-2], FACING2_LEFT -273F:4DF5 C7 47 FC 0000 mov word ptr [bx-4], 0 -273F:4DFA 83 EB 04 sub bx, 4 -273F:4DFD loc_994: ; xref 273F:4DEB -273F:4DFD 83 C6 02 add si, 2 -273F:4E00 83 07 08 add word ptr [bx], 8 ; Add # steps -273F:4E03 80 CA 04 or dl, 4 -273F:4E06 EB 8A jmp short loc_988 ; (4D92) -273F:4E08 loc_995: ; xref 273F:4DA6 -273F:4E08 EB 24 jmp short loc_998 ; (4E2E) -273F:4E0A loc_996: ; xref 273F:4DA1, 4DBE -273F:4E0A 80 E2 09 and dl,9 -273F:4E0D F6 C2 08 test dl,8 -273F:4E10 75 10 jnz loc_997 ; Jump if not zero -273F:4E12 80 C6 01 add dh,1 -273F:4E15 C7 47 FE 0008 mov word ptr [bx-2], FACING2_DOWN -273F:4E1A C7 47 FC 0000 mov word ptr [bx-4], 0 -273F:4E1F 83 EB 04 sub bx, 4 -273F:4E22 loc_997: ; xref 273F:4E10 -273F:4E22 83 EE 54 sub si, DECODED_PATHS_WIDTH*2 -273F:4E25 83 07 08 add word ptr [bx], 8 ; Add # steps -273F:4E28 80 CA 08 or dl, 8 -273F:4E2B E9 FF64 jmp loc_988 ; (4D92) -273F:4E2E loc_998: ; xref 273F:4DBC, 4E08 -273F:4E2E 80 E2 11 and dl,11h -273F:4E31 F6 C2 10 test dl,10h -273F:4E34 75 10 jnz loc_999 ; Jump if not zero -273F:4E36 80 C6 01 add dh,1 -273F:4E39 C7 47 FE 0004 mov word ptr [bx-2], FACING2_UP -273F:4E3E C7 47 FC 0000 mov word ptr [bx-4], 0 -273F:4E43 83 EB 04 sub bx, 4 -273F:4E46 loc_999: ; xref 273F:4E34 -273F:4E46 83 C6 54 add si, DECODED_PATHS_WIDTH*2 -273F:4E49 83 07 08 add word ptr [bx], 8 ; Add # steps -273F:4E4C 80 CA 10 or dl, 10h -273F:4E4F E9 FF40 jmp loc_988 ; (4D92) - -; This post-check is used to go through the paths two times - the first two -; tries the path using standard direction checks, the second using the alternate -; checks. If the first run through was the shortest, redo the process a third -; time to get the walking sequence that was obtained the first time -273F:4E52 loc_1000: -273F:4E52 F6 C2 01 test dl, 1 ; Test for exit flag -273F:4E55 75 1B jnz loc_1002 ; Jump if yes -273F:4E57 F6 C1 80 test cl, 80h -273F:4E5A 74 0B jz loc_1001 ; Jump if zero -273F:4E5C 5E pop si -273F:4E5D 5B pop bx -273F:4E5E 8A CE mov cl, dh ; Store number of steps -273F:4E60 32 F6 xor dh, dh ; Reset counter -273F:4E62 B2 20 mov dl, 20h ; Flag for alt direction check -273F:4E64 E9 FF29 jmp loc_987 ; Go get directions again -273F:4E67 loc_1001: -273F:4E67 3A CE cmp cl, dh -273F:4E69 73 07 jae loc_1002 ; Jump if above or = -273F:4E6B 5E pop si -273F:4E6C 5B pop bx -273F:4E6D B2 01 mov dl, 1 ; Flag for exit after retry -273F:4E6F E9 FF1E jmp loc_987 - -273F:4E72 loc_1002: -273F:4E72 5E pop si -273F:4E73 58 pop ax - -273F:4E74 loc_1003: -273F:4E74 FC cld ; Clear direction -273F:4E75 8B 45 0C mov ax, [di+PATHFIND_X] -273F:4E78 A9 FFFF test ax, 0FFFFh ; Check X position -273F:4E7B 74 19 jz loc_1006 -273F:4E7D 78 0A js loc_1004 ; Move -273F:4E7F C7 47 FE 0001 mov word ptr [bx-2], FACING2_LEFT -273F:4E84 89 47 FC mov [bx-4], ax ; Save # steps -273F:4E87 EB 0A jmp short loc_1005 -273F:4E89 loc_1004: ; xref 273F:4E7D -273F:4E89 C7 47 FE 0002 mov word ptr [bx-2], FACING2_RIGHT -273F:4E8E F7 D8 neg ax -273F:4E90 89 47 FC mov [bx-4], ax ; Save # steps -273F:4E93 loc_1005: -273F:4E93 83 EB 04 sub bx, 4 ; Move back one record -273F:4E96 loc_1006: ; End of pathfinding -273F:4E96 C7 05 0000 mov word ptr [di], 0 -273F:4E9A 8B 26 3942 mov sp, pathfind_sp -273F:4E9E C6 06 3946 00 mov pathfind_in_progress, 0 ; Reset in-progress flag -273F:4EA3 B8 0001 mov ax, 1 ; Set return value -273F:4EA6 02 45 05 add al, [di+PATHFIND_DEST_STATE] -273F:4EA9 50 push ax -273F:4EAA 53 push bx -273F:4EAB 06 push es -273F:4EAC 07 pop es -273F:4EAD 5B pop bx -273F:4EAE 58 pop ax -273F:4EAF C3 retn - character_pathfind endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4C93 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_populate_cells proc near -273F:4EB0 F7 07 FFFF test word ptr [bx], 0FFFFh ; Is cell occupied? -273F:4EB4 75 48 jnz loc_1013 ; Jump if it is -273F:4EB6 BD FFFF mov bp, 0FFFFh -273F:4EB9 8B 47 AC mov ax, [bx-(DECODED_PATHS_WIDTH*2)] ; Get cell from one line up -273F:4EBC 0B C0 or ax, ax ; Is it occupied -273F:4EBE 74 06 jz loc_1007 ; Jump if not -273F:4EC0 3B C5 cmp ax, bp ; Is it standard occupied indicator? -273F:4EC2 73 02 jae loc_1007 -273F:4EC4 8B E8 mov bp,ax ; Store loaded cell value -273F:4EC6 loc_1007: -273F:4EC6 8B 47 54 mov ax, [bx+(DECODED_PATHS_WIDTH*2)] ; Get cell from next line -273F:4EC9 0B C0 or ax, ax ; Is it occupied? -273F:4ECB 74 06 jz loc_1008 ; Jump if not -273F:4ECD 3B C5 cmp ax, bp -273F:4ECF 73 02 jae loc_1008 -273F:4ED1 8B E8 mov bp, ax ; Store loaded cell value -273F:4ED3 loc_1008: -273F:4ED3 8B 47 FE mov ax, [bx-2] ; Get cell from left -273F:4ED6 0B C0 or ax, ax ; Is it occupied? -273F:4ED8 74 06 jz loc_1009 ; Jump if not -273F:4EDA 3B C5 cmp ax, bp -273F:4EDC 73 02 jae loc_1009 ; Store loaded cell value -273F:4EDE 8B E8 mov bp, ax -273F:4EE0 loc_1009: -273F:4EE0 8B 47 02 mov ax, [bx+2] ; Get cell from right -273F:4EE3 0B C0 or ax, ax ; Is it occupied? -273F:4EE5 74 06 jz loc_1010 ; Jump if not -273F:4EE7 3B C5 cmp ax, bp -273F:4EE9 73 02 jae loc_1010 -273F:4EEB 8B E8 mov bp, ax ; Store loaded cell value -273F:4EED loc_1010: - -; At this point, bp contains the lowest value from the surrounding cells, not -; counting entries with 0ffff (occupied). Below we will now add 1 to the value -; and store it in the cell. By repeated calls processing the entire grid, we -; can figure out a path to the destination by following sequential numbers -273F:4EED 83 C5 01 add bp, 1 -273F:4EF0 74 06 jz loc_1011 ; If no vals found, skip save -273F:4EF2 89 2F mov [bx], bp ; Store value -273F:4EF4 C6 45 13 01 mov byte ptr [di+PATHFIND_CELL_POPULATED], 1 -273F:4EF8 loc_1011: ; xref 273F:4EF0 -273F:4EF8 83 EE 03 sub si, 3 ; Decrement countdown ctr -273F:4EFB 72 06 jc loc_1014 ; Break if countdown ended - -273F:4EFD loc_ret_1012: ; xref 273F:4F01 -273F:4EFD C3 retn -273F:4EFE loc_1013: ; xref 273F:4EB4 -273F:4EFE 83 EE 01 sub si, 1 ; Decrement countdown ctr -273F:4F01 73 FA jnc loc_ret_1012 ; Don't break if countdown not ended -273F:4F03 loc_1014: -273F:4F03 89 36 3944 mov pathfind_countdown_ctr, si -273F:4F07 50 push ax -273F:4F08 53 push bx -273F:4F09 51 push cx -273F:4F0A 52 push dx -273F:4F0B 56 push si -273F:4F0C 57 push di -273F:4F0D 55 push bp -273F:4F0E 1E push ds -273F:4F0F 06 push es -273F:4F10 9C pushf -273F:4F11 E8 0034 call pathfind_return_to_sp -273F:4F14 9D popf -273F:4F15 07 pop es -273F:4F16 1F pop ds -273F:4F17 5D pop bp -273F:4F18 5F pop di -273F:4F19 5E pop si -273F:4F1A 5A pop dx -273F:4F1B 59 pop cx -273F:4F1C 5B pop bx -273F:4F1D 58 pop ax -273F:4F1E 8B 36 3944 mov si, pathfind_countdown_ctr -273F:4F22 C3 retn - pathfind_populate_cells endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4D00, 4D0E, 4D1C, 4D2A - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_scan_line proc near -273F:4F23 8B F5 mov si, bp -273F:4F25 32 F6 xor dh, dh - -273F:4F27 locloop_1015: ; xref 273F:4F45 -273F:4F27 03 F7 add si, di ; Add increment amount -273F:4F29 80 C6 01 add dh,1 -273F:4F2C F7 04 FFFF test word ptr [si], 0FFFFh ; Check cell -273F:4F30 74 13 jz loc_1018 ; Skip if empty (unpopulated) -273F:4F32 78 11 js loc_1018 ; Or if occupied -273F:4F34 3A D6 cmp dl, dh ; Check ctr against max -273F:4F36 72 0C jb loc_ret_1017 ; Exit if below -273F:4F38 75 06 jnz loc_1016 ; Jump if not equal -273F:4F3A 8B 04 mov ax, [si] -273F:4F3C 3B 07 cmp ax, [bx] -273F:4F3E 73 04 jae loc_ret_1017 ; Jump if above or = -273F:4F40 loc_1016: ; xref 273F:4F38 -273F:4F40 8B DE mov bx,si -273F:4F42 8A D6 mov dl, dh - -273F:4F44 loc_ret_1017: ; xref 273F:4F36, 4F3E -273F:4F44 C3 retn -273F:4F45 loc_1018: ; xref 273F:4F30, 4F32 -273F:4F45 E2 E0 loop locloop_1015 ; Loop if cx > 0 - -273F:4F47 C3 retn - pathfind_scan_line endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4F11 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_return_to_sp proc near -273F:4F48 89 25 mov [di], sp -273F:4F4A 8B 26 3942 mov sp, pathfind_sp -273F:4F4E 33 C0 xor ax, ax -273F:4F50 FC cld ; Clear direction -273F:4F51 C3 retn - pathfind_return_to_sp endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5039, 5127, 5EB0, 5EE9, 5F56 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_reset proc near -273F:4F52 53 push bx -273F:4F53 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:4F56 75 0E jne loc_1019 ; Jump if not equal -273F:4F58 úBB 3983 mov bx, offset player_pathfind_data -273F:4F5B C6 06 3946 00 mov pathfind_in_progress, 0 -273F:4F60 C7 07 0000 mov word ptr [bx], 0 -273F:4F64 5B pop bx -273F:4F65 C3 retn -273F:4F66 loc_1019: ; xref 273F:4F56 -273F:4F66 úBB 4227 mov bx, offset chars_pathfind_data -273F:4F69 3B 47 02 cmp ax, [bx+2] -273F:4F6C 75 04 jne loc_1020 ; Jump if not equal -273F:4F6E C7 07 0000 mov word ptr [bx], 0 -273F:4F72 loc_1020: ; xref 273F:4F6C -273F:4F72 5B pop bx -273F:4F73 C3 retn - pathfind_reset endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8FE4 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_pathfind_reset proc near -273F:4F74 C6 06 3946 00 mov pathfind_in_progress, 0 -273F:4F79 úBE 4227 mov si, offset chars_pathfind_data -273F:4F7C C7 04 0000 mov word ptr [si], 0 -273F:4F80 C3 retn - seq_pathfind_reset endp - -273F:4F81 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Contains all the standard handling for characters, such as the Skorl - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - standard_character_tick_proc proc near -273F:4F82 ú8B DE mov bx, si -273F:4F84 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:4F87 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:4F8A E8 11EB call talk_countdown_handler -273F:4F8D F7 44 2F FFFF test word ptr [si+HS_USE_HOTSPOT_ID], 0FFFFh -273F:4F92 74 1F jz loc_1023 ; Jump if no hotspot to use -273F:4F94 8B 44 2B mov ax, [si+HS_V2B] -273F:4F97 3D 002A cmp ax, 2Ah -273F:4F9A 74 03 je loc_1022 ; Jump if equal -273F:4F9C E9 F3C7 jmp character_update_movement - -273F:4F9F loc_1022: ; xref 273F:4F9A -273F:4F9F A3 BA1B mov active_hotspot_id, ax -273F:4FA2 8B 44 2F mov ax, [si+HS_USE_HOTSPOT_ID] -273F:4FA5 A3 BA19 mov use_hotspot_id, ax -273F:4FA8 8B 44 2D mov ax, [si+HS_HOTSPOT_SCRIPT_ID] -273F:4FAB E8 EE86 call sequence_execute -273F:4FAE C7 44 2F 0000 mov word ptr [si+HS_USE_HOTSPOT_ID], 0 -273F:4FB3 loc_1023: -273F:4FB3 F7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:4FB8 74 05 jz loc_1024 -273F:4FBA 83 6C 1F 01 sub word ptr [si+HS_FRAME_CTR], 1 -273F:4FBE C3 retn -273F:4FBF loc_1024: -273F:4FBF E8 C149 call character_find_impinging_chars -273F:4FC2 F6 45 1D FF test byte ptr [di+ANIM_SKIP], 0FFh -273F:4FC6 74 4C jz loc_1028 ; Skip if necessary -273F:4FC8 F7 06 10BE FFFF test num_impinging_chars, 0FFFFh ; Bumped into anyone? -273F:4FCE 74 40 jz loc_1027 ; Jump if not -273F:4FD0 56 push si -273F:4FD1 úBE 10C0 mov si, offset impinging_char_list -273F:4FD4 loc_1025: -273F:4FD4 AD lodsw ; Get character Id -273F:4FD5 0B C0 or ax, ax ; End of list reached? -273F:4FD7 74 2C jz loc_1026 ; Jump if yes -273F:4FD9 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID ; Is it the player? -273F:4FDC 75 F6 jne loc_1025 ; Skip if yes -273F:4FDE 80 3E 6D33 02 cmp [player_hotspot_rec+HS_CHAR_MODE], CHARMODE_IDLE -273F:4FE3 75 20 jne loc_1026 ; Jump if not equal -273F:4FE5 5E pop si ; Signal the player to move -273F:4FE6 úBE 6CEF mov si, offset player_hotspot_rec ; out of the way -273F:4FE9 BF B14E mov di, offset animation_table -273F:4FEC 8B DE mov bx, si -273F:4FEE 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:4FF1 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:4FF4 C6 44 4C 01 mov byte ptr [si+HS_BLOCKED_FLAG], BS_INITIAL -273F:4FF8 C7 44 52 0000 mov [si+HS_DEST_HOTSPOT], 0 -273F:4FFD C6 06 9834 04 mov cursor_state, CURSORSTATE_BUMPED -273F:5002 E9 0661 jmp character_set_random_dest - -273F:5005 loc_1026: -273F:5005 5E pop si -273F:5006 C6 44 44 03 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_PAUSED -273F:500A C7 44 42 000A mov word ptr [si+HS_DELAY_CTR], 10 -273F:500F C3 retn - -273F:5010 loc_1027: -273F:5010 C6 45 1D 00 mov byte ptr [di+ANIM_SKIP], 0 -273F:5014 loc_1028: -273F:5014 F7 44 47 FFFF test [si+SCRIPT_HOTSPOT_ID], 0FFFFh -273F:5019 74 11 jz loc_1029 ; Jump if zero -273F:501B 8B 44 47 mov ax, [si+SCRIPT_HOTSPOT_ID] -273F:501E A3 BA19 mov use_hotspot_id, ax -273F:5021 8B 44 45 mov ax, [si+HS_TICK_SCRIPT_OFFSET] -273F:5024 E8 EE0D call sequence_execute -273F:5027 C7 44 47 0000 mov word ptr [si+SCRIPT_HOTSPOT_ID], 0 - -273F:502C loc_1029: -273F:502C F7 44 4A FFFF test word ptr [si+HS_PAUSE_CTR], 0FFFFh -273F:5031 74 21 jz loc_1031 ; Jump if zero -273F:5033 E8 F330 call character_update_movement -273F:5036 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:5039 E8 FF16 call pathfind_reset -273F:503C 83 7C 4A 01 cmp word ptr [si+HS_PAUSE_CTR], 1 -273F:5040 74 03 je loc_1030 ; Jump if equal -273F:5042 E9 F521 jmp character_paused_list_scan_2 -273F:5045 loc_1030: ; xref 273F:5040 -273F:5045 C7 44 4A 0000 mov word ptr [si+HS_PAUSE_CTR], 0 -273F:504A F6 44 44 FF test byte ptr [si+HS_CHAR_MODE], 0FFh -273F:504E 75 04 jnz loc_1031 ; Jump if not zero -273F:5050 E8 F334 call character_pathfind_clear -273F:5053 C3 retn - -273F:5054 loc_1031: ; xref 273F:5031, 504E -273F:5054 F6 44 44 FF test byte ptr [si+HS_CHAR_MODE], 0FFh -273F:5058 75 02 jnz loc_1032 ; Jump if not zero -273F:505A EB 6C jmp short loc_1040 ; (50C8) -273F:505C loc_1032: ; xref 273F:5058 -273F:505C 8A 44 44 mov al, [si+HS_CHAR_MODE] -273F:505F 3C 06 cmp al, CHARMODE_6 -273F:5061 75 17 jne loc_1034 ; Jump if not equal -273F:5063 E8 F300 call character_update_movement -273F:5066 53 push bx -273F:5067 úBB 10BE mov bx, offset num_impinging_chars -273F:506A loc_1033: ; xref 273F:5076 -273F:506A 8B 07 mov ax, [bx] ; Get impinging char Id -273F:506C 0B C0 or ax, ax ; End of list reached? -273F:506E 74 37 jz loc_1037 -273F:5070 83 C3 02 add bx, 2 ; Move to next entry -273F:5073 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID ; Is character the player? -273F:5076 75 F2 jne loc_1033 ; Keep looping -273F:5078 5B pop bx -273F:5079 C3 retn - -273F:507A loc_1034: -273F:507A F7 44 42 FFFF test word ptr [si+HS_DELAY_CTR], 0FFFFh -273F:507F 74 27 jz loc_1038 ; Jump if zero -273F:5081 E8 F2E2 call character_update_movement -273F:5084 F7 44 50 FFFF test word ptr [si+HS_ACTION_HOTSPOT], 0FFFFh -273F:5089 74 17 jz loc_1035 ; Jump if zero -273F:508B 56 push si -273F:508C 8B 5C 50 mov bx, [si+HS_ACTION_HOTSPOT] -273F:508F E8 BC56 call get_room_resource_pointer -273F:5092 5B pop bx -273F:5093 87 F3 xchg si, bx ; si=char Id, -273F:5095 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:5098 3B 47 06 cmp ax, [bx+HS_ROOM_NUM] -273F:509B 75 0B jne loc_1038 ; Jump if not equal -273F:509D E8 0501 call characters_impinging_check -273F:50A0 74 06 jz loc_1038 ; Jump if zero -273F:50A2 loc_1035: ; xref 273F:5089 -273F:50A2 83 6C 42 01 sub word ptr [si+HS_DELAY_CTR], 1 - -273F:50A6 loc_ret_1036: ; xref 273F:50BB -273F:50A6 C3 retn -273F:50A7 loc_1037: ; xref 273F:506E -273F:50A7 5B pop bx -273F:50A8 loc_1038: ; xref 273F:507F, 509B, 50A0 -273F:50A8 33 C0 xor ax,ax ; Zero register -273F:50AA 89 44 50 mov [si+HS_ACTION_HOTSPOT], ax -273F:50AD 86 44 44 xchg [si+HS_CHAR_MODE], al -273F:50B0 50 push ax -273F:50B1 E8 F2D3 call character_pathfind_clear -273F:50B4 58 pop ax -273F:50B5 3C 04 cmp al, CHARMODE_4 -273F:50B7 74 04 je loc_1039 ; Jump if equal -273F:50B9 3C 07 cmp al, CHARMODE_7 -273F:50BB 75 E9 jne loc_ret_1036 ; Jump if not equal -273F:50BD loc_1039: ; xref 273F:50B7 -273F:50BD C7 44 33 0000 mov word ptr [si+HS_V33], 0 -273F:50C2 B8 0001 mov ax, 1 -273F:50C5 E9 12E9 jmp display_message_dialog - -273F:50C8 loc_1040: ; xref 273F:505A -273F:50C8 F7 44 58 FFFF test word ptr [si+HS_V58], 0FFFFh -273F:50CD 74 0F jz loc_1041 ; Jump if zero -273F:50CF F6 06 6D52 FF test player_action_state, 0FFh -273F:50D4 74 08 jz loc_1041 ; Jump if zero -273F:50D6 C6 44 2A C7 mov byte ptr [si+HS_ACTION_CTR], 199 -273F:50DA C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:50DD C3 retn - -273F:50DE loc_1041: ; xref 273F:50CD, 50D4 -273F:50DE 8A 07 mov al, [bx] ; Get current atcion -273F:50E0 0A C0 or al,al ; Any defined? -273F:50E2 75 06 jnz loc_1042 ; Jump if yes -273F:50E4 B8 0002 mov ax, 2 -273F:50E7 E9 F279 jmp character_update_movement_2 -273F:50EA loc_1042: ; xref 273F:50E2 -273F:50EA 3C 05 cmp al, CHAR_ACTION_CONTINUE_WALK -273F:50EC 74 28 je loc_1045 -273F:50EE 3C 01 cmp al, CHAR_ACTION_START_WALK -273F:50F0 74 32 je loc_1048 ; Jump if equal -273F:50F2 3C 04 cmp al, CHAR_ACTION_PROCESSING_PATH -273F:50F4 74 3A je loc_1049 ; Jump if equal -273F:50F6 3C 03 cmp al, CHAR_ACTION_EXEC_SCRIPT -273F:50F8 74 1F je loc_1046 ; Jump if equal - -; Dispatching action -273F:50FA 8B 45 0E mov ax, [di+ANIM_ROOM_NUM] -273F:50FD F7 47 03 FFFF test word ptr [bx+CURRENT_ACTION_ROOM_NUM], 0FFFFh -273F:5102 75 03 jnz loc_1043 ; Jump if not zero -273F:5104 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:5107 loc_1043: ; xref 273F:5102 -273F:5107 3B 47 03 cmp ax, [bx+CURRENT_ACTION_ROOM_NUM] ; Compare against room number -273F:510A 74 03 je loc_1044 ; Jump if equal -273F:510C E9 01F6 jmp npc_change_room -273F:510F loc_1044: ; xref 273F:510A -273F:510F C6 45 1D 00 mov byte ptr [di+ANIM_SKIP], 0 -273F:5113 E9 F0A8 jmp action_dispatch -273F:5116 loc_1045: ; xref 273F:50EC -273F:5116 E9 00E0 jmp loc_1060 ; (51F9) -273F:5119 loc_1046: ; xref 273F:50F8 -273F:5119 E8 BE8D call hotspot_script_execute -273F:511C 0B C0 or ax,ax ; Zero ? -273F:511E 75 03 jnz loc_ret_1047 ; Jump if not zero -273F:5120 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION - -273F:5123 loc_ret_1047: ; xref 273F:511E -273F:5123 C3 retn -273F:5124 loc_1048: ; Start walk -273F:5124 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:5127 E8 FE28 call pathfind_reset -273F:512A C6 07 04 mov byte ptr [bx], CHAR_ACTION_PROCESSING_PATH -273F:512D E8 F257 call character_pathfind_clear - -273F:5130 loc_1049: ; Processing walk path -273F:5130 56 push si -273F:5131 57 push di -273F:5132 53 push bx -273F:5133 E8 F42A call character_paused_list_scan -273F:5136 8B 4C 56 mov cx, [si+HS_DEST_Y] -273F:5139 8B 5C 54 mov bx, [si+HS_DEST_X] -273F:513C 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:513F 8A 54 4C mov dl, [si+HS_BLOCKED_FLAG] -273F:5142 E8 F8B1 call character_pathfind -273F:5145 5A pop dx -273F:5146 5F pop di -273F:5147 5E pop si -273F:5148 0B C0 or ax,ax ; Zero ? -273F:514A 75 01 jnz loc_1050 ; Jump if not zero -273F:514C C3 retn -273F:514D loc_1050: ; xref 273F:514A -273F:514D 3D 0001 cmp ax, PF_OK -273F:5150 74 0C je loc_1051 ; Jump if equal -273F:5152 F7 44 52 FFFF test [si+HS_DEST_HOTSPOT], 0FFFFh -273F:5157 75 07 jnz loc_1052 ; Jump if not zero -273F:5159 3D 0002 cmp ax, PF_DEST_OCCUPIED -273F:515C 75 02 jne loc_1052 ; Jump if not equal -273F:515E loc_1051: ; xref 273F:5150 -273F:515E EB 79 jmp short loc_1058 ; (51D9) -273F:5160 loc_1052: ; xref 273F:5157, 515C -273F:5160 87 D3 xchg dx,bx -273F:5162 80 7C 4C 02 cmp byte ptr [si+HS_BLOCKED_FLAG], BS_FINAL -273F:5166 74 24 je loc_1054 ; Jump if equal -273F:5168 80 44 4C 01 add byte ptr [si+HS_BLOCKED_FLAG], 1 -273F:516C F6 44 4D FF test byte ptr [si+HS_V4D], 0FFh -273F:5170 75 0B jnz loc_1053 ; Jump if not zero -273F:5172 83 44 61 05 add word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:5176 C6 44 4D 01 mov byte ptr [si+HS_V4D], 1 -273F:517A 83 C3 05 add bx, CURRENT_ACTION_RECORD_SIZE -273F:517D loc_1053: ; xref 273F:5170 -273F:517D C7 47 01 13C2 mov word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 13C2h -273F:5182 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:5185 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:5188 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:518B C3 retn -273F:518C loc_1054: ; xref 273F:5166 -273F:518C 53 push bx -273F:518D úBB 10C0 mov bx, offset impinging_char_list -273F:5190 loc_1055: ; xref 273F:519C -273F:5190 8B 07 mov ax, [bx] -273F:5192 0B C0 or ax,ax ; Zero ? -273F:5194 74 11 jz loc_1056 ; Jump if zero -273F:5196 83 C3 02 add bx,2 -273F:5199 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:519C 75 F2 jne loc_1055 ; Jump if not equal -273F:519E 5B pop bx -273F:519F E8 0006 call sub_125 ; (51A8) -273F:51A2 C6 44 44 06 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_6 -273F:51A6 C3 retn -273F:51A7 loc_1056: ; xref 273F:5194 -273F:51A7 5B pop bx - -273F:51A8 sub_125 proc near -273F:51A8 E8 F296 call character_paused_list_reset -273F:51AB E8 F1B8 call character_update_movement -273F:51AE 83 6C 61 05 sub word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:51B2 C6 44 4D 00 mov byte ptr [si+HS_V4D], 0 -273F:51B6 C6 44 4C 00 mov byte ptr [si+HS_BLOCKED_FLAG], BS_NONE -273F:51BA C6 44 44 03 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_3 -273F:51BE C7 44 42 0002 mov word ptr [si+HS_DELAY_CTR], 2 -273F:51C3 8B DE mov bx, si -273F:51C5 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:51C8 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:51CB 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:51CE 3B 47 03 cmp ax, [bx+CURRENT_ACTION_ROOM_NUM] -273F:51D1 74 05 je loc_ret_1057 ; Jump if equal -273F:51D3 C7 44 52 FFFF mov [si+HS_DEST_HOTSPOT], 0FFFFh - -273F:51D8 loc_ret_1057: ; xref 273F:51D1 -273F:51D8 C3 retn - sub_125 endp - standard_character_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:51D9 loc_1058: ; xref 273F:515E -273F:51D9 C6 44 4C 00 mov byte ptr [si+HS_BLOCKED_FLAG], BS_NONE -273F:51DD F7 07 FFFF test word ptr [bx], 0FFFFh ; Any pathfinding set defined? -273F:51E1 75 06 jnz loc_1059 ; Jump if yes -273F:51E3 8B DA mov bx, dx -273F:51E5 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:51E8 C3 retn -273F:51E9 loc_1059: ; xref 273F:51E1 -273F:51E9 87 DA xchg bx,dx -273F:51EB C6 07 05 mov byte ptr [bx], CHAR_ACTION_CONTINUE_WALK -273F:51EE E8 F01C call character_translate_movements -273F:51F1 83 65 02 F8 and word ptr [di+ANIM_Y], 0FFF8h -273F:51F5 83 64 0F F8 and word ptr [si+HS_Y], 0FFF8h -273F:51F9 loc_1060: ; xref 273F:5116 -273F:51F9 8B 44 52 mov ax, [si+HS_DEST_HOTSPOT] -273F:51FC 0B C0 or ax,ax ; Zero ? -273F:51FE 74 17 jz loc_1062 ; Jump if zero -273F:5200 3D FFFF cmp ax,0FFFFh -273F:5203 74 12 je loc_1062 ; Jump if equal -273F:5205 56 push si -273F:5206 53 push bx -273F:5207 E8 1FE4 call room_exit_hs_get_pointer -273F:520A 8A 44 0C mov al,[si+REHS_EXIT_BLOCKED] -273F:520D 5B pop bx -273F:520E 5E pop si -273F:520F 0A C0 or al,al ; Zero ? -273F:5211 74 04 jz loc_1062 ; Jump if zero -273F:5213 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION - -273F:5216 loc_ret_1061: ; xref 273F:521C -273F:5216 C3 retn -273F:5217 loc_1062: ; xref 273F:51FE, 5203, 5211 -273F:5217 E8 BF9B call character_paused_list_check -273F:521A 0B C0 or ax,ax ; Zero ? -273F:521C 75 F8 jnz loc_ret_1061 ; Jump if not zero -273F:521E F6 44 49 FF test byte ptr [si+HS_PATHFIND_COVERED], 0FFh -273F:5222 74 03 jz loc_1063 ; Jump if zero -273F:5224 E8 F160 call character_pathfind_clear -273F:5227 loc_1063: -273F:5227 8B DE mov bx,si -273F:5229 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:522C 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:522F E8 BC7E call character_update_frame -273F:5232 0A C0 or al, al ; Zero ? -273F:5234 75 02 jnz loc_1064 ; Jump if not zero -273F:5236 EB 03 jmp short loc_1065 -273F:5238 loc_1064: -273F:5238 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:523B loc_1065: -273F:523B F7 44 52 FFFF test [si+HS_DEST_HOTSPOT], 0FFFFh ; Walking to exit? -273F:5240 74 03 jz loc_ret_1066 ; If not then return -273F:5242 E8 F043 call character_check_room_change ; Room change check - -273F:5245 loc_ret_1066: -273F:5245 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - character_change_room_2: -273F:5246 80 25 F8 and byte ptr [di+ANIM_X], 0F8h -273F:5249 80 64 0D F8 and byte ptr [si+HS_X], 0F8h -273F:524D 80 0D 05 or byte ptr [di+ANIM_X], 5 -273F:5250 80 4C 0D 05 or byte ptr [si+HS_X], 5 -273F:5254 C6 44 60 00 mov byte ptr [si+HS_EXIT_CTR], 0 -273F:5258 C6 45 1D 2A mov byte ptr [di+ANIM_SKIP], 2Ah -273F:525C C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:525F F6 C1 FF test cl, 0FFh ; Any direction specified? -273F:5262 74 12 jz loc_ret_1068 ; Exit if not -273F:5264 F6 C1 80 test cl, 80h -273F:5267 75 0E jnz loc_1069 ; Face up -273F:5269 F6 C1 40 test cl, 40h -273F:526C 75 0C jnz loc_1070 ; Face down -273F:526E F6 C1 20 test cl, 20h -273F:5271 75 0A jnz loc_1071 ; Face left -273F:5273 E9 F296 jmp char_face_right - -273F:5276 loc_ret_1068: -273F:5276 C3 retn -273F:5277 loc_1069: -273F:5277 E9 F25F jmp char_face_up -273F:527A loc_1070: -273F:527A E9 F26D jmp char_face_down -273F:527D loc_1071: -273F:527D E9 F27B jmp char_face_left - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_unknown_1 proc near -273F:5280 F6 06 6D52 FF test player_action_state, 0FFh -273F:5285 74 0E jz loc_1072 ; Jump if zero -273F:5287 C7 44 42 000C mov word ptr [si+HS_DELAY_CTR], 0Ch -273F:528C C6 44 44 03 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_3 -273F:5290 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:5294 C3 retn -273F:5295 loc_1072: -273F:5295 8B 4D 1B mov cx, [di+ANIM_HOTSPOT_ID] -273F:5298 89 0E 983F mov data_1090, cx -273F:529C C7 06 9841 0000 mov data_1091, 0 -273F:52A2 55 push bp -273F:52A3 BB 0022 mov bx,22h -273F:52A6 BA 03E8 mov dx, PLAYER_HOTSPOT_ID -273F:52A9 E8 10E4 call display_message_dialog - -273F:52AC C6 44 44 04 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_4 -273F:52B0 C7 44 42 0082 mov word ptr [si+HS_DELAY_CTR], 82h -273F:52B5 5B pop bx -273F:52B6 8B 07 mov ax, [bx] -273F:52B8 89 44 33 mov [si+HS_V33], ax -273F:52BB E9 EF1B jmp loc_825 ; (41D9) - npc_unknown_1 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:52BE loc_1073: ; xref 273F:530D -273F:52BE C6 44 60 00 mov byte ptr [si+HS_EXIT_CTR], 0 -273F:52C2 F7 44 61 FFFF test word ptr [si+HS_ACTION_OFFSET], 0FFFFh -273F:52C7 74 28 jz loc_1077 ; Jump if no cached actions -273F:52C9 53 push bx -273F:52CA F7 44 4E FFFF test word ptr [si+HS_START_ROOM_NUM], 0FFFFh -273F:52CF 74 18 jz loc_1075 ; Jump if zero -273F:52D1 8B 5F 01 mov bx, [bx+CURRENT_ACTION_SUPPORT_TABLE] -273F:52D4 81 FB 13BE cmp bx, 13BEh -273F:52D8 72 06 jb loc_1074 ; Jump if below -273F:52DA ú81 FB 13CE cmp bx, 13CEh ; (273F:13CE=54h) -273F:52DE 72 09 jb loc_1075 ; Jump if below -273F:52E0 loc_1074: ; xref 273F:52D8 -273F:52E0 C7 07 0017 mov word ptr [bx], ACTION_RETURN -273F:52E4 C7 47 02 0000 mov word ptr [bx+2], 0 -273F:52E9 loc_1075: ; xref 273F:52CF, 52DE -273F:52E9 5B pop bx -273F:52EA 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:52ED 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax - -273F:52F0 loc_ret_1076: ; xref 273F:52F6 -273F:52F0 C3 retn -273F:52F1 loc_1077: ; xref 273F:52C7 -273F:52F1 F7 44 5E FFFF test word ptr [si+HS_BLOCKED_SUPPORT_OFFSET], 0FFFFh -273F:52F6 74 F8 jz loc_ret_1076 ; Jump if zero -273F:52F8 8B 44 5E mov ax, [si+HS_BLOCKED_SUPPORT_OFFSET] -273F:52FB 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax -273F:52FE 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:5301 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:5304 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ; This code is jumped to if the NPC is not in the room designated - ; by the room number in the current action record. It starts the - ; character walking to the exit to route them to the right room - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_change_room: -273F:5305 80 44 60 01 add byte ptr [si+HS_EXIT_CTR], 1 -273F:5309 80 7C 60 05 cmp byte ptr [si+HS_EXIT_CTR], 5 -273F:530D 73 AF jae loc_1073 ; Jump if above or = -273F:530F 53 push bx -273F:5310 8B 5F 03 mov bx,[bx+CURRENT_ACTION_ROOM_NUM] -273F:5313 E8 00C4 call room_exit_get_coordinates -273F:5316 81 7D 1B 03E9 cmp word ptr [di+ANIM_HOTSPOT_ID], RATPOUCH_HOTSPOT_ID -273F:531B 74 39 je loc_1081 ; Jump if equal - -; The following loop counts up the number of characters in that room into dl -273F:531D 51 push cx -273F:531E 52 push dx -273F:531F úBB B14E mov bx, offset animation_table -273F:5322 B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:5325 33 D2 xor dx,dx ; Zero register -273F:5327 locloop_1079: ; xref 273F:5346 -273F:5327 39 47 0E cmp [bx+ANIM_ROOM_NUM], ax -273F:532A 75 17 jne loc_1080 ; Jump if not equal -273F:532C F6 47 0C FF test byte ptr [bx+ANIM_LAYER], 0FFh -273F:5330 74 11 jz loc_1080 ; Jump if zero -273F:5332 81 7F 1B 03E8 cmp word ptr [bx+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID -273F:5337 72 0A jb loc_1080 ; Jump if below -273F:5339 81 7F 1B 0408 cmp word ptr [bx+ANIM_HOTSPOT_ID], FIRST_OBJECT_HOTSPOT_ID -273F:533E 73 03 jae loc_1080 ; Jump if above or = -273F:5340 80 C2 01 add dl,1 -273F:5343 loc_1080: -273F:5343 83 C3 29 add bx, ANIMATION_SLOT_SIZE -273F:5346 E2 DF loop locloop_1079 ; Loop if cx > 0 -273F:5348 8A C2 mov al,dl -273F:534A 5A pop dx -273F:534B 59 pop cx - -273F:534C 3C 04 cmp al,4 ; 4 or more chars in room? -273F:534E 72 06 jb loc_1081 ; Jump if not -273F:5350 5B pop bx -273F:5351 33 C0 xor ax,ax ; Set action to index #0 in list -273F:5353 E9 F1D2 jmp set_new_dispatch_action - -273F:5356 loc_1081: -273F:5356 5B pop bx -273F:5357 8A C6 mov al,dh -273F:5359 80 E6 0F and dh,0Fh -273F:535C 89 4C 54 mov [si+HS_DEST_X],cx -273F:535F 89 54 56 mov [si+HS_DEST_Y],dx -273F:5362 C7 44 52 FFFF mov [si+HS_DEST_HOTSPOT], 0FFFFh -273F:5367 53 push bx - -273F:5368 úBB 2E57 mov bx, offset room_exit_hotspots -273F:536B 24 F0 and al, 0F0h -273F:536D 8B 54 06 mov dx, [si+HS_ROOM_NUM] -273F:5370 loc_1082: ; xref 273F:5381 -273F:5370 úF6 07 FF test byte ptr [bx], 0FFh -273F:5373 74 5C jz loc_1085 ; Jump if zero -273F:5375 3A 17 cmp dl, [bx] -273F:5377 75 05 jne loc_1083 ; Jump if not equal -273F:5379 3A 47 01 cmp al, [bx+1] -273F:537C 74 05 je loc_1084 ; Jump if equal -273F:537E loc_1083: ; xref 273F:5377 -273F:537E 83 C3 04 add bx, 4 -273F:5381 EB ED jmp short loc_1082 ; (5370) -273F:5383 loc_1084: -273F:5383 8B 47 02 mov ax, [bx+2] ; Found an entry, set it -273F:5386 89 44 52 mov [si+HS_DEST_HOTSPOT], ax ; into the dest hotspot Id -273F:5389 50 push ax -273F:538A 56 push si -273F:538B E8 1E60 call room_exit_hs_get_pointer -273F:538E 5B pop bx -273F:538F 87 DE xchg bx,si -273F:5391 58 pop ax -273F:5392 F6 47 0C FF test byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh ; Exit blocked? -273F:5396 74 39 jz loc_1085 ; Jump if not blocked - -; Code reaches this point if the needed exit is blocked -273F:5398 50 push ax ; Save dest hotspot Id -273F:5399 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID]; Calc offset into support -273F:539C BB 0006 mov bx, 6 ; data set starting at 0bb95h -273F:539F 2D 03E9 sub ax, RATPOUCH_HOTSPOT_ID -273F:53A2 F7 E3 mul bx -273F:53A4 úBB BB95 mov bx, offset support_data_rec_bb95 -273F:53A7 03 D8 add bx, ax -273F:53A9 58 pop ax ; Restore dest hotspot Id -273F:53AA 89 47 02 mov [bx+2], ax ; Store id into record as param #1 -273F:53AD C6 44 4D 00 mov byte ptr [si+HS_V4D], 0 -273F:53B1 83 44 61 05 add word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:53B5 8B C3 mov ax, bx -273F:53B7 5B pop bx -273F:53B8 8B DE mov bx, si -273F:53BA 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:53BD 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:53C0 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax -273F:53C3 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:53C6 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:53C9 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:53CC C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:53D0 C3 retn - -; Exit has no hotspot, or has one that's not not blocked, so it's safe to simply start walking to it -273F:53D1 loc_1085: -273F:53D1 5B pop bx -273F:53D2 C6 07 01 mov byte ptr [bx], CHAR_ACTION_START_WALK -273F:53D5 C6 45 27 01 mov byte ptr [di+ANIM_WALK_FLAG], 1 -273F:53D9 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:13B8, 5313 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_exit_get_coordinates proc near -273F:53DA 48 dec ax -273F:53DB B9 0058 mov cx,58h -273F:53DE F7 E1 mul cx ; dx:ax = reg * ax -273F:53E0 05 1929 add ax, offset exit_coord_list -273F:53E3 03 D8 add bx, ax ; Move offset for indexing -273F:53E5 8A 5F 23 mov bl, [bx+23h] -273F:53E8 32 FF xor bh, bh ; Zero register -273F:53EA 03 D8 add bx, ax -273F:53EC 8B 0F mov cx, [bx] -273F:53EE 8B 57 02 mov dx, [bx+2] -273F:53F1 8B 47 04 mov ax, [bx+4] -273F:53F4 C3 retn - room_exit_get_coordinates endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bp = Address of offset 2 in the Support data for the DISPATCH_ACTION - ; character action that launched this action - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - get_proc proc near -273F:53F5 8B DD mov bx, bp -273F:53F7 8B 07 mov ax, [bx] ; Get hotspot Id -273F:53F9 83 C5 02 add bp,2 -273F:53FC A3 BA19 mov use_hotspot_id, ax -273F:53FF A3 BA1B mov active_hotspot_id, ax -273F:5402 E8 F1A2 call hotspot_action_precheck -273F:5405 0B C0 or ax,ax ; Zero ? -273F:5407 74 08 jz loc_1086 ; Jump if zero -273F:5409 3D 0003 cmp ax,3 -273F:540C 74 4E je loc_ret_1090 ; Jump if equal -273F:540E E9 0170 jmp character_walking_end -273F:5411 loc_1086: ; xref 273F:5407 -273F:5411 E8 F2DA call character_face_hotspot -273F:5414 53 push bx -273F:5415 E8 0169 call character_walking_end -273F:5418 5B pop bx -273F:5419 E8 01DA call hotspot_get_action_sequence -273F:541C 79 03 jns loc_1087 ; Jump if not sign -273F:541E E9 0F90 jmp display_message_dialog_3 -273F:5421 loc_1087: ; xref 273F:541C -273F:5421 74 0D jz loc_1088 ; Jump if zero -273F:5423 E8 EA0E call sequence_execute -273F:5426 74 08 jz loc_1088 ; Jump if zero -273F:5428 3D 0001 cmp ax,1 -273F:542B 74 2F je loc_ret_1090 ; Jump if equal -273F:542D E9 0F81 jmp display_message_dialog_3 -273F:5430 loc_1088: -273F:5430 8B 45 1B mov ax,[di+ANIM_HOTSPOT_ID] ; Move item into char's inventory -273F:5433 89 47 06 mov [bx+HS_ROOM_NUM], ax -273F:5436 E8 0920 call player_inc_inventory_items -273F:5439 81 3E BA19 7530 cmp use_hotspot_id, START_NONVISUAL_HOTSPOT_ID -273F:543F 73 1B jae loc_ret_1090 ; Jump if above or = -273F:5441 56 push si -273F:5442 57 push di -273F:5443 8B F3 mov si,bx -273F:5445 8B 7C 0B mov di,[si+HS_ANIM_OFFSET] -273F:5448 0B FF or di,di ; Zero ? -273F:544A 74 03 jz loc_1089 ; Jump if zero -273F:544C E8 BE23 call animation_unload -273F:544F loc_1089: ; xref 273F:544A -273F:544F A1 BA19 mov ax, use_hotspot_id ; Get hotspot header -273F:5452 E8 B8CC call get_room_resource_pointer3 -273F:5455 C7 44 06 0000 mov word ptr [si+HSH_DESC_2], 0 ; Remove first description -273F:545A 5F pop di -273F:545B 5E pop si - -273F:545C loc_ret_1090: ; xref 273F:540C, 542B, 543F, 5487 -273F:545C C3 retn - get_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_walking_check proc near -273F:545D 8B DD mov bx, bp -273F:545F 8B 07 mov ax, [bx] ; Get hotspot Id -273F:5461 83 C5 02 add bp, 2 -273F:5464 8B DE mov bx, si -273F:5466 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5469 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:546C 89 6F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], bp -273F:546F A3 BA19 mov use_hotspot_id, ax -273F:5472 A3 BA1B mov active_hotspot_id, ax -273F:5475 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:5478 72 0F jb character_walking_check -273F:547A 56 push si -273F:547B E8 B86C call get_room_resource_pointer2 -273F:547E 5B pop bx -273F:547F 87 DE xchg bx, si -273F:5481 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Make sure hotspot -273F:5484 3B 47 06 cmp ax, [bx+HS_ROOM_NUM] ; is in char's room -273F:5487 75 D3 jne loc_ret_1090 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:45F1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_walking_check proc near -273F:5489 57 push di -273F:548A úBF BC4B mov di, offset hotspot_walkto_list -273F:548D A1 BA1B mov ax, active_hotspot_id -273F:5490 loc_1092: ; xref 273F:549D -273F:5490 úF7 05 FFFF test word ptr [di+WALKTO_HOTSPOT_ID], 0FFFFh ; End of list reached? -273F:5494 74 4F jz loc_1094 ; Jump if yes -273F:5496 3B 05 cmp ax, [di+WALKTO_HOTSPOT_ID] ; Found entry for active hotspot? -273F:5498 74 05 je loc_1093 ; Jump if yes -273F:549A 83 C7 06 add di, WALKTO_RECORD_SIZE ; Move to next record -273F:549D EB F1 jmp short loc_1092 -273F:549F loc_1093: -273F:549F 8B 4D 02 mov cx, [di+WALKTO_X] -273F:54A2 8B 55 04 mov dx, [di+WALKTO_Y] -273F:54A5 B0 01 mov al, 1 -273F:54A7 F6 C6 80 test dh, 80h -273F:54AA 74 47 jz loc_1095 ; Jump if zero -273F:54AC 5F pop di -273F:54AD 88 45 27 mov [di+ANIM_WALK_FLAG], al -273F:54B0 80 E6 7F and dh, 7Fh -273F:54B3 8B 44 0D mov ax, [si+HS_X] -273F:54B6 D1 E8 shr ax, 1 -273F:54B8 D1 E8 shr ax, 1 -273F:54BA D1 E8 shr ax, 1 ; ax = player X / 8 -273F:54BC 51 push cx -273F:54BD D1 E9 shr cx, 1 -273F:54BF D1 E9 shr cx, 1 -273F:54C1 D1 E9 shr cx, 1 ; cx = list[2] / 8 -273F:54C3 2B C1 sub ax, cx ; ax -= cx -273F:54C5 59 pop cx -273F:54C6 75 51 jnz character_start_walking ; If NZ, jump to start walking -273F:54C8 8B 44 0F mov ax, [si+HS_Y] -273F:54CB 03 44 1B add ax, [si+HS_HEIGHT_COPY] -273F:54CE D1 E8 shr ax, 1 -273F:54D0 D1 E8 shr ax, 1 -273F:54D2 D1 E8 shr ax, 1 -273F:54D4 2D 0001 sub ax, 1 ; ax = (HS+height)/8 - 1 -273F:54D7 52 push dx -273F:54D8 D1 EA shr dx, 1 -273F:54DA D1 EA shr dx, 1 -273F:54DC D1 EA shr dx, 1 -273F:54DE 2B C2 sub ax, dx ; ax -= dx -273F:54E0 5A pop dx -273F:54E1 75 36 jnz character_start_walking ; If NZ, jump to start walking -273F:54E3 EB 65 jmp short loc_1100 - -273F:54E5 loc_1094: ; xref 273F:5494 -273F:54E5 8B 4F 0D mov cx, [bx+HS_X] -273F:54E8 8B 57 0F mov dx, [bx+HS_Y] -273F:54EB 03 57 1B add dx, [bx+HS_HEIGHT_COPY] -273F:54EE 83 EA 04 sub dx, 4 -273F:54F1 B0 00 mov al, 0 -273F:54F3 loc_1095: ; xref 273F:54AA -273F:54F3 5F pop di -273F:54F4 88 45 27 mov [di+ANIM_WALK_FLAG], al -273F:54F7 8B 44 0D mov ax, [si+HS_X] -273F:54FA 2B C1 sub ax, cx -273F:54FC 73 02 jnc loc_1096 ; Jump if carry=0 -273F:54FE F7 D8 neg ax -273F:5500 loc_1096: ; xref 273F:54FC -273F:5500 3D 0008 cmp ax, 8 -273F:5503 73 14 jae character_start_walking ; If NZ, jump to start walking -273F:5505 8B 44 0F mov ax, [si+HS_Y] -273F:5508 03 44 1B add ax, [si+HS_HEIGHT_COPY] -273F:550B 2D 0001 sub ax, 1 -273F:550E 2B C2 sub ax, dx -273F:5510 73 02 jnc loc_1097 ; Jump if carry=0 -273F:5512 F7 D8 neg ax -273F:5514 loc_1097: ; xref 273F:5510 -273F:5514 3D 0013 cmp ax, 13h -273F:5517 72 31 jb loc_1100 ; Jump if below - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:8541 - - character_start_walking proc near -273F:5519 81 FE 6CEF cmp si, offset player_hotspot_rec -273F:551D 75 17 jne loc_1099 ; Jump if not equal -273F:551F C7 06 11E1 0002 mov cursor_index, CURSOR_TIME_UP -273F:5525 C6 06 11DF 00 mov cursor_centroid, 0 -273F:552A 56 push si -273F:552B 57 push di -273F:552C 51 push cx -273F:552D 52 push dx -273F:552E FF 16 075E call [show_cursor_proc] -273F:5532 5A pop dx -273F:5533 59 pop cx -273F:5534 5F pop di -273F:5535 5E pop si -273F:5536 loc_1099: ; xref 273F:551D -273F:5536 8B DE mov bx,si -273F:5538 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:553B 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:553E C6 07 01 mov byte ptr [bx], CHAR_ACTION_START_WALK -273F:5541 89 54 56 mov [si+HS_DEST_Y], dx -273F:5544 89 4C 54 mov [si+HS_DEST_X], cx -273F:5547 33 C0 xor ax, ax -273F:5549 C3 retn -273F:554A loc_1100: ; xref 273F:54E3, 5517 -273F:554A 0D 0001 or ax,1 -273F:554D C3 retn - character_start_walking endp - character_walking_check endp - npc_walking_check endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - npc_set_support_offset_conditional proc near -273F:554E 8B DD mov bx, bp -273F:5550 8B 07 mov ax, [bx] ; Get sequence offset -273F:5552 E8 DF E8 call sequence_execute ; Execute it -273F:5555 74 11 jz loca_5568 ; Skip if zero return -273F:5557 8B 47 02 mov ax, [bx+2] ; Get new action offset -273F:555A loc_1101: -273F:555A ú8B DE mov bx, si -273F:555C 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:555F 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5562 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax ; Set it action rec -273F:5565 E9 EC56 jmp action_dispatch - loca_5568: -273F:5568 8B C5 mov ax, bp -273F:556A 05 0004 add ax, 4 -273F:556D EB EB jmp short loc_1101 ; (555A) - npc_set_support_offset_conditional endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_set_support_offset proc near -273F:556F 8B DD mov bx,bp -273F:5571 8B 07 mov ax, [bx] -273F:5573 8B DE mov bx, si -273F:5575 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5578 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:557B 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax -273F:557E E9 EC3D jmp action_dispatch - npc_set_support_offset endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:478E, 5415, 5723, 57BE, 58CC, 591C, 5954 - ; 5968, 5ACE, 5B47, 5BA6, 5C15, 5C7A, 5D32 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_walking_end proc near -273F:5581 ú81 7D 1B 03E8 cmp word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID -273F:5586 75 05 jne character_walking_end_2 -273F:5588 80 26 9834 02 and cursor_state, 2 - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - - character_walking_end_2: -273F:558D ú33 C0 xor ax, ax -273F:558F 89 45 24 mov [di+ANIM_VOICE_CTR], ax -273F:5592 88 44 2A mov [si+HS_ACTION_CTR], al -273F:5595 8B DE mov bx, si -273F:5597 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:559A 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:559D 89 6F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], bp -273F:55A0 C3 retn - character_walking_end endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:44C7, 509D, 7F5D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - characters_impinging_check proc near -273F:55A1 8B 47 0D mov ax, [bx+HS_X] -273F:55A4 03 47 19 add ax, [bx+HS_WIDTH_COPY] -273F:55A7 05 0004 add ax, 4 -273F:55AA 3B 44 0D cmp ax, [si+HS_X] -273F:55AD 72 44 jb loc_1104 ; Jump if below -273F:55AF 8B 44 0D mov ax, [si+HS_X] -273F:55B2 03 44 19 add ax, [si+HS_WIDTH_COPY] -273F:55B5 05 0004 add ax, 4 -273F:55B8 3B 47 0D cmp ax, [bx+HS_X] -273F:55BB 72 36 jb loc_1104 ; Jump if below - -273F:55BD 8B 44 0F mov ax, [si+HS_Y] -273F:55C0 03 44 1B add ax, [si+HS_HEIGHT_COPY] -273F:55C3 2B 44 1D sub ax, [si+HS_Y_CORRECTION] -273F:55C6 2D 0002 sub ax, 2 -273F:55C9 8B 4F 0F mov cx, [bx+HS_Y] -273F:55CC 03 4F 1B add cx, [bx+HS_HEIGHT_COPY] -273F:55CF 83 C1 02 add cx, 2 -273F:55D2 3B C1 cmp ax, cx -273F:55D4 73 1D jae loc_1104 ; Jump if above or = -273F:55D6 8B 44 0F mov ax, [si+HS_Y] -273F:55D9 03 44 1B add ax, [si+HS_HEIGHT_COPY] -273F:55DC 05 0002 add ax, 2 -273F:55DF 8B 4F 0F mov cx, [bx+HS_Y] -273F:55E2 03 4F 1B add cx, [bx+HS_HEIGHT_COPY] -273F:55E5 2B 4F 1D sub cx, [bx+HS_Y_CORRECTION] -273F:55E8 83 E9 02 sub cx, 2 -273F:55EB 3B C1 cmp ax, cx -273F:55ED 72 04 jb loc_1104 ; Jump if below -273F:55EF 0D 0001 or ax,1 -273F:55F2 C3 retn -273F:55F3 loc_1104: ; xref 273F:55AD, 55BB, 55D4, 55ED -273F:55F3 33 C0 xor ax,ax ; Zero register -273F:55F5 C3 retn - characters_impinging_check endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5419, 572E, 57C9, 5830, 58D0, 5923, 595B - ; 5AE2, 5B4B, 5BC5, 5C19, 5C82, 5CD0, 5D36 - ; 8A03 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - hotspot_get_action_sequence proc near -273F:55F6 53 push bx -273F:55F7 8B 5F 04 mov bx, [bx+HS_ACTIONS_OFFSET] -273F:55FA 0B DB or bx, bx ; Hotspot have actions? -273F:55FC 74 1C jz loc_1107 ; Jump if not - -273F:55FE 8B 0F mov cx,[bx] ; Get # entries -273F:5600 83 C3 02 add bx,2 ; Move to first entry -273F:5603 A1 BB45 mov ax, current_action_num ; Get action number -273F:5606 0B C9 or cx,cx ; List have any items? -273F:5608 74 10 jz loc_1107 ; Jump if not - -273F:560A locloop_1105: -273F:560A 3A 07 cmp al, [bx] ; Get action number -273F:560C 75 07 jne loc_1106 ; Skip if not wanted action -273F:560E 8B 47 01 mov ax, [bx+1] ; Get sequence offset -273F:5611 5B pop bx -273F:5612 0B C0 or ax, ax ; Zero ? -273F:5614 C3 retn -273F:5615 loc_1106: ; xref 273F:560C -273F:5615 83 C3 03 add bx,3 -273F:5618 E2 F0 loop locloop_1105 ; Loop if cx > 0 - -273F:561A loc_1107: ; xref 273F:55FC, 5608 -273F:561A 5B pop bx -273F:561B 33 C0 xor ax, ax ; Zero register -273F:561D C3 retn - hotspot_get_action_sequence endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_set_blocked_offset_proc proc near -273F:561E 8B DD mov bx, bp -273F:5620 8B 07 mov ax, [bx] -273F:5622 8B 4F 02 mov cx, [bx+2] -273F:5625 83 C5 04 add bp, 4 -273F:5628 89 4C 5E mov [si+HS_BLOCKED_SUPPORT_OFFSET], cx -273F:562B C6 44 60 00 mov byte ptr [si+HS_EXIT_CTR], 0 -273F:562F 8B DE mov bx, si -273F:5631 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5634 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5637 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:563A E9 FF44 jmp character_walking_end - npc_set_blocked_offset_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - go_to_proc proc near -273F:563D 8B DD mov bx,bp -273F:563F 8B 07 mov ax,[bx] -273F:5641 83 C5 02 add bp,2 -273F:5644 C7 44 5E 0000 mov word ptr [si+HS_BLOCKED_SUPPORT_OFFSET], 0 -273F:5649 C6 44 60 00 mov byte ptr [si+HS_EXIT_CTR], 0 -273F:564D 8B DE mov bx,si -273F:564F 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5652 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5655 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:5658 E9 FF26 jmp character_walking_end - go_to_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_set_random_dest proc near -273F:565B 8B DE mov bx, si -273F:565D 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5660 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5663 89 6F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], bp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:606B - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_set_random_dest proc near -273F:5666 úC6 07 01 mov byte ptr [bx], CHAR_ACTION_START_WALK -273F:5669 C6 45 27 01 mov byte ptr [di+ANIM_WALK_FLAG], 1 -273F:566D 56 push si -273F:566E 56 push si -273F:566F 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Get char's room rsc -273F:5672 E8 B675 call get_room_resource_pointer2 -273F:5675 8A 5C 18 mov bl, [si+ROOM_BOUNDS_INDEX] -273F:5678 32 FF xor bh, bh -273F:567A B1 03 mov cl, 3 -273F:567C D3 E3 shl bx, cl -273F:567E 81 C3 2EB1 add bx, offset room_bounds_table -273F:5682 B9 0014 mov cx, 20 ; # attempts -273F:5685 5E pop si - -273F:5686 locloop_1109: ; xref 273F:56C3 -273F:5686 51 push cx - -; Chooses a random destination for the character within the given rectangle -273F:5687 E8 EDE2 call random ; Get random value -273F:568A 8B 4F 02 mov cx, [bx+2] -273F:568D 2B 0F sub cx, [bx] -273F:568F F7 E1 mul cx ; dx:ax = reg * ax -273F:5691 03 17 add dx,[bx] -273F:5693 89 54 54 mov [si+HS_DEST_X],dx -273F:5696 52 push dx -273F:5697 E8 EDD2 call random -273F:569A 8B 4F 06 mov cx, [bx+6] -273F:569D 2B 4F 04 sub cx, [bx+4] -273F:56A0 F7 E1 mul cx ; dx:ax = reg * ax -273F:56A2 03 57 04 add dx, [bx+4] -273F:56A5 89 54 56 mov [si+HS_DEST_Y], dx -273F:56A8 8B C2 mov ax, dx -273F:56AA 5A pop dx -273F:56AB B9 0003 mov cx,3 -273F:56AE E8 001D call character_check_dest_occupied -273F:56B1 0B C0 or ax, ax ; Occupied? -273F:56B3 75 0D jnz loc_1110 ; Jump if yes -273F:56B5 05 0008 add ax, 8 -273F:56B8 B9 0003 mov cx, 3 -273F:56BB E8 0010 call character_check_dest_occupied -273F:56BE 0B C0 or ax, ax ; Occupied -273F:56C0 74 07 jz loc_1111 ; Jump if not -273F:56C2 loc_1110: -273F:56C2 59 pop cx ; Loop to choose another -273F:56C3 E2 C1 loop locloop_1109 ; random destination - -273F:56C5 5B pop bx -273F:56C6 87 DE xchg bx,si -273F:56C8 C3 retn -273F:56C9 loc_1111: ; xref 273F:56C0 -273F:56C9 59 pop cx -273F:56CA 5B pop bx -273F:56CB 87 DE xchg bx,si -273F:56CD C3 retn - character_set_random_dest endp - npc_set_random_dest endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:56AE, 56BB - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_check_dest_occupied proc near -273F:56CE 53 push bx -273F:56CF 51 push cx -273F:56D0 E8 ECC1 call pathfind_get_cell -273F:56D3 59 pop cx - -273F:56D4 locloop_1112: ; xref 273F:56E1 -273F:56D4 85 07 test ax,[bx] ; Is the dest occupied? -273F:56D6 75 0F jnz loc_1114 ; Jump if yes -273F:56D8 D0 E8 shr al,1 ; Shift w/zeros fill -273F:56DA 73 05 jnc loc_1113 ; Jump if carry=0 -273F:56DC 83 C3 01 add bx,1 -273F:56DF B0 80 mov al,80h -273F:56E1 loc_1113: ; xref 273F:56DA -273F:56E1 E2 F1 loop locloop_1112 ; Loop if cx > 0 - -273F:56E3 5B pop bx -273F:56E4 33 C0 xor ax,ax ; Zero register -273F:56E6 C3 retn -273F:56E7 loc_1114: ; xref 273F:56D6 -273F:56E7 5B pop bx -273F:56E8 B0 01 mov al,1 -273F:56EA C3 retn - character_check_dest_occupied endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - open_proc proc near -273F:56EB 8B DD mov bx,bp -273F:56ED 8B 07 mov ax,[bx] -273F:56EF 83 C5 02 add bp,2 -273F:56F2 A3 BA19 mov use_hotspot_id, ax -273F:56F5 A3 BA1B mov active_hotspot_id, ax -273F:56F8 56 push si -273F:56F9 úBE 4CB0 mov si, offset exit_hotspots_list -273F:56FC E8 EE94 call is_roomexit_hotspot -273F:56FF 75 0E jnz loc_1115 ; Not a valid door -273F:5701 53 push bx -273F:5702 A1 BA19 mov ax, use_hotspot_id -273F:5705 E8 1AE6 call room_exit_hs_get_pointer -273F:5708 5B pop bx -273F:5709 F6 44 0C FF test byte ptr [si+REHS_EXIT_BLOCKED], 0FFh -273F:570D 74 58 jz loc_1120 ; Jump if exit blocked (closed) -273F:570F loc_1115: -273F:570F 5E pop si -273F:5710 A1 BA19 mov ax, use_hotspot_id -273F:5713 E8 EE91 call hotspot_action_precheck -273F:5716 0B C0 or ax, ax ; Execute? -273F:5718 74 08 jz loc_1116 ; Jump if yes -273F:571A 3D 0003 cmp ax, 3 ; Initial? -273F:571D 74 47 je loc_ret_1119 ; Exit if not -273F:571F E9 FE5F jmp character_walking_end -273F:5722 loc_1116: ; xref 273F:5718 -273F:5722 53 push bx -273F:5723 E8 FE5B call character_walking_end -273F:5726 5B pop bx -273F:5727 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:572B E8 EFC0 call character_face_hotspot -273F:572E E8 FEC5 call hotspot_get_action_sequence -273F:5731 79 03 jns loc_1117 ; Jump if not sign -273F:5733 E9 0C7B jmp display_message_dialog_3 -273F:5736 loc_1117: ; xref 273F:5731 -273F:5736 74 0A jz loc_1118 ; Jump if zero -273F:5738 E8 E6F9 call sequence_execute -273F:573B 3D 0001 cmp ax,1 -273F:573E 74 26 je loc_ret_1119 ; Jump if equal -273F:5740 73 2F jnc loc_1121 ; Jump if carry=0 -273F:5742 loc_1118: ; xref 273F:5736 -273F:5742 A1 BA19 mov ax, use_hotspot_id -273F:5745 56 push si -273F:5746 E8 1AA5 call room_exit_hs_get_pointer -273F:5749 5B pop bx -273F:574A 87 F3 xchg si,bx -273F:574C F6 47 0C FF test byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh -273F:5750 74 14 jz loc_ret_1119 ; Jump if zero -273F:5752 C6 47 0C 00 mov byte ptr [bx+REHS_EXIT_BLOCKED], 0 -273F:5756 81 7D 1B 03E8 cmp word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID -273F:575B 74 09 je loc_ret_1119 ; Jump if equal -273F:575D C6 44 44 03 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_3 -273F:5761 C7 44 42 0004 mov word ptr [si+HS_DELAY_CTR], 4 - -273F:5766 loc_ret_1119: ; xref 273F:571D, 573E, 5750, 575B -273F:5766 C3 retn -273F:5767 loc_1120: ; xref 273F:570D -273F:5767 5E pop si -273F:5768 B8 0004 mov ax,4 -273F:576B E8 0C43 call display_message_dialog_3 -273F:576E E9 FE10 jmp character_walking_end -273F:5771 loc_1121: ; xref 273F:5740 -273F:5771 F6 44 60 FF test byte ptr [si+HS_EXIT_CTR],0FFh -273F:5775 74 04 jz loc_1122 ; Jump if zero -273F:5777 C6 44 60 04 mov byte ptr [si+HS_EXIT_CTR], 4 -273F:577B loc_1122: ; xref 273F:5775 -273F:577B E9 0C33 jmp display_message_dialog_3 - open_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - close_proc proc near -273F:577E 8B DD mov bx, bp -273F:5780 8B07 mov ax, [bx] -273F:5782 83C502 add bp, 2 -273F:5785 A319BA mov use_hotspot_id, ax -273F:5788 A31BBA mov active_hotspot_id, ax -273F:578B 56 push si -273F:578C BEB04C mov si, offset exit_hotspots_list -273F:578F E801EE call is_roomexit_hotspot -273F:5792 7516 jnz close_proc_2 -273F:5794 A119BA mov ax, use_hotspot_id -273F:5797 E8541A call room_exit_hs_get_pointer -273F:579A F6440CFF test byte ptr [si+REHS_EXIT_BLOCKED], 0FFh -273F:579E 740A jz close_proc_2 -273F:57A0 5E pop si -273F:57A1 B80300 mov ax, 3 -273F:57A4 E80A0C call display_message_dialog_3 -273F:57A7 E9D7FD jmp character_walking_end -273F:57AA A119BA close_proc_2: mov ax, use_hotspot_id -273F:57AD 5E pop si -273F:57AE E8F6ED call hotspot_action_precheck -273F:57B1 0BC0 or ax, ax -273F:57B3 7408 jz loc_1123 -273F:57B5 3D0300 cmp ax, 3 -273F:57B8 7448 jz loc_ret_1127 -273F:57BA E9C4FD jmp character_walking_end -273F:57BD loc_1123: -273F:57BD 53 push bx -273F:57BE E8 FDC0 call character_walking_end -273F:57C1 5B pop bx -273F:57C2 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:57C6 E8 EF25 call character_face_hotspot -273F:57C9 E8 FE2A call hotspot_get_action_sequence -273F:57CC 79 03 jns loc_1125 ; Jump if not sign -273F:57CE loc_1124: ; xref 273F:57D6 -273F:57CE E9 0BE0 jmp display_message_dialog_3 -273F:57D1 loc_1125: ; xref 273F:57CC -273F:57D1 74 05 jz loc_1126 ; Jump if zero -273F:57D3 E8 E65E call sequence_execute -273F:57D6 75 F6 jnz loc_1124 ; Jump if not zero -273F:57D8 loc_1126: ; xref 273F:57D1 -273F:57D8 56 push si -273F:57D9 A1 BA19 mov ax, use_hotspot_id -273F:57DC E8 1A0F call room_exit_hs_get_pointer -273F:57DF 5B pop bx -273F:57E0 87 DE xchg bx,si -273F:57E2 F6 47 0C FF test byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh -273F:57E6 75 1A jnz loc_ret_1127 ; Jump if not zero -273F:57E8 8B EB mov bp, bx - -273F:57EA 8B 5F 0D mov bx, [bx+REHS_HOTSPOT1_OFFSET] -273F:57ED E8 1A7B call door_close_check -273F:57F0 74 11 jz loc_1128 ; Jump if can't close -273F:57F2 8B DD mov bx, bp -273F:57F4 8B 5F 0F mov bx, [bx+REHS_HOTSPOT2_OFFSET] -273F:57F7 E8 1A71 call door_close_check -273F:57FA 74 07 jz loc_1128 ; Jump if can't close -273F:57FC 8B DD mov bx,bp -273F:57FE C6 47 0C 01 mov byte ptr [bx+REHS_EXIT_BLOCKED], 1 - -273F:5802 loc_ret_1127: ; xref 273F:57E6, 581F -273F:5802 C3 retn -273F:5803 loc_1128: ; xref 273F:57F0, 57FA -273F:5803 B8 0002 mov ax,2 -273F:5806 E9 0BA8 jmp display_message_dialog_3 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - tell_proc proc near -273F:5809 8B DD mov bx, bp -273F:580B 8B 07 mov ax, [bx] ; Talked to Hotspot Id -273F:580D 83 C5 02 add bp, 2 -273F:5810 A3 BA19 mov use_hotspot_id, ax -273F:5813 A3 BA1B mov active_hotspot_id, ax -273F:5816 E8 ED8E call hotspot_action_precheck -273F:5819 0B C0 or ax,ax ; Zero ? -273F:581B 74 06 jz loc_1129 ; Jump if zero -273F:581D 3C 03 cmp al,3 -273F:581F 74 E1 je loc_ret_1127 ; Jump if equal -273F:5821 EB 68 jmp short loc_1134 ; (588B) -273F:5823 loc_1129: ; xref 273F:581B -273F:5823 8B 0E BA19 mov cx, use_hotspot_id -273F:5827 B8 0001 mov ax, 1 -273F:582A BA 007C mov dx, 7Ch -273F:582D E8 0922 call talk_converse_2 -273F:5830 E8 FDC3 call hotspot_get_action_sequence -273F:5833 79 03 jns loc_1130 -273F:5835 E9 0B79 jmp display_message_dialog_3 -273F:5838 loc_1130: ; xref 273F:5833 -273F:5838 E8 E5F9 call sequence_execute -273F:583B 75 4E jnz loc_1134 ; Jump if not zero -273F:583D 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; si/di=Player, bx=Ratpouch -273F:5840 89 47 4E mov [bx+HS_START_ROOM_NUM], ax -273F:5843 C7 47 61 0005 mov word ptr [bx+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:5848 C6 47 4D 00 mov byte ptr [bx+HS_V4D], 0 -273F:584C 8B 4F 5C mov cx, [bx+HS_SUPPORT_TABLE] ; Get support table to use -273F:584F 89 4F 69 mov [bx+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_RECORD_SIZE+CURRENT_ACTION_SUPPORT_TABLE], cx -273F:5852 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:5855 89 47 6B mov [bx+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_RECORD_SIZE+CURRENT_ACTION_ROOM_NUM], ax -273F:5858 C6 47 68 02 mov byte ptr [bx+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_RECORD_SIZE], CHAR_ACTION_DISPATCH_ACTION -273F:585C 56 push si -273F:585D 57 push di -273F:585E 8B F5 mov si, bp ; si => instruction data -273F:5860 8B F9 mov di, cx ; cx => start of support table buffer -273F:5862 1E push ds -273F:5863 07 pop es -273F:5864 loc_1131: -273F:5864 úAD lodsw ; Get next word -273F:5865 8B D0 mov dx,ax -273F:5867 loc_1132: -273F:5867 AB stosw ; Store in output buffer -273F:5868 0B C0 or ax, ax ; Zero ? -273F:586A 74 11 jz loc_1133 ; Jump if zero -273F:586C AD lodsw ; String [si] to ax -273F:586D 3D 7D00 cmp ax, 7D00h -273F:5870 75 F5 jne loc_1132 ; Jump if not equal -273F:5872 83 FA 17 cmp dx, 17h -273F:5875 75 ED jne loc_1131 ; Jump if not equal -273F:5877 B8 0020 mov ax, 20h -273F:587A AB stosw ; Store ax to es:[di] -273F:587B EB E7 jmp short loc_1131 ; (5864) -273F:587D loc_1133: ; xref 273F:586A -273F:587D 26: C7 45 FE 0020 mov word ptr es:[di-2], 20h -273F:5883 AB stosw ; Store ax to es:[di] -273F:5884 8B EE mov bp, si -273F:5886 83 ED 02 sub bp, 2 -273F:5889 5F pop di -273F:588A 5E pop si -273F:588B loc_1134: -273F:588B 8B DD mov bx, bp -273F:588D C7 07 0000 mov word ptr [bx], 0 -273F:5891 E9 FCF9 jmp character_walking_end_2 - tell_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; xi=player hotspot, di=player anim slot, bp=?? - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - look_through_proc proc near -273F:5894 8B DD mov bx,bp -273F:5896 8B 07 mov ax,[bx] -273F:5898 83 C5 02 add bp,2 -273F:589B A3 BA19 mov use_hotspot_id, ax -273F:589E A3 BA1B mov active_hotspot_id, ax -273F:58A1 56 push si -273F:58A2 E8 B445 call get_room_resource_pointer2 ; Get hotspot ptr -273F:58A5 5B pop bx -273F:58A6 87 DE xchg bx,si ; si=player, bx=hotspot -273F:58A8 8B 47 06 mov ax, [bx+HS_ROOM_NUM] -273F:58AB 3B 45 1B cmp ax, [di+ANIM_HOTSPOT_ID] ; In player's inventory? -273F:58AE 74 1B je loc_1136 ; If yes then jump -273F:58B0 E8 ED24 call hotspot_action_precheck_2 -273F:58B3 0B C0 or ax, ax ; Zero ? -273F:58B5 74 08 jz loc_1135 ; Jump if zero -273F:58B7 3D 0003 cmp ax,3 -273F:58BA 74 3E je loc_ret_1139 ; Jump if equal -273F:58BC E9 FCC2 jmp character_walking_end -273F:58BF loc_1135: ; xref 273F:58B5 -273F:58BF C6 44 2A 00 mov byte ptr [si+2Ah],0 -273F:58C3 E8 EE28 call character_face_hotspot -273F:58C6 55 push bp -273F:58C7 E8 EA9C call character_update_movement -273F:58CA 5D pop bp -273F:58CB loc_1136: -273F:58CB 53 push bx -273F:58CC E8 FCB2 call character_walking_end -273F:58CF 5B pop bx -273F:58D0 E8 FD23 call hotspot_get_action_sequence -273F:58D3 79 03 jns loc_1137 ; Jump if not sign -273F:58D5 E9 0AD9 jmp display_message_dialog_3 -273F:58D8 loc_1137: ; xref 273F:58D3 -273F:58D8 74 13 jz loc_ret_1138 ; Jump if zero -273F:58DA E8 E557 call sequence_execute -273F:58DD 74 0E jz loc_ret_1138 ; Jump if zero -273F:58DF 3D 002A cmp ax,2Ah -273F:58E2 75 09 jne loc_ret_1138 ; Jump if not equal -273F:58E4 C7 44 42 0050 mov word ptr [si+HS_DELAY_CTR], 80 -273F:58E9 C6 44 44 02 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_IDLE - -273F:58ED loc_ret_1138: ; xref 273F:58D8, 58DD, 58E2 -273F:58ED C3 retn - look_through_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Sets up things for remotely viewing a room - storing the room to - ; return to, and disabling the tick proc for the player - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_room_remote_view_setup proc near - assume ds:seg_code -273F:58EE A1 9832 mov ax, room_number -273F:58F1 A3 BA25 mov old_room_number, ax -273F:58F4 C7 06 B15F 58FB mov slot0_tick_proc, offset loc_ret_1140 - -273F:58FA loc_ret_1139: ; xref 273F:58BA -273F:58FA C3 retn - seq_room_remote_view_setup endp - - - -273F:58FB loc_ret_1140: ; xref 273F:5913, 594E, 5963 -273F:58FB C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; xi=player hotspot, di=player anim slot, bp=?? - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - operate_proc proc near -273F:58FC 8B DD mov bx,bp -273F:58FE 8B 07 mov ax,[bx] -273F:5900 83 C5 02 add bp,2 -273F:5903 A3 BA19 mov use_hotspot_id, ax -273F:5906 A3 BA1B mov active_hotspot_id, ax -273F:5909 E8 EC9B call hotspot_action_precheck -273F:590C 0B C0 or ax,ax ; Zero ? -273F:590E 74 08 jz loc_1141 ; Jump if zero -273F:5910 3D 0003 cmp ax,3 -273F:5913 74 E6 je loc_ret_1140 ; Jump if equal -273F:5915 E9 FC69 jmp character_walking_end -273F:5918 loc_1141: ; xref 273F:590E -273F:5918 88 44 2A mov [si+HS_ACTION_CTR], al -273F:591B 53 push bx -273F:591C E8 FC62 call character_walking_end -273F:591F 5B pop bx -273F:5920 E8 EDCB call character_face_hotspot -273F:5923 E8 FCD0 call hotspot_get_action_sequence -273F:5926 79 03 jns loc_1142 ; Jump if not sign -273F:5928 E9 0A86 jmp display_message_dialog_3 -273F:592B loc_1142: ; xref 273F:5926 -273F:592B E8 E506 call sequence_execute -273F:592E 3D 0002 cmp ax,2 -273F:5931 72 03 jb loc_ret_1143 ; Jump if below -273F:5933 E9 0A7B jmp display_message_dialog_3 - -273F:5936 loc_ret_1143: ; xref 273F:5931 -273F:5936 C3 retn - operate_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - lock_unlock_proc proc near -273F:5937 8B DD mov bx,bp -273F:5939 8B 07 mov ax,[bx] -273F:593B 83 C5 02 add bp,2 -273F:593E A3 BA19 mov use_hotspot_id, ax -273F:5941 A3 BA1B mov active_hotspot_id, ax -273F:5944 E8 EC60 call hotspot_action_precheck -273F:5947 0B C0 or ax,ax ; Zero ? -273F:5949 74 08 jz loc_1144 ; Jump if zero -273F:594B 3D 0003 cmp ax,3 -273F:594E 74 AB je loc_ret_1140 ; Jump if equal -273F:5950 E9 FC2E jmp character_walking_end -273F:5953 loc_1144: ; xref 273F:5949 -273F:5953 53 push bx -273F:5954 E8 FC2A call character_walking_end -273F:5957 5B pop bx -273F:5958 E8 ED93 call character_face_hotspot -273F:595B E8 FC98 call hotspot_get_action_sequence -273F:595E 79 03 jns loc_1145 ; Jump if not sign -273F:5960 E9 0A4E jmp display_message_dialog_3 -273F:5963 loc_1145: ; xref 273F:595E -273F:5963 74 96 jz loc_ret_1140 ; Jump if zero -273F:5965 E9 E4CC jmp sequence_execute - lock_unlock_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:56AE, 56BB - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - look_proc proc near - -273F:5968 E8 FC16 call character_walking_end -273F:596B 8B 44 06 mov ax, [si+6] -273F:596E E8 B3B0 call get_room_resource_pointer4 -273F:5971 8B 5C 04 mov bx, [si+RH_DESC_ID] -273F:5974 E9 2F45 jmp display_dialog - - look_proc endp - -273F:5977 00 data_359 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - status_proc proc near - -31E4:5978 E8 06 FC call character_walking_end -31E4:597B 80 0E 11D0 01 or menubar_state, 1 -31E4:5980 FF 16 075E call [show_cursor_proc] -31E4:5984 B0 09 mov al, 9 -31E4:5986 B1 16 mov cl, 16 -31E4:5988 B2 03 mov dl, 3 -31E4:598A F7 06 BC49 FFFF test num_groats, 0ffffh -31E4:5990 74 03 jz status_loc_2 -31E4:5992 80 C2 02 add dl, 2 - status_loc_2: -31E4:5995 F6 06 9835 FF test num_inventory_items, 0ffh -31E4:599A 74 07 jz loc_1146 -31E4:599C 02 16 9835 mov dl, num_inventory_items -31E4:59A0 80 EA 01 sub dl, 1 - -273F:59A3 loc_1146: -273F:59A3 B3 18 mov bl,18h -273F:59A5 2A DA sub bl,dl -273F:59A7 D0 EB shr bl,1 ; Shift w/zeros fill -273F:59A9 2E: 88 1E 5977 mov cs:data_359,bl ; (273F:5977=0) -273F:59AE BD 0001 mov bp,1 -273F:59B1 FF 16 077A call [draw_dialog_proc] -273F:59B5 A1 9832 mov ax, room_number ; Get the current room's -273F:59B8 E8 B366 call get_room_resource_pointer3 ; short name -273F:59BB 8B 44 02 mov ax,[si+2] -273F:59BE BF 4B43 mov di, offset hotspot_name -273F:59C1 E8 2376 call decode_string -273F:59C4 2E: A0 5977 mov al, cs:data_359 -273F:59C8 04 01 add al,1 -273F:59CA 32 E4 xor ah,ah ; Zero register -273F:59CC úBB 000A mov bx, 10 -273F:59CF úBE 4B43 mov si, offset hotspot_name -273F:59D2 E8 C210 call sub_52 - -273F:59D5 C7 06 4B19 6F6E mov data_789,6F6Eh ; (31E4:4B19=6F6Eh) -273F:59DB F6 06 9835 FF test num_inventory_items, 0FFh -273F:59E0 74 06 jz loc_1147 ; Jump if zero -273F:59E2 C7 06 4B19 003A mov data_789,3Ah ; (31E4:4B19=6F6Eh) -273F:59E8 loc_1147: ; xref 273F:59E0 -273F:59E8 2E: A0 5977 mov al,cs:data_359 ; (273F:5977=0) -273F:59EC 04 03 add al,3 -273F:59EE 32 E4 xor ah,ah ; Zero register -273F:59F0 úBB 000A mov bx, 10 -273F:59F3 úBE 4B08 mov si, offset carrying_str -273F:59F6 E8 C1EC call sub_52 ; (1BE5) - -273F:59F9 2E: 8A 0E 5977 mov cl,cs:data_359 ; (273F:5977=0) -273F:59FE 80 C1 03 add cl,3 -273F:5A01 32 ED xor ch,ch ; Zero register -273F:5A03 F6 06 9835 FF test num_inventory_items, 0FFh -273F:5A08 74 34 jz loc_1151 ; Jump if zero - -273F:5A0A úBE 623E mov si, offset hotspot_table_3 -273F:5A0D loc_1148: -273F:5A0D ú8B 3C mov di,[si] ; Get hotspot offset -273F:5A0F 83 FF FF cmp di,0FFFFh ; End of sublist? -273F:5A12 74 27 je loc_1150 ; If yes, then jump -273F:5A14 81 7D 06 03E8 cmp word ptr [di+HS_ROOM_NUM], PLAYER_HOTSPOT_ID ; In player's inventory? -273F:5A19 75 1B jne loc_1149 ; If not, move to next -273F:5A1B 56 push si -273F:5A1C 8B 44 02 mov ax, [si+HSH_NAME] ; Get hotspot name -273F:5A1F BF 4B43 mov di, offset hotspot_name -273F:5A22 51 push cx -273F:5A23 E8 2314 call decode_string -273F:5A26 58 pop ax -273F:5A27 50 push ax -273F:5A28 úBB 0016 mov bx,16h ; (273F:0016=0EBh) -273F:5A2B úBE 4B43 mov si, offset hotspot_name -273F:5A2E E8 C1B4 call sub_52 ; (1BE5) -273F:5A31 59 pop cx -273F:5A32 83 C1 01 add cx,1 -273F:5A35 5E pop si -273F:5A36 loc_1149: ; xref 273F:5A19 -273F:5A36 83 C6 09 add si,9 -273F:5A39 EB D2 jmp short loc_1148 ; (5A0D) -273F:5A3B loc_1150: ; xref 273F:5A12 -273F:5A3B 83 E9 01 sub cx,1 -273F:5A3E loc_1151: ; xref 273F:5A08 -273F:5A3E A1 BC49 mov ax, num_groats -273F:5A41 0B C0 or ax,ax ; Zero ? -273F:5A43 74 26 jz loc_1153 ; Jump if zero -273F:5A45 04 30 add al,30h ; '0' -273F:5A47 A2 4B2B mov s_num_groats, al ; Fill out # groats -273F:5A4A C7 06 4B32 0073 mov s_groats_plural, 's' ; Add in a plural 's' - -273F:5A50 83 3E BC49 01 cmp num_groats, 1 ; Is a plural necessary? -273F:5A55 75 06 jne loc_1152 ; Yes, so skip removal -273F:5A57 C7 06 4B32 0000 mov s_groats_plural, 0 ; Remove plural 's' -273F:5A5D loc_1152: -273F:5A5D 8B C1 mov ax,cx -273F:5A5F 05 0002 add ax,2 -273F:5A62 úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:5A65 úBE 4B22 mov si, offset money_str -273F:5A68 E8 C17A call sub_52 ; (1BE5) -273F:5A6B loc_1153: ; xref 273F:5A43 -273F:5A6B FF 16 0744 call word ptr [show_screen_proc] -273F:5A6F E8 C519 call mouse_wait ; (1F8B) -273F:5A72 E8 C521 call pause_for_input ; (1F96) -273F:5A75 E8 C513 call mouse_wait ; (1F8B) -273F:5A78 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:5A7D FF 16 075E call [show_cursor_proc] -273F:5A81 C3 retn - - status_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - return_proc proc near -273F:5A82 8B DE mov bx, si -273F:5A84 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5A87 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5A8A 8B 44 4E mov ax, [si+HS_START_ROOM_NUM] -273F:5A8D 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax -273F:5A90 E9 FAEE jmp character_walking_end - return_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - use_proc proc near -273F:5A93 8B DD mov bx,bp -273F:5A95 8B 07 mov ax,[bx] -273F:5A97 A3 BA19 mov use_hotspot_id, ax -273F:5A9A 8B 47 02 mov ax,[bx+2] -273F:5A9D A3 BA1B mov active_hotspot_id, ax -273F:5AA0 83 C5 04 add bp,4 -273F:5AA3 56 push si -273F:5AA4 A1 BA19 mov ax, use_hotspot_id -273F:5AA7 E8 B240 call get_room_resource_pointer2 -273F:5AAA 5B pop bx -273F:5AAB 87 DE xchg bx,si ; bx=item to use, si=hotspot -273F:5AAD 8B 47 06 mov ax, [bx+HS_ROOM_NUM] -273F:5AB0 3B 45 1B cmp ax, [di+ANIM_HOTSPOT_ID]; Item in char's inventory? -273F:5AB3 75 12 jne loc_1155 ; Jump if not equal -273F:5AB5 A1 BA1B mov ax, active_hotspot_id -273F:5AB8 E8 EAEC call hotspot_action_precheck -273F:5ABB 0B C0 or ax,ax ; Zero ? -273F:5ABD 74 0B jz loc_1156 ; Jump if zero -273F:5ABF 3C 03 cmp al,3 -273F:5AC1 74 03 je loc_ret_1154 ; Jump if equal -273F:5AC3 E9 FABB jmp character_walking_end - -273F:5AC6 loc_ret_1154: ; xref 273F:5AC1, 5AF5, 5B3A -273F:5AC6 C3 retn -273F:5AC7 loc_1155: ; xref 273F:5AB3 -273F:5AC7 E9 0242 jmp loc_1187 ; (5D0C) -273F:5ACA loc_1156: ; xref 273F:5ABD -273F:5ACA E8 EC21 call character_face_hotspot -273F:5ACD 53 push bx -273F:5ACE E8 FAB0 call character_walking_end -273F:5AD1 5B pop bx -273F:5AD2 81 7D 1B 03E9 cmp word ptr [di+ANIM_HOTSPOT_ID], RATPOUCH_HOTSPOT_ID -273F:5AD7 75 09 jne loc_1157 ; Jump if not equal -273F:5AD9 C6 44 FF 28 mov byte ptr [si-1], 28h ; '(' -273F:5ADD C7 44 1F 0050 mov word ptr [si+HS_FRAME_CTR], 50h -273F:5AE2 loc_1157: ; xref 273F:5AD7 -273F:5AE2 E8 FB11 call hotspot_get_action_sequence -273F:5AE5 79 03 jns loc_1158 ; Jump if not sign -273F:5AE7 E9 08C7 jmp display_message_dialog_3 -273F:5AEA loc_1158: ; xref 273F:5AE5 -273F:5AEA 75 06 jnz loc_1159 ; Jump if not zero -273F:5AEC B8 0011 mov ax,11h -273F:5AEF E9 08BF jmp display_message_dialog_3 -273F:5AF2 loc_1159: ; xref 273F:5AEA -273F:5AF2 E8 E33F call sequence_execute -273F:5AF5 74 CF jz loc_ret_1154 ; Jump if zero -273F:5AF7 E9 08B7 jmp display_message_dialog_3 - use_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - look_at_proc proc near -273F:5AFA 8B DD mov bx,bp -273F:5AFC 8B 07 mov ax,[bx] -273F:5AFE 83 C5 02 add bp,2 -273F:5B01 A3 BA19 mov use_hotspot_id, ax -273F:5B04 A3 BA1B mov active_hotspot_id, ax -273F:5B07 56 push si -273F:5B08 E8 B1DF call get_room_resource_pointer2 -273F:5B0B 5B pop bx -273F:5B0C 87 DE xchg bx,si -273F:5B0E 81 3E BA19 0408 cmp use_hotspot_id, FIRST_OBJECT_HOTSPOT_ID -273F:5B14 72 29 jb loc_1163 ; Jump if below -273F:5B16 56 push si -273F:5B17 úBE 4AD0 mov si, offset lookat_hotspot_list -273F:5B1A 8B 0E BA19 mov cx, use_hotspot_id -273F:5B1E loc_1160: -273F:5B1E úAD lodsw ; Get next hotspot Id -273F:5B1F 0B C0 or ax,ax ; Reached end of list? -273F:5B21 74 09 jz loc_1162 ; Jump if yes -273F:5B23 3B C1 cmp ax,cx ; Found hotspot? -273F:5B25 74 02 je loc_1161 ; Jump if yes -273F:5B27 EB F5 jmp short loc_1160 ; Keep scanning -273F:5B29 loc_1161: -273F:5B29 5E pop si -273F:5B2A EB 13 jmp short loc_1163 -273F:5B2C loc_1162: -273F:5B2C 5E pop si ; Hotspot not found -273F:5B2D A1 BA19 mov ax, use_hotspot_id -273F:5B30 E8 EA74 call hotspot_action_precheck -273F:5B33 0B C0 or ax,ax ; Zero ? -273F:5B35 74 08 jz loc_1163 ; Jump if zero -273F:5B37 3D 0003 cmp ax,3 -273F:5B3A 74 8A je loc_ret_1154 ; Jump if equal -273F:5B3C E9 FA42 jmp character_walking_end -273F:5B3F loc_1163: ; xref 273F:5B14, 5B2A, 5B35 -273F:5B3F C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:5B43 E8 EBA8 call character_face_hotspot -273F:5B46 53 push bx -273F:5B47 E8 FA37 call character_walking_end -273F:5B4A 5B pop bx -273F:5B4B E8 FAA8 call hotspot_get_action_sequence -273F:5B4E 79 03 jns loc_1164 ; Jump if not sign -273F:5B50 E9 085E jmp display_message_dialog_3 -273F:5B53 loc_1164: ; xref 273F:5B4E -273F:5B53 74 05 jz loc_1165 ; Jump if zero -273F:5B55 E8 E2DC call sequence_execute -273F:5B58 75 16 jnz loc_ret_1167 ; Jump if not zero -273F:5B5A loc_1165: ; xref 273F:5B53, 5C1E -273F:5B5A úA1 BA1B mov ax, active_hotspot_id -273F:5B5D E8 B1C1 call get_room_resource_pointer3 -273F:5B60 8B 5C 06 mov bx, [si+HSH_DESC_2] -273F:5B63 0B DB or bx, bx ; Zero ? -273F:5B65 75 03 jnz loc_1166 ; Jump if not zero -273F:5B67 8B 5C 04 mov bx, [si+HSH_DESC] -273F:5B6A loc_1166: -273F:5B6A 80 E7 1F and bh, 1Fh -273F:5B6D E9 2D4C jmp display_dialog -273F:5B70 loc_ret_1167: ; xref 273F:5B58, 5BA0, 5BCD, 5BDD -273F:5B70 C3 retn - look_at_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - give_proc proc near -273F:5B71 8B DD mov bx,bp -273F:5B73 8B 47 02 mov ax, [bx+2] -273F:5B76 A3 BA1B mov active_hotspot_id, ax -273F:5B79 8B 07 mov ax, [bx] -273F:5B7B A3 BA19 mov use_hotspot_id, ax -273F:5B7E 83 C5 04 add bp, 4 -273F:5B81 56 push si -273F:5B82 E8 B165 call get_room_resource_pointer2 -273F:5B85 5B pop bx -273F:5B86 87 DE xchg bx,si -273F:5B88 8B 47 06 mov ax, [bx+HS_ROOM_NUM] -273F:5B8B 3B 45 1B cmp ax, [di+ANIM_HOTSPOT_ID]; Is item in char's inventory? -273F:5B8E 74 03 je loc_1168 ; Jump if equal -273F:5B90 E9 0179 jmp loc_1187 ; (5D0C) -273F:5B93 loc_1168: ; xref 273F:5B8E -273F:5B93 A1 BA1B mov ax, active_hotspot_id -273F:5B96 E8 EA0E call hotspot_action_precheck -273F:5B99 0B C0 or ax,ax ; Zero ? -273F:5B9B 74 08 jz loc_1169 ; Jump if zero -273F:5B9D 3D 0003 cmp ax,3 -273F:5BA0 74 CE je loc_ret_1167 ; Jump if equal -273F:5BA2 E9 F9DC jmp character_walking_end -273F:5BA5 loc_1169: ; xref 273F:5B9B -273F:5BA5 53 push bx -273F:5BA6 E8 F9D8 call character_walking_end -273F:5BA9 5B pop bx -273F:5BAA E8 EB41 call character_face_hotspot -273F:5BAD 81 3E BA1B 0412 cmp active_hotspot_id, 412h -273F:5BB3 75 08 jne loc_1170 ; Jump if not equal -273F:5BB5 81 3E BA19 2710 cmp use_hotspot_id, BOTTLE_HOTSPOT_ID -273F:5BBB 74 08 je loc_1171 ; Jump if equal -273F:5BBD loc_1170: ; xref 273F:5BB3 -273F:5BBD 53 push bx -273F:5BBE BB 0007 mov bx,7 -273F:5BC1 E8 07DE call display_message_dialog_2 -273F:5BC4 5B pop bx -273F:5BC5 loc_1171: ; xref 273F:5BBB -273F:5BC5 E8 FA2E call hotspot_get_action_sequence -273F:5BC8 79 03 jns loc_1172 ; Jump if not sign -273F:5BCA E9 07E4 jmp display_message_dialog_3 -273F:5BCD loc_1172: ; xref 273F:5BC8 -273F:5BCD 74 A1 jz loc_ret_1167 ; Jump if zero -273F:5BCF E8 E262 call sequence_execute -273F:5BD2 3D 03E7 cmp ax, NOONE_HOTSPOT_ID -273F:5BD5 75 03 jne loc_1173 ; Jump if not equal -273F:5BD7 E9 2DD6 jmp loc_1705 ; (89B0) -273F:5BDA loc_1173: ; xref 273F:5BD5 -273F:5BDA 3D 0001 cmp ax, 1 -273F:5BDD 74 91 je loc_ret_1167 ; Jump if equal -273F:5BDF 73 13 jnc loc_1174 ; Jump if carry=0 -273F:5BE1 56 push si -273F:5BE2 53 push bx -273F:5BE3 A1 BA19 mov ax, use_hotspot_id -273F:5BE6 E8 B101 call get_room_resource_pointer2 -273F:5BE9 A1 BA1B mov ax, active_hotspot_id -273F:5BEC 89 44 06 mov [si+HSH_DESC_2], ax -273F:5BEF 5B pop bx -273F:5BF0 5E pop si -273F:5BF1 E9 0171 jmp loc_1193 ; (5D65) -273F:5BF4 loc_1174: ; xref 273F:5BDF -273F:5BF4 8B D8 mov bx, ax -273F:5BF6 8B 0E BA1B mov cx, active_hotspot_id -273F:5BFA 8B 55 1B mov dx, [di+ANIM_HOTSPOT_ID] -273F:5BFD E9 0790 jmp display_message_dialog - give_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - examine_proc proc near -273F:5C00 8B DD mov bx,bp -273F:5C02 8B 07 mov ax,[bx] -273F:5C04 A3 BA19 mov use_hotspot_id, ax -273F:5C07 A3 BA1B mov active_hotspot_id, ax -273F:5C0A 83 C5 02 add bp,2 -273F:5C0D 56 push si -273F:5C0E E8 B0D9 call get_room_resource_pointer2 -273F:5C11 5B pop bx -273F:5C12 87 DE xchg bx,si -273F:5C14 53 push bx -273F:5C15 E8 F969 call character_walking_end -273F:5C18 5B pop bx -273F:5C19 E8 F9DA call hotspot_get_action_sequence -273F:5C1C 75 03 jnz loc_1176 ; Jump if not zero -273F:5C1E loc_1175: ; xref 273F:5C24 -273F:5C1E E9 FF39 jmp loc_1165 ; (5B5A) -273F:5C21 loc_1176: ; xref 273F:5C1C -273F:5C21 E8 E210 call sequence_execute -273F:5C24 74 F8 jz loc_1175 ; Jump if zero - -273F:5C26 loc_ret_1177: ; xref 273F:5C3E, 5C8A -273F:5C26 C3 retn - examine_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - bribe_proc proc near -273F:5C27 8B DD mov bx,bp -273F:5C29 8B 07 mov ax,[bx] -273F:5C2B A3 BA19 mov use_hotspot_id, ax -273F:5C2E A3 BA1B mov active_hotspot_id, ax -273F:5C31 83 C5 02 add bp,2 -273F:5C34 E8 E970 call hotspot_action_precheck -273F:5C37 0B C0 or ax,ax ; Zero ? -273F:5C39 74 08 jz loc_1178 ; Jump if zero -273F:5C3B 3D 0003 cmp ax,3 -273F:5C3E 74 E6 je loc_ret_1177 ; Jump if equal -273F:5C40 E9 F93E jmp character_walking_end -273F:5C43 loc_1178: ; xref 273F:5C39 -273F:5C43 B8 014B mov ax,14Bh -273F:5C46 8B 16 BA1B mov dx, active_hotspot_id -273F:5C4A 53 push bx -273F:5C4B úBB 4AE6 mov bx, offset bribe_hotspot_list - 4 -273F:5C4E loc_1179: -273F:5C4E 83 C3 04 add bx, 4 ; Move to next entry -273F:5C51 F7 07 FFFF test word ptr [bx],0FFFFh ; End of list reached? -273F:5C55 74 12 jz loc_1180 ; Jump if yes -273F:5C57 3B 17 cmp dx, [bx] ; Char Id found? -273F:5C59 75 F3 jne loc_1179 ; Keep scanning if not -273F:5C5B 8B 47 02 mov ax, [bx+2] ; Get -273F:5C5E F6 C4 80 test ah, 80h -273F:5C61 74 06 jz loc_1180 ; Jump if zero -273F:5C63 80 E4 7F and ah,7Fh -273F:5C66 E8 E1CB call sequence_execute -273F:5C69 loc_1180: ; xref 273F:5C55, 5C61 -273F:5C69 8B D0 mov dx,ax -273F:5C6B BB 03E8 mov bx, PLAYER_HOTSPOT_ID -273F:5C6E 8B 0E BA1B mov cx, active_hotspot_id -273F:5C72 E8 04A7 call talk_setup -273F:5C75 5B pop bx -273F:5C76 E8 EA75 call character_face_hotspot -273F:5C79 53 push bx -273F:5C7A E8 F904 call character_walking_end -273F:5C7D 5B pop bx -273F:5C7E C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:5C82 E8 F971 call hotspot_get_action_sequence -273F:5C85 74 05 jz loc_1181 ; Jump if zero -273F:5C87 E8 E1AA call sequence_execute -273F:5C8A 75 9A jnz loc_ret_1177 ; Jump if not zero -273F:5C8C loc_1181: ; xref 273F:5C85 -273F:5C8C BA 03E8 mov dx, PLAYER_HOTSPOT_ID -273F:5C8F 8B 0E BA19 mov cx, use_hotspot_id -273F:5C93 BB 0029 mov bx, 29h -273F:5C96 83 3E BA3B 06 cmp talk_record_index, 6 -273F:5C9B 75 03 jne loc_1182 ; Jump if not equal -273F:5C9D úBB 0030 mov bx, 30h -273F:5CA0 loc_1182: ; xref 273F:5C9B -273F:5CA0 E9 06ED jmp display_message_dialog - bribe_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ask_proc proc near -273F:5CA3 8B DD mov bx,bp -273F:5CA5 8B 47 02 mov ax,[bx+2] -273F:5CA8 A3 BA19 mov use_hotspot_id, ax -273F:5CAB 8B 07 mov ax,[bx] -273F:5CAD A3 BA1B mov active_hotspot_id, ax -273F:5CB0 83 C5 04 add bp,4 -273F:5CB3 E8 E8F1 call hotspot_action_precheck -273F:5CB6 0B C0 or ax,ax ; Zero ? -273F:5CB8 74 08 jz loc_1183 ; Jump if zero -273F:5CBA 3D 0003 cmp ax,3 -273F:5CBD 74 4C je loc_ret_1186 ; Jump if equal -273F:5CBF E9 F8BF jmp character_walking_end -273F:5CC2 loc_1183: ; xref 273F:5CB8 -273F:5CC2 53 push bx -273F:5CC3 E8 F8C7 call character_walking_end_2 -273F:5CC6 5B pop bx -273F:5CC7 E8 EA24 call character_face_hotspot -273F:5CCA BB 0009 mov bx, 9 -273F:5CCD E8 06D2 call display_message_dialog_2 -273F:5CD0 E8 F923 call hotspot_get_action_sequence -273F:5CD3 78 0C js loc_1184 ; Jump if sign=1 -273F:5CD5 74 34 jz loc_ret_1186 ; Jump if zero -273F:5CD7 E8 E15A call sequence_execute -273F:5CDA 74 11 jz loc_1185 ; Jump if zero -273F:5CDC 3D 0001 cmp ax,1 -273F:5CDF 74 2A je loc_ret_1186 ; Jump if equal -273F:5CE1 loc_1184: ; xref 273F:5CD3 -273F:5CE1 8B 0E BA1B mov cx, active_hotspot_id -273F:5CE5 8B 55 1B mov dx, [di+ANIM_HOTSPOT_ID] -273F:5CE8 8B D8 mov bx, ax -273F:5CEA E9 06A3 jmp display_message_dialog -273F:5CED loc_1185: ; xref 273F:5CDA -273F:5CED 56 push si -273F:5CEE A1 BA19 mov ax, use_hotspot_id -273F:5CF1 E8 AFF6 call get_room_resource_pointer2 -273F:5CF4 8B 4D 1B mov cx, [di+ANIM_HOTSPOT_ID] -273F:5CF7 89 4C 06 mov [si+HS_ROOM_NUM], cx -273F:5CFA 5E pop si -273F:5CFB E8 005B call player_inc_inventory_items -273F:5CFE BB 0020 mov bx, 20h -273F:5D01 8B 0E BA1B mov cx, active_hotspot_id -273F:5D05 8B 55 1B mov dx, [di+ANIM_HOTSPOT_ID] -273F:5D08 E9 0685 jmp display_message_dialog - -273F:5D0B loc_ret_1186: ; xref 273F:5CBD, 5CD5, 5CDF -273F:5D0B C3 retn - ask_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:5D0C loc_1187: ; xref 273F:5AC7, 5B90, 5D2F -273F:5D0C B8 000F mov ax, 0Fh ; "What???" -273F:5D0F E8 069F call display_message_dialog_3 -273F:5D12 E9 F86C jmp character_walking_end - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - drink_proc proc near -273F:5D15 8B DD mov bx,bp -273F:5D17 8B 07 mov ax,[bx] -273F:5D19 83 C5 02 add bp,2 -273F:5D1C A3 BA19 mov use_hotspot_id, ax -273F:5D1F A3 BA1B mov active_hotspot_id, ax -273F:5D22 56 push si -273F:5D23 E8 AFC4 call get_room_resource_pointer2 -273F:5D26 5B pop bx -273F:5D27 87 DE xchg bx,si -273F:5D29 8B 45 1B mov ax,[di+ANIM_HOTSPOT_ID] ; Validate item is in -273F:5D2C 3B 47 06 cmp ax,[bx+HS_ROOM_NUM] ; character's inventory -273F:5D2F 75 DB jne loc_1187 ; Jump if not equal -273F:5D31 53 push bx -273F:5D32 E8 F84C call character_walking_end -273F:5D35 5B pop bx -273F:5D36 E8 F8BD call hotspot_get_action_sequence -273F:5D39 79 03 jns loc_1188 ; Jump if not sign -273F:5D3B E9 0673 jmp display_message_dialog_3 -273F:5D3E loc_1188: ; xref 273F:5D39 -273F:5D3E 74 13 jz loc_1191 ; Jump if zero -273F:5D40 E8 E0F1 call sequence_execute -273F:5D43 74 08 jz loc_1189 ; Jump if zero -273F:5D45 3D 0001 cmp ax,1 -273F:5D48 74 08 je loc_ret_1190 ; Jump if equal -273F:5D4A E9 0664 jmp display_message_dialog_3 -273F:5D4D loc_1189: ; xref 273F:5D43 -273F:5D4D C7 47 06 0000 mov word ptr [bx+HS_ROOM_NUM], 0 - -273F:5D52 loc_ret_1190: ; xref 273F:5D48 -273F:5D52 C3 retn -273F:5D53 loc_1191: ; xref 273F:5D3E -273F:5D53 B8 0016 mov ax,16h -273F:5D56 E9 0658 jmp display_message_dialog_3 - drink_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:5436, 5CFB - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - player_inc_inventory_items proc near -273F:5D59 81 FE 6CEF cmp si, offset player_hotspot_rec -273F:5D5D 75 05 jne loc_ret_1192 ; Jump if not equal -273F:5D5F 80 06 9835 01 add num_inventory_items, 1 -273F:5D64 loc_ret_1192: ; xref 273F:5D5D, 5D69, 5DB4 -273F:5D64 C3 retn - player_inc_inventory_items proc near - - -273F:5D65 loc_1193: ; xref 273F:5BF1 -273F:5D65 ú81 FE 6CEF cmp si, offset player_hotspot_rec -273F:5D69 75 F9 jne loc_ret_1192 ; Jump if not equal -273F:5D6B 80 2E 9835 01 sub num_inventory_items, 1 - -273F:5D70 loc_ret_1194: ; xref 273F:5D8B -273F:5D70 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_dispatch_action proc near -273F:5D71 8B DD mov bx,bp -273F:5D73 8B 07 mov ax,[bx] -273F:5D75 83 C5 04 add bp,4 -273F:5D78 A3 BA19 mov use_hotspot_id, ax -273F:5D7B A3 BA1B mov active_hotspot_id, ax -273F:5D7E E8 E826 call hotspot_action_precheck -273F:5D81 0B C0 or ax,ax ; Zero ? -273F:5D83 75 03 jnz loc_1195 ; Jump if not zero -273F:5D85 E9 F7F9 jmp character_walking_end -273F:5D88 loc_1195: ; xref 273F:5D83 -273F:5D88 3D 0003 cmp ax, 3 ; Initial state? -273F:5D8B 74 E3 je loc_ret_1194 ; Exit if yes -273F:5D8D 8B DD mov bx,bp -273F:5D8F 8B 47 FE mov ax,[bx-2] -273F:5D92 8B DE mov bx,si -273F:5D94 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5D97 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5D9A 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax -273F:5D9D E9 E41E jmp action_dispatch - npc_dispatch_action endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_unknown_3 proc near -273F:5DA0 8B DD mov bx,bp -273F:5DA2 8B 07 mov ax,[bx] -273F:5DA4 A3 BA19 mov use_hotspot_id, ax -273F:5DA7 A3 BA1B mov active_hotspot_id, ax -273F:5DAA E8 E7FA call hotspot_action_precheck -273F:5DAD 0B C0 or ax,ax ; Zero ? -273F:5DAF 74 0B jz loc_1196 ; Jump if zero -273F:5DB1 3D 0003 cmp ax,3 -273F:5DB4 74 AE je loc_ret_1192 ; Jump if equal -273F:5DB6 83 C5 0A add bp,0Ah -273F:5DB9 E9 F7C5 jmp character_walking_end -273F:5DBC loc_1196: ; xref 273F:5DAF -273F:5DBC A1 BA1B mov ax, active_hotspot_id -273F:5DBF 56 push si -273F:5DC0 E8 AF27 call get_room_resource_pointer2 -273F:5DC3 5B pop bx -273F:5DC4 87 DE xchg bx,si -273F:5DC6 F7 47 37 FFFF test word ptr [bx+HS_TALK_COUNTDOWN], 0FFFFh -273F:5DCB 75 36 jnz loc_ret_1199 ; Jump if not zero -273F:5DCD 83 C5 02 add bp, 2 -273F:5DD0 8B DD mov bx, bp -273F:5DD2 8B 17 mov dx, [bx] ; Get param #2 -273F:5DD4 0B D2 or dx, dx ; Zero ? -273F:5DD6 74 11 jz loc_1197 ; Jump if zero -273F:5DD8 8B 4F FE mov cx, [bx-2] -273F:5DDB 53 push bx -273F:5DDC E8 0350 call talk_setup_3 ; (612F) -273F:5DDF 5B pop bx -273F:5DE0 8B 47 02 mov ax, [bx+2] -273F:5DE3 01 44 42 add [si+HS_DELAY_CTR], ax -273F:5DE6 01 44 37 add [si+HS_TALK_COUNTDOWN], ax -273F:5DE9 loc_1197: ; xref 273F:5DD6 -273F:5DE9 83 C3 04 add bx, 4 -273F:5DEC 8B 17 mov dx, [bx] ; Param #4 -273F:5DEE 0B D2 or dx, dx ; Zero ? -273F:5DF0 74 0B jz loc_1198 ; Jump if zero -273F:5DF2 8B 5F FA mov bx, [bx-6] ; Param #1 -273F:5DF5 8B 4D 1B mov cx, [di+ANIM_HOTSPOT_ID] -273F:5DF8 56 push si -273F:5DF9 E8 032E call talk_setup_2 -273F:5DFC 5E pop si -273F:5DFD loc_1198: -273F:5DFD 83 C5 08 add bp, 8 -273F:5E00 E9 F77E jmp character_walking_end - -273F:5E03 loc_ret_1199: -273F:5E03 C3 retn - npc_unknown_3 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_pause proc near -273F:5E04 8B DD mov bx,bp -273F:5E06 8B 47 02 mov ax, [bx+2] -273F:5E09 89 44 42 mov [si+HS_DELAY_CTR], ax -273F:5E0C C6 44 44 03 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_3 -273F:5E10 83 C5 04 add bp, 4 -273F:5E13 E9 F76B jmp character_walking_end - npc_pause endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_start_talking proc near -273F:5E16 8B DE mov bx, si -273F:5E18 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5E1B 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5E1E 83 47 01 06 add word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 6 -273F:5E22 8B DD mov bx, bp -273F:5E24 8B 17 mov dx, [bx] -273F:5E26 8B 47 02 mov ax, [bx+2] -273F:5E29 8B 5D 1B mov bx, [di+ANIM_HOTSPOT_ID] -273F:5E2C B9 03E7 mov cx, NOONE_ID -273F:5E2F E9 0319 jmp talk_converse - npc_start_talking endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_jump_to_address proc near -273F:5E32 8B DE mov bx,si -273F:5E34 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5E37 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5E3A 83 47 01 04 add word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 4 -273F:5E3E 8B DD mov bx,bp -273F:5E40 8B 07 mov ax,[bx] ; Load address -273F:5E42 FF E0 jmp ax ; Jump to it - npc_jump_to_address endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; This method is the tick handler proc for the player, and gets - ; called once every frame - ; di = animation slot entry, si = hotspot resource - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - player_tick_proc proc near - -273F:5E44 8B DE mov bx, si -273F:5E46 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:5E49 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:5E4C E8 0329 call talk_countdown_handler -273F:5E4F F7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:5E54 74 0B jz loc_1200 ; Jump if zero -273F:5E56 C7 06 F010 0000 mov timer_ticks, 0 -273F:5E5C 83 6C 1F 01 sub word ptr [si+HS_FRAME_CTR],1 -273F:5E60 C3 retn -273F:5E61 loc_1200: -273F:5E61 E8 B2A7 call character_find_impinging_chars -273F:5E64 F6 45 1D FF test byte ptr [di+ANIM_SKIP], 0FFh -273F:5E68 74 13 jz loc_1202 ; Jump if zero -273F:5E6A C7 06 F010 0000 mov timer_ticks, 0 -273F:5E70 F7 06 10BE FFFF test num_impinging_chars, 0FFFFh -273F:5E76 74 01 jz loc_1201 ; Jump if zero -273F:5E78 C3 retn -273F:5E79 loc_1201: ; xref 273F:5E76 -273F:5E79 C6 45 1D 00 mov byte ptr [di+ANIM_SKIP], 0 -273F:5E7D loc_1202: ; xref 273F:5E68 -273F:5E7D 8B 44 58 mov ax, [si+HS_V58] -273F:5E80 0B C0 or ax, ax ; Zero ? -273F:5E82 74 19 jz loc_1203 ; Jump if zero -273F:5E84 C7 06 F010 0000 mov timer_ticks, 0 -273F:5E8A C7 44 58 0000 mov word ptr [si+HS_V58], 0 -273F:5E8F 56 push si -273F:5E90 E8 AE57 call get_room_resource_pointer2 -273F:5E93 80 7C 44 07 cmp byte ptr [si+HS_CHAR_MODE], CHARMODE_7 -273F:5E97 5E pop si -273F:5E98 74 03 jz loc_1203 -273F:5E9A C6 07 00 mov byte ptr [bx], 0 ; Reset action - -273F:5E9D loc_1203: -273F:5E9D F7 44 4A FFFF test word ptr [si+HS_PAUSE_CTR], 0FFFFh -273F:5EA2 74 27 jz loc_1205 ; Jump if zero -273F:5EA4 C7 06 F010 0000 mov timer_ticks, 0 -273F:5EAA E8 E4B9 call character_update_movement -273F:5EAD 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:5EB0 E8 F09F call pathfind_reset -273F:5EB3 83 7C 4A 01 cmp word ptr [si+HS_PAUSE_CTR], 1 -273F:5EB7 75 0F jne loc_1204 ; Jump if not equal -273F:5EB9 C7 44 4A 0000 mov word ptr [si+HS_PAUSE_CTR], 0 -273F:5EBE F6 44 44 FF test byte ptr [si+HS_CHAR_MODE], 0FFh -273F:5EC2 75 07 jnz loc_1205 ; Jump if not zero -273F:5EC4 E8 E4C0 call character_pathfind_clear -273F:5EC7 C3 retn -273F:5EC8 loc_1204: -273F:5EC8 E9 E695 jmp character_paused_list_scan -273F:5ECB loc_1205: -273F:5ECB 8A 44 44 mov al, [si+HS_CHAR_MODE] -273F:5ECE 0A C0 or al, al ; CHARMODE_NONE? -273F:5ED0 74 44 jz loc_1208 ; Jump if yes -273F:5ED2 3C 02 cmp al, CHARMODE_IDLE -273F:5ED4 74 40 je loc_1208 -273F:5ED6 C7 06 F010 0000 mov timer_ticks, 0 -273F:5EDC F7 44 42 FFFF test word ptr [si+HS_DELAY_CTR], 0FFFFh -273F:5EE1 74 0E jz loc_1206 ; Jump if zero -273F:5EE3 E8 E480 call character_update_movement -273F:5EE6 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:5EE9 E8 F066 call pathfind_reset -273F:5EEC 83 6C 42 01 sub word ptr [si+HS_DELAY_CTR], 1 -273F:5EF0 C3 retn -273F:5EF1 loc_1206: ; xref 273F:5EE1 -273F:5EF1 E8 E493 call character_pathfind_clear -273F:5EF4 C6 44 44 00 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_NONE -273F:5EF8 F6 44 FF FF test byte ptr [si-1],0FFh -273F:5EFC 74 17 jz loc_ret_1207 ; Jump if zero -273F:5EFE C6 44 FF 00 mov byte ptr [si+HS_DEST2_SET], 0 -273F:5F02 8B 44 FB mov ax,[si+HS_DEST2_X] -273F:5F05 89 44 54 mov [si+HS_DEST_X], ax -273F:5F08 8B 44 FD mov ax,[si+HS_DEST2_Y] -273F:5F0B 89 44 56 mov [si+HS_DEST_Y], ax -273F:5F0E C6 07 01 mov byte ptr [bx], CHAR_ACTION_START_WALK -273F:5F11 C6 45 27 00 mov byte ptr [di+ANIM_WALK_FLAG], 0 - -273F:5F15 loc_ret_1207: ; xref 273F:5EFC -273F:5F15 C3 retn - -273F:5F16 loc_1208: ; xref 273F:5ED0, 5ED4 -273F:5F16 B0 02 mov al, CHARMODE_IDLE -273F:5F18 8A 27 mov ah, [bx] -273F:5F1A F6 C4 FF test ah, 0FFh -273F:5F1D 75 08 jnz loc_1209 ; Jump if not zero -273F:5F1F C7 44 52 0000 mov [si+HS_DEST_HOTSPOT], 0 -273F:5F24 E9 E43C jmp character_update_movement_2 - -273F:5F27 loc_1209: -273F:5F27 C7 06 F010 0000 mov timer_ticks, 0 -273F:5F2D 80 FC 05 cmp ah, CHAR_ACTION_CONTINUE_WALK -273F:5F30 74 13 je loc_1211 ; Jump if equal -273F:5F32 80 FC 03 cmp ah, CHAR_ACTION_EXEC_SCRIPT -273F:5F35 74 11 je loc_1212 ; Jump if equal -273F:5F37 80 FC 01 cmp ah, CHAR_ACTION_START_WALK -273F:5F3A 74 17 je loc_1213 ; Jump if equal -273F:5F3C 80 FC 04 cmp ah, CHAR_ACTION_PROCESSING_PATH -273F:5F3F 74 1E je loc_1214 ; Jump if equal -273F:5F41 E8 E27A call action_dispatch - -273F:5F44 loc_ret_1210: ; xref 273F:5F4D -273F:5F44 C3 retn -273F:5F45 loc_1211: ; xref 273F:5F30 -273F:5F45 E9 00A3 jmp loc_1219 ; (5FEB) -273F:5F48 loc_1212: ; xref 273F:5F35 -273F:5F48 E8 B05E call hotspot_script_execute -273F:5F4B 0B C0 or ax,ax ; Zero ? -273F:5F4D 75 F5 jnz loc_ret_1210 ; Jump if not zero -273F:5F4F C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:5F52 C3 retn - -; Code below is responsible for starting the player walking - -273F:5F53 loc_1213: ; xref 273F:5F3A -273F:5F53 B8 03E8 mov ax, PLAYER_HOTSPOT_ID -273F:5F56 E8 EFF9 call pathfind_reset -273F:5F59 C6 07 04 mov byte ptr [bx], CHAR_ACTION_PROCESSING_PATH -273F:5F5C E8 E428 call character_pathfind_clear - -; Jump point here calculates one sequence of the path finding required to get -; the player to a given destination - -273F:5F5F loc_1214: ; xref 273F:5F3F -273F:5F5F C6 44 44 00 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_NONE -273F:5F63 E8 E5FA call character_paused_list_scan -273F:5F66 8B 4C 54 mov cx, [si+HS_DEST_X] -273F:5F69 8B 54 56 mov dx, [si+HS_DEST_Y] -273F:5F6C 53 push bx -273F:5F6D 56 push si -273F:5F6E 57 push di -273F:5F6F 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:5F72 8B D9 mov bx,cx -273F:5F74 8B CA mov cx,dx -273F:5F76 8A 54 4C mov dl, [si+HS_BLOCKED_FLAG] -273F:5F79 E8 EA7A call character_pathfind -273F:5F7C 8B D3 mov dx,bx -273F:5F7E 5F pop di -273F:5F7F 5E pop si -273F:5F80 5B pop bx -273F:5F81 0B C0 or ax,ax ; Zero ? -273F:5F83 75 01 jnz loc_1215 ; Jump if not zero -273F:5F85 C3 retn - -; The code below gets jumped to when the final segment of pathfinding is -; complete. - -273F:5F86 loc_1215: -273F:5F86 3D 0001 cmp ax, PF_OK -273F:5F89 74 42 je loc_1218 ; Immediate translate -273F:5F8B F6 45 27 01 test byte ptr [di+ANIM_WALK_FLAG], 1 -273F:5F8F 75 05 jnz loc_1216 ; Jump if not zero -273F:5F91 3D 0002 cmp ax, PF_DEST_OCCUPIED -273F:5F94 74 37 je loc_1218 ; Jump to translate -273F:5F96 loc_1216: ; xref 273F:5F8F -273F:5F96 F6 44 4C FF test byte ptr [si+HS_BLOCKED_FLAG], 0FFh -273F:5F9A 74 31 jz loc_1218 ; Jump if zero -273F:5F9C 80 7C 4C 02 cmp byte ptr [si+HS_BLOCKED_FLAG], BS_FINAL -273F:5FA0 74 17 je loc_1217 ; Jump if equal -273F:5FA2 C6 44 FF 01 mov byte ptr [si+HS_DEST2_SET], 1 -273F:5FA6 8B 44 54 mov ax, [si+HS_DEST_X] -273F:5FA9 89 44 FB mov [si+HS_DEST2_X], ax -273F:5FAC 8B 44 56 mov ax, [si+HS_DEST_Y] -273F:5FAF 89 44 FD mov [si+HS_DEST2_Y], ax -273F:5FB2 80 44 4C 01 add byte ptr [si+HS_BLOCKED_FLAG], 1 -273F:5FB6 E9 F6AD jmp character_set_random_dest -273F:5FB9 loc_1217: ; xref 273F:5FA0 -273F:5FB9 E8 E485 call character_paused_list_reset -273F:5FBC C6 44 4C 00 mov byte ptr [si+HS_BLOCKED_FLAG], BS_NONE -273F:5FC0 C6 07 00 mov byte ptr [bx], 0 -273F:5FC3 C6 44 44 06 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_6 -273F:5FC7 C7 44 42 0007 mov word ptr [si+HS_DELAY_CTR], 7 -273F:5FCC C3 retn - -273F:5FCD loc_1218: ; dx => movement data -273F:5FCD C6 44 4C 00 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_NONE -273F:5FD1 8B C3 mov ax, bx -273F:5FD3 8B DA mov bx, dx -273F:5FD5 8B 0F mov cx, [bx] -273F:5FD7 8B D8 mov bx, ax -273F:5FD9 0B C9 or cx, cx ; Zero ? -273F:5FDB 74 56 jz loc_1223 ; Jump if zero -273F:5FDD C6 07 05 mov byte ptr [bx], CHAR_ACTION_CONTINUE_WALK -273F:5FE0 E8 E22A call character_translate_movements -273F:5FE3 83 65 02 F8 and [di+ANIM_Y], 0FFF8h -273F:5FE7 83 64 0F F8 and [si+HS_Y], 0FFF8h - -; The buffer pointed to by HS[HS_MOVEMENT_SRC_OFFSET] now contains a set of -; direction numbers and steps necessary to get the player to the destination -; they've clicked on - -; Code jumps to this point to handle the continual walking - -273F:5FEB loc_1219: -273F:5FEB 8B 44 52 mov ax, [si+HS_DEST_HOTSPOT] -273F:5FEE 0B C0 or ax,ax ; Walking to a room exit hotspot: -273F:5FF0 74 17 jz loc_1221 ; No, straight walking -273F:5FF2 3D FFFF cmp ax, 0FFFFh -273F:5FF5 74 12 je loc_1221 -273F:5FF7 56 push si -273F:5FF8 53 push bx -273F:5FF9 E8 11F2 call room_exit_hs_get_pointer -273F:5FFC 8A 44 0C mov al, [si+REHS_EXIT_BLOCKED] -273F:5FFF 5B pop bx -273F:6000 5E pop si -273F:6001 0A C0 or al, al ; Is exit now blocked? -273F:6003 74 04 jz loc_1221 ; Keep walking if not -273F:6005 C6 07 00 mov byte ptr [bx], 0 ; Stop the player walking - -273F:6008 loc_ret_1220: ; xref 273F:600E -273F:6008 C3 retn -273F:6009 loc_1221: ; xref 273F:5FF0, 5FF5, 6003 -273F:6009 E8 B1A9 call character_paused_list_check -273F:600C 0B C0 or ax,ax ; Zero ? -273F:600E 75 F8 jnz loc_ret_1220 ; Jump if not zero -273F:6010 E8 AE9D call character_update_frame -273F:6013 0A C0 or al, al ; Zero ? -273F:6015 74 1F jz loc_1224 ; Jump if zero -273F:6017 80 3E 9834 04 cmp cursor_state, CURSORSTATE_BUMPED -273F:601C 75 05 jne loc_1222 ; Jump if not equal -273F:601E C6 06 9834 00 mov cursor_state, CURSORSTATE_NONE -273F:6023 loc_1222: ; xref 273F:601C -273F:6023 F6 44 FF FF test byte ptr [si-HS_DEST2_SET], 0FFh -273F:6027 74 0A jz loc_1223 ; Jump if zero -273F:6029 C6 44 44 06 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_6 -273F:602D C7 44 42 000F mov word ptr [si+HS_DELAY_CTR], 15 -273F:6032 C3 retn -273F:6033 loc_1223: ; xref 273F:5FDB, 6027 -273F:6033 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:6036 loc_1224: ; xref 273F:6015 -273F:6036 E9 E24F jmp character_check_room_change - - player_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4313 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - character_change_room_check_bumped proc near -273F:6039 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] -273F:603C E8 E46A call check_for_impinging_characters -273F:603F 75 30 jnz loc_1225 ; No character bumped -273F:6041 8B DE mov bx, si -273F:6043 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:6046 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:6049 C6 44 FF 01 mov byte ptr [si+HS_DEST2_SET], 1 -273F:604D 8B 44 54 mov ax, [si+HS_DEST_X] -273F:6050 89 44 FB mov [si+HS_DEST2_X], ax -273F:6053 8B 44 56 mov ax, [si+HS_DEST_Y] -273F:6056 89 44 FD mov [si+HS_DEST2_Y], ax -273F:6059 C6 06 9834 04 mov cursor_state, CURSORSTATE_BUMPED -273F:605E C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:6062 80 44 4C 01 add byte ptr [si+HS_BLOCKED_FLAG], 1 -273F:6066 C7 44 52 0000 mov word ptr [si+HS_DEST_HOTSPOT], 0 -273F:606B E8 F5F8 call character_set_random_dest -273F:606E 33 C0 xor ax, ax ; Zero register -273F:6070 C3 retn -273F:6071 loc_1225: ; xref 273F:603F -273F:6071 0D 0001 or ax, 1 - -273F:6074 loc_ret_1226: ; xref 273F:60D3 -273F:6074 C3 retn - character_change_room_check_bumped endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:006E - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - player_change_room proc near -273F:6075 úBE 6CEF mov si, offset player_hotspot_rec -273F:6078 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] ; Get player anim rec -273F:607B C6 45 1D 2A mov byte ptr [di+ANIM_SKIP], 2Ah -273F:607F 8B DE mov bx, si -273F:6081 03 5F 61 add bx, [bx+HS_ACTION_OFFSET] -273F:6084 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:6087 C6 07 00 mov byte ptr [bx], CHAR_ACTION_NONE -273F:608A A1 9832 mov ax, room_number -273F:608D 89 45 0E mov [di+ANIM_ROOM_NUM], ax ; Set player's room # -273F:6090 89 44 06 mov [si+HS_ROOM_NUM], ax -273F:6093 A1 982E mov ax, new_room_x ; Set x position -273F:6096 24 F8 and al, 0F8h -273F:6098 0C 05 or al, 5 -273F:609A 89 05 mov [di+ANIM_X], ax -273F:609C 89 44 0D mov [si+HS_X], ax -273F:609F A1 9830 mov ax, new_room_y ; Set y position -273F:60A2 25 FFF8 and ax, 0FFF8h -273F:60A5 89 45 02 mov [di+ANIM_Y], ax -273F:60A8 89 44 0F mov [si+HS_Y], ax -273F:60AB C7 06 982C 0000 mov new_room_number_2, 0 -273F:60B1 8B 5D 0E mov bx, [di+ANIM_ROOM_NUM] -273F:60B4 56 push si -273F:60B5 E8 1B53 call hotspot_enable -273F:60B8 5E pop si -273F:60B9 8B 4C 50 mov cx, [si+HS_DIRECTION] -273F:60BC C7 44 50 0000 mov word ptr [si+HS_DIRECTION], 0 -273F:60C1 F6 C1 80 test cl, DIR_UP -273F:60C4 75 12 jnz loc_1227 ; Jump if not zero -273F:60C6 F6 C1 40 test cl, DIR_DOWN -273F:60C9 75 13 jnz loc_1229 ; Jump if not zero -273F:60CB F6 C1 20 test cl, DIR_LEFT -273F:60CE 75 0B jnz loc_1228 ; Jump if not zero -273F:60D0 F6 C1 10 test cl, DIR_RIGHT -273F:60D3 74 9F jz loc_ret_1226 ; Jump if zero -273F:60D5 E9 E434 jmp char_face_right -273F:60D8 loc_1227: ; xref 273F:60C4 -273F:60D8 E9 E3FE jmp char_face_up -273F:60DB loc_1228: ; xref 273F:60CE -273F:60DB E9 E41D jmp char_face_left -273F:60DE loc_1229: ; xref 273F:60C9 -273F:60DE E9 E409 jmp char_face_down - player_change_room endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:00A6 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - check_player_bumped proc near - -273F:60E1 úBF B14E mov di, offset animation_table -273F:60E4 BE 6CEF mov si, offset player_hotspot_rec -273F:60E7 E8 B021 call character_find_impinging_chars -273F:60EA F7 06 10BE FFFF test num_impinging_chars, 0FFFFh -273F:60F0 74 16 jz loc_ret_1231 ; Jump if zero -273F:60F2 FF 36 6D06 push player_tick_handler -273F:60F6 C7 06 6D06 41BD mov player_tick_handler, offset null_tick_proc -273F:60FC E8 E311 call character_paused_list_countdown -273F:60FF E8 E094 call animation_tick -273F:6102 8F 06 6D06 pop player_tick_handler -273F:6106 EB D9 jmp check_player_bumped - -273F:6108 loc_ret_1231: ; xref 273F:60F0 -273F:6108 C3 retn - check_player_bumped endp - -273F:6109 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8132 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - start_talk_noone proc near -273F:610A B0 01 mov al, 1 -273F:610C 8B D1 mov dx, cx -273F:610E B9 03E7 mov cx, NOONE_HOTSPOT_ID -273F:6111 EB 38 jmp talk_converse - start_talk_noone endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6113 B8 0001 mov ax,1 -273F:6116 EB 33 jmp talk_converse - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx=talking char Id, cx=talk to char Id, dx=string Id - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_converse proc near -273F:6118 32 C0 xor al, al -273F:611A EB 2F jmp talk_converse - seq_converse endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:611C talk_setup: -273F:611C EB 0C jmp talk_setup_2 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:611E 32 C0 xor al,al ; Zero register -273F:6120 8B D3 mov dx,bx -273F:6122 BB 03E8 mov bx, PLAYER_HOTSPOT_ID -273F:6125 B9 03E7 mov cx,3E7h -273F:6128 EB 21 jmp short talk_converse - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:5DF9 - -273F:612A talk_setup_2: -273F:612A 51 push cx -273F:612B E8 ABBA call get_room_resource_pointer -273F:612E 59 pop cx - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:5DDC, 8C43, 8C8F, 8D33 - - talk_setup_3: -273F:612F ú89 54 3C mov [si+HS_RESPONSE_ID], dx -273F:6132 89 4C 39 mov [si+HS_TALK_CHAR_ID], cx -273F:6135 C7 44 37 0028 mov word ptr [si+HS_TALK_COUNTDOWN], TALK_COUNTDOWN_MAX -273F:613A 56 push si -273F:613B 8B D9 mov bx, cx -273F:613D E8 ABA8 call get_room_resource_pointer ; Get char talking to -273F:6140 5B pop bx -273F:6141 87 DE xchg bx, si ; bx=hotspot talking to -273F:6143 8B 47 37 mov ax, [bx+HS_TALK_COUNTDOWN] -273F:6146 01 44 37 add [si+HS_TALK_COUNTDOWN], ax -273F:6149 EB 16 jmp short loc_1236 - -; bx=talking char Id, cx=talking to char Id, dx=string Id, ax=??? -273F:614B talk_converse: -273F:614B 50 push ax -273F:614C 51 push cx -273F:614D E8 AB98 call get_room_resource_pointer -273F:6150 59 pop cx -273F:6151 58 pop ax - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:582D, 638C - -273F:6152 talk_converse_2: -273F:6152 ú89 54 3C mov [si+HS_RESPONSE_ID], dx -273F:6155 89 4C 39 mov [si+HS_TALK_CHAR_ID],cx -273F:6158 C7 44 37 0028 mov [si+HS_TALK_COUNTDOWN], TALK_COUNTDOWN_MAX -273F:615D A8 FF test al,0FFh -273F:615F 74 16 jz loc_ret_1237 ; Jump if zero -273F:6161 loc_1236: ; xref 273F:6149 -273F:6161 8B 44 37 mov ax, [si+HS_TALK_COUNTDOWN] -273F:6164 89 44 42 mov [si+HS_DELAY_CTR], ax -273F:6167 C6 44 44 05 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_CONVERSING -273F:616B A1 BA19 mov ax, use_hotspot_id -273F:616E 89 44 3E mov [si+HS_V3E], ax -273F:6171 A1 BA1B mov ax, active_hotspot_id -273F:6174 89 44 40 mov [si+HS_V40], ax - -273F:6177 loc_ret_1237: -273F:6177 C3 retn - seq_converse endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4F8A, 5E4C, 81B3, 81F3, 820E, 8241, 82A0 - ; 85CE, 8663, 87EC, 882A, 8D3B, 8D59 - ; si = hotspot record, bx = table offset - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_countdown_handler proc near -273F:6178 úF7 44 37 FFFF test word ptr [si+HS_TALK_COUNTDOWN], 0FFFFh -273F:617D 74 F8 jz loc_ret_1237 ; Jump if zero -273F:617F 83 7C 37 28 cmp word ptr [si+HS_TALK_COUNTDOWN], TALK_COUNTDOWN_MAX -273F:6183 74 22 je loc_1241 ; Jump if equal -273F:6185 F6 06 CE20 80 test game_flags, 80h -273F:618A 75 16 jnz loc_1240 ; Jump if not zero -273F:618C F6 06 CE20 0C test game_flags, 0Ch -273F:6191 74 0A jz loc_1239 ; Jump if zero -273F:6193 83 44 42 01 add word ptr [si+HS_DELAY_CTR], 1 -273F:6197 80 2E CE20 04 sub game_flags, 4 -273F:619C C3 retn -273F:619D loc_1239: ; xref 273F:6191 -273F:619D 80 0E CE20 04 or game_flags, 4 -273F:61A2 loc_1240: ; xref 273F:618A -273F:61A2 83 6C 37 01 sub word ptr [si+HS_TALK_COUNTDOWN], 1 -273F:61A6 C3 retn -273F:61A7 loc_1241: ; xref 273F:6183 -273F:61A7 83 6C 37 01 sub word ptr [si+HS_TALK_COUNTDOWN], 1 -273F:61AB 53 push bx -273F:61AC E8 0020 call talk_add_voice_animation -273F:61AF E8 0298 call sub_153 ; (644A) -273F:61B2 81 7C 39 03E7 cmp word ptr [si+HS_TALK_CHAR_ID], NOONE_HOTSPOT_ID -273F:61B7 74 14 je loc_1242 ; Jump if equal -273F:61B9 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:61BC 8B 5C 39 mov bx, [si+HS_TALK_CHAR_ID] -273F:61BF 89 1E BA1B mov active_hotspot_id, bx -273F:61C3 50 push ax -273F:61C4 53 push bx -273F:61C5 E8 E532 call character_face_hotspot_2 -273F:61C8 58 pop ax -273F:61C9 5B pop bx -273F:61CA E8 E52D call character_face_hotspot_2 -273F:61CD loc_1242: ; xref 273F:61B7 -273F:61CD 5B pop bx -273F:61CE C3 retn - talk_countdown_handler endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:61AC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_add_voice_animation proc near -273F:61CF 8B 45 1B mov ax,[di+ANIM_HOTSPOT_ID] -273F:61D2 57 push di -273F:61D3 úBF B14E mov di, offset animation_table -273F:61D6 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:61D9 locloop_1243: -273F:61D9 F6 45 0C FF test byte ptr [di+ANIM_LAYER], 0FFh ; Empty slot? -273F:61DD 74 12 jz loc_1245 ; Jump if slot found -273F:61DF 83 7D 1B FF cmp word ptr [di+ANIM_HOTSPOT_ID], 0FFFFh -273F:61E3 75 05 jne loc_1244 ; Jump if not equal -273F:61E5 3B 45 1E cmp ax,[di+1Eh] -273F:61E8 74 07 je loc_1245 ; Jump if equal -273F:61EA loc_1244: ; xref 273F:61E3 -273F:61EA 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:61ED E2 EA loop locloop_1243 ; Loop if cx > 0 - -273F:61EF 5F pop di -273F:61F0 C3 retn - -273F:61F1 loc_1245: ; xref 273F:61DD, 61E8 -273F:61F1 5B pop bx -273F:61F2 87 DF xchg bx,di - -; di = passed character animation entry, bx = slot to add voice entry into - -273F:61F4 8B 45 0E mov ax, [di+ANIM_ROOM_NUM] -273F:61F7 89 47 0E mov [bx+ANIM_ROOM_NUM], ax -273F:61FA C7 47 1B FFFF mov word ptr [bx+ANIM_HOTSPOT_ID], 0FFFFh -273F:61FF 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:6202 89 47 1E mov [bx+1Eh], ax -273F:6205 8B 44 3C mov ax, [si+3Ch] -273F:6208 89 47 20 mov [bx+20h],ax -273F:620B C6 47 0D 01 mov byte ptr [bx+ANIM_FLAGS], 1 -273F:620F 8B 05 mov ax, [di] ; X position -273F:6211 05 000C add ax, 12 -273F:6214 89 07 mov [bx], ax -273F:6216 8B 45 02 mov ax, [di+ANIM_Y] -273F:6219 2D 0012 sub ax, 18 -273F:621C 89 47 02 mov [bx+ANIM_Y], ax -273F:621F C7 47 04 0020 mov word ptr [bx+ANIM_WIDTH], 32 -273F:6224 C7 47 06 0012 mov word ptr [bx+ANIM_HEIGHT], 18 -273F:6229 C6 47 0C 01 mov byte ptr [bx+ANIM_LAYER], 1 -273F:622D C6 47 10 01 mov byte ptr [bx+ANIM_CAN_UNLOAD], 1 -273F:6231 C7 47 11 625E mov word ptr [bx+ANIM_TICK_PROC], offset voice_tick_proc -273F:6236 C7 47 13 0018 mov word ptr [bx+ANIM_WIDTH_COPY], 24 -273F:623B 8B 45 15 mov ax, [di+ANIM_HEIGHT_COPY] -273F:623E 05 000E add ax, 14 -273F:6241 89 47 15 mov [bx+ANIM_HEIGHT_COPY], ax -273F:6244 C7 47 17 0001 mov word ptr [bx+17h], 1 -273F:6249 C7 47 08 0000 mov word ptr [bx+8], 0 -273F:624E A1 5813 mov ax, voice_pixel_segment -273F:6251 89 47 0A mov [bx+ANIM_SEGMENT], ax -273F:6254 C6 47 28 00 mov byte ptr [bx+ANIM_START_COLOUR], 0 -273F:6258 C7 47 24 0028 mov word ptr [bx+24h], 28h -273F:625D C3 retn - talk_add_voice_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - voice_tick_proc proc near -273F:625E 83 6D 24 01 sub word ptr [di+ANIM_VOICE_CTR], 1 ; Decrement countdown ctr -273F:6262 74 3A jz loc_1247 ; Jump if zero -273F:6264 8B 5D 1E mov bx, [di+ANIM_VOICE_CHAR_ID] -273F:6267 E8 AA7E call get_room_resource_pointer -273F:626A 8B 45 0E mov ax, [di+ANIM_ROOM_NUM] -273F:626D 3B 44 06 cmp ax, [si+HS_ROOM_NUM] ; Still in same room as char? -273F:6270 75 2C jne loc_1247 ; If not then unload -273F:6272 F7 44 37 FFFF test word ptr [si+HS_TALK_COUNTDOWN],0FFFFh -273F:6277 74 25 jz loc_1247 ; Jump if zero -273F:6279 E8 E532 call room_check_x_extents -273F:627C 74 06 jz loc_1246 ; Jump if zero -273F:627E C7 45 02 0008 mov word ptr [di+ANIM_Y], -120 -273F:6283 C3 retn -273F:6284 loc_1246: ; xref 273F:627C -273F:6284 8A 44 35 mov al, [si+HS_TALK_X] -273F:6287 98 cbw -273F:6288 03 44 0D add ax, [si+HS_X] -273F:628B 05 000C add ax, 12 -273F:628E 89 05 mov [di], ax - -273F:6290 8A 44 36 mov al,[si+HS_TALK_Y] -273F:6293 98 cbw -273F:6294 03 44 0F add ax,[si+HS_Y] -273F:6297 2D 0012 sub ax, 18 -273F:629A 89 45 02 mov [di+ANIM_Y], ax -273F:629D C3 retn -273F:629E loc_1247: ; xref 273F:6262, 6270, 6277 -273F:629E E9 AFD6 jmp animation_unload_2 - voice_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0113 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - handle_talking proc near -273F:62A1 83 3E 9838 01 cmp data_1087,1 ; (31E4:9838=0) -273F:62A6 72 3C jb loc_ret_1249 ; Jump if below -273F:62A8 74 3B jz loc_1250 ; Jump if zero -273F:62AA 83 3E 9838 02 cmp data_1087,2 ; (31E4:9838=0) -273F:62AF 74 75 je loc_1251 ; Jump if equal -273F:62B1 83 06 9838 01 add data_1087,1 ; (31E4:9838=0) -273F:62B6 A1 9847 mov ax,data_1093 ; (31E4:9847=0) -273F:62B9 39 06 9838 cmp data_1087,ax ; (31E4:9838=0) -273F:62BD 72 25 jb loc_ret_1249 ; Jump if below -273F:62BF C7 06 9838 0000 mov data_1087,0 ; (31E4:9838=0) - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:64BC, 8DDF - -273F:62C5 sub_147: -273F:62C5 loc_1248: ; xref 273F:149F, 65DB -273F:62C5 úA1 11C2 mov ax, talk_dialog_left -273F:62C8 8B 1E 11C0 mov bx, talk_dialog_top -273F:62CC 8B 2E 11C4 mov bp, talk_dialog_width -273F:62D0 8B 16 11C6 mov dx, talk_dialog_height -273F:62D4 B1 81 mov cl, 81h -273F:62D6 E8 A8B6 call sub_22 ; (0B8F) -273F:62D9 C6 06 9837 00 mov talk_dialog_active, 0 -273F:62DE C7 06 9838 0000 mov data_431,0 ; (273F:9838=5C8Bh) - -273F:62E4 loc_ret_1249: ; xref 273F:62A6, 62BD -273F:62E4 C3 retn - - -273F:62E5 loc_1250: ; xref 273F:62A8 -273F:62E5 C7 06 9847 0014 mov data_439,14h ; (273F:9847=0F7F5h) -273F:62EB C6 06 9837 01 mov talk_dialog_active, 1 -273F:62F0 83 06 9838 01 add data_431,1 ; (273F:9838=5C8Bh) -273F:62F5 BF CCE0 mov di, offset talk_character_buffer -273F:62F8 8B 1E 983B mov bx, talk_character_id -273F:62FC E8 AA20 call get_room_resource_pointer3 -273F:62FF 8B 44 02 mov ax, [si+HSH_NAME] ; Get character name -273F:6302 80 E4 1F and ah, 1Fh -273F:6305 E8 1A32 call decode_string -273F:6308 A1 983D mov ax, data_434 ; (273F:983D=3B75h) -273F:630B E8 005A call decode_character_and_hotspot_names -273F:630E BF CCF4 mov di, offset talk_text_buffer -273F:6311 A1 983D mov ax, data_434 -273F:6314 E8 1A23 call decode_string -273F:6317 BF CCF4 mov di, offset talk_text_buffer -273F:631A úBE CCE0 mov si, offset talk_character_buffer -273F:631D E8 B72A call talk_dialog_init -273F:6320 C6 06 4B40 01 mov data_791, 1 -273F:6325 C3 retn -273F:6326 loc_1251: ; xref 273F:62AF -273F:6326 83 06 9847 03 add data_439,3 ; (273F:9847=0F7F5h) -273F:632B F6 06 CE20 80 test game_flags, 80h -273F:6330 75 12 jnz loc_1253 ; Jump if not zero -273F:6332 F6 06 CE20 03 test game_flags, 3 -273F:6337 74 06 jz loc_1252 ; Jump if zero -273F:6339 80 2E CE20 01 sub game_flags, 1 -273F:633E C3 retn -273F:633F loc_1252: ; xref 273F:6337 -273F:633F 80 0E CE20 01 or game_flags, 1 -273F:6344 loc_1253: ; xref 273F:6330 -273F:6344 C6 06 4B40 01 mov data_791, 1 -273F:6349 úBB B9F9 mov bx, talk_speech_ptr -273F:634C E8 B849 call sub_51 ; (1B98) -273F:634F 0B C0 or ax,ax ; Zero ? -273F:6351 74 14 jz loc_ret_1254 ; Jump if zero -273F:6353 83 06 9838 01 add data_431, 1 -273F:6358 C6 06 4B40 00 mov data_791, 0 -273F:635D 80 26 CE20 F0 and game_flags, 0F0h -273F:6362 80 0E CE20 05 or game_flags, 5 - -273F:6367 loc_ret_1254: ; xref 273F:6351 -273F:6367 C3 retn - handle_talking endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:630B, 6428 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - decode_character_and_hotspot_names proc near -273F:6368 E8 1B28 call decode_character_and_hotspot_names_init -273F:636B 8A D8 mov bl,al -273F:636D 56 push si -273F:636E 53 push bx -273F:636F BF 4B43 mov di, offset hotspot_name -273F:6372 A1 9843 mov ax, current_hotspot_id -273F:6375 E8 1B2E call decode_hotspot_name -273F:6378 5B pop bx -273F:6379 5E pop si -273F:637A 56 push si -273F:637B BF 4B93 mov di, offset character_name -273F:637E A1 9845 mov ax, current_character_id -273F:6381 E8 1B22 call decode_hotspot_name -273F:6384 5E pop si -273F:6385 C3 retn - decode_character_and_hotspot_names endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - ;* No entry point to code -273F:6386 B9 03E7 mov cx,3E7h -273F:6389 B8 0001 mov ax,1 -273F:638C E8 FDC3 call sub_143 ; (6152) -273F:638F C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:52A9 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - display_message_dialog proc near -273F:6390 89 16 4B41 mov saved_dest_character, dx -273F:6394 53 push bx -273F:6395 8B D9 mov bx, cx -273F:6397 E8 A94E call get_room_resource_pointer -273F:639A 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] -273F:639D 5B pop bx -273F:639E B2 01 mov dl,1 -273F:63A0 EB 19 jmp display_message_dialog_4 - ; si = HS [from cx], bx = param1, dl = 1 - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:4613, 5BC1, 5CCD - - display_message_dialog_2: -273F:63A2 8B 16 BA1B mov dx, active_hotspot_id -273F:63A6 89 16 4B41 mov saved_dest_character, dx -273F:63AA 8B 4D 1B mov cx, [di+ANIM_HOTSPOT_ID] -273F:63AD B2 01 mov dl,1 -273F:63AF EB 0A jmp display_message_dialog_4 - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:465A, 466E, 467E, 576B, 5D0F - ; ax = Id stored in a sequence offset: 801ah for "look through" window - ; si = player hotspot rec, di = player animation slot - - display_message_dialog_3: -273F:63B1 ú80 E4 7F and ah, 7Fh -273F:63B4 8B D8 mov bx, ax -273F:63B6 8B 4D 1B mov cx, [di+ANIM_HOTSPOT_ID] -273F:63B9 33 D2 xor dx,dx - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:8D20 - - display_message_dialog_4: -273F:63BB 8B C1 mov ax,cx -273F:63BD E8 A92A call get_room_resource_pointer2 ; Get hs resource -273F:63C0 8B 7C 0B mov di,[si+HS_ANIM_OFFSET] ; Get char's hotspot Id -273F:63C3 B8 47D5 mov ax, messages_seg -273F:63C6 8E C0 mov es, ax -273F:63C8 8B C3 mov ax, bx -273F:63CA 87 CA xchg cx, dx -273F:63CC BB 0000 mov bx, 0 -; ax = the passed offset with high bit cleared: eg. 801A for window look throug => 1Ah -; si=hotspot rec, di=player anim slot, dx=character hotspot Id -273F:63CF loc_1258: ; Find entry for char Id -273F:63CF ú26: 39 17 cmp es:[bx],dx -273F:63D2 74 05 je loc_1259 -273F:63D4 83 C3 04 add bx,4 -273F:63D7 EB F6 jmp short loc_1258 -273F:63D9 loc_1259: -273F:63D9 26: 8B 5F 02 mov bx,es:[bx+2] ; bx<=5Ch -273F:63DD 80 E4 7F and ah,7Fh -273F:63E0 52 push dx -273F:63E1 BA 08C4 mov dx,8C4h -273F:63E4 loc_1260: ; xref 273F:63F3 -273F:63E4 ú26: 83 3F FF cmp word ptr es:[bx],0FFFFh ; Check [5ch] -273F:63E8 74 0E je loc_1262 ; End of list? -273F:63EA 26: 3B 47 02 cmp ax,es:[bx+2] ; Found 1Ah? -273F:63EE 74 05 je loc_1261 ; Jump if equal -273F:63F0 83 C3 04 add bx,4 -273F:63F3 EB EF jmp short loc_1260 ; Loop through table -273F:63F5 loc_1261: -273F:63F5 26: 8B 17 mov dx, es:[bx] ; dx<=811fh -273F:63F8 loc_1262: -273F:63F8 8B C2 mov ax,dx ; ax=811fh -273F:63FA 5A pop dx ; dx=3e8h -273F:63FB 3D 0076 cmp ax, 76h -273F:63FE 74 08 je loc_1263 ; Jump if equal -273F:6400 3D 0120 cmp ax,120h -273F:6403 75 06 jne loc_1264 ; Jump if not equal -273F:6405 E9 0157 jmp loc_1279 ; (655F) -273F:6408 loc_1263: ; xref 273F:63FE -273F:6408 E9 0144 jmp loc_1278 ; (654F) -273F:640B loc_1264: ; xref 273F:6403 -273F:640B 0B C0 or ax,ax ; Zero ? -273F:640D 74 3A jz loc_ret_1267 ; Jump if zero -273F:640F 79 22 jns loc_1265 ; Jump if not sign - -273F:6411 8B D8 mov bx, ax -273F:6413 80 E7 7F and bh, 7Fh ; bx=811fh -273F:6416 A1 BA19 mov ax, use_hotspot_id ; ax=41Bh -273F:6419 A3 9843 mov current_hotspot_id, ax -273F:641C A1 BA1B mov ax, active_hotspot_id ; ax=41bh -273F:641F A3 9845 mov current_character_id, ax -273F:6422 56 push si -273F:6423 57 push di -273F:6424 55 push bp -273F:6425 53 push bx -273F:6426 8B C3 mov ax,bx -; ax=11fh, dx=player id, si=player hotspot, di=player anim slot -273F:6428 E8 FF3D call decode_character_and_hotspot_names -273F:642B 5B pop bx -273F:642C E8 248D call display_dialog -273F:642F 5D pop bp -273F:6430 5F pop di -273F:6431 5E pop si -273F:6432 C3 retn - -; Further handling code for if the ax is not signed. In this case the message -; is shown as a talk dialog - -273F:6433 loc_1265: ; xref 273F:640F -273F:6433 8B D0 mov dx, ax -273F:6435 F6 C1 FF test cl, 0FFh -273F:6438 74 07 jz loc_1266 ; Jump if zero -273F:643A 8B 0E 4B41 mov cx, saved_dest_character -273F:643E E9 FCEE jmp talk_setup_3 -273F:6441 loc_1266: ; xref 273F:6438 -273F:6441 B9 03E7 mov cx, 3E7h -273F:6444 B0 01 mov al, 1 -273F:6446 E9 FD09 jmp talk_converse_2 - -273F:6449 loc_ret_1267: ; xref 273F:640D, 6451 -273F:6449 C3 retn - display_message_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:61AF - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - sub_153 proc near -273F:644A 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Don't display dialog if -273F:644D 3B 06 9832 cmp ax, room_number ; player not in the same -273F:6451 75 F6 jne loc_ret_1267 ; room as character -273F:6453 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:6456 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:6459 75 19 jne loc_1268 ; Jump if not equal -273F:645B C7 06 9841 0000 mov data_1091, 0 -273F:6461 A3 983F mov data_1090, ax -273F:6464 81 7C 39 03E7 cmp word ptr [si+HS_TALK_CHAR_ID], NOONE_HOTSPOT_ID -273F:6469 74 44 je loc_1273 ; Jump if equal -273F:646B 8B 5C 39 mov bx, [si+NOONE_HOTSPOT_ID] -273F:646E 89 1E 9841 mov data_1091, bx -273F:6472 EB 3B jmp short loc_1273 ; (64AF) -273F:6474 loc_1268: ; xref 273F:6459 -273F:6474 39 06 983F cmp data_1090, ax -273F:6478 74 08 je loc_1269 ; Jump if equal -273F:647A 39 06 9841 cmp data_1091, ax -273F:647E 74 02 je loc_1269 ; Jump if equal -273F:6480 EB 0F jmp short loc_1270 ; (6491) -273F:6482 loc_1269: ; xref 273F:6478, 647E -273F:6482 8B 5C 39 mov bx,[si+HS_TALK_CHAR_ID] -273F:6485 3B 1E 983F cmp bx, data_1090 -273F:6489 74 24 je loc_1273 ; Jump if equal -273F:648B 3B 1E 9841 cmp bx, data_1091 -273F:648F 74 1E je loc_1273 ; Jump if equal -273F:6491 loc_1270: ; xref 273F:6480 -273F:6491 F6 06 9849 FF test pathfind_data, 0FFh -273F:6496 75 16 jnz loc_ret_1272 ; Jump if not zero -273F:6498 F7 06 9838 FFFF test data_431,0FFFFh ; (273F:9838=5C8Bh) -273F:649E 74 07 jz loc_1271 ; Jump if zero -273F:64A0 F6 06 983A FF test byte ptr data_432,0FFh ; (273F:983A=0F7h) -273F:64A5 75 07 jnz loc_ret_1272 ; Jump if not zero -273F:64A7 loc_1271: ; xref 273F:649E -273F:64A7 C6 06 983A 00 mov byte ptr data_432,0 ; (273F:983A=0F7h) -273F:64AC EB 06 jmp short loc_1274 ; (64B4) - -273F:64AE loc_ret_1272: ; xref 273F:6496, 64A5 -273F:64AE C3 retn -273F:64AF loc_1273: ; xref 273F:6469, 6472, 6489, 648F -273F:64AF C6 06 983A 01 mov byte ptr data_432,1 ; (273F:983A=0F7h) -273F:64B4 loc_1274: ; xref 273F:64AC -273F:64B4 F7 06 9838 FFFF test data_431,0FFFFh ; (273F:9838=5C8Bh) -273F:64BA 74 03 jz loc_1275 ; Jump if zero -273F:64BC E8 FE06 call sub_147 ; (62C5) -273F:64BF loc_1275: ; xref 273F:64BA -273F:64BF C7 06 9838 0001 mov data_431,1 ; (273F:9838=5C8Bh) -273F:64C5 8B 44 3C mov ax, [si+HS_RESPONSE_ID] -273F:64C8 A3 983D mov data_434,ax ; (273F:983D=3B75h) -273F:64CB 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:64CE A3 983B mov talk_character_id, ax -273F:64D1 8B 44 3E mov ax, [si+HS_V3E] -273F:64D4 A3 9843 mov current_hotspot_id, ax -273F:64D7 8B 44 40 mov ax, [si+HS_V40] -273F:64DA A3 9845 mov current_character_id, ax -273F:64DD C3 retn - ;* No entry point to code -273F:64DE 89 1E 983F mov data_1090, bx -273F:64E2 89 0E 9841 mov data_1091, cx -273F:64E6 C3 retn - sub_153 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:654F, 655F - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - add_puzzled_animation proc near -273F:64E7 8B DA mov bx,dx -273F:64E9 53 push bx -273F:64EA E8 A7FB call get_room_resource_pointer -273F:64ED úBB B14E mov bx, offset animation_table -273F:64F0 5A pop dx -273F:64F1 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:64F4 locloop_1276: -273F:64F4 F6 47 0C FF test byte ptr [bx+ANIM_LAYER], 0FFh -273F:64F8 74 0D jz loc_1277 ; Jump if anim has no layer -273F:64FA 39 57 1E cmp [bx+ANIM_VOICE_CHAR_ID], dx -273F:64FD 74 08 je loc_1277 ; Jump if equal -273F:64FF 83 C3 29 add bx, ANIMATION_SLOT_SIZE -273F:6502 E2 F0 loop locloop_1276 ; Loop if cx > 0 - -273F:6504 83 EB 29 sub bx, ANIMATION_SLOT_SIZE -273F:6507 loc_1277: -273F:6507 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:650A 89 47 0E mov [bx+ANIM_ROOM_NUM], ax -273F:650D C7 47 1B FFFE mov word ptr [bx+ANIM_HOTSPOT_ID], 0FFFEh -273F:6512 C7 47 20 0028 mov word ptr [bx+ANIM_CTR], 40 -273F:6517 89 57 1E mov [bx+ANIM_VOICE_CHAR_ID], dx -273F:651A C6 47 0D 01 mov byte ptr [bx+ANIM_FLAGS], 1 -273F:651E C7 47 04 0020 mov word ptr [bx+ANIM_WIDTH], 20h -273F:6523 C7 47 06 0012 mov word ptr [bx+ANIM_HEIGHT], 12h -273F:6528 C6 47 0C 01 mov byte ptr [bx+ANIM_LAYER], 1 -273F:652C C6 47 10 01 mov byte ptr [bx+ANIM_CAN_UNLOAD], 1 -273F:6530 C7 47 11 6571 mov word ptr [bx+ANIM_TICK_PROC], offset tick_proc_6571 -273F:6535 C7 47 13 0013 mov word ptr [bx+ANIM_WIDTH_COPY], 19 -273F:653A C7 47 15 0012 mov word ptr [bx+ANIM_HEIGHT_COPY], 18 -273F:653F 8B 44 1B mov ax, [si+HS_HEIGHT_COPY] -273F:6542 01 47 15 add [bx+ANIM_HEIGHT_COPY], ax -273F:6545 C7 47 17 0001 mov word ptr [bx+ANIM_Y_CORRECTION], 1 -273F:654A C6 47 28 00 mov byte ptr [bx+ANIM_START_COLOUR], 0 -273F:654E C3 retn - add_puzzled_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUPPORT CODE - ; - ; This is support code used by display_message_dialog - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:654F loc_1278: ; xref 273F:6408 -273F:654F E8 FF95 call add_puzzled_animation -273F:6552 A1 5813 mov ax, voice_pixel_segment -273F:6555 89 47 0A mov [bx+ANIM_SEGMENT], ax -273F:6558 A1 5817 mov ax, voice_frame_offset -273F:655B 89 47 08 mov [bx+ANIM_FRAME_OFFSET], ax -273F:655E C3 retn -273F:655F loc_1279: ; xref 273F:6405 -273F:655F E8 FF85 call add_puzzled_animation -273F:6562 A1 5813 mov ax, voice_pixel_segment -273F:6565 89 47 0A mov [bx+ANIM_SEGMENT], ax -273F:6568 A1 5817 mov ax, voice_frame_offset -273F:656B D1 E0 shl ax, 1 -273F:656D 89 47 08 mov [bx+ANIM_FRAME_OFFSET], ax -273F:6570 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - tick_proc_6571 proc near -273F:6571 8B 45 1E mov ax, [di+ANIM_VOICE_CHAR_ID] -273F:6574 E8 A773 call get_room_resource_pointer2 -273F:6577 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:657A 3B 45 0E cmp ax, [di+ANIM_ROOM_NUM] -273F:657D 75 0B jne loc_1280 ; Jump if not equal -273F:657F 83 6D 20 01 sub word ptr [di+ANIM_CTR], 1 -273F:6583 74 05 jz loc_1280 ; Jump if zero -273F:6585 E8 E226 call room_check_x_extents -273F:6588 74 03 jz loc_1281 ; Jump if zero -273F:658A loc_1280: ; xref 273F:657D, 6583 -273F:658A E9 ACEA jmp animation_unload_2 -273F:658D loc_1281: ; xref 273F:6588 -273F:658D 8A 44 35 mov al, [si+HS_TALK_X] -273F:6590 98 cbw ; Convrt byte to word -273F:6591 03 44 0D add ax, [si+HS_X] -273F:6594 05 000C add ax, 12 -273F:6597 89 05 mov [di+ANIM_X], ax - -273F:6599 8A 44 36 mov al, [si+HS_TALK_Y] -273F:659C 98 cbw -273F:659D 03 44 0F add ax, [si+HS_Y] -273F:65A0 2D 0014 sub ax, 20 -273F:65A3 89 45 02 mov [di+ANIM_Y], ax -273F:65A6 C3 retn - tick_proc_6571 endp - ;* No entry point to code -273F:65A7 A1 983B mov ax, talk_character_id -273F:65AA E8 A73B call get_room_resource_pointer -273F:65AD C7 44 37 0000 mov word ptr [si+HS_TALK_COUNTDOWN],0 -273F:65B2 81 3E 983B 03E8 cmp talk_character_id, PLAYER_HOTSPOT_ID -273F:65B8 75 16 jne loc_1282 ; Jump if not equal -273F:65BA A1 9841 mov ax, data_1091 -273F:65BD 0B C0 or ax,ax ; Zero ? -273F:65BF 74 0F jz loc_1282 ; Jump if zero -273F:65C1 E8 A724 call get_room_resource_pointer -273F:65C4 F7 44 37 FFFF test word ptr [si+HS_TALK_COUNTDOWN],0FFFFh -273F:65C9 74 05 jz loc_1282 ; Jump if zero -273F:65CB C7 44 37 0028 mov word ptr [si+HS_TALK_COUNTDOWN],28h -273F:65D0 loc_1282: ; xref 273F:65B8, 65BF, 65C9 -273F:65D0 C6 06 9837 00 mov talk_dialog_active, 0 -273F:65D5 C7 06 9838 0000 mov data_431,0 ; (273F:9838=5C8Bh) -273F:65DB E9 FCE7 jmp loc_1248 ; (62C5) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; TABLE LIST - ; - ; The following table provides a list of offsets for handler methods - ; for each of the possible actions in actions_list - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:65DE 0000 actions_proc_list dw 0 -273F:65E0 6698 dw offset action_do ; 01 - GET -273F:65E2 0000 dw 0 -273F:65E4 6698 dw offset action_do ; 03 - PUSH -273F:65E6 6698 dw offset action_do ; 04 - PULL -273F:65E8 6698 dw offset action_do ; 05 - OPERATE -273F:65EA 6698 dw offset action_do ; 06 - OPEN -273F:65EC 6698 dw offset action_do ; 07 - CLOSE -273F:65EE 6698 dw offset action_do ; 08 - LOCK -273F:65F0 6698 dw offset action_do ; 09 - UNLOCK -273F:65F2 66B3 dw offset action_use ; 10 - USE -273F:65F4 66B3 dw offset action_use ; 11 - GIVE -273F:65F6 6698 dw offset action_do ; 12 - TALK TO -273F:65F8 6738 dw offset action_tell ; 13 - TELL -273F:65FA 6698 dw offset action_do ; 14 - BUY -273F:65FC 6735 dw offset action_look ; 15 - LOOK -273F:65FE 6698 dw offset action_do ; 16 - LOOK AT -273F:6600 6698 dw offset action_do ; 17 - LOOK THROUGH -273F:6602 66E0 dw offset action_ask ; 18 - ASK -273F:6604 669E dw offset action_consume ; 19 - EAT (unused) -273F:6606 669E dw offset action_consume ; 20 - DRINK -273F:6608 669B dw offset action_status ; 21 - STATUS -273F:660A 6698 dw offset action_do ; 22 - GO TO -273F:660C 6698 dw offset action_do ; 23 - RETURN -273F:660E 6698 dw offset action_do ; 24 - BRIBE -273F:6610 669E dw offset action_consume ; 25 - EXAMINE -273F:6612 6698 dw offset action_do ; 26 - unused - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1431 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_show_rightclick_menu proc near - -273F:6614 E8 A1D7 call backup_variables -273F:6617 loc_1283: ; xref 273F:670A -273F:6617 úC7 06 3382 FFFF mov data_3382, 0FFFFh -273F:661D C7 06 3380 0000 mov data_3380, 0 -273F:6623 C7 06 335E 0001 mov data_75e, 1 -273F:6629 B8 0007 mov ax, 7 -273F:662C F7 26 336A mul word ptr ds:data_79e ; (0874:336A=7500h) dx:ax = data * ax -273F:6630 03 06 336E add ax,ds:data_81e ; (0874:336E=8090h) -273F:6634 A3 335A mov ds:data_74e,ax ; (0874:335A=0C70Fh) -273F:6637 C7 06 3350 0000 mov ds:saved_zero, 0 -273F:663D A1 3356 mov ax, ds:saved_room_number -273F:6640 A3 3379 mov saved_room_number2, ax -273F:6643 A1 3358 mov ax, data_3358 -273F:6646 0B C0 or ax,ax ; Hotspot highlighted? -273F:6648 74 19 jz loc_1284 ; No, so set up for look/status menu - -273F:664A 1E push ds -273F:664B 8E DD mov ds,bp -273F:664D E8 A69A call get_room_resource_pointer2 -273F:6650 8B 04 mov ax,[si] -273F:6652 8B 54 02 mov dx,[si+2] -273F:6655 1F pop ds -273F:6656 81 E2 10FF and dx,10FFh -273F:665A 75 0D jnz loc_1285 ; Jump if not zero -273F:665C 0B C0 or ax,ax ; Zero ? -273F:665E 75 09 jnz loc_1285 ; Jump if not zero -273F:6660 E9 00D2 jmp action_handle - -; Execution reaches this point if no hotspot was highlighted. ie. for the look/status menu - -273F:6663 loc_1284: -273F:6663 B8 4000 mov ax,4000h ; Default actions: Drink, Examine, -273F:6666 BA 0118 mov dx,118h ; Look, Status - -273F:6669 loc_1285: -273F:6669 F6 06 3360 FF test byte ptr ds:data_76e,0FFh -273F:666E 75 07 jnz loc_1286 -273F:6670 25 F9FD and ax,0F9FDh ; Removes Drink, Examine actions.. -273F:6673 81 E2 FEF3 and dx,0FEF3h ; maybe others as well -273F:6677 loc_1286: -273F:6677 F7 06 337E FFFF test word ptr ds:data_88e,0FFFFh ; (0874:337E=0) -273F:667D 75 04 jnz loc_1287 -273F:667F 81 E2 FF7F and dx,0FF7Fh ; Remove Bribe -273F:6683 loc_1287: -273F:6683 E8 02D4 call popmenu_populate_list -273F:6686 E8 0308 call menu_make_selections -273F:6689 0B C0 or ax,ax ; Any selection made -273F:668B 78 51 js loc_1290 ; No, so jump out - -273F:668D D1 E0 shl ax,1 ; Get jump destination -273F:668F 8B D8 mov bx,ax ; for particular atcion -273F:6691 2E: 8B 87 65DE mov ax, cs:actions_proc_list[bx] -273F:6696 FF E0 jmp ax ; Jump to handler - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Action handler for use actions - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - -273F:6698 E8 028A action_do: call sub_159 -273F:669B E9 0097 action_status: jmp action_handle - - -273F:669E E8 A6B3 action_consume: call sub_32 ; (0D54) -273F:66A1 F7 06 31E4 FFFF test popmenu_entry_count, 0FFFFh -273F:66A7 74 57 jz loc_1291 ; Jump if zero -273F:66A9 E8 02E5 call menu_make_selections -273F:66AC 0B C0 or ax,ax ; Zero ? -273F:66AE 78 53 js loc_1292 ; Jump if sign=1 -273F:66B0 E9 0082 jmp action_handle - - -273F:66B3 E8 A69E action_use: call sub_32 ; (0D54) -273F:66B6 F7 06 31E4 FFFF test popmenu_entry_count, 0FFFFh -273F:66BC 74 42 jz loc_1291 ; Jump if zero -273F:66BE E8 02D0 call menu_make_selections ; Select inventory item -273F:66C1 0B C0 or ax,ax ; Zero ? -273F:66C3 78 3E js loc_1292 ; Jump if sign=1 -273F:66C5 8B 36 3380 mov si, data_3380 ; Get the hotspot -273F:66C9 83 BC 337C 0B cmp word ptr ds:data_86e+1[si],0Bh ; (0874:337C=4758h) -273F:66CE 75 05 jne loc_1288 ; Jump if not equal -273F:66D0 BB 33E4 mov bx,33E4h -273F:66D3 EB 03 jmp short loc_1289 ; (66D8) -273F:66D5 loc_1288: ; xref 273F:66CE -273F:66D5 BB 33E0 mov bx,33E0h -273F:66D8 loc_1289: ; xref 273F:66D3 -273F:66D8 E8 0575 call sub_166 ; (6C50) -273F:66DB E8 0247 call sub_159 ; (6925) -273F:66DE loc_1290: ; xref 273F:668B -273F:66DE EB 55 jmp action_handle - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - action_ask proc near -273F:66E0 E8 0242 call sub_159 ; (6925) -273F:66E3 BB 33F1 mov bx, 33F1h -273F:66E6 E8 0567 call sub_166 ; (6C50) -273F:66E9 B8 0001 mov ax, ACTION_GET -273F:66EC E8 A6C0 call prepare_ask_item_list -273F:66EF F7 06 31E4 FFFF test popmenu_entry_count, 0FFFFh -273F:66F5 74 09 jz loc_1291 ; Jump if zero -273F:66F7 E8 0297 call menu_make_selections -273F:66FA 0B C0 or ax, ax ; Zero ? -273F:66FC 78 05 js loc_1292 ; Jump if sign=1 -273F:66FE EB 35 jmp action_handle -273F:6700 loc_1291: -273F:6700 E8 000A call sub_156 -273F:6703 loc_1292: -273F:6703 1E push ds -273F:6704 8E DD mov ds, bp -273F:6706 E8 08FC call menubar_clear_image -273F:6709 1F pop ds -273F:670A E9 FF0A jmp loc_1283 ; (6617) - action_ask endp - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:6700, 6792 - -273F:670D sub_156: -273F:670D BB 33E7 mov bx,33E7h -273F:6710 E8 053D call sub_166 ; (6C50) -273F:6713 1E push ds -273F:6714 07 pop es -273F:6715 úBF 3174 mov di,3174h ; (273F:3174=7) -273F:6718 B8 33E2 mov ax,33E2h -273F:671B B9 0012 mov cx,12h -273F:671E F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:6720 C7 06 334C 0000 mov popmenu_num_entries, 0 -273F:6726 E8 02B8 call menu_make_selections_select -273F:6729 1E push ds -273F:672A 8E DD mov ds,bp -273F:672C loc_1293: ; xref 273F:6731 -273F:672C F6 06 11D5 FF test byte ptr ds:data_29e,0FFh ; (0000:11D5=8Bh) -273F:6731 75 F9 jnz loc_1293 ; Jump if not zero -273F:6733 1F pop ds -273F:6734 C3 retn - - -273F:6735 úE9 A153 action_handle: jmp action_handle_2 - - room_show_rightclick_menu endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - action_tell proc near - -273F:6738 E8 01EA call sub_159 ; (6925) -273F:673B BB 33E4 mov bx,33E4h -273F:673E E8 050F call sub_166 ; (6C50) -273F:6741 loc_1295: ; xref 273F:676E, 67EA -273F:6741 ú83 3E 3380 08 cmp data_3380, 8 -273F:6746 75 06 jne loc_1296 ; Jump if not equal -273F:6748 A1 3356 mov ax, saved_room_number -273F:674B A3 3379 mov saved_room_number2, ax -273F:674E loc_1296: -273F:674E BA 006A mov dx,6Ah ; Actions set to select from -273F:6751 B8 07FD mov ax,7FDh -273F:6754 E8 0203 call popmenu_populate_list -273F:6757 E8 0237 call menu_make_selections ; Choose action from list -273F:675A 0B C0 or ax,ax ; Zero ? -273F:675C 79 12 jns loc_1298 ; Jump if not sign -273F:675E 83 3E 3380 08 cmp data_3380, 8 -273F:6763 74 9E je loc_1292 ; Jump if equal -273F:6765 loc_1297: ; xref 273F:6795, 679C, 683E -273F:6765 úE8 00F7 call sub_157 ; (685F) -273F:6768 C7 06 3380 0008 mov data_3380, 8 -273F:676E EB D1 jmp short loc_1295 ; (6741) -273F:6770 loc_1298: ; xref 273F:675C -273F:6770 3D 0017 cmp ax, ACTION_RETURN -273F:6773 74 4B je loc_1304 ; Jump if equal -273F:6775 3D 000A cmp ax, ACTION_USE -273F:6778 74 0A je loc_1299 ; Jump if equal -273F:677A 3D 0014 cmp ax, ACTION_DRINK -273F:677D 74 05 je loc_1299 ; Jump if equal -273F:677F 3D 000B cmp ax, ACTION_GIVE -273F:6782 75 03 jne loc_1300 ; Jump if not equal -273F:6784 loc_1299: ; xref 273F:6778, 677D -273F:6784 B8 0001 mov ax, ACTION_GET -273F:6787 loc_1300: ; xref 273F:6782 -273F:6787 E8 A625 call prepare_ask_item_list -273F:678A F7 06 31E4 FFFF test data_31e4, 0FFFFh -273F:6790 75 05 jnz loc_1302 ; Jump if not zero -273F:6792 loc_1301: ; xref 273F:683B -273F:6792 úE8 FF78 call sub_156 ; (670D) -273F:6795 EB CE jmp short loc_1297 ; (6765) -273F:6797 loc_1302: ; xref 273F:6790 -273F:6797 E8 01F7 call menu_make_selections -273F:679A 0B C0 or ax,ax ; Zero ? -273F:679C 78 C7 js loc_1297 ; Jump if sign=1 -273F:679E 8B 1E 3380 mov bx, data_3380 -273F:67A2 8B 9F 337C mov bx,word ptr data_267+1[bx] ; (273F:337C=4Eh) -273F:67A6 83 FB 16 cmp bx,16h -273F:67A9 75 03 jne loc_1303 ; Jump if not equal -273F:67AB A3 3379 mov saved_room_number2, ax -273F:67AE loc_1303: ; xref 273F:67A9 -273F:67AE 83 FB 12 cmp bx,12h -273F:67B1 74 4E je loc_1308 ; Jump if equal -273F:67B3 83 FB 0B cmp bx,0Bh -273F:67B6 74 66 je loc_1309 ; Jump if equal -273F:67B8 83 FB 0A cmp bx,0Ah -273F:67BB 75 03 jne loc_1304 ; Jump if not equal -273F:67BD E9 0081 jmp loc_1312 ; (6841) -273F:67C0 loc_1304: ; xref 273F:6773, 67BB, 681C, 6839 - ; 685C -273F:67C0 ú83 3E 3380 4A cmp data_3380, 4Ah -273F:67C5 73 0B jae loc_1305 ; Jump if above or = -273F:67C7 BE 2E41 mov si,2E41h -273F:67CA BB 2E53 mov bx,2E53h -273F:67CD B9 FFFF mov cx,0FFFFh -273F:67D0 EB 09 jmp short loc_1306 ; (67DB) -273F:67D2 loc_1305: ; xref 273F:67C5 -273F:67D2 BE 2E4B mov si,2E4Bh -273F:67D5 BB 2E55 mov bx,2E55h -273F:67D8 B9 0001 mov cx,1 -273F:67DB loc_1306: ; xref 273F:67D0 -273F:67DB E8 054D call sub_168 ; (6D2B) -273F:67DE E8 01B0 call menu_make_selections -273F:67E1 0B C0 or ax,ax ; Zero ? -273F:67E3 78 59 js loc_1311 ; Jump if sign=1 -273F:67E5 3D 7D00 cmp ax,7D00h -273F:67E8 75 03 jne loc_1307 ; Jump if not equal -273F:67EA E9 FF54 jmp loc_1295 ; (6741) -273F:67ED loc_1307: ; xref 273F:67E8 -273F:67ED A1 338A mov ax,word ptr ds:[338Ah] ; (273F:338A=8E9h) -273F:67F0 A3 335E mov data_335E, ax -273F:67F3 33 FF xor di,di ; Zero register -273F:67F5 E8 00AD call sub_158 ; (68A5) -273F:67F8 BB 33F5 mov bx,33F5h -273F:67FB E8 0452 call sub_166 ; (6C50) -273F:67FE E9 FF34 jmp action_handle -273F:6801 loc_1308: ; xref 273F:67B1 -273F:6801 BB 33F1 mov bx,33F1h -273F:6804 E8 0449 call sub_166 ; (6C50) -273F:6807 B8 0001 mov ax, ACTION_GET -273F:680A E8 A5A2 call prepare_ask_item_list -273F:680D F7 06 31E4 FFFF test data_31e4, 0FFFFh -273F:6813 74 26 jz loc_1310 ; Jump if zero -273F:6815 E8 0179 call menu_make_selections -273F:6818 0B C0 or ax,ax ; Zero ? -273F:681A 78 22 js loc_1311 ; Jump if sign=1 -273F:681C EB A2 jmp short loc_1304 ; (67C0) -273F:681E loc_1309: ; xref 273F:67B6 -273F:681E BB 33E4 mov bx,33E4h -273F:6821 E8 042C call sub_166 ; (6C50) -273F:6824 B8 000B mov ax, ACTION_GIVE -273F:6827 E8 A585 call prepare_ask_item_list -273F:682A F7 06 31E4 FFFF test data_31e4, 0FFFFh -273F:6830 74 09 jz loc_1310 ; Jump if zero -273F:6832 E8 015C call menu_make_selections -273F:6835 0B C0 or ax,ax ; Zero ? -273F:6837 78 05 js loc_1311 ; Jump if sign=1 -273F:6839 EB 85 jmp short loc_1304 ; (67C0) -273F:683B loc_1310: ; xref 273F:6813, 6830, 6853 -273F:683B E9 FF54 jmp loc_1301 ; (6792) -273F:683E loc_1311: ; xref 273F:67E3, 681A, 6837, 685A -273F:683E E9 FF24 jmp loc_1297 ; (6765) -273F:6841 loc_1312: ; xref 273F:67BD -273F:6841 BB 33E0 mov bx,33E0h -273F:6844 E8 0409 call sub_166 ; (6C50) -273F:6847 B8 000A mov ax, ACTION_USE -273F:684A E8 A562 call prepare_ask_item_list -273F:684D F7 06 31E4 FFFF test data_31e4, 0FFFFh -273F:6853 74 E6 jz loc_1310 ; Jump if zero -273F:6855 E8 0139 call menu_make_selections -273F:6858 0B C0 or ax,ax ; Zero ? -273F:685A 78 E2 js loc_1311 ; Jump if sign=1 -273F:685C E9 FF61 jmp loc_1304 ; (67C0) - - action_tell endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6765 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:685F sub_157 proc near -273F:685F 83 2E 3380 04 sub data_3380, 4 -273F:6864 8B 1E 3380 mov bx, data_3380 -273F:6868 8B 87 3382 mov ax, data_3382[bx] -273F:686C C7 87 3382 FFFF mov data_3382[bx],0FFFFh -273F:6872 B9 0140 mov cx,140h -273F:6875 50 push ax -273F:6876 33 D2 xor dx,dx ; Zero register -273F:6878 F7 F1 div cx ; ax,dx rem=dx:ax/reg -273F:687A 52 push dx -273F:687B 50 push ax -273F:687C A1 335E mov ax, data_335E -273F:687F 33 D2 xor dx,dx ; Zero register -273F:6881 F7 F1 div cx ; ax,dx rem=dx:ax/reg -273F:6883 5A pop dx -273F:6884 3B C2 cmp ax,dx -273F:6886 74 0B je loc_1313 ; Jump if equal -273F:6888 1E push ds -273F:6889 52 push dx -273F:688A 8E DD mov ds,bp -273F:688C E8 078D call talk_clear_line -273F:688F 58 pop ax -273F:6890 1F pop ds -273F:6891 EB 04 jmp short loc_1314 ; (6897) -273F:6893 loc_1313: ; xref 273F:6886 -273F:6893 0B C0 or ax,ax ; Zero ? -273F:6895 74 03 jz loc_1315 ; Jump if zero -273F:6897 loc_1314: ; xref 273F:6891 -273F:6897 E8 0474 call sub_167 ; (6D0E) -273F:689A loc_1315: ; xref 273F:6895 -273F:689A F7 26 336A mul word ptr ds:[336Ah] ; (273F:336A=40C7h) dx:ax = data * ax -273F:689E 8B F8 mov di,ax -273F:68A0 58 pop ax -273F:68A1 8F 06 335E pop data_335E - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:67F5 - -273F:68A5 sub_158: -273F:68A5 8B 1E 3376 mov bx,data_265 ; (273F:3376=0F632h) -273F:68A9 8E C3 mov es,bx -273F:68AB 81 3E 3368 362D cmp menu_items_proc2, offset vga_menu_items -273F:68B1 75 1D jne loc_1317 ; Jump if not equal -273F:68B3 03 F8 add di,ax -273F:68B5 BB 0140 mov bx,140h -273F:68B8 2B D8 sub bx,ax -273F:68BA BA 0008 mov dx,8 -273F:68BD 32 C0 xor al,al ; Zero register -273F:68BF loc_1316: ; xref 273F:68CC -273F:68BF 57 push di -273F:68C0 8B CB mov cx,bx -273F:68C2 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:68C4 5F pop di -273F:68C5 ú81 C7 0140 add di,data_1458e ; (F632:0140=0) -273F:68C9 83 EA 01 sub dx,1 -273F:68CC 75 F1 jnz loc_1316 ; Jump if not zero -273F:68CE EB 4C jmp short loc_1320 ; (691C) -273F:68D0 loc_1317: ; xref 273F:68B1 -273F:68D0 8A C8 mov cl,al -273F:68D2 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:68D4 24 FC and al,0FCh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 252 - -273F:68D6 80 E1 07 and cl,7 -273F:68D9 03 F8 add di,ax -273F:68DB BA FF00 mov dx,0FF00h -273F:68DE D3 FA sar dx,cl ; Shift w/sign fill -273F:68E0 BB 00A0 mov bx,0A0h -273F:68E3 2B D8 sub bx,ax -273F:68E5 B6 08 mov dh,8 -273F:68E7 57 push di -273F:68E8 loc_1318: ; xref 273F:68FE -273F:68E8 26: 20 15 and es:[di],dl -273F:68EB 26: 20 55 01 and es:[di+1],dl -273F:68EF 26: 20 55 02 and es:[di+2],dl -273F:68F3 26: 20 55 03 and es:[di+3],dl -273F:68F7 ú81 C7 00A0 add di,data_1457e ; (F632:00A0=0) -273F:68FB 80 EE 01 sub dh,1 -273F:68FE 75 E8 jnz loc_1318 ; Jump if not zero -273F:6900 5F pop di -273F:6901 83 C7 04 add di,4 -273F:6904 83 EB 04 sub bx,4 -273F:6907 74 13 jz loc_1320 ; Jump if zero -273F:6909 B2 08 mov dl,8 -273F:690B 32 C0 xor al,al ; Zero register -273F:690D loc_1319: ; xref 273F:691A -273F:690D 57 push di -273F:690E 8B CB mov cx,bx -273F:6910 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:6912 5F pop di -273F:6913 81 C7 00A0 add di,0A0h -273F:6917 80 EA 01 sub dl,1 -273F:691A 75 F1 jnz loc_1319 ; Jump if not zero -273F:691C loc_1320: ; xref 273F:68CE, 6907 -273F:691C 8E C5 mov es,bp -273F:691E 26: C6 06 4BF0 02 mov byte ptr es:data_46e,2 ; (0000:4BF0=28h) -273F:6924 C3 retn - sub_157 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6698, 66DB, 66E0, 6738 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6925 sub_159 proc near -273F:6925 8B 1E 3358 mov bx, data_3358 ; Get the hotspot Id -273F:6929 8B 36 3380 mov si, data_3380 ; Get offset -273F:692D 89 9C 3382 mov data_3382[si], bx ; Store hotspot Id -273F:6931 89 9C 3384 mov word ptr ds:[3384h][si], bx -273F:6935 C7 84 3386 FFFF mov word ptr ds:[3386h][si], 0FFFFh -273F:693B 83 06 3380 04 add data_3380, 4 -273F:6940 1E push ds -273F:6941 8E DD mov ds,bp -273F:6943 E8 A3D9 call get_room_resource_pointer3 ; Get header pointer -273F:6946 8B 44 02 mov ax, [si+HSH_NAME] -273F:6949 80 E4 1F and ah, 1Fh -273F:694C 1F pop ds -273F:694D BF 30D4 mov di, offset hotspot_display_buffer -273F:6950 E8 13E7 call decode_string ; Decode hotspot name -273F:6953 BB 30D4 mov bx, offset hotspot_display_buffer -273F:6956 E8 02F7 call sub_166 ; Displays name -273F:6959 C3 retn - sub_159 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6683, 6754 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:695A popmenu_populate_list proc near - -273F:695A C7 06 31E4 0000 mov popmenu_entry_count, 0 -273F:6960 úBF 31E6 mov di, offset popmenu_entry_contents -273F:6963 úBE 2D5F mov si, offset actions_list -273F:6966 1E push ds -273F:6967 07 pop es -273F:6968 8E DD mov ds,bp -273F:696A 8B E8 mov bp,ax -273F:696C B9 0019 mov cx, NUM_ACTIONS ; 19h - -273F:696F locloop_1321: -273F:696F D1 DA rcr dx,1 ; Rotate thru carry -273F:6971 D1 DD rcr bp,1 ; Rotate thru carry -273F:6973 73 0F jnc loc_1323 ; If bit wasn't set, don't add - -273F:6975 A5 movsw ; Copy over action Id -273F:6976 loc_1322: -273F:6976 AC lodsb ; Copy over action name -273F:6977 AA stosb -273F:6978 0A C0 or al,al -273F:697A 75 FA jnz loc_1322 -273F:697C 26: 83 06 31E4 01 add es:popmenu_entry_count, 1 ; Increment # actions -273F:6982 EB 06 jmp short loc_1325 - -273F:6984 loc_1323: -273F:6984 AD lodsw ; Skip over action Id -273F:6985 loc_1324: -273F:6985 AC lodsb ; Scan over action name -273F:6986 0A C0 or al,al -273F:6988 75 FB jnz loc_1324 -273F:698A loc_1325: -273F:698A E2 E3 loop locloop_1321 ; Loop through remaining actions - -273F:698C 8C DD mov bp,ds -273F:698E 06 push es -273F:698F 1F pop ds -273F:6990 C3 retn - - popmenu_populate_list endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6686, 66A9, 66BE, 66F7, 6757, 6797, 67DE - ; 6815, 6832, 6855 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - menu_make_selections proc near - -273F:6991 8B 36 3380 mov si, data_3380 -273F:6995 F6 84 3383 80 test byte ptr ds:[3383h][si],80h ; (273F:3383=74h) -273F:699A 74 36 jz loc_1327 ; Jump if zero -273F:699C C6 06 337D 00 mov data_269,0 ; (273F:337D=0) -273F:69A1 E8 01E6 call sub_165 ; (6B8A) -273F:69A4 E8 003A call menu_make_selections_select -273F:69A7 0B C0 or ax,ax ; Zero ? -273F:69A9 78 26 js loc_ret_1326 ; Jump if sign=1 -273F:69AB 3D 7CFF cmp ax,7CFFh -273F:69AE 74 21 je loc_ret_1326 ; Jump if equal -273F:69B0 FF 36 335E push data_335E -273F:69B4 E8 0299 call sub_166 ; (6C50) -273F:69B7 5B pop bx -273F:69B8 8B 36 3380 mov si, data_3380 -273F:69BC 89 9C 3382 mov data_3382[si],bx -273F:69C0 89 84 3384 mov word ptr ds:[3384h][si],ax ; (273F:3384=810Ch) -273F:69C4 83 C6 04 add si,4 -273F:69C7 C7 84 3382 FFFF mov data_3382[si], 0FFFFh -273F:69CD 89 36 3380 mov data_3380, si - -273F:69D1 loc_ret_1326: ; xref 273F:69A9, 69AE -273F:69D1 C3 retn -273F:69D2 loc_1327: ; xref 273F:699A -273F:69D2 83 06 3380 04 add data_3380, 4 -273F:69D7 8B 84 3384 mov ax,word ptr ds:[3384h][si] ; (273F:3384=810Ch) -273F:69DB C6 06 337D 01 mov data_269,1 ; (273F:337D=0) -273F:69E0 C3 retn - - menu_make_selections endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6726, 69A4 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - menu_make_selections_select proc near - -273F:69E1 A1 3362 mov ax, popmenu_current_index -273F:69E4 3B 06 334C cmp ax, popmenu_num_entries -273F:69E8 72 06 jb loc_1328 ; Jump if below -273F:69EA C7 06 3362 0000 mov popmenu_current_index, 0 -273F:69F0 loc_1328: ; xref 273F:69E8 -273F:69F0 A1 334C mov ax, popmenu_num_entries -273F:69F3 D0 E8 shr al,1 ; Shift w/zeros fill -273F:69F5 04 01 add al,1 -273F:69F7 3C 06 cmp al,6 -273F:69F9 72 02 jb loc_1329 ; Jump if below -273F:69FB B0 05 mov al,5 -273F:69FD loc_1329: ; xref 273F:69F9 -273F:69FD A3 335C mov popmenu_num_visible_items, ax -273F:6A00 1E push ds -273F:6A01 55 push bp -273F:6A02 50 push ax -273F:6A03 FF 36 334E push word ptr ds:[334Eh] ; (273F:334E=83E4h) -273F:6A07 8E DD mov ds,bp -273F:6A09 FF 16 0752 call word ptr ds:data_16e ; (0000:0752=0) -273F:6A0D E8 AAFE call room_add_animations -273F:6A10 5B pop bx -273F:6A11 5A pop dx -273F:6A12 FF 16 0778 call word ptr ds:data_21e ; (0000:0778=5253h) -273F:6A16 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:6A1B 75 28 jne loc_1330 ; Jump if not equal - -273F:6A1D 5D pop bp -273F:6A1E 1F pop ds -273F:6A1F E8 00E1 call menu_create_popmenu -273F:6A22 1E push ds -273F:6A23 55 push bp -273F:6A24 8E DD mov ds,bp -273F:6A26 FF 16 0744 call [show_screen_proc] -273F:6A2A 5D pop bp -273F:6A2B 1F pop ds -273F:6A2C 8A 1E 334E mov bl,byte ptr ds:[334Eh] ; (273F:334E=0E4h) -273F:6A30 8A 16 335C mov dl,byte ptr [popmenu_num_visible_items] -273F:6A34 1E push ds -273F:6A35 55 push bp -273F:6A36 8E DD mov ds,bp -273F:6A38 FF 16 0778 call word ptr ds:data_21e ; (0000:0778=5253h) -273F:6A3C 5D pop bp -273F:6A3D 1F pop ds -273F:6A3E E8 00C2 call menu_create_popmenu -273F:6A41 1E push ds -273F:6A42 55 push bp -273F:6A43 8E DD mov ds,bp -273F:6A45 loc_1330: ; xref 273F:6A1B -273F:6A45 FF 16 0744 call [show_screen_proc] -273F:6A49 5D pop bp -273F:6A4A 1F pop ds -273F:6A4B B8 000B mov ax,0Bh -273F:6A4E CD 33 int 33h ; Mouse driver ax=func 000Bh - ; read motion counters, cx & dx -273F:6A50 C7 06 3366 0000 mov mouse_y_change, 0 -273F:6A56 8E C5 mov es,bp -273F:6A58 26: C6 06 11DA 00 mov mouse_buttons2, 0 -273F:6A5E EB 07 jmp short loc_1332 ; (6A67) -273F:6A60 loc_1331: ; xref 273F:6AA3, 6ACC, 6AD9 -273F:6A60 úE8 00A0 call menu_create_popmenu -273F:6A63 FF 16 3368 call [menu_items_proc2] ; Add the menu items -273F:6A67 loc_1332: -273F:6A67 F7 06 334C FFFF test popmenu_num_entries, 0FFFFh ; Any entries at all? -273F:6A6D 74 6C jz sub162_abort ; No, so abort -273F:6A6F 8E C5 mov es,bp -273F:6A71 26: F6 06 11DA FF test mouse_buttons2, 0FFh -273F:6A77 75 6C jnz loc_1339 ; Jump if not zero -273F:6A79 E8 2AA4 call check_keypress ; Any key pressed? -273F:6A7C 74 1C jz loc_1333 ; No, so skip kbd code -273F:6A7E 8A D8 mov bl,al -273F:6A80 B8 FFFF mov ax,0FFFFh ; Constant for moving up -273F:6A83 80 FB C8 cmp bl,0C8h ; Up arrow pressed? -273F:6A86 74 46 je sub162_moveup ; Yes, so handle it -273F:6A88 B8 0001 mov ax,1 ; Constant for moving down -273F:6A8B 80 FB D0 cmp bl,0D0h ; Down arrow pressed? -273F:6A8E 74 29 je sub162_movedown ; Yes, so handle it -273F:6A90 80 FB 0D cmp bl,0Dh ; Enter key pressed? -273F:6A93 74 5A je sub162_select ; Yes, so handle it -273F:6A95 80 FB 20 cmp bl,20h ; ' ' -273F:6A98 74 41 je sub162_abort -273F:6A9A loc_1333: -273F:6A9A 33 D2 xor dx,dx ; Zero register -273F:6A9C B8 000B mov ax,0Bh -273F:6A9F CD 33 int 33h ; Mouse driver ax=func 000Bh - ; read motion counters, cx & dx -273F:6AA1 0B D2 or dx,dx ; Zero ? -273F:6AA3 74 BB jz loc_1331 ; Jump if zero -273F:6AA5 03 16 3366 add dx, mouse_y_change -273F:6AA9 8B C2 mov ax,dx -273F:6AAB 99 cwd ; Word to double word -273F:6AAC úBB 000A mov bx,0Ah ; (273F:000A=23h) -273F:6AAF F7 FB idiv bx ; ax,dx rem=dx:ax/reg -273F:6AB1 89 16 3366 mov mouse_y_change, dx -273F:6AB5 0B C0 or ax,ax ; Zero ? -273F:6AB7 78 15 js sub162_moveup -273F:6AB9 sub162_movedown: -273F:6AB9 03 06 3362 add ax, popmenu_current_index -273F:6ABD 3B 06 334C cmp ax, popmenu_num_entries -273F:6AC1 72 06 jb loc_1335 ; Jump if below -273F:6AC3 A1 334C mov ax, popmenu_num_entries -273F:6AC6 2D 0001 sub ax,1 -273F:6AC9 loc_1335: ; xref 273F:6AC1 -273F:6AC9 A3 3362 mov popmenu_current_index, ax -273F:6ACC EB 92 jmp short loc_1331 ; (6A60) -273F:6ACE sub162_moveup: -273F:6ACE 03 06 3362 add ax, popmenu_current_index -273F:6AD2 72 02 jc loc_1337 -273F:6AD4 33 C0 xor ax,ax ; Already at first item -273F:6AD6 loc_1337: -273F:6AD6 A3 3362 mov popmenu_current_index, ax -273F:6AD9 EB 85 jmp short loc_1331 ; (6A60) -273F:6ADB sub162_abort: -273F:6ADB A1 3364 mov ax, popmenu_prior_index ; Reset index to prior one -273F:6ADE A3 3362 mov popmenu_current_index, ax -273F:6AE1 B8 FFFF mov ax,0FFFFh -273F:6AE4 C3 retn -273F:6AE5 loc_1339: ; xref 273F:6A77 -273F:6AE5 8E C5 mov es,bp -273F:6AE7 26: F6 06 11DA 02 test byte ptr es:data_32e,2 ; (0000:11DA=0D3h) -273F:6AED 75 EC jnz sub162_abort -273F:6AEF sub162_select: -273F:6AEF A1 3362 mov ax, popmenu_current_index ; Backup selected index -273F:6AF2 A3 3364 mov popmenu_prior_index, ax -273F:6AF5 C7 06 3362 0000 mov popmenu_current_index, 0 -273F:6AFB 8B 1E 3372 mov bx,word ptr ds:[3372h] ; (273F:3372=0C31Fh) -273F:6AFF 8B 47 FD mov ax,[bx-3] -273F:6B02 C3 retn - - menu_make_selections_select endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6A1F, 6A3E, 6A60 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6B03 menu_create_popmenu proc near -273F:6B03 A1 3376 mov ax,data_265 ; (273F:3376=0F632h) -273F:6B06 8E C0 mov es,ax -273F:6B08 55 push bp -273F:6B09 8B 36 3362 mov si, popmenu_current_index -273F:6B0D D1 E6 shl si,1 ; Shift w/zeros fill -273F:6B0F D1 E6 shl si,1 ; Shift w/zeros fill -273F:6B11 ú81 C6 3174 add si,3174h ; (273F:3174=7) -273F:6B15 8B 3E 335A mov di,word ptr ds:[335Ah] ; (273F:335A=0ACA4h) -273F:6B19 8B 2E 337B mov bp,data_267 ; (273F:337B=4EB9h) -273F:6B1D B8 0005 mov ax,5 -273F:6B20 2B 06 335C sub ax, popmenu_num_visible_items -273F:6B24 74 0E jz loc_1341 ; Jump if zero -273F:6B26 8B D8 mov bx,ax -273F:6B28 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:6B2A D1 E3 shl bx,1 ; Shift w/zeros fill -273F:6B2C 03 F3 add si,bx -273F:6B2E F7 26 336A mul word ptr ds:[336Ah] ; (273F:336A=40C7h) dx:ax = data * ax -273F:6B32 03 F8 add di,ax -273F:6B34 loc_1341: ; xref 273F:6B24 -273F:6B34 8B 0E 335C mov cx, popmenu_num_visible_items -273F:6B38 D0 E1 shl cl,1 ; Shift w/zeros fill -273F:6B3A 80 E9 01 sub cl,1 - -273F:6B3D locloop_1342: ; xref 273F:6B4D -273F:6B3D 56 push si -273F:6B3E 57 push di -273F:6B3F 8B 34 mov si,[si] -273F:6B41 E8 000D call sub_164 ; (6B51) -273F:6B44 5F pop di -273F:6B45 5E pop si -273F:6B46 03 3E 336A add di,word ptr ds:[336Ah] ; (273F:336A=40C7h) -273F:6B4A 83 C6 04 add si,4 -273F:6B4D E2 EE loop locloop_1342 ; Loop if cx > 0 - -273F:6B4F 5D pop bp -273F:6B50 C3 retn - menu_create_popmenu endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6B41 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6B51 sub_164 proc near -273F:6B51 51 push cx -273F:6B52 AC lodsb ; String [si] to al -273F:6B53 8B 16 33DE mov dx,word ptr ds:[33DEh] ; (273F:33DE=0F300h) -273F:6B57 3B 0E 335C cmp cx, popmenu_num_visible_items -273F:6B5B 75 08 jne loc_1343 ; Jump if not equal -273F:6B5D 8B 16 33DC mov dx,word ptr ds:[33DCh] ; (273F:33DC=7BB9h) -273F:6B61 89 36 3372 mov word ptr ds:[3372h],si ; (273F:3372=0C31Fh) -273F:6B65 loc_1343: ; xref 273F:6B5B -273F:6B65 8A 0E 334E mov cl,byte ptr ds:[334Eh] ; (273F:334E=0E4h) -273F:6B69 32 ED xor ch,ch ; Zero register - -273F:6B6B locloop_1344: ; xref 273F:6B78 -273F:6B6B AC lodsb ; String [si] to al -273F:6B6C 0A C0 or al,al ; Zero ? -273F:6B6E 74 0C jz locloop_1345 ; Jump if zero -273F:6B70 FF 16 336C call word ptr ds:[336Ch] ; (273F:336C=8301h) -273F:6B74 03 3E 336E add di,word ptr ds:[336Eh] ; (273F:336E=1EDh) -273F:6B78 E2 F1 loop locloop_1344 ; Loop if cx > 0 - -273F:6B7A EB 0C jmp short loc_1346 ; (6B88) - -273F:6B7C locloop_1345: ; xref 273F:6B6E, 6B86 -273F:6B7C B0 20 mov al,20h ; ' ' -273F:6B7E FF 16 336C call word ptr ds:[336Ch] ; (273F:336C=8301h) -273F:6B82 03 3E 336E add di,word ptr ds:[336Eh] ; (273F:336E=1EDh) -273F:6B86 E2 F4 loop locloop_1345 ; Loop if cx > 0 - -273F:6B88 loc_1346: ; xref 273F:6B7A -273F:6B88 59 pop cx -273F:6B89 C3 retn - sub_164 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:69A1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6B8A sub_165 proc near -273F:6B8A 55 push bp -273F:6B8B 1E push ds -273F:6B8C 07 pop es -273F:6B8D úBE 31E4 mov si, popmenu_entry_count -273F:6B90 AD lodsw ; String [si] to ax -273F:6B91 8B C8 mov cx,ax -273F:6B93 89 0E 334C mov popmenu_num_entries, cx -273F:6B97 0B C9 or cx,cx ; Zero ? -273F:6B99 75 02 jnz loc_1347 ; Jump if not zero -273F:6B9B 5D pop bp -273F:6B9C C3 retn -273F:6B9D loc_1347: ; xref 273F:6B99 -273F:6B9D C7 06 334E 0004 mov word ptr ds:[334Eh],4 ; (273F:334E=83E4h) -273F:6BA3 úBF 30D4 mov di,30D4h ; (273F:30D4=11h) - -273F:6BA6 locloop_1348: ; xref 273F:6C14 -273F:6BA6 83 C6 02 add si,2 -273F:6BA9 89 75 04 mov [di+4],si -273F:6BAC C7 45 06 0000 mov word ptr [di+6],0 -273F:6BB1 51 push cx -273F:6BB2 B9 0004 mov cx,4 -273F:6BB5 8B EF mov bp,di - -273F:6BB7 locloop_1349: ; xref 273F:6BBD -273F:6BB7 AC lodsb ; String [si] to al -273F:6BB8 AA stosb ; Store al to es:[di] -273F:6BB9 0A C0 or al,al ; Zero ? -273F:6BBB 74 05 jz loc_1351 ; Jump if zero -273F:6BBD E2 F8 loop locloop_1349 ; Loop if cx > 0 - -273F:6BBF EB 03 jmp short loc_1352 ; (6BC4) - -273F:6BC1 locloop_1350: ; xref 273F:6BC2 -273F:6BC1 AA stosb ; Store al to es:[di] -273F:6BC2 loc_1351: ; xref 273F:6BBB -273F:6BC2 E2 FD loop locloop_1350 ; Loop if cx > 0 - -273F:6BC4 loc_1352: ; xref 273F:6BBF -273F:6BC4 59 pop cx -273F:6BC5 8B 45 FC mov ax,[di-4] -273F:6BC8 8B 55 FE mov dx,[di-2] -273F:6BCB úBB 30D4 mov bx,30D4h ; (273F:30D4=11h) -273F:6BCE loc_1353: ; xref 273F:6BF8 -273F:6BCE ú3B DD cmp bx,bp -273F:6BD0 74 28 je loc_1357 ; Jump if equal -273F:6BD2 3A 07 cmp al,[bx] -273F:6BD4 72 1B jb loc_1355 ; Jump if below -273F:6BD6 75 13 jnz loc_1354 ; Jump if not zero -273F:6BD8 3A 67 01 cmp ah,[bx+1] -273F:6BDB 72 14 jb loc_1355 ; Jump if below -273F:6BDD 75 0C jnz loc_1354 ; Jump if not zero -273F:6BDF 3A 57 02 cmp dl,[bx+2] -273F:6BE2 72 0D jb loc_1355 ; Jump if below -273F:6BE4 75 05 jnz loc_1354 ; Jump if not zero -273F:6BE6 3A 77 03 cmp dh,[bx+3] -273F:6BE9 72 06 jb loc_1355 ; Jump if below -273F:6BEB loc_1354: ; xref 273F:6BD6, 6BDD, 6BE4 -273F:6BEB 83 45 02 04 add word ptr [di+2],4 -273F:6BEF EB 04 jmp short loc_1356 ; (6BF5) -273F:6BF1 loc_1355: ; xref 273F:6BD4, 6BDB, 6BE2, 6BE9 -273F:6BF1 83 47 06 04 add word ptr [bx+6],4 -273F:6BF5 loc_1356: ; xref 273F:6BEF -273F:6BF5 83 C3 08 add bx,8 -273F:6BF8 EB D4 jmp short loc_1353 ; (6BCE) -273F:6BFA loc_1357: ; xref 273F:6BD0 -273F:6BFA B4 01 mov ah,1 -273F:6BFC 83 EE 01 sub si,1 -273F:6BFF loc_1358: ; xref 273F:6C05 -273F:6BFF 80 C4 01 add ah,1 -273F:6C02 AC lodsb ; String [si] to al -273F:6C03 0A C0 or al,al ; Zero ? -273F:6C05 75 F8 jnz loc_1358 ; Jump if not zero -273F:6C07 3A 26 334E cmp ah,byte ptr ds:[334Eh] ; (273F:334E=0E4h) -273F:6C0B 72 04 jb loc_1359 ; Jump if below -273F:6C0D 88 26 334E mov byte ptr ds:[334Eh],ah ; (273F:334E=0E4h) -273F:6C11 loc_1359: ; xref 273F:6C0B -273F:6C11 83 C7 04 add di,4 -273F:6C14 E2 90 loop locloop_1348 ; Loop if cx > 0 - -273F:6C16 8B 0E 334C mov cx, popmenu_num_entries -273F:6C1A 51 push cx -273F:6C1B 81 EF 30D4 sub di,30D4h -273F:6C1F D1 EF shr di,1 ; Shift w/zeros fill -273F:6C21 ú81 C7 3184 add di,3184h ; (273F:3184=33h) -273F:6C25 B8 33E2 mov ax,33E2h -273F:6C28 B9 0008 mov cx,8 -273F:6C2B F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:6C2D úBE 30D8 mov si,30D8h ; (273F:30D8=0FFh) -273F:6C30 úBF 3174 mov di,3174h ; (273F:3174=7) -273F:6C33 B8 33E2 mov ax,33E2h -273F:6C36 B9 0008 mov cx,8 -273F:6C39 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:6C3B 59 pop cx -273F:6C3C 33 D2 xor dx,dx ; Zero register - -273F:6C3E locloop_1360: ; xref 273F:6C4C -273F:6C3E AD lodsw ; String [si] to ax -273F:6C3F 8B 1C mov bx,[si] -273F:6C41 89 01 mov [bx+di],ax -273F:6C43 89 51 02 mov [bx+di+2],dx -273F:6C46 83 C6 06 add si,6 -273F:6C49 83 C2 01 add dx,1 -273F:6C4C E2 F0 loop locloop_1360 ; Loop if cx > 0 - -273F:6C4E 5D pop bp - -273F:6C4F loc_ret_1361: ; xref 273F:6C55 -273F:6C4F C3 retn - sub_165 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:66D8, 66E6, 6710, 673E, 67FB, 6804, 6821 - ; 6844, 6956, 69B4 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6C50 sub_166 proc near -273F:6C50 F6 06 337D FF test data_269,0FFh ; (273F:337D=0) -273F:6C55 75 F8 jnz loc_ret_1361 ; Jump if not zero -273F:6C57 8E C5 mov es,bp -273F:6C59 26: C6 06 4BF0 02 mov byte ptr es:data_46e,2 ; (0000:4BF0=28h) -273F:6C5F 50 push ax -273F:6C60 53 push bx -273F:6C61 8B F3 mov si,bx -273F:6C63 A1 3370 mov ax,word ptr ds:[3370h] ; (273F:3370=0E375h) -273F:6C66 8E C0 mov es,ax -273F:6C68 33 D2 xor dx,dx ; Zero register -273F:6C6A B1 03 mov cl,3 -273F:6C6C loc_1362: ; xref 273F:6C7A -273F:6C6C úAC lodsb ; String [si] to al -273F:6C6D 2C 20 sub al,20h ; ' ' -273F:6C6F 72 0B jc loc_1363 ; Jump if carry Set -273F:6C71 32 E4 xor ah,ah ; Zero register -273F:6C73 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:6C75 8B D8 mov bx,ax -273F:6C77 26: 02 17 add dl,es:[bx] -273F:6C7A EB F0 jmp short loc_1362 ; (6C6C) -273F:6C7C loc_1363: ; xref 273F:6C6F -273F:6C7C 26: 02 16 0000 add dl,es:data_1454e ; (E375:0000=0) -273F:6C81 A1 335E mov ax, data_335E -273F:6C84 3D 0001 cmp ax,1 -273F:6C87 75 09 jne loc_1364 ; Jump if not equal -273F:6C89 1E push ds -273F:6C8A 50 push ax -273F:6C8B 8E DD mov ds,bp -273F:6C8D E8 0375 call menubar_clear_image -273F:6C90 58 pop ax -273F:6C91 1F pop ds -273F:6C92 loc_1364: ; xref 273F:6C87 -273F:6C92 BB 0140 mov bx,140h -273F:6C95 8A CA mov cl,dl -273F:6C97 32 ED xor ch,ch ; Zero register -273F:6C99 33 D2 xor dx,dx ; Zero register -273F:6C9B F7 F3 div bx ; ax,dx rem=dx:ax/reg -273F:6C9D 8B F2 mov si,dx -273F:6C9F 03 F1 add si,cx -273F:6CA1 3B F3 cmp si,bx -273F:6CA3 72 17 jb loc_1365 ; Jump if below -273F:6CA5 05 0001 add ax,1 -273F:6CA8 50 push ax -273F:6CA9 50 push ax -273F:6CAA 53 push bx -273F:6CAB 51 push cx -273F:6CAC 1E push ds -273F:6CAD 8E DD mov ds,bp -273F:6CAF E8 036A call talk_clear_line -273F:6CB2 1F pop ds -273F:6CB3 59 pop cx -273F:6CB4 5B pop bx -273F:6CB5 58 pop ax -273F:6CB6 F7 E3 mul bx ; dx:ax = reg * ax -273F:6CB8 A3 335E mov data_335E, ax -273F:6CBB 58 pop ax -273F:6CBC loc_1365: ; xref 273F:6CA3 -273F:6CBC 01 0E 335E add data_335E, cx -273F:6CC0 0B C0 or ax,ax ; Zero ? -273F:6CC2 74 03 jz loc_1366 ; Jump if zero -273F:6CC4 E8 0047 call sub_167 ; (6D0E) -273F:6CC7 loc_1366: ; xref 273F:6CC2 -273F:6CC7 8B CA mov cx,dx -273F:6CC9 F7 26 336A mul word ptr ds:[336Ah] ; (273F:336A=40C7h) dx:ax = data * ax -273F:6CCD 8B F8 mov di,ax -273F:6CCF 8B 1E 3376 mov bx,data_265 ; (273F:3376=0F632h) -273F:6CD3 8E C3 mov es,bx -273F:6CD5 B7 06 mov bh,6 -273F:6CD7 5E pop si -273F:6CD8 81 3E 3368 362D cmp menu_items_proc2, offset vga_menu_items -273F:6CDE 75 04 jne loc_1367 ; Jump if not equal -273F:6CE0 03 F9 add di,cx -273F:6CE2 EB 0C jmp short loc_1368 ; (6CF0) -273F:6CE4 loc_1367: ; xref 273F:6CDE -273F:6CE4 8B C1 mov ax,cx -273F:6CE6 80 E1 07 and cl,7 -273F:6CE9 25 01F8 and ax,1F8h -273F:6CEC D1 E8 shr ax,1 ; Shift w/zeros fill -273F:6CEE 03 F8 add di,ax -273F:6CF0 loc_1368: ; xref 273F:6CE2, 6D0A -273F:6CF0 úAC lodsb ; String [si] to al -273F:6CF1 2C 20 sub al,20h ; ' ' -273F:6CF3 72 17 jc loc_1369 ; Jump if carry Set -273F:6CF5 1E push ds -273F:6CF6 55 push bp -273F:6CF7 8B 2E 3374 mov bp,data_264 ; (273F:3374=0FF32h) -273F:6CFB 1F pop ds -273F:6CFC 8B 1E 076E mov bx, data_571 -273F:6D00 8A 7F 04 mov bh,[bx+4] -273F:6D03 FF 16 075A call [display2_character_proc] -273F:6D07 8C DD mov bp,ds -273F:6D09 1F pop ds -273F:6D0A EB E4 jmp short loc_1368 ; (6CF0) -273F:6D0C loc_1369: ; xref 273F:6CF3 -273F:6D0C 58 pop ax -273F:6D0D C3 retn - sub_166 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6897, 6CC4 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6D0E sub_167 proc near -273F:6D0E 50 push ax -273F:6D0F 51 push cx -273F:6D10 52 push dx -273F:6D11 1E push ds -273F:6D12 55 push bp -273F:6D13 8E DD mov ds,bp -273F:6D15 33 C0 xor ax,ax ; Zero register -273F:6D17 33 DB xor bx,bx ; Zero register -273F:6D19 BD 0027 mov bp,27h -273F:6D1C BA 0001 mov dx,1 -273F:6D1F B9 0001 mov cx,1 -273F:6D22 E8 9E5E call sub_21 ; (0B83) -273F:6D25 5D pop bp -273F:6D26 1F pop ds -273F:6D27 5A pop dx -273F:6D28 59 pop cx -273F:6D29 58 pop ax -273F:6D2A C3 retn - sub_167 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:67DB - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6D2B sub_168 proc near -273F:6D2B 1E push ds -273F:6D2C 1E push ds -273F:6D2D 07 pop es -273F:6D2E 8E DD mov ds,bp -273F:6D30 úBF 31E4 mov di, offset data_31e4 -273F:6D33 0B C9 or cx,cx ; Zero ? -273F:6D35 79 05 jns loc_1370 ; Jump if not sign -273F:6D37 8A 4C FF mov cl,[si-1] -273F:6D3A 32 ED xor ch,ch ; Zero register -273F:6D3C loc_1370: ; xref 273F:6D35 -273F:6D3C 8B C1 mov ax,cx -273F:6D3E AB stosw ; Store ax to es:[di] - -273F:6D3F locloop_1371: ; xref 273F:6D4B -273F:6D3F 8B 07 mov ax,[bx] -273F:6D41 83 C3 02 add bx,2 -273F:6D44 AB stosw ; Store ax to es:[di] -273F:6D45 loc_1372: ; xref 273F:6D49 -273F:6D45 AC lodsb ; String [si] to al -273F:6D46 AA stosb ; Store al to es:[di] -273F:6D47 0A C0 or al,al ; Zero ? -273F:6D49 75 FA jnz loc_1372 ; Jump if not zero -273F:6D4B E2 F2 loop locloop_1371 ; Loop if cx > 0 - -273F:6D4D 1F pop ds -273F:6D4E C3 retn - sub_168 endp - -273F:6D4F 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - menubar_handle_menu proc near - -273F:6D50 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:6D55 C6 06 38B0 01 mov data_781, 1 -273F:6D5A E8 B218 call show_arrow_cursor -273F:6D5D E8 0287 call sub_173 ; (6FE7) -273F:6D60 C7 06 4BF1 0000 mov menuitem_table_location, 0 -273F:6D66 loc_1374: ; xref 273F:6E6A, 6EA4 -273F:6D66 úE8 27B7 call check_keypress ; (9520) -273F:6D69 74 71 jz loc_1380 ; Jump if zero -273F:6D6B 3C C8 cmp al,0C8h -273F:6D6D 75 1A jne loc_1375 ; Jump if not equal -273F:6D6F 83 2E 11D3 08 sub mouse_y, 8 -273F:6D74 83 2E 11D8 08 sub mouse_y2, 8 -273F:6D79 73 5D jnc loc_1379 ; Jump if carry=0 -273F:6D7B C7 06 11D8 0004 mov mouse_y2, 4 -273F:6D81 C7 06 11D3 0004 mov mouse_y, 4 -273F:6D87 EB 4F jmp short loc_1379 ; (6DD8) -273F:6D89 loc_1375: ; xref 273F:6D6D -273F:6D89 3C D0 cmp al,0D0h -273F:6D8B 75 13 jne loc_1376 ; Jump if not equal -273F:6D8D 83 3E 11D8 64 cmp mouse_y2, 64h -273F:6D92 73 44 jae loc_1379 ; Jump if above or = -273F:6D94 83 06 11D8 08 add mouse_y2, 8 -273F:6D99 83 06 11D3 08 add mouse_y, 8 -273F:6D9E EB 38 jmp short loc_1379 ; (6DD8) -273F:6DA0 loc_1376: ; xref 273F:6D8B -273F:6DA0 3C CB cmp al,0CBh -273F:6DA2 75 13 jne loc_1377 ; Jump if not equal -273F:6DA4 83 3E 11D6 15 cmp mouse_x2, 15h -273F:6DA9 72 2D jb loc_1379 ; Jump if below -273F:6DAB 83 2E 11D6 14 sub mouse_x2, 14h -273F:6DB0 83 2E 11D1 14 sub mouse_x, 14h -273F:6DB5 EB 21 jmp short loc_1379 ; (6DD8) -273F:6DB7 loc_1377: ; xref 273F:6DA2 -273F:6DB7 3C CD cmp al,0CDh -273F:6DB9 75 14 jne loc_1378 ; Jump if not equal -273F:6DBB 81 3E 11D6 0135 cmp mouse_x2, 135h -273F:6DC1 73 15 jae loc_1379 ; Jump if above or = -273F:6DC3 83 06 11D6 14 add mouse_x2, 14h -273F:6DC8 83 06 11D1 14 add mouse_x, 14h -273F:6DCD EB 09 jmp short loc_1379 ; (6DD8) -273F:6DCF loc_1378: ; xref 273F:6DB9 -273F:6DCF 3C 0D cmp al,0Dh -273F:6DD1 75 09 jne loc_1380 ; Jump if not equal -273F:6DD3 C6 06 11D5 00 mov mouse_buttons, 0 -273F:6DD8 loc_1379: ; xref 273F:6D79, 6D87, 6D92, 6D9E - ; 6DA9, 6DB5, 6DC1, 6DCD -273F:6DD8 FF 16 075E call [show_cursor_proc] -273F:6DDC loc_1380: ; xref 273F:6D69, 6DD1 -273F:6DDC A1 11D8 mov ax, mouse_y2 -273F:6DDF A3 4BF6 mov word ptr ds:[4BF6h],ax ; (273F:4BF6=0C683h) -273F:6DE2 A1 11D6 mov ax, mouse_x2 -273F:6DE5 A3 4BF8 mov data_unk1, ax -273F:6DE8 A0 11D5 mov al, mouse_buttons -273F:6DEB A2 4BFA mov mouse_buttons_temp, al -273F:6DEE F6 06 4BF0 FF test byte ptr ds:[4BF0h],0FFh ; (273F:4BF0=3) -273F:6DF3 75 07 jnz loc_1381 ; Jump if not zero -273F:6DF5 F6 06 4BF5 FF test byte ptr ds:[4BF5h],0FFh ; (273F:4BF5=0F5h) -273F:6DFA 74 09 jz loc_1382 ; Jump if zero -273F:6DFC loc_1381: ; xref 273F:6DF3 -273F:6DFC FF 16 0744 call word ptr [show_screen_proc] -273F:6E00 C6 06 4BF5 00 mov byte ptr ds:[4BF5h],0 ; (273F:4BF5=0F5h) -273F:6E05 loc_1382: -273F:6E05 A1 4CE4 mov ax, data_segment2 ; Stores off-screen copy of menubar -273F:6E08 8E C0 mov es,ax -273F:6E0A F6 06 4BFA FF test mouse_buttons_temp, 0FFh ; Mouse button released? -273F:6E0F 74 5C jz loc_1390 ; Yes -273F:6E11 83 3E 4BF6 08 cmp word ptr ds:[4BF6h],8 -273F:6E16 72 08 jb loc_1383 ; Jump if below -273F:6E18 F7 06 4BF1 FFFF test menuitem_table_location, 0FFFFh -273F:6E1E 75 69 jnz loc_1392 ; Jump if not zero -273F:6E20 loc_1383: ; xref 273F:6E16 -273F:6E20 úBE 4C0B mov si, offset menuitem_table_info -273F:6E23 A1 4BF8 mov ax, data_unk1 -273F:6E26 B9 0004 mov cx, MENUITEM_NUM_MENUS ; 4 tables - -273F:6E29 locloop_1384: ; xref 273F:6E3C -273F:6E29 F7 44 0A FFFF test word ptr [si+0Ah],0FFFFh -273F:6E2E 74 09 jz loc_1385 ; Jump if zero -273F:6E30 3B 04 cmp ax,[si] -273F:6E32 72 0A jb loc_1386 ; Jump if below -273F:6E34 3B 44 02 cmp ax,[si+2] -273F:6E37 72 07 jb loc_1387 ; Jump if below - -273F:6E39 loc_1385: ; table diff is 0Eh -273F:6E39 83 C6 0E add si, offset menuitem_table_file - offset menuitem_table_info -273F:6E3C E2 EB loop locloop_1384 ; Loop if cx > 0 - -273F:6E3E loc_1386: ; xref 273F:6E32 -273F:6E3E 33 F6 xor si,si ; Zero register -273F:6E40 loc_1387: ; xref 273F:6E37 -273F:6E40 3B 36 4BF1 cmp si, menuitem_table_location -273F:6E44 74 24 je loc_1389 ; Jump if equal -273F:6E46 56 push si -273F:6E47 FF 16 0752 call [show_compressed_screen_proc] -273F:6E4B E8 A6C0 call room_add_animations -273F:6E4E 5E pop si -273F:6E4F 0B F6 or si,si ; Zero ? -273F:6E51 74 06 jz loc_1388 ; Jump if zero -273F:6E53 E8 013C call toggle_menu_highlight -273F:6E56 E8 00B1 call menubar_create_menu -273F:6E59 loc_1388: ; xref 273F:6E51 -273F:6E59 C7 06 4BF3 0000 mov word ptr ds:[4BF3h],0 ; (273F:4BF3=3E6h) -273F:6E5F 87 36 4BF1 xchg menuitem_table_location, si -273F:6E63 0B F6 or si,si ; Menu currently visible? -273F:6E65 74 03 jz loc_1389 ; No, so skip removing it -273F:6E67 E8 0128 call toggle_menu_highlight -273F:6E6A loc_1389: ; xref 273F:6E44, 6E65 -273F:6E6A E9 FEF9 jmp loc_1374 ; (6D66) -273F:6E6D loc_1390: ; xref 273F:6E0F -273F:6E6D E8 004C call sub_169 ; (6EBC) - -; At this point a menu item has been selected. I suspect that: -; ax=item index in menu (1 to 3), BP=> 2=Info, 4=File, 3=>Help -; If no item selected, then bp = 0 & ax = 0 - -273F:6E70 0B C0 or ax,ax ; Zero ? -273F:6E72 75 33 jnz loc_1395 ; Jump if not zero -273F:6E74 loc_1391: ; xref 273F:6EBA -273F:6E74 úC6 06 38B0 00 mov data_781, 0 -273F:6E79 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:6E7E E8 B0F4 call show_arrow_cursor -273F:6E81 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:6E86 E9 017C jmp menubar_clear_image -273F:6E89 loc_1392: ; xref 273F:6E1E -273F:6E89 E8 0030 call sub_169 ; (6EBC) -273F:6E8C 0B C0 or ax,ax ; Zero ? -273F:6E8E 74 09 jz loc_1393 ; Jump if zero -273F:6E90 3B 06 4BF3 cmp ax,word ptr ds:[4BF3h] ; (273F:4BF3=3E6h) -273F:6E94 74 0E je loc_1394 ; Jump if equal -273F:6E96 E8 010A call sub_172 ; (6FA3) -273F:6E99 loc_1393: ; xref 273F:6E8E -273F:6E99 87 06 4BF3 xchg word ptr ds:[4BF3h],ax ; (273F:4BF3=3E6h) -273F:6E9D 0B C0 or ax,ax ; Zero ? -273F:6E9F 74 03 jz loc_1394 ; Jump if zero -273F:6EA1 E8 00FF call sub_172 ; (6FA3) -273F:6EA4 loc_1394: ; xref 273F:6E94, 6E9F -273F:6EA4 E9 FEBF jmp loc_1374 ; (6D66) -273F:6EA7 loc_1395: ; xref 273F:6E72 -273F:6EA7 8B 36 4BF1 mov si, menuitem_table_location -273F:6EAB 8B 74 0C mov si,[si+0Ch] -273F:6EAE 48 dec ax -273F:6EAF B3 04 mov bl,4 -273F:6EB1 F6 E3 mul bl ; ax = reg * al -273F:6EB3 03 F0 add si,ax -273F:6EB5 8B 44 02 mov ax,[si+2] -273F:6EB8 FF D0 call ax ; Handle the selected item -273F:6EBA EB B8 jmp short loc_1391 - - menubar_handle_menu endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6E6D, 6E89 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6EBC sub_169 proc near -273F:6EBC 8B 36 4BF1 mov si, menuitem_table_location -273F:6EC0 B1 03 mov cl,3 -273F:6EC2 8B 44 04 mov ax,[si+4] -273F:6EC5 40 inc ax -273F:6EC6 8B 5C 08 mov bx,[si+8] -273F:6EC9 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:6ECB D3 E3 shl bx,cl ; Shift w/zeros fill -273F:6ECD 39 06 4BF8 cmp data_unk1, ax -273F:6ED1 72 34 jb loc_1397 ; Jump if below -273F:6ED3 03 D8 add bx,ax -273F:6ED5 39 1E 4BF8 cmp data_unk1, bx -273F:6ED9 73 2C jae loc_1397 ; Jump if above or = -273F:6EDB 8B 44 06 mov ax,[si+6] -273F:6EDE 8B 5C 0A mov bx,[si+0Ah] -273F:6EE1 43 inc bx -273F:6EE2 D3 E0 shl ax,cl ; Shift w/zeros fill -273F:6EE4 D3 E3 shl bx,cl ; Shift w/zeros fill -273F:6EE6 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:6EEB 74 03 je loc_1396 ; Jump if equal -273F:6EED 05 0003 add ax,3 -273F:6EF0 loc_1396: ; xref 273F:6EEB -273F:6EF0 3B 06 4BF6 cmp ax,word ptr ds:[4BF6h] ; (273F:4BF6=0C683h) -273F:6EF4 73 11 jae loc_1397 ; Jump if above or = -273F:6EF6 03 D8 add bx,ax -273F:6EF8 39 1E 4BF6 cmp word ptr ds:[4BF6h],bx ; (273F:4BF6=0C683h) -273F:6EFC 73 09 jae loc_1397 ; Jump if above or = -273F:6EFE 2B 06 4BF6 sub ax,word ptr ds:[4BF6h] ; (273F:4BF6=0C683h) -273F:6F02 F7 D8 neg ax -273F:6F04 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:6F06 C3 retn -273F:6F07 loc_1397: ; xref 273F:6ED1, 6ED9, 6EF4, 6EFC -273F:6F07 33 C0 xor ax,ax ; Zero register -273F:6F09 C3 retn - sub_169 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6E56 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -; SI = pointer to data block containing the details of the menu - -273F:6F0A menubar_create_menu proc near -273F:6F0A 56 push si -273F:6F0B 56 push si -273F:6F0C 8B 44 04 mov ax,[si+4] -273F:6F0F 8B 5C 06 mov bx,[si+6] -273F:6F12 8B 4C 08 mov cx,[si+8] -273F:6F15 8B 54 0A mov dx,[si+0Ah] ; Number of menu entries -273F:6F18 BD 0001 mov bp,1 -273F:6F1B FF 16 077A call [draw_dialog_proc] -273F:6F1F 5E pop si -273F:6F20 8B 4C 0A mov cx,[si+0Ah] ; Number of menu entries -273F:6F23 8B 44 06 mov ax,[si+6] -273F:6F26 FE C0 inc al -273F:6F28 F7 26 074C mul menubar_block_size ; Get # lines to save -273F:6F2C 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:6F31 74 0C je loc_1398 ; Jump if equal -273F:6F33 03 06 0748 add ax, screen_width -273F:6F37 03 06 0748 add ax, screen_width -273F:6F3B 03 06 0748 add ax, screen_width -273F:6F3F loc_1398: ; xref 273F:6F31 -273F:6F3F 8B F8 mov di,ax -273F:6F41 8B 44 04 mov ax,[si+4] -273F:6F44 FE C0 inc al -273F:6F46 F7 26 074A mul char_width ; (273F:074A=43A0h) dx:ax = data * ax -273F:6F4A 03 F8 add di,ax -273F:6F4C 8B 2E 4CF2 mov bp, font_segment -273F:6F50 8B 1E 076E mov bx, data_571 -273F:6F54 8B 17 mov dx,[bx] -273F:6F56 8B 5C 08 mov bx,[si+8] ; Max chars in menu -273F:6F59 8B 4C 0A mov cx,[si+0Ah] -273F:6F5C 8B 74 0C mov si,[si+0Ch] ; Offset of list of menuitem text - ; strings and handler offsets -273F:6F5F locloop_1399: -273F:6F5F 57 push di -273F:6F60 51 push cx -273F:6F61 56 push si -273F:6F62 8B 34 mov si,[si] -273F:6F64 8B CB mov cx,bx - -273F:6F66 locloop_1400: ; Loop to add menu item text -273F:6F66 AC lodsb ; Load next character -273F:6F67 0A C0 or al,al ; Is it the end of the string? -273F:6F69 74 0C jz locloop_1401 ; Jump if yes -273F:6F6B FF 16 076A call [display_character_proc]; Load character -273F:6F6F 03 3E 074A add di, char_width ; Move the store position -273F:6F73 E2 F1 loop locloop_1400 ; Loop if cx > 0 - -273F:6F75 EB 0D jmp short loc_1402 ; (6F84) - -273F:6F77 locloop_1401: ; xref 273F:6F69, 6F82 -273F:6F77 B8 0020 mov ax,20h -273F:6F7A FF 16 076A call [display_character_proc] -273F:6F7E 03 3E 074A add di, char_width -273F:6F82 E2 F3 loop locloop_1401 ; Loop if cx > 0 - -273F:6F84 loc_1402: ; xref 273F:6F75 -273F:6F84 5E pop si -273F:6F85 59 pop cx -273F:6F86 5F pop di -273F:6F87 03 3E 074C add di, menubar_block_size -273F:6F8B 83 C6 04 add si,4 -273F:6F8E E2 CF loop locloop_1399 ; Loop if cx > 0 - -273F:6F90 5E pop si -273F:6F91 C3 retn - menubar_create_menu endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6E53, 6E67 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6F92 toggle_menu_highlight proc near -273F:6F92 8B 5C 02 mov bx,[si+2] -273F:6F95 8B 3C mov di,[si] -273F:6F97 2B DF sub bx,di -273F:6F99 FF 16 0772 call [toggle_menu_highlight_proc] -273F:6F9D C6 06 4BF0 02 mov byte ptr ds:[4BF0h],2 ; (273F:4BF0=3) -273F:6FA2 C3 retn - toggle_menu_highlight endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6E96, 6EA1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6FA3 sub_172 proc near -273F:6FA3 50 push ax -273F:6FA4 03 44 06 add ax,[si+6] -273F:6FA7 50 push ax -273F:6FA8 BB 0A00 mov bx,0A00h -273F:6FAB F7 E3 mul bx ; dx:ax = reg * ax -273F:6FAD 8B F8 mov di,ax -273F:6FAF 8B 44 04 mov ax,[si+4] -273F:6FB2 40 inc ax -273F:6FB3 50 push ax -273F:6FB4 B3 08 mov bl,8 -273F:6FB6 F6 E3 mul bl ; ax = reg * al -273F:6FB8 03 F8 add di,ax -273F:6FBA 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:6FBF 74 04 je loc_1403 ; Jump if equal -273F:6FC1 81 C7 03C0 add di,3C0h -273F:6FC5 loc_1403: ; xref 273F:6FBF -273F:6FC5 8B 5C 08 mov bx,[si+8] -273F:6FC8 53 push bx -273F:6FC9 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:6FCB D1 E3 shl bx,1 ; Shift w/zeros fill -273F:6FCD D1 E3 shl bx,1 ; Shift w/zeros fill -273F:6FCF FF 16 0770 call word ptr ds:[770h] ; (273F:0770=6411h) -273F:6FD3 5D pop bp -273F:6FD4 58 pop ax -273F:6FD5 5B pop bx -273F:6FD6 4B dec bx -273F:6FD7 BA 0002 mov dx,2 -273F:6FDA B9 0001 mov cx,1 -273F:6FDD E8 9BA3 call sub_21 ; (0B83) -273F:6FE0 58 pop ax -273F:6FE1 C6 06 4BF5 01 mov byte ptr ds:[4BF5h],1 ; (273F:4BF5=0F5h) -273F:6FE6 C3 retn - sub_172 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6D5D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:6FE7 sub_173 proc near -273F:6FE7 A1 4CE4 mov ax, data_segment2 -273F:6FEA 8E C0 mov es,ax -273F:6FEC 8B 0E 074C mov cx, menubar_block_size -273F:6FF0 D1 E9 shr cx,1 ; Shift w/zeros fill -273F:6FF2 A1 4CF6 mov ax,word ptr ds:[4CF6h] ; (273F:4CF6=8BFFh) -273F:6FF5 1E push ds -273F:6FF6 8E D8 mov ds,ax -273F:6FF8 33 F6 xor si,si ; Zero register -273F:6FFA 33 FF xor di,di ; Zero register -273F:6FFC F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:6FFE 1F pop ds -273F:6FFF C6 06 4BF0 02 mov byte ptr ds:[4BF0h],2 ; (273F:4BF0=3) -273F:7004 C3 retn - sub_173 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0087, 1365, 1D10, 3C98, 6706, 6C8D, 70A5 - ; 7BB7, 8FB2, A828 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - menubar_clear_image proc near -273F:7005 A1 4CE4 mov ax, data_segment2 -273F:7008 8E C0 mov es,ax -273F:700A 8B 0E 074C mov cx, menubar_block_size -273F:700E D1 E9 shr cx,1 ; Shift w/zeros fill -273F:7010 33 C0 xor ax,ax ; Zero register -273F:7012 33 FF xor di,di ; Zero register -273F:7014 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:7016 C6 06 4BF0 02 mov byte ptr data_794,2 ; (31E4:4BF0=0) -273F:701B C3 retn - menubar_clear_image endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:688C, 6CAF, 8DED - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_clear_line proc near -273F:701C 0B C0 or ax,ax ; Zero ? -273F:701E 74 E5 jz menubar_clear_image -273F:7020 F7 26 074C mul menubar_block_size -273F:7024 8B F8 mov di,ax -273F:7026 A1 4CE4 mov ax, data_segment2 -273F:7029 8E C0 mov es, ax -273F:702B 8B 0E 074C mov cx, menubar_block_size -273F:702F D1 E9 shr cx,1 ; Shift w/zeros fill -273F:7031 33 C0 xor ax,ax ; Zero register -273F:7033 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:7035 C3 retn - talk_clear_line endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - menuitem_quit proc near - -273F:7036 E8 000B call confirm_dialog -273F:7039 74 01 jz loc_1405 ; Jump if zero -273F:703B C3 retn -273F:703C loc_1405: ; xref 273F:7039 -273F:703C B8 0000 mov ax,0 -273F:703F B6 01 mov dh,1 -273F:7041 E8 CF60 call display_message ; (3FA4) - - menuitem_quit endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7036, 70EA - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7044 confirm_dialog proc near - -273F:7044 BE 5040 mov si,5040h -273F:7047 C7 44 08 0179 mov word ptr [si+8],179h -273F:704C C6 06 38B0 01 mov data_781, 1 -273F:7051 E8 18B9 call sub_216 ; (890D) -273F:7054 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:7059 75 03 jne loc_1406 ; Jump if not equal -273F:705B E8 18AF call sub_216 ; (890D) -273F:705E loc_1406: ; xref 273F:7059 -273F:705E E8 AF2A call mouse_wait ; (1F8B) -273F:7061 loc_1407: ; xref 273F:707F -273F:7061 úE8 AF32 call pause_for_input ; (1F96) -273F:7064 50 push ax -273F:7065 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:706A FF 16 075E call [show_cursor_proc] -273F:706E 58 pop ax -273F:706F 3C 6E cmp al,6Eh ; 'n' -273F:7071 74 0E je loc_1408 ; Jump if equal -273F:7073 3C 4E cmp al,4Eh ; 'N' -273F:7075 74 0A je loc_1408 ; Jump if equal -273F:7077 3C 79 cmp al,79h ; 'y' -273F:7079 74 08 je loc_ret_1409 ; Jump if equal -273F:707B 3C 59 cmp al,59h ; 'Y' -273F:707D 74 04 je loc_ret_1409 ; Jump if equal -273F:707F EB E0 jmp short loc_1407 ; (7061) -273F:7081 loc_1408: ; xref 273F:7071, 7075 -273F:7081 0C 01 or al,1 - -273F:7083 loc_ret_1409: ; xref 273F:7079, 707D -273F:7083 C3 retn - - confirm_dialog endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - menuitem_credits proc near - -273F:7084 80 0E 11D0 01 or menubar_state, 1 ; Hide the cursor -273F:7089 FF 16 075E call [show_cursor_proc] -273F:708D FF 36 9832 push room_number -273F:7091 C7 06 9832 0032 mov room_number, 32h -273F:7097 E8 98B4 call clear_layer_rects -273F:709A E8 98D2 call room_load_layers -273F:709D FF 16 0752 call [show_compressed_screen_proc] -273F:70A1 FF 16 0764 call [empty_palette_proc] -273F:70A5 E8 FF5D call menubar_clear_image -273F:70A8 FF 16 0744 call [show_screen_proc] -273F:70AC FF 16 0762 call [set_lower_palette_proc] - -273F:70B0 E8 AEE3 call pause_for_input ; (1F96) -273F:70B3 E8 AEA9 call show_disk_cursor -273F:70B6 8F 06 9832 pop room_number -273F:70BA E8 9891 call clear_layer_rects -273F:70BD E8 98AF call room_load_layers -273F:70C0 FF 16 074E call word ptr ds:[74Eh] ; (273F:074E=8010h) -273F:70C4 E8 9920 call sub_16 ; (09E7) -273F:70C7 E8 9A34 call sub_19 ; (0AFE) -273F:70CA E8 C9E1 call replace_vga_palette ; (3AAE) -273F:70CD FF 16 0752 call [show_compressed_screen_proc] -273F:70D1 E8 A43A call room_add_animations -273F:70D4 FF 16 0764 call [empty_palette_proc] -273F:70D8 FF 16 0744 call [show_screen_proc] -273F:70DC FF 16 0762 call [set_lower_palette_proc] -273F:70E0 80 26 11D0 FE and menubar_state, 0FEh -273F:70E5 FF 16 075E call [show_cursor_proc] -273F:70E9 C3 retn - - menuitem_credits endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - menuitem_restart proc near - -273F:70EA E8 FF57 call confirm_dialog -273F:70ED 75 05 jnz loc_ret_1410 ; Jump if not zero -273F:70EF 80 0E 073D 10 or status_flags2, FLAG_RESTART ; 10h - -273F:70F4 loc_ret_1410: ; xref 273F:70ED -273F:70F4 C3 retn - - menuitem_restart endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8FEC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:70F5 menuitem_textspeed proc near - -273F:70F5 BE 4C7F mov si, offset slowtext_slow_substr -273F:70F8 80 36 CE20 80 xor game_flags, 80h -273F:70FD 79 03 jns loc_1411 ; Jump if not sign -273F:70FF úBE 4C83 mov si, offset slowtext_fast_substr -273F:7102 loc_1411: -273F:7102 úBF 4C74 mov di, offset menuitem_textspeed_str -273F:7105 B9 0002 mov cx, 2 ; Four characters to replace -273F:7108 1E push ds -273F:7109 07 pop es -273F:710A F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:710C C3 retn - - menuitem_textspeed endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - menuitem_sound proc near - -273F:710D E8 30E3 call sub_257 -273F:7110 BE 4C91 mov si, offset sound_on_substr -273F:7113 F6 06 5660 02 test music_status, 2 -273F:7118 75 03 jnz loc_1412 -273F:711A úBE 4C95 mov si, offset sound_off_substr -273F:711D loc_1412: -273F:711D 80 36 5660 02 xor music_status, 2 -273F:7122 úBF 4C8D mov di, offset menuitem_sound_str+6 ; Start of 'off' or 'on' -273F:7125 B9 0002 mov cx,2 ; Move four bytes -273F:7128 1E push ds -273F:7129 07 pop es -273F:712A F3/ A5 rep movsw -273F:712C C3 retn - - menuitem_sound endp - -273F:712D 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4380, 721C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_flag_covered_cells proc near -273F:712E ú53 push bx -273F:712F E8 D262 call pathfind_get_cell -273F:7132 74 0D jz loc_1416 ; Exit if animation offscreen - -273F:7134 locloop_1414: -273F:7134 09 07 or [bx], ax ; Flag cell as covered - -273F:7136 D0 E8 shr al, 1 ; Rotate bit mask -273F:7138 73 05 jnc loc_1415 ; Jump if not passed bit 0 -273F:713A 83 C3 01 add bx, 1 ; Move to next byte in data -273F:713D B0 80 mov al, 80h ; Reset bit mask -273F:713F loc_1415: -273F:713F E2 F3 loop locloop_1414 ; Loop for remaining cells - -273F:7141 loc_1416: -273F:7141 5B pop bx -273F:7142 C3 retn - pathfind_flag_covered_cells endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7245 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - pathfind_clear_covered_cells proc near -273F:7143 53 push bx -273F:7144 E8 D24D call pathfind_get_cell -273F:7147 74 12 jz loc_1420 ; Jump if zero -273F:7149 32 E4 xor ah,ah ; Zero register -273F:714B F7 D0 not ax - -273F:714D locloop_1418: ; xref 273F:7159 -273F:714D 20 07 and [bx],al -273F:714F D1 E8 shr ax,1 ; Shift w/zeros fill -273F:7151 72 06 jc loc_1419 ; Jump if carry Set -273F:7153 83 C3 01 add bx,1 -273F:7156 B8 FF7F mov ax,0FF7Fh -273F:7159 loc_1419: ; xref 273F:7151 -273F:7159 E2 F2 loop locloop_1418 ; Loop if cx > 0 - -273F:715B loc_1420: ; xref 273F:7147 -273F:715B 5B pop bx -273F:715C C3 retn - pathfind_clear_covered_cells endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_set_action_ctr proc near -273F:715D E8 9B88 call get_room_resource_pointer -273F:7160 88 4C 2A mov [si+HS_ACTION_CTR], cl -273F:7163 C3 retn - seq_set_action_ctr endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7164 E8 9B81 call get_room_resource_pointer - -273F:7167 E8 0008 call animation_load_2 -273F:716A C6 45 10 00 mov byte ptr [di+ANIM_CAN_UNLOAD], 0 -273F:716E C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:88B7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:716F animation_load proc near -273F:716F E8 9B76 call get_room_resource_pointer - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:7167, 7F7E - -273F:7172 animation_load_2: -273F:7172 úE8 9F5E call animation_find_slot - -; di = free animation list slot. si = pointer to resource, bx = resource Id - -273F:7175 89 7C 0B mov [si+HS_ANIM_OFFSET], di ; Store slot anim is placed in -273F:7178 89 5D 1B mov [di+ANIM_HOTSPOT_ID], bx ; Save Id of anim resource -273F:717B 89 75 19 mov [di+ANIM_HOTSPOT_OFFSET], si ; Save ptr of anim resource -273F:717E 8B 44 0F mov ax, [si+HS_Y] ; Copy over Y start -273F:7181 89 45 02 mov [di+ANIM_Y], ax -273F:7184 8B 44 0D mov ax, [si+HS_X] ; Copy over X start -273F:7187 89 05 mov [di+ANIM_X], ax -273F:7189 8B 44 11 mov ax, [si+HS_WIDTH] ; Copy over width -273F:718C 89 45 04 mov [di+ANIM_WIDTH], ax -273F:718F 8B 44 13 mov ax, [si+HS_HEIGHT] ; Copy over height -273F:7192 89 45 06 mov [di+ANIM_HEIGHT], ax -273F:7195 8A 44 15 mov al, [si+HS_LAYER] ; Copy layer -273F:7198 88 45 0C mov [di+ANIM_LAYER], al -273F:719B 8A 44 16 mov al, [si+HS_FLAGS2] -273F:719E 88 45 0D mov [di+ANIM_FLAGS], al -273F:71A1 C6 45 10 01 mov byte ptr [di+ANIM_CAN_UNLOAD], 1 -273F:71A5 8B 44 17 mov ax, [si+HS_TICK_PROC] ; Copy tick handler proc -273F:71A8 89 45 11 mov [di+ANIM_TICK_PROC], ax -273F:71AB 8B 44 19 mov ax, [si+HS_WIDTH_COPY] -273F:71AE 89 45 13 mov [di+ANIM_WIDTH_COPY], ax -273F:71B1 8B 44 1B mov ax, [si+HS_HEIGHT_COPY] -273F:71B4 89 45 15 mov [di+ANIM_HEIGHT_COPY], ax -273F:71B7 8B 44 1D mov ax, [si+HS_Y_CORRECTION] ; Y correction -273F:71BA 89 45 17 mov [di+ANIM_Y_CORRECTION], ax -273F:71BD C7 45 1E 0000 mov word ptr [di+ANIM_VOICE_CHAR_ID], 0 -273F:71C2 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Copy room number -273F:71C5 89 45 0E mov [di+ANIM_ROOM_NUM], ax -273F:71C8 8A 44 23 mov al, [si+HS_START_COLOUR] ; Copy colour offset -273F:71CB 88 45 28 mov [di+ANIM_START_COLOUR], al - -273F:71CE 8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] ; Get animation record -273F:71D1 8B 47 03 mov ax, [bx+PIXEL_DATA_SEGMENT] ; Get pixel data segment -273F:71D4 89 45 0A mov [di+ANIM_SEGMENT], ax ; Set it in animation -273F:71D7 33 C9 xor cx, cx -273F:71D9 F6 47 02 04 test byte ptr [bx+PIXEL_FLAGS], PIXELFLAG_HAS_TABLE -273F:71DD 74 07 jz loc_1422 ; Jump if zero -273F:71DF 8E C0 mov es, ax -273F:71E1 26: 8B 0E 0000 mov cx, es:[0] -273F:71E6 loc_1422: -273F:71E6 89 4D 08 mov [di+ANIM_FRAME_OFFSET], cx ; Set frame -273F:71E9 C6 45 27 01 mov byte ptr [di+ANIM_WALK_FLAG], 1 -273F:71ED C3 retn - animation_load endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1326, 1D93, 5207, 538B, 5705, 5746, 57DC - ; 5FF9, 720B, 8025, 826F, 86C6, 86D1, 86E8 - ; 86F2, 8708, 8727, 8894, 9E82 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_exit_hs_get_pointer proc near -273F:71EE úBE CE30 mov si, offset room_exit_joins_table -273F:71F1 loc_1423: ; xref 273F:71FD -273F:71F1 ú3B 04 cmp ax, [si] -273F:71F3 74 0A je loc_1424 ; Jump if equal -273F:71F5 3B 44 06 cmp ax, [si+REHS_HOTSPOT2_ID] -273F:71F8 74 09 je loc_1425 ; Jump if equal -273F:71FA 83 C6 11 add si, REHS_RECORD_SIZE -273F:71FD EB F2 jmp short loc_1423 ; (71F1) -273F:71FF loc_1424: ; xref 273F:71F3 -273F:71FF BB 0002 mov bx, REHS_HOTSPOT1_CURRENT_FRAME -273F:7202 C3 retn -273F:7203 loc_1425: ; xref 273F:71F8 -273F:7203 BB 0008 mov bx, REHS_HOTSPOT2_CURRENT_FRAME -273F:7206 C3 retn - room_exit_hs_get_pointer endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; This tick handler proc is used by a lot of the resources in the 3rd - ; hotspot table (hotspots starting at 2711h) - ; di = animation slot entry, si = hotspot resource - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - - room_exits_tick_proc proc near - -273F:7207 8B 45 1B mov ax,[di+ANIM_HOTSPOT_ID] ; Get hotspot Id -273F:720A 56 push si ; Save hotspot ptr -273F:720B E8 FFE0 call room_exit_hs_get_pointer -273F:720E F6 44 0C FF test byte ptr [si+REHS_EXIT_BLOCKED], 0FFh -273F:7212 74 2A jz loc_1427 ; Jump if exit blocked - -; Eexecution reaches this point if the room exit is blocked -273F:7214 8A 00 mov al, [bx+si] ; Get frame number -273F:7216 3A 40 01 cmp al, [bx+si+1] ; Check against dest frame -273F:7219 74 12 je loc_1426 ; If equal, go set frame -273F:721B 50 push ax -273F:721C E8 FF0F call pathfind_flag_covered_cells -273F:721F 58 pop ax -273F:7220 04 01 add al, 1 ; Move to next frame -273F:7222 3A 40 01 cmp al, [bx+si+1] ; Reached end frame yet? -273F:7225 75 06 jne loc_1426 ; No, so go set frame -273F:7227 B9 0001 mov cx, 1 -273F:722A E8 00DA call room_exit_play_sound - -; The code below sets the frame number and offset of the given hotspot to the # in AL -273F:722D loc_1426: -273F:722D ú88 00 mov [bx+si],al ; Store frame number -273F:722F 5E pop si -273F:7230 8B 5C 21 mov bx,[si+HS_PIXEL_OFFSET] -273F:7233 32 E4 xor ah,ah ; Calculate frame offset -273F:7235 F7 67 07 mul word ptr [bx+PIXEL_FRAME_SIZE] -273F:7238 89 45 08 mov [di+ANIM_FRAME_OFFSET], ax ; Save frame start -273F:723B C3 retn - -273F:723C 5E pop si -273F:723D C3 retn - -; Execution reaches this pointer if the room exit is currently active -273F:723E loc_1427: -273F:723E 8A 00 mov al, [bx+si] ; Get frame number -273F:7240 0A C0 or al, al ; Zero ? -273F:7242 74 E9 jz loc_1426 ; If zero, go set and exit - -273F:7244 50 push ax -273F:7245 E8 FEFB call pathfind_clear_covered_cells -273F:7248 58 pop ax -273F:7249 3A 40 01 cmp al, [bx+si+1] ; Current frame at end frame? -273F:724C 75 19 jne loc_1428 ; No, so go move back 1 frame - -273F:724E 33 C9 xor cx, cx ; Zero register -273F:7250 E8 00B4 call room_exit_play_sound -273F:7253 80 3E BAB9 01 cmp byte ptr script_val_88, 1 -273F:7258 75 0D jne loc_1428 ; Jump if not equal -273F:725A 53 push bx -273F:725B 50 push ax -273F:725C B8 0C00 mov ax, 0C00h -273F:725F 32 DB xor bl, bl ; Zero register -273F:7261 FF 1E 5662 call dword ptr [play_music_proc] -273F:7265 58 pop ax -273F:7266 5B pop bx -273F:7267 loc_1428: -273F:7267 2C 01 sub al, 1 ; Move to prior frame -273F:7269 EB C2 jmp short loc_1426 ; Go set frame - - room_exits_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:57ED, 57F7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - door_close_check proc near -273F:726B 55 push bp -273F:726C 56 push si -273F:726D 8B 5F 0B mov bx, [bx+HS_ANIM_OFFSET] -273F:7270 8B 57 0E mov dx, [bx+ANIM_ROOM_NUM] ; Get room number -273F:7273 úBE B14E mov si, offset animation_table -273F:7276 B9 002D mov cx, NUM_ANIMATION_SLOTS -273F:7279 8B 07 mov ax, [bx+ANIM_X] -273F:727B A3 10E6 mov char_rect_left, ax -273F:727E 03 47 13 add ax, [bx+ANIM_WIDTH_COPY] -273F:7281 A3 10E8 mov char_rect_right, ax -273F:7284 8B 47 02 mov ax, [bx+ANIM_Y] -273F:7287 03 47 15 add ax, [bx+ANIM_HEIGHT_COPY] -273F:728A 50 push ax -273F:728B 2B 47 17 sub ax, [bx+ANIM_Y_CORRECTION] -273F:728E 2B 47 22 sub ax, [bx+ANIM_CHAR_RECT_Y] -273F:7291 A3 10EA mov char_rect_top, ax -273F:7294 58 pop ax -273F:7295 03 47 22 add ax, [bx+ANIM_CHAR_RECT_Y] -273F:7298 A3 10EC mov char_rect_bottom, ax - -273F:729B locloop_1429: ; xref 273F:72FC -273F:729B 3B FE cmp di, si ; Reached anim pointed to by DI? -273F:729D 74 5A je loc_1431 ; Skip if yes -273F:729F 3B F3 cmp si, bx ; Reached anim pointed to by BX? -273F:72A1 74 56 je loc_1431 ; Skip if yes - -273F:72A3 F6 44 0C FF test [si+ANIM_LAYER], 0FFh ; Animation has a layer? -273F:72A7 74 50 jz loc_1431 ; Skip if not -273F:72A9 3B 54 0E cmp dx, [si+ANIM_ROOM_NUM] ; In same room? -273F:72AC 75 4B jne loc_1431 ; Skip if not -273F:72AE 8B 44 1B mov ax, [si+ANIM_HOTSPOT_ID] -273F:72B1 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:72B4 72 43 jb loc_1431 ; Skip low end animations -273F:72B6 3D 0408 cmp ax, FIRST_OBJECT_HOTSPOT_ID -273F:72B9 72 05 jb loc_1430 ; Jump if below -273F:72BB 3D 2710 cmp ax, START_EXIT_HOTSPOT_ID -273F:72BE 72 39 jb loc_1431 ; Jump if below -273F:72C0 loc_1430: -273F:72C0 3D FFFE cmp ax,0FFFEh -273F:72C3 73 34 jae loc_1431 ; Skip if Id is 0fffeh or 0ffffh -273F:72C5 8B 04 mov ax, [si+ANIM_X] ; Get anim x pos -273F:72C7 3B 06 10E8 cmp ax, char_rect_right ; More than set X pos? -273F:72CB 73 2C jae loc_1431 ; If yes, skip entry -273F:72CD 03 44 13 add ax,[si+ANIM_WIDTH_COPY] ; anim width -273F:72D0 3B 06 10E6 cmp ax, char_rect_left ; Compare against loaded right -273F:72D4 72 23 jb loc_1431 ; Skip if less or equal -273F:72D6 74 21 jz loc_1431 - -; This point is only reached if an animation is in the current room if it's -; X start is less than or equal to that specified at routine start, and it's right -; is greater than the X end position. That is to say, the given horizontal slice - -273F:72D8 8B 44 02 mov ax, [si+ANIM_Y] ; Get Y position -273F:72DB 03 44 15 add ax, [si+ANIM_HEIGHT_COPY]; Add copy of anim height -273F:72DE 8B E8 mov bp,ax -273F:72E0 03 44 22 add ax, [si+ANIM_CHAR_RECT_Y] -273F:72E3 3B 06 10EA cmp ax, char_rect_top -273F:72E7 72 10 jb loc_1431 ; Not meeting Y start -273F:72E9 8B C5 mov ax, bp -273F:72EB 2B 44 17 sub ax, [si+ANIM_Y_CORRECTION] -273F:72EE 2B 44 22 sub ax, [si+ANIM_CHAR_RECT_Y] -273F:72F1 3B 06 10EC cmp ax, char_rect_bottom -273F:72F5 74 0B je loc_1432 ; Jump if equal -273F:72F7 72 09 jc loc_1432 ; Jump if carry Set - -273F:72F9 loc_1431: -273F:72F9 83 C6 29 add si, ANIMATION_SLOT_SIZE -273F:72FC E2 9D loop locloop_1429 ; Loop if cx > 0 - -273F:72FE 0C 01 or al,1 ; Result = 1 (no blockings) -273F:7300 EB 02 jmp short loc_1433 -273F:7302 loc_1432: -273F:7302 33 C0 xor ax,ax ; Result = 0 (a blocking) -273F:7304 loc_1433: -273F:7304 5E pop si -273F:7305 5D pop bp -273F:7306 C3 retn - door_close_check endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:722A, 7250 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - room_exit_play_sound proc near -273F:7307 50 push ax -273F:7308 56 push si -273F:7309 53 push bx -273F:730A 57 push di -273F:730B 8B 16 9832 mov dx, room_number -273F:730F 8B 7C 0D mov di, [si+REHS_HOTSPOT1_OFFSET] -273F:7312 83 FB 02 cmp bx, 2 -273F:7315 74 03 je loc_1434 -273F:7317 8B 7C 0F mov di, [si+REHS_HOTSPOT2_OFFSET] -273F:731A loc_1434: ; xref 273F:7315 -273F:731A 3B 55 06 cmp dx, [di+HS_ROOM_NUM] -273F:731D 75 10 jne loc_1435 ; Jump if not equal -273F:731F 03 D9 add bx, cx -273F:7321 8A 58 02 mov bl, [bx+si+2] -273F:7324 32 FF xor bh, bh -273F:7326 0B DB or bx, bx ; Zero ? -273F:7328 74 05 jz loc_1435 ; Jump if zero -273F:732A E8 2CD0 call play_sound -273F:732D 8B CE mov cx, si -273F:732F loc_1435: ; xref 273F:731D, 7328 -273F:732F 5F pop di -273F:7330 5B pop bx -273F:7331 5E pop si -273F:7332 58 pop ax -273F:7333 C3 retn - room_exit_play_sound endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7876 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7334 animation_decode_inner proc near -273F:7334 83 C6 06 add si,6 -273F:7337 1E push ds -273F:7338 8E DA mov ds,dx -273F:733A B5 10 mov ch,10h -273F:733C B1 04 mov cl,4 -273F:733E 33 FF xor di,di ; Zero register -273F:7340 loc_1436: ; xref 273F:7365 -273F:7340 AC lodsb ; String [si] to al -273F:7341 26: 88 45 10 mov es:[di+10h],al -273F:7345 26: 80 65 10 0F and byte ptr es:[di+10h],0Fh -273F:734A D2 E8 shr al,cl ; Shift w/zeros fill -273F:734C 26: 88 05 mov es:[di],al -273F:734F AC lodsb ; String [si] to al -273F:7350 26: 88 45 30 mov es:[di+30h],al -273F:7354 26: 80 65 30 0F and byte ptr es:[di+30h],0Fh -273F:7359 D2 E8 shr al,cl ; Shift w/zeros fill -273F:735B 26: 88 45 20 mov es:[di+20h],al -273F:735F 83 C7 01 add di,1 -273F:7362 80 ED 01 sub ch,1 -273F:7365 75 D9 jnz loc_1436 ; Jump if not zero - -273F:7367 úBF 0040 mov di, 40h -273F:736A AC lodsb ; String [si] to al -273F:736B 8A E0 mov ah,al -273F:736D AC lodsb ; String [si] to al -273F:736E 32 ED xor ch,ch ; Zero register -273F:7370 B1 04 mov cl,4 -273F:7372 26: 88 25 mov es:[di],ah -273F:7375 26: 80 25 F0 and byte ptr es:[di],0F0h -273F:7379 8A DC mov bl,ah -273F:737B D3 E0 shl ax,cl ; Shift w/zeros fill -273F:737D D2 EB shr bl,cl ; Shift w/zeros fill -273F:737F 32 FF xor bh,bh ; Zero register -273F:7381 B2 01 mov dl,1 - -273F:7383 loc_1437: ; xref 273F:73A1, 73A9, 74DD -273F:7383 úD1 D0 rcl ax,1 ; Rotate thru carry -273F:7385 E2 03 loop locloop_1438 ; Loop if cx > 0 - -273F:7387 AC lodsb ; String [si] to al -273F:7388 B1 08 mov cl,8 - -273F:738A locloop_1438: ; xref 273F:7385 -273F:738A 72 1F jc loc_1441 ; Jump if carry Set -273F:738C 26: 8A 1F mov bl,es:[bx] -273F:738F loc_1439: ; xref 273F:73C1, 73C7, 73D6, 7417 -273F:738F ú80 F2 01 xor dl,1 -273F:7392 74 0F jz loc_1440 ; Jump if zero -273F:7394 8A F3 mov dh,bl -273F:7396 D0 E6 shl dh,1 ; Shift w/zeros fill -273F:7398 D0 E6 shl dh,1 ; Shift w/zeros fill -273F:739A D0 E6 shl dh,1 ; Shift w/zeros fill -273F:739C D0 E6 shl dh,1 ; Shift w/zeros fill -273F:739E 26: 88 35 mov es:[di],dh -273F:73A1 EB E0 jmp short loc_1437 ; (7383) -273F:73A3 loc_1440: ; xref 273F:7392 -273F:73A3 26: 08 1D or es:[di],bl -273F:73A6 83 C7 01 add di,1 -273F:73A9 EB D8 jmp short loc_1437 ; (7383) -273F:73AB loc_1441: ; xref 273F:738A -273F:73AB D1 D0 rcl ax,1 ; Rotate thru carry -273F:73AD E2 03 loop locloop_1442 ; Loop if cx > 0 - -273F:73AF AC lodsb ; String [si] to al -273F:73B0 B1 08 mov cl,8 - -273F:73B2 locloop_1442: ; xref 273F:73AD -273F:73B2 72 15 jc loc_1445 ; Jump if carry Set -273F:73B4 D1 D0 rcl ax,1 ; Rotate thru carry -273F:73B6 E2 03 loop locloop_1443 ; Loop if cx > 0 - -273F:73B8 AC lodsb ; String [si] to al -273F:73B9 B1 08 mov cl,8 - -273F:73BB locloop_1443: ; xref 273F:73B6 -273F:73BB 72 06 jc loc_1444 ; Jump if carry Set -273F:73BD 26: 8A 5F 10 mov bl,es:[bx+10h] -273F:73C1 EB CC jmp short loc_1439 ; (738F) -273F:73C3 loc_1444: ; xref 273F:73BB -273F:73C3 26: 8A 5F 20 mov bl,es:[bx+20h] -273F:73C7 EB C6 jmp short loc_1439 ; (738F) -273F:73C9 loc_1445: ; xref 273F:73B2 -273F:73C9 D1 D0 rcl ax,1 ; Rotate thru carry -273F:73CB E2 03 loop locloop_1446 ; Loop if cx > 0 - -273F:73CD AC lodsb ; String [si] to al -273F:73CE B1 08 mov cl,8 - -273F:73D0 locloop_1446: ; xref 273F:73CB -273F:73D0 72 06 jc loc_1447 ; Jump if carry Set -273F:73D2 26: 8A 5F 30 mov bl,es:[bx+30h] -273F:73D6 EB B7 jmp short loc_1439 ; (738F) -273F:73D8 loc_1447: ; xref 273F:73D0 -273F:73D8 8A F4 mov dh,ah -273F:73DA D0 EE shr dh,1 ; Shift w/zeros fill -273F:73DC D0 EE shr dh,1 ; Shift w/zeros fill -273F:73DE D0 EE shr dh,1 ; Shift w/zeros fill -273F:73E0 D0 EE shr dh,1 ; Shift w/zeros fill - -273F:73E2 D1 D0 rcl ax,1 ; Rotate thru carry -273F:73E4 E2 03 loop locloop_1448 ; Loop if cx > 0 - -273F:73E6 AC lodsb ; String [si] to al -273F:73E7 B1 08 mov cl,8 - -273F:73E9 locloop_1448: ; xref 273F:73E4 -273F:73E9 D1 D0 rcl ax,1 ; Rotate thru carry -273F:73EB E2 03 loop locloop_1449 ; Loop if cx > 0 - -273F:73ED AC lodsb ; String [si] to al -273F:73EE B1 08 mov cl,8 - -273F:73F0 locloop_1449: ; xref 273F:73EB -273F:73F0 D1 D0 rcl ax,1 ; Rotate thru carry -273F:73F2 E2 03 loop locloop_1450 ; Loop if cx > 0 - -273F:73F4 AC lodsb ; String [si] to al -273F:73F5 B1 08 mov cl,8 - -273F:73F7 locloop_1450: ; xref 273F:73F2 -273F:73F7 D1 D0 rcl ax,1 ; Rotate thru carry -273F:73F9 E2 03 loop locloop_1451 ; Loop if cx > 0 - -273F:73FB AC lodsb ; String [si] to al -273F:73FC B1 08 mov cl,8 - -273F:73FE locloop_1451: ; xref 273F:73F9 -273F:73FE 26: 3A 37 cmp dh,es:[bx] -273F:7401 74 17 je loc_1452 ; Jump if equal -273F:7403 26: 3A 77 10 cmp dh,es:[bx+10h] -273F:7407 74 29 je loc_1454 ; Jump if equal -273F:7409 26: 3A 77 20 cmp dh,es:[bx+20h] -273F:740D 74 2D je loc_1455 ; Jump if equal -273F:740F 26: 3A 77 30 cmp dh,es:[bx+30h] -273F:7413 74 5E je loc_1462 ; Jump if equal -273F:7415 8A DE mov bl,dh -273F:7417 E9 FF75 jmp loc_1439 ; (738F) -273F:741A loc_1452: ; xref 273F:7401 -273F:741A 51 push cx -273F:741B 52 push dx -273F:741C E8 00C7 call sub_186 ; (74E6) -273F:741F 8A D6 mov dl,dh -273F:7421 E8 00C2 call sub_186 ; (74E6) -273F:7424 8A EA mov ch,dl -273F:7426 8A CE mov cl,dh -273F:7428 5A pop dx -273F:7429 0B C9 or cx,cx ; Zero ? -273F:742B 74 02 jz loc_1453 ; Jump if zero -273F:742D EB 74 jmp short loc_1468 ; (74A3) -273F:742F loc_1453: -273F:742F E9 00AE jmp loc_1471 ; Exit -273F:7432 loc_1454: ; xref 273F:7407 -273F:7432 51 push cx -273F:7433 E8 00B0 call sub_186 ; (74E6) -273F:7436 8A CE mov cl,dh -273F:7438 32 ED xor ch,ch ; Zero register -273F:743A EB 67 jmp short loc_1468 ; (74A3) -273F:743C loc_1455: ; xref 273F:740D -273F:743C 8A F4 mov dh,ah -273F:743E D0 EE shr dh,1 ; Shift w/zeros fill -273F:7440 D0 EE shr dh,1 ; Shift w/zeros fill -273F:7442 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7444 E2 03 loop locloop_1456 ; Loop if cx > 0 - -273F:7446 AC lodsb ; String [si] to al -273F:7447 B1 08 mov cl,8 - -273F:7449 locloop_1456: ; xref 273F:7444 -273F:7449 D1 D0 rcl ax,1 ; Rotate thru carry -273F:744B E2 03 loop locloop_1457 ; Loop if cx > 0 - -273F:744D AC lodsb ; String [si] to al -273F:744E B1 08 mov cl,8 - -273F:7450 locloop_1457: ; xref 273F:744B -273F:7450 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7452 E2 03 loop locloop_1458 ; Loop if cx > 0 - -273F:7454 AC lodsb ; String [si] to al -273F:7455 B1 08 mov cl,8 - -273F:7457 locloop_1458: ; xref 273F:7452 -273F:7457 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7459 E2 03 loop locloop_1459 ; Loop if cx > 0 - -273F:745B AC lodsb ; String [si] to al -273F:745C B1 08 mov cl,8 - -273F:745E locloop_1459: ; xref 273F:7459 -273F:745E D1 D0 rcl ax,1 ; Rotate thru carry -273F:7460 E2 03 loop locloop_1460 ; Loop if cx > 0 - -273F:7462 AC lodsb ; String [si] to al -273F:7463 B1 08 mov cl,8 - -273F:7465 locloop_1460: ; xref 273F:7460 -273F:7465 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7467 E2 03 loop locloop_1461 ; Loop if cx > 0 - -273F:7469 AC lodsb ; String [si] to al -273F:746A B1 08 mov cl,8 - -273F:746C locloop_1461: ; xref 273F:7467 -273F:746C 51 push cx -273F:746D 8A CE mov cl,dh -273F:746F 32 ED xor ch,ch ; Zero register -273F:7471 EB 30 jmp short loc_1468 ; (74A3) -273F:7473 loc_1462: ; xref 273F:7413 -273F:7473 8A F4 mov dh,ah -273F:7475 D0 EE shr dh,1 ; Shift w/zeros fill -273F:7477 D0 EE shr dh,1 ; Shift w/zeros fill -273F:7479 D0 EE shr dh,1 ; Shift w/zeros fill -273F:747B D1 D0 rcl ax,1 ; Rotate thru carry -273F:747D E2 03 loop locloop_1463 ; Loop if cx > 0 - -273F:747F AC lodsb ; String [si] to al -273F:7480 B1 08 mov cl,8 - -273F:7482 locloop_1463: ; xref 273F:747D -273F:7482 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7484 E2 03 loop locloop_1464 ; Loop if cx > 0 - -273F:7486 AC lodsb ; String [si] to al -273F:7487 B1 08 mov cl,8 - -273F:7489 locloop_1464: ; xref 273F:7484 -273F:7489 D1 D0 rcl ax,1 ; Rotate thru carry -273F:748B E2 03 loop locloop_1465 ; Loop if cx > 0 - -273F:748D AC lodsb ; String [si] to al -273F:748E B1 08 mov cl,8 - -273F:7490 locloop_1465: ; xref 273F:748B -273F:7490 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7492 E2 03 loop locloop_1466 ; Loop if cx > 0 - -273F:7494 AC lodsb ; String [si] to al -273F:7495 B1 08 mov cl,8 - -273F:7497 locloop_1466: ; xref 273F:7492 -273F:7497 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7499 E2 03 loop locloop_1467 ; Loop if cx > 0 - -273F:749B AC lodsb ; String [si] to al -273F:749C B1 08 mov cl,8 - -273F:749E locloop_1467: ; xref 273F:7499 -273F:749E 51 push cx -273F:749F 8A CE mov cl,dh -273F:74A1 32 ED xor ch,ch ; Zero register -273F:74A3 loc_1468: ; xref 273F:742D, 743A, 7471 -273F:74A3 F6 C2 01 test dl,1 -273F:74A6 74 0C jz loc_1469 ; Jump if zero -273F:74A8 26: 08 1D or es:[di],bl -273F:74AB 83 C7 01 add di,1 -273F:74AE 83 E9 01 sub cx,1 -273F:74B1 80 E2 FE and dl,0FEh -273F:74B4 loc_1469: ; xref 273F:74A6 -273F:74B4 8A F3 mov dh,bl -273F:74B6 D0 E6 shl dh,1 ; Shift w/zeros fill -273F:74B8 D0 E6 shl dh,1 ; Shift w/zeros fill -273F:74BA D0 E6 shl dh,1 ; Shift w/zeros fill -273F:74BC D0 E6 shl dh,1 ; Shift w/zeros fill -273F:74BE 0A DE or bl,dh -273F:74C0 51 push cx -273F:74C1 D1 E9 shr cx,1 ; Shift w/zeros fill -273F:74C3 86 C3 xchg al,bl -273F:74C5 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:74C7 86 C3 xchg al,bl -273F:74C9 59 pop cx -273F:74CA 83 E1 01 and cx,1 -273F:74CD 74 0A jz loc_1470 ; Jump if zero -273F:74CF 26: 88 1D mov es:[di],bl -273F:74D2 26: 80 25 F0 and byte ptr es:[di],0F0h -273F:74D6 80 CA 01 or dl,1 -273F:74D9 loc_1470: ; xref 273F:74CD -273F:74D9 59 pop cx -273F:74DA 80 E3 0F and bl,0Fh -273F:74DD E9 FEA3 jmp loc_1437 ; (7383) -273F:74E0 loc_1471: -273F:74E0 58 pop ax -273F:74E1 1F pop ds -273F:74E2 FF 26 0776 jmp [data_575] ; For VGA, no implementation - animation_decode_inner endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:741C, 7421, 7433 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:74E6 sub_186 proc near -273F:74E6 8A F4 mov dh,ah -273F:74E8 D1 D0 rcl ax,1 ; Rotate thru carry -273F:74EA E2 03 loop locloop_1472 ; Loop if cx > 0 - -273F:74EC AC lodsb ; String [si] to al -273F:74ED B1 08 mov cl,8 - -273F:74EF locloop_1472: ; xref 273F:74EA -273F:74EF D1 D0 rcl ax,1 ; Rotate thru carry -273F:74F1 E2 03 loop locloop_1473 ; Loop if cx > 0 - -273F:74F3 AC lodsb ; String [si] to al -273F:74F4 B1 08 mov cl,8 - -273F:74F6 locloop_1473: ; xref 273F:74F1 -273F:74F6 D1 D0 rcl ax,1 ; Rotate thru carry -273F:74F8 E2 03 loop locloop_1474 ; Loop if cx > 0 - -273F:74FA AC lodsb ; String [si] to al -273F:74FB B1 08 mov cl,8 - -273F:74FD locloop_1474: ; xref 273F:74F8 -273F:74FD D1 D0 rcl ax,1 ; Rotate thru carry -273F:74FF E2 03 loop locloop_1475 ; Loop if cx > 0 - -273F:7501 AC lodsb ; String [si] to al -273F:7502 B1 08 mov cl,8 - -273F:7504 locloop_1475: ; xref 273F:74FF -273F:7504 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7506 E2 03 loop locloop_1476 ; Loop if cx > 0 - -273F:7508 AC lodsb ; String [si] to al -273F:7509 B1 08 mov cl,8 - -273F:750B locloop_1476: ; xref 273F:7506 -273F:750B D1 D0 rcl ax,1 ; Rotate thru carry -273F:750D E2 03 loop locloop_1477 ; Loop if cx > 0 - -273F:750F AC lodsb ; String [si] to al -273F:7510 B1 08 mov cl,8 - -273F:7512 locloop_1477: ; xref 273F:750D -273F:7512 D1 D0 rcl ax,1 ; Rotate thru carry -273F:7514 E2 03 loop locloop_1478 ; Loop if cx > 0 - -273F:7516 AC lodsb ; String [si] to al -273F:7517 B1 08 mov cl,8 - -273F:7519 locloop_1478: ; xref 273F:7514 -273F:7519 D1 D0 rcl ax,1 ; Rotate thru carry -273F:751B E2 03 loop locloop_1479 ; Loop if cx > 0 - -273F:751D AC lodsb ; String [si] to al -273F:751E B1 08 mov cl,8 - -273F:7520 locloop_1479: ; xref 273F:751B -273F:7520 C3 retn - sub_186 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:25C8, 25CD, 25DF - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7521 sub_187 proc near -273F:7521 8A C6 mov al,dh -273F:7523 D1 D2 rcl dx,1 ; Rotate thru carry -273F:7525 E2 07 loop locloop_1480 ; Loop if cx > 0 - -273F:7527 86 D0 xchg dl,al -273F:7529 AC lodsb ; String [si] to al -273F:752A 86 D0 xchg dl,al -273F:752C B1 08 mov cl,8 - -273F:752E locloop_1480: ; xref 273F:7525 -273F:752E D1 D2 rcl dx,1 ; Rotate thru carry -273F:7530 E2 07 loop locloop_1481 ; Loop if cx > 0 - -273F:7532 86 D0 xchg dl,al -273F:7534 AC lodsb ; String [si] to al -273F:7535 86 D0 xchg dl,al -273F:7537 B1 08 mov cl,8 - -273F:7539 locloop_1481: ; xref 273F:7530 -273F:7539 D1 D2 rcl dx,1 ; Rotate thru carry -273F:753B E2 07 loop locloop_1482 ; Loop if cx > 0 - -273F:753D 86 D0 xchg dl,al -273F:753F AC lodsb ; String [si] to al -273F:7540 86 D0 xchg dl,al -273F:7542 B1 08 mov cl,8 - -273F:7544 locloop_1482: ; xref 273F:753B -273F:7544 D1 D2 rcl dx,1 ; Rotate thru carry -273F:7546 E2 07 loop locloop_1483 ; Loop if cx > 0 - -273F:7548 86 D0 xchg dl,al -273F:754A AC lodsb ; String [si] to al -273F:754B 86 D0 xchg dl,al -273F:754D B1 08 mov cl,8 - -273F:754F locloop_1483: ; xref 273F:7546 -273F:754F D1 D2 rcl dx,1 ; Rotate thru carry - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 285 - -273F:7551 E2 07 loop locloop_1484 ; Loop if cx > 0 - -273F:7553 86 D0 xchg dl,al -273F:7555 AC lodsb ; String [si] to al -273F:7556 86 D0 xchg dl,al -273F:7558 B1 08 mov cl,8 - -273F:755A locloop_1484: ; xref 273F:7551 -273F:755A D1 D2 rcl dx,1 ; Rotate thru carry -273F:755C E2 07 loop locloop_1485 ; Loop if cx > 0 - -273F:755E 86 D0 xchg dl,al -273F:7560 AC lodsb ; String [si] to al -273F:7561 86 D0 xchg dl,al -273F:7563 B1 08 mov cl,8 - -273F:7565 locloop_1485: ; xref 273F:755C -273F:7565 D1 D2 rcl dx,1 ; Rotate thru carry -273F:7567 E2 07 loop locloop_1486 ; Loop if cx > 0 - -273F:7569 86 D0 xchg dl,al -273F:756B AC lodsb ; String [si] to al -273F:756C 86 D0 xchg dl,al -273F:756E B1 08 mov cl,8 - -273F:7570 locloop_1486: ; xref 273F:7567 -273F:7570 D1 D2 rcl dx,1 ; Rotate thru carry -273F:7572 E2 07 loop locloop_1487 ; Loop if cx > 0 - -273F:7574 86 D0 xchg dl,al -273F:7576 AC lodsb ; String [si] to al -273F:7577 86 D0 xchg dl,al -273F:7579 B1 08 mov cl,8 - -273F:757B locloop_1487: ; xref 273F:7572 -273F:757B C3 retn - sub_187 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:075E - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:757C show_startup proc near -273F:757C E8 8D3E call validate_header -273F:757F B4 48 mov ah,48h -273F:7581 BB FFFF mov bx,0FFFFh -273F:7584 CD 21 int 21h ; DOS Services ah=function 48h - ; allocate memory, bx=bytes/16 -273F:7586 81 FB 61A8 cmp bx,61A8h -273F:758A 73 08 jae loc_1488 ; There is enough memory -273F:758C B8 0008 mov ax,8 -273F:758F B6 01 mov dh,1 -273F:7591 E8 CA10 call display_message ; (3FA4) -273F:7594 loc_1488: ; xref 273F:758A - assume ds:data_seg -273F:7594 89 1E 4CFC mov largest_free_block,bx ; (31E4:4CFC=0) -273F:7598 89 1E 4D02 mov buffer_segment_end, bx ; (31E4:4D02=0) -273F:759C B4 48 mov ah,48h -273F:759E CD 21 int 21h ; DOS Services ah=function 48h - ; allocate memory, bx=bytes/16 -273F:75A0 A3 4D00 mov buffer_segment, ax ; (31E4:4D00=0) -273F:75A3 01 06 4D02 add buffer_segment_end, ax ; (31E4:4D02=0) -273F:75A7 FF 16 0764 call [empty_palette_proc] -273F:75AB B8 0019 mov ax,19h ; Get first palette -273F:75AE E8 C516 call read_palette -273F:75B1 B8 0018 mov ax,18h ; Revolution title image -273F:75B4 E8 059C call read_entry_into_buffer -273F:75B7 E8 05CF call decode_and_fade_in_display -273F:75BA 33 C0 xor ax,ax -273F:75BC E8 D42A call sleep - -273F:75BF B8 001A mov ax,1Ah ; Virgin games image load -273F:75C2 E8 058E call read_entry_into_buffer -273F:75C5 B8 0096 mov ax,96h -273F:75C8 E8 D41E call sleep - -273F:75CB FF 16 0766 call word ptr [fade_out_proc] -273F:75CF B8 001B mov ax,1Bh -273F:75D2 E8 C4F2 call read_palette -273F:75D5 E8 05B1 call decode_and_fade_in_display -273F:75D8 33 C0 xor ax,ax -273F:75DA E8 D40C call sleep - -273F:75DD B8 001E mov ax,1Eh ; Virtual Theatre title -273F:75E0 E8 0570 call read_entry_into_buffer -273F:75E3 B8 0096 mov ax,96h -273F:75E6 E8 D400 call sleep -273F:75E9 FF 16 0766 call word ptr [fade_out_proc] -273F:75ED B8 001F mov ax,1Fh -273F:75F0 E8 C4D4 call read_palette ; (3AC7) -273F:75F3 E8 0593 call decode_and_fade_in_display -273F:75F6 33 C0 xor ax,ax ; Zero register -273F:75F8 E8 D3EE call sleep ; (49E9) - -273F:75FB B8 001C mov ax,1Ch ; Lure of the Temptress title -273F:75FE E8 0552 call read_entry_into_buffer -273F:7601 B8 0096 mov ax,96h -273F:7604 E8 D3E2 call sleep -273F:7607 FF 16 0766 call word ptr [fade_out_proc] -273F:760B B8 001D mov ax,1Dh -273F:760E E8 C4B6 call read_palette -273F:7611 E8 0575 call decode_and_fade_in_display -273F:7614 33 C0 xor ax,ax -273F:7616 E8 D3D0 call sleep - -273F:7619 F6 06 5660 08 test music_status,8 -273F:761E 75 27 jnz loc_1489 -273F:7620 B8 000A mov ax,0Ah -273F:7623 8B 0E 4D00 mov cx, buffer_segment ; (31E4:4D00=0) -273F:7627 33 D2 xor dx,dx ; Zero register -273F:7629 89 0E 5664 mov word ptr play_music_proc+2,cx -273F:762D C7 06 5662 0000 mov play_music_proc, 0 -273F:7633 8B 1E 4D00 mov bx, buffer_segment ; (31E4:4D00=0) -273F:7637 89 1E 4CE4 mov data_segment2, bx -273F:763B 80 26 11D0 EF and menubar_state, 0EFh ; (31E4:11D0=3) -273F:7640 E8 8CD1 call read_entry ; (0314) -273F:7643 01 16 4D00 add buffer_segment,dx ; (31E4:4D00=0) -273F:7647 loc_1489: ; xref 273F:761E -273F:7647 B8 0096 mov ax,96h -273F:764A E8 D39C call sleep ; (49E9) -273F:764D F6 06 11D0 40 test menubar_state, 40h ; Skip the intro? -273F:7652 75 03 jnz loc_1490 ; Jump if not zero -273F:7654 E8 2C65 call show_introduction ; Run the intro -273F:7657 loc_1490: ; xref 273F:7652 -273F:7657 E8 290A call sub_246 ; (9F64) - -273F:765A B8 0010 mov ax, 10h ; Load strings resource -273F:765D E8 0514 call read_into_buffer -273F:7660 A3 4CE8 mov strings_segment, ax -273F:7663 B8 0009 mov ax,9 ; Load names resource -273F:7666 E8 050B call read_into_buffer -273F:7669 A3 4CEE mov names_segment, ax -273F:766C B8 0003 mov ax,3 ; Load alternate font -273F:766F E8 0502 call read_into_buffer -273F:7672 A3 4CF0 mov font2_segment, ax -273F:7675 80 0E 073C 02 or status_flags, STATUS_UNKNOWN - -273F:767A B8 0001 mov ax, 1 ; Load cursors resource -273F:767D E8 04F4 call read_into_buffer -273F:7680 A3 4CF4 mov cursors_segment, ax -273F:7683 A1 4D00 mov ax, buffer_segment -273F:7686 A3 4CFE mov data_814, ax -273F:7689 E9 0408 jmp load_resources - show_startup endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:007A - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animations_preload proc near -273F:768C E8 8B6C call read_and_validate_header -273F:768F úBE B883 mov si, offset animation_block_list -273F:7692 loc_1492: -273F:7692 ú8B 1C mov bx, [si] -273F:7694 0B DB or bx, bx ; End of list? -273F:7696 74 09 jz loc_1493 ; Jump if yes -273F:7698 83 C6 02 add si, 2 -273F:769B 80 67 02 F7 and byte ptr [bx+2], 0F7h -273F:769F EB F1 jmp short loc_1492 - -273F:76A1 loc_1493: -273F:76A1 úBE B883 mov si, offset animation_block_list -273F:76A4 loc_1494: -273F:76A4 ú8B 1C mov bx, [si] -273F:76A6 0B DB or bx, bx ; End of list? -273F:76A8 74 13 jz loc_1495 ; Jump if yes -273F:76AA 83 C6 02 add si,2 -273F:76AD F6 47 02 20 test byte ptr [bx+ANIM_FLAGS], 20h ; ' ' -273F:76B1 F6 47 02 02 test byte ptr [bx+ANIM_FLAGS], 2 -273F:76B5 74 ED jz loc_1494 ; Jump if zero -273F:76B7 80 4F 02 08 or byte ptr [bx+ANIM_FLAGS], 8 -273F:76BB EB E7 jmp short loc_1494 - -273F:76BD loc_1495: ; xref 273F:76A8 -273F:76BD E8 0324 call sub_194 -273F:76C0 8B 1E 9832 mov bx, room_number -273F:76C4 E8 9621 call get_room_resource_pointer -273F:76C7 8B 74 06 mov si, [si+6] -273F:76CA 0B F6 or si, si ; Any table set? -273F:76CC 74 20 jz loc_1498 ; Skip if not - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:8FD0 - ; si = Offset of table for animation resources for a room - - animations_preload_2: -273F:76CE ú8B 1C mov bx, [si] -273F:76D0 0B DB or bx, bx ; End of list reached? -273F:76D2 74 1A jz loc_1498 ; Jump if yes -273F:76D4 F7 47 03 FFFF test word ptr [bx+3], 0FFFFh -273F:76D9 75 0E jnz loc_1497 ; Jump if not zero -273F:76DB 89 1D mov [di], bx ; Store in output list -273F:76DD 83 C7 02 add di, 2 ; Move to next position -273F:76E0 56 push si -273F:76E1 57 push di -273F:76E2 E8 00FD call animation_decode ; Decode animation -273F:76E5 5F pop di -273F:76E6 5E pop si -273F:76E7 72 0A jc loc_1499 ; Jump if carry Set -273F:76E9 loc_1497: ; xref 273F:76D9 -273F:76E9 83 C6 02 add si,2 -273F:76EC EB E0 jmp animations_preload_2 -273F:76EE loc_1498: ; xref 273F:76CC, 76D2 -273F:76EE C7 05 0000 mov word ptr [di],0 -273F:76F2 C3 retn -273F:76F3 loc_1499: ; xref 273F:76E7 -273F:76F3 C7 05 0000 mov word ptr [di],0 -273F:76F7 E8 00A8 call sub_192 ; (77A2) -273F:76FA 73 90 jnc animations_preload -273F:76FC C3 retn - animations_preload endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:152C, 15D2, 1617 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animation_resolve_segment proc near - -273F:76FD loc_1500: ; xref 273F:7790 -273F:76FD ú83 7F 1B FE cmp word ptr [bx+1Bh],0FFFEh -273F:7701 72 05 jb loc_1501 ; Jump if below -273F:7703 BF 5810 mov di, offset voice_anim_block -273F:7706 EB 06 jmp short loc_1502 ; (770E) -273F:7708 loc_1501: -273F:7708 8B 77 19 mov si, [bx+ANIM_HOTSPOT_OFFSET] -273F:770B 8B 7C 21 mov di, [si+HS_PIXEL_OFFSET] - -; Loop to see if animation_block_list contains any existing matching entry -; (scanning until a 0 entry is found). If it's found, the segment value at -; word [di+3] is returned - -273F:770E loc_1502: -273F:770E 53 push bx -273F:770F úBB B883 mov bx, offset animation_block_list -273F:7712 loc_1503: -273F:7712 ú3B 3F cmp di,[bx] -273F:7714 75 03 jne loc_1504 ; Jump if not equal -273F:7716 E9 0081 jmp loc_1510 ; (779A) -273F:7719 loc_1504: ; xref 273F:7714 -273F:7719 F7 07 FFFF test word ptr [bx],0FFFFh -273F:771D 74 05 jz loc_1505 ; Jump if zero -273F:771F 83 C3 02 add bx,2 -273F:7722 EB EE jmp short loc_1503 - -; At this point, the end of the list at animation_block_list has been reached - -273F:7724 loc_1505: ; xref 273F:771D -273F:7724 F6 06 073D 01 test status_flags2, 1 -273F:7729 74 03 jz loc_1506 ; Jump if zero -273F:772B 5B pop bx -273F:772C EB 5C jmp short loc_1507 ; (778A) - -; The following code seems to be responsible for preparing the data. Perhaps -; uncompressing it the first time from some source? - -273F:772E loc_1506: ; xref 273F:7729 -273F:772E 53 push bx -273F:772F 57 push di -273F:7730 8B DF mov bx,di -273F:7732 E8 00AD call animation_decode -273F:7735 5F pop di -273F:7736 5E pop si -273F:7737 73 5A jnc loc_1509 ; Jump if carry=0 -273F:7739 E8 0066 call sub_192 ; (77A2) -273F:773C 73 51 jnc loc_1508 ; Jump if carry=0 -273F:773E 5B pop bx -273F:773F 81 7F 1B 03E9 cmp word ptr [bx+ANIM_HOTSPOT_ID], RATPOUCH_HOTSPOT_ID -273F:7744 72 44 jb loc_1507 ; Jump if below -273F:7746 81 7F 1B 0408 cmp word ptr [bx+ANIM_HOTSPOT_ID], FIRST_OBJECT_HOTSPOT_ID -273F:774B 73 3D jae loc_1507 ; Jump if above or = -273F:774D 83 7F 0E 2A cmp word ptr [bx+ANIM_ROOM_NUM], 2Ah -273F:7751 73 37 jae loc_1507 ; Jump if above or = -273F:7753 8B 77 19 mov si, [bx+ANIM_HOTSPOT_OFFSET] -273F:7756 8B FB mov di, bx -273F:7758 E8 CC2C call character_pathfind_clear -273F:775B C7 44 06 0018 mov word ptr [si+HS_ROOM_NUM], 24 -273F:7760 C7 47 0E 0018 mov word ptr [bx+ANIM_ROOM_NUM], 24 -273F:7765 C7 44 0D 00C0 mov word ptr [si+HS_X], 80h + 64 -273F:776A C7 07 00C0 mov word ptr [bx+ANIM_X], 80h + 64 -273F:776E C7 44 0F 00F4 mov word ptr [si+HS_Y], 80h + 74h -273F:7773 C7 47 02 00F4 mov word ptr [bx+ANIM_Y], 80h + 74h -273F:7778 C6 06 4F8A 01 mov data_817, 1 -273F:777D 53 push bx -273F:777E 8B DE mov bx,si -273F:7780 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:7783 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:7786 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:7789 5B pop bx -273F:778A loc_1507: -273F:778A 33 C0 xor ax,ax ; Couldn't resolve -273F:778C F9 stc ; Flag error occurred -273F:778D EB 0F jmp short loc_1511 -273F:778F loc_1508: ; xref 273F:773C -273F:778F 5B pop bx -273F:7790 E9 FF6A jmp loc_1500 ; (76FD) -273F:7793 loc_1509: ; xref 273F:7737 -273F:7793 89 3C mov [si], di -273F:7795 C7 44 02 0000 mov word ptr [si+2],0 -273F:779A loc_1510: ; xref 273F:7716 -273F:779A 5B pop bx -273F:779B 8B 45 03 mov ax, [di+3] -273F:779E loc_1511: -273F:779E 89 47 0A mov [bx+ANIM_SEGMENT], ax ; Save segment -273F:77A1 C3 retn - - animation_resolve_segment endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:76F7, 7739 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:77A2 sub_192 proc near -273F:77A2 úBE B883 mov si, offset animation_block_list -273F:77A5 loc_1512: ; xref 273F:77B2, 77B8 -273F:77A5 ú8B 1C mov bx,[si] -273F:77A7 0B DB or bx,bx ; Zero ? -273F:77A9 74 0F jz loc_1513 ; Jump if zero -273F:77AB 83 C6 02 add si,2 -273F:77AE F6 47 02 21 test byte ptr [bx+PIXEL_FLAGS], 21h ; '!' -273F:77B2 75 F1 jnz loc_1512 ; Jump if not zero -273F:77B4 80 4F 02 08 or byte ptr [bx+PIXEL_FLAGS], 8 -273F:77B8 EB EB jmp short loc_1512 ; (77A5) -273F:77BA loc_1513: ; xref 273F:77A9 -273F:77BA úBF B14E mov di, offset animation_table -273F:77BD 8B 16 9832 mov dx, room_number -273F:77C1 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:77C4 locloop_1514: ; xref 273F:77DC -273F:77C4 F6 45 0C FF test byte ptr [di+ANIM_LAYER], 0FFh -273F:77C8 74 0F jz loc_1515 ; Jump if zero -273F:77CA 3B 55 0E cmp dx, [di+ANIM_ROOM_NUM] -273F:77CD 75 0A jne loc_1515 ; Jump if not equal -273F:77CF 8B 75 19 mov si, [di+ANIM_HOTSPOT_OFFSET] -273F:77D2 8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:77D5 80 67 02 F7 and byte ptr [bx+PIXEL_FLAGS], 0F7h -273F:77D9 loc_1515: -273F:77D9 83 C7 29 add di, ANIMATION_SLOT_SIZE -273F:77DC E2 E6 loop locloop_1514 ; Loop if cx > 0 - -273F:77DE E8 0203 call sub_194 ; (79E4) -273F:77E1 C3 retn - sub_192 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:3D28, 76E2, 7732 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animation_decode proc near -273F:77E2 80 3E 0786 02 cmp byte ptr ds:[drive_number],2 ; (273F:0786=0E8h) -273F:77E7 73 05 jae loc_1516 ; Jump if above or = -273F:77E9 53 push bx -273F:77EA E8 A772 call show_disk_cursor -273F:77ED 5B pop bx -273F:77EE loc_1516: ; xref 273F:77E7 -273F:77EE 8B 07 mov ax,[bx] -273F:77F0 53 push bx -273F:77F1 E8 8BF2 call get_entry_size -273F:77F4 5B pop bx -273F:77F5 8B 0E 4D02 mov cx, buffer_segment_end -273F:77F9 2B CA sub cx,dx -273F:77FB 83 E9 08 sub cx,8 -273F:77FE 3B 0E 4D00 cmp cx, buffer_segment -273F:7802 73 02 jae loc_1517 ; Jump if above or = -273F:7804 F9 stc ; Set carry flag -273F:7805 C3 retn -273F:7806 loc_1517: ; xref 273F:7802 -273F:7806 89 0E 4D04 mov anim_src_segment2, cx -273F:780A 89 0E 4D06 mov anim_src_segment, cx -273F:780E 8B 07 mov ax,[bx] ; Get anim resource id -273F:7810 33 D2 xor dx,dx ; Read into cx:dx -273F:7812 53 push bx -273F:7813 E8 8AFE call read_entry -273F:7816 01 16 4D06 add anim_src_segment, dx ; Save end of animation -273F:781A 1E push ds -273F:781B A1 4D06 mov ax, anim_src_segment -273F:781E 8E C0 mov es,ax -273F:7820 A1 4D04 mov ax, anim_src_segment2 -273F:7823 8E D8 mov ds,ax -273F:7825 8B 0E 0000 mov cx,ds:[0] ; Get in # table entries -273F:7829 26: 89 0E 0000 mov es:[0], cx ; Store # entries -273F:782E B5 05 mov ch,5 -273F:7830 86 E9 xchg ch,cl -273F:7832 BE 0002 mov si, 2 ; Point to table start -273F:7835 8B FE mov di,si ; Point to dest table data -273F:7837 33 D2 xor dx,dx -273F:7839 loc_1518: -273F:7839 AD lodsw ; String [si] to ax -273F:783A AB stosw ; Store ax to es:[di] -273F:783B 05 001F add ax,1Fh -273F:783E D3 E8 shr ax,cl ; Shift w/zeros fill -273F:7840 03 D0 add dx,ax -273F:7842 80 ED 01 sub ch,1 -273F:7845 75 F2 jnz loc_1518 ; Jump if not zero - -; At this point the entire header has been copied from ds:0 to es:0, and -; dx = summation : foreach header value -> (value + 0x1f) / 32 - -273F:7847 1F pop ds -273F:7848 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:784D 75 0B jne loc_1519 ; Jump if not equal -273F:784F 8B C2 mov ax,dx -273F:7851 05 0003 add ax,3 -273F:7854 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:7856 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:7858 03 D0 add dx,ax -273F:785A loc_1519: ; xref 273F:784D -273F:785A 81 C2 0081 add dx,81h ; Add extra needed amount -273F:785E 8B 0E 4D00 mov cx, buffer_segment -273F:7862 03 CA add cx,dx -273F:7864 3B 0E 4D02 cmp cx, buffer_segment_end ; Enough room? -273F:7868 72 03 jb loc_1520 ; Yes, so carry on -273F:786A 5E pop si ; There won't be space left -273F:786B F9 stc ; Flag error -273F:786C C3 retn -273F:786D loc_1520: -273F:786D A1 4D00 mov ax, buffer_segment -273F:7870 8E C0 mov es,ax -273F:7872 8B 16 4D04 mov dx, anim_src_segment2 -273F:7876 E8 FABB call animation_decode_inner -273F:7879 5E pop si ; Retrieve anim rec ptr -273F:787A 89 7C 05 mov [si+PIXEL_DATA_SIZE], di ; Store size of decoded rsc? -273F:787D 83 6C 05 40 sub word ptr [si+PIXEL_DATA_SIZE], 40h ; ??? -273F:7881 33 FF xor di, di -273F:7883 F6 44 02 04 test byte ptr [si+PIXEL_FLAGS], PIXELFLAG_HAS_TABLE -273F:7887 74 34 jz loc_1523 ; Skip if not -273F:7889 56 push si -273F:788A 1E push ds -273F:788B 8A 16 0742 mov dl, video_style -273F:788F A1 4D06 mov ax, anim_src_segment -273F:7892 8E D8 mov ds, ax -273F:7894 úBE 0002 mov si, 2 ; Offset of 1st header entry -273F:7897 8B 0E 0000 mov cx, ds:[0] ; Get number of entries -273F:789B 8B E9 mov bp, cx -273F:789D D1 E5 shl bp, 1 - -273F:789F locloop_1521: -273F:789F 26: 89 2D mov es:[di],bp -273F:78A2 83 C7 02 add di,2 -273F:78A5 8B 04 mov ax,[si] -273F:78A7 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:78A9 83 C6 02 add si,2 -273F:78AC 03 E8 add bp,ax -273F:78AE 80 FA 01 cmp dl, VIDEO_STYLE_VGA -273F:78B1 74 06 je loc_1522 ; Jump if equal -273F:78B3 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:78B5 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:78B7 03 E8 add bp,ax -273F:78B9 loc_1522: ; xref 273F:78B1 -273F:78B9 E2 E4 loop locloop_1521 ; Loop if cx > 0 -273F:78BB 1F pop ds -273F:78BC 5E pop si - -273F:78BD loc_1523: ; xref 273F:7887 -273F:78BD 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:78C2 74 58 je loc_1525 ; Jump if equal - -273F:78C4 8B 4C 05 mov cx, [si+PIXEL_DATA_SIZE]; Get size of file -273F:78C7 D1 E9 shr cx, 1 ; Divide by 2 for # words -273F:78C9 56 push si -273F:78CA úBE 0040 mov si, 40h -273F:78CD A1 4D00 mov ax, buffer_segment -273F:78D0 8E C0 mov es, ax -273F:78D2 1E push ds -273F:78D3 8E D8 mov ds, ax - -; Copy the decoded data from offset 40h back to offset 0h. This will discard -; the 40h byte header that was used during the decoding process - -273F:78D5 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:78D7 1F pop ds -273F:78D8 5E pop si -273F:78D9 8B C7 mov ax,di -273F:78DB 89 44 05 mov [si+PIXEL_DATA_SIZE], ax ; Store new size -273F:78DE 8B D0 mov dx, ax -273F:78E0 83 EA 01 sub dx, 1 -273F:78E3 D1 EA shr dx, 1 -273F:78E5 D1 EA shr dx, 1 -273F:78E7 D1 EA shr dx, 1 -273F:78E9 D1 EA shr dx, 1 -273F:78EB 83 C2 01 add dx, 1 ; # paragraphs + 1 -273F:78EE 51 push cx -273F:78EF 8B CA mov cx, dx -273F:78F1 03 0E 4D00 add cx, buffer_segment -273F:78F5 3B 0E 4D02 cmp cx, buffer_segment_end ; Fit within memory? -273F:78F9 59 pop cx -273F:78FA 72 02 jc loc_1524 ; Jump if yes -273F:78FC F9 stc ; Set carry to flag error -273F:78FD C3 retn - -273F:78FE loc_1524: -273F:78FE 8B 2E 4D00 mov bp, buffer_segment -273F:7902 01 16 4D00 add buffer_segment, dx -273F:7906 A1 4D06 mov ax, anim_src_segment ; Get ptr to copy of -273F:7909 8E C0 mov es,ax ; anim table header -273F:790B 26: A1 0002 mov ax, es:[2] ; Get 1st entry size -273F:790F D1 E8 shr ax, 1 ; Get number of words -273F:7911 89 44 07 mov [si+PIXEL_FRAME_SIZE], ax ; Store frame size -273F:7914 89 6C 03 mov [si+PIXEL_DATA_SEGMENT], bp -273F:7917 E8 01F4 call animation_decode_2 -273F:791A F8 clc ; Clear carry flag -273F:791B C3 retn - -; Start of post processing code for when in EGA mode -273F:791C loc_1525: -273F:791C 8B 4C 05 mov cx, [si+5] -273F:791F 8B C1 mov ax, cx -273F:7921 D1 E8 shr ax, 1 -273F:7923 D1 E8 shr ax, 1 -273F:7925 01 44 05 add [si+PIXEL_DATA_SIZE], ax -273F:7928 03 C1 add ax, cx -273F:792A 05 000F add ax, 0Fh -273F:792D D1 E8 shr ax, 1 -273F:792F D1 E8 shr ax, 1 -273F:7931 D1 E8 shr ax, 1 -273F:7933 D1 E8 shr ax, 1 -273F:7935 01 06 4D00 add buffer_segment, ax -273F:7939 D1 E9 shr cx, 1 -273F:793B 06 push es -273F:793C A1 4D06 mov ax, anim_src_segment -273F:793F 8E C0 mov es, ax -273F:7941 26: A1 0002 mov ax, es:[2] -273F:7945 D1 E8 shr ax, 1 -273F:7947 D1 E8 shr ax, 1 -273F:7949 26: 03 06 0002 add ax, es:[2] -273F:794E D1 E8 shr ax, 1 -273F:7950 89 44 07 mov [si+PIXEL_FRAME_SIZE], ax -273F:7953 07 pop es -273F:7954 1E push ds -273F:7955 8C C0 mov ax,es -273F:7957 89 44 03 mov [si+PIXEL_DATA_SEGMENT], ax -273F:795A 8E D8 mov ds, ax -273F:795C úBE 0040 mov si, 40h -273F:795F 57 push di -273F:7960 F3/ A5 rep movsw -273F:7962 8B D7 mov dx, di -273F:7964 5F pop di -273F:7965 1F pop ds -273F:7966 1E push ds -273F:7967 A1 4D06 mov ax, anim_src_segment -273F:796A 8E D8 mov ds, ax -273F:796C 8B 0E 0000 mov cx, ds:[0] -273F:7970 úBE 0002 mov si, 2 -273F:7973 83 EF 01 sub di, 1 - -273F:7976 locloop_1526: -273F:7976 AD lodsw -273F:7977 D1 E8 shr ax, 1 -273F:7979 50 push ax -273F:797A 03 F8 add di, ax -273F:797C 57 push di -273F:797D D1 E8 shr ax, 1 -273F:797F D1 E8 shr ax, 1 -273F:7981 03 F8 add di, ax -273F:7983 57 push di -273F:7984 E2 F0 loop locloop_1526 ; Loop if cx > 0 - -273F:7986 8B F2 mov si,dx -273F:7988 83 EE 01 sub si,1 -273F:798B 8B 16 0000 mov dx, ds:[0] -273F:798F 06 push es -273F:7990 1F pop ds -273F:7991 FD std ; Set direction flag -273F:7992 loc_1527: ; xref 273F:79B4 -273F:7992 5B pop bx -273F:7993 5F pop di -273F:7994 59 pop cx -273F:7995 D1 E9 shr cx,1 ; Shift w/zeros fill -273F:7997 D1 E9 shr cx,1 ; Shift w/zeros fill - -273F:7999 locloop_1528: ; xref 273F:79AF -273F:7999 AC lodsb ; String [si] to al -273F:799A 8A E0 mov ah,al -273F:799C AA stosb ; Store al to es:[di] -273F:799D AC lodsb ; String [si] to al -273F:799E 0A E0 or ah,al -273F:79A0 AA stosb ; Store al to es:[di] -273F:79A1 AC lodsb ; String [si] to al -273F:79A2 0A E0 or ah,al -273F:79A4 AA stosb ; Store al to es:[di] -273F:79A5 AC lodsb ; String [si] to al -273F:79A6 0A E0 or ah,al -273F:79A8 AA stosb ; Store al to es:[di] -273F:79A9 26: 88 27 mov es:[bx],ah -273F:79AC 83 EB 01 sub bx,1 -273F:79AF E2 E8 loop locloop_1528 ; Loop if cx > 0 - -273F:79B1 83 EA 01 sub dx,1 -273F:79B4 75 DC jnz loc_1527 ; Jump if not zero -273F:79B6 1F pop ds -273F:79B7 FC cld ; Clear direction -273F:79B8 F8 clc ; Clear carry flag -273F:79B9 C3 retn - animation_decode endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_deactivate_hotspot_set proc near -273F:79BA D1 E3 shl bx,1 -273F:79BC 8B B7 13CA mov si, [hotspot_dealloc_table][bx] -273F:79C0 loc_1529: -273F:79C0 úAD lodsw ; String [si] to ax -273F:79C1 0B C0 or ax,ax ; Zero ? -273F:79C3 74 1D jz loc_ret_1530 ; Jump if zero -273F:79C5 56 push si -273F:79C6 8B D8 mov bx,ax -273F:79C8 E8 931D call get_room_resource_pointer -273F:79CB 5B pop bx -273F:79CC 87 DE xchg bx, si -273F:79CE 8B 7F 0B mov di, [bx+HS_ANIM_OFFSET] -273F:79D1 0B FF or di, di ; Zero ? -273F:79D3 74 EB jz loc_1529 ; Jump if zero - -273F:79D5 33 C0 xor ax,ax ; Zero register -273F:79D7 88 45 0C mov [di+ANIM_LAYER], al -273F:79DA 89 45 1B mov [di+ANIM_HOTSPOT_ID], ax -273F:79DD 89 47 0B mov [bx+HS_ANIM_OFFSET], ax -273F:79E0 EB DE jmp short loc_1529 ; (79C0) -273F:79E2 loc_ret_1530: ; xref 273F:79C3 -273F:79E2 C3 retn - seq_deactivate_hotspot_set endp - -273F:79E3 00 data_401 db 0 ; xref 273F:79E4, 7A4F, 7A8A - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:76BD, 77DE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:79E4 sub_194 proc near -273F:79E4 2E: C6 06 79E3 00 mov cs:data_401,0 ; (273F:79E3=0) -273F:79EA úBE B883 mov si, offset animation_block_list -273F:79ED 8B FE mov di,si -273F:79EF 8B 2E 4CFA mov bp,data_812 ; (31E4:4CFA=0) -273F:79F3 loc_1531: ; xref 273F:7A10, 7A33, 7A48, 7A55 -273F:79F3 úAD lodsw ; String [si] to ax -273F:79F4 0B C0 or ax,ax ; Zero ? -273F:79F6 74 5F jz loc_1534 ; Jump if zero -273F:79F8 8B D8 mov bx,ax -273F:79FA F6 47 02 08 test byte ptr [bx+2],8 -273F:79FE 75 4A jnz loc_1532 ; Jump if not zero -273F:7A00 F7 47 03 FFFF test word ptr [bx+3],0FFFFh -273F:7A05 74 48 jz loc_1533 ; Jump if zero -273F:7A07 89 1D mov [di],bx -273F:7A09 83 C7 02 add di,2 -273F:7A0C F6 47 02 20 test byte ptr [bx+2],20h ; ' ' -273F:7A10 75 E1 jnz loc_1531 ; Jump if not zero -273F:7A12 8B 47 03 mov ax,[bx+3] -273F:7A15 8E C5 mov es,bp -273F:7A17 89 6F 03 mov [bx+3],bp -273F:7A1A 8B 4F 05 mov cx,[bx+5] -273F:7A1D 8B D1 mov dx,cx -273F:7A1F 83 EA 01 sub dx,1 -273F:7A22 D1 EA shr dx,1 ; Shift w/zeros fill -273F:7A24 D1 EA shr dx,1 ; Shift w/zeros fill -273F:7A26 D1 EA shr dx,1 ; Shift w/zeros fill -273F:7A28 D1 EA shr dx,1 ; Shift w/zeros fill -273F:7A2A 83 C2 01 add dx,1 -273F:7A2D 03 EA add bp,dx -273F:7A2F 8C C2 mov dx,es -273F:7A31 3B C2 cmp ax,dx -273F:7A33 74 BE je loc_1531 ; Jump if equal -273F:7A35 1E push ds -273F:7A36 56 push si -273F:7A37 57 push di -273F:7A38 33 F6 xor si,si ; Zero register -273F:7A3A 33 FF xor di,di ; Zero register -273F:7A3C 8E D8 mov ds,ax -273F:7A3E 83 C1 01 add cx,1 -273F:7A41 D1 E9 shr cx,1 ; Shift w/zeros fill -273F:7A43 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:7A45 5F pop di -273F:7A46 5E pop si -273F:7A47 1F pop ds -273F:7A48 EB A9 jmp short loc_1531 ; (79F3) -273F:7A4A loc_1532: ; xref 273F:79FE -273F:7A4A C7 47 03 0000 mov word ptr [bx+3],0 -273F:7A4F loc_1533: ; xref 273F:7A05 -273F:7A4F 2E: C6 06 79E3 01 mov cs:data_401,1 ; (273F:79E3=0) -273F:7A55 EB 9C jmp short loc_1531 ; (79F3) -273F:7A57 loc_1534: ; xref 273F:79F6 -273F:7A57 C7 05 0000 mov word ptr [di],0 -273F:7A5B 89 2E 4D00 mov buffer_segment, bp ; (31E4:4D00=0) - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:7B0A, 8FD3 - -273F:7A5F sub_195: -273F:7A5F 57 push di -273F:7A60 úBE B14E mov si, offset animation_table -273F:7A63 B9 002D mov cx, NUM_ANIMATION_SLOTS - -273F:7A66 locloop_1535: ; xref 273F:7A86 -273F:7A66 F6 44 0C FF test byte ptr [si+0Ch],0FFh -273F:7A6A 74 17 jz loc_1538 ; Jump if zero -273F:7A6C 83 7C 1B FE cmp word ptr [si+1Bh],0FFFEh -273F:7A70 72 05 jb loc_1536 ; Jump if below -273F:7A72 úBF 5810 mov di, offset voice_anim_block -273F:7A75 EB 06 jmp short loc_1537 ; (7A7D) -273F:7A77 loc_1536: ; xref 273F:7A70 -273F:7A77 8B 7C 19 mov di,[si+19h] -273F:7A7A 8B 7D 21 mov di,[di+21h] -273F:7A7D loc_1537: ; xref 273F:7A75 -273F:7A7D 8B 45 03 mov ax,[di+3] -273F:7A80 89 44 0A mov [si+0Ah],ax -273F:7A83 loc_1538: ; xref 273F:7A6A -273F:7A83 83 C6 29 add si,29h -273F:7A86 E2 DE loop locloop_1535 ; Loop if cx > 0 - -273F:7A88 5F pop di -273F:7A89 F8 clc ; Clear carry flag - assume ds:seg_code -273F:7A8A 2E: F6 06 79E3 FF test cs:data_401,0FFh ; (273F:79E3=0) -273F:7A90 75 01 jnz loc_ret_1539 ; Jump if not zero -273F:7A92 F9 stc ; Set carry flag - -273F:7A93 loc_ret_1539: ; xref 273F:7A90 -273F:7A93 C3 retn - sub_194 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A651, A6AE, A700 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7A94 load_resources proc near - -273F:7A94 A1 4CFE mov ax, data_814 -273F:7A97 A3 4D00 mov buffer_segment, ax -273F:7A9A A3 4CE0 mov current_room_segment, ax -273F:7A9D A3 4CE2 mov data_segment, ax -273F:7AA0 05 2146 add ax,2146h -273F:7AA3 A3 4CE4 mov data_segment2, ax -273F:7AA6 05 0FA0 add ax, 0FA0h -273F:7AA9 A3 4CE6 mov talk_dialog_buffer, ax -273F:7AAC 05 0340 add ax,340h -273F:7AAF A3 4D00 mov buffer_segment, ax -273F:7AB2 B8 0004 mov ax,4 ; Read font data -273F:7AB5 E8 00BC call read_into_buffer -273F:7AB8 A3 4CF2 mov font_segment, ax -273F:7ABB B8 0005 mov ax,5 ; Read menubar -273F:7ABE 8B 0E 4CE2 mov cx,data_segment -273F:7AC2 BA 0080 mov dx,80h -273F:7AC5 E8 884C call read_entry -273F:7AC8 A1 4D00 mov ax,buffer_segment -273F:7ACB 8E C0 mov es,ax -273F:7ACD 8B 16 4CE2 mov dx,data_segment -273F:7AD1 FF 16 077C call [decode_entry_proc] -273F:7AD5 A1 4D00 mov ax,buffer_segment ; (31E4:4D00=0) -273F:7AD8 A3 4CF6 mov data_810,ax ; (31E4:4CF6=0) -273F:7ADB 8B 16 074C mov dx, menubar_block_size -273F:7ADF B1 04 mov cl,4 -273F:7AE1 D3 EA shr dx,cl ; Shift w/zeros fill -273F:7AE3 01 16 4D00 add buffer_segment, dx ; (31E4:4D00=0) -273F:7AE7 A1 4D00 mov ax,buffer_segment ; (31E4:4D00=0) -273F:7AEA A3 4CF8 mov data_811,ax ; (31E4:4CF8=0) -273F:7AED E8 00D1 call load_string_resources -273F:7AF0 A1 4D00 mov ax,buffer_segment ; (31E4:4D00=0) -273F:7AF3 8B 16 4D02 mov dx,buffer_segment_end ; (31E4:4D02=0) -273F:7AF7 2B D0 sub dx,ax -273F:7AF9 81 FA 186A cmp dx,186Ah -273F:7AFD 73 08 jae loc_1541 ; Jump if above or = -273F:7AFF B8 0008 mov ax,8 -273F:7B02 B6 01 mov dh,1 -273F:7B04 E8 C49D call display_message ; (3FA4) -273F:7B07 loc_1541: ; xref 273F:7AFD -273F:7B07 E8 9998 call sub_45 ; (14A2) -273F:7B0A E8 FF52 call sub_195 ; (7A5F) -273F:7B0D C3 retn - load_resources endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7917 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - animation_decode_2 proc near -273F:7B0E F6 44 02 10 test byte ptr [si+PIXEL_FLAGS], 10h -273F:7B12 74 3E jz loc_ret_1542 ; Jump if zero -273F:7B14 B8 2146 mov ax, 2146h -273F:7B17 03 06 4CE0 add ax, current_room_segment -273F:7B1B 2B 06 4CE2 sub ax, data_segment -273F:7B1F 8B 5C 05 mov bx, [si+PIXEL_DATA_SIZE] -273F:7B22 83 C3 0F add bx, 0Fh -273F:7B25 B1 04 mov cl, 4 -273F:7B27 D3 EB shr bx, cl ; Shift w/zeros fill -273F:7B29 3B D8 cmp bx, ax -273F:7B2B 73 25 jae loc_ret_1542 ; Jump if above or = -273F:7B2D 80 4C 02 20 or byte ptr [si+PIXEL_FLAGS], 20h -273F:7B31 1E push ds -273F:7B32 A1 4CE2 mov ax, data_segment -273F:7B35 01 1E 4CE2 add data_segment, bx -273F:7B39 8E C0 mov es, ax -273F:7B3B 8B 4C 05 mov cx, [si+PIXEL_DATA_SIZE] -273F:7B3E D1 E9 shr cx, 1 ; Shift w/zeros fill -273F:7B40 87 44 03 xchg [si+PIXEL_DATA_SEGMENT], ax -273F:7B43 A3 4D00 mov buffer_segment, ax -273F:7B46 8E D8 mov ds, ax -273F:7B48 56 push si -273F:7B49 33 F6 xor si, si -273F:7B4B 33 FF xor di, di -273F:7B4D F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:7B4F 5E pop si -273F:7B50 1F pop ds -273F:7B51 C3 retn - -273F:7B52 loc_ret_1542: -273F:7B52 C3 retn - animation_decode_2 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:75B4, 75C2, 75E0, 75FE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - read_entry_into_buffer proc near - -273F:7B53 8B 0E 4D00 mov cx, buffer_segment -273F:7B57 89 0E 4CE4 mov data_segment2, cx -273F:7B5B BA 0080 mov dx, 80h -273F:7B5E 80 26 11D0 EF and menubar_state, 0EFh -273F:7B63 E8 87AE call read_entry -273F:7B66 C3 retn - - read_entry_into_buffer endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A2BF, A2E9 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7B67 read_into_buffer_2 proc near -273F:7B67 8B 0E 4D00 mov cx,buffer_segment ; (31E4:4D00=0) -273F:7B6B 89 0E 4CE4 mov data_segment2, cx -273F:7B6F 80 26 11D0 EF and menubar_state, 0EFh ; (31E4:11D0=3) - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:765D, 7666, 766F, 767D, 7AB5, 7BCB, 7BDB - -273F:7B74 read_into_buffer: -273F:7B74 8B 0E 4D00 mov cx,buffer_segment ; (31E4:4D00=0) -273F:7B78 33 D2 xor dx,dx ; Zero register -273F:7B7A 80 26 11D0 EF and menubar_state, 0EFh ; (31E4:11D0=3) -273F:7B7F 51 push cx -273F:7B80 E8 8791 call read_entry ; (0314) -273F:7B83 01 16 4D00 add buffer_segment, dx ; (31E4:4D00=0) -273F:7B87 58 pop ax -273F:7B88 C3 retn - read_into_buffer_2 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:75B7, 75D5, 75F3, 7611 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7B89 decode_and_fade_in_display proc near - -273F:7B89 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:7B8E 74 10 je loc_1543 ; Jump if equal -273F:7B90 B8 A000 mov ax, VGA_SEGMENT -273F:7B93 8E C0 mov es,ax -273F:7B95 8B 16 4D00 mov dx, buffer_segment ; decode loaded file entry -273F:7B99 E8 BDEE call decode_file_entry ; (398A) -273F:7B9C FF 26 0760 jmp word ptr [fade_in_proc] -273F:7BA0 loc_1543: ; xref 273F:7B8E -273F:7BA0 8B 16 4D00 mov dx, buffer_segment ; (31E4:4D00=0) -273F:7BA4 8B C2 mov ax,dx -273F:7BA6 05 0FA0 add ax,0FA0h -273F:7BA9 A3 4CE4 mov data_segment2, ax -273F:7BAC 05 0050 add ax,50h -273F:7BAF 8E C0 mov es,ax -273F:7BB1 E8 A8B6 call ega_decode_entry -273F:7BB4 E8 8DAA call clear_hotspot_rects -273F:7BB7 E8 F44B call menubar_clear_image -273F:7BBA E8 A49F call ega_show_menu -273F:7BBD FF 26 0760 jmp word ptr [fade_in_proc] - - decode_and_fade_in_display endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7AED, 8FAF, 93AC - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7BC1 load_string_resources proc near - assume ds:seg_code -273F:7BC1 83 3E 9832 2A cmp room_number, 2Ah -273F:7BC6 73 09 jae loc_1544 ; Jump if above or = -273F:7BC8 B8 0011 mov ax,11h -273F:7BCB E8 FFA6 call read_into_buffer ; (7B74) -273F:7BCE A3 4CEA mov strings_segment_2, ax -273F:7BD1 loc_1544: ; xref 273F:7BC6 -273F:7BD1 83 3E 9832 2A cmp room_number, 2Ah -273F:7BD6 72 09 jb loc_1545 ; Jump if below -273F:7BD8 B8 0012 mov ax,12h -273F:7BDB E8 FF96 call read_into_buffer ; (7B74) -273F:7BDE A3 4CEC mov strings_segment_3, ax -273F:7BE1 loc_1545: ; xref 273F:7BD6 -273F:7BE1 A1 4D00 mov ax, buffer_segment -273F:7BE4 A3 4CFA mov word ptr ds:[4CFAh],ax ; (273F:4CFA=0C183h) -273F:7BE7 C3 retn - load_string_resources endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7FF7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_character_in_room proc near - -0C07:7BE8 C7 06 BA1F 0000 mov general_val, 0 -0C07:7BEE 81 FB 03E8 cmp bx, PLAYER_HOTSPOT_ID -0C07:7BF2 72 E jb loc_ret_1546 -0C07:7BF4 E8 F1 90 call get_room_resource_pointer -0C07:7BF7 3B 4C 06 cmp cx, [si+HS_ROOM_NUM] -0C07:7BFA 75 06 jnz loc_ret_1546 -0C07:7BFC C7061FBA0100 mov general_val, 1 -0C07:7C02 C3 loc_ret_1546: ret - seq_character_in_room endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7FF7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7C03 hotspot_disable proc near -273F:7C03 E8 90E2 call get_room_resource_pointer -273F:7C06 80 64 03 7F and byte ptr [si+HS_FLAGS1], 7Fh -273F:7C0A C3 retn - hotspot_disable endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:60B5 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7C0B hotspot_enable proc near -273F:7C0B E8 90DA call get_room_resource_pointer -273F:7C0E 80 4C 03 80 or byte ptr [si+HS_FLAGS1], 80h -273F:7C12 C3 retn - hotspot_enable endp - -273F:7C13 00 - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - follower_tick_proc proc near -0C07:7C14 8B DE mov bx, si -0C07:7C16 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -0C07:7C19 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -0C07:7C1C F7 06 BA5F FFFF test script_val_37, 0FFFFh -0C07:7C22 75 38 jnz loc_1548_2 -0C07:7C24 8B DE mov bx, si -0C07:7C26 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -0C07:7C29 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -0C07:7C2C F7 44 61 FFFF test word ptr [si+HS_ACTION_OFFSET], 0FFFFh -0C07:7C31 75 29 jnz loc_1548_2 -0C07:7C33 8B 47 03 mov ax, [bx+CURRENT_ACTION_ROOM_NUM] -0C07:7C36 3B 44 06 cmp ax, [si+HS_ROOM_NUM] -0C07:7C39 74 21 jz loc_1548_2 -0C07:7C3B A1 6CF5 mov ax, [player_hotspot_rec+HS_ROOM_NUM] - -; The code below seems to use a lookup table for setting Ratpouch's destination -; to be certain different room numbers if the player is in certain rooms -0C07:7C3E 53 push bx -0C07:7C3F 81 7D 1B 03EF cmp word ptr [di+ANIM_HOTSPOT_ID], GOEWIN_HOTSPOT_ID -0C07:7C44 74 12 jz loc_1548 -0C07:7C46 BB 4F6D mov bx, offset follower_room_translate_list - 4 -0C07:7C49 83 C3 02 add bx, 2 - -273F:7C49 loc_1547: ; xref 273F:7C53 -273F:7C49 83 C3 02 add bx, 2 -273F:7C4C F6 07 FF test byte ptr [bx], 0FFh -273F:7C4F 74 07 jz loc_1548 ; Jump if zero -273F:7C51 3A 07 cmp al, [bx] ; Player's room #? -273F:7C53 75 F4 jne loc_1547 ; Jump if not equal -273F:7C55 8A 47 01 mov al, [bx+1] ; Get new room # -273F:7C58 loc_1548: -273F:7C58 5B pop bx -273F:7C59 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax - -273F:7C5C 8A 44 44 loc_1548_2: mov al, [si+HS_CHAR_MODE] -273F:7C5F 3C 02 cmp al, CHARMODE_IDLE -273F:7C61 75 35 jne loc_1550 ; Jump if not equal -273F:7C63 F6 06 4F8A FF test data_817, 0FFh -273F:7C68 74 24 jz loc_1549 ; Jump if zero -273F:7C6A C6 06 4F8A 00 mov data_817, 0 -273F:7C6F 83 44 61 05 add word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:7C73 83 C3 05 add bx, CURRENT_ACTION_RECORD_SIZE -273F:7C76 C6 44 4D 00 mov byte ptr [si+HS_V4D], 0 -273F:7C7A C7 47 01 13C2 mov word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 13C2h -273F:7C7F C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:7C82 C7 47 03 0007 mov word ptr [bx+CURRENT_ACTION_ROOM_NUM], 7 -273F:7C87 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:7C8B E9 D2F4 jmp standard_character_tick_proc -273F:7C8E loc_1549: ; xref 273F:7C68 -273F:7C8E F6 44 FF FF test byte ptr [si-1], 0FFh -273F:7C92 74 07 jz loc_1551 ; Jump if zero -273F:7C94 80 6C FF 01 sub byte ptr [si-1], 1 -273F:7C98 loc_1550: ; xref 273F:7C61 -273F:7C98 E9 D2E7 jmp standard_character_tick_proc -273F:7C9B loc_1551: ; xref 273F:7C92 -273F:7C9B 8B 5C 06 mov bx, [si+HS_ROOM_NUM] -273F:7C9E 83 EB 01 sub bx, 1 -273F:7CA1 D1 E3 shl bx, 1 -273F:7CA3 ú81 C3 4D10 add bx, 4D10h -273F:7CA7 8B 1F mov bx, [bx] -273F:7CA9 8A 0F mov cl, [bx] -273F:7CAB 0A C9 or cl, cl ; Zero ? -273F:7CAD 74 25 jz loc_1554 ; Jump if zero -273F:7CAF E8 C7BA call random -273F:7CB2 32 ED xor ch, ch -273F:7CB4 F7 E1 mul cx ; dx:ax = reg * ax -273F:7CB6 83 C3 01 add bx, 1 -273F:7CB9 0B D2 or dx, dx ; Zero ? -273F:7CBB 74 0F jz loc_1553 ; Jump if zero -273F:7CBD loc_1552: ; xref 273F:7CC5, 7CCA -273F:7CBD 8B 07 mov ax, [bx] -273F:7CBF 83 C3 02 add bx, 2 -273F:7CC2 3D FFFF cmp ax, 0FFFFh -273F:7CC5 75 F6 jne loc_1552 ; Jump if not equal -273F:7CC7 83 EA 01 sub dx, 1 -273F:7CCA 75 F1 jnz loc_1552 ; Jump if not zero -273F:7CCC loc_1553: ; xref 273F:7CBB -273F:7CCC 8B 07 mov ax, [bx] -273F:7CCE 83 C3 02 add bx, 2 -273F:7CD1 3D 0004 cmp ax, 4 -273F:7CD4 loc_1554: ; xref 273F:7CAD -273F:7CD4 74 61 je loc_1557 ; Jump if equal -273F:7CD6 3D 0003 cmp ax, 3 -273F:7CD9 75 0E jne loc_1555 ; Jump if not equal -273F:7CDB 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:7CDE 3B 06 6CF5 cmp ax, [player_hotspot_rec+HS_ROOM_NUM] -273F:7CE2 75 53 jne loc_1557 ; Jump if not equal -273F:7CE4 C7 47 FE 0004 mov word ptr [bx-2], 4 -273F:7CE9 loc_1555: ; xref 273F:7CD9 -273F:7CE9 8B CB mov cx,bx -273F:7CEB 83 3F FE cmp word ptr [bx], 0FFFEh -273F:7CEE 75 2A jne loc_1556 ; Jump if not equal -273F:7CF0 8B DE mov bx,si -273F:7CF2 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:7CF5 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:7CF8 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:7CFB C7 06 0001 69D3 mov word ptr ds:[1],69D3h ; (273F:0001=31E4h) -273F:7D01 C7 06 69D3 0020 mov word ptr ds:[69D3h],20h ; (273F:69D3=8006h) -273F:7D07 C7 06 69D5 0000 mov word ptr ds:[69D5h],0 ; (273F:69D5=433h) -273F:7D0D 83 C1 02 add cx, 2 -273F:7D10 83 44 61 05 add word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE -273F:7D14 8B 44 06 mov ax, [si+HS_ROOM_NUM] -273F:7D17 89 47 08 mov [bx+8], ax -273F:7D1A loc_1556: ; xref 273F:7CEE -273F:7D1A 8B DE mov bx, si -273F:7D1C 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:7D1F 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:7D22 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:7D25 89 4F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], cx -273F:7D28 C6 44 44 00 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_NONE -273F:7D2C E8 C73D call random -273F:7D2F B9 0020 mov cx, 20h -273F:7D32 F7 E1 mul cx ; dx:ax = reg * ax -273F:7D34 88 54 FF mov [si-1], dl -273F:7D37 loc_1557: ; xref 273F:7CD4, 7CE2 -273F:7D37 E9 D248 jmp standard_character_tick_proc - follower_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0D9B, 0E9B, 1381, 1D1D, 59C1, 5A23, 6305 - ; 6314, 6950, 8953, 8DF8 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - decode_string proc near - -273F:7D3A ú1E push ds -273F:7D3B 25 1FFF and ax,1FFFh -273F:7D3E E8 0099 call decode_string_init -273F:7D41 loc_1559: ; xref 273F:7D49 -273F:7D41 úE8 0061 call read_bit -273F:7D44 74 05 jz loc_1560 ; Jump if zero -273F:7D46 83 C6 02 add si,2 -273F:7D49 EB F6 jmp short loc_1559 ; (7D41) -273F:7D4B loc_1560: ; xref 273F:7D44 -273F:7D4B E8 0057 call read_bit -273F:7D4E loc_1561: ; xref 273F:7D5E, 7D7E, 7DA0 -273F:7D4E úE8 98F7 call decode_character -273F:7D51 0A C0 or al,al ; End of string sequence? -273F:7D53 74 4D jz loc_1568 ; If yes, then exit -273F:7D55 3C A0 cmp al,0A0h -273F:7D57 73 27 jae loc_1565 ; Jump if above or = -273F:7D59 3C 25 cmp al,25h ; '%' -273F:7D5B 74 03 je loc_1562 ; Jump if equal -273F:7D5D AA stosb ; Store al to es:[di] -273F:7D5E EB EE jmp short loc_1561 ; (7D4E) - -273F:7D60 loc_1562: ; % handler - if it's %1, replace -273F:7D60 E8 98E5 call decode_character ; it with the highlighted hotspot -273F:7D63 1E push ds ; name. Otherwise, replace it -273F:7D64 56 push si ; it with selected action string -273F:7D65 BE 31E4 mov si,seg data_seg -273F:7D68 8E DE mov ds,si -273F:7D6A BE 4B43 mov si, offset hotspot_name -273F:7D6D 3C 31 cmp al,31h ; '1' -273F:7D6F 74 03 je loc_1563 ; Jump if equal -273F:7D71 úBE 4B93 mov si, offset character_name -273F:7D74 loc_1563: -273F:7D74 úAC lodsb ; String [si] to al -273F:7D75 0A C0 or al,al -273F:7D77 74 03 jz loc_1564 ; Copy bytes until NULL -273F:7D79 AA stosb -273F:7D7A EB F8 jmp short loc_1563 -273F:7D7C loc_1564: -273F:7D7C 5E pop si -273F:7D7D 1F pop ds -273F:7D7E EB CE jmp short loc_1561 ; (7D4E) - -273F:7D80 loc_1565: ; Handle character name substitution -273F:7D80 56 push si -273F:7D81 1E push ds -273F:7D82 2C A0 sub al,0A0h -273F:7D84 32 E4 xor ah,ah ; Zero register -273F:7D86 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:7D88 8B F0 mov si,ax -273F:7D8A B8 31E4 mov ax,data_seg -273F:7D8D 8E D8 mov ds,ax - assume ds:data_seg -273F:7D8F A1 4CEE mov ax, names_segment -273F:7D92 8E D8 mov ds,ax -273F:7D94 8B 34 mov si,[si] ; Get name position from offset list -273F:7D96 loc_1566: -273F:7D96 úAC lodsb ; String [si] to al -273F:7D97 0A C0 or al,al ; Zero ? -273F:7D99 74 03 jz loc_1567 ; Jump if zero -273F:7D9B AA stosb ; Store al to es:[di] -273F:7D9C EB F8 jmp short loc_1566 -273F:7D9E loc_1567: -273F:7D9E 1F pop ds -273F:7D9F 5E pop si -273F:7DA0 EB AC jmp short loc_1561 -273F:7DA2 loc_1568: -273F:7DA2 AA stosb ; Store final NULL -273F:7DA3 1F pop ds -273F:7DA4 C3 retn - - decode_string endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1648, 1650, 165B, 1663, 1671, 167C, 168A - ; 1692, 169A, 16A8, 16B3, 16BE, 16C9, 16D7 - ; 16DF, 16E7, 16F2, 1700, 1708, 1716, 1721 - ; 172F, 1737, 173F, 174D, 1755, 1763, 176E - ; 177C, 1784, 178C, 179A, 17A2, 17B0, 17BB - ; 17C9, 17D1, 17D9, 17E4, 17F2, 17FA, 1808 - ; 1813, 181E, 182C, 1834, 183C, 1847, 1855 - ; 185D, 186B, 1876, 1884, 188C, 1894, 189F - ; 18AD, 18B8, 18C3, 18D1, 18D9, 18E1, 18EF - ; 18F7, 1905, 1910, 191E, 1926, 192E, 1939 - ; 1947, 1952, 195D, 196B, 1973, 197B, 1989 - ; 1994, 19A2, 19AA, 19B5, 19C0, 19CE, 19D6 - ; 19E1, 19EF, 19F7, 1A05, 1A0D, 1A1B, 1A23 - ; 1A31, 1A39, 7D41, 7D4B, 7E97, 7EA1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7DA5 read_bit proc near -273F:7DA5 8A 04 mov al,[si] -273F:7DA7 22 C2 and al,dl -273F:7DA9 D0 EA shr dl,1 ; Shift w/zeros fill -273F:7DAB 73 03 jnc loc_1569 ; Jump if carry=0 -273F:7DAD 46 inc si -273F:7DAE B2 80 mov dl,80h -273F:7DB0 loc_1569: ; xref 273F:7DAB -273F:7DB0 0A C0 or al,al ; Zero ? -273F:7DB2 C3 retn - read_bit endp - - ;* No entry point to code -273F:7DB3 1E push ds -273F:7DB4 07 pop es -273F:7DB5 8B EC mov bp,sp -273F:7DB7 83 C5 02 add bp,2 -273F:7DBA loc_1570: ; xref 273F:7DC4, 7DD8 -273F:7DBA úAC lodsb ; String [si] to al -273F:7DBB 0A C0 or al,al ; Zero ? -273F:7DBD 74 07 jz loc_ret_1571 ; Jump if zero -273F:7DBF 3C 25 cmp al,25h ; '%' -273F:7DC1 74 04 je loc_1572 ; Jump if equal -273F:7DC3 AA stosb ; Store al to es:[di] -273F:7DC4 EB F4 jmp short loc_1570 ; (7DBA) - -273F:7DC6 loc_ret_1571: ; xref 273F:7DBD -273F:7DC6 C3 retn -273F:7DC7 loc_1572: ; xref 273F:7DC1 -273F:7DC7 AC lodsb ; String [si] to al -273F:7DC8 56 push si -273F:7DC9 8B 76 00 mov si,[bp] -273F:7DCC 83 C5 02 add bp,2 -273F:7DCF loc_1573: ; xref 273F:7DD5 -273F:7DCF úAC lodsb ; String [si] to al -273F:7DD0 0A C0 or al,al ; Zero ? -273F:7DD2 74 03 jz loc_1574 ; Jump if zero -273F:7DD4 AA stosb ; Store al to es:[di] -273F:7DD5 EB F8 jmp short loc_1573 ; (7DCF) -273F:7DD7 loc_1574: ; xref 273F:7DD2 -273F:7DD7 5E pop si -273F:7DD8 EB E0 jmp short loc_1570 ; (7DBA) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7D3E, 7E94 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7DDA decode_string_init proc near -273F:7DDA 1E push ds -273F:7DDB 50 push ax -273F:7DDC B8 31E4 mov ax,data_seg -273F:7DDF 8E D8 mov ds,ax -273F:7DE1 58 pop ax -273F:7DE2 83 3E 9832 2A cmp room_number, 2Ah -273F:7DE7 72 0D jb loc_1575 ; Jump if below -273F:7DE9 3D 07D0 cmp ax,7D0h -273F:7DEC 72 08 jb loc_1575 ; Jump if below -273F:7DEE 3D 0FA0 cmp ax,0FA0h -273F:7DF1 73 03 jae loc_1575 ; Jump if above or = -273F:7DF3 B8 0076 mov ax,76h -273F:7DF6 loc_1575: ; xref 273F:7DE7, 7DEC, 7DF1 -273F:7DF6 83 3E 9832 2A cmp room_number, 2Ah -273F:7DFB 73 08 jae loc_1576 ; Jump if above or = -273F:7DFD 3D 0FA0 cmp ax,0FA0h -273F:7E00 72 03 jb loc_1576 ; Jump if below -273F:7E02 B8 0076 mov ax,76h -273F:7E05 loc_1576: ; xref 273F:7DFB, 7E00 -273F:7E05 1F pop ds -273F:7E06 1E push ds -273F:7E07 07 pop es -273F:7E08 BB 31E4 mov bx,seg data_seg -273F:7E0B 8E DB mov ds,bx -273F:7E0D 8B 1E 4CE8 mov bx, strings_segment -273F:7E11 3D 07D0 cmp ax,7D0h -273F:7E14 72 13 jb loc_1577 ; Jump if below -273F:7E16 8B 1E 4CEA mov bx, strings_segment_2 -273F:7E1A 2D 07D0 sub ax,7D0h -273F:7E1D 3D 07D0 cmp ax,7D0h -273F:7E20 72 07 jb loc_1577 ; Jump if below -273F:7E22 8B 1E 4CEC mov bx, strings_segment_3 -273F:7E26 2D 07D0 sub ax,7D0h -273F:7E29 loc_1577: ; xref 273F:7E14, 7E20 -273F:7E29 8E DB mov ds,bx -273F:7E2B 8B D0 mov dx,ax -273F:7E2D úBE 0004 mov si, 4 -273F:7E30 55 push bp -273F:7E31 33 DB xor bx,bx ; Zero register -273F:7E33 33 ED xor bp,bp ; Zero register -273F:7E35 B1 05 mov cl,5 -273F:7E37 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:7E39 74 0A jz loc_1579 ; Jump if zero -273F:7E3B 8B C8 mov cx,ax - - - -273F:7E3D locloop_1578: ; xref 273F:7E43 -273F:7E3D AD lodsw ; String [si] to ax -273F:7E3E 03 D8 add bx,ax -273F:7E40 83 D5 00 adc bp,0 -273F:7E43 E2 F8 loop locloop_1578 ; Loop if cx > 0 - -273F:7E45 loc_1579: ; xref 273F:7E39 -273F:7E45 8B CA mov cx,dx -273F:7E47 83 E1 1F and cx,1Fh -273F:7E4A 74 28 jz loc_1582 ; Jump if zero -273F:7E4C 83 E2 E0 and dx,0FFE0h -273F:7E4F 03 16 0000 add dx,ds:[0] -273F:7E53 8B F2 mov si,dx - -273F:7E55 locloop_1580: ; xref 273F:7E61, 7E72 -273F:7E55 AC lodsb ; String [si] to al -273F:7E56 32 E4 xor ah,ah ; Zero register -273F:7E58 A8 80 test al,80h -273F:7E5A 75 09 jnz loc_1581 ; Jump if not zero -273F:7E5C 03 D8 add bx,ax -273F:7E5E 83 D5 00 adc bp,0 -273F:7E61 E2 F2 loop locloop_1580 ; Loop if cx > 0 - -273F:7E63 EB 0F jmp short loc_1582 ; (7E74) -273F:7E65 loc_1581: ; xref 273F:7E5A -273F:7E65 24 7F and al,7Fh -273F:7E67 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:7E69 D1 E0 shl ax,1 ; Shift w/zeros fill -273F:7E6B D1 E0 shl ax,1 ; Shift w/zeros fill -273F:7E6D 03 D8 add bx,ax -273F:7E6F 83 D5 00 adc bp,0 -273F:7E72 E2 E1 loop locloop_1580 ; Loop if cx > 0 - -273F:7E74 loc_1582: ; xref 273F:7E4A, 7E63 -273F:7E74 B2 80 mov dl,80h -273F:7E76 8A CB mov cl,bl -273F:7E78 80 E1 03 and cl,3 -273F:7E7B 74 04 jz loc_1583 ; Jump if zero -273F:7E7D D0 E1 shl cl,1 ; Shift w/zeros fill -273F:7E7F D2 EA shr dl,cl ; Shift w/zeros fill -273F:7E81 loc_1583: ; xref 273F:7E7B -273F:7E81 D1 EB shr bx,1 ; Shift w/zeros fill -273F:7E83 D1 EB shr bx,1 ; Shift w/zeros fill -273F:7E85 03 1E 0002 add bx,word ptr ds:[2] -273F:7E89 8B F3 mov si,bx -273F:7E8B B1 0E mov cl,0Eh -273F:7E8D D3 E5 shl bp,cl ; Shift w/zeros fill -273F:7E8F 03 F5 add si,bp -273F:7E91 5D pop bp -273F:7E92 C3 retn - decode_string_init endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6368 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - decode_character_and_hotspot_names_init proc near -273F:7E93 1E push ds -273F:7E94 E8 FF43 call decode_string_init -273F:7E97 loc_1584: ; xref 273F:7E9F -273F:7E97 úE8 FF0B call read_bit -273F:7E9A 74 05 jz loc_1585 ; Jump if zero -273F:7E9C 83 C6 02 add si,2 -273F:7E9F EB F6 jmp short loc_1584 ; (7E97) -273F:7EA1 loc_1585: ; xref 273F:7E9A -273F:7EA1 E8 FF01 call read_bit -273F:7EA4 1F pop ds -273F:7EA5 C3 retn - decode_character_and_hotspot_names_init endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:6375, 6381 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - decode_hotspot_name proc near -273F:7EA6 3D 03E7 cmp ax, 3E7h -273F:7EA9 74 05 je loc_1586 ; Jump if equal -273F:7EAB 3D 03E5 cmp ax, 3E5h -273F:7EAE 75 04 jne loc_1587 ; Jump if not equal -273F:7EB0 loc_1586: ; xref 273F:7EA9 -273F:7EB0 C6 05 00 mov byte ptr [di], 0 -273F:7EB3 C3 retn -273F:7EB4 loc_1587: ; xref 273F:7EAE -273F:7EB4 E8 8E6A call get_room_resource_pointer4 -273F:7EB7 8B 44 02 mov ax, [si+HSH_NAME] -273F:7EBA F6 C3 FF test bl, 0FFh ; Special handling? -273F:7EBD 74 28 jz loc_1593 ; If not then go do normal decode -273F:7EBF F6 C4 C0 test ah, 0C0h ; Test upper two bits -273F:7EC2 74 0C jz loc_1589 ; Jump if zero -273F:7EC4 78 05 js loc_1588 ; Jump if sign=1 -273F:7EC6 BE 4F90 mov si, offset a_str ; 'a' -273F:7EC9 EB 0D jmp short loc_1590 -273F:7ECB loc_1588: -273F:7ECB BE 4F92 mov si, offset an_str -273F:7ECE EB 08 jmp short loc_1590 -273F:7ED0 loc_1589: -273F:7ED0 F6 C4 20 test ah, 20h -273F:7ED3 74 12 jz loc_1593 -273F:7ED5 úBE 4F95 mov si, offset the_str ; 'the' -273F:7ED8 loc_1590: ; xref 273F:7EC9, 7ECE -273F:7ED8 50 push ax -273F:7ED9 1E push ds -273F:7EDA 07 pop es -273F:7EDB loc_1591: ; Loop to copy selected article -273F:7EDB úAC lodsb ; String [si] to al -273F:7EDC 0A C0 or al,al ; Zero ? -273F:7EDE 74 03 jz loc_1592 ; Jump if zero -273F:7EE0 AA stosb ; Store al to es:[di] -273F:7EE1 EB F8 jmp short loc_1591 ; (7EDB) -273F:7EE3 loc_1592: ; xref 273F:7EDE -273F:7EE3 B0 20 mov al, 20h ; ' ' -273F:7EE5 AA stosb ; Store al to es:[di] -273F:7EE6 58 pop ax -273F:7EE7 loc_1593: -273F:7EE7 80 E4 1F and ah, 1Fh ; Default decoding -273F:7EEA E9 FE4D jmp decode_string - decode_hotspot_name endp - - db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:7EEE C6 06 70FD 03 mov byte ptr [70FDh], 3 -273F:7EF3 C7 06 70FB 7FFF MOV WORD PTR [70FB],7FFF -273F:7EF9 C3 RET - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - skorl_tick_proc proc near -273F:7EFA F7 06 BA2B FFFF test script_v11, 0FFFFh -273F:7F00 74 22 jz vskorl_2 -273F:7F02 F6 45 1D FF test byte ptr [di+ANIM_SKIP], 0FFh -273F:7F06 75 1C jnz vskorl_2 -273F:7F08 F6 06 1926 FF test data_669, 0FFh -273F:7F0D 75 15 jnz vskorl_2 -273F:7F0F BB 6CEF mov bx, offset player_hotspot_rec -273F:7F12 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Is Skorl in the same -273F:7F15 3B 47 06 cmp ax, [bx+HS_ROOM_NUM] ; room as the player? -273F:7F18 75 0A jnz vskorl_2 ; No, so skip -273F:7F1A E8 84 D6 call characters_impinging_check ; Check if Skorl has 'caught' player -273F:7F1D 74 05 jz vskorl_2 -273F:7F1F 80 0E 073D 70 or status_flags2, FLAG_RESTART || FLAG_CAUGHT || FLAG_RESTORERESTART - -273F:7F24 E9 5B D0 vskorl_2: jmp standard_character_tick_proc - skorl_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - set_village_skorl_tick_proc proc near -273F:7F27 C7 06 6DFD 7EFA mov word ptr [village_skorl_hotspot_rec+HS_TICK_PROC], offset skorl_tick_proc -273F:7F2D 8B 3E 6DF1 mov di, [village_skorl_hotspot_rec+HS_ANIM_OFFSET] -273F:7F31 C7 45 11 FA 7E mov word ptr [di+ANIM_TICK_PROC], offset skorl_tick_proc -273F:7F36 C3 ret - set_village_skorl_tick_proc endp - -273F:7F37 E8 3E E2 call talk_countdown_handler - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Tick action proc for standard animations, and is responsible - ; for them being animated. This seems to include the vertical - ; movement of the drip animation - ; di = animation slot entry, si = hotspot resource - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - std_animation_tick_proc proc near - -273F:7F3A úF7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:7F3F 75 0E jnz loc_1596 ; Jump if not zero -273F:7F41 E8 9065 call hotspot_script_execute -273F:7F44 75 08 jnz loc_ret_1595 ; Jump if not zero -273F:7F46 E8 9329 call animation_unload -273F:7F49 81 4C 06 8000 or word ptr [si+6], 8000h - -273F:7F4E loc_ret_1595: ; xref 273F:7F44 -273F:7F4E C3 retn -273F:7F4F loc_1596: ; xref 273F:7F3F, 7F6E, 7FA6 -273F:7F4F 83 6C 1F 01 sub word ptr [si+HS_FRAME_CTR], 1 -273F:7F53 C3 retn - - std_animation_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7F54 F6 44 2A FF test byte ptr [si+2Ah],0FFh -273F:7F58 75 0D jnz loc_1598 ; Jump if not zero -273F:7F5A úBB 6CEF mov bx, offset player_hotspot_rec -273F:7F5D E8 D641 call characters_impinging_check -273F:7F60 74 04 jz loc_ret_1597 ; Jump if zero -273F:7F62 80 44 2A 01 add byte ptr [si+2Ah],1 - -273F:7F66 loc_ret_1597: ; xref 273F:7F60 -273F:7F66 C3 retn -273F:7F67 loc_1598: ; xref 273F:7F58 -273F:7F67 EB D1 jmp short std_animation_tick_proc - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - dropping_torch_tick_proc proc near -273F:7F69 F7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:7F6E 75 DF jnz loc_1596 ; Jump if not zero -273F:7F70 E8 9036 call hotspot_script_execute -273F:7F73 75 7E jnz loc_ret_1599 ; Jump if not zero -273F:7F75 E8 92FA call animation_unload -273F:7F78 BB 041C mov bx, 41Ch -273F:7F7B BE 7F1F mov si, 7F1Fh -273F:7F7E E8 F1F1 call animation_load_2 -273F:7F81 BB 0008 mov bx,8 -273F:7F84 A0 1926 mov al, data_669 -273F:7F87 50 push ax -273F:7F88 C6 06 1926 00 mov data_669, 0 -273F:7F8D E8 206D call play_sound ; (9FFD) -273F:7F90 58 pop ax -273F:7F91 A2 1926 mov data_669, al - -273F:7F94 BB 0418 mov bx, 418h ; Fire on straw in room #1 -273F:7F97 úBE 7EF0 mov si,offset data_409 -273F:7F9A 80 4C 03 80 or byte ptr [si+3],80h ; Enable it to be highlighted -273F:7F9E E9 F1D1 jmp animation_load_2 ; Load it for animation - dropping_torch_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:7FA1 F7 44 1F FFFF test word ptr [si+1Fh],0FFFFh -273F:7FA6 75 A7 jnz loc_1596 ; Jump if not zero -273F:7FA8 E8 8FFE call hotspot_script_execute -273F:7FAB 75 46 jnz loc_ret_1599 ; Jump if not zero -273F:7FAD E8 92C2 call animation_unload -273F:7FB0 C6 44 15 00 mov byte ptr [si+15h],0 -273F:7FB4 C7 06 6CFC 0120 mov word ptr [player_hotspot_rec+HS_X], 80h + (SCREEN_WIDTH / 2) -273F:7FBA C7 06 6CFE 00E0 mov word ptr [player_hotspot_rec+HS_Y], 80h + (SCREEN_HEIGHT - MENUBAR_Y_SIZE) / 2 -273F:7FC0 8B 1E 6CFA mov bx, word ptr [player_hotspot_rec+HS_ANIM_OFFSET] -273F:7FC4 C7 07 0120 mov word ptr [bx+ANIM_X], 80h + (SCREEN_WIDTH / 2) -273F:7FC8 C7 47 02 00E0 mov word ptr [bx+ANIM_Y], 80h + (SCREEN_HEIGHT - MENUBAR_Y_SIZE) / 2 -273F:7FCD C6 47 26 01 mov byte ptr [bx+ANIM_DIRECTION], FACING_DOWN -273F:7FD1 E8 C6DD call character_reset_direction -273F:7FD4 C6 44 44 00 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_NONE -273F:7FD8 C6 44 49 00 mov byte ptr [si+HS_PATHFIND_COVERED], 0 -273F:7FDC C6 06 70FD 00 mov byte ptr ds:[70FDh],0 ; (273F:70FD=79h) -273F:7FE1 C7 06 70FB 0000 mov word ptr ds:[70FBh],0 ; (273F:70FB=80CEh) -273F:7FE7 C7 06 70B9 1C00 mov [ratpouch_hotspot_rec], 1C00h ; Set his actions -273F:7FED C7 06 70BB 0082 mov [ratpouch_hotspot_rec+2],82h - -273F:7FF3 loc_ret_1599: ; xref 273F:7F73, 7FAB -273F:7FF3 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:7FF4 BB 040F mov bx, 40Fh -273F:7FF7 E8 FC09 call hotspot_disable -273F:7FFA 8B 7C 0B mov di,[si+0Bh] -273F:7FFD E8 9272 call animation_unload -273F:8000 BB 040E mov bx, 40Eh -273F:8003 úBE 7EC6 mov si, 7EC6h ; (273F:7EC6=0BEh) -273F:8006 E9 F169 jmp animation_load_2 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - fire_tick_proc proc near -273F:8009 E8 FF2E call std_animation_tick_proc -273F:800C E9 F11F jmp pathfind_flag_covered_cells - fire_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:800F C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:8013 loc_set_frame_offset: ; xref 273F:8269, 83C8, 840E, 84C7 - ; 84D2, 85D1 -273F:8013 ú8A 44 2A mov al, [si+HS_ACTION_CTR] -273F:8016 32 E4 xor ah, ah ; Zero register -273F:8018 8B 5C 21 mov bx, [si+HS_PIXEL_OFFSET] -273F:801B F7 67 07 mul word ptr [bx+PIXEL_FRAME_SIZE] -273F:801E 89 45 08 mov [di+ANIM_FRAME_OFFSET], ax -273F:8021 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8022 B8 2714 mov ax, 2714h -273F:8025 E8 F1C6 call room_exit_hs_get_pointer -273F:8028 C6 44 0C 00 mov byte ptr [si+0Ch],0 ; Mark door open -273F:802C úBE 70B9 mov si, offset ratpouch_hotspot_rec -273F:802F 8B DE mov bx,si -273F:8031 03 5C 61 add bx, [si+ACTION_OFFSET] -273F:8034 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:8037 C7 47 03 0007 mov word ptr [bx+CURRENT_ACTION_ROOM_NUM], 7 -273F:803C 33 C0 xor ax,ax ; Zero register -273F:803E 8B 5F 01 mov bx, [bx+CURRENT_ACTION_SUPPORT_TABLE] -273F:8041 89 07 mov [bx],ax -273F:8043 89 04 mov [si],ax -273F:8045 89 44 02 mov [si+2],ax -273F:8048 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_cut_sack proc near -273F:8049 C7 06 840A 010A mov sack_hotspot_rec[HS_Y], 10Ah -273F:804F 8B 1E 8406 mov bx, sack_hotspot_rec[HS_ANIM_OFFSET] -273F:8053 0B DB or bx, bx ; Is active animation? -273F:8055 74 05 jz loc_ret_1601 ; Skip if not -273F:8057 C7 47 02 010A mov word ptr [bx+ANIM_Y], 10Ah -273F:805C loc_ret_1601: ; xref 273F:8055 -273F:805C C3 retn - seq_cut_sack endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:805D C7 06 6BDD 0063 mov word ptr ds:[6BDDh],63h ; (273F:6BDD=0C75h) -273F:8063 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8064 C7 06 6BDD 0013 mov word ptr ds:[6BDDh],13h ; (273F:6BDD=0C75h) -273F:806A C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_37 proc near -273F:806B C7 06 7E7D 0118 mov oil_burner_hotspot_rec[HS_X], 7F3Ah ;Maybe incorrect? -273F:8071 C7 06 7E87 7F3A mov word ptr ds:[7E87h],7F3Ah ; (273F:7E87=2) -273F:8077 8B 3E 7E7B mov di, oil_burner_hotspot_rec[HS_ANIM_OFFSET] - -273F:807B C7 05 0118 mov word ptr [di],118h ; X start -273F:807F C7 45 11 7F3A mov word ptr [di+11h],7F3Ah ; Handler proc offset -273F:8084 C3 retn - seq_method_37 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8085 C7 06 8EA9 09E0 mov word ptr ds:[8EA9h],9E0h ; (273F:8EA9=0F003h) -273F:808B 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:8090 75 06 jne loc_ret_1602 ; Jump if not equal -273F:8092 C7 06 8EA9 0AF0 mov word ptr ds:[8EA9h],0AF0h ; (273F:8EA9=0F003h) -273F:8098 loc_ret_1602: ; xref 273F:8090 -273F:8098 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_transform_player proc near -273F:8099 úBE 7E9B mov si, offset resource_425_rec -273F:809C úBF 6CEF mov di, offset player_hotspot_rec -273F:809F 8B 45 06 mov ax, [di+HS_ROOM_NUM] ; Get player room number -273F:80A2 89 44 06 mov [si+HS_ROOM_NUM], ax ; Move into player's room -273F:80A5 8B 45 0D mov ax, [di+HS_X] -273F:80A8 2D 000E sub ax, 14 -273F:80AB 89 44 0D mov [si+HS_X], ax ; Set x position -273F:80AE 8B 45 0F mov ax,[di+HS_Y] -273F:80B1 2D 000A sub ax, 10 -273F:80B4 89 44 0F mov [si+HS_Y], ax ; Set y position -273F:80B7 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:80BB C7 44 24 0630 mov word ptr [si+HS_SCRIPT_OFFSET], 630h -273F:80C0 BB 0425 mov bx, 425h -273F:80C3 E9 8C00 jmp animation_load_entry - seq_transform_player endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - -273F:80C6 A1 6CF5 mov ax,word ptr ds:[6CF5h] ; (273F:6CF5=551Eh) -273F:80C9 89 44 06 mov [si+6],ax -273F:80CC A1 6CFC mov ax,word ptr ds:[6CFCh] ; (273F:6CFC=1E8Bh) -273F:80CF 2D 000E sub ax,0Eh -273F:80D2 89 05 mov [di],ax -273F:80D4 A1 6CFE mov ax,word ptr ds:[6CFEh] ; (273F:6CFE=76Eh) -273F:80D7 2D 000A sub ax,0Ah -273F:80DA 89 45 02 mov [di+2],ax -273F:80DD 80 44 2A 01 add byte ptr [si+2Ah],1 -273F:80E1 80 7C 2A 06 cmp byte ptr [si+2Ah],6 -273F:80E5 75 30 jne loc_1606 ; Jump if not equal -273F:80E7 83 3E BA2B 02 cmp script_v11, 2 -273F:80EC 74 08 je loc_1603 ; Jump if equal -273F:80EE F7 06 BA4D FFFF test word ptr ds:data_488e,0FFFFh ; (273F:BA4D=0) -273F:80F4 74 0B jz loc_1604 ; Jump if zero -273F:80F6 loc_1603: ; xref 273F:80EC -273F:80F6 C7 06 BA4D 0000 mov word ptr ds:data_488e,0 ; (273F:BA4D=0) -273F:80FC BB 5C80 mov bx,5C80h -273F:80FF EB 08 jmp short loc_1605 ; (8109) -273F:8101 loc_1604: ; xref 273F:80F4 -273F:8101 83 06 BA4D 01 add word ptr ds:data_488e,1 ; (273F:BA4D=0) -273F:8106 úBB 5CAA mov bx,5CAAh ; (273F:5CAA=0BAh) -273F:8109 loc_1605: ; xref 273F:80FF -273F:8109 89 1E 6D10 mov word ptr ds:[6D10h],bx ; (273F:6D10=1E52h) -273F:810D 8B 47 03 mov ax,[bx+3] -273F:8110 8B 1E 6CFA mov bx,word ptr ds:[6CFAh] ; (273F:6CFA=1F33h) -273F:8114 89 47 0A mov [bx+0Ah],ax -273F:8117 loc_1606: ; xref 273F:80E5 -273F:8117 E8 8E8F call hotspot_script_execute -273F:811A 75 22 jnz loc_ret_1607 ; Jump if not zero -273F:811C E8 9153 call animation_unload -273F:811F C7 44 06 01A8 mov word ptr [si+6],1A8h -273F:8124 F7 06 BA4D FFFF test word ptr ds:data_488e,0FFFFh ; (273F:BA4D=0) -273F:812A 74 12 jz loc_ret_1607 ; Jump if zero -273F:812C BB 03E9 mov bx, RATPOUCH_HOTSPOT_ID -273F:812F B9 0854 mov cx, 854h -273F:8132 E8 DFD5 call start_talk_noone -273F:8135 B8 0004 mov ax,4 -273F:8138 úBE 70B9 mov si, offset ratpouch_hotspot_rec -273F:813B E9 C3F7 jmp loc_867 ; (4535) - -273F:813E loc_ret_1607: ; xref 273F:811A, 812A, 814E -273F:813E C3 retn - ;* No entry point to code -273F:813F F7 44 1F FFFF test word ptr [si+1Fh],0FFFFh -273F:8144 74 05 jz loc_1608 ; Jump if zero -273F:8146 83 6C 1F 01 sub word ptr [si+1Fh],1 -273F:814A C3 retn -273F:814B loc_1608: ; xref 273F:8144 -273F:814B E8 8E5B call hotspot_script_execute -273F:814E 75 EE jnz loc_ret_1607 ; Jump if not zero -273F:8150 C7 44 24 0B82 mov word ptr [si+24h],0B82h -273F:8155 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:815A 75 05 jne loc_1609 ; Jump if not equal -273F:815C C7 44 24 0B7C mov word ptr [si+24h],0B7Ch -273F:8161 loc_1609: ; xref 273F:815A -273F:8161 C7 06 BA4B 0001 mov word ptr ds:data_487e,1 ; (273F:BA4B=0) -273F:8167 C3 retn - -273F:8168 0C00 data_410 dw 0C00h -273F:816A 0082 data_411 dw 82h - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Sets the action bitset for Goewin - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_55 proc near -273F:816C C6 06 7D4B 01 mov BYTE PTR [goewin_hotspot_rec+HS_ACTION_CTR], 1 -273F:8171 2E A1 8168 mov ax, cs:data_410 -273F:8175 A3 7D21 mov [goewin_hotspot_rec], ax -273F:8178 2E A1 816A mov ax, cs:data_411 -273F:817C A3 7D23 mov [goewin_hotspot_rec+2], ax -273F:817F C3 ret - seq_method_55 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8180 F6 44 2A FF test bye ptr [SI+HS_ACTION_CTR], 0FFh -273F:8184 74 B8 jz loc_ret_1607 -273F:8186 E8 20 8E call hotspot_script_execute -273F:8189 75 B3 jnz loc_ret_1607 -273F:818B C7 44 17 4F82 mov word ptr [si+HS_TICK_PROC], 4F82h -273F:8190 C7 45 11 4F82 mov word ptr [di+ANIM_TICK_PROC], 4F82h -273F:8195 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:8199 C3 ret - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_is_skorl_in_cell proc near -273F:819A C7 06 BA1F 0000 mov general_val, 0 -273F:81A0 83 3E 6D6D 01 cmp skorl_hotspot_rec[HS_ROOM_NUM], 1 -273F:81A5 74 06 je loc_ret_1610 -273F:81A7 C7 06 BA1F 0001 mov general_val, 1 -273F:81AD loc_ret_1610: -273F:81AD C3 retn - seq_is_skorl_in_cell endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_3 proc near -273F:81AE 88 1E 9836 mov header_flag_mask, bl -273F:81B2 C3 retn - seq_method_3 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - prisoner_tick_proc proc near -273F:81B3 E8 DFC2 call talk_countdown_handler -273F:81B6 F7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:81BB 74 05 jz loc_1612 ; Jump if zero -273F:81BD 83 6C 1F 01 sub word ptr [si+HS_FRAME_CTR], 1 -273F:81C1 loc_ret_1611: -273F:81C1 C3 retn -273F:81C2 loc_1612: -273F:81C2 F6 44 2A FF test byte ptr [si+HS_ACTION_CTR], 0FFh -273F:81C6 74 11 jz loc_1613 ; Jump if zero -273F:81C8 E8 8DDE call hotspot_script_execute -273F:81CB 0B C0 or ax, ax ; Zero ? -273F:81CD 75 F2 jnz loc_ret_1611 ; Jump if not zero -273F:81CF C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:81D3 C7 44 24 03E0 mov word ptr [si+HS_SCRIPT_OFFSET], 3E0h -273F:81D8 C3 retn - -273F:81D9 loc_1613: ; xref 273F:81C6 -273F:81D9 F7 06 BA33 FFFF test prisoner_dead, 0FFFFh -273F:81DF 75 E0 jnz loc_ret_1611 ; Jump if not zero -273F:81E1 E8 C288 call random -273F:81E4 3D 0006 cmp ax, 6 -273F:81E7 72 D8 jb loc_ret_1611 ; Jump if below -273F:81E9 C6 44 2A 01 mov byte ptr [si+HS_ACTION_CTR], 1 -273F:81ED C7 44 24 03F6 mov word ptr [si+HS_SCRIPT_OFFSET], 3F6h -273F:81F2 C3 retn - prisoner_tick_proc endp - - ;* No entry point to code -273F:81F3 E8 DF82 call talk_countdown_handler -273F:81F6 F7 44 1F FFFF test word ptr [si+1Fh],0FFFFh -273F:81FB 74 05 jz loc_1614 ; Jump if zero -273F:81FD 83 6C 1F 01 sub word ptr [si+1Fh],1 -273F:8201 C3 retn -273F:8202 loc_1614: ; xref 273F:81FB -273F:8202 E8 8DA4 call hotspot_script_execute -273F:8205 8A 44 2A mov al,[si+2Ah] -273F:8208 32 E4 xor ah,ah ; Zero register -273F:820A 89 44 1F mov [si+1Fh],ax -273F:820D C3 retn - ;* No entry point to code -273F:820E E8 DF67 call talk_countdown_handler -273F:8211 F7 44 1F FFFF test word ptr [si+1Fh],0FFFFh -273F:8216 74 05 jz loc_1616 ; Jump if zero -273F:8218 83 6C 1F 01 sub word ptr [si+1Fh],1 - -273F:821C loc_ret_1615: ; xref 273F:8222 -273F:821C C3 retn -273F:821D loc_1616: ; xref 273F:8216 -273F:821D E8 8D89 call hotspot_script_execute -273F:8220 0B C0 or ax,ax ; Zero ? -273F:8222 75 F8 jnz loc_ret_1615 ; Jump if not zero -273F:8224 E8 C245 call random -273F:8227 BB 0000 mov bx,0 -273F:822A A9 0004 test ax,4 -273F:822D 74 03 jz loc_1617 ; Jump if zero -273F:822F BB 0054 mov bx,54h -273F:8232 loc_1617: ; xref 273F:822D -273F:8232 89 5C 24 mov [si+24h],bx -273F:8235 úBB 003F mov bx,3Fh ; (273F:003F=0) -273F:8238 F7 E3 mul bx ; dx:ax = reg * ax -273F:823A 83 C2 14 add dx,14h -273F:823D 89 54 1F mov [si+1Fh],dx -273F:8240 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - head_animation_tick_proc proc near -273F:8241 E8 DF34 call talk_countdown_handler -273F:8244 úBB 6CEF mov bx, offset player_hotspot_rec -273F:8247 81 7F 0F 00CF cmp word ptr [bx+HS_Y], 80h + 79 -273F:824C 73 03 jae loc_1618 ; Jump if above or = -273F:824E úBB 70B9 mov bx, offset ratpouch_hotspot_rec -273F:8251 loc_1618: ; xref 273F:824C -273F:8251 8B 5F 0D mov bx, [bx+HS_X] -273F:8254 33 C0 xor ax, ax -273F:8256 81 FB 00C8 cmp bx, 80h + 72 -273F:825A 72 0A jb loc_1619 ; Jump if below -273F:825C B0 01 mov al, 1 -273F:825E 81 FB 012C cmp bx, 80h + 172 -273F:8262 72 02 jb loc_1619 ; Jump if below -273F:8264 B0 02 mov al,2 -273F:8266 loc_1619: ; xref 273F:825A, 8262 -273F:8266 88 44 2A mov [si+2Ah], al -273F:8269 E9 FDA7 jmp loc_set_frame_offset - head_animation_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_room_14_door_close proc near -273F:826C B8 2719 mov ax,2719h -273F:826F E8 EF7C call room_exit_hs_get_pointer -273F:8272 C6 44 0C 01 mov byte ptr [si+0Ch],1 -273F:8276 C3 retn - seq_room_14_door_close proc near - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_decrase_groats proc near -273F:8277 E8 8A6E call get_room_resource_pointer -273F:827A 29 0E BC49 sub num_groats, cx -273F:827E C3 retn - seq_decrase_groats endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_incrase_groats proc near -273F:827F E8 8A66 call get_room_resource_pointer -273F:8282 01 0E BC49 add num_groats, cx -273F:8286 C3 retn - seq_incrase_groats endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:82AF, 855B, 85F2 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8287 sub_211 proc near -273F:8287 úBB 502A mov bx, offset sub_211_list -273F:828A B9 0003 mov cx, 3 -273F:828D 8B 44 06 mov ax, [si+HS_ROOM_NUM] - -273F:8290 locloop_1620: ; xref 273F:8297 -273F:8290 39 07 cmp [bx], ax ; Found entry for room #? -273F:8292 74 08 je loc_1621 ; Exit if yes -273F:8294 83 C3 04 add bx, 4 -273F:8297 E2 F7 loop locloop_1620 ; Loop if cx > 0 - -273F:8299 33 DB xor bx,bx ; Zero return -273F:829B C3 retn -273F:829C loc_1621: ; xref 273F:8292 -273F:829C 8B 5F 02 mov bx, [bx+2] -273F:829F C3 retn - sub_211 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:82A0 E8 DED5 call talk_countdown_handler -273F:82A3 F7 44 1F FFFF test word ptr [si+1Fh],0FFFFh -273F:82A8 74 05 jz loc_1622 ; Jump if zero -273F:82AA 83 6C 1F 01 sub word ptr [si+1Fh],1 -273F:82AE C3 retn -273F:82AF loc_1622: ; xref 273F:82A8 -273F:82AF E8 FFD5 call sub_211 ; (8287) -273F:82B2 8A 44 28 mov al,[si+28h] -273F:82B5 0A C0 or al,al ; Zero ? -273F:82B7 75 60 jnz loc_1626 ; Jump if not zero -273F:82B9 F7 07 FFFF test word ptr [bx],0FFFFh -273F:82BD 74 03 jz loc_1623 ; Jump if zero -273F:82BF E9 0159 jmp loc_1646 ; (841B) -273F:82C2 loc_1623: ; xref 273F:82BD -273F:82C2 53 push bx -273F:82C3 83 C3 02 add bx,2 -273F:82C6 B9 0004 mov cx,4 - -273F:82C9 locloop_1624: ; xref 273F:82ED -273F:82C9 F6 47 03 80 test byte ptr [bx+3],80h -273F:82CD 74 1B jz loc_1625 ; Jump if zero -273F:82CF 8B CB mov cx,bx -273F:82D1 C6 47 03 00 mov byte ptr [bx+3],0 -273F:82D5 8B 07 mov ax,[bx] -273F:82D7 5B pop bx -273F:82D8 89 0F mov [bx],cx -273F:82DA 56 push si -273F:82DB E8 8A0C call get_room_resource_pointer2 -273F:82DE 8B 44 0D mov ax,[si+0Dh] -273F:82E1 5E pop si -273F:82E2 89 44 24 mov [si+24h],ax -273F:82E5 C6 44 28 80 mov byte ptr [si+28h],80h -273F:82E9 C3 retn -273F:82EA loc_1625: ; xref 273F:82CD -273F:82EA 83 C3 04 add bx,4 -273F:82ED E2 DA loop locloop_1624 ; Loop if cx > 0 - -273F:82EF 5B pop bx -273F:82F0 33 C0 xor ax,ax ; Zero register -273F:82F2 89 47 02 mov [bx+2],ax -273F:82F5 89 47 04 mov [bx+4],ax -273F:82F8 89 47 06 mov [bx+6],ax -273F:82FB 89 47 08 mov [bx+8],ax -273F:82FE 89 47 0A mov [bx+0Ah],ax -273F:8301 89 47 0C mov [bx+0Ch],ax - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 316 - -273F:8304 89 47 0E mov [bx+0Eh],ax -273F:8307 89 47 10 mov [bx+10h],ax -273F:830A E8 C15F call random -273F:830D B9 0003 mov cx,3 -273F:8310 F7 E1 mul cx ; dx:ax = reg * ax -273F:8312 92 xchg dx,ax -273F:8313 05 0001 add ax,1 -273F:8316 88 44 28 mov [si+28h],al -273F:8319 loc_1626: ; xref 273F:82B7 -273F:8319 A8 80 test al,80h -273F:831B 75 10 jnz loc_1627 ; Jump if not zero -273F:831D 24 3F and al,3Fh ; '?' -273F:831F 3C 02 cmp al,2 -273F:8321 72 0D jb loc_1628 ; Jump if below -273F:8323 74 0D jz loc_1629 ; Jump if zero -273F:8325 3C 04 cmp al,4 -273F:8327 74 0E je loc_1631 ; Jump if equal -273F:8329 72 09 jc loc_1630 ; Jump if carry Set -273F:832B EB 0D jmp short loc_1632 ; (833A) -273F:832D loc_1627: ; xref 273F:831B -273F:832D E9 015A jmp loc_1652 ; (848A) -273F:8330 loc_1628: ; xref 273F:8321 -273F:8330 EB 0B jmp short loc_1633 ; (833D) -273F:8332 loc_1629: ; xref 273F:8323 -273F:8332 EB 2F jmp short loc_1636 ; (8363) -273F:8334 loc_1630: ; xref 273F:8329 -273F:8334 E9 00CA jmp loc_1643 ; (8401) -273F:8337 loc_1631: ; xref 273F:8327 -273F:8337 E9 00D7 jmp loc_1645 ; (8411) -273F:833A loc_1632: ; xref 273F:832B -273F:833A E9 00B6 jmp loc_1642 ; (83F3) -273F:833D loc_1633: ; xref 273F:8330 -273F:833D E8 C12C call random -273F:8340 81 7D 1B 0436 cmp word ptr [di+1Bh],436h -273F:8345 74 11 je loc_1635 ; Jump if equal -273F:8347 BB 0055 mov bx,55h -273F:834A F7 E3 mul bx ; dx:ax = reg * ax -273F:834C 81 C2 00F5 add dx,0F5h -273F:8350 loc_1634: ; xref 273F:8361 -273F:8350 ú89 54 24 mov [si+24h],dx -273F:8353 C6 44 28 83 mov byte ptr [si+28h],83h -273F:8357 C3 retn -273F:8358 loc_1635: ; xref 273F:8345 -273F:8358 BB 0033 mov bx,33h -273F:835B F7 E3 mul bx ; dx:ax = reg * ax -273F:835D 81 C2 00DE add dx,0DEh -273F:8361 EB ED jmp short loc_1634 ; (8350) -273F:8363 loc_1636: ; xref 273F:8332 -273F:8363 F6 44 28 40 test byte ptr [si+28h],40h ; '@' -273F:8367 75 4B jnz loc_1640 ; Jump if not zero -273F:8369 81 7D 1B 0436 cmp word ptr [di+1Bh],436h -273F:836E 75 3E jne loc_1638 ; Jump if not equal -273F:8370 83 3E 6CF5 23 cmp word ptr ds:[6CF5h],23h ; (273F:6CF5=551Eh) -273F:8375 74 37 je loc_1638 ; Jump if equal -273F:8377 83 3E 6DEC 23 cmp word ptr ds:[6DECh],23h ; (273F:6DEC=4BFAh) -273F:837C 74 30 je loc_1638 ; Jump if equal -273F:837E 83 3E 77C8 23 cmp word ptr ds:[77C8h],23h ; (273F:77C8=0F74h) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 317 - -273F:8383 74 29 je loc_1638 ; Jump if equal -273F:8385 E8 C0E4 call random -273F:8388 0B C0 or ax,ax ; Zero ? -273F:838A 78 05 js loc_1637 ; Jump if sign=1 -273F:838C B8 4FED mov ax,4FEDh -273F:838F EB 20 jmp short loc_1639 ; (83B1) -273F:8391 loc_1637: ; xref 273F:838A -273F:8391 C7 44 21 59ED mov word ptr [si+21h],59EDh -273F:8396 C7 45 04 0020 mov word ptr [di+4],20h -273F:839B C6 06 5029 08 mov byte ptr ds:[5029h],8 ; (273F:5029=47h) -273F:83A0 83 2D 08 sub word ptr [di],8 -273F:83A3 A1 59F0 mov ax,word ptr ds:[59F0h] ; (273F:59F0=0ABBh) -273F:83A6 89 45 0A mov [di+0Ah],ax -273F:83A9 B8 5010 mov ax,5010h -273F:83AC EB 03 jmp short loc_1639 ; (83B1) -273F:83AE loc_1638: ; xref 273F:836E, 8375, 837C, 8383 -273F:83AE 8B 47 14 mov ax,[bx+14h] -273F:83B1 loc_1639: ; xref 273F:838F, 83AC -273F:83B1 89 44 24 mov [si+24h],ax -273F:83B4 loc_1640: ; xref 273F:8367, 83F7, 83FF -273F:83B4 ú80 4C 28 40 or byte ptr [si+28h],40h ; '@' -273F:83B8 8B 5C 24 mov bx,[si+24h] -273F:83BB 83 44 24 01 add word ptr [si+24h],1 -273F:83BF 8A 07 mov al,[bx] -273F:83C1 0A C0 or al,al ; Zero ? -273F:83C3 74 06 jz loc_1641 ; Jump if zero -273F:83C5 88 44 2A mov [si+2Ah],al -273F:83C8 E9 FC48 jmp loc_set_frame_offset -273F:83CB loc_1641: ; xref 273F:83C3 -273F:83CB 81 7D 1B 0436 cmp word ptr [di+1Bh],436h -273F:83D0 75 2F jne loc_1643 ; Jump if not equal -273F:83D2 C7 44 21 59E4 mov word ptr [si+21h],59E4h -273F:83D7 C7 45 04 0010 mov word ptr [di+4],10h -273F:83DC A1 59E7 mov ax,word ptr ds:[59E7h] ; (273F:59E7=2E00h) -273F:83DF 89 45 0A mov [di+0Ah],ax -273F:83E2 F6 06 5029 FF test byte ptr ds:[5029h],0FFh ; (273F:5029=47h) -273F:83E7 74 18 jz loc_1643 ; Jump if zero -273F:83E9 83 05 08 add word ptr [di],8 -273F:83EC C6 06 5029 00 mov byte ptr ds:[5029h],0 ; (273F:5029=47h) -273F:83F1 EB 0E jmp short loc_1643 ; (8401) -273F:83F3 loc_1642: ; xref 273F:833A -273F:83F3 F6 44 28 40 test byte ptr [si+28h],40h ; '@' -273F:83F7 75 BB jnz loc_1640 ; Jump if not zero -273F:83F9 8B 47 16 mov ax, [bx+HS_FLAGS2] -273F:83FC 89 44 24 mov [si+24h],ax -273F:83FF EB B3 jmp short loc_1640 ; (83B4) -273F:8401 loc_1643: ; xref 273F:8334, 83D0, 83E7, 83F1 -273F:8401 C7 44 1F 000A mov word ptr [si+1Fh],0Ah -273F:8406 loc_1644: ; xref 273F:8419 -273F:8406 úC6 44 28 00 mov byte ptr [si+28h],0 -273F:840A C6 44 2A 0C mov byte ptr [si+2Ah],0Ch -273F:840E E9 FC02 jmp loc_set_frame_offset -273F:8411 loc_1645: ; xref 273F:8337 -273F:8411 F7 06 9838 FFFF test data_431,0FFFFh ; (273F:9838=5C8Bh) -273F:8417 75 35 jnz loc_ret_1647 ; Jump if not zero -273F:8419 EB EB jmp short loc_1644 ; (8406) -273F:841B loc_1646: ; xref 273F:82BF -273F:841B 8B D3 mov dx,bx -273F:841D 8B 1F mov bx,[bx] -273F:841F 8B 07 mov ax,[bx] -273F:8421 56 push si -273F:8422 E8 88C5 call get_room_resource_pointer2 -273F:8425 8B 44 0F mov ax,[si+0Fh] -273F:8428 03 44 1B add ax,[si+1Bh] -273F:842B 5E pop si -273F:842C 87 DA xchg bx,dx -273F:842E 8B 4F 18 mov cx,[bx+18h] -273F:8431 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:8433 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:8435 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:8437 81 C1 0098 add cx,98h -273F:843B 3B C1 cmp ax,cx -273F:843D 72 10 jb loc_1648 ; Jump if below -273F:843F C7 07 0000 mov word ptr [bx],0 -273F:8443 87 DA xchg bx,dx -273F:8445 C7 07 0000 mov word ptr [bx],0 -273F:8449 C7 47 02 0000 mov word ptr [bx+2],0 - -273F:844E loc_ret_1647: ; xref 273F:8417 -273F:844E C3 retn -273F:844F loc_1648: ; xref 273F:843D -273F:844F 87 DA xchg bx,dx -273F:8451 81 3F 03E8 cmp word ptr [bx], PLAYER_HOTSPOT_ID -273F:8455 74 05 je loc_1649 ; Jump if equal -273F:8457 C6 47 03 00 mov byte ptr [bx+3],0 -273F:845B C3 retn -273F:845C loc_1649: ; xref 273F:8455 -273F:845C 80 67 03 7F and byte ptr [bx+3],7Fh -273F:8460 F6 47 03 07 test byte ptr [bx+3],7 -273F:8464 74 0D jz loc_1651 ; Jump if zero -273F:8466 8A 47 03 mov al,[bx+3] -273F:8469 80 67 03 F8 and byte ptr [bx+3],0F8h -273F:846D 32 E4 xor ah,ah ; Zero register -273F:846F 89 44 28 mov [si+28h],ax - -273F:8472 loc_ret_1650: ; xref 273F:8478 -273F:8472 C3 retn -273F:8473 loc_1651: ; xref 273F:8464 -273F:8473 F7 44 2F FFFF test word ptr [si+2Fh],0FFFFh -273F:8478 75 F8 jnz loc_ret_1650 ; Jump if not zero -273F:847A C7 07 0000 mov word ptr [bx],0 -273F:847E 8B DA mov bx,dx -273F:8480 C7 07 0000 mov word ptr [bx],0 -273F:8484 C7 44 28 0002 mov word ptr [si+28h],2 -273F:8489 C3 retn -273F:848A loc_1652: ; xref 273F:832D -273F:848A 8B 44 0D mov ax,[si+0Dh] -273F:848D BA FFFE mov dx,0FFFEh -273F:8490 2B 44 24 sub ax,[si+24h] -273F:8493 73 14 jnc loc_1654 ; Jump if carry=0 -273F:8495 F7 D8 neg ax -273F:8497 F7 DA neg dx -273F:8499 80 44 2A 01 add byte ptr [si+2Ah],1 -273F:849D 80 7C 2A 06 cmp byte ptr [si+2Ah],6 - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 319 - -273F:84A1 72 04 jb loc_1653 ; Jump if below -273F:84A3 C6 44 2A 00 mov byte ptr [si+2Ah],0 -273F:84A7 loc_1653: ; xref 273F:84A1 -273F:84A7 EB 14 jmp short loc_1656 ; (84BD) -273F:84A9 loc_1654: ; xref 273F:8493 -273F:84A9 80 44 2A 01 add byte ptr [si+2Ah],1 -273F:84AD 80 7C 2A 0C cmp byte ptr [si+2Ah],0Ch -273F:84B1 73 06 jae loc_1655 ; Jump if above or = -273F:84B3 80 7C 2A 06 cmp byte ptr [si+2Ah],6 -273F:84B7 73 04 jae loc_1656 ; Jump if above or = -273F:84B9 loc_1655: ; xref 273F:84B1 -273F:84B9 C6 44 2A 06 mov byte ptr [si+2Ah],6 -273F:84BD loc_1656: ; xref 273F:84A7, 84B7 -273F:84BD 3D 0002 cmp ax,2 -273F:84C0 72 08 jb loc_1657 ; Jump if below -273F:84C2 01 54 0D add [si+0Dh],dx -273F:84C5 01 15 add [di],dx -273F:84C7 E9 FB49 jmp loc_set_frame_offset -273F:84CA loc_1657: ; xref 273F:84C0 -273F:84CA C6 44 2A 0C mov byte ptr [si+2Ah],0Ch -273F:84CE 80 64 28 7F and byte ptr [si+28h],7Fh -273F:84D2 E9 FB3E jmp loc_set_frame_offset - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8565 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:84D5 sub_212 proc near -273F:84D5 8B 44 0F mov ax, [si+HS_Y] -273F:84D8 03 44 1B add ax, [si+HS_HEIGHT_COPY] -273F:84DB 8B 4F 18 mov cx, [bx+18h] -273F:84DE D1 E1 shl cx,1 ; Shift w/zeros fill -273F:84E0 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:84E2 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:84E4 81 C1 0098 add cx,98h -273F:84E8 3B C1 cmp ax,cx -273F:84EA 73 06 jae loc_1658 ; Jump if above or = -273F:84EC 0D 0001 or ax,1 -273F:84EF 33 C9 xor cx,cx ; Zero register -273F:84F1 C3 retn -273F:84F2 loc_1658: ; xref 273F:84EA -273F:84F2 53 push bx -273F:84F3 8B 44 06 mov ax,[si+6] -273F:84F6 2D 0001 sub ax,1 -273F:84F9 BA 0078 mov dx,78h -273F:84FC F7 E2 mul dx ; dx:ax = reg * ax -273F:84FE 8B 4F 18 mov cx,[bx+18h] -273F:8501 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:8503 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:8505 03 4F 18 add cx,[bx+18h] -273F:8508 03 C1 add ax,cx -273F:850A 05 0004 add ax,4 -273F:850D úBB 984A mov bx, offset data_441 -273F:8510 03 D8 add bx,ax -273F:8512 B2 01 mov dl,1 -273F:8514 B9 0027 mov cx,27h -273F:8517 32 F6 xor dh,dh ; Zero register - -273F:8519 locloop_1659: ; xref 273F:8553 -273F:8519 84 17 test dl,[bx] -273F:851B 75 2B jnz loc_1660 ; Jump if not zero -273F:851D 80 C6 01 add dh,1 -273F:8520 80 FE 04 cmp dh,4 -273F:8523 72 25 jb loc_1661 ; Jump if below -273F:8525 B8 0008 mov ax,8 -273F:8528 F7 E1 mul cx ; dx:ax = reg * ax -273F:852A 8B C8 mov cx,ax -273F:852C 81 C1 0080 add cx,80h -273F:8530 5B pop bx -273F:8531 53 push bx -273F:8532 8B 57 18 mov dx,[bx+18h] -273F:8535 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:8537 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:8539 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:853B 81 C2 0088 add dx,88h -273F:853F B0 01 mov al,1 -273F:8541 E8 CFD5 call character_start_walking -273F:8544 33 C9 xor cx,cx ; Zero register -273F:8546 5B pop bx -273F:8547 C3 retn -273F:8548 loc_1660: ; xref 273F:851B -273F:8548 32 F6 xor dh,dh ; Zero register -273F:854A loc_1661: ; xref 273F:8523 -273F:854A D0 E2 shl dl,1 ; Shift w/zeros fill -273F:854C 73 05 jnc loc_1662 ; Jump if carry=0 -273F:854E 83 EB 01 sub bx,1 -273F:8551 B2 01 mov dl,1 -273F:8553 loc_1662: ; xref 273F:854C -273F:8553 E2 C4 loop locloop_1659 ; Loop if cx > 0 - -273F:8555 83 C9 01 or cx,1 -273F:8558 5B pop bx -273F:8559 C3 retn - sub_212 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:45B8 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:855A sub_213 proc near -273F:855A 53 push bx -273F:855B E8 FD29 call sub_211 ; list[room #] => bx -273F:855E F6 44 2A FF test byte ptr [si+HS_ACTION_CTR], 0FFh -273F:8562 75 45 jnz loc_1669 ; Jump if not zero -273F:8564 58 pop ax -273F:8565 E8 FF6D call sub_212 ; (84D5) -273F:8568 74 03 jz loc_1664 ; Jump if zero -273F:856A loc_1663: ; xref 273F:8594 -273F:856A ú33 C0 xor ax,ax ; Zero register -273F:856C C3 retn -273F:856D loc_1664: ; xref 273F:8568 -273F:856D 0B C0 or ax, ax ; Zero ? -273F:856F 74 35 jz loc_1668 ; Jump if zero -273F:8571 83 C3 02 add bx, 2 -273F:8574 B9 0004 mov cx, 4 -273F:8577 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] - -273F:857A locloop_1665: ; xref 273F:8581 -273F:857A 39 07 cmp [bx], ax -273F:857C 74 18 je loc_1667 ; Jump if equal -273F:857E 83 C3 04 add bx,4 -273F:8581 E2 F7 loop locloop_1665 ; Loop if cx > 0 - -273F:8583 B9 0004 mov cx, 4 -273F:8586 83 EB 10 sub bx, 10h - -273F:8589 locloop_1666: ; xref 273F:8592 -273F:8589 F7 07 FFFF test word ptr [bx], 0FFFFh -273F:858D 74 07 jz loc_1667 ; Jump if zero -273F:858F 83 C3 04 add bx, 4 -273F:8592 E2 F5 loop locloop_1666 ; Loop if cx > 0 - -273F:8594 EB D4 jmp short loc_1663 ; (856A) -273F:8596 loc_1667: ; xref 273F:857C, 858D -273F:8596 89 07 mov [bx],ax -273F:8598 C6 47 03 82 mov byte ptr [bx+3],82h -273F:859C C6 44 2A 01 mov byte ptr [si+2Ah],1 -273F:85A0 E8 BDC3 call character_update_movement -273F:85A3 E8 BF33 call char_face_up -273F:85A6 loc_1668: ; xref 273F:856F -273F:85A6 33 C0 xor ax,ax ; Zero register -273F:85A8 C3 retn -273F:85A9 loc_1669: ; xref 273F:8562 -273F:85A9 83 C3 02 add bx, 2 -273F:85AC B9 0004 mov cx, 4 -273F:85AF 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] - -273F:85B2 locloop_1670: ; xref 273F:85B9 -273F:85B2 39 07 cmp [bx], ax -273F:85B4 74 0D je loc_1672 ; Jump if equal -273F:85B6 83 C3 04 add bx,4 -273F:85B9 E2 F7 loop locloop_1670 ; Loop if cx > 0 - -273F:85BB C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:85BF loc_1671: ; xref 273F:85C7 -273F:85BF 5B pop bx -273F:85C0 33 C0 xor ax,ax ; Zero register -273F:85C2 C3 retn -273F:85C3 loc_1672: ; xref 273F:85B4 -273F:85C3 F6 47 03 80 test byte ptr [bx+3], 80h -273F:85C7 75 F6 jnz loc_1671 ; Jump if not zero -273F:85C9 5B pop bx -273F:85CA B8 0001 mov ax, 1 -273F:85CD C3 retn - sub_213 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:85CE E8 DBA7 call talk_countdown_handler -273F:85D1 E9 FA3F jmp loc_set_frame_offset - - ;* No entry point to code -273F:85D4 BA 3627 mov dx,3627h -273F:85D7 8B 44 06 mov ax,[si+6] -273F:85DA 89 47 03 mov [bx+3],ax -273F:85DD 89 57 01 mov [bx+1],dx -273F:85E0 C3 retn - ;* No entry point to code -273F:85E1 C7 06 6B98 0063 mov word ptr ds:[6B98h],63h ; (273F:6B98=75C9h) -273F:85E7 C3 retn - ;* No entry point to code -273F:85E8 C7 06 6B98 0011 mov word ptr ds:[6B98h],11h ; (273F:6B98=75C9h) -273F:85EE C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_56 proc near -273F:85EF úBE 6CEF mov si, offset player_hotspot_rec -273F:85F2 E8 FC92 call sub_211 ; (8287) -273F:85F5 0B DB or bx,bx ; Zero ? -273F:85F7 74 16 jz loc_ret_1675 ; Jump if zero -273F:85F9 83 C3 02 add bx,2 -273F:85FC B9 0004 mov cx,4 -273F:85FF locloop_1673: ; xref 273F:8608 -273F:85FF 81 3F 03E8 cmp word ptr [bx], PLAYER_HOTSPOT_ID -273F:8603 74 06 je loc_1674 ; Jump if equal -273F:8605 83 C3 04 add bx,4 -273F:8608 E2 F5 loop locloop_1673 ; Loop if cx > 0 -273F:860A C3 retn - -273F:860B loc_1674: ; xref 273F:8603 -273F:860B 80 4F 03 05 or byte ptr [bx+3],5 -273F:860F loc_ret_1675: ; xref 273F:85F7 -273F:860F C3 retn - seq_method_56 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - get_num_groats proc near -273F:8610 A1 BC49 mov ax, num_groats -273F:8613 A3 BA1F mov general_val, ax -273F:8616 loc_ret_1676: ; xref 273F:861C, 8623 -273F:8616 C3 retn - get_num_groats endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:8617 83 3E BA3B 08 cmp talk_record_index, 8 -273F:861C 72 F8 jb loc_ret_1676 ; Jump if below -273F:861E 83 3E BA3B 0E cmp talk_record_index, 0Eh -273F:8623 73 F1 jae loc_ret_1676 ; Jump if above or = -273F:8625 C7 44 0F 00D5 mov word ptr [si+0Fh],0D5h -273F:862A E9 EB45 jmp animation_load_2 -273F:862D E9 DB48 jmp talk_countdown_handler - - ;* No entry point to code -273F:8630 úBE 7D21 mov si, offset goewin_hotspot_rec -273F:8633 8B 7C 0B mov di,[si+0Bh] -273F:8636 E8 BD2D call character_update_movement -273F:8639 8B DE mov bx,si -273F:863B 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:863E 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:8641 C6 07 03 mov byte ptr [bx],3 -273F:8644 C7 44 28 05DC mov word ptr [si+28h],5DCh -273F:8649 C7 44 24 0616 mov word ptr [si+24h],616h -273F:864E C7 45 11 865A mov word ptr [di+11h],865Ah -273F:8653 C7 06 BD9B 03EF mov word ptr ds:data_496e,3EFh ; (273F:BD9B=0) - -273F:8659 loc_ret_1677: ; xref 273F:8679 -273F:8659 C3 retn - ;* No entry point to code -273F:865A C7 44 50 0000 mov word ptr [si+HS_DIRECTION], 0 -273F:865F C6 44 44 07 mov byte ptr [si+HS_CHAR_MODE], CHARMODE_7 -273F:8663 E8 DB12 call talk_countdown_handler -273F:8666 F7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:866B 74 05 jz loc_1678 ; Jump if zero -273F:866D 83 6C 1F 01 sub word ptr [si+HS_FRAME_CTR], 1 -273F:8671 C3 retn -273F:8672 loc_1678: ; xref 273F:866B -273F:8672 E8 8934 call hotspot_script_execute -273F:8675 83 6C 28 01 sub word ptr [si+HS_FRAME_OFFSET], 1 -273F:8679 75 DE jnz loc_ret_1677 ; Jump if not zero -273F:867B 83 3E BA3B 0C cmp talk_record_index, 0Ch -273F:8680 74 3B je loc_1679 ; Jump if equal -273F:8682 83 3E BA3B 0D cmp talk_record_index, 0Dh -273F:8687 74 34 je loc_1679 ; Jump if equal -273F:8689 83 3E BA3B 0E cmp talk_record_index, 0Eh -273F:868E 74 2D je loc_1679 ; Jump if equal -273F:8690 83 3E 6CF5 22 cmp [player_hotspot_rec+HS_ROOM_NUM], 34 -273F:8695 74 26 je loc_1679 ; Jump if equal - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_60 proc near -273F:8697 úBE 7D21 mov si, offset goewin_hotspot_rec -273F:869A 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] -273F:869D 8B DE mov bx, si -273F:869F 03 5C 61 add bx, [si+HS_ACTION_OFFSET] -273F:86A2 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET -273F:86A5 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION -273F:86A8 C6 44 44 00 mov byte ptr [si+HS_CHAR_MODE], 0 -273F:86AC C7 44 50 0000 mov word ptr [si+HS_DIRECTION], 0 -273F:86B1 C7 45 11 4F82 mov word ptr [di+ANIM_TICK_PROC], offset standard_character_tick_proc -273F:86B6 C7 06 BD9B FFFF mov word ptr ds:data_496e, 0FFFFh ; (273F:BD9B=0) -273F:86BC C3 retn - seq_method_60 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:86BD loc_1679: ; xref 273F:8680, 8687, 868E, 8695 -273F:86BD C7 44 28 05DC mov word ptr [si+HS_FRAME_OFFSET], 5DCh -273F:86C2 C3 retn - ;* No entry point to code -273F:86C3 B8 271E mov ax, 271Eh -273F:86C6 E8 EB25 call room_exit_hs_get_pointer -273F:86C9 C6 44 0C 00 mov byte ptr [si+REHS_EXIT_BLOCKED], 0 -273F:86CD C3 retn - ;* No entry point to code -273F:86CE B8 271E mov ax,271Eh -273F:86D1 E8 EB1A call room_exit_hs_get_pointer -273F:86D4 C6 44 0C 01 mov byte ptr [si+REHS_EXIT_BLOCKED], 1 -273F:86D8 C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_59 proc near -273F:86D9 C7 06 8CE7 0800 mov data_8ce7, 800h -273F:86DF C7 06 8D2C 0800 mov data_8d2C, 800h -273F:86E5 C3 retn - seq_method_59 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_door_close proc near -273F:86E6 8B C3 mov ax,bx -273F:86E8 E8 EB03 call room_exit_hs_get_pointer -273F:86EB C6 44 0C 01 mov byte ptr [si+REHS_EXIT_BLOCKED], 1 -273F:86EF C3 retn - seq_door_close endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_door_open proc near -273F:86F0 8B C3 mov ax,bx -273F:86F2 E8 EAF9 call room_exit_hs_get_pointer -273F:86F5 C6 44 0C 00 mov byte ptr [si+REHS_EXIT_BLOCKED], 0 -273F:86F9 C3 retn - seq_door_open endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - - ;* No entry point to code -273F:86FA B8 272A mov ax,272Ah -273F:86FD EB 03 jmp short loc_1680 ; (8702) -273F:86FF B8 2C 27 db 0B8h, 2Ch, 27h -273F:8702 loc_1680: ; xref 273F:86FD, 8740 -273F:8702 úC7 45 08 0000 mov word ptr [di+8],0 -273F:8707 56 push si -273F:8708 E8 EAE3 call room_exit_hs_get_pointer -273F:870B 5B pop bx -273F:870C 87 DE xchg bx,si -273F:870E F6 47 0C FF test byte ptr [bx+0Ch],0FFh -273F:8712 75 09 jnz loc_ret_1681 ; Jump if not zero -273F:8714 8B 5C 21 mov bx,[si+21h] -273F:8717 8B 47 07 mov ax,[bx+7] -273F:871A 89 45 08 mov [di+8],ax - -273F:871D loc_ret_1681: ; xref 273F:8712 -273F:871D C3 retn -273F:871E B8 272A mov az, 272Ah - -273F:8721 loc_1682: ; xref 273F:8745, 874A -273F:8721 úC7 45 08 0000 mov word ptr [di+8],0 -273F:8726 56 push si -273F:8727 E8 EAC4 call room_exit_hs_get_pointer -273F:872A 5B pop bx -273F:872B 87 DE xchg bx,si -273F:872D F6 47 0C FF test byte ptr [bx+0Ch],0FFh -273F:8731 74 09 jz loc_ret_1683 ; Jump if zero -273F:8733 8B 5C 21 mov bx,[si+21h] -273F:8736 8B 47 07 mov ax,[bx+7] -273F:8739 89 45 08 mov [di+8],ax - -273F:873C loc_ret_1683: ; xref 273F:8731 -273F:873C C3 retn - ;* No entry point to code -273F:873D B8 272E mov ax,272Eh -273F:8740 EB C0 jmp short loc_1680 ; (8702) - ;* No entry point to code -273F:8742 B8 272C mov ax,272Ch -273F:8745 EB DA jmp short loc_1682 ; (8721) - ;* No entry point to code -273F:8747 B8 272A mov ax,272Ah -273F:874A EB D5 jmp short loc_1682 ; (8721) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_58 proc near -273F:874C C7 06 BA1D 0000 mov sequence_result, 0 -273F:8752 81 3E 84CD 03E8 cmp hotspot_2713_hs5e, PLAYER_HOTSPOT_ID -273F:8758 75 06 jne loc_ret_1684 ; Jump if not equal -273F:875A C7 06 BA1D 0001 mov sequence_result, 1 -273F:8760 loc_ret_1684: -273F:8760 C3 retn - seq_method_58 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_method_43 proc near -273F:8761 úBE 7D21 mov si, offset goewin_hotspot_rec -273F:8764 8B 7C 0B mov di, [si+HS_ANIM_OFFSET] -273F:8767 C7 45 11 4F82 mov word ptr [di+ANIM_TICK_PROC], 4F82h -273F:876C C7 44 17 4F82 mov word ptr [si+HS_TICK_PROC], 4F82h -273F:8771 C7 44 64 7D9D mov word ptr [si+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_SUPPORT_TABLE], 7D9Dh -273F:8776 C6 44 63 02 mov byte ptr [si+HS_FIRST_ACTION_OFFSET], 2 -273F:877A 81 36 7D21 1000 xor [goewin_hotspot_rec+HS_ACTIONS], 1000h -273F:8780 EB 22 jmp short loc_1685 - seq_method_43 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8782 úBE 7D21 mov si, offset goewin_hotspot_rec -273F:8785 8B 7C 0B mov di,[si+0Bh] -273F:8788 C7 45 11 7C24 mov word ptr [di+11h],7C24h -273F:878D C7 44 17 7C24 mov word ptr [si+17h],7C24h -273F:8792 C7 44 64 4EBB mov word ptr [si+64h],4EBBh -273F:8797 C6 44 63 02 mov byte ptr [si+63h],2 -273F:879B C7 44 66 0026 mov word ptr [si+66h],26h -273F:87A0 81 0C 1000 or word ptr [si],1000h -273F:87A4 loc_1685: ; xref 273F:8780 -273F:87A4 33 C0 xor ax,ax ; Zero register -273F:87A6 89 44 61 mov [si+HS_ACTION_OFFSET], ax -273F:87A9 88 44 2A mov [si+HS_ACTION_CTR], al -273F:87AC 89 44 42 mov [si+HS_DELAY_CTR], ax -273F:87AF 88 44 44 mov [si+HS_CHAR_MODE], al -273F:87B2 C3 retn - - ;* No entry point to code -273F:87B3 E8 87F3 call hotspot_script_execute -273F:87B6 75 05 jnz loc_ret_1686 ; Jump if not zero -273F:87B8 80 0E 073D 50 or status_flags2, 50h -273F:87BD loc_ret_1686: ; xref 273F:87B6, 87C3 -273F:87BD C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; This method is referenced by a jump point for NPC script action #40 - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_jump_to_address_proc_1 proc near -273F:87BE 83 3E BA25 13 cmp old_room_number, 13h -273F:87C3 75 F8 jne loc_ret_1686 ; Jump if not equal -273F:87C5 C7 06 BA3B 0018 mov talk_record_index, 18h -273F:87CB BB 03F1 mov bx,3F1h -273F:87CE B9 0154 mov cx,154h -273F:87D1 E8 0006 call seq_set_hotspot_name -273F:87D4 BB 0AB9 mov bx, 0AB9h -273F:87D7 E9 00E2 jmp display_dialog - npc_jump_to_address_proc_1 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:87D1, 89A6 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:87DA seq_set_hotspot_name proc near -273F:87DA 51 push cx -273F:87DB E8 8541 call get_room_resource_pointer3 -273F:87DE 58 pop ax -273F:87DF 89 44 02 mov [si+HSH_NAME], ax -273F:87E2 C3 retn - seq_set_hotspot_name endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - - seq_set_desc proc near -273F:87E3 51 push cx -273F:87E4 E8 8538 call get_room_resource_pointer3 -273F:87E7 58 pop ax -273F:87E8 89 44 04 mov [si+HSH_DESC], ax -273F:87EB C3 retn - seq_set_desc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - - ;* No entry point to code -273F:87EC E8 D989 call talk_countdown_handler -273F:87EF F7 44 1F FFFF test word ptr [si+1Fh],0FFFFh -273F:87F4 74 05 jz loc_1688 ; Jump if zero -273F:87F6 83 6C 1F 01 sub word ptr [si+1Fh],1 - -273F:87FA loc_ret_1687: ; xref 273F:87FE -273F:87FA C3 retn -273F:87FB loc_1688: ; xref 273F:87F4 -273F:87FB E8 87AB call hotspot_script_execute -273F:87FE 75 FA jnz loc_ret_1687 ; Jump if not zero -273F:8800 E8 8A6F call animation_unload -273F:8803 C6 44 15 FF mov byte ptr [si+15h],0FFh -273F:8807 C7 44 37 0000 mov word ptr [si+HS_TALK_COUNTDOWN],0 -273F:880C 80 4C 03 20 or byte ptr [si+3],20h ; ' ' -273F:8810 C7 06 6FEF 002D mov word ptr ds:[6FEFh],2Dh ; (273F:6FEF=0D107h) -273F:8816 úBB 03F3 mov bx,3F3h ; (273F:03F3=0FBh) -273F:8819 E9 84AA jmp animation_load_entry - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; This method is referenced by a jump point for NPC script action #40 - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - npc_jump_to_address_proc_2 proc near -273F:881C 81 3E 6CFE 00B4 cmp [player_hotspot_rec+HS_Y], 80h + 52 -273F:8822 73 14 jae loc_ret_1689 ; Jump if above or = -273F:8824 BD 706C mov bp, 706Ch -273F:8827 E9 CD57 jmp character_walking_end - npc_jump_to_address_proc_2 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Contains all the standard handling for characters, such as the Skorl - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - rack_serf_tick_proc proc near -273F:882A E8 D94B call talk_countdown_handler -273F:882D F7 44 1F FFFF test word ptr [si+HS_FRAME_CTR], 0FFFFh -273F:8832 74 05 jz loc_1690 -273F:8834 83 6C 1F 01 sub word ptr [si+HS_FRAME_CTR], 1 - -273F:8838 loc_ret_1689: -273F:8838 C3 retn -273F:8839 loc_1690: -273F:8839 F6 44 2A FF test byte ptr [si+HS_ACTION_CTR], 0FFh -273F:883D 75 01 jnz loc_1691 -273F:883F C3 retn -273F:8840 loc_1691: ; xref 273F:883D -273F:8840 80 7C 2A 01 cmp byte ptr [si+HS_ACTION_CTR], 1 -273F:8844 74 0E je loc_1692 -273F:8846 80 7C 2A 02 cmp byte ptr [si+HS_ACTION_CTR], 2 -273F:884A 74 12 je loc_1694 -273F:884C 80 7C 2A 03 cmp byte ptr [si+HS_ACTION_CTR], 3 -273F:8850 74 18 je loc_1695 -273F:8852 EB 23 jmp short loc_1696 -273F:8854 loc_1692: -273F:8854 C7 44 24 035C mov word ptr [si+HS_MOVEMENT_OFFSET], 35Ch -273F:8859 80 44 2A 01 add byte ptr [si+HS_ACTION_CTR], 1 - -273F:885D loc_ret_1693: ; xref 273F:8863, 887C -273F:885D C3 retn -273F:885E loc_1694: ; xref 273F:884A -273F:885E E8 8748 call hotspot_script_execute -273F:8861 0B C0 or ax,ax ; Zero ? -273F:8863 75 F8 jnz loc_ret_1693 ; Jump if not zero -273F:8865 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0 -273F:8869 C3 retn -273F:886A loc_1695: ; xref 273F:8850 -273F:886A C7 44 24 0384 mov word ptr [si+HS_SCRIPT_OFFSET], 384h -273F:886F 80 44 2A 01 add byte ptr [si+HS_ACTION_CTR], 1 -273F:8873 C6 45 0C 02 mov byte ptr [di+ANIM_LAYER], 2 -273F:8877 loc_1696: ; xref 273F:8852 -273F:8877 E8 872F call hotspot_script_execute -273F:887A 0B C0 or ax,ax ; Zero ? -273F:887C 75 DF jnz loc_ret_1693 ; Jump if not zero -273F:887E E8 89F1 call animation_unload -273F:8881 C6 44 15 FF mov byte ptr [si+HS_LAYER], 0FFh -273F:8885 C7 06 70BF 0004 mov [ratpouch_hotspot_rec+HS_ROOM_NUM], 4 -273F:888B BB 03E9 mov bx, RATPOUCH_HOTSPOT_ID -273F:888E E9 8435 jmp animation_load_entry - rack_serf_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_check_cell_door proc near -273F:8891 B8 2712 mov ax,2712h ; Cell door hotspot Id -273F:8894 E8 E957 call room_exit_hs_get_pointer -273F:8897 F6 44 0C FF test byte ptr [si+REHS_EXIT_BLOCKED], 0FFh -273F:889B 75 0E jnz loc_ret_1697 ; Jump if blocked - seq_check_cell_door_2: -273F:889D F7 06 BA29 FFFF test torch_hide, 0FFFFh ; Torch been pulled? -273F:88A3 74 06 jz loc_ret_1697 ; No, so exit -273F:88A5 BB 0015 mov bx, 15h -273F:88A8 E8 1752 call play_sound ; (9FFD) - -273F:88AB loc_ret_1697: ; xref 273F:889B, 88A3 -273F:88AB C3 retn - seq_check_cell_door endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called by the torch hotspot in room #1 - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - torch_load_method proc near -273F:88AC F7 06 BA29 FFFF test torch_hide, 0FFFFh ; Has torch been pulled? -273F:88B2 75 06 jnz loc_ret_1698 ; Yes, so skip load -273F:88B4 BB 040F mov bx,40Fh ; Otherwise, load torch -273F:88B7 E8 E8B5 call animation_load - -273F:88BA loc_ret_1698: ; xref 273F:88B2 -273F:88BA C3 retn - torch_load_method proc near - -273F:88BB 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx = Room description resource Id - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - display_dialog proc near -273F:88BC BE 5040 mov si, offset look_info -273F:88BF 89 5C 08 mov [si+8],bx -273F:88C2 C6 06 38B0 01 mov data_781, 1 -273F:88C7 E8 0043 call sub_216 ; (890D) -273F:88CA 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:88CF 75 03 jne loc_1700 ; Jump if not equal -273F:88D1 E8 0052 call sub_217 ; (8926) -273F:88D4 loc_1700: ; xref 273F:88CF -273F:88D4 F6 06 073C 20 test byte ptr ds:[73Ch],20h ; (273F:073C=17h) ' ' -273F:88D9 74 0F jz loc_1701 ; Jump if zero -273F:88DB E8 B1DD call replace_vga_palette2 ; (3ABB) -273F:88DE FF 36 073C push word ptr ds:[73Ch] ; (273F:073C=17h) -273F:88E2 FF 16 0762 call [set_lower_palette_proc] -273F:88E6 8F 06 073C pop word ptr ds:[73Ch] ; (273F:073C=17h) -273F:88EA loc_1701: ; xref 273F:88D9 -273F:88EA E8 969E call mouse_wait ; (1F8B) -273F:88ED E8 96A6 call pause_for_input ; (1F96) -273F:88F0 E8 9698 call mouse_wait ; (1F8B) -273F:88F3 C6 06 38B0 00 mov data_781, 0 -273F:88F8 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:88FD FF 16 075E call [show_cursor_proc] -273F:8901 F6 06 073C 20 test byte ptr ds:[73Ch],20h ; (273F:073C=17h) ' ' -273F:8906 74 04 jz loc_ret_1702 ; Jump if zero -273F:8908 FF 16 0764 call [empty_palette_proc] - -273F:890C loc_ret_1702: ; xref 273F:8906 -273F:890C C3 retn - display_dialog proc near - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4129, 7051, 705B, 88C7 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:890D sub_216 proc near -273F:890D F6 06 11D0 20 test menubar_state, 20h ; (273F:11D0=56h) ' ' -273F:8912 74 12 jz loc_1703 ; Jump if zero -273F:8914 56 push si -273F:8915 80 0E 11D0 01 or menubar_state, 1 ; (273F:11D0=56h) -273F:891A FF 16 075E call [show_cursor_proc] -273F:891E FF 16 0752 call [show_compressed_screen_proc] -273F:8922 E8 8BE9 call room_add_animations -273F:8925 5E pop si - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:88D1 - -273F:8926 sub_217: -273F:8926 loc_1703: ; xref 273F:8912 -273F:8926 56 push si -273F:8927 8A 44 01 mov al,[si+1] -273F:892A 04 01 add al,1 -273F:892C 32 E4 xor ah,ah ; Zero register -273F:892E F7 26 074C mul menubar_block_size -273F:8932 8A 0C mov cl,[si] -273F:8934 80 C1 01 add cl,1 -273F:8937 32 ED xor ch,ch ; Zero register -273F:8939 91 xchg cx,ax -273F:893A F7 26 074A mul char_width -273F:893E 03 C1 add ax,cx -273F:8940 A3 BA0F mov ds:data_470e,ax ; (273F:BA0F=0) -273F:8943 A3 BA11 mov ds:data_471e,ax ; (273F:BA11=0) -273F:8946 8B 44 08 mov ax,[si+8] -273F:8949 BF AF42 mov di, offset talk_string_buffer -273F:894C 89 3E BA07 mov talk_string_offset, di -273F:8950 FF 74 06 push word ptr [si+6] -273F:8953 E8 F3E4 call decode_string -273F:8956 5D pop bp -273F:8957 A1 0748 mov ax, screen_width -273F:895A A3 BA09 mov ds:data_468e,ax ; (273F:BA09=0) -273F:895D A1 4CE4 mov ax, data_segment2 -273F:8960 A3 BA0D mov ds:data_469e,ax ; (273F:BA0D=0) -273F:8963 C6 06 BA13 04 mov byte ptr ds:data_472e,4 ; (273F:BA13=0) -273F:8968 8B 3E 076E mov di, data_571 -273F:896C 8A 45 05 mov al,[di+5] -273F:896F A2 BA14 mov ds:data_473e,al ; (273F:BA14=0) -273F:8972 8B 3E BA07 mov di, talk_string_offset -273F:8976 BB BA07 mov bx, offset talk_string_offset -273F:8979 A1 4CF0 mov ax, font2_segment -273F:897C 8E C0 mov es, ax -273F:897E B1 03 mov cl, 3 -273F:8980 E8 91AD call word_wrap_string -273F:8983 5E pop si -273F:8984 56 push si -273F:8985 8A D0 mov dl,al -273F:8987 88 44 03 mov [si+3],al -273F:898A 8A 04 mov al,[si] -273F:898C 8A 5C 01 mov bl,[si+1] -273F:898F 8A 4C 02 mov cl,[si+2] -273F:8992 33 ED xor bp,bp ; Zero register -273F:8994 FF 16 077A call [draw_dialog_proc] -273F:8998 úBB BA07 mov bx, offset talk_string_offset -273F:899B loc_1704: ; xref 273F:899E -273F:899B E8 91FA call sub_51 ; (1B98) -273F:899E 74 FB jz loc_1704 ; Jump if zero -273F:89A0 FF 16 0744 call word ptr [show_screen_proc] -273F:89A4 5E pop si -273F:89A5 C3 retn - sub_216 endp - - ;* No entry point to code -273F:89A6 E8 FE31 call seq_set_hotspot_name -273F:89A9 8B 34 mov si,[si] -273F:89AB 80 4C 03 80 or byte ptr [si+3],80h -273F:89AF C3 retn - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; JUMP POINT - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:89B0 loc_1705: ; xref 273F:5BD7 -273F:89B0 E8 006E call talk_init -273F:89B3 8B 1E BA21 mov bx, script_v6 -273F:89B7 D1 E3 shl bx, 1 -273F:89B9 8B 9F 5050 mov bx, give_talk_list[bx] -273F:89BD E8 00C8 call talk_init2 -273F:89C0 E9 CBCA jmp character_walking_end_2 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_to_proc proc near -273F:89C3 8B DD mov bx,bp -273F:89C5 8B 07 mov ax, [bx] -273F:89C7 83 C5 02 add bp,2 -273F:89CA A3 BA19 mov use_hotspot_id, ax -273F:89CD A3 BA1B mov active_hotspot_id, ax -273F:89D0 56 push si -273F:89D1 E8 8316 call get_room_resource_pointer2 -273F:89D4 5B pop bx -273F:89D5 87 DE xchg bx,si -273F:89D7 81 3E BA19 03EA cmp use_hotspot_id, SKORL_HOTSPOT_ID -273F:89DD 74 21 je loc_1708 ; Jump if equal -273F:89DF 83 7C 06 1C cmp word ptr [si+HS_ROOM_NUM], 28 -273F:89E3 75 08 jne loc_1706 ; Jump if not equal -273F:89E5 81 3E BA19 03EB cmp use_hotspot_id, 3EBh -273F:89EB 74 13 je loc_1708 ; Jump if equal -273F:89ED loc_1706: ; xref 273F:89E3 -273F:89ED A1 BA19 mov ax, use_hotspot_id -273F:89F0 E8 BBB4 call hotspot_action_precheck -273F:89F3 0B C0 or ax,ax ; Zero ? -273F:89F5 74 09 jz loc_1708 ; Jump if zero -273F:89F7 3D 0003 cmp ax,3 -273F:89FA 74 03 je loc_ret_1707 ; Jump if equal -273F:89FC E9 CB82 jmp character_walking_end - -273F:89FF loc_ret_1707: ; xref 273F:89FA -273F:89FF C3 retn -273F:8A00 loc_1708: ; xref 273F:89DD, 89EB, 89F5 -273F:8A00 E8 BCEB call character_face_hotspot -273F:8A03 E8 CBF0 call hotspot_get_action_sequence -273F:8A06 79 03 jns loc_1709 ; Jump if not sign -273F:8A08 E9 D9A6 jmp display_message_dialog_3 -273F:8A0B loc_1709: ; xref 273F:8A06 -273F:8A0B 74 08 jz loc_1710 ; Jump if zero -273F:8A0D E8 B424 call sequence_execute -273F:8A10 74 03 jz loc_1710 ; Jump if zero -273F:8A12 E9 CB6C jmp character_walking_end -273F:8A15 loc_1710: ; xref 273F:8A0B, 8A10 -273F:8A15 E8 0009 call talk_init -273F:8A18 E8 0026 call talk_get_record -273F:8A1B E8 006A call talk_init2 -273F:8A1E E9 CB6C jmp character_walking_end_2 - talk_to_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx = talking to char hotspot rec - ; di = player anim slot - ; Amongst other things, sets the player's tick proc to the - ; talk tick handler - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_init proc near -273F:8A21 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:8A24 89 47 2F mov [bx+HS_USE_HOTSPOT_ID], ax -273F:8A27 C7 47 2B 0000 mov [bx+HS_V2B], 0 -273F:8A2C 89 1E CF06 mov talk_to_hotspot_ptr, bx -273F:8A30 55 push bp -273F:8A31 E8 B932 call character_update_movement -273F:8A34 5D pop bp -273F:8A35 B8 8ABD mov ax, offset talk_tick_proc -273F:8A38 89 45 11 mov [di+ANIM_TICK_PROC], ax -273F:8A3B C6 06 9834 03 mov cursor_state, CURSORSTATE_TALK -273F:8A40 C3 retn - talk_init endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx = talking to char hotspot rec - ; Called from: 273F:8A18 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_get_record proc near -273F:8A41 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8A45 F7 47 33 FFFF test word ptr [bx+HS_V33], 0FFFFh -273F:8A4A 74 0A jz loc_1711 ; Jump if zero -273F:8A4C FF 77 33 push word ptr [bx+HS_V33] -273F:8A4F C7 47 33 0000 mov word ptr [bx+HS_V33], 0 -273F:8A54 5B pop bx -273F:8A55 C3 retn -273F:8A56 loc_1711: ; xref 273F:8A4A -273F:8A56 8B 0E BA1B mov cx, active_hotspot_id -273F:8A5A úBB 505C mov bx, offset talk_table -273F:8A5D loc_1712: ; xref 273F:8A64 -273F:8A5D ú3B 0F cmp cx, [bx] ; Hotspot entry found? -273F:8A5F 74 05 je loc_1713 ; If yes then jump -273F:8A61 83 C3 04 add bx,4 ; Move to next record -273F:8A64 EB F7 jmp short loc_1712 -273F:8A66 loc_1713: -273F:8A66 8B 5F 02 mov bx, [bx+2] ; Get offset of talk data -273F:8A69 56 push si -273F:8A6A A1 BA1B mov ax, active_hotspot_id -273F:8A6D E8 82B1 call get_room_resource_pointer4 -273F:8A70 8B 44 02 mov ax, [si+HSH_NAME] -273F:8A73 5E pop si -273F:8A74 3D 017A cmp ax, 17Ah ; "Stranger"? -273F:8A77 74 0C je loc_1714 ; If yes then jump - -273F:8A79 A1 BA3B mov ax, talk_record_index ; Get talk index to use -273F:8A7C D1 E0 shl ax, 1 -273F:8A7E 03 D8 add bx, ax -273F:8A80 8B 5F 02 mov bx,[bx+2] ; Return alt offset -273F:8A83 EB 02 jmp short loc_ret_1715 -273F:8A85 loc_1714: -273F:8A85 8B 1F mov bx, [bx] ; Return main offset -273F:8A87 loc_ret_1715: -273F:8A87 C3 retn - talk_get_record endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx = talk record offset - ; Called from: 273F:89BD, 8A1B - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_init2 proc near -273F:8A88 8B 07 mov ax, [bx] -273F:8A8A A3 CF02 mov talk_response_ptr, ax -273F:8A8D 83 C3 02 add bx, 2 -273F:8A90 89 1E CF00 mov talk_data_ptr, bx -273F:8A94 89 1E CF04 mov talk_next_talk_offset, bx -273F:8A98 C6 06 CF08 FF mov talk_state, TALK_START -273F:8A9D C6 06 CF0B 00 mov talk_cf0b, 0 -273F:8AA2 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID] -273F:8AA5 A3 983F mov data_1090, ax -273F:8AA8 A1 BA1B mov ax, active_hotspot_id -273F:8AAB A3 9841 mov data_1091, ax -273F:8AAE C6 06 9849 01 mov pathfind_data, 1 -273F:8AB3 C3 retn - talk_init2 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8AB4 loc_1716: ; xref 273F:8AC9 -273F:8AB4 E9 0281 jmp loc_1753 ; (8D38) -273F:8AB7 loc_1717: ; xref 273F:8AC2 -273F:8AB7 E9 00A8 jmp talk_handle_selection -273F:8ABA loc_1718: ; xref 273F:8AD0 -273F:8ABA E9 0299 jmp loc_1755 ; (8D56) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; bx = eb26h for Skorl - ; talk_data_ptr = e5aa for prisoner - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_tick_proc proc near -273F:8ABD 80 3E CF08 02 cmp talk_state, TALK_SELECT ; Talk selection? -273F:8AC2 74 F3 je loc_1717 ; If yes then jump -273F:8AC4 80 3E CF08 03 cmp talk_state, TALK_UNKNOWN -273F:8AC9 74 E9 je loc_1716 ; Jump if equal -273F:8ACB 80 3E CF08 04 cmp talk_state, 4 -273F:8AD0 74 E8 je loc_1718 ; Jump if equal - -; Handler for showing a list of talking options. This only gets run once before -; the talk state changes to TALK_SELECT - -273F:8AD2 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8AD6 C6 06 CF09 00 mov talk_line_num, 0 -273F:8ADB C6 06 CF0A 00 mov talk_selected_line, 0 -273F:8AE0 C6 06 CF08 02 mov talk_state, TALK_SELECT -273F:8AE5 8B 1E CF00 mov bx, talk_data_ptr -273F:8AE9 BD CF0C mov bp, offset talk_entry_list -273F:8AEC loc_1719: -273F:8AEC F6 47 03 40 test byte ptr [bx+3], 40h -273F:8AF0 74 06 jz loc_1720 -273F:8AF2 F6 47 03 80 test byte ptr [bx+3], 80h -273F:8AF6 75 2E jnz loc_1723 -273F:8AF8 loc_1720: -273F:8AF8 8B 07 mov ax, [bx] ; Get sequence offset -273F:8AFA 25 3FFF and ax, 3FFFh -273F:8AFD 74 05 jz loc_1721 ; Jump if zero -273F:8AFF E8 B332 call sequence_execute -273F:8B02 74 1C jz loc_1722 ; If zero, skip line -273F:8B04 loc_1721: -273F:8B04 87 DD xchg bx, bp -273F:8B06 89 2F mov [bx], bp ; Add to lookup list -273F:8B08 83 C3 02 add bx,2 ; Move to next entry -273F:8B0B 87 DD xchg bx, bp -273F:8B0D 8B 47 02 mov ax, [bx+TALK_DESC_ID] -273F:8B10 80 E4 3F and ah, 3Fh -273F:8B13 80 06 CF09 01 add talk_line_num, 1 -273F:8B18 3D 0424 cmp ax, TALK_MAGIC_ID ; Magic skip number -273F:8B1B 74 03 je loc_1722 ; Jump if equal -273F:8B1D E8 02C3 call talk_handle_line -273F:8B20 loc_1722: ; xref 273F:8B02, 8B1B -273F:8B20 F6 47 01 80 test byte ptr [bx+1],80h -273F:8B24 75 08 jnz loc_1724 ; Jump if not zero -273F:8B26 loc_1723: ; xref 273F:8AF6 -273F:8B26 83 C3 06 add bx, 6 -273F:8B29 83 3F FF cmp word ptr [bx], 0FFFFh -273F:8B2C 75 BE jne loc_1719 - -273F:8B2E loc_1724: ; xref 273F:8B24 -273F:8B2E 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8B32 C7 47 42 0000 mov word ptr [bx+HS_DELAY_CTR], 0 -273F:8B37 80 3E CF09 01 cmp talk_line_num, 1 ; Only one option? -273F:8B3C 75 05 jne loc_1725 ; If not, then jump - -273F:8B3E B9 0081 mov cx,81h -273F:8B41 EB 03 jmp short loc_1726 ; (8B46) -273F:8B43 loc_1725: ; xref 273F:8B3C -273F:8B43 B9 0001 mov cx,1 -273F:8B46 loc_1726: ; xref 273F:8B41 -273F:8B46 B8 0000 mov ax,0 -273F:8B49 BB 0000 mov bx,0 -273F:8B4C BD 0026 mov bp,26h -273F:8B4F BA 0002 mov dx,2 -273F:8B52 E8 802E call sub_21 ; Mark rects needing display - -273F:8B55 F6 06 11DA FF test mouse_buttons2, 0FFh -273F:8B5A 74 05 jz loc_ret_1727 ; Jump if zero -273F:8B5C C6 06 11DA 00 mov mouse_buttons2, 0 - -273F:8B61 loc_ret_1727: ; xref 273F:8B5A -273F:8B61 C3 retn - talk_tick_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_handle_selection: -273F:8B62 80 3E CF09 01 cmp talk_line_num, 1 ; Were any lines present -273F:8B67 75 1B jne loc_1731 ; If yes then jump - -; This code fragment is only reached if talking to someone who only has a canned response. -; ie. no options need be presented. Such as the prisoner saying "I want water" - -273F:8B69 F6 06 11DA FF test mouse_buttons2, 0FFh -273F:8B6E 74 05 jz loc_1729 ; Jump if zero -273F:8B70 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:8B75 loc_1729: ; xref 273F:8B6E -273F:8B75 F7 06 9838 FFFF test data_431,0FFFFh ; (273F:9838=5C8Bh) -273F:8B7B 74 01 jz loc_1730 ; Jump if zero -273F:8B7D C3 retn -273F:8B7E loc_1730: -273F:8B7E BB 0001 mov bx, 1 ; Response #1 -273F:8B81 E9 0092 jmp loc_1741 - -; This code is reached both for the handling of highlighting the list of possible talk -; selections, as well as for handling the response when one of those lines is selected - -273F:8B84 loc_1731: ; xref 273F:8B67 -273F:8B84 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8B88 A1 11D8 mov ax, mouse_y2 -273F:8B8B D1 E8 shr ax,1 ; Shift w/zeros fill -273F:8B8D D1 E8 shr ax,1 ; Shift w/zeros fill -273F:8B8F D1 E8 shr ax,1 ; Shift w/zeros fill -273F:8B91 74 08 jz loc_1732 ; Jump if zero -273F:8B93 38 06 CF09 cmp talk_line_num, al -273F:8B97 73 02 jae loc_1732 -273F:8B99 33 C0 xor ax,ax ; No line selected -273F:8B9B loc_1732: -273F:8B9B 3A 06 CF0A cmp al, talk_selected_line ; Still on same line? -273F:8B9F 74 5C je loc_1737 ; If yse then jump -273F:8BA1 86 06 CF0A xchg talk_selected_line, al -273F:8BA5 0A C0 or al, al ; Any current selection? -273F:8BA7 74 08 jz loc_1733 ; If not then skip -273F:8BA9 80 0E 11D0 02 or menubar_state, 2 -273F:8BAE E8 0281 call talk_toggle_line_highlight ; Deselect old line -273F:8BB1 loc_1733: -273F:8BB1 A0 CF0A mov al, talk_selected_line -273F:8BB4 0A C0 or al,al ; Any new selected line? -273F:8BB6 74 08 jz loc_1734 ; If not then jump -273F:8BB8 80 0E 11D0 02 or menubar_state, 2 -273F:8BBD E8 0272 call talk_toggle_line_highlight ; Highlight new line -273F:8BC0 loc_1734: -273F:8BC0 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:8BC5 74 06 je loc_1735 ; Jump if equal -273F:8BC7 C7 06 11EC 0000 mov data_640, 0 -273F:8BCD loc_1735: ; xref 273F:8BC5 -273F:8BCD FF 16 075E call [show_cursor_proc] -273F:8BD1 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:8BD6 75 12 jne loc_1736 ; Jump if not equal -273F:8BD8 33 C0 xor ax,ax ; Zero register -273F:8BDA 33 DB xor bx,bx ; Zero register -273F:8BDC BD 0140 mov bp,140h -273F:8BDF BA 001F mov dx,1Fh -273F:8BE2 B9 0001 mov cx,1 -273F:8BE5 E8 7FA7 call sub_22 ; (0B8F) -273F:8BE8 EB 13 jmp short loc_1737 ; (8BFD) -273F:8BEA loc_1736: ; xref 273F:8BD6 -273F:8BEA A1 11D6 mov ax, mouse_x2 -273F:8BED 8B 1E 11D8 mov bx, mouse_y2 -273F:8BF1 BD 0010 mov bp,10h -273F:8BF4 BA 0010 mov dx,10h -273F:8BF7 B9 0001 mov cx,1 -273F:8BFA E8 7F92 call sub_22 ; (0B8F) -273F:8BFD loc_1737: ; xref 273F:8B9F, 8BE8 -273F:8BFD 32 C0 xor al,al ; Zero register -273F:8BFF 86 06 11DA xchg mouse_buttons2, al -273F:8C03 A8 07 test al,7 ; Any buttons pressed? -273F:8C05 74 07 jz loc_ret_1738 ; Skip if not - -; At this point a talk line has been selected - -273F:8C07 A8 03 test al,3 -273F:8C09 75 05 jnz loc_1740 -273F:8C0B E9 00F8 jmp loc_1751 ; Handle selection -273F:8C0E loc_ret_1738: ; xref 273F:8C05 -273F:8C0E C3 retn - -273F:8C0F loc_ret_1739: ; xref 273F:8C19 -273F:8C0F C3 retn -273F:8C10 loc_1740: ; xref 273F:8C09 -273F:8C10 8A 1E CF0A mov bl, talk_selected_line -273F:8C14 32 FF xor bh,bh ; Zero register - -; This code point is reached both for automatic responses from a character, -; or when a talk item has been selected and needs to be "spoken" - -273F:8C16 loc_1741: -273F:8C16 80 EB 01 sub bl, 1 -273F:8C19 72 F4 jc loc_ret_1739 ; If bl had been 0, invalid exit -273F:8C1B 80 06 CF0B 01 add talk_cf0b, 1 -273F:8C20 D1 E3 shl bx,1 -273F:8C22 8B 9F CF0C mov bx, talk_entry_list[bx] ; Get selected talk entry -273F:8C26 8B 57 02 mov dx, [bx+TALK_DESC_ID] -273F:8C29 80 E6 3F and dh,3Fh ; '?' -273F:8C2C 80 4F 03 40 or byte ptr [bx+TALK_DESC_ID+1], 40h ; Flag desc -273F:8C30 81 FA 0424 cmp dx, TALK_MAGIC_ID -273F:8C34 74 11 je loc_1742 ; Jump if equal -273F:8C36 53 push bx -273F:8C37 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8C3B 8B 5F 0B mov bx, [bx+HS_ANIM_OFFSET] -273F:8C3E 8B 4F 1B mov cx, [bx+ANIM_HOTSPOT_ID] -273F:8C41 B0 01 mov al, 1 -273F:8C43 E8 D4E9 call talk_setup_3 ; (612F) -273F:8C46 5B pop bx -273F:8C47 loc_1742: ; xref 273F:8C34 -273F:8C47 8B 47 04 mov ax, [bx+TALK_POST_SEQUENCE] -273F:8C4A F6 C4 80 test ah, 80h -273F:8C4D 74 06 jz loc_1743 ; Jump if zero -273F:8C4F 80 E4 7F and ah, 7Fh -273F:8C52 E8 B1DF call sequence_execute -273F:8C55 loc_1743: -273F:8C55 8B 1E CF02 mov bx, talk_response_ptr -273F:8C59 D1 E0 shl ax, 1 -273F:8C5B 03 D8 add bx, ax -273F:8C5D D1 E0 shl ax, 1 -273F:8C5F 03 D8 add bx, ax - -273F:8C61 8B 07 mov ax, [bx] ; Get sequence to run -273F:8C63 0B C0 or ax, ax -273F:8C65 74 08 jz loc_1744 ; Jump if zero -273F:8C67 E8 B1CA call sequence_execute -273F:8C6A 3D 1092 cmp ax, 1092h -273F:8C6D 75 E6 jne loc_1743 ; Jump if not equal -273F:8C6F loc_1744: ; xref 273F:8C65 -273F:8C6F 8B 47 02 mov ax, [bx+2] -273F:8C72 F6 C4 80 test ah, 80h -273F:8C75 74 06 jz loc_1745 ; Jump if zero -273F:8C77 80 E4 7F and ah, 7Fh -273F:8C7A E8 B1B7 call sequence_execute -273F:8C7D loc_1745: ; xref 273F:8C75 -273F:8C7D 3D 0424 cmp ax, 424h -273F:8C80 74 12 je loc_1746 ; Jump if equal -273F:8C82 53 push bx -273F:8C83 8B D0 mov dx,ax -273F:8C85 B9 03E8 mov cx, PLAYER_HOTSPOT_ID -273F:8C88 56 push si -273F:8C89 8B 36 CF06 mov si, talk_to_hotspot_ptr -273F:8C8D B0 01 mov al,1 -273F:8C8F E8 D49D call talk_setup_3 ; (612F) -273F:8C92 5E pop si -273F:8C93 5B pop bx -273F:8C94 loc_1746: ; xref 273F:8C80 -273F:8C94 8B 47 04 mov ax, [bx+4] -273F:8C97 3D FFFF cmp ax, 0FFFFh -273F:8C9A 74 28 je loc_1748 ; Jump if equal -273F:8C9C F6 C4 80 test ah, 80h -273F:8C9F 74 0B jz loc_1747 ; Jump if zero -273F:8CA1 80 E4 7F and ah, 7Fh -273F:8CA4 E8 B18D call sequence_execute -273F:8CA7 3D FFFF cmp ax, 0FFFFh -273F:8CAA 74 18 je loc_1748 ; Jump if equal -273F:8CAC loc_1747: ; xref 273F:8C9F -273F:8CAC D1 E0 shl ax, 1 -273F:8CAE 8B D8 mov bx, ax -273F:8CB0 D1 E0 shl ax, 1 -273F:8CB2 03 C3 add ax, bx -273F:8CB4 03 06 CF04 add ax, talk_next_talk_offset ; Next sequence start offset -273F:8CB8 A3 CF00 mov talk_data_ptr, ax -273F:8CBB C6 06 CF08 03 mov talk_state, 3 -273F:8CC0 EB 07 jmp short loc_1749 ; (8CC9) - -273F:8CC2 5B pop bx -273F:8CC3 C3 ret -273F:8CC4 loc_1748: -273F:8CC4 C6 06 CF08 04 mov talk_state, 4 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8D06 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8CC9 sub_221 proc near -273F:8CC9 loc_1749: ; xref 273F:8CC0, 8D04 -273F:8CC9 úB8 0001 mov ax,1 -273F:8CCC BB 0001 mov bx,1 -273F:8CCF BD 0026 mov bp,26h -273F:8CD2 BA 0001 mov dx,1 -273F:8CD5 B9 0081 mov cx,81h -273F:8CD8 E9 7EA8 jmp loc_92 ; (0B83) - sub_221 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8CDB loc_1750: ; xref 273F:8D24, 8D36, 8D6E -273F:8CDB úC6 06 9849 00 mov pathfind_data, 0 -273F:8CE0 C7 06 B15F 5E44 mov word ptr ds:data_450e, offset player_tick_proc -273F:8CE6 C6 06 6D33 00 mov [player_hotspot_rec+HS_CHAR_MODE], CHARMODE_NONE -273F:8CEB C7 06 6D31 0000 mov [player_hotspot_rec+HS_DELAY_CTR], 0 -273F:8CF1 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8CF5 C7 47 2F 0000 mov word ptr [bx+HS_USE_HOTSPOT_ID], 0 -273F:8CFA C7 47 42 0018 mov word ptr [bx+HS_DELAY_CTR], 18h -273F:8CFF C6 06 9834 00 mov cursor_state, CURSORSTATE_NONE -273F:8D04 EB C3 jmp short loc_1749 ; (8CC9) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; This point is reached if the third button is pressed. It causes the - ; talk to abort, and the talked to character to show the question mark briefly - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8D06 loc_1751: ; xref 273F:8C0B -273F:8D06 E8 FFC0 call sub_221 ; (8CC9) -273F:8D09 F6 06 CF0B FF test talk_cf0b, 0FFh -273F:8D0E 75 16 jnz loc_1752 ; Jump if not zero -273F:8D10 56 push si -273F:8D11 8B 36 CF06 mov si, talk_to_hotspot_ptr -273F:8D15 8B 5C 0B mov bx, [si+HS_ANIM_OFFSET] -273F:8D18 8B 4F 1B mov cx, [bx+1Bh] -273F:8D1B BB 002B mov bx,2Bh -273F:8D1E 33 D2 xor dx,dx ; Zero register -273F:8D20 E8 D698 call display_message_dialog_4 -273F:8D23 5E pop si -273F:8D24 EB B5 jmp short loc_1750 ; (8CDB) -273F:8D26 loc_1752: ; xref 273F:8D0E -273F:8D26 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8D2A 8B 5F 0B mov bx,[bx+HS_ANIM_OFFSET] -273F:8D2D 8B 4F 1B mov cx,[bx+ANIM_HOTSPOT_ID] -273F:8D30 BA 088D mov dx, 88Dh -273F:8D33 E8 D3F9 call talk_setup_3 -273F:8D36 EB A3 jmp short loc_1750 ; (8CDB) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8D38 loc_1753: ; xref 273F:8AB4 -273F:8D38 E8 0036 call sub_222 ; (8D71) -273F:8D3B E8 D43A call talk_countdown_handler -273F:8D3E 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8D42 83 7F 37 06 cmp word ptr [bx+HS_TALK_COUNTDOWN],6 -273F:8D46 73 0D jae loc_ret_1754 ; Jump if above or = -273F:8D48 F7 06 9838 FFFF test data_431,0FFFFh ; (273F:9838=5C8Bh) -273F:8D4E 75 05 jnz loc_ret_1754 ; Jump if not zero -273F:8D50 C6 06 CF08 01 mov talk_state, 1 - -273F:8D55 loc_ret_1754: ; xref 273F:8D46, 8D4E, 8D64, 8D6C -273F:8D55 C3 retn -273F:8D56 loc_1755: ; xref 273F:8ABA -273F:8D56 E8 0018 call sub_222 ; (8D71) -273F:8D59 E8 D41C call talk_countdown_handler -273F:8D5C 8B 1E CF06 mov bx, talk_to_hotspot_ptr -273F:8D60 83 7F 37 06 cmp word ptr [bx+HS_TALK_COUNTDOWN],6 -273F:8D64 73 EF jae loc_ret_1754 ; Jump if above or = -273F:8D66 F7 06 9838 FFFF test data_431,0FFFFh ; (273F:9838=5C8Bh) -273F:8D6C 75 E7 jnz loc_ret_1754 ; Jump if not zero -273F:8D6E E9 FF6A jmp loc_1750 ; (8CDB) - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8D38, 8D56 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8D71 sub_222 proc near -273F:8D71 F6 06 11DA 07 test mouse_buttons2, 7 -273F:8D76 74 6A jz loc_ret_1758 ; Jump if zero -273F:8D78 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:8D7D C3 retn - ;* No entry point to code -273F:8D7E F6 06 9837 FF test talk_dialog_active, 0FFh -273F:8D83 74 5D jz loc_ret_1758 ; Jump if zero -273F:8D85 A1 11D6 mov ax, mouse_x2 -273F:8D88 3B 06 11C2 cmp ax, talk_dialog_left -273F:8D8C 72 54 jb loc_ret_1758 ; Jump if below -273F:8D8E 2B 06 11C2 sub ax, talk_dialog_left -273F:8D92 3B 06 11C4 cmp ax, talk_dialog_width -273F:8D96 73 4A jae loc_ret_1758 ; Jump if above or = -273F:8D98 A1 11D8 mov ax, mouse_y2 -273F:8D9B 3B 06 11C0 cmp ax, talk_dialog_top -273F:8D9F 72 41 jb loc_ret_1758 ; Jump if below -273F:8DA1 2B 06 11C0 sub ax, talk_dialog_top -273F:8DA5 3B 06 11C6 cmp ax, talk_dialog_height -273F:8DA9 73 37 jae loc_ret_1758 ; Jump if above or = -273F:8DAB A1 983B mov ax, talk_character_id -273F:8DAE 56 push si -273F:8DAF E8 7F38 call get_room_resource_pointer2 -273F:8DB2 C7 44 37 0000 mov word ptr [si+HS_TALK_COUNTDOWN],0 -273F:8DB7 5E pop si -273F:8DB8 81 3E 983B 03E8 cmp talk_character_id, PLAYER_HOTSPOT_ID -273F:8DBE 75 14 jne loc_1757 ; Jump if not equal -273F:8DC0 A1 9841 mov ax, data_1091 -273F:8DC3 56 push si -273F:8DC4 E8 7F23 call get_room_resource_pointer2 -273F:8DC7 F7 44 37 FFFF test word ptr [si+HS_TALK_COUNTDOWN],0FFFFh -273F:8DCC 74 05 jz loc_1756 ; Jump if zero -273F:8DCE C7 44 37 0028 mov word ptr [si+HS_TALK_COUNTDOWN], 28h -273F:8DD3 loc_1756: ; xref 273F:8DCC -273F:8DD3 5E pop si -273F:8DD4 loc_1757: ; xref 273F:8DBE -273F:8DD4 C6 06 9837 00 mov talk_dialog_active, 0 -273F:8DD9 C7 06 9838 0000 mov data_431,0 ; (273F:9838=5C8Bh) -273F:8DDF E8 D4E3 call sub_147 ; (62C5) - -273F:8DE2 loc_ret_1758: ; xref 273F:8D76, 8D83, 8D8C, 8D96 - ; 8D9F, 8DA9 -273F:8DE2 C3 retn - sub_222 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8B1D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_handle_line proc near -273F:8DE3 56 push si -273F:8DE4 57 push di -273F:8DE5 55 push bp -273F:8DE6 53 push bx -273F:8DE7 50 push ax -273F:8DE8 A0 CF09 mov al, talk_line_num -273F:8DEB 32 E4 xor ah, ah ; Zero register -273F:8DED E8 E22C call talk_clear_line -273F:8DF0 58 pop ax -273F:8DF1 BF AF42 mov di, offset talk_string_buffer -273F:8DF4 89 3E BA07 mov talk_string_offset, di -273F:8DF8 E8 EF3F call decode_string -273F:8DFB A0 CF09 mov al, talk_line_num -273F:8DFE 32 E4 xor ah, ah -273F:8E00 F7 26 074C mul menubar_block_size ; Calculate display offset -273F:8E04 A3 BA0F mov ds:data_470e, ax -273F:8E07 A3 BA11 mov ds:data_471e, ax -273F:8E0A C6 06 BA13 00 mov byte ptr ds:data_472e, 0 -273F:8E0F A1 0748 mov ax, screen_width -273F:8E12 A3 BA09 mov ds:data_468e,ax -273F:8E15 A1 4CE4 mov ax, data_segment2 -273F:8E18 A3 BA0D mov ds:data_469e, ax -273F:8E1B 8B 36 076E mov si, data_571 -273F:8E1F 8A 44 05 mov al, [si+5] -273F:8E22 A2 BA14 mov ds:data_473e, al -273F:8E25 úBB BA07 mov bx, offset talk_string_offset -273F:8E28 loc_1759: -273F:8E28 E8 8D6D call sub_51 ; (1B98) -273F:8E2B 74 FB jz loc_1759 ; Jump if zero -273F:8E2D 5B pop bx -273F:8E2E 5D pop bp -273F:8E2F 5F pop di -273F:8E30 5E pop si -273F:8E31 C3 retn - talk_handle_line endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8BAE, 8BBD - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - talk_toggle_line_highlight proc near -273F:8E32 32 E4 xor ah,ah ; Zero register -273F:8E34 BB 0A00 mov bx, MENUBAR_BLOCK_SIZE -273F:8E37 F7 E3 mul bx ; dx:ax = reg * ax -273F:8E39 8B F8 mov di,ax -273F:8E3B 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:8E40 75 06 jne loc_1760 ; Jump if not equal -273F:8E42 BB 0140 mov bx,140h -273F:8E45 E9 A154 jmp loc_637 ; (2F9C) -273F:8E48 loc_1760: ; xref 273F:8E40 -273F:8E48 1E push ds -273F:8E49 B8 A000 mov ax, VGA_SEGMENT -273F:8E4C 8E C0 mov es,ax -273F:8E4E A1 4CE4 mov ax, data_segment2 -273F:8E51 8E D8 mov ds,ax -273F:8E53 B9 0A00 mov cx, MENUBAR_BLOCK_SIZE - -273F:8E56 locloop_1761: ; xref 273F:8E68 -273F:8E56 80 3D E2 cmp byte ptr [di],0E2h -273F:8E59 74 05 je loc_1762 ; Jump if equal -273F:8E5B 80 3D FF cmp byte ptr [di],0FFh -273F:8E5E 75 07 jne loc_1763 ; Jump if not equal -273F:8E60 loc_1762: ; xref 273F:8E59 -273F:8E60 80 35 1D xor byte ptr [di],1Dh -273F:8E63 26: 80 35 1D xor byte ptr es:[di],1Dh -273F:8E67 loc_1763: ; xref 273F:8E5E -273F:8E67 47 inc di -273F:8E68 E2 EC loop locloop_1761 ; Loop if cx > 0 - -273F:8E6A 1F pop ds -273F:8E6B C3 retn - talk_toggle_line_highlight endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ;* No entry point to code -273F:8E6C E8 7E79 call get_room_resource_pointer -273F:8E6F F7 44 33 FFFF test word ptr [si+33h],0FFFFh -273F:8E74 74 05 jz loc_1764 ; Jump if zero -273F:8E76 8B 74 33 mov si,[si+33h] -273F:8E79 EB 26 jmp short loc_1768 ; (8EA1) -273F:8E7B loc_1764: ; xref 273F:8E74 -273F:8E7B úBE 505C mov si, offset talk_table -273F:8E7E loc_1765: ; xref 273F:8E85 -273F:8E7E ú3B 1C cmp bx,[si] -273F:8E80 74 05 je loc_1766 ; Jump if equal -273F:8E82 83 C6 04 add si,4 -273F:8E85 EB F7 jmp short loc_1765 ; (8E7E) -273F:8E87 loc_1766: ; xref 273F:8E80 -273F:8E87 8B 7C 02 mov di,[si+2] -273F:8E8A E8 7E92 call get_room_resource_pointer3 -273F:8E8D 81 7C 02 017A cmp word ptr [si+2],17Ah -273F:8E92 74 0B je loc_1767 ; Jump if equal -273F:8E94 8B 1E BA3B mov bx, talk_record_index -273F:8E98 D1 E3 shl bx,1 ; Shift w/zeros fill -273F:8E9A 8B 71 02 mov si,[bx+di+2] -273F:8E9D EB 02 jmp short loc_1768 ; (8EA1) -273F:8E9F loc_1767: ; xref 273F:8E92 -273F:8E9F 8B 35 mov si,[di] -273F:8EA1 loc_1768: ; xref 273F:8E79, 8E9D -273F:8EA1 83 C6 02 add si,2 -273F:8EA4 B8 0008 mov ax,8 -273F:8EA7 F7 E1 mul cx ; dx:ax = reg * ax -273F:8EA9 03 F0 add si,ax -273F:8EAB 81 4C 02 C000 or word ptr [si+2],0C000h -273F:8EB0 C3 retn - -273F:8EB1 00 db 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - menuitem_save proc near - -273F:8EB2 B0 56 mov al, 56h -273F:8EB4 E8 52 01 call saverestore_proc -273F:8EB7 2D 00001 sub ax, 1 -273F:8EBA 73 03 jnb mi_save_1 -273F:8EBC E9 80 00 jmp loc_1774 - -273F:8EBF 50 mi_save_1 push ax -273F:8EC0 E8 9C 90 call show_disk_cursor -273F:8EC3 58 pop ax -273F:8EC4 3B 06 08 03 cmp ax, data_540 -273F:8EC8 72 0C jb mi_save_2 -273F:8ECA 83 3E 0308 0F cmp data_540, 0Fh -273F:8ECF 73 05 jnb mi_save_2 -273F:8ED1 83 06 0308 01 add data_540, 1 - -273F:8ED6 loc_1769: -273F:8ED6 BB F010 mov bx, WRITE_BUFFER_SIZE -273F:8ED9 81 EB 5D90 sub bx, offset write_buffer -273F:8EDD F7 E3 mul bx ; dx:ax = reg * ax -273F:8EDF 05 0200 add ax,200h -273F:8EE2 83 D2 00 adc dx,0 -273F:8EE5 50 push ax -273F:8EE6 52 push dx -273F:8EE7 8B CA mov cx,dx -273F:8EE9 8B D0 mov dx,ax -273F:8EEB B8 4200 mov ax,4200h -273F:8EEE 8B 1E 554D mov bx, data_832 -273F:8EF2 CD 21 int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset -273F:8EF4 59 pop cx -273F:8EF5 5B pop bx -273F:8EF6 73 09 jnc loc_1771 ; Jump if carry=0 -273F:8EF8 loc_1770: ; xref 273F:8F03, 8F07, 8F31, 8F3D -273F:8EF8 BB 00A2 mov bx,0A2h -273F:8EFB E8 F9BE call display_dialog -273F:8EFE 33 C0 xor ax,ax ; Zero register -273F:8F00 C3 retn -273F:8F01 loc_1771: ; xref 273F:8EF6 -273F:8F01 3B D1 cmp dx,cx -273F:8F03 75 F3 jne loc_1770 ; Jump if not equal -273F:8F05 3B C3 cmp ax,bx -273F:8F07 75 EF jne loc_1770 ; Jump if not equal -273F:8F09 B4 40 mov ah,40h ; '@' -273F:8F0B 8B 1E 554D mov bx, data_832 -273F:8F0F B9 F010 mov cx, WRITE_BUFFER_SIZE -273F:8F12 úBA 5D90 mov dx, offset write_buffer ; (273F:5D90=47h) -273F:8F15 2B CA sub cx,dx -273F:8F17 CD 21 int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer -273F:8F19 73 09 jnc loc_1773 ; Jump if carry=0 -273F:8F1B loc_1772: ; xref 273F:8F26 -273F:8F1B BB 00A2 mov bx,0A2h -273F:8F1E E8 F99B call display_dialog -273F:8F21 33 C0 xor ax,ax ; Zero register -273F:8F23 C3 retn -273F:8F24 loc_1773: ; xref 273F:8F19 -273F:8F24 3B C1 cmp ax,cx -273F:8F26 75 F3 jne loc_1772 ; Jump if not equal -273F:8F28 B8 4200 mov ax,4200h -273F:8F2B 33 C9 xor cx,cx ; Zero register -273F:8F2D 33 D2 xor dx,dx ; Zero register -273F:8F2F CD 21 int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset -273F:8F31 72 C5 jc loc_1770 ; Jump if carry Set -273F:8F33 B4 40 mov ah,40h -273F:8F35 B9 0200 mov cx,200h -273F:8F38 úBA 0119 mov dx, offset file_buffer ; (273F:0119=0FFh) -273F:8F3B CD 21 int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer -273F:8F3D 72 B9 jc loc_1770 ; Jump if carry Set -273F:8F3F loc_1774: ; xref 273F:8F57 -273F:8F3F 8B 1E 554D mov bx, data_832 -273F:8F43 B4 3E mov ah,3Eh -273F:8F45 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:8F47 0C 01 or al,1 -273F:8F49 C3 retn - - menuitem_save endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:9381 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:8F4A menuitem_restore proc near -273F:8F4A B0 AC mov al,0ACh -273F:8F4C E8 00BA call saverestore_proc - assume ds:data_seg -273F:8F4F 83 06 0308 01 add data_540,1 ; (31E4:0308=0) -273F:8F54 2D 0001 sub ax,1 -273F:8F57 72 E6 jc loc_1774 ; Jump if carry Set -273F:8F59 50 push ax -273F:8F5A E8 9002 call show_disk_cursor -273F:8F5D E8 0458 call sub_230 ; (93B8) -273F:8F60 E8 1290 call sub_257 ; (A1F3) -273F:8F63 58 pop ax -273F:8F64 BB F010 mov bx, WRITE_BUFFER_SIZE -273F:8F67 81 EB 5D90 sub bx, offset write_buffer -273F:8F6B F7 E3 mul bx ; dx:ax = reg * ax -273F:8F6D 05 0200 add ax,200h -273F:8F70 83 D2 00 adc dx,0 -273F:8F73 50 push ax -273F:8F74 52 push dx -273F:8F75 8B CA mov cx,dx -273F:8F77 8B D0 mov dx,ax -273F:8F79 B8 4200 mov ax,4200h -273F:8F7C 8B 1E 554D mov bx, data_832 -273F:8F80 CD 21 int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset -273F:8F82 59 pop cx -273F:8F83 5B pop bx -273F:8F84 B4 3F mov ah,3Fh ; '?' -273F:8F86 8B 1E 554D mov bx, data_832 -273F:8F8A B9 F010 mov cx, WRITE_BUFFER_SIZE -273F:8F8D úBA 5D90 mov dx, offset write_buffer ; (31E4:5D90=0) -273F:8F90 2B CA sub cx,dx -273F:8F92 CD 21 int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer -273F:8F94 B8 4200 mov ax,4200h -273F:8F97 33 C9 xor cx,cx ; Zero register -273F:8F99 33 D2 xor dx,dx ; Zero register -273F:8F9B CD 21 int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset -273F:8F9D B4 40 mov ah,40h ; '@' -273F:8F9F B9 0200 mov cx,200h -273F:8FA2 úBA 0119 mov dx,offset file_buffer ; (31E4:0119=0) -273F:8FA5 CD 21 int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer -273F:8FA7 B4 3E mov ah,3Eh -273F:8FA9 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:8FAB FF 16 0766 call word ptr [fade_out_proc] -273F:8FAF E8 EC0F call load_string_resources -273F:8FB2 E8 E050 call menubar_clear_image -273F:8FB5 E8 7996 call clear_layer_rects -273F:8FB8 E8 79B4 call room_load_layers -273F:8FBB FF 16 074E call word ptr ds:[74Eh] ; (273F:074E=8010h) -273F:8FBF E8 7A25 call sub_16 ; (09E7) -273F:8FC2 E8 7B39 call sub_19 ; (0AFE) -273F:8FC5 E8 7999 call clear_hotspot_rects -273F:8FC8 E8 84D7 call sub_45 ; (14A2) -273F:8FCB úBE B883 mov si, offset animation_block_list -273F:8FCE 8B FE mov di,si -273F:8FD0 E8 E6FB call animations_preload_2 -273F:8FD3 E8 EA89 call sub_195 ; (7A5F) - assume ds:seg_code -273F:8FD6 C6 06 9837 00 mov talk_dialog_active, 0 -273F:8FDB C7 06 9838 0000 mov data_431,0 ; (273F:9838=5C8Bh) -273F:8FE1 E8 123D call sub_259 ; (A221) -273F:8FE4 E8 BF8D call seq_pathfind_reset -273F:8FE7 80 36 CE20 80 xor game_flags, 80h -273F:8FEC E8 E106 call sub_177 ; (70F5) -273F:8FEF FF 16 0752 call [show_compressed_screen_proc] -273F:8FF3 E8 8518 call room_add_animations -273F:8FF6 FF 16 0744 call word ptr [show_screen_proc] -273F:8FFA E8 AAB1 call replace_vga_palette ; (3AAE) -273F:8FFD FF 16 0760 call word ptr ds:[760h] ; (273F:0760=0C76Eh) -273F:9001 C6 06 1456 FF mov data_213,0FFh ; (273F:1456=42h) -273F:9006 33 C0 xor ax,ax ; Zero register -273F:9008 C3 retn - menuitem_restore endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8F4C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:9009 saverestore_proc proc near -273F:9009 A2 5553 mov data_344,al ; (273F:5553=0DFh) -273F:900C 80 3E 0786 02 cmp drive_number, 2 ; Running on hard drive? -273F:9011 73 1C jae loc_1776 ; If yes, skip prompt msg -273F:9013 F6 06 00B5 80 test byte ptr ds:[0B5h],80h -273F:9018 75 0D jnz loc_1775 -273F:901A 8B 1E 00B4 mov bx,word ptr ds:[file_handle] -273F:901E B4 3E mov ah,3Eh -273F:9020 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:9022 C6 06 00B5 80 mov byte ptr ds:[0B5h],80h -273F:9027 loc_1775: -273F:9027 B8 000B mov ax,0Bh ; Prompt to insert data disk -273F:902A B6 00 mov dh,0 -273F:902C E8 AF75 call display_message -273F:902F loc_1776: -273F:902F B8 3D02 mov ax,3D02h -273F:9032 BA 5540 mov dx, offset savegame_filename -273F:9035 CD 21 int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx -273F:9037 72 18 jc loc_1777 ; Jump if error occurred - -273F:9039 A3 554D mov data_832, ax -273F:903C 8B D8 mov bx,ax -273F:903E B4 3F mov ah,3Fh -273F:9040 B9 0200 mov cx,200h -273F:9043 úBA 0119 mov dx, offset file_buffer ; (273F:0119=0FFh) -273F:9046 CD 21 int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer -273F:9048 3D 0200 cmp ax,200h ; Read 512 bytes? -273F:904B 74 27 je loc_1779 ; Jump if equal -273F:904D B4 3E mov ah,3Eh -273F:904F CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle - - 273F:9051 loc_1777: ; xref 273F:9037 -273F:9051 B4 3C mov ah,3Ch ; '<' -273F:9053 33 C9 xor cx,cx ; Zero register -273F:9055 BA 5540 mov dx, offset savegame_filename -273F:9058 CD 21 int 21h ; DOS Services ah=function 3Ch - ; create/truncate file @ ds:dx -273F:905A 73 09 jnc loc_1778 ; Jump if carry=0 -273F:905C BB 00A2 mov bx,0A2h -273F:905F E8 F85A call display_dialog -273F:9062 33 C0 xor ax,ax ; Zero register -273F:9064 C3 retn -273F:9065 loc_1778: ; xref 273F:905A -273F:9065 A3 554D mov data_832, ax -273F:9068 1E push ds -273F:9069 07 pop es -273F:906A úBF 0119 mov di, offset file_buffer ; (273F:0119=0FFh) -273F:906D B9 0100 mov cx,100h -273F:9070 33 C0 xor ax,ax ; Zero register -273F:9072 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:9074 loc_1779: ; xref 273F:904B -273F:9074 80 3E 5553 AC cmp data_344,0ACh ; (273F:5553=0DFh) -273F:9079 75 0A jne loc_1780 ; Jump if not equal -273F:907B 83 2E 0308 01 sub word ptr ds:[308h],1 ; (273F:0308=21CDh) -273F:9080 73 03 jnc loc_1780 ; Jump if carry=0 -273F:9082 33 C0 xor ax,ax ; Zero register - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 344 - -273F:9084 C3 retn -273F:9085 loc_1780: ; xref 273F:9079, 9080 -273F:9085 B0 02 mov al,2 -273F:9087 B3 04 mov bl,4 -273F:9089 B1 20 mov cl,20h ; ' ' -273F:908B 8B 16 0308 mov dx,word ptr ds:[308h] ; (273F:0308=21CDh) -273F:908F 83 C2 02 add dx,2 -273F:9092 83 FA 11 cmp dx,11h -273F:9095 73 03 jae loc_1781 ; Jump if above or = -273F:9097 80 C2 01 add dl,1 -273F:909A loc_1781: ; xref 273F:9095 -273F:909A BD 0001 mov bp,1 -273F:909D FF 16 077A call [draw_dialog_proc] -273F:90A1 A1 4CE4 mov ax, data_segment2 -273F:90A4 8E C0 mov es,ax -273F:90A6 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:90AB 74 1E je loc_1783 ; Jump if equal -273F:90AD úBF 3E92 mov di,data_1466e ; (FF12:3E92=80h) -273F:90B0 úBE 558D mov si,558Dh ; (273F:558D=33h) -273F:90B3 BA 0005 mov dx,5 -273F:90B6 loc_1782: ; xref 273F:90C7 -273F:90B6 57 push di -273F:90B7 AC lodsb ; String [si] to al -273F:90B8 8A E0 mov ah,al -273F:90BA B9 0085 mov cx,85h -273F:90BD F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:90BF 5F pop di -273F:90C0 81 C7 0140 add di,140h -273F:90C4 83 EA 01 sub dx,1 -273F:90C7 75 ED jnz loc_1782 ; Jump if not zero -273F:90C9 EB 03 jmp short loc_1784 ; (90CE) -273F:90CB loc_1783: ; xref 273F:90AB -273F:90CB E8 9F57 call sub_69 ; (3025) -273F:90CE loc_1784: ; xref 273F:90C9 -273F:90CE BE 5576 mov si,5576h -273F:90D1 B9 000C mov cx,0Ch -273F:90D4 80 3E 5553 56 cmp data_344,56h ; (273F:5553=0DFh) 'V' -273F:90D9 75 06 jne loc_1785 ; Jump if not equal -273F:90DB úBE 5583 mov si,5583h ; (273F:5583=1Bh) -273F:90DE B9 0009 mov cx,9 -273F:90E1 loc_1785: ; xref 273F:90D9 -273F:90E1 B8 0020 mov ax,20h -273F:90E4 2B C1 sub ax,cx -273F:90E6 D1 E8 shr ax,1 ; Shift w/zeros fill -273F:90E8 05 0003 add ax,3 -273F:90EB 8B 3E 076E mov di, data_571 -273F:90EF 8B 15 mov dx,[di] -273F:90F1 BB 0005 mov bx,5 -273F:90F4 E8 01EC call sub_227 ; (92E3) -273F:90F7 8B 0E 0308 mov cx,word ptr ds:[308h] ; (273F:0308=21CDh) -273F:90FB 83 F9 0F cmp cx,0Fh -273F:90FE 73 03 jae loc_1786 ; Jump if above or = -273F:9100 83 C1 01 add cx,1 -273F:9103 loc_1786: ; xref 273F:90FE -273F:9103 úBE 0119 mov si, offset file_buffer ; (273F:0119=0FFh) -273F:9106 B8 0003 mov ax,3 -273F:9109 BB 0007 mov bx,7 - -273F:910C locloop_1787: ; xref 273F:9126 -273F:910C 50 push ax -273F:910D 53 push bx -273F:910E 51 push cx -273F:910F 56 push si -273F:9110 B9 0020 mov cx,20h -273F:9113 8B 3E 076E mov di,word ptr ds:[76Eh] ; (273F:076E=0D806h) -273F:9117 8B 15 mov dx,[di] -273F:9119 E8 01C7 call sub_227 ; (92E3) -273F:911C 5E pop si -273F:911D 59 pop cx -273F:911E 5B pop bx -273F:911F 58 pop ax -273F:9120 83 C3 01 add bx,1 -273F:9123 83 C6 21 add si,21h -273F:9126 E2 E4 loop locloop_1787 ; Loop if cx > 0 - -273F:9128 FF 16 0744 call word ptr [show_screen_proc] -273F:912C E8 8E5C call mouse_wait ; (1F8B) -273F:912F loc_1788: ; xref 273F:9188, 91E5, 92B3 -273F:912F úE8 0296 call room_check_keypresses -273F:9132 F6 06 11DA 01 test mouse_buttons2, 1 -273F:9137 74 08 jz loc_1789 ; Jump if zero -273F:9139 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:913E E9 00A7 jmp loc_1797 ; (91E8) -273F:9141 loc_1789: ; xref 273F:9137 -273F:9141 F6 06 11DA 02 test mouse_buttons2, 2 -273F:9146 74 06 jz loc_1790 ; Jump if zero -273F:9148 33 C0 xor ax,ax ; Zero register -273F:914A A2 11DA mov mouse_buttons2, al -273F:914D C3 retn -273F:914E loc_1790: ; xref 273F:9146 -273F:914E A1 11D6 mov ax, mouse_x2 -273F:9151 8B 1E 11D8 mov bx, mouse_y2 -273F:9155 B1 03 mov cl,3 -273F:9157 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:9159 D3 EB shr bx,cl ; Shift w/zeros fill -273F:915B 3D 0002 cmp ax,2 -273F:915E 72 22 jb loc_1792 ; Jump if below -273F:9160 3D 0022 cmp ax,22h -273F:9163 73 1D jae loc_1792 ; Jump if above or = -273F:9165 83 FB 07 cmp bx,7 -273F:9168 72 18 jb loc_1792 ; Jump if below -273F:916A 8B 0E 0308 mov cx,word ptr ds:[308h] ; (273F:0308=21CDh) -273F:916E 83 F9 0F cmp cx,0Fh -273F:9171 72 03 jb loc_1791 ; Jump if below -273F:9173 83 E9 01 sub cx,1 -273F:9176 loc_1791: ; xref 273F:9171 -273F:9176 83 C1 08 add cx,8 -273F:9179 3B D9 cmp bx,cx -273F:917B 73 05 jae loc_1792 ; Jump if above or = -273F:917D 83 EB 06 sub bx,6 -273F:9180 EB 02 jmp short loc_1793 ; (9184) -273F:9182 loc_1792: ; xref 273F:915E, 9163, 9168, 917B -273F:9182 33 DB xor bx,bx ; Zero register -273F:9184 loc_1793: ; xref 273F:9180 - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 346 - -273F:9184 3B 1E 5551 cmp bx,data_343 ; (273F:5551=0E807h) -273F:9188 74 A5 je loc_1788 ; Jump if equal -273F:918A 87 1E 5551 xchg data_343,bx ; (273F:5551=0E807h) -273F:918E 0B DB or bx,bx ; Zero ? -273F:9190 74 21 jz loc_1794 ; Jump if zero -273F:9192 8B C3 mov ax,bx -273F:9194 2D 0001 sub ax,1 -273F:9197 B9 0021 mov cx,21h -273F:919A F7 E1 mul cx ; dx:ax = reg * ax -273F:919C 05 0119 add ax, offset file_buffer -273F:919F 8B F0 mov si,ax -273F:91A1 8B 3E 076E mov di,word ptr ds:[76Eh] ; (273F:076E=0D806h) -273F:91A5 8B 15 mov dx,[di] -273F:91A7 B8 0003 mov ax,3 -273F:91AA 83 C3 06 add bx,6 -273F:91AD B9 0020 mov cx,20h -273F:91B0 E8 0130 call sub_227 ; (92E3) -273F:91B3 loc_1794: ; xref 273F:9190 -273F:91B3 F7 06 5551 FFFF test data_343,0FFFFh ; (273F:5551=0E807h) -273F:91B9 74 26 jz loc_1795 ; Jump if zero -273F:91BB 8B 1E 5551 mov bx,data_343 ; (273F:5551=0E807h) -273F:91BF 8B C3 mov ax,bx -273F:91C1 2D 0001 sub ax,1 -273F:91C4 B9 0021 mov cx,21h -273F:91C7 F7 E1 mul cx ; dx:ax = reg * ax -273F:91C9 05 0119 add ax, offset file_buffer -273F:91CC 8B F0 mov si,ax -273F:91CE 8B 3E 076E mov di,word ptr ds:[76Eh] ; (273F:076E=0D806h) -273F:91D2 8B 55 02 mov dx,[di+2] -273F:91D5 B8 0003 mov ax,3 -273F:91D8 83 C3 06 add bx,6 -273F:91DB B9 0020 mov cx,20h -273F:91DE E8 0102 call sub_227 ; (92E3) -273F:91E1 loc_1795: ; xref 273F:91B9 -273F:91E1 FF 16 0744 call word ptr [show_screen_proc] -273F:91E5 loc_1796: ; xref 273F:91EE -273F:91E5 E9 FF47 jmp loc_1788 ; (912F) -273F:91E8 loc_1797: ; xref 273F:913E -273F:91E8 F7 06 5551 FFFF test data_343,0FFFFh ; (273F:5551=0E807h) -273F:91EE 74 F5 jz loc_1796 ; Jump if zero -273F:91F0 80 0E 11D0 01 or menubar_state, 1 ; (273F:11D0=56h) -273F:91F5 FF 16 075E call [show_cursor_proc] -273F:91F9 B8 0021 mov ax,21h -273F:91FC F7 26 5551 mul data_343 ; (273F:5551=0E807h) dx:ax = data * ax -273F:9200 2D 0021 sub ax,21h -273F:9203 05 0119 add ax, offset file_buffer -273F:9206 8B F0 mov si,ax -273F:9208 8B F8 mov di,ax -273F:920A loc_1798: ; xref 273F:9212 -273F:920A úF6 05 FF test byte ptr [di],0FFh -273F:920D 74 05 jz loc_1799 ; Jump if zero -273F:920F 83 C7 01 add di,1 -273F:9212 EB F6 jmp short loc_1798 ; (920A) -273F:9214 loc_1799: ; xref 273F:920D, 928A, 9297 -273F:9214 úC6 05 5F mov byte ptr [di],5Fh ; '_' -273F:9217 C6 45 01 00 mov byte ptr [di+1],0 -273F:921B 57 push di - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 347 - -273F:921C 56 push si -273F:921D 8B 3E 076E mov di,word ptr ds:[76Eh] ; (273F:076E=0D806h) -273F:9221 8B 15 mov dx,[di] -273F:9223 B8 0003 mov ax,3 -273F:9226 8B 1E 5551 mov bx,data_343 ; (273F:5551=0E807h) -273F:922A 83 C3 06 add bx,6 -273F:922D B9 0020 mov cx,20h -273F:9230 E8 00B0 call sub_227 ; (92E3) -273F:9233 FF 16 0744 call word ptr [show_screen_proc] -273F:9237 5E pop si -273F:9238 5F pop di -273F:9239 loc_1800: ; xref 273F:924A, 9283, 9292, 92DF -273F:9239 úF6 06 11DA 01 test mouse_buttons2, 1 -273F:923E 75 7A jnz loc_1808 ; Jump if not zero -273F:9240 F6 06 11DA 02 test mouse_buttons2, 2 -273F:9245 75 57 jnz loc_1806 ; Jump if not zero -273F:9247 E8 02D6 call check_keypress ; (9520) -273F:924A 74 ED jz loc_1800 ; Jump if zero -273F:924C 80 3E 5553 AC cmp data_344,0ACh ; (273F:5553=0DFh) -273F:9251 74 47 je loc_1805 ; Jump if equal -273F:9253 3C 30 cmp al,30h ; '0' -273F:9255 72 14 jb loc_1801 ; Jump if below -273F:9257 3C 3A cmp al,3Ah ; ':' -273F:9259 72 21 jb loc_1803 ; Jump if below -273F:925B 3C 41 cmp al,41h ; 'A' -273F:925D 72 0C jb loc_1801 ; Jump if below -273F:925F 3C 5B cmp al,5Bh ; '[' -273F:9261 72 19 jb loc_1803 ; Jump if below -273F:9263 3C 61 cmp al,61h ; 'a' -273F:9265 72 04 jb loc_1801 ; Jump if below -273F:9267 3C 7B cmp al,7Bh ; '{' -273F:9269 72 11 jb loc_1803 ; Jump if below -273F:926B loc_1801: ; xref 273F:9255, 925D, 9265 -273F:926B úBB 5554 mov bx,offset data_345 ; (273F:5554=0E8h) -273F:926E loc_1802: ; xref 273F:927A -273F:926E úF6 07 FF test byte ptr [bx],0FFh -273F:9271 74 19 jz loc_1804 ; Jump if zero -273F:9273 3A 07 cmp al,[bx] -273F:9275 74 05 je loc_1803 ; Jump if equal -273F:9277 83 C3 01 add bx,1 -273F:927A EB F2 jmp short loc_1802 ; (926E) -273F:927C loc_1803: ; xref 273F:9259, 9261, 9269, 9275 -273F:927C 8B DF mov bx,di -273F:927E 2B DE sub bx,si -273F:9280 83 FB 1F cmp bx,1Fh -273F:9283 73 B4 jae loc_1800 ; Jump if above or = -273F:9285 88 05 mov [di],al -273F:9287 83 C7 01 add di,1 -273F:928A EB 88 jmp short loc_1799 ; (9214) -273F:928C loc_1804: ; xref 273F:9271 -273F:928C 3C 08 cmp al,8 -273F:928E 75 0A jne loc_1805 ; Jump if not equal -273F:9290 3B F7 cmp si,di -273F:9292 74 A5 je loc_1800 ; Jump if equal -273F:9294 83 EF 01 sub di,1 -273F:9297 E9 FF7A jmp loc_1799 ; (9214) -273F:929A loc_1805: ; xref 273F:9251, 928E - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 348 - -273F:929A 3C 1B cmp al,1Bh -273F:929C 75 18 jne loc_1807 ; Jump if not equal -273F:929E loc_1806: ; xref 273F:9245 -273F:929E C6 05 00 mov byte ptr [di],0 -273F:92A1 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:92A6 FF 16 075E call [show_cursor_proc] -273F:92AA FF 16 0744 call word ptr [show_screen_proc] -273F:92AE C6 06 11DA 00 mov mouse_buttons2, 0 -273F:92B3 E9 FE79 jmp loc_1788 ; (912F) -273F:92B6 loc_1807: ; xref 273F:929C -273F:92B6 3C 0D cmp al,0Dh -273F:92B8 75 25 jne loc_1809 ; Jump if not equal -273F:92BA loc_1808: ; xref 273F:923E -273F:92BA C6 06 11DA 00 mov mouse_buttons2, 0 -273F:92BF 3B FE cmp di,si -273F:92C1 74 1C je loc_1809 ; Jump if equal -273F:92C3 C6 05 00 mov byte ptr [di],0 -273F:92C6 80 26 11D0 FE and menubar_state, 0FEh ; (273F:11D0=56h) -273F:92CB FF 16 075E call [show_cursor_proc] -273F:92CF FF 16 0744 call word ptr [show_screen_proc] -273F:92D3 C6 06 11DA 00 mov mouse_buttons2, 0 -273F:92D8 33 C0 xor ax,ax ; Zero register -273F:92DA 87 06 5551 xchg data_343,ax ; (273F:5551=0E807h) -273F:92DE C3 retn -273F:92DF loc_1809: ; xref 273F:92B8, 92C1 -273F:92DF E9 FF57 jmp loc_1800 ; (9239) -273F:92E2 C3 db 0C3h - - saverestore_proc endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:90F4, 9119, 91B0, 91DE, 9230 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:92E3 sub_227 proc near -273F:92E3 50 push ax -273F:92E4 53 push bx -273F:92E5 52 push dx -273F:92E6 F7 26 074A mul char_width -273F:92EA 8B F8 mov di,ax -273F:92EC A1 074C mov ax, menubar_block_size -273F:92EF F7 E3 mul bx ; dx:ax = reg * ax -273F:92F1 03 F8 add di,ax -273F:92F3 5A pop dx -273F:92F4 A1 4CE4 mov ax, data_segment2 -273F:92F7 8E C0 mov es,ax -273F:92F9 8B 2E 4CF2 mov bp, font_segment -273F:92FD loc_1810: ; xref 273F:930D -273F:92FD úAC lodsb ; String [si] to al -273F:92FE 0A C0 or al,al ; Zero ? -273F:9300 74 0D jz loc_1811 ; Jump if zero -273F:9302 FF 16 076A call [display_character_proc] -273F:9306 03 3E 074A add di, char_width -273F:930A 80 C5 01 add ch,1 -273F:930D EB EE jmp short loc_1810 ; (92FD) -273F:930F loc_1811: ; xref 273F:9300, 9320 -273F:930F ú3A E9 cmp ch,cl -273F:9311 73 0F jae loc_1812 ; Jump if above or = -273F:9313 B0 20 mov al,20h ; ' ' -273F:9315 FF 16 076A call [display_character_proc] -273F:9319 03 3E 074A add di, char_width -273F:931D 80 C5 01 add ch,1 -273F:9320 EB ED jmp short loc_1811 ; (930F) -273F:9322 loc_1812: ; xref 273F:9311 -273F:9322 5B pop bx -273F:9323 58 pop ax -273F:9324 83 EB 01 sub bx,1 -273F:9327 8A CD mov cl,ch -273F:9329 32 ED xor ch,ch ; Zero register -273F:932B 8B E9 mov bp,cx -273F:932D B9 0081 mov cx,81h -273F:9330 BA 0001 mov dx,1 -273F:9333 E9 784D jmp loc_92 ; (0B83) - sub_227 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:015D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:9336 sub_228 proc near -273F:9336 E8 0EBA call sub_257 ; (A1F3) -273F:9339 B8 01BC mov ax,1BCh -273F:933C B3 00 mov bl,0 - assume ds:data_seg -273F:933E FF 1E 5662 call dword ptr [play_music_proc] -273F:9342 E8 8C30 call show_arrow_cursor -273F:9345 80 3E 0786 02 cmp default_drive, 2 ; Is it drive A or B (0 or 1)? -273F:934A 72 20 jb loc_1813 ; Yes, so running on floppy -273F:934C B8 3D00 mov ax,3D00h -273F:934F úBA 5540 mov dx, offset savegame_filename -273F:9352 CD 21 int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx -273F:9354 72 35 jc loc_1815 ; Jump if carry Set -273F:9356 8B D8 mov bx,ax -273F:9358 B8 4202 mov ax,4202h -273F:935B 33 C9 xor cx,cx ; Zero register -273F:935D 33 D2 xor dx,dx ; Zero register -273F:935F CD 21 int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset -273F:9361 72 24 jc loc_1814 ; Jump if carry Set -273F:9363 3D 03E8 cmp ax, PLAYER_HOTSPOT_ID -273F:9366 72 1F jb loc_1814 ; Jump if below -273F:9368 B4 3E mov ah,3Eh -273F:936A CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:936C loc_1813: ; xref 273F:934A -273F:936C FF 16 0766 call word ptr [fade_out_proc] -273F:9370 C7 06 9832 FFFF mov room_number, 0FFFFh -273F:9376 A1 4CE0 mov ax, current_room_segment -273F:9379 A3 4CE2 mov data_segment, ax -273F:937C E8 A9A0 call restart_restore_dialog ; Show restore/restart dialog -273F:937F 75 0A jnz loc_1815 ; Jump if not zero -273F:9381 E8 FBC6 call menuitem_restore -273F:9384 75 05 jnz loc_1815 ; Jump if not zero -273F:9386 C3 retn -273F:9387 loc_1814: ; xref 273F:9361, 9366 -273F:9387 B4 3E mov ah,3Eh -273F:9389 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:0169 - -273F:938B sub_229: -273F:938B loc_1815: ; xref 273F:9354, 937F, 9384 -273F:938B E8 8BD1 call show_disk_cursor -273F:938E FF 16 0766 call word ptr [fade_out_proc] -273F:9392 E8 0E5E call sub_257 ; (A1F3) -273F:9395 B8 FFFF mov ax,0FFFFh -273F:9398 C7 06 9832 FFFF mov room_number, 0FFFFh -273F:939E E8 0017 call sub_230 ; (93B8) -273F:93A1 B8 400E mov ax,400Eh -273F:93A4 8C D9 mov cx,ds -273F:93A6 BA 5D90 mov dx,5D90h -273F:93A9 E8 6F68 call read_entry ; (0314) -273F:93AC E8 E812 call load_string_resources -273F:93AF C6 06 1456 FF mov current_room_num, 0FFh -273F:93B4 0D 0001 or ax,1 -273F:93B7 C3 retn - sub_228 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8F5D, 939E - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:93B8 sub_230 proc near - assume ds:seg_code -273F:93B8 A1 9832 mov ax, room_number -273F:93BB A3 554F mov data_342,ax ; (273F:554F=8BDDh) -273F:93BE E8 80E1 call sub_45 ; (14A2) -273F:93C1 A1 4CF8 mov ax, data_811 -273F:93C4 A3 4D00 mov buffer_segment, ax -273F:93C7 C3 retn - sub_230 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0104, 14E6, 3D65, 912F - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:93C8 room_check_keypresses proc near -273F:93C8 loc_1816: ; xref 273F:94D8 -273F:93C8 úE8 0155 call check_keypress ; (9520) -273F:93CB 74 3B jz loc_ret_1820 ; Jump if zero -273F:93CD E8 01B8 call sub_233 ; (9588) -273F:93D0 74 36 jz loc_ret_1820 ; Jump if zero -273F:93D2 3C 41 cmp al,41h ; 'A' -273F:93D4 72 06 jb loc_1817 ; Jump if below -273F:93D6 3C 5B cmp al,5Bh ; 'Z'+1 -273F:93D8 73 02 jae loc_1817 ; Jump if above or = -273F:93DA 04 20 add al,20h ; Convert uppercase to lowercase -273F:93DC loc_1817: -273F:93DC 3C 70 cmp al,70h ; 'p' - Pause -273F:93DE 75 29 jne loc_1821 ; Jump if not equal -273F:93E0 A0 5660 mov al, music_status -273F:93E3 50 push ax -273F:93E4 80 26 5660 FB and music_status, 0FBh -273F:93E9 E8 8B9F call mouse_wait ; (1F8B) -273F:93EC loc_1818: ; xref 273F:93FF -273F:93EC E8 8823 call room_check_cursors -273F:93EF E8 80C6 call set_vga_palette ; (14B8) -273F:93F2 F6 06 11D5 FF test mouse_buttons, 0FFh ; (31E4:11D5=0) -273F:93F7 75 08 jnz loc_1819 ; Jump if not zero -273F:93F9 B4 06 mov ah,6 -273F:93FB B2 FF mov dl,0FFh -273F:93FD CD 21 int 21h ; DOS Services ah=function 06h - ; special char i/o, dl=subfunc -273F:93FF 74 EB jz loc_1818 ; Jump if zero -273F:9401 loc_1819: ; xref 273F:93F7 -273F:9401 E8 8B87 call mouse_wait ; (1F8B) -273F:9404 58 pop ax -273F:9405 A2 5660 mov music_status, al - -273F:9408 loc_ret_1820: ; xref 273F:93CB, 93D0 -273F:9408 C3 retn - -273F:9409 loc_1821: ; xref 273F:93DE -273F:9409 3C 71 cmp al,71h ; 'q' - Quit -273F:940B 75 0A jne loc_1822 ; Jump if not equal -273F:940D EB 08 jmp short loc_1822 ; (9417) - ;* No entry point to code -273F:940F B8 0000 mov ax,0 -273F:9412 B6 01 mov dh,1 -273F:9414 E8 AB8D call display_message ; (3FA4) -273F:9417 loc_1822: -273F:9417 3C C8 cmp al, 0C8h ; Up arrow? -273F:9419 75 07 jne loc_1823 ; Jump if not equal -273F:941B 33 C9 xor cx, cx -273F:941D BA FFFE mov dx, 0FFFEh -273F:9420 EB 7C jmp short loc_1834 -273F:9422 loc_1823: -273F:9422 3C D0 cmp al,0D0h ; Down arrow? -273F:9424 75 07 jne loc_1824 ; Jump if not equal -273F:9426 33 C9 xor cx,cx -273F:9428 BA 0002 mov dx,2 -273F:942B EB 71 jmp short loc_1834 -273F:942D loc_1824: -273F:942D 3C CB cmp al,0CBh ; Left arrow? -273F:942F 75 07 jne loc_1825 ; Jump if not equal -273F:9431 B9 FFFC mov cx,0FFFCh -273F:9434 33 D2 xor dx,dx -273F:9436 EB 66 jmp short loc_1834 -273F:9438 loc_1825: -273F:9438 3C CD cmp al,0CDh ; Right arrow? -273F:943A 75 07 jne loc_1826 ; Jump if not equal -273F:943C B9 0004 mov cx,4 -273F:943F 33 D2 xor dx,dx -273F:9441 EB 5B jmp short loc_1834 -273F:9443 loc_1826: -273F:9443 3C C9 cmp al,0C9h -273F:9445 75 09 jne loc_1827 ; Jump if not equal -273F:9447 8B 0E 11D1 mov cx, mouse_x -273F:944B BA 000A mov dx,0Ah -273F:944E EB 74 jmp short loc_1837 ; (94C4) -273F:9450 loc_1827: ; xref 273F:9445 -273F:9450 3C D1 cmp al,0D1h -273F:9452 75 09 jne loc_1828 ; Jump if not equal -273F:9454 8B 0E 11D1 mov cx, mouse_x -273F:9458 BA 00BE mov dx,0BEh -273F:945B EB 67 jmp short loc_1837 ; (94C4) -273F:945D loc_1828: ; xref 273F:9452 -273F:945D 3C C7 cmp al,0C7h -273F:945F 75 09 jne loc_1829 ; Jump if not equal -273F:9461 B9 0008 mov cx,8 -273F:9464 8B 16 11D3 mov dx, mouse_y -273F:9468 EB 5A jmp short loc_1837 ; (94C4) -273F:946A loc_1829: ; xref 273F:945F -273F:946A 3C CF cmp al,0CFh -273F:946C 75 09 jne loc_1830 ; Jump if not equal -273F:946E B9 0138 mov cx,138h -273F:9471 8B 16 11D3 mov dx, mouse_y -273F:9475 EB 4D jmp short loc_1837 ; (94C4) -273F:9477 loc_1830: ; xref 273F:946C -273F:9477 3C 20 cmp al,20h ; ' ' -273F:9479 75 0D jne loc_1832 ; Jump if not equal -273F:947B loc_1831: ; xref 273F:948A -273F:947B 8B 0E 11D1 mov cx, mouse_x -273F:947F 8B 16 11D3 mov dx, mouse_y -273F:9483 BB 0001 mov bx,1 -273F:9486 EB 3E jmp short loc_1838 ; (94C6) -273F:9488 loc_1832: ; xref 273F:9479 -273F:9488 3C 1B cmp al,1Bh -273F:948A 74 EF je loc_1831 ; Jump if equal -273F:948C 3C 0D cmp al,0Dh -273F:948E 75 0D jne loc_ret_1833 ; Jump if not equal -273F:9490 8B 0E 11D1 mov cx, mouse_x -273F:9494 8B 16 11D3 mov dx, mouse_y -273F:9498 BB 0002 mov bx,2 -273F:949B EB 29 jmp short loc_1838 ; (94C6) - -273F:949D loc_ret_1833: ; xref 273F:948E -273F:949D C3 retn -273F:949E loc_1834: ; xref 273F:9420, 942B, 9436, 9441 -273F:949E F7 06 55A1 0003 test data_836,3 ; (31E4:55A1=0) -273F:94A4 74 0E jz loc_1835 ; Jump if zero -273F:94A6 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:94A8 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:94AA D1 E2 shl dx,1 ; Shift w/zeros fill -273F:94AC D1 E2 shl dx,1 ; Shift w/zeros fill -273F:94AE D1 E1 shl cx,1 ; Shift w/zeros fill -273F:94B0 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:94B2 D1 E2 shl dx,1 ; Shift w/zeros fill -273F:94B4 loc_1835: ; xref 273F:94A4 -273F:94B4 03 0E 11D1 add cx, mouse_x -273F:94B8 79 02 jns loc_1836 ; Jump if not sign -273F:94BA 33 C9 xor cx,cx ; Zero register -273F:94BC loc_1836: ; xref 273F:94B8 -273F:94BC 03 16 11D3 add dx, mouse_y -273F:94C0 79 02 jns loc_1837 ; Jump if not sign -273F:94C2 33 D2 xor dx,dx ; Zero register -273F:94C4 loc_1837: ; xref 273F:944E, 945B, 9468, 9475 - ; 94C0 -273F:94C4 33 DB xor bx,bx ; Zero register -273F:94C6 loc_1838: ; xref 273F:9486, 949B -273F:94C6 D1 E1 shl cx,1 ; Shift w/zeros fill -273F:94C8 0E E8 8A1C callf mouse_handler ; (1EE8) -273F:94CC 83 3E 11D3 08 cmp mouse_y, 8 -273F:94D1 72 05 jb loc_1840 ; Jump if below -273F:94D3 C6 06 11D5 00 mov mouse_buttons, 0 -273F:94D8 loc_1840: ; xref 273F:94D1 -273F:94D8 E9 FEED jmp loc_1816 ; (93C8) - room_check_keypresses endp - - - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - ; - ; External Entry Point - ; - ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -273F:94DB keyboard_handler proc far ; xref 273F:0703 -273F:94DB 9C pushf ; Push flags - assume ds:seg_code -273F:94DC 2E: FF 1E 04AE call dword ptr cs:[old_kbd_int_proc] -273F:94E1 50 push ax -273F:94E2 53 push bx -273F:94E3 51 push cx -273F:94E4 52 push dx -273F:94E5 56 push si -273F:94E6 57 push di -273F:94E7 55 push bp -273F:94E8 1E push ds -273F:94E9 06 push es -273F:94EA 9C pushf ; Push flags -273F:94EB B8 31E4 mov ax,data_seg -273F:94EE 8E D8 mov ds,ax -273F:94F0 33 C0 xor ax,ax ; Zero register -273F:94F2 8E C0 mov es,ax -273F:94F4 26: A1 0417 mov ax,es:keybd_flags_1_ ; (0000:0417=0) - assume ds:data_seg -273F:94F8 A3 55A1 mov data_836,ax ; (31E4:55A1=0) -273F:94FB C6 06 55A0 01 mov byte ptr data_835,1 ; (31E4:55A0=0) -273F:9500 C7 06 F010 0000 mov timer_ticks, 0 ; (31E4:F010=0) -273F:9506 80 3E 1854 04 cmp cp_num_digits, 4 -273F:950B 72 08 jb loc_1841 ; Jump if below -273F:950D C6 06 1854 01 mov cp_num_digits, 1 -273F:9512 E8 01A8 call sub_236 ; (96BD) -273F:9515 loc_1841: ; xref 273F:950B -273F:9515 9D popf ; Pop flags -273F:9516 07 pop es -273F:9517 1F pop ds -273F:9518 5D pop bp -273F:9519 5F pop di -273F:951A 5E pop si -273F:951B 5A pop dx -273F:951C 59 pop cx -273F:951D 5B pop bx -273F:951E 58 pop ax -273F:951F CF iret ; Interrupt return - keyboard_handler endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1FA1, 3B84, 3B92, 3BAF, 6A79, 6D66, 9247 - ; 93C8, 9D7B, AA0D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:9520 check_keypress proc near -273F:9520 B4 06 mov ah,6 -273F:9522 B2 FF mov dl,0FFh -273F:9524 CD 21 int 21h ; DOS Services ah=function 06h - ; special char i/o, dl=subfunc -273F:9526 74 0D jz loc_ret_1842 ; Jump if zero -273F:9528 0A C0 or al,al ; Zero ? -273F:952A 75 09 jnz loc_ret_1842 ; Jump if not zero -273F:952C B4 06 mov ah,6 -273F:952E B2 FF mov dl,0FFh -273F:9530 CD 21 int 21h ; DOS Services ah=function 06h - ; special char i/o, dl=subfunc -273F:9532 0C 80 or al,80h -273F:9534 C3 retn - -273F:9535 loc_ret_1842: ; xref 273F:9526, 952A -273F:9535 C3 retn - check_keypress endp - -273F:9536 48 data_419 db 48h ; xref 273F:95B5 -273F:9537 95 E2 95 4F 95 F4 db 95h,0E2h, 95h, 4Fh, 95h,0F4h -273F:953D 95 63 95 13 96 71 db 95h, 63h, 95h, 13h, 96h, 71h -273F:9543 95 2C 96 00 00 db 95h, 2Ch, 96h, 00h, 00h -273F:9548 3C 43 44 48 4E 3C db 'FOJOC@RJH=', 0 -273F:9555 3D 3C 3E 46 4F 4A -273F:955B 4F 43 40 52 4A 48 -273F:9561 3D 00 -273F:9563 46 44 47 47 4F 43 db 'FDGGOC@AP>F@M', 0 -273F:9569 40 41 50 3E 46 40 -273F:956F 4D 00 -273F:9571 40 3C 4E 40 42 4A db '@ 0 - -273F:A066 úBF B9C7 mov di, offset data_1121 -273F:A069 B9 000A mov cx,0Ah - -273F:A06C locloop_1961: ; xref 273F:A0B7 -273F:A06C F6 45 02 FF test byte ptr [di+2],0FFh -273F:A070 75 42 jnz loc_1963 ; Jump if not zero -273F:A072 8A 04 mov al,[si] -273F:A074 88 05 mov [di],al -273F:A076 88 5D 01 mov [di+1],bl -273F:A079 8A 4C 02 mov cl,[si+2] -273F:A07C F6 06 5660 11 test music_status, 11h -273F:A081 74 0F jz loc_1962 ; Jump if zero -273F:A083 D0 E9 shr cl,1 ; Shift w/zeros fill -273F:A085 D0 E9 shr cl,1 ; Shift w/zeros fill -273F:A087 F6 06 5660 10 test music_status, 10h -273F:A08C 74 04 jz loc_1962 ; Jump if zero -273F:A08E D0 E9 shr cl,1 ; Shift w/zeros fill -273F:A090 D0 E9 shr cl,1 ; Shift w/zeros fill -273F:A092 loc_1962: ; xref 273F:A081, A08C -273F:A092 80 E1 03 and cl,3 -273F:A095 88 4D 02 mov [di+2],cl -273F:A098 8A 4C 03 mov cl,[si+3] -273F:A09B 88 4D 03 mov [di+3],cl -273F:A09E 8A 4C 04 mov cl,[si+4] -273F:A0A1 88 4D 04 mov [di+4],cl -273F:A0A4 B4 01 mov ah,1 -273F:A0A6 32 FF xor bh,bh ; Zero register -273F:A0A8 FF 1E 5662 call dword ptr [play_music_proc] -273F:A0AC 8A 4C 04 mov cl,[si+4] -273F:A0AF 8A 1C mov bl,[si] -273F:A0B1 E9 00DD jmp loc_1977 ; (A191) -273F:A0B4 loc_1963: ; xref 273F:A070 -273F:A0B4 83 C7 05 add di,5 -273F:A0B7 E2 B3 loop locloop_1961 ; Loop if cx > 0 - -273F:A0B9 C3 retn - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:0071 - -273F:A0BA sub_249: -273F:A0BA E8 0098 call sub_253 ; (A155) -273F:A0BD úBE B9C7 mov si, offset data_1121 -273F:A0C0 B9 000A mov cx,0Ah - -273F:A0C3 locloop_1964: ; xref 273F:A0DC -273F:A0C3 F6 44 02 FF test byte ptr [si+2],0FFh -273F:A0C7 74 10 jz loc_1965 ; Jump if zero -273F:A0C9 F6 44 03 01 test byte ptr [si+3],1 -273F:A0CD 74 0A jz loc_1965 ; Jump if zero -273F:A0CF B4 04 mov ah,4 -273F:A0D1 8A 04 mov al,[si] -273F:A0D3 24 7F and al,7Fh -273F:A0D5 FF 1E 5662 call dword ptr [play_music_proc] -273F:A0D9 loc_1965: ; xref 273F:A0C7, A0CD -273F:A0D9 83 C6 05 add si,5 -273F:A0DC E2 E5 loop locloop_1964 ; Loop if cx > 0 - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:9FE0, 9FFE, A11A - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - sub_250 proc near -273F:A0DE úBE B9C7 mov si, offset data_1121 -273F:A0E1 B9 000A mov cx, 0Ah - -273F:A0E4 locloop_1966: ; xref 273F:A117 -273F:A0E4 F6 44 02 FF test byte ptr [si+2],0FFh -273F:A0E8 74 2A jz loc_1968 ; Jump if zero -273F:A0EA B4 05 mov ah,5 -273F:A0EC 8A 04 mov al,[si] -273F:A0EE 24 7F and al,7Fh -273F:A0F0 F9 stc ; Set carry flag - assume ds:seg_code -273F:A0F1 FF 1E 5662 call dword ptr [play_music_proc] -273F:A0F5 73 1D jnc loc_1968 ; Jump if carry=0 -273F:A0F7 51 push cx -273F:A0F8 8A 4C 02 mov cl,[si+2] -273F:A0FB 8A 44 01 mov al,[si+1] -273F:A0FE 32 E4 xor ah,ah ; Zero register -273F:A100 05 5669 add ax,5669h -273F:A103 8B F8 mov di,ax -273F:A105 32 ED xor ch,ch ; Zero register - -273F:A107 locloop_1967: ; xref 273F:A10D -273F:A107 C6 05 00 mov byte ptr [di],0 -273F:A10A 83 C7 01 add di,1 -273F:A10D E2 F8 loop locloop_1967 ; Loop if cx > 0 - -273F:A10F C6 44 02 00 mov byte ptr [si+2],0 -273F:A113 59 pop cx -273F:A114 loc_1968: ; xref 273F:A0E8, A0F5 -273F:A114 83 C6 05 add si,5 -273F:A117 E2 CB loop locloop_1966 ; Loop if cx > 0 - -273F:A119 C3 retn - sub_250 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - - seq_method_66 proc near -273F:A11A E8 FFC1 call sub_250 ; (A0DE) -273F:A11D C7 06 BA1F 0000 mov general_val, 0 -273F:A123 E8 0009 call sub_251 ; (A12F) -273F:A126 74 06 jz loc_ret_1969 ; Jump if zero -273F:A128 C7 06 BA1F 0001 mov general_val, 1 - -273F:A12E loc_ret_1969: ; xref 273F:A126 -273F:A12E C3 retn - seq_method_66 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:9FF6, A123, A192 - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -273F:A12F sub_251: -273F:A12F úBE B9C7 mov si, offset data_1121 -273F:A132 B9 000A mov cx,0Ah - -273F:A135 locloop_1970: ; xref 273F:A142 -273F:A135 F6 44 02 FF test byte ptr [si+2],0FFh -273F:A139 74 04 jz loc_1971 ; Jump if zero -273F:A13B 38 1C cmp [si],bl -273F:A13D 74 08 je loc_1972 ; Jump if equal -273F:A13F loc_1971: ; xref 273F:A139 -273F:A13F 83 C6 05 add si,5 -273F:A142 E2 F1 loop locloop_1970 ; Loop if cx > 0 - -273F:A144 33 F6 xor si,si ; Zero register -273F:A146 C3 retn -273F:A147 loc_1972: ; xref 273F:A13D -273F:A147 0B F6 or si,si ; Zero ? -273F:A149 C3 retn - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:A180, A18D - -273F:A14A sub_252: -273F:A14A B4 04 mov ah,4 -273F:A14C 8A C3 mov al,bl -273F:A14E 24 7F and al,7Fh -273F:A150 FF 1E 5662 call dword ptr [play_music_proc] -273F:A154 C3 retn - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:A0BA - -273F:A155 sub_253: -273F:A155 A1 9832 mov ax, room_number -273F:A158 E8 6B8F call get_room_resource_pointer2 -273F:A15B 8A 44 17 mov al, [si+17h] -273F:A15E 3A 06 BAB9 cmp al, script_val_88 -273F:A162 74 1F je loc_ret_1975 ; Jump if equal -273F:A164 A2 BAB9 mov script_val_88, al -273F:A167 3C 01 cmp al,1 -273F:A169 72 12 jb loc_1974 ; Jump if below -273F:A16B 74 17 jz loc_1976 ; Jump if zero -273F:A16D 3C 03 cmp al,3 -273F:A16F 72 04 jb loc_1973 ; Jump if below -273F:A171 74 0A jz loc_1974 ; Jump if zero -273F:A173 EB 08 jmp short loc_1974 ; (A17D) -273F:A175 loc_1973: ; xref 273F:A16F -273F:A175 33 DB xor bx, bx ; Zero register -273F:A177 B9 000F mov cx, 0Fh -273F:A17A E8 0014 call sub_254 ; (A191) -273F:A17D loc_1974: ; xref 273F:A169, A171, A173 -273F:A17D BB 0001 mov bx,1 -273F:A180 E8 FFC7 call sub_252 ; (A14A) - -273F:A183 loc_ret_1975: ; xref 273F:A162 -273F:A183 C3 retn -273F:A184 loc_1976: ; xref 273F:A16B -273F:A184 BB 0002 mov bx,2 -273F:A187 E8 FE73 call play_sound ; (9FFD) -273F:A18A BB 0021 mov bx,21h -273F:A18D E8 FFBA call sub_252 ; (A14A) -273F:A190 C3 retn - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:A17A - -273F:A191 sub_254: -273F:A191 loc_1977: ; xref 273F:A0B1 -273F:A191 51 push cx -273F:A192 E8 FF9A call sub_251 ; (A12F) -273F:A195 59 pop cx -273F:A196 74 21 jz loc_ret_1979 ; Jump if zero -273F:A198 F6 06 5660 01 test music_status, 1 -273F:A19D 75 1A jnz loc_ret_1979 ; Jump if not zero - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; - ; Called from: 273F:A259 - -273F:A19F sub_255: -273F:A19F 8A D9 mov bl,cl -273F:A1A1 8A 4C 02 mov cl,[si+2] -273F:A1A4 8A 44 01 mov al,[si+1] -273F:A1A7 32 ED xor ch,ch ; Zero register - -273F:A1A9 locloop_1978: ; xref 273F:A1B7 -273F:A1A9 B4 06 mov ah,6 -273F:A1AB 50 push ax -273F:A1AC 53 push bx -273F:A1AD 51 push cx - assume ds:seg_code -273F:A1AE FF 1E 5662 call dword ptr [play_music_proc] -273F:A1B2 59 pop cx -273F:A1B3 5B pop bx -273F:A1B4 58 pop ax -273F:A1B5 04 01 add al,1 -273F:A1B7 E2 F0 loop locloop_1978 ; Loop if cx > 0 - - -273F:A1B9 loc_ret_1979: ; xref 273F:A196, A19D -273F:A1B9 C3 retn - sub_247 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A3CE, A5A3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A1BA sub_256 proc near - assume ds:data_seg -273F:A1BA F6 06 5660 11 test music_status, 11h -273F:A1BF 75 1F jnz loc_1982 ; Jump if not zero -273F:A1C1 33 C0 xor ax,ax ; Zero register -273F:A1C3 E8 A823 call sleep ; (49E9) -273F:A1C6 B1 40 mov cl,40h ; '@' -273F:A1C8 loc_1980: ; xref 273F:A1DE -273F:A1C8 B8 0608 mov ax,608h -273F:A1CB 8A D9 mov bl,cl -273F:A1CD loc_1981: ; xref 273F:A1D5 -273F:A1CD 50 push ax -273F:A1CE FF 1E 5662 call dword ptr [play_music_proc] -273F:A1D2 58 pop ax -273F:A1D3 2C 01 sub al,1 -273F:A1D5 73 F6 jnc loc_1981 ; Jump if carry=0 -273F:A1D7 8B C2 mov ax,dx -273F:A1D9 E8 A80D call sleep ; (49E9) -273F:A1DC D0 E9 shr cl,1 ; Shift w/zeros fill - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 383 - -273F:A1DE 75 E8 jnz loc_1980 ; Jump if not zero -273F:A1E0 loc_1982: ; xref 273F:A1BF -273F:A1E0 E8 0010 call sub_257 ; (A1F3) -273F:A1E3 B8 0608 mov ax,608h -273F:A1E6 B3 80 mov bl,80h -273F:A1E8 loc_1983: ; xref 273F:A1F0 -273F:A1E8 50 push ax -273F:A1E9 FF 1E 5662 call dword ptr [play_music_proc] -273F:A1ED 58 pop ax -273F:A1EE 2C 01 sub al,1 -273F:A1F0 73 F6 jnc loc_1983 ; Jump if carry=0 -273F:A1F2 C3 retn - sub_256 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:4067, 710D, 8F60, 9336, 9392, A1E0, A436 - ; A47D, A58F, A5AC, A654, A6D6, A8E6, A977 - ; A98D - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A1F3 sub_257 proc near -273F:A1F3 06 push es -273F:A1F4 57 push di -273F:A1F5 51 push cx -273F:A1F6 B4 03 mov ah,3 -273F:A1F8 FF 1E 5662 call dword ptr [play_music_proc] -273F:A1FC úBF 5669 mov di,offset data_843 ; (31E4:5669=0) -273F:A1FF 1E push ds -273F:A200 07 pop es -273F:A201 B9 0008 mov cx,8 -273F:A204 32 C0 xor al,al ; Zero register -273F:A206 F3/ AA rep stosb ; Rep when cx >0 Store al to es:[di] -273F:A208 59 pop cx -273F:A209 5F pop di -273F:A20A 07 pop es -273F:A20B C3 retn - sub_257 endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:1061 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - play_music proc near -273F:A20C B8 0005 mov ax,5 -273F:A20F F7 E3 mul bx ; dx:ax = reg * ax -273F:A211 05 5671 add ax,5671h -273F:A214 8B F0 mov si,ax -273F:A216 8A 04 mov al,[si] -273F:A218 24 7F and al,7Fh -273F:A21A B4 04 mov ah,4 -273F:A21C FF 1E 5662 call dword ptr [play_music_proc] -273F:A220 C3 retn - play_music endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8FE1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A221 sub_259 proc near -273F:A221 úBE B9C7 mov si, offset data_1121 -273F:A224 B9 000A mov cx,0Ah - -273F:A227 locloop_1984: ; xref 273F:A260 -273F:A227 F6 44 02 FF test byte ptr [si+2],0FFh -273F:A22B 74 30 jz loc_1986 ; Jump if zero -273F:A22D F6 44 03 02 test byte ptr [si+3],2 -273F:A231 74 2A jz loc_1986 ; Jump if zero -273F:A233 51 push cx -273F:A234 8A 44 01 mov al,[si+1] -273F:A237 32 E4 xor ah,ah ; Zero register -273F:A239 05 5669 add ax,5669h -273F:A23C 8B F8 mov di,ax -273F:A23E 8A 4C 02 mov cl,[si+2] -273F:A241 32 ED xor ch,ch ; Zero register - -273F:A243 locloop_1985: ; xref 273F:A249 -273F:A243 C6 05 01 mov byte ptr [di],1 -273F:A246 83 C7 01 add di,1 -273F:A249 E2 F8 loop locloop_1985 ; Loop if cx > 0 - -273F:A24B B4 01 mov ah,1 -273F:A24D 8A 04 mov al,[si] -273F:A24F 8A 5C 01 mov bl,[si+1] -273F:A252 FF 1E 5662 call dword ptr [play_music_proc] -273F:A256 8A 4C 04 mov cl,[si+4] -273F:A259 E8 FF43 call sub_255 ; (A19F) -273F:A25C 59 pop cx -273F:A25D loc_1986: ; xref 273F:A22B, A231 -273F:A25D 83 C6 05 add si,5 -273F:A260 E2 C5 loop locloop_1984 ; Loop if cx > 0 - -273F:A262 C3 retn - sub_259 endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:8FE1 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - music_proc_unknown proc far - -273F:A263 1E push ds -273F:A264 51 push cx -273F:A265 2E: 8B 0E 9F62 mov cx,word ptr cs:data_442+2 ; (273F:9F62=0) -273F:A26A 8E D9 mov ds,cx -273F:A26C 04 01 add al,1 -273F:A26E 80 FC 01 cmp ah,1 -273F:A271 72 45 jb loc_1992 ; Jump if below -273F:A273 74 2A jz loc_1989 ; Jump if zero -273F:A275 80 FC 03 cmp ah,3 -273F:A278 72 1E jb loc_1988 ; Jump if below -273F:A27A 74 0F jz loc_1987 ; Jump if zero -273F:A27C 80 FC 05 cmp ah,5 -273F:A27F 72 0A jb loc_1987 ; Jump if below -273F:A281 75 35 jnz loc_1992 ; Jump if not zero -273F:A283 3A 06 0009 cmp al,byte ptr ds:data_4e+1 ; (0000:0009=0) -273F:A287 74 21 je loc_1990 ; Jump if equal -273F:A289 EB 2D jmp short loc_1992 ; (A2B8) -273F:A28B loc_1987: ; xref 273F:A27A, A27F -273F:A28B C6 06 000B FF mov byte ptr ds:data_6e+1,0FFh ; (0000:000B=0C8h) -273F:A290 C7 06 0008 00FF mov word ptr ds:data_4e,0FFh ; (0000:0008=30h) -273F:A296 EB 12 jmp short loc_1990 ; (A2AA) -273F:A298 loc_1988: ; xref 273F:A278 -273F:A298 2E: FF 1E 9F60 call cs:data_442 ; (273F:9F60=0) -273F:A29D EB 0B jmp short loc_1990 ; (A2AA) -273F:A29F loc_1989: ; xref 273F:A273 -273F:A29F 80 E4 7F and ah,7Fh -273F:A2A2 80 FF 01 cmp bh,1 -273F:A2A5 74 07 je loc_1991 ; Jump if equal -273F:A2A7 A2 000A mov ds:data_6e,al ; (0000:000A=0) -273F:A2AA loc_1990: ; xref 273F:A287, A296, A29D, A2B6 -273F:A2AA ú59 pop cx -273F:A2AB 1F pop ds -273F:A2AC F8 clc ; Clear carry flag -273F:A2AD CB retf ; Return far -273F:A2AE loc_1991: ; xref 273F:A2A5 -273F:A2AE A2 0008 mov byte ptr ds:[8],al ; (273F:0008=0B8h) -273F:A2B1 C6 06 0009 00 mov byte ptr ds:[9],0 ; (273F:0009=0FCh) -273F:A2B6 EB F2 jmp short loc_1990 ; (A2AA) -273F:A2B8 loc_1992: ; xref 273F:A271, A281, A289 -273F:A2B8 59 pop cx -273F:A2B9 1F pop ds -273F:A2BA F9 stc ; Set carry flag -273F:A2BB CB retf ; Return far - - music_proc_unknown endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:7654 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A2BC show_introduction proc near -273F:A2BC B8 0030 mov ax,30h ; Load MIDI entry #48 -273F:A2BF E8 D8A5 call read_into_buffer_2 - assume ds:data_seg -273F:A2C2 A3 5782 mov misc_segment, ax ; (31E4:5782=0) -273F:A2C5 8B D0 mov dx,ax -273F:A2C7 B8 0004 mov ax,4 -273F:A2CA 33 C9 xor cx,cx ; Zero register -273F:A2CC 80 0E 5668 80 or note_flag, MUSIC_NOTE ; Show music note on screen -273F:A2D1 FF 1E 5662 call dword ptr [play_music_proc] -273F:A2D5 72 07 jc loc_1993 ; Jump if carry Set -273F:A2D7 80 0E 5660 24 or music_status, 24h -273F:A2DC EB 57 jmp short loc_1995 ; (A335) -273F:A2DE loc_1993: -273F:A2DE B8 0031 mov ax,31h ; Load MIDI entry #49 -273F:A2E1 8B 0E 5782 mov cx,misc_segment ; (31E4:5782=0) -273F:A2E5 89 0E 4D00 mov buffer_segment, cx ; (31E4:4D00=0) -273F:A2E9 E8 D87B call read_into_buffer_2 ; (7B67) -273F:A2EC 8B D0 mov dx,ax -273F:A2EE B8 0001 mov ax,1 -273F:A2F1 33 C9 xor cx,cx ; Zero register -273F:A2F3 FF 1E 5662 call dword ptr [play_music_proc] -273F:A2F7 73 37 jnc loc_1994 ; Jump if carry=0 - -273F:A2F9 8B 0E 5664 mov cx,word ptr play_music_proc+2 -273F:A2FD 33 D2 xor dx,dx ; Zero register -273F:A2FF B8 000F mov ax,0Fh -273F:A302 E8 600F call read_entry ; (0314) -273F:A305 03 16 5664 add dx,word ptr play_music_proc+2 -273F:A309 89 16 4D00 mov buffer_segment, dx ; (31E4:4D00=0) -273F:A30D 89 16 5782 mov misc_segment, dx -273F:A311 A1 5664 mov ax,word ptr play_music_proc+2 ; (31E4:5664=273Fh) -273F:A314 2E: A3 9F62 mov word ptr cs:data_442+2,ax ; (273F:9F62=0) -273F:A318 2E: C7 06 9F60 0000 mov word ptr cs:data_442,0 ; (273F:9F60=0) -273F:A31F C7 06 5662 A263 mov play_music_proc, offset music_proc_unknown -273F:A325 8C 0E 5664 mov word ptr play_music_proc+2,cs - -273F:A329 80 0E 5660 14 or music_status, 14h -273F:A32E EB 05 jmp short loc_1995 ; (A335) -273F:A330 loc_1994: -273F:A330 80 0E 5660 05 or music_status, 5 -273F:A335 loc_1995: ; xref 273F:A2DC, A32E -273F:A335 80 26 5668 7F and note_flag, MUSIC_NOTE_OFF -273F:A33A 8B 0E 5782 mov cx,misc_segment ; (31E4:5782=0) -273F:A33E 87 0E 4D00 xchg buffer_segment, cx ; (31E4:4D00=0) -273F:A342 89 0E 5782 mov misc_segment, cx -273F:A346 89 0E 5780 mov palette_segment, cx - -273F:A34A B8 0032 mov ax,32h ; Load set of sub-palettes -273F:A34D 33 D2 xor dx,dx -273F:A34F E8 5FC2 call read_entry -273F:A352 01 16 5782 add misc_segment, dx - -; Here it uses a new method of displaying the picture. After having loaded -; Entry Id 32h into the buffer segment, the "Kingdom was at peace" screen will be -; decoded into memory and then copied onto the screen by the [copy_screen_proc] - -273F:A356 B8 0040 mov ax,40h ; "The kingdom was at peace" -273F:A359 E8 0457 call load_pic_with_animation -273F:A35C FF 16 0766 call word ptr [fade_out_proc] - -273F:A360 B8 0100 mov ax,100h -273F:A363 BB 0100 mov bx,100h -273F:A366 FF 1E 5662 call dword ptr [play_music_proc] -273F:A36A 33 C0 xor ax,ax ; Zero register -273F:A36C E8 0519 call pause_with_kbd_mouse_break -273F:A36F FF 16 077E call word ptr [copy_screen_proc] -273F:A373 33 C0 xor ax,ax ; Install sub-palette #0 -273F:A375 E8 04C1 call install_palette -273F:A378 E8 04F3 call screen_fade_in -273F:A37B C6 06 55A0 00 mov byte ptr data_835,0 ; (31E4:55A0=0) -273F:A380 B8 035A mov ax,35Ah -273F:A383 E8 0502 call pause_with_kbd_mouse_break -273F:A386 73 02 jnc loc_1996 ; Jump if full timeout occurred -273F:A388 74 76 jz loc_2005 ; Jump if Escape pressed -273F:A38A loc_1996: ; xref 273F:A386 - -; Loop for animation of showing peasants working in the field screen - -273F:A38A B9 004C mov cx,4Ch ; Number of animation frames - -273F:A38D locloop_1997: ; xref 273F:A3A2 -273F:A38D B8 0007 mov ax,7 -273F:A390 E8 04F5 call pause_with_kbd_mouse_break -273F:A393 73 05 jnc loc_1998 ; Jump if full timeout occurred -273F:A395 75 0F jnz loc_1999 ; Jump if Escape not pressed -273F:A397 E9 0202 jmp loc_2019 -273F:A39A loc_1998: ; xref 273F:A393 -273F:A39A 57 push di -273F:A39B 51 push cx -273F:A39C FF 16 0780 call word ptr [pic_decode_proc] -273F:A3A0 59 pop cx -273F:A3A1 5F pop di -273F:A3A2 E2 E9 loop locloop_1997 ; Loop if cx > 0 - -273F:A3A4 EB 15 jmp short loc_2001 ; (A3BB) -273F:A3A6 loc_1999: ; xref 273F:A395 -273F:A3A6 E8 04B6 call fade_out - -273F:A3A9 locloop_2000: ; xref 273F:A3AF -273F:A3A9 51 push cx -273F:A3AA FF 16 0780 call word ptr [pic_decode_proc] -273F:A3AE 59 pop cx -273F:A3AF E2 F8 loop locloop_2000 ; Loop if cx > 0 - -273F:A3B1 B8 0001 mov ax,1 -273F:A3B4 E8 0482 call install_palette -273F:A3B7 FF 16 0760 call word ptr [fade_in_proc] -273F:A3BB loc_2001: ; xref 273F:A3A4 -273F:A3BB B8 0042 mov ax,42h ; Cliff overhang image -273F:A3BE E8 03F2 call load_pic_with_animation -273F:A3C1 B8 0001 mov ax,1 -273F:A3C4 E8 0472 call install_palette -273F:A3C7 FF 16 0762 call [set_lower_palette_proc] -273F:A3CB BA 0014 mov dx,14h -273F:A3CE E8 FDE9 call sub_256 ; (A1BA) -273F:A3D1 B8 0064 mov ax,64h -273F:A3D4 E8 04B1 call pause_with_kbd_mouse_break -273F:A3D7 73 02 jnc loc_2002 ; Jump if carry=0 -273F:A3D9 74 25 jz loc_2005 ; Jump if zero -273F:A3DB loc_2002: ; xref 273F:A3D7 -273F:A3DB B8 0101 mov ax,101h -273F:A3DE BB 0100 mov bx,100h -273F:A3E1 FF 1E 5662 call dword ptr [play_music_proc] -273F:A3E5 B8 00C8 mov ax,0C8h -273F:A3E8 E8 049D call pause_with_kbd_mouse_break -273F:A3EB 73 02 jnc loc_2003 ; Jump if carry=0 -273F:A3ED 74 11 jz loc_2005 ; Jump if zero -273F:A3EF loc_2003: ; xref 273F:A3EB -273F:A3EF FF 16 077E call word ptr [copy_screen_proc] -273F:A3F3 B9 0064 mov cx,64h - -273F:A3F6 locloop_2004: ; xref 273F:A409 -273F:A3F6 B8 0007 mov ax,7 -273F:A3F9 E8 048C call pause_with_kbd_mouse_break -273F:A3FC 73 05 jnc loc_2006 ; Jump if carry=0 -273F:A3FE 75 0D jnz loc_2007 ; Jump if not zero -273F:A400 loc_2005: ; xref 273F:A388, A3D9, A3ED, A434 -273F:A400 E9 0199 jmp loc_2019 ; (A59C) -273F:A403 loc_2006: ; xref 273F:A3FC -273F:A403 51 push cx -273F:A404 FF 16 0780 call word ptr [pic_decode_proc] -273F:A408 59 pop cx -273F:A409 E2 EB loop locloop_2004 ; Loop if cx > 0 - -273F:A40B EB 0F jmp short loc_2009 ; (A41C) -273F:A40D loc_2007: ; xref 273F:A3FE -273F:A40D E8 044F call fade_out - -273F:A410 locloop_2008: ; xref 273F:A416 -273F:A410 51 push cx -273F:A411 FF 16 0780 call word ptr [pic_decode_proc] -273F:A415 59 pop cx -273F:A416 E2 F8 loop locloop_2008 ; Loop if cx > 0 - -273F:A418 FF 16 0760 call word ptr [fade_in_proc] -273F:A41C loc_2009: ; xref 273F:A40B -273F:A41C B8 0044 mov ax,44h -273F:A41F E8 0391 call load_pic_with_animation -273F:A422 B8 0002 mov ax,2 -273F:A425 E8 0411 call install_palette -273F:A428 FF 16 0762 call [set_lower_palette_proc] -273F:A42C B8 05FA mov ax,5FAh -273F:A42F E8 0456 call pause_with_kbd_mouse_break -273F:A432 73 02 jnc loc_2010 ; Jump if carry=0 -273F:A434 74 CA jz loc_2005 ; Jump if zero -273F:A436 loc_2010: ; xref 273F:A432 -273F:A436 E8 FDBA call sub_257 ; (A1F3) -273F:A439 B8 0102 mov ax,102h -273F:A43C BB 0100 mov bx,100h -273F:A43F FF 1E 5662 call dword ptr [play_music_proc] -273F:A443 FF 16 077E call word ptr [copy_screen_proc] -273F:A447 B9 00F3 mov cx,0F3h - -273F:A44A locloop_2011: ; xref 273F:A45D -273F:A44A B8 0004 mov ax,4 -273F:A44D E8 0438 call pause_with_kbd_mouse_break -273F:A450 73 05 jnc loc_2012 ; Jump if carry=0 -273F:A452 75 0B jnz loc_2013 ; Jump if not zero -273F:A454 E9 0145 jmp loc_2019 ; (A59C) -273F:A457 loc_2012: ; xref 273F:A450 -273F:A457 51 push cx -273F:A458 FF 16 0780 call word ptr [pic_decode_proc] -273F:A45C 59 pop cx -273F:A45D E2 EB loop locloop_2011 ; Loop if cx > 0 - -273F:A45F loc_2013: ; xref 273F:A452 -273F:A45F B8 0024 mov ax,24h -273F:A462 E8 034E call load_pic_with_animation -273F:A465 FF 16 077E call word ptr [copy_screen_proc] -273F:A469 33 C0 xor ax,ax ; Zero register -273F:A46B E8 041A call pause_with_kbd_mouse_break -273F:A46E B8 0003 mov ax,3 -273F:A471 E8 03C5 call install_palette -273F:A474 E8 0404 call set_lower_palette -273F:A477 B8 0328 mov ax,328h -273F:A47A E8 040B call pause_with_kbd_mouse_break -273F:A47D E8 FD73 call sub_257 ; (A1F3) -273F:A480 B8 0103 mov ax,103h -273F:A483 BB 0100 mov bx,100h -273F:A486 FF 1E 5662 call dword ptr [play_music_proc] -273F:A48A B8 0046 mov ax,46h -273F:A48D E8 0323 call load_pic_with_animation -273F:A490 B8 031E mov ax,31Eh -273F:A493 E8 03F2 call pause_with_kbd_mouse_break -273F:A496 FF 16 077E call word ptr [copy_screen_proc] -273F:A49A B9 007C mov cx,7Ch - -273F:A49D locloop_2014: ; xref 273F:A4B0 -273F:A49D B8 0007 mov ax,7 -273F:A4A0 E8 03E5 call pause_with_kbd_mouse_break -273F:A4A3 73 05 jnc loc_2015 ; Jump if carry=0 -273F:A4A5 75 0B jnz loc_2016 ; Jump if not zero -273F:A4A7 E9 00F2 jmp loc_2019 ; (A59C) -273F:A4AA loc_2015: ; xref 273F:A4A3 -273F:A4AA 51 push cx -273F:A4AB FF 16 0780 call word ptr [pic_decode_proc] -273F:A4AF 59 pop cx -273F:A4B0 E2 EB loop locloop_2014 ; Loop if cx > 0 - -273F:A4B2 loc_2016: ; xref 273F:A4A5 -273F:A4B2 B8 0048 mov ax,48h -273F:A4B5 E8 02FB call load_pic_with_animation -273F:A4B8 E8 03A4 call fade_out -273F:A4BB B8 0004 mov ax,4 -273F:A4BE E8 0378 call install_palette -273F:A4C1 FF 16 077E call word ptr [copy_screen_proc] -273F:A4C5 B8 0063 mov ax,63h -273F:A4C8 E8 03BD call pause_with_kbd_mouse_break -273F:A4CB E8 03AD call set_lower_palette -273F:A4CE B8 0054 mov ax,54h -273F:A4D1 E8 03B4 call pause_with_kbd_mouse_break -273F:A4D4 E8 0388 call fade_out -273F:A4D7 FF 16 0780 call word ptr [pic_decode_proc] -273F:A4DB B8 005D mov ax,5Dh -273F:A4DE E8 03A7 call pause_with_kbd_mouse_break -273F:A4E1 E8 0397 call set_lower_palette -273F:A4E4 B8 0052 mov ax,52h -273F:A4E7 E8 039E call pause_with_kbd_mouse_break -273F:A4EA E8 0372 call fade_out -273F:A4ED FF 16 0780 call word ptr [pic_decode_proc] -273F:A4F1 B8 003F mov ax,3Fh -273F:A4F4 E8 0391 call pause_with_kbd_mouse_break -273F:A4F7 E8 0381 call set_lower_palette -273F:A4FA B8 0057 mov ax,57h -273F:A4FD E8 0388 call pause_with_kbd_mouse_break -273F:A500 E8 035C call fade_out -273F:A503 FF 16 0780 call word ptr [pic_decode_proc] -273F:A507 B8 0059 mov ax,59h -273F:A50A E8 037B call pause_with_kbd_mouse_break -273F:A50D E8 036B call set_lower_palette -273F:A510 B8 005A mov ax,5Ah -273F:A513 E8 0372 call pause_with_kbd_mouse_break -273F:A516 E8 0346 call fade_out -273F:A519 FF 16 0780 call word ptr [pic_decode_proc] -273F:A51D B8 0035 mov ax,35h -273F:A520 E8 0365 call pause_with_kbd_mouse_break -273F:A523 E8 0355 call set_lower_palette -273F:A526 B8 0058 mov ax,58h -273F:A529 E8 035C call pause_with_kbd_mouse_break -273F:A52C E8 0330 call fade_out -273F:A52F FF 16 0780 call word ptr [pic_decode_proc] -273F:A533 B8 005B mov ax,5Bh -273F:A536 E8 034F call pause_with_kbd_mouse_break -273F:A539 E8 033F call set_lower_palette -273F:A53C B8 0059 mov ax,59h -273F:A53F E8 0346 call pause_with_kbd_mouse_break -273F:A542 FF 16 0766 call word ptr [fade_out_proc] - -273F:A546 B8 0021 mov ax,21h -273F:A549 E8 957B call read_palette ; (3AC7) -273F:A54C B8 0022 mov ax,22h -273F:A54F E8 0261 call load_pic_with_animation -273F:A552 FF 16 077E call word ptr [copy_screen_proc] -273F:A556 B8 A000 mov ax, VGA_SEGMENT -273F:A559 8E C0 mov es,ax -273F:A55B úBF F000 mov di,data_1448e ; (A000:F000=0) -273F:A55E B9 0500 mov cx,500h -273F:A561 33 C0 xor ax,ax ; Zero register -273F:A563 F3/ AB rep stosw ; Rep when cx >0 Store ax to es:[di] -273F:A565 FF 16 0760 call word ptr [fade_in_proc] -273F:A569 33 C0 xor ax,ax ; Zero register -273F:A56B E8 031A call pause_with_kbd_mouse_break -273F:A56E B8 0384 mov ax,384h -273F:A571 E8 0314 call pause_with_kbd_mouse_break -273F:A574 72 19 jc loc_2018 ; Jump if carry Set -273F:A576 F6 06 5660 10 test music_status, 10h -273F:A57B 75 12 jnz loc_2018 ; Jump if not zero -273F:A57D loc_2017: ; xref 273F:A58D -273F:A57D B8 0005 mov ax,5 -273F:A580 E8 0305 call pause_with_kbd_mouse_break -273F:A583 72 0A jc loc_2018 ; Jump if carry Set -273F:A585 F9 stc ; Set carry flag -273F:A586 B8 0503 mov ax,503h -273F:A589 FF 1E 5662 call dword ptr [play_music_proc] -273F:A58D 73 EE jnc loc_2017 ; Jump if carry=0 -273F:A58F loc_2018: ; xref 273F:A574, A57B, A583 -273F:A58F E8 FC61 call sub_257 ; (A1F3) -273F:A592 80 26 5660 FB and music_status, 0FBh -273F:A597 FF 16 0766 call word ptr [fade_out_proc] -273F:A59B C3 retn -273F:A59C loc_2019: ; xref 273F:A397, A400, A454, A4A7 -273F:A59C FF 16 0766 call word ptr [fade_out_proc] -273F:A5A0 BA 0014 mov dx,14h -273F:A5A3 E8 FC14 call sub_256 ; (A1BA) -273F:A5A6 80 26 5660 FB and music_status, 0FBh -273F:A5AB C3 retn - show_introduction endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0033 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - display_chute_animation proc near -273F:A5AC E8 FC44 call sub_257 ; (A1F3) -273F:A5AF A1 4CFE mov ax, data_814 -273F:A5B2 A3 5782 mov misc_segment, ax -273F:A5B5 E8 79A7 call show_disk_cursor -273F:A5B8 B8 404C mov ax,404Ch -273F:A5BB E8 9509 call read_palette ; (3AC7) -273F:A5BE B8 404D mov ax,404Dh -273F:A5C1 E8 01EF call load_pic_with_animation -273F:A5C4 80 0E 11D0 01 or menubar_state, 1 ; (31E4:11D0=3) -273F:A5C9 FF 16 075E call word ptr [show_cursor_proc] -273F:A5CD FF 16 077E call word ptr [copy_screen_proc] -273F:A5D1 E8 029A call sub_267 ; (A86E) -273F:A5D4 53 push bx -273F:A5D5 B8 0140 mov ax,140h -273F:A5D8 33 DB xor bx,bx ; Zero register -273F:A5DA FF 1E 5662 call dword ptr [play_music_proc] -273F:A5DE 5B pop bx -273F:A5DF B9 0018 mov cx,18h - -273F:A5E2 locloop_2020: ; xref 273F:A5EE -273F:A5E2 51 push cx -273F:A5E3 B8 0006 mov ax,6 -273F:A5E6 E8 A400 call sleep -273F:A5E9 FF 16 0780 call word ptr [pic_decode_proc] -273F:A5ED 59 pop cx -273F:A5EE E2 F2 loop locloop_2020 ; Loop if cx > 0 - -273F:A5F0 B8 404F mov ax,404Fh -273F:A5F3 E8 01BD call load_pic_with_animation -273F:A5F6 FF 16 0764 call [empty_palette_proc] -273F:A5FA B9 0004 mov cx,4 - -273F:A5FD locloop_2021: ; xref 273F:A620 -273F:A5FD 51 push cx -273F:A5FE FF 16 077E call word ptr [copy_screen_proc] -273F:A602 59 pop cx -273F:A603 83 F9 04 cmp cx,4 -273F:A606 75 05 jne loc_2022 ; Jump if not equal -273F:A608 51 push cx -273F:A609 E8 0262 call sub_267 ; (A86E) -273F:A60C 59 pop cx -273F:A60D loc_2022: ; xref 273F:A606 -273F:A60D 51 push cx -273F:A60E B9 000B mov cx,0Bh - -273F:A611 locloop_2023: ; xref 273F:A61D -273F:A611 51 push cx -273F:A612 B8 0005 mov ax,5 -273F:A615 E8 A3D1 call sleep ; (49E9) -273F:A618 FF 16 0780 call word ptr [pic_decode_proc] -273F:A61C 59 pop cx -273F:A61D E2 F2 loop locloop_2023 ; Loop if cx > 0 - -273F:A61F 59 pop cx - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 392 - -273F:A620 E2 DB loop locloop_2021 ; Loop if cx > 0 - -273F:A622 FF 16 0764 call [empty_palette_proc] -273F:A626 B8 4051 mov ax,4051h -273F:A629 E8 0187 call load_pic_with_animation -273F:A62C FF 16 077E call word ptr [copy_screen_proc] -273F:A630 E8 0248 call set_lower_palette -273F:A633 B9 0006 mov cx,6 - -273F:A636 locloop_2024: ; xref 273F:A642 -273F:A636 51 push cx -273F:A637 B8 0006 mov ax,6 -273F:A63A E8 A3AC call sleep ; (49E9) -273F:A63D FF 16 0780 call word ptr [pic_decode_proc] -273F:A641 59 pop cx -273F:A642 E2 F2 loop locloop_2024 ; Loop if cx > 0 - -273F:A644 FF 16 0766 call word ptr [fade_out_proc] -273F:A648 80 26 11D0 FE and menubar_state, 0FEh ; (31E4:11D0=3) -273F:A64D FF 16 075E call word ptr [show_cursor_proc] -273F:A651 E8 D440 call load_resources -273F:A654 E8 FB9C call sub_257 ; (A1F3) -273F:A657 C6 06 BAB9 01 mov byte ptr script_val_88, 1 -273F:A65C C3 retn - display_chute_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0153 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A65D skorl_knockout proc near -273F:A65D FF 16 0766 call word ptr [fade_out_proc] -273F:A661 E8 78FB call show_disk_cursor -273F:A664 A1 4CFE mov ax, data_814 -273F:A667 A3 5782 mov misc_segment, ax -273F:A66A B8 4060 mov ax,4060h -273F:A66D E8 9457 call read_palette ; (3AC7) -273F:A670 B8 4061 mov ax,4061h -273F:A673 E8 013D call load_pic_with_animation -273F:A676 80 0E 11D0 01 or menubar_state, 1 ; (31E4:11D0=3) -273F:A67B FF 16 075E call word ptr [show_cursor_proc] -273F:A67F FF 16 077E call word ptr [copy_screen_proc] -273F:A683 E8 01E8 call sub_267 ; (A86E) -273F:A686 B9 0018 mov cx,18h - -273F:A689 locloop_2025: ; xref 273F:A6A8 -273F:A689 51 push cx -273F:A68A B8 0004 mov ax,4 -273F:A68D E8 A359 call sleep ; (49E9) -273F:A690 83 F9 0C cmp cx,0Ch -273F:A693 75 0E jne loc_2026 ; Jump if not equal -273F:A695 55 push bp -273F:A696 56 push si -273F:A697 52 push dx -273F:A698 53 push bx -273F:A699 BB 0033 mov bx,33h -273F:A69C E8 F95E call play_sound ; (9FFD) -273F:A69F 5B pop bx -273F:A6A0 5A pop dx -273F:A6A1 5E pop si -273F:A6A2 5D pop bp -273F:A6A3 loc_2026: ; xref 273F:A693 -273F:A6A3 FF 16 0780 call word ptr [pic_decode_proc] -273F:A6A7 59 pop cx -273F:A6A8 E2 DF loop locloop_2025 ; Loop if cx > 0 - -273F:A6AA FF 16 0766 call word ptr [fade_out_proc] -273F:A6AE E8 D3E3 call load_resources -273F:A6B1 80 26 11D0 FE and menubar_state, 0FEh ; (31E4:11D0=3) -273F:A6B6 FF 16 075E call word ptr [show_cursor_proc] -273F:A6BA C3 retn - skorl_knockout endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:0038 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - display_barrel_animation proc near -273F:A6BB A1 4CFE mov ax, data_814 -273F:A6BE A3 5782 mov misc_segment, ax -273F:A6C1 B8 E9F0 mov ax,0E9F0h -273F:A6C4 E8 9400 call read_palette ; (3AC7) -273F:A6C7 B8 E9F1 mov ax,0E9F1h -273F:A6CA E8 00E6 call load_pic_with_animation -273F:A6CD 80 0E 11D0 01 or menubar_state, 1 ; (31E4:11D0=3) -273F:A6D2 FF 16 075E call word ptr [show_cursor_proc] -273F:A6D6 E8 FB1A call sub_257 ; (A1F3) -273F:A6D9 B8 013B mov ax,13Bh -273F:A6DC 33 DB xor bx,bx ; Zero register -273F:A6DE FF 1E 5662 call dword ptr [play_music_proc] -273F:A6E2 FF 16 077E call word ptr [copy_screen_proc] -273F:A6E6 E8 0185 call sub_267 ; (A86E) -273F:A6E9 B9 00B0 mov cx,0B0h - -273F:A6EC locloop_2027: ; xref 273F:A6F8 -273F:A6EC 51 push cx -273F:A6ED B8 0007 mov ax,7 -273F:A6F0 E8 A2F6 call sleep ; (49E9) -273F:A6F3 FF 16 0780 call word ptr [pic_decode_proc] -273F:A6F7 59 pop cx -273F:A6F8 E2 F2 loop locloop_2027 ; Loop if cx > 0 - -273F:A6FA C7 06 9832 002A mov room_number, ROOMNUM_WINE_CELLAR -273F:A700 E8 D391 call load_resources -273F:A703 FF 16 0766 call word ptr [fade_out_proc] -273F:A707 80 26 11D0 FE and menubar_state, 0FEh -273F:A70C FF 16 075E call word ptr [show_cursor_proc] -273F:A710 C3 retn - display_barrel_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [pic_decode_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_pic_decode proc near - -273F:A711 1E push ds -273F:A712 B8 A000 mov ax, VGA_SEGMENT -273F:A715 8E C0 mov es,ax -273F:A717 33 FF xor di,di ; Zero register -273F:A719 8E DA mov ds,dx -273F:A71B loc_2028: -273F:A71B 8A 0F mov cl,[bx] ; Get repeating length -273F:A71D 32 ED xor ch,ch -273F:A71F 83 C3 01 add bx,1 -273F:A722 0A C9 or cl,cl ; Was the repeat length 0? -273F:A724 75 05 jnz loc_2029 -273F:A726 8B 0F mov cx,[bx] ; Yes, so get length from next 2 bytes -273F:A728 83 C3 02 add bx,2 -273F:A72B loc_2029: -273F:A72B 8E DD mov ds,bp -273F:A72D F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:A72F 8E DA mov ds,dx -273F:A731 8A 07 mov al,[bx] ; Get screen inc amount -273F:A733 32 E4 xor ah,ah -273F:A735 83 C3 01 add bx,1 -273F:A738 0A C0 or al,al ; Zero ? -273F:A73A 75 05 jnz loc_2030 -273F:A73C 8B 07 mov ax,[bx] ; Yes, so get inc from next 2 bytes -273F:A73E 83 C3 02 add bx,2 -273F:A741 loc_2030: -273F:A741 03 F8 add di,ax -273F:A743 81 FF FA00 cmp di, 320*200 ; 0FA00h = full screen -273F:A747 72 D2 jb loc_2028 ; Jump if below -273F:A749 1F pop ds -273F:A74A B1 04 mov cl,4 - -273F:A74C 8B C6 mov ax,si -273F:A74E D3 E8 shr ax,cl ; Shift w/zeros fill -273F:A750 03 E8 add bp,ax -273F:A752 83 E6 0F and si,0Fh - -273F:A755 8B C3 mov ax,bx -273F:A757 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:A759 03 D0 add dx,ax -273F:A75B 83 E3 0F and bx,0Fh -273F:A75E C3 retn - - vga_pic_decode endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [pic_decode_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - ega_pic_decode endp - -273F:A75F 1E push ds -273F:A760 1E push ds -273F:A761 07 pop es -273F:A762 8E DD mov ds,bp -273F:A764 AC lodsb ; String [si] to al -273F:A765 8A C8 mov cl,al -273F:A767 loc_2031: ; xref 273F:A77D -273F:A767 ú80 E9 01 sub cl,1 -273F:A76A 72 13 jc loc_2032 ; Jump if carry Set -273F:A76C AC lodsb ; String [si] to al -273F:A76D 32 E4 xor ah,ah ; Zero register -273F:A76F 8B D8 mov bx,ax -273F:A771 26: C6 87 0790 01 mov byte ptr es:[hotspot_rects_list][bx],1 ; (273F:0790=1Fh) -273F:A777 26: C6 87 0890 01 mov byte ptr es:[hotspot_rects_list+100h][bx],1 ; (273F:0890=0BEh) -273F:A77D EB E8 jmp short loc_2031 ; (A767) -273F:A77F loc_2032: ; xref 273F:A76A -273F:A77F 26: A1 4CE4 mov ax, es:data_segment2 -273F:A783 8E C0 mov es,ax -273F:A785 BF 0500 mov di, MENUBAR_BLOCK_SIZE/2 -273F:A788 loc_2033: ; xref 273F:A797, A79D -273F:A788 úAC lodsb ; String [si] to al -273F:A789 32 E4 xor ah,ah ; Zero register -273F:A78B 03 F8 add di,ax -273F:A78D ú81 FF 7D00 cmp di,data_1467e ; (FF12:7D00=0C2h) -273F:A791 73 0C jae loc_2034 ; Jump if above or = -273F:A793 AC lodsb ; String [si] to al -273F:A794 25 00FF and ax,0FFh -273F:A797 74 EF jz loc_2033 ; Jump if zero -273F:A799 8B C8 mov cx,ax -273F:A79B F3/ A4 rep movsb ; Rep when cx >0 Mov [si] to es:[di] -273F:A79D EB E9 jmp short loc_2033 ; (A788) -273F:A79F loc_2034: ; xref 273F:A791 -273F:A79F 1F pop ds -273F:A7A0 B1 04 mov cl,4 -273F:A7A2 8B C6 mov ax,si -273F:A7A4 D3 E8 shr ax,cl ; Shift w/zeros fill -273F:A7A6 03 E8 add bp,ax -273F:A7A8 83 E6 0F and si,0Fh -273F:A7AB 55 push bp -273F:A7AC 56 push si -273F:A7AD E8 78AC call ega_show_menu -273F:A7B0 5E pop si -273F:A7B1 5D pop bp -273F:A7B2 C3 retn - - ega_pic_decode endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A359, A3BE, A41F, A462, A48D, A4B5, A54F - ; A5C1, A5F3, A629, A673, A6CA, A91A, A9E3 - ; A9F3 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A7B3 load_pic_with_animation proc near -273F:A7B3 50 push ax -273F:A7B4 E8 5C2F call get_entry_size -273F:A7B7 8B 0E 4D02 mov cx,buffer_segment_end ; (31E4:4D02=0) -273F:A7BB 2B CA sub cx,dx -273F:A7BD 33 D2 xor dx,dx ; Zero register -273F:A7BF 51 push cx -273F:A7C0 E8 5B51 call read_entry ; (0314) -273F:A7C3 5A pop dx -273F:A7C4 83 EA 08 sub dx,8 -273F:A7C7 A1 5782 mov ax,misc_segment ; (31E4:5782=0) -273F:A7CA 8E C0 mov es,ax -273F:A7CC E8 91BB call decode_file_entry ; (398A) -273F:A7CF 89 16 5784 mov decoded_data_end_segment, dx -273F:A7D3 58 pop ax -273F:A7D4 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:A7D9 74 0A je loc_ret_2035 ; Jump if equal -273F:A7DB 8B CA mov cx,dx -273F:A7DD 33 D2 xor dx,dx ; Zero register -273F:A7DF 05 0001 add ax,1 -273F:A7E2 E8 5B2F call read_entry ; (0314) - -273F:A7E5 loc_ret_2035: ; xref 273F:A7D9 -273F:A7E5 C3 retn - load_pic_with_animation endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called indircetly via calls to word ptr [copy_screen_proc] - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - vga_copy_screen proc near - -273F:A7E6 B8 A000 mov ax, VGA_SEGMENT -273F:A7E9 8E C0 mov es,ax -273F:A7EB 1E push ds -273F:A7EC A1 5782 mov ax,misc_segment ; (31E4:5782=0) -273F:A7EF 8E D8 mov ds,ax -273F:A7F1 33 F6 xor si,si ; Zero register -273F:A7F3 33 FF xor di,di ; Zero register -273F:A7F5 B9 7D00 mov cx, 320*200/2 ; 7D00h -273F:A7F8 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:A7FA 1F pop ds -273F:A7FB 8B 2E 5782 mov bp,misc_segment ; (31E4:5782=0) -273F:A7FF 81 C5 0FA0 add bp, 320*200/16 ; 0FA0h (segment incr amount) -273F:A803 8B 16 5784 mov dx, decoded_data_end_segment -273F:A807 33 F6 xor si,si ; Zero register for BP:SI return -273F:A809 33 DB xor bx,bx ; Zero register for DX:BX return -273F:A80B C3 retn - - vga_copy_screen endp - - ega_copy_screen proc near - - assume ds:seg_code -273F:A80C A1 5784 mov ax,data_354 ; (273F:5784=0A302h) -273F:A80F A3 4CE4 mov data_segment2, ax -273F:A812 8E C0 mov es,ax -273F:A814 1E push ds -273F:A815 A1 5782 mov ax,data_353 ; (273F:5782=0C583h) -273F:A818 8E D8 mov ds,ax -273F:A81A 33 F6 xor si,si ; Zero register -273F:A81C úBF 0500 mov di,data_1450e ; (A302:0500=0) -273F:A81F B9 3C00 mov cx,3C00h -273F:A822 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] -273F:A824 1F pop ds -273F:A825 E8 6139 call clear_hotspot_rects -273F:A828 E8 C7DA call menubar_clear_image -273F:A82B E8 782E call ega_show_menu -273F:A82E 8B 2E 5782 mov bp,data_353 ; (273F:5782=0C583h) -273F:A832 81 C5 0780 add bp,780h -273F:A836 33 F6 xor si,si ; Zero register -273F:A838 C3 retn - - ega_copy_screen endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A375, A3B4, A3C4, A425, A471, A4BE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A839 install_palette proc near - assume ds:data_seg -273F:A839 80 3E 0742 02 cmp video_style, VIDEO_STYLE_EGA -273F:A83E 74 1E je loc_ret_2036 ; Jump if equal -273F:A840 56 push si -273F:A841 57 push di -273F:A842 52 push dx -273F:A843 1E push ds - -273F:A844 úBE 00C0 mov si, 0C0h ; 64 palette entries * 3 bytes -273F:A847 F7 E6 mul si ; dx:ax = reg * ax -273F:A849 8B F0 mov si,ax -273F:A84B úBF 1457 mov di,offset unprocessed_vga_palette -273F:A84E 1E push ds -273F:A84F 07 pop es -273F:A850 A1 5780 mov ax, palette_segment -273F:A853 8E D8 mov ds,ax -273F:A855 B9 0060 mov cx, 0C0h/2 ; Copy palette data over -273F:A858 F3/ A5 rep movsw ; Rep when cx >0 Mov [si] to es:[di] - -273F:A85A 1F pop ds -273F:A85B 5A pop dx -273F:A85C 5F pop di -273F:A85D 5E pop si - -273F:A85E loc_ret_2036: ; xref 273F:A83E -273F:A85E C3 retn - install_palette endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A3A6, A40D, A4B8, A4D4, A4EA, A500, A516 - ; A52C - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A85F fade_out proc near -273F:A85F 55 push bp -273F:A860 56 push si -273F:A861 52 push dx -273F:A862 53 push bx -273F:A863 51 push cx -273F:A864 FF 16 0766 call word ptr [fade_out_proc] -273F:A868 59 pop cx -273F:A869 5B pop bx -273F:A86A 5A pop dx -273F:A86B 5E pop si -273F:A86C 5D pop bp -273F:A86D C3 retn - fade_out endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A378, A5D1, A609, A683, A6E6, A932 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A86E screen_fade_in proc near -273F:A86E 55 push bp -273F:A86F 56 push si -273F:A870 52 push dx -273F:A871 53 push bx -273F:A872 FF 16 0760 call word ptr [fade_in_proc] -273F:A876 5B pop bx -273F:A877 5A pop dx -273F:A878 5E pop si -273F:A879 5D pop bp -273F:A87A C3 retn - screen_fade_in endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A474, A4CB, A4E1, A4F7, A50D, A523, A539 - ; A630 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A87B set_lower_palette proc near -273F:A87B 55 push bp -273F:A87C 56 push si -273F:A87D 52 push dx -273F:A87E 53 push bx -273F:A87F FF 16 0762 call [set_lower_palette_proc] -273F:A883 5B pop bx -273F:A884 5A pop dx -273F:A885 5E pop si -273F:A886 5D pop bp -273F:A887 C3 retn - set_lower_palette endp - - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Called from: 273F:A36C, A383, A390, A3D4, A3E8, A3F9, A42F - ; A44D, A46B, A47A, A493, A4A0, A4C8, A4D1 - ; A4DE, A4E7, A4F4, A4FD, A50A, A513, A520 - ; A529, A536, A53F, A56B, A571, A580, A9E9 - ; A9F9 - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -273F:A888 pause_with_kbd_mouse_break proc near -273F:A888 loc_2037: ; xref 273F:A89A, A8B8 -273F:A888 úF6 06 55A0 FF test byte ptr data_835,0FFh ; (31E4:55A0=0) -273F:A88D 75 15 jnz loc_2038 ; Jump if not zero -273F:A88F F6 06 11D5 03 test byte ptr mouse_buttons, 3 -273F:A894 75 42 jnz loc_2043 ; Jump if not zero -273F:A896 39 06 38B1 cmp time_ctr, ax ; (31E4:38B1=0) -273F:A89A 72 EC jb loc_2037 ; Jump if below -273F:A89C C7 06 38B1 0000 mov time_ctr, 0 ; (31E4:38B1=0) -273F:A8A2 F8 clc ; Clear carry flag -273F:A8A3 C3 retn -273F:A8A4 loc_2038: ; xref 273F:A88D -273F:A8A4 C6 06 55A0 00 mov byte ptr data_835,0 ; (31E4:55A0=0) -273F:A8A9 52 push dx -273F:A8AA 50 push ax -273F:A8AB A1 38B1 mov ax, time_ctr ; (31E4:38B1=0) -273F:A8AE B4 06 mov ah,6 -273F:A8B0 B2 FF mov dl,0FFh -273F:A8B2 CD 21 int 21h ; DOS Services ah=function 06h - ; special char i/o, dl=subfunc -273F:A8B4 75 04 jnz loc_2040 ; Jump if not zero -273F:A8B6 loc_2039: ; xref 273F:A8CA -273F:A8B6 58 pop ax -273F:A8B7 5A pop dx -273F:A8B8 EB CE jmp short loc_2037 ; (A888) -273F:A8BA loc_2040: ; xref 273F:A8B4 -273F:A8BA 50 push ax -273F:A8BB loc_2041: ; xref 273F:A8C1 -273F:A8BB B4 06 mov ah,6 -273F:A8BD B2 FF mov dl,0FFh -273F:A8BF CD 21 int 21h ; DOS Services ah=function 06h - ; special char i/o, dl=subfunc -273F:A8C1 75 F8 jnz loc_2041 ; Jump if not zero -273F:A8C3 58 pop ax -273F:A8C4 3C 20 cmp al,20h ; ' ' -273F:A8C6 74 04 je loc_2042 ; Jump if equal -273F:A8C8 3C 1B cmp al,1Bh -273F:A8CA 75 EA jne loc_2039 ; Jump if not equal -273F:A8CC loc_2042: ; xref 273F:A8C6 -273F:A8CC C7 06 38B1 0000 mov time_ctr, 0 ; (31E4:38B1=0) -273F:A8D2 3C 1B cmp al,1Bh -273F:A8D4 F9 stc ; Set carry flag -273F:A8D5 58 pop ax -273F:A8D6 5A pop dx -273F:A8D7 C3 retn -273F:A8D8 loc_2043: ; xref 273F:A894 -273F:A8D8 F6 06 11D5 01 test mouse_buttons, 1 -273F:A8DD F9 stc ; Set carry flag -273F:A8DE C3 retn - pause_with_kbd_mouse_break endp - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ; - ; Starts ending sequence - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - - seq_endgame_sequence proc near -273F:A8DF FF 16 0766 call word ptr ds:[fade_out_proc] -273F:A8E3 E8 7679 call show_disk_cursor -273F:A8E6 E8 F90A call sub_257 ; (A1F3) -273F:A8E9 A1 4CFE mov ax, data_814 -273F:A8EC A3 5782 mov data_353, ax -273F:A8EF F6 06 5660 20 test music_status, 20h -273F:A8F4 74 1B jz loc_2044 ; Jump if zero -273F:A8F6 B8 FF10 mov ax,0FF10h -273F:A8F9 8B 0E 5782 mov cx,data_353 ; (273F:5782=0C583h) -273F:A8FD 51 push cx -273F:A8FE 33 D2 xor dx,dx ; Zero register -273F:A900 E8 5A11 call read_entry ; (0314) -273F:A903 01 16 5782 add data_353,dx ; (273F:5782=0C583h) -273F:A907 B8 0004 mov ax,4 -273F:A90A 5A pop dx -273F:A90B 33 C9 xor cx,cx ; Zero register -273F:A90D FF 1E 5662 call dword ptr [play_music_proc] -273F:A911 loc_2044: ; xref 273F:A8F4 -273F:A911 B8 FF00 mov ax,0FF00h -273F:A914 E8 91B0 call read_palette ; (3AC7) -273F:A917 B8 FF01 mov ax,0FF01h -273F:A91A E8 FE96 call load_pic_with_animation -273F:A91D 03 16 5784 add dx,data_354 ; (273F:5784=0A302h) -273F:A921 89 16 5780 mov data_352,dx ; (273F:5780=78Bh) -273F:A925 80 0E 11D0 01 or menubar_state, 1 -273F:A92A FF 16 075E call [show_cursor_proc] -273F:A92E FF 16 077E call word ptr ds:[77Eh] ; (273F:077E=0C00Bh) -273F:A932 E8 FF39 call sub_267 ; (A86E) -273F:A935 úBF 5786 mov di,offset data_355 ; (273F:5786=19h) -273F:A938 loc_2045: ; xref 273F:A971 -273F:A938 8B 0D mov cx,[di] -273F:A93A 57 push di - -273F:A93B locloop_2046: ; xref 273F:A947 -273F:A93B 51 push cx -273F:A93C B8 0009 mov ax, 9 -273F:A93F E8 A0A7 call sleep ; (49E9) -273F:A942 FF 16 0780 call word ptr ds:[780h] ; (273F:0780=4574h) -273F:A946 59 pop cx -273F:A947 E2 F2 loop locloop_2046 ; Loop if cx > 0 - -273F:A949 5F pop di -273F:A94A 55 push bp -273F:A94B 56 push si -273F:A94C 52 push dx -273F:A94D 53 push bx -273F:A94E 8B 45 02 mov ax,[di+2] -273F:A951 F6 06 5660 20 test music_status, 20h -273F:A956 74 03 jz loc_2047 ; Jump if zero -273F:A958 8B 45 04 mov ax,[di+4] -273F:A95B loc_2047: ; xref 273F:A956 -273F:A95B 0B C0 or ax,ax ; Zero ? -273F:A95D 74 07 jz loc_2048 ; Jump if zero -273F:A95F 8A 5D 06 mov bl, [di+6] -273F:A962 FF 1E 5662 call dword ptr [play_music_proc] -273F:A966 loc_2048: ; xref 273F:A95D -273F:A966 5B pop bx -273F:A967 5A pop dx -273F:A968 5E pop si -273F:A969 5D pop bp -273F:A96A 83 C7 07 add di,7 -273F:A96D F7 05 FFFF test word ptr [di],0FFFFh -273F:A971 75 C5 jnz loc_2045 ; Jump if not zero -273F:A973 55 push bp -273F:A974 56 push si -273F:A975 52 push dx -273F:A976 53 push bx -273F:A977 E8 F879 call sub_257 ; (A1F3) -273F:A97A B8 0100 mov ax,100h -273F:A97D 33 DB xor bx,bx ; Zero register -273F:A97F FF 1E 5662 call dword ptr [play_music_proc] -273F:A983 loc_2049: ; xref 273F:A98B -273F:A983 B8 0500 mov ax,500h -273F:A986 F9 stc ; Set carry flag -273F:A987 FF 1E 5662 call dword ptr [play_music_proc] -273F:A98B 73 F6 jnc loc_2049 ; Jump if carry=0 -273F:A98D E8 F863 call sub_257 ; (A1F3) -273F:A990 F6 06 5660 20 test music_status, 20h -273F:A995 74 0B jz loc_2050 ; Jump if zero -273F:A997 B8 0106 mov ax,106h -273F:A99A 33 DB xor bx,bx ; Zero register -273F:A99C FF 1E 5662 call dword ptr [play_music_proc] -273F:A9A0 EB 3A jmp short loc_2052 ; (A9DC) -273F:A9A2 loc_2050: ; xref 273F:A995 -273F:A9A2 F6 06 5660 01 test music_status, 1 -273F:A9A7 74 2A jz loc_2051 ; Jump if zero -273F:A9A9 B8 FF11 mov ax,0FF11h -273F:A9AC 8B 0E 4CFE mov cx, data_814 -273F:A9B0 33 D2 xor dx,dx ; Zero register -273F:A9B2 51 push cx -273F:A9B3 E8 595E call read_entry ; (0314) -273F:A9B6 03 16 4CFE add dx, data_814 -273F:A9BA 89 16 5782 mov data_353,dx ; (273F:5782=0C583h) -273F:A9BE 5A pop dx -273F:A9BF 33 C9 xor cx,cx ; Zero register -273F:A9C1 B8 0001 mov ax,1 -273F:A9C4 FF 1E 5662 call dword ptr [play_music_proc] -273F:A9C8 B8 0100 mov ax,100h -273F:A9CB 33 DB xor bx,bx ; Zero register -273F:A9CD FF 1E 5662 call dword ptr [play_music_proc] -273F:A9D1 EB 09 jmp short loc_2052 ; (A9DC) -273F:A9D3 loc_2051: ; xref 273F:A9A7 -273F:A9D3 B8 0106 mov ax,106h -273F:A9D6 B7 01 mov bh,1 -273F:A9D8 FF 1E 5662 call dword ptr [play_music_proc] -273F:A9DC loc_2052: ; xref 273F:A9A0, A9D1 -273F:A9DC 5B pop bx -273F:A9DD 5A pop dx -273F:A9DE 5E pop si -273F:A9DF 5D pop bp -273F:A9E0 B8 FF03 mov ax,0FF03h -273F:A9E3 E8 FDCD call load_pic_with_animation -273F:A9E6 B8 0096 mov ax,96h -273F:A9E9 E8 FE9C call pause_with_kbd_mouse_break -273F:A9EC FF 16 077E call word ptr ds:[77Eh] ; (273F:077E=0C00Bh) -273F:A9F0 B8 FF05 mov ax,0FF05h -273F:A9F3 E8 FDBD call load_pic_with_animation -273F:A9F6 B8 05DC mov ax,5DCh -273F:A9F9 E8 FE8C call pause_with_kbd_mouse_break -273F:A9FC FF 16 077E call word ptr ds:[77Eh] ; (273F:077E=0C00Bh) -273F:AA00 B8 05DC mov ax,5DCh -273F:AA03 E8 9FE3 call sleep ; (49E9) -273F:AA06 loc_2053: ; xref 273F:AA10 -273F:AA06 F6 06 11D5 FF test mouse_buttons, 0FFh -273F:AA0B 75 05 jnz loc_2054 ; Jump if not zero -273F:AA0D E8 EB10 call check_keypress ; (9520) -273F:AA10 74 F4 jz loc_2053 ; Jump if zero -273F:AA12 loc_2054: ; xref 273F:AA0B -273F:AA12 FF 16 0766 call word ptr ds:[fade_out_proc] -273F:AA16 B8 0000 mov ax,0 -273F:AA19 B6 01 mov dh,1 -273F:AA1B E8 9586 call display_message ; (3FA4) -273F:AA1E E8 5DAC call sub_10 ; (07CD) -273F:AA21 C7 06 86DF 001C mov word ptr ds:[86DFh],1Ch ; (273F:86DF=6C7h) -273F:AA27 B4 3C mov ah,3Ch ; '<' -273F:AA29 33 C9 xor cx,cx ; Zero register -273F:AA2B úBA 5D80 mov dx,5D80h ; (273F:5D80=0E8h) -273F:AA2E CD 21 int 21h ; DOS Services ah=function 3Ch - ; create/truncate file @ ds:dx -273F:AA30 72 16 jc loc_ret_2055 ; Jump if carry Set -273F:AA32 8B D8 mov bx,ax -273F:AA34 B4 40 mov ah,40h ; '@' -273F:AA36 B9 F010 mov cx, WRITE_BUFFER_SIZE -273F:AA39 úBA 5D90 mov dx, offset write_buffer ; (273F:5D90=47h) -273F:AA3C 2B CA sub cx,dx -273F:AA3E CD 21 int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer -273F:AA40 72 06 jc loc_ret_2055 ; Jump if carry Set -273F:AA42 B4 3E mov ah,3Eh -273F:AA44 CD 21 int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle -273F:AA46 73 00 jnc loc_ret_2055 ; Jump if carry=0 - -273F:AA48 loc_ret_2055: ; xref 273F:AA30, AA40, AA46 -273F:AA48 C3 retn - seq_endgame_sequence endp - -273F:AA49 0007[00] db 7 dup (0) - - seg_code ends - - - - ;------------------------------------------------------------ data_seg ---- - - data_seg segment byte public - assume cs:data_seg , ds:data_seg , ss:stack_seg_k - -31E4:0000 43 6F 70 79 72 69 copyright db 'Copyright Revolution Software 1990-1992' -31E4:0006 67 68 74 20 52 65 -31E4:000C 76 6F 6C 75 74 69 -31E4:0012 6F 6E 20 53 6F 66 -31E4:0018 74 77 61 72 65 20 -31E4:001E 31 39 -31E4:0020 39 30 2D 31 39 39 -31E4:0026 32 -31E4:0027 20 20 20 53 79 73 data_519 db ' System design and code: David' -31E4:002D 74 65 6D 20 64 65 -31E4:0033 73 69 67 6E 20 61 -31E4:0039 6E 64 20 63 6F 64 -31E4:003F 65 3A 20 44 61 76 -31E4:0045 69 64 -31E4:0047 20 53 79 6B 65 73 db ' Sykes and Tony Warriner. Some o' -31E4:004D 20 61 6E 64 20 54 -31E4:0053 6F 6E 79 20 57 61 -31E4:0059 72 72 69 6E 65 72 -31E4:005F 2E 20 53 6F 6D 65 -31E4:0065 20 6F -31E4:0067 74 68 65 72 20 70 db 'ther people did the rest. This' -31E4:006D 65 6F 70 6C 65 20 -31E4:0073 64 69 64 20 74 68 -31E4:0079 65 20 72 65 73 74 -31E4:007F 2E 20 20 20 54 68 -31E4:0085 69 73 -31E4:0087 20 76 65 72 73 69 db ' version assembled 15:16:59 on 0' -31E4:008D 6F 6E 20 61 73 73 -31E4:0093 65 6D 62 6C 65 64 -31E4:0099 20 31 35 3A 31 36 -31E4:009F 3A 35 39 20 6F 6E -31E4:00A5 20 30 -31E4:00A7 31 2F 31 30 2F 39 db '1/10/92' -31E4:00AD 32 -31E4:00AE 00 00 db 0, 0 -31E4:00B0 00 data_525 db 0 ; xref 273F:03D0 -31E4:00B1 01 data_526 db 1 ; xref 273F:0C46 -31E4:00B2 0000 data_527 dw 0 ; Data table (indexed access) -31E4:00B4 FF db 0FFh -31E4:00B5 FF data_528 db 0FFh - -31E4:00B6 0000 file_offset_table dw 0 -31E4:00B8 00C8 dw offset disk1vga -31E4:00BA 00D2 dw offset disk2vga -31E4:00BC 00DC dw offset disk3vga -31E4:00BE 00E6 dw offset disk4vga -31E4:00C0 00F0 dw offset disk1ega -31E4:00C2 00FA dw offset disk2ega -31E4:00C4 0104 dw offset disk3ega -31E4:00C6 010E dw offset disk4ega - -31E4:00C8 44 49 53 4B 31 2E disk1vga db 'DISK1.VGA', 0 -31E4:00CE 56 47 41 00 -31E4:00D2 44 49 53 4B 32 2E disk2vga db 'DISK2.VGA', 0 -31E4:00D8 56 47 41 00 -31E4:00DC 44 49 53 4B 33 2E disk3vga db 'DISK3.VGA', 0 -31E4:00E2 56 47 41 00 -31E4:00E6 44 49 53 4B 34 2E disk4vga db 'DISK4.VGA', 0 -31E4:00EC 56 47 41 00 -31E4:00F0 44 49 53 4B 31 2E disk1ega db 'DISK1.EGA', 0 -31E4:00F6 45 47 41 00 -31E4:00FA 44 49 53 4B 32 2E disk2ega db 'DISK2.EGA', 0 -31E4:0100 45 47 41 00 -31E4:0104 44 49 53 4B 33 2E disk3ega db 'DISK3.EGA', 0 -31E4:010A 45 47 41 00 -31E4:010E 44 49 53 4B 34 2E disk4ega db 'DISK4.EGA', 0 - -31E4:0118 00 retry_count db 0 ; xref 273F:039F, 273F:03A5 - ; 273F:03AA, 273F:03B1 - -31E4:0119 file_buffer dw 0, 0, 0 - file_filenum dw 0 -31E4:0121 file_entries db 5f8h dup (0) ; space for the file entries table - -;***** - Old data block definitions -31E4:0119 0000 data_535 dw 0 ; xref 273F:0351, 273F:8FA2 -31E4:011B 0000 data_536 dw 0 -31E4:011D 0000 data_537 dw 0 -31E4:011F 0000 data_538 dw 0 -31E4:0121 0120[00] db 288 dup (0) -31E4:0241 0000 data_539 dw 0 ; Data table (indexed access) - ; xref 31E4:7E86 -31E4:0243 00C5[00] db 197 dup (0) -31E4:0308 0000 data_540 dw 0 ; Data table (indexed access) - ; xref 273F:8F4F -31E4:030A 00DC[00] db 220 dup (0) -31E4:03E6 0000 data_541 dw 0 ; Data table (indexed access) - ; xref 31E4:BCCD -31E4:03E8 0338[00] db 824 dup (0) -;***** ---------------------------- - - -31E4:0719 0007[00] db 7 dup (0) -31E4:0720 6F 6E 00 00 74 6F db 6Fh, 6Eh, 00h, 00h, 74h, 6Fh -31E4:0726 00 db 00h -31E4:0727 28 6E 6F 74 68 69 db '(nothing)' -31E4:072D 6E 67 29 -31E4:0730 00 66 6F 72 00 2E db 00h, 66h, 6Fh, 72h, 00h, 2Eh -31E4:0736 20 2E 20 2E 00 db 20h, 2Eh, 20h, 2Eh, 00h -31E4:073B 00 data_542 db 0 ; xref 273F:0745, 273F:4016 - ; 273F:4088 -31E4:073C 00 status_flags db 0 -31E4:073D 00 status_flags2 db 0 -31E4:073E 01 old_ctrl_break_flag db 1 ; xref 273F:0725, 273F:402C -31E4:073F 01 data_546 db 1 ; xref 273F:073E, 273F:4037 -31E4:0740 0000 data_547 dw 0 ; xref 273F:07DE -31E4:0742 00 video_style db 0 ; 1=VGA, 2=EGA -31E4:0743 00 video_mode db 0 ; xref 273F:04FF, 273F:05C0 -31E4:0744 0000 show_screen_proc dw 0 ; xref 273F:0509, 273F:05CA -31E4:0746 0000 screen_size dw 0 ; xref 273F:0515, 273F:05D6 -31E4:0748 0000 screen_width dw 0 ; xref 273F:051B, 273F:05DC -31E4:074A 0000 char_width dw 0 ; xref 273F:050F, 273F:05D0 -31E4:074C 0000 menubar_block_size dw 0 ; xref 273F:0521, 273F:05E2 - ; 273F:700A, 273F:7ADB -31E4:074E 0000 data_555 dw 0 ; xref 273F:0527, 273F:05E8 -31E4:0750 0000 segment_screen_proc dw 0 ; xref 273F:052D, 273F:05EE -31E4:0752 0000 show_compressed_screen_proc dw 0 -31E4:0754 0000 add_animation_proc dw 0 - -31E4:0756 0000 draw_talk_dialog_proc dw 0 -31E4:0758 0000 talk_dialog_proc dw 0 -31E4:075A 0000 display2_character_proc dw 0 -31E4:075C 0000 add_rect_proc dw 0 - -31E4:075E 0000 show_cursor_proc dw 0 -31E4:0760 0000 fade_in_proc dw 0 -31E4:0762 0000 set_lower_palette_proc dw 0 -31E4:0764 0000 empty_palette_proc dw 0 -31E4:0766 0000 fade_out_proc dw 0 -31E4:0768 0000 data_568 dw 0 -31E4:076A 0000 display_character_proc dw 0 -31E4:076C 0000 menu_items_proc dw 0 -31E4:076E 0000 data_571 dw 0 -31E4:0770 0000 data_572 dw 0 ; xref 273F:0587, 273F:064E -31E4:0772 0000 toggle_menu_highlight_proc dw 0 -31E4:0774 0000 data_574 dw 0 ; xref 273F:0593, 273F:065A -31E4:0776 0000 data_575 dw 0 ; xref 273F:0599, 273F:0660 -31E4:0778 0000 data_576 dw 0 ; xref 273F:059F, 273F:0666 -31E4:077A 0000 draw_dialog_proc dw 0 -31E4:077C 0000 decode_entry_proc dw 0 -31E4:077E 0000 copy_screen_proc dw 0 -31E4:0780 0000 pic_decode_proc dw 0 - -31E4:0782 0000 saved_mouse_x dw 0 -31E4:0784 0000 saved_mouse_y dw 0 -31E4:0786 00 default_drive db 0 ; xref 273F:0712, 273F:9345 -31E4:0787 0009[00] db 9 dup (0) - -31E4:0790 00 hotspot_rects_list db 0 ; xref 273F:0963, 273F:0B61 -31E4:0791 0044[00] db 68 dup (0) -31E4:07D5 00 data_584 db 0 ; Data table (indexed access) -31E4:07D6 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 -31E4:07DC 0064[00] display_mask db 100 dup (0) -31E4:0890 0100[00] hotspot_rects_list_2 db 256 dup (0) -31E4:0990 0000 data_587 dw 0 ; xref 273F:2087 - -31E4:0992 0100[00] rects_layer_0 db 256 dup (0) -31E4:0A92 0100[00] rects_layer_1 db 256 dup (0) -31E4:0B92 0100[00] rects_layer_2 db 256 dup (0) -31E4:0C92 0100[00] rects_layer_3 db 256 dup (0) - -31E4:0ADE 00 data_593 db 0 ; xref 273F:09E7 -31E4:0ADF 0026[00] db 38 dup (0) -31E4:0B05 00 data_594 db 0 -31E4:0B06 0015[00] db 21 dup (0) -31E4:0B1B 00 data_595 db 0 ; Data table (indexed access) -31E4:0B1C 00 db 0 -31E4:0B1D 00 data_596 db 0 ; Data table (indexed access) -31E4:0B1E 00 00 00 db 0, 0, 0 -31E4:0B21 00 data_597 db 0 ; Data table (indexed access) -31E4:0B22 0016[00] db 22 dup (0) -31E4:0B38 00 db 0 ; xref 273F:0AFE -31E4:0B39 00A5[00] db 165 dup (0) -31E4:0BDE 00 data_599 db 0 ; xref 273F:09ED -31E4:0BDF 0048[00] db 72 dup (0) -31E4:0C27 00 data_600 db 0 -31E4:0C28 00B6[00] db 182 dup (0) -31E4:0CDE 00 data_601 db 0 ; xref 273F:09F3 -31E4:0CDF 00B3[00] db 179 dup (0) - -31E4:0D92 0010[00] room_layers dw 8 dup (0) ; Resource Ids for layers in room display - -31E4:0DA2 0000 rectangle_size dw 0 -31E4:0DA4 00 num_occupied_rects db 0 -31E4:0DA5 00 current_layer db 0 -31E4:0DA6 0000 rect_x_start dw 0 -31E4:0DA8 0000 rect_y_end dw 0 -31E4:0DAA 0000 num_horiz_rects dw 0 -31E4:0DAC 0000 num_vert_rects dw 0 - -31E4:0DAE 00 00 db 0, 0 -31E4:0DB0 A000 screen_start_seg dw 0A000h ; I think these two are used for page -31E4:0DB2 A200 screen_start_seg2 dw 0A200h ; swapping for writing to a back buffer - -31E4:0DB4 00 talk_dialog_close_flag db 0 - -31E4:0DB5 processed_vga_palette db 300h dup (0) ; Holds processed VGA palette - -31E4:10B5 4C 6F 6F 6B 20 61 look_at_str db 'Look at ', 0 ; xref 273F:136B -31E4:10BB 74 20 00 -31E4:10BE 0000 num_impinging_chars dw 0 -31E4:10C0 0026[00] impinging_char_list db 38 dup (0) - -31E4:10E6 0000 char_rect_left dw 0 -31E4:10E8 0000 char_rect_right dw 0 -31E4:10EA 0000 char_rect_top dw 0 -31E4:10EC 0000 char_rect_bottom dw 0 -31E4:10EE 0000 pl_check_result dw 0 -31E4:10F0 00 animation_table2 db 0 ; xref 273F:1556, 273F:1598 - ; 273F:15C3 -31E4:10F1 00BF[00] db 198 dup (0) -31E4:11B0 0000 data_11b0 db 0 -31E4:11B1 000F[00] db 15 dup (0) -31E4:11C0 0021 talk_dialog_top dw 21h -31E4:11C2 0027 talk_dialog_left dw 27h -31E4:11C4 0000 talk_dialog_width dw 0 -31E4:11C6 0000 talk_dialog_height dw 0 -31E4:11C8 0008[00] db 8 dup (0) - -31E4:11D0 03 menubar_state db 3 -31E4:11D1 0000 mouse_x dw 0 -31E4:11D3 0000 mouse_y dw 0 -31E4:11D5 00 mouse_buttons db 0 -31E4:11D6 0000 mouse_x2 dw 0 -31E4:11D8 0000 mouse_y2 dw 0 -31E4:11DA 00 mouse_buttons2 db 0 -31E4:11DB 0000 char_dest_x dw 0 -31E4:11DD 0000 char_dest_y dw 0 -31E4:11DF 0000 cursor_centroid dw 0 -31E4:11E1 0000 cursor_index dw 0 -31E4:11E3 00 cursor_index_new db 0 -31E4:11E4 0000 hotspot_name_id2 dw 0 -31E4:11E6 0000 hotspot_name_id dw 0 -31E4:11E8 0000 data_638 dw 0 ; xref 273F:2118, 273F:2AD2 - ; 273F:2B31 -31E4:11EA 00 data_639 db 0 ; xref 273F:2B21 -31E4:11EB 00 db 0 -31E4:11EC 0000 data_640 dw 0 ; xref 273F:2123, 273F:2AF7 -31E4:11EE 00 data_641 db 0 ; xref 273F:2B61 -31E4:11EF 00BF[00] db 191 dup (0) -31E4:12AE 00 data_642 db 0 ; xref 273F:211B, 273F:2149 -31E4:12AF 0074[00] db 116 dup (0) -31E4:1323 0016[00] db 22 dup (0) -31E4:1339 001F[00] db 31 dup (0) -31E4:1358 0028[00] db 40 dup (0) - -31E4:1380 13C2 support_data_offset_list dw 13C2h -31E4:1382 BB95 dw 0BB95h -31E4:1384 3617 dw 3617h -31E4:1386 365B dw 365Bh -31E4:1388 7135 dw 7135h -31E4:138A 7AF5 dw 7AF5h -31E4:138C 7ACB dw 7ACBh -31E4:138E 7DF9 dw 7DF9h -31E4:1390 7DA8 dw 7DA8h -31E4:1392 785C dw 785Ch -31E4:1394 7248 dw 7248h -31E4:1396 726E dw 726Eh -31E4:1398 728A dw 728Ah -31E4:139A 709E dw 709Eh -31E4:139C 3661 dw 3661h -31E4:139E 6F4F dw 6F4Fh -31E4:13A0 6F77 dw 6F77h -31E4:13A2 6F9F dw 6F9Fh -31E4:13A4 0000 dw 0 - -31E4:13A6 00 00 22 db 00h, 00h, 22h -31E4:13A9 79 4A 79 72 79 00 db 79h, 4Ah, 79h, 72h, 79h, 00h -31E4:13AF 00 00 00 2B 6F A6 db 00h, 00h, 00h, 2Bh, 6Fh,0A6h -31E4:13B5 77 00 77 36 77 60 db 77h, 00h, 77h, 36h, 77h, 60h -31E4:13BB 77 98 79 BD 7A 5D db 77h, 98h, 79h,0BDh, 7Ah, 5Dh -31E4:13C1 7A 20 00 1F 00 00 db 7Ah, 20h, 00h, 1Fh, 00h, 00h -31E4:13C7 00 FA 7E db 00h,0FAh, 7Eh - - -31E4:13CA 13D2 hotspot_dealloc_table: dw offset dealloc_hotspot_list_1 -31E4:13CC 13E2 dw offset dealloc_hotspot_list_2 -31E4:13CE 13F4 dw offset dealloc_hotspot_list_3 -31E4:13D0 13F2 dw offset dealloc_hotspot_list_4 - -31E4:13D2 13F2 dealloc_hotspot_list_1: dw 13F2h -31E4:13D4 0418 2711 2712 040D dw 0418h, 2711h, 2712h, 040Dh -31E4:13DA 03EA 0411 0000 dw 03EAh, 0411h, 0 - -31E4:13E2 2729 dealloc_hotspot_list_2: dw 2729h -31E4:13E4 272A 272B 272C 272D dw 272Ah, 272Bh, 272Ch, 272Eh -31E4:13EC 272E 272F 0000 dw 272Eh, 272Fh, 0 - -31E4:13F2 03EF dealloc_hotspot_list_4: dw 03EFh -31E4:13F4 03E9 dealloc_hotspot_list_3: dw 03E9h -31E4:13F6 03EB 03EC 03ED 03EE dw 03EBh, 03ECh, 03EDh, 03EEh -31E4:13FE 03F0 03F1 0420 0429 dw 03F0h, 03F1h, 0420h, 0429h -31E4:1406 0436 2715 2716 2717 dw 0436h, 2715h, 2716h, 2717h -31E4:140E 2718 2719 271A 271E dw 2718h, 2719h, 271Ah, 271Eh -31E4:1416 271F 2720 2721 2722 dw 271Fh, 2720h, 2721h, 2722h -31E4:141E 2725 2726 0000 dw 2725h, 2726h, 0 - -31E4:1424 000C[00] db 12 dup (0) - -31E4:1430 10 58 BF 5C A0 58 db 10h, 58h,0BFh, 5Ch,0A0h, 58h -31E4:1436 C4 58 CD db 0C4h, 58h,0CDh -31E4:1439 58 34 58 db 58h, 34h, 58h - -31E4:143C 0008[00] db 8 dup (0) - -31E4:1444 79 00 59 00 04 06 ega_unknown_rec db 79h, 00h, 59h, 00h, 04h, 06h -31E4:144A 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:1450 DC E2 DC FF E3 E2 vga_unknown_rec db 0DCh,0E2h,0DCh,0FFh,0E3h,0E2h - -31E4:1456 FF current_room_num db 0FFh -31E4:1457 00 unprocessed_vga_palette db 0 -31E4:1458 00 00 00 00 00 34 db 00h, 00h, 00h, 00h, 00h, 34h -31E4:145E 34 2C 18 10 2C 24 db 34h, 2Ch, 18h, 10h, 2Ch, 24h -31E4:1464 24 18 18 18 18 10 db 24h, 18h, 18h, 18h, 18h, 10h -31E4:146A 10 10 08 08 08 3C db 10h, 10h, 08h, 08h, 08h, 3Ch -31E4:1470 2C 18 34 08 00 34 db 2Ch, 18h, 34h, 08h, 00h, 34h -31E4:1476 24 18 2C 18 10 24 db 24h, 18h, 2Ch, 18h, 10h, 24h -31E4:147C 10 08 18 08 00 10 db 10h, 08h, 18h, 08h, 00h, 10h -31E4:1482 00 00 3C 30 20 26 db 00h, 00h, 3Ch, 30h, 20h, 26h -31E4:1484 24 22 24 21 20 20 db 24h, 22h, 24h, 21h, 20h, 20h -31E4:148E 1E 1C 1E 1B 1A 1A db 1Eh, 1Ch, 1Eh, 1Bh, 1Ah, 1Ah -31E4:1494 17 16 16 14 12 14 db 17h, 16h, 16h, 14h, 12h, 14h -31E4:149A 12 10 12 10 0E 10 db 12h, 10h, 12h, 10h, 0Eh, 10h -31E4:14A0 0E 0C 0E 0C 0A 0C db 0Eh, 0Ch, 0Eh, 0Ch, 0Ah, 0Ch -31E4:14A6 0A 09 0A 08 07 db 0Ah, 09h, 0Ah, 08h, 07h -31E4:14AB 000C[00] db 12 dup (0) -31E4:14B7 3F 2D 1B 39 28 19 db 3Fh, 2Dh, 1Bh, 39h, 28h, 19h -31E4:14BD 34 22 17 30 1E 13 db 34h, 22h, 17h, 30h, 1Eh, 13h -31E4:14C3 2C 1A 0F 28 17 0B db 2Ch, 1Ah, 0Fh, 28h, 17h, 0Bh -31E4:14C9 25 15 08 22 12 05 db 25h, 15h, 08h, 22h, 12h, 05h -31E4:14CF 1F 10 03 1B 0E 01 db 1Fh, 10h, 03h, 1Bh, 0Eh, 01h -31E4:14D5 18 0C 00 16 0B 00 db 18h, 0Ch, 00h, 16h, 0Bh, 00h -31E4:14DB 13 09 00 11 08 00 db 13h, 09h, 00h, 11h, 08h, 00h -31E4:14E1 0F 07 00 0C 06 db 0Fh, 07h, 00h, 0Ch, 06h -31E4:14E6 00F4[00] db 244 dup (0) -31E4:15DA 00 unprocessed_vga_palette2 db 0 ; xref 273F:3AB3 -31E4:15DB 00 00 2E 2C 28 0E db 00h, 00h, 2Eh, 2Ch, 28h, 0Eh -31E4:15E1 0E 14 24 23 20 1B db 0Eh, 14h, 24h, 23h, 20h, 1Bh -31E4:15E7 1A 17 12 11 0F 0A db 1Ah, 17h, 12h, 11h, 0Fh, 0Ah -31E4:15ED 0A 10 10 12 1A 37 db 0Ah, 10h, 10h, 12h, 1Ah, 37h -31E4:15F3 24 1B 30 20 18 28 db 24h, 1Bh, 30h, 20h, 18h, 28h -31E4:15F9 18 10 20 10 08 18 db 18h, 10h, 20h, 10h, 08h, 18h -31E4:15FF 08 db 8 -31E4:1600 00 db 0 -31E4:1601 10 00 00 13 14 1E db 10h, 00h, 00h, 13h, 14h, 1Eh -31E4:1607 00 00 00 3F 2A 20 db 00h, 00h, 00h, 3Fh, 2Ah, 20h -31E4:160D 1C 18 0C 24 20 20 db 1Ch, 18h, 0Ch, 24h, 20h, 20h -31E4:1613 1C 18 18 14 10 10 db 1Ch, 18h, 18h, 14h, 10h, 10h -31E4:1619 0C 08 08 0A 09 04 db 0Ch, 08h, 08h, 0Ah, 09h, 04h -31E4:161F 10 12 08 30 20 18 db 10h, 12h, 08h, 30h, 20h, 18h -31E4:1625 28 18 10 20 10 08 db 28h, 18h, 10h, 20h, 10h, 08h -31E4:162B 18 08 00 10 00 00 db 18h, 08h, 00h, 10h, 00h, 00h -31E4:1631 10 0E 05 00 00 00 db 10h, 0Eh, 05h, 00h, 00h, 00h -31E4:1637 2F 2B 2B 34 26 1A db 2Fh, 2Bh, 2Bh, 34h, 26h, 1Ah -31E4:163D 26 21 21 1C 18 18 db 26h, 21h, 21h, 1Ch, 18h, 18h -31E4:1643 14 10 10 0C 08 08 db 14h, 10h, 10h, 0Ch, 08h, 08h -31E4:1649 08 0C 00 28 08 00 db 08h, 0Ch, 00h, 28h, 08h, 00h -31E4:164F 30 20 18 28 18 10 db 30h, 20h, 18h, 28h, 18h, 10h -31E4:1655 20 10 08 18 08 00 db 20h, 10h, 08h, 18h, 08h, 00h -31E4:165B 10 00 00 14 18 db 10h, 00h, 00h, 14h, 18h -31E4:1660 008B[00] db 139 dup (0) -31E4:16EB unprocessed_vga_palette3 db 0Eh, 0Bh, 08h, 10h, 08h, 00h -31E4:16F1 14 0C 04 18 10 08 db 14h, 0Ch, 04h, 18h, 10h, 08h -31E4:16F7 1C 14 0C 20 18 10 db 1Ch, 14h, 0Ch, 20h, 18h, 10h -31E4:16FD 1F 1F 1F db 1Fh, 1Fh, 1Fh -31E4:1700 3F 3F 3F db 3Fh, 3Fh, 3Fh -31E4:1703 0024[00] db 36 dup (0) - -31E4:1727 upper_vga_palette db 0Dh, 09h, 04h ; colours for pallete - db 12h, 0Dh, 06h ; entries #F0h - FFh - db 17h, 10h, 09h - db 1Ch, 15h, 0Dh - db 21h, 19h, 10h - db 26h, 1Eh, 15h - db 2Ch, 23h, 1Ah - db 3Fh, 30h, 00h - db 22h, 22h, 2Bh - db 16h, 17h, 25h - db 0Dh, 0Dh, 20h - db 05h, 06h, 1Bh - db 00h, 00h, 16h - db 1Fh, 1Fh, 1Fh - db 00h, 00h, 00h - db 3Fh, 3Fh, 3Fh - -31E4:1757 00 replacement_vga_palette db 0 ; Replacement section of VGA palette -31E4:1758 00 00 2E 2C 28 0E db 00h, 00h, 2Eh, 2Ch, 28h, 0Eh -31E4:175E 0E 14 24 23 20 1B db 0Eh, 14h, 24h, 23h, 20h, 1Bh -31E4:1764 1A 17 12 11 0F 0A db 1Ah, 17h, 12h, 11h, 0Fh, 0Ah -31E4:176A 0A 10 10 12 1A 37 db 0Ah, 10h, 10h, 12h, 1Ah, 37h -31E4:1770 24 1B 30 20 18 28 db 24h, 1Bh, 30h, 20h, 18h, 28h -31E4:1776 18 10 20 10 08 18 db 18h, 10h, 20h, 10h, 08h, 18h -31E4:177C 08 00 10 00 00 13 db 08h, 00h, 10h, 00h, 00h, 13h -31E4:1782 14 1E 00 00 00 3F db 14h, 1Eh, 00h, 00h, 00h, 3Fh -31E4:1788 2A 20 1C 18 0C 24 db 2Ah, 20h, 1Ch, 18h, 0Ch, 24h -31E4:178E 20 20 1C 18 18 14 db 20h, 20h, 1Ch, 18h, 18h, 14h -31E4:1794 10 10 0C 08 08 0A db 10h, 10h, 0Ch, 08h, 08h, 0Ah -31E4:179A 09 04 10 12 08 30 db 09h, 04h, 10h, 12h, 08h, 30h -31E4:17A0 20 18 28 18 10 20 db 20h, 18h, 28h, 18h, 10h, 20h -31E4:17A6 10 08 18 08 00 10 db 10h, 08h, 18h, 08h, 00h, 10h -31E4:17AC 00 00 10 0E 05 00 db 00h, 00h, 10h, 0Eh, 05h, 00h -31E4:17B2 00 00 2F 2B 2B 34 db 00h, 00h, 2Fh, 2Bh, 2Bh, 34h -31E4:17B8 26 1A 26 21 21 1C db 26h, 1Ah, 26h, 21h, 21h, 1Ch -31E4:17BE 18 18 14 10 10 0C db 18h, 18h, 14h, 10h, 10h, 0Ch -31E4:17C4 08 08 08 0C 00 28 db 08h, 08h, 08h, 0Ch, 00h, 28h -31E4:17CA 08 00 30 20 18 28 db 08h, 00h, 30h, 20h, 18h, 28h -31E4:17D0 18 10 20 10 08 18 db 18h, 10h, 20h, 10h, 08h, 18h -31E4:17D6 08 00 10 00 00 14 db 08h, 00h, 10h, 00h, 00h, 14h -31E4:17DC 18 00 00 00 00 32 db 18h, 00h, 00h, 00h, 00h, 32h -31E4:17E2 20 1F 2A 1A 18 22 db 20h, 1Fh, 2Ah, 1Ah, 18h, 22h -31E4:17E8 14 12 1A 0F 0D 12 db 14h, 12h, 1Ah, 0Fh, 0Dh, 12h -31E4:17EE 0A 08 2F 04 00 26 db 0Ah, 08h, 2Fh, 04h, 00h, 26h -31E4:17F4 00 1D 1C 00 16 12 db 00h, 1Dh, 1Ch, 00h, 16h, 12h -31E4:17FA 00 0E 37 2A 00 2C db 00h, 0Eh, 37h, 2Ah, 00h, 2Ch -31E4:1800 21 00 22 19 00 18 db 21h, 00h, 22h, 19h, 00h, 18h -31E4:1806 11 00 0E 0A 00 db 11h, 00h, 0Eh, 0Ah, 00h -31E4:180B 0E replacement_vga_ palette2 db 0Eh -31E4:180C 0B 08 10 08 00 14 db 0Bh, 08h, 10h, 08h, 00h, 14h -31E4:1812 0C 04 18 10 08 1C db 0Ch, 04h, 18h, 10h, 08h, 1Ch -31E4:1818 14 0C 20 18 10 1F db 14h, 0Ch, 20h, 18h, 10h, 1Fh -31E4:181E 1F 1F db 1Fh, 1Fh -31E4:1820 3F 3F 3F db 3Fh, 3Fh, 3Fh - -31E4:1823 000D[00] db 13 dup (0) - -31E4:1830 413A animation_rec_1 dw 413Ah ; Disk resource Id -31E4:1832 12 00 00 00 db 12h, 00h, 00h, 00h -31E4:1836 00 00 00 db 00h, 00h, 00h -31E4:1839 413C animation_rec_2 dw 413Ch -31E4:183B 12 00 00 00 db 12h, 00h, 00h, 00h -31E4:183F 00 00 00 db 00h, 00h, 00h -31E4:1842 413B animation_rec_3 dw 413Bh -31E4:1844 12 00 00 00 db 12h, 00h, 00h, 00h -31E4:1848 00 00 00 db 00h, 00h, 00h - -31E4:184B 7901 animation_rec_4 dw 7901h -31E4:184D 12 db 12h -31E4:184E 0000 dw 0 - -31E4:1850 00 00 00 00 anim_src_table db 0, 0, 0, 0 -31E4:1854 00 cp_num_digits db 0 -31E4:1855 00 cp_num_tries db 0 -31E4:1856 3D0F cp_proc dw offset cp_proc_1 - -; Remaining entries of anim_src_table - -31E4:1858 E8 00 E0 00 20 00 30 00 -31E4:185E 30 00 33 01 E0 00 20 00 -31E4:1866 30 00 B9 00 A8 00 D0 00 -31E4:186E 28 00 0A 01 28 01 10 00 -31E4:1876 08 00 11 01 28 01 10 00 -31E4:187E 08 00 24 01 28 01 10 00 -31E4:1886 08 00 2B 01 28 01 10 00 -31E4:188E 08 00 F6 00 18 01 30 00 -31E4:1896 0E 00 28 01 18 01 30 00 - -31e4:189E 0E 00 dw 0E00h - -; The table below contains the offset for the code fragments to handle each of -; the possible opcodes in the simple instruction interpreter used by the game - -31E4:18A0 3F9F sequence_table dw offset sequence_restore_sp ; 00/01h opcode -31E4:18A2 3E72 dw offset sequence_add ; 02/03h opcode -31E4:18A4 3E7C dw offset sequence_subtract ; 04/05h opcode -31E4:18A6 3E86 dw offset sequence_multiply ; 06/07h opcode -31E4:18A8 3E92 dw offset sequence_divide ; 08/09h opcode -31E4:18AA 3EA0 dw offset sequence_not_equals ; 05h opcode -31E4:18AC 3EBA dw offset sequence_equals ; 06h opcode -31E4:18AE 3EC3 dw offset sequence_greater ; 0E/0Fh opcode -31E4:18B0 3ECC dw offset sequence_smaller ; 10/11h opcode -31E4:18B2 3ED5 dw offset sequence_smaller2 ; 12/13h opcode -31E4:18B4 3EDE dw offset sequence_greater2 ; 14/15h opcode -31E4:18B6 3EE7 dw offset sequence_and ; 16/17h opcode -31E4:18B8 3EF2 dw offset sequence_or ; 18/19h opcode -31E4:18BA 3EFD dw offset sequence_logical_and ; 1A/1Bh opcode -31E4:18BC 3F0C dw offset sequence_logical_or ; 1C/1Dh opcode -31E4:18BE 3F1B dw offset sequence_get_field ; 1E/1Fh opcode -31E4:18C0 3F2D dw offset sequence_set_field ; 20/21h opcode -31E4:18C2 3F46 dw offset sequence_push_value ; 22/23h opcode -31E4:18C4 3F4E dw offset sequence_subroutine ; 24/25h opcode -31E4:18C6 3F58 dw offset sequence_call_method ; 26/27h opcode -31E4:18C8 3F9E dw offset sequence_end ; 28/29h opcode -31E4:18CA 3F90 dw offset sequence_cond_jump ; 2A/2Bh opcode -31E4:18CC 3F99 dw offset sequence_jump ; 2C/2Dh opcode -31E4:18CE 3F9F dw offset sequence_restore_sp ; 2E/2Fh opcode -31E4:18D0 3F9F dw offset sequence_restore_sp ; 30/31h opcode -31E4:18D2 3F3F dw offset sequence_random ; 32/33h opcode - -31E4:18D4 003C[00] db 60 dup (0) -31E4:1910 0000 current_sp dw 0 - -31E4:1912 000E[00] db 14 dup (0) - -31E4:1920 0000 room_exit_hotspot_id dw 0 -31E4:1922 0000 dest_room_num dw 0 -31E4:1924 0000 hotspot_id dw 0 -31E4:1926 00 data_669 db 0 ; xref 273F:47F3, 273F:4829 - ; 273F:A00C -31E4:1927 0000 active_animation_offset dw 0 - -31E4:1929 96 00 24 81 exit_coord_list db 96h, 00h, 24h, 81h -31E4:192D 02 00 00 db 02h, 00h, 00h -31E4:1930 0051[00] db 81 dup (0) - -31E4:1981 E3 00 DA 80 01 00 db 0E3h, 00h,0DAh, 80h, 01h, 00h -31E4:1987 44 01 DA 00 03 00 db 44h, 01h,0DAh, 00h, 03h, 00h -31E4:198D BA 01 FC 00 05 00 db 0BAh, 01h,0FCh, 00h, 05h, 00h -31E4:1993 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:1999 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:199F 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:19A5 00 00 06 06 db 0, 0, 6, 6 -31E4:19A9 0018[0C] db 24 dup (0Ch) -31E4:19C1 00 00 00 00 00 0C db 00h, 00h, 00h, 00h, 00h, 0Ch -31E4:19C7 0012[00] db 18 dup (0) -31E4:19D9 80 00 1B 01 02 00 db 80h, 00h, 1Bh, 01h, 02h, 00h -31E4:19DF B8 01 1B 01 04 db 0B8h, 01h, 1Bh, 01h, 04h -31E4:19E4 001C[00] db 28 dup (0) -31E4:1A00 06 db 6 -31E4:1A01 0030[00] db 48 dup (0) -31E4:1A31 52 01 3C 01 03 db 52h, 01h, 3Ch, 01h, 03h -31E4:1A36 0053[00] db 83 dup (0) -31E4:1A89 3A 01 DD 00 06 00 db 3Ah, 01h,0DDh, 00h, 06h, 00h -31E4:1A8F AA 01 0B 81 28 00 db 0AAh, 01h, 0Bh, 81h, 28h, 00h -31E4:1A95 00 db 00h -31E4:1A96 003C[00] db 60 dup (0) -31E4:1AD2 06 06 06 06 db 6, 6, 6, 6 -31E4:1AD6 000B[00] db 11 dup (0) -31E4:1AE1 AA 01 0B 01 05 00 db 0AAh, 01h, 0Bh, 01h, 05h, 00h -31E4:1AE7 83 00 0B 01 db 83h, 00h, 0Bh, 01h -31E4:1AEB 29 db 29h -31E4:1AEC 0041[00] db 65 dup (0) -31E4:1B2D 06 db 6 -31E4:1B2E 000B[00] db 11 dup (0) -31E4:1B39 9A 00 0A 01 08 db 9Ah, 00h, 0Ah, 01h, 08h -31E4:1B3E 0053[00] db 83 dup (0) -31E4:1B91 17 01 4B 01 07 00 db 17h, 01h, 4Bh, 01h, 07h, 00h -31E4:1B97 F2 00 FC 00 db 0F2h, 00h,0FCh, 00h -31E4:1B9B 09 db 9 -31E4:1B9C 0021[00] db 33 dup (0) -31E4:1BBD 0018[06] db 24 dup (6) -31E4:1BD5 00 06 06 06 db 0, 6, 6, 6 -31E4:1BD9 0010[00] db 16 dup (0) -31E4:1BE9 52 01 44 01 08 00 db 52h, 01h, 44h, 01h, 08h, 00h -31E4:1BEF 81 00 19 01 0A 00 db 81h, 00h, 19h, 01h, 0Ah, 00h -31E4:1BF5 0021[00] db 33 dup (0) -31E4:1C16 0017[06] db 23 dup (6) -31E4:1C2D 00 06 06 06 db 0, 6, 6, 6 -31E4:1C31 0010[00] db 16 dup (0) -31E4:1C41 BF 01 09 01 09 00 db 0BFh, 01h, 09h, 01h, 09h, 00h -31E4:1C47 B8 00 4B 01 0B 00 db 0B8h, 00h, 4Bh, 01h, 0Bh, 00h -31E4:1C4D 7E 00 2B 01 0D 00 db 7Eh, 00h, 2Bh, 01h, 0Dh, 00h -31E4:1C53 02 01 03 81 22 00 db 02h, 01h, 03h, 81h, 22h, 00h -31E4:1C59 00 db 00h -31E4:1C5A 0015[00] db 21 dup (0) -31E4:1C6F 06 06 db 6, 6 -31E4:1C71 0C db 0Ch -31E4:1C72 0C 0C 0C 0C 0C 0C data_691 db 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch ; xref 31E4:726C -31E4:1C78 0C -31E4:1C79 0C 0C 0C 0C db 0Ch, 0Ch, 0Ch, 0Ch -31E4:1C7D 0C data_692 db 0Ch ; Data table (indexed access) -31E4:1C7E 0C 0C 0C 0C 0C 0C db 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch -31E4:1C84 06 00 12 db 06h, 00h, 12h -31E4:1C87 0C 0C db 0Ch, 0Ch -31E4:1C89 0010[00] db 16 dup (0) -31E4:1C99 F2 00 FC 00 0A 00 db 0F2h, 00h,0FCh, 00h, 0Ah, 00h -31E4:1C9F 0C 01 4B 01 1B 00 db 0Ch, 01h, 4Bh, 01h, 1Bh, 00h -31E4:1CA5 0023[00] db 35 dup (0) -31E4:1CC8 06 db 6 -31E4:1CC9 000D[00] db 13 dup (0) -31E4:1CD6 06 00 00 00 00 00 db 6, 0, 0, 0, 0, 0 -31E4:1CDC 06 00 00 db 6, 0, 0 -31E4:1CDF 0012[00] db 18 dup (0) -31E4:1CF1 05 01 C4 00 14 00 db 05h, 01h,0C4h, 00h, 14h, 00h -31E4:1CF7 6B 01 2C 01 1B 00 db 6Bh, 01h, 2Ch, 01h, 1Bh, 00h -31E4:1CFD A5 00 D4 80 20 00 db 0A5h, 00h,0D4h, 80h, 20h, 00h -31E4:1D03 0018[00] db 24 dup (0) -31E4:1D1B 06 06 06 06 06 db 6, 6, 6, 6, 6 -31E4:1D20 000F[00] db 15 dup (0) -31E4:1D2F 06 00 00 00 00 0C db 06h, 00h, 00h, 00h, 00h, 0Ch -31E4:1D35 00 06 00 00 db 00h, 06h, 00h, 00h -31E4:1D39 0010[00] db 16 dup (0) -31E4:1D49 BF 01 26 01 0A 00 db 0BFh, 01h, 26h, 01h, 0Ah, 00h -31E4:1D4F 80 00 35 01 0E 00 db 80h, 00h, 35h, 01h, 0Eh, 00h -31E4:1D55 BC 00 43 01 14 00 db 0BCh, 00h, 43h, 01h, 14h, 00h -31E4:1D5B 001D[00] db 29 dup (0) -31E4:1D78 0C 00 06 06 06 0C db 0Ch, 00h, 06h, 06h, 06h, 0Ch -31E4:1D7E 0C 06 db 0Ch, 06h -31E4:1D80 0007[0C] db 7 dup (0Ch) -31E4:1D87 00 0C 0C 06 06 0C db 00h, 0Ch, 0Ch, 06h, 06h, 0Ch -31E4:1D8D 00 00 06 0C 00 db 00h, 00h, 06h, 0Ch, 00h -31E4:1D92 000F[00] db 15 dup (0) -31E4:1DA1 BF 01 10 01 0D 00 db 0BFh, 01h, 10h, 01h, 0Dh, 00h -31E4:1DA7 80 00 14 01 0F 00 db 80h, 00h, 14h, 01h, 0Fh, 00h -31E4:1DAD D2 00 46 01 13 00 db 0D2h, 00h, 46h, 01h, 13h, 00h -31E4:1DB3 F1 00 E8 80 1F 00 db 0F1h, 00h,0E8h, 80h, 1Fh, 00h -31E4:1DB9 001A[00] db 26 dup (0) -31E4:1DD3 06 06 0C 0C 0C 00 db 06h, 06h, 0Ch, 0Ch, 0Ch, 00h -31E4:1DD9 0C 0C 0C 0C 0C 0C db 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch -31E4:1DDF 00 0C 0C 0C 12 00 db 00h, 0Ch, 0Ch, 0Ch, 12h, 00h -31E4:1DE5 00 00 0C 00 db 00h, 00h, 0Ch, 00h -31E4:1DE9 0010[00] db 16 dup (0) -31E4:1DF9 BF 01 24 01 0E 00 db 0BFh, 01h, 24h, 01h, 0Eh, 00h -31E4:1DFF FA 00 46 01 11 00 db 0FAh, 00h, 46h, 01h, 11h, 00h -31E4:1E05 F4 00 F4 80 26 00 db 0F4h, 00h,0F4h, 80h, 26h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 415 - -31E4:1E0B 00 00 db 00h, 00h -31E4:1E0D 001F[00] db 31 dup (0) -31E4:1E2C 06 06 06 00 00 06 db 6, 6, 6, 0, 0, 6 -31E4:1E32 06 06 06 00 00 00 db 6, 6, 6, 0, 0, 0 -31E4:1E38 06 06 00 db 6, 6, 0 -31E4:1E3B 0007[00] db 7 dup (0) -31E4:1E42 0C 00 db 0Ch, 00h -31E4:1E44 000D[00] db 13 dup (0) -31E4:1E51 12 01 B4 00 0F 00 db 12h, 01h,0B4h, 00h, 0Fh, 00h -31E4:1E57 0C 01 46 01 11 00 db 0Ch, 01h, 46h, 01h, 11h, 00h -31E4:1E5D 0023[00] db 35 dup (0) -31E4:1E80 06 00 00 00 00 06 db 6, 0, 0, 0, 0, 6 -31E4:1E86 06 06 db 6, 6 -31E4:1E88 0007[06] db 7 dup (6) -31E4:1E8F 00 06 06 06 00 06 db 0, 6, 6, 6, 0, 6 -31E4:1E95 00 00 06 06 db 0, 0, 6, 6 -31E4:1E99 0010[00] db 16 dup (0) -31E4:1EA9 E1 00 EA 00 0F 00 db 0E1h, 00h,0EAh, 00h, 0Fh, 00h -31E4:1EAF B1 00 46 01 12 00 db 0B1h, 00h, 46h, 01h, 12h, 00h -31E4:1EB5 BF 01 30 01 13 00 db 0BFh, 01h, 30h, 01h, 13h, 00h -31E4:1EBB 80 00 32 01 15 00 db 80h, 00h, 32h, 01h, 15h, 00h -31E4:1EC1 4B 01 05 81 1D db 4Bh, 01h, 05h, 81h, 1Dh -31E4:1EC6 000D[00] db 13 dup (0) -31E4:1ED3 0008[0C] db 8 dup (0Ch) -31E4:1EDB 00 00 00 06 0C 0C db 00h, 00h, 00h, 06h, 0Ch, 0Ch -31E4:1EE1 12 12 06 06 0C 0C db 12h, 12h, 06h, 06h, 0Ch, 0Ch -31E4:1EE7 0C 06 18 0C 0C 0C db 0Ch, 06h, 18h, 0Ch, 0Ch, 0Ch -31E4:1EED 00 db 00h -31E4:1EEE 0C 0C 0C db 0Ch, 0Ch, 0Ch -31E4:1EF1 0010[00] db 16 dup (0) -31E4:1F01 48 01 DD 00 11 00 db 48h, 01h,0DDh, 00h, 11h, 00h -31E4:1F07 80 00 20 01 17 00 db 80h, 00h, 20h, 01h, 17h, 00h -31E4:1F0D BE 01 37 01 18 00 db 0BEh, 01h, 37h, 01h, 18h, 00h -31E4:1F13 02 01 EB 00 1C db 02h, 01h,0EBh, 00h, 1Ch -31E4:1F18 0022[00] db 34 dup (0) -31E4:1F3A 06 06 0C 0C 00 00 db 06h, 06h, 0Ch, 0Ch, 00h, 00h -31E4:1F40 12 00 db 12h, 00h -31E4:1F42 0017[00] db 23 dup (0) -31E4:1F59 0F 01 EE 00 0E 00 db 0Fh, 01h,0EEh, 00h, 0Eh, 00h -31E4:1F5F 80 00 1F 01 11 00 db 80h, 00h, 1Fh, 01h, 11h, 00h -31E4:1F65 BE 01 24 01 14 00 db 0BEh, 01h, 24h, 01h, 14h, 00h -31E4:1F6B D7 00 42 01 19 00 db 0D7h, 00h, 42h, 01h, 19h, 00h -31E4:1F71 72 01 EB 80 1E 00 db 72h, 01h,0EBh, 80h, 1Eh, 00h -31E4:1F77 9C 00 ED 00 db 9Ch, 00h,0EDh, 00h -31E4:1F7B 23 db 23h -31E4:1F7C 000C[00] db 12 dup (0) -31E4:1F88 0C 0C 00 00 06 06 db 0Ch, 0Ch, 00h, 00h, 06h, 06h -31E4:1F8E 06 00 0C 06 06 06 db 06h, 00h, 0Ch, 06h, 06h, 06h -31E4:1F94 12 12 0C 0C 06 06 db 12h, 12h, 0Ch, 0Ch, 06h, 06h -31E4:1F9A 18 00 0C 00 00 1E db 18h, 00h, 0Ch, 00h, 00h, 1Eh -31E4:1FA0 0C 00 db 0Ch, 00h -31E4:1FA2 000F[00] db 15 dup (0) -31E4:1FB1 D3 00 C0 00 0D 00 db 0D3h, 00h,0C0h, 00h, 0Dh, 00h -31E4:1FB7 80 00 18 01 13 00 db 80h, 00h, 18h, 01h, 13h, 00h -31E4:1FBD 66 01 41 01 0C 00 db 66h, 01h, 41h, 01h, 0Ch, 00h -31E4:1FC3 42 01 E2 80 24 00 db 42h, 01h,0E2h, 80h, 24h, 00h -31E4:1FC9 0017[00] db 23 dup (0) -31E4:1FE0 0C 00 00 06 06 06 db 0Ch, 00h, 00h, 06h, 06h, 06h -31E4:1FE6 0008[06] db 8 dup (6) -31E4:1FEE 0C 0C 06 06 06 00 db 0Ch, 0Ch, 06h, 06h, 06h, 00h -31E4:1FF4 0C 00 00 06 12 00 db 0Ch, 00h, 00h, 06h, 12h, 00h -31E4:1FFA 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 -31E4:2000 00 data_721 db 0 ; Data table (indexed access) -31E4:2001 0008[00] db 8 dup (0) -31E4:2009 A2 01 07 01 11 00 db 0A2h, 01h, 07h, 01h, 11h, 00h -31E4:200F 8F 00 03 01 16 00 db 8Fh, 00h, 03h, 01h, 16h, 00h -31E4:2015 00 db 00h -31E4:2016 002C[00] db 44 dup (0) -31E4:2042 06 06 db 6, 6 -31E4:2044 001D[00] db 29 dup (0) -31E4:2061 F2 00 FC 00 15 00 db 0F2h, 00h,0FCh, 00h, 15h, 00h -31E4:2067 14 01 4B 01 17 db 14h, 01h, 4Bh, 01h, 17h -31E4:206C 002A[00] db 42 dup (0) -31E4:2096 06 00 00 00 00 06 db 6, 0, 0, 0, 0, 6 -31E4:209C 06 06 00 00 06 db 6, 6, 0, 0, 6 -31E4:20A1 0018[00] db 24 dup (0) -31E4:20B9 A2 01 07 01 12 00 db 0A2h, 01h, 07h, 01h, 12h, 00h -31E4:20BF 8F 00 03 01 16 00 db 8Fh, 00h, 03h, 01h, 16h, 00h -31E4:20C5 00 db 00h -31E4:20C6 002B[00] db 43 dup (0) -31E4:20F1 06 06 db 6, 6 -31E4:20F3 001E[00] db 30 dup (0) -31E4:2111 A2 01 07 01 19 00 db 0A2h, 01h, 07h, 01h, 19h, 00h -31E4:2117 8F 00 03 01 12 db 8Fh, 00h, 03h, 01h, 12h -31E4:211C 0027[00] db 39 dup (0) -31E4:2143 06 06 06 06 00 00 db 6, 6, 6, 6, 0, 0 -31E4:2149 06 06 06 00 00 00 db 6, 6, 6, 0, 0, 0 -31E4:214F 00 06 06 00 db 0, 6, 6, 0 -31E4:2153 0016[00] db 22 dup (0) -31E4:2169 F2 00 FC 00 13 00 db 0F2h, 00h,0FCh, 00h, 13h, 00h -31E4:216F 14 01 4B 01 18 00 db 14h, 01h, 4Bh, 01h, 18h, 00h -31E4:2175 0029[00] db 41 dup (0) -31E4:219E 06 00 00 00 06 06 db 6, 0, 0, 0, 6, 6 -31E4:21A4 06 00 00 00 06 00 db 6, 0, 0, 0, 6, 0 -31E4:21AA 00 db 0 -31E4:21AB 0016[00] db 22 dup (0) -31E4:21C1 12 01 B4 00 14 00 db 12h, 01h,0B4h, 00h, 14h, 00h -31E4:21C7 14 01 46 01 db 14h, 01h, 46h, 01h -31E4:21CB 0C db 0Ch -31E4:21CC 0023[00] db 35 dup (0) -31E4:21EF 06 06 db 6, 6 -31E4:21F1 000E[00] db 14 dup (0) -31E4:21FF 06 00 00 00 00 06 db 6, 0, 0, 0, 0, 6 -31E4:2205 00 00 db 0, 0 -31E4:2207 0012[00] db 18 dup (0) -31E4:2219 A2 01 07 01 0B 00 db 0A2h, 01h, 07h, 01h, 0Bh, 00h -31E4:221F 8F 00 03 01 0C 00 db 8Fh, 00h, 03h, 01h, 0Ch, 00h -31E4:2225 0023[00] db 35 dup (0) -31E4:2248 06 00 00 00 06 06 db 6, 0, 0, 0, 6, 6 -31E4:224E 06 db 6 -31E4:224F 0008[06] db 8 dup (6) -31E4:2257 00 06 06 06 00 06 db 0, 6, 6, 6, 0, 6 -31E4:225D 00 00 06 06 db 0, 0, 6, 6 -31E4:2261 0010[00] db 16 dup (0) -31E4:2271 02 01 EE 00 12 db 02h, 01h,0EEh, 00h, 12h -31E4:2276 0053[00] db 83 dup (0) -31E4:22C9 9B 00 4A 81 11 00 db 9Bh, 00h, 4Ah, 81h, 11h, 00h -31E4:22CF 0052[00] db 82 dup (0) -31E4:2321 C3 00 3B 81 13 00 db 0C3h, 00h, 3Bh, 81h, 13h, 00h -31E4:2327 00 db 00h -31E4:2328 0051[00] db 81 dup (0) -31E4:2379 65 01 43 81 0E db 65h, 01h, 43h, 81h, 0Eh -31E4:237E 0053[00] db 83 dup (0) -31E4:23D1 AC 00 43 81 0C 00 db 0ACh, 00h, 43h, 81h, 0Ch, 00h -31E4:23D7 0042[00] db 66 dup (0) -31E4:2419 00 data_743 db 0 -31E4:241A 000F[00] db 15 dup (0) -31E4:2429 AC 00 43 01 0C 00 db 0ACh, 00h, 43h, 01h, 0Ch, 00h -31E4:242F 0052[00] db 82 dup (0) -31E4:2481 C3 00 34 81 0A 00 db 0C3h, 00h, 34h, 81h, 0Ah, 00h -31E4:2487 00 db 00h -31E4:2488 0051[00] db 81 dup (0) -31E4:24D9 4B 01 43 01 13 00 db 4Bh, 01h, 43h, 01h, 13h, 00h -31E4:24DF 0052[00] db 82 dup (0) -31E4:2531 80 00 04 81 14 00 db 80h, 00h, 04h, 81h, 14h, 00h -31E4:2537 00 db 00h -31E4:2538 0051[00] db 81 dup (0) -31E4:2589 AC 00 43 01 0C 00 db 0ACh, 00h, 43h, 01h, 0Ch, 00h -31E4:258F 0052[00] db 82 dup (0) -31E4:25E1 42 01 45 81 0F 00 db 42h, 01h, 45h, 81h, 0Fh, 00h -31E4:25E7 83 00 0B db 83h, 00h, 0Bh -31E4:25EA 41 27 db 41h, 27h -31E4:25EC 003F[00] db 63 dup (0) -31E4:262B 06 06 db 6, 6 -31E4:262D 000C[00] db 12 dup (0) -31E4:2639 AA 01 0B 81 26 00 db 0AAh, 01h, 0Bh, 81h, 26h, 00h -31E4:263F 83 00 0B 41 28 00 db 83h, 00h, 0Bh, 41h, 28h, 00h -31E4:2645 003F[00] db 63 dup (0) -31E4:2684 06 db 6 -31E4:2685 000C[00] db 12 dup (0) -31E4:2691 AA 01 0B 81 27 00 db 0AAh, 01h, 0Bh, 81h, 27h, 00h -31E4:2697 83 00 0B 41 29 00 db 83h, 00h, 0Bh, 41h, 29h, 00h -31E4:269D 0040[00] db 64 dup (0) -31E4:26DD 06 db 6 -31E4:26DE 000B[00] db 11 dup (0) -31E4:26E9 AA 01 0B 01 28 db 0AAh, 01h, 0Bh, 01h, 28h -31E4:26EE 0029[00] db 41 dup (0) -31E4:2717 0000 data_756 dw 0 ; Data table (indexed access) - ; xref 31E4:BD21 -31E4:2719 0028[00] db 40 dup (0) -31E4:2741 BB 01 2B 01 2B db 0BBh, 01h, 2Bh, 01h, 2Bh -31E4:2746 0053[00] db 83 dup (0) -31E4:2799 7A 00 12 01 2A 00 db 7Ah, 00h, 12h, 01h, 2Ah, 00h -31E4:279F BA 01 11 01 db 0BAh, 01h, 11h, 01h -31E4:27A3 2C db 2Ch -31E4:27A4 0044[00] db 68 dup (0) -31E4:27E8 06 06 06 06 06 00 db 06h, 06h, 06h, 06h, 06h, 00h -31E4:27EE 00 00 00 0C 01 48 db 00h, 00h, 00h, 0Ch, 01h, 48h -31E4:27F4 01 2B 00 D1 00 F4 db 01h, 2Bh, 00h,0D1h, 00h,0F4h -31E4:27FA 00 32 00 6C 01 DD db 00h, 32h, 00h, 6Ch, 01h,0DDh -31E4:2800 00 data_759 db 0 ; xref 31E4:1895 -31E4:2801 2D 00 00 db 2Dh, 00h, 00h -31E4:2804 003D[00] db 61 dup (0) -31E4:2841 0C 0C 00 0C 00 06 db 0Ch, 0Ch, 00h, 0Ch, 00h, 06h -31E4:2847 06 00 94 00 C1 00 db 06h, 00h, 94h, 00h,0C1h, 00h -31E4:284D 34 00 BF 01 C2 00 db 34h, 00h,0BFh, 01h,0C2h, 00h -31E4:2853 33 00 7F 00 30 01 db 33h, 00h, 7Fh, 00h, 30h, 01h -31E4:2859 2C 00 BF 01 23 01 db 2Ch, 00h,0BFh, 01h, 23h, 01h -31E4:285F 2E 00 00 db 2Eh, 00h, 00h -31E4:2862 0034[00] db 52 dup (0) -31E4:2896 0C 0C 0C 00 12 06 db 0Ch, 0Ch, 0Ch, 00h, 12h, 06h -31E4:289C 12 00 00 06 00 7F db 12h, 00h, 00h, 06h, 00h, 7Fh -31E4:28A2 00 C1 00 32 00 06 db 00h,0C1h, 00h, 32h, 00h, 06h -31E4:28A8 01 A8 00 2F 00 7F db 01h,0A8h, 00h, 2Fh, 00h, 7Fh -31E4:28AE 00 2F 01 2D 00 B1 db 00h, 2Fh, 01h, 2Dh, 00h,0B1h -31E4:28B4 01 34 01 db 01h, 34h, 01h -31E4:28B7 30 db 30h -31E4:28B8 0036[00] db 54 dup (0) -31E4:28EE 0C 0C 0C 0C 00 06 db 0Ch, 0Ch, 0Ch, 0Ch, 00h, 06h -31E4:28F4 12 12 00 00 00 BB db 12h, 12h, 00h, 00h, 00h,0BBh -31E4:28FA 01 3A 01 2E 00 00 db 01h, 3Ah, 01h, 2Eh, 00h, 00h -31E4:2900 0051[00] db 81 dup (0) -31E4:2951 8A 00 0A 01 2E db 8Ah, 00h, 0Ah, 01h, 2Eh -31E4:2956 0053[00] db 83 dup (0) -31E4:29A9 BB 01 3A 01 2E 00 db 0BBh, 01h, 3Ah, 01h, 2Eh, 00h -31E4:29AF 7F 00 33 01 01 db 7Fh, 00h, 33h, 01h, 01h -31E4:29B4 0019[00] db 25 dup (0) -31E4:29CD 06 db 6 -31E4:29CE 0033[00] db 51 dup (0) - -; The hotspot table contains a set of hotspot entries, each one being an Id -; following by four word parameters specifying the bounds of the hotspot; -; each coordinate being the position + 80h. The table is ended by an Id -; entry of 0 - -31E4:2A01 2716 hotspot_table dw 2716h ;Id - dw 99h, b8h, 112h, 147h ;xs,xe,ys,ye -.... table contents removed.... - -31E4:2D5C 0000 dw 0 ; End of list specifier -31E4:2D5E 00 db 0 - -31E4:2D5F actions_list dw 1 - db 1, 'Get', 0 -31E4:2D66 dw 0 - db 1, 'Drop', 0 -31E4:2D6E dw 3 - db 1, 'Push', 0 -31E4:2D76 dw 4 - db 1, 'Pull', 0 -31E4:2D7E dw 5 - db 1, 'Operate', 0 -31E4:2D89 dw 6 - db 1, 'Open', 0 -31E4:2D91 dw 7 - db 1, 'Close', 0 -31E4:2D9A dw 8 - db 1, 'Lock', 0 -31E4:2DA2 dw 9 - db 1, 'Unlock', 0 -31E4:2DAC dw 10 - db 1, 'Use', 0 -31E4:2DB3 dw 11 - db 1, 'Give', 0 -31E4:2DBB dw 12 - db 1, 'Talk to', 0 -31E4:2DC6 dw 13 - db 1, 'Tell', 0 -31E4:2DCE dw 14 - db 1, 'Buy', 0 -31E4:2DD5 dw 15 - db 1, 'Look', 0 -31E4:2DDD dw 16 - db 1, 'Look at', 0 -31E4:2DE8 dw 17 - db 1, 'Look through', 0 -31E4:2DF8 dw 18 - db 1, 'Ask', 0 -31E4:2DFF dw 0 - db 1, 'Eat', 0 -31E4:2E06 dw 20 - db 1, 'Drink', 0 -31E4:2E0F dw 21 - db 1, 'Status', 0 -31E4:2E19 dw 22 - db 1, 'Go to', 0 -31E4:2E22 dw 23 - db 1, 'Return', 0 -31E4:2E2C dw 24 - db 1, 'Bribe', 0 -31E4:2E35 dw 25 - db 1, 'Examine', 0 - -31E4:2E40 db 02h -31E4:2E41 db 1, 'and then', 0 -31E4:2E4B db 1, 'finish', 0 - -31E4:2E53 00 7D FF 7C db 00h, 7Dh,0FFh, 7Ch - -; This table contains a set of references of the room exit hotspots in -; the various rooms - it used by the NPC movement code -31E4:2E57 02 80 2712 room_exit_hotspots db 02h, 80h, 2712h -31E4:2E5B 01 80 2711 db 01h, 80h, 2711h -31E4:2E5F 11 80 2715 db 11h, 80h, 2715h -31E4:2E63 1D 80 2716 db 1Dh, 80h, 2716h -31E4:2E67 13 80 2717 db 13h, 80h, 2717h -31E4:2E6B 1E 80 2718 db 1Eh, 80h, 2718h -31E4:2E6F 0E 80 2719 db 0Eh, 80h, 2719h -31E4:2E73 1F 80 271A db 1Fh, 80h, 271Ah -31E4:2E77 0F 80 271E db 0Fh, 80h, 271Eh -31E4:2E7B 0C 80 271F db 0Ch, 80h, 271Fh -31E4:2E7F 20 80 2720 db 20h, 80h, 2720h -31E4:2E83 14 80 2721 db 14h, 80h, 2721h -31E4:2E87 24 80 2722 db 24h, 80h, 2722h -31E4:2E8B 0A 80 2725 db 0Ah, 80h, 2725h -31E4:2E8F 22 80 2726 db 22h, 80h, 2726h -31E4:2E93 26 80 2729 db 26h, 80h, 2729h -31E4:2E97 26 40 272A db 26h, 40h, 272Ah -31E4:2E9B 27 80 272B db 27h, 80h, 272Bh -31E4:2E9F 27 40 272C db 27h, 40h, 272Ch -31E4:2EA3 28 80 272D db 28h, 80h, 272Dh -31E4:2EA7 28 40 272C db 28h, 40h, 272Ch -31E4:2EAB 29 80 272D db 29h, 80h, 272Dh -31E4:2EAF 00 00 dw 0 - -; This table contains a set of rectangles indicating the main walkable areas -; of each room, and is used by the NPC code to choose random destinations for -; characters after bumping into each other - -31E4:2EB1 02 room_bounds_table db 02h -31E4:2EB2 01 51 01 1D 01 38 db 01h, 51h, 01h, 1Dh, 01h, 38h -31E4:2EB8 01 B2 00 6A 01 F9 db 01h,0B2h, 00h, 6Ah, 01h,0F9h -31E4:2EBE 00 12 01 C1 00 63 db 00h, 12h, 01h,0C1h, 00h, 63h -31E4:2EC4 01 12 01 2E 01 FF db 01h, 12h, 01h, 2Eh, 01h,0FFh -31E4:2ECA 00 7D 01 11 01 2E db 00h, 7Dh, 01h, 11h, 01h, 2Eh -31E4:2ED0 01 E2 00 53 01 02 db 01h,0E2h, 00h, 53h, 01h, 02h -31E4:2ED6 01 1B 01 D0 00 5F db 01h, 1Bh, 01h,0D0h, 00h, 5Fh -31E4:2EDC 01 1A 01 3F 01 D6 db 01h, 1Ah, 01h, 3Fh, 01h,0D6h -31E4:2EE2 00 69 01 F6 00 27 db 00h, 69h, 01h,0F6h, 00h, 27h -31E4:2EE8 01 B7 00 82 01 19 db 01h,0B7h, 00h, 82h, 01h, 19h -31E4:2EEE 01 41 01 A4 00 9F db 01h, 41h, 01h,0A4h, 00h, 9Fh -31E4:2EF4 01 1F 01 41 01 C6 db 01h, 1Fh, 01h, 41h, 01h,0C6h -31E4:2EFA 00 9F 01 FF 00 38 db 00h, 9Fh, 01h,0FFh, 00h, 38h -31E4:2F00 01 86 00 9F 01 07 db 01h, 86h, 00h, 9Fh, 01h, 07h -31E4:2F06 01 38 01 9C 00 9F db 01h, 38h, 01h, 9Ch, 00h, 9Fh -31E4:2F0C 01 0D 01 38 01 9C db 01h, 0Dh, 01h, 38h, 01h, 9Ch -31E4:2F12 00 9F 01 F7 db 00h, 9Fh, 01h,0F7h -31E4:2F16 00 db 0 -31E4:2F17 38 01 CF 00 70 01 db 38h, 01h,0CFh, 00h, 70h, 01h -31E4:2F1D EF 00 28 01 9C 00 db 0EFh, 00h, 28h, 01h, 9Ch, 00h -31E4:2F23 9F 01 0E 01 38 01 db 9Fh, 01h, 0Eh, 01h, 38h, 01h -31E4:2F29 A9 00 90 01 EE 00 db 0A9h, 00h, 90h, 01h,0EEh, 00h -31E4:2F2F 1D 01 DF 00 68 01 db 1Dh, 01h,0DFh, 00h, 68h, 01h -31E4:2F35 0F 01 38 01 C7 00 db 0Fh, 01h, 38h, 01h,0C7h, 00h -31E4:2F3B 78 01 01 01 38 01 db 78h, 01h, 01h, 01h, 38h, 01h -31E4:2F41 AF 00 87 01 08 01 db 0AFh, 00h, 87h, 01h, 08h, 01h -31E4:2F47 37 01 C4 00 60 01 db 37h, 01h,0C4h, 00h, 60h, 01h -31E4:2F4D EF 00 20 01 A0 00 db 0EFh, 00h, 20h, 01h,0A0h, 00h -31E4:2F53 3D 01 E9 00 3D 01 db 3Dh, 01h,0E9h, 00h, 3Dh, 01h -31E4:2F59 DA 00 7C 01 FC 00 db 0DAh, 00h, 7Ch, 01h,0FCh, 00h -31E4:2F5F 1A 01 db 1Ah, 01h - -; Room exits table - -31E4:2F61 0000 room_exits_table dw 0 -31E4:2F63 353D dw offset room1_exits -31E4:2F65 354D ... offset list -31E4:2F67 3579 -31E4:2F69 3597 -31E4:2F6B 2FE3 -31E4:2F6D 2FC5 -31E4:2F6F 35A7 -31E4:2F71 3501 -31E4:2F73 34E3 -31E4:2F75 34A9 -31E4:2F77 351F -31E4:2F79 347D -31E4:2F7B 3451 -31E4:2F7D 3417 -31E4:2F7F 33EB -31E4:2F81 33CD -31E4:2F83 3385 -31E4:2F85 334B -31E4:2F87 32F5 -31E4:2F89 32BB -31E4:2F8B 329D -31E4:2F8D 327F -31E4:2F8F 3261 -31E4:2F91 3243 -31E4:2F93 3225 -31E4:2F95 3207 -31E4:2F97 31E9 -31E4:2F99 31D9 -31E4:2F9B 31C9 -31E4:2F9D 31A9 -31E4:2F9F 31B9 -31E4:2FA1 3199 -31E4:2FA3 0000 -31E4:2FA5 313D -31E4:2FA7 30FF -31E4:2FA9 314D -31E4:2FAB 0000 -31E4:2FAD 315D -31E4:2FAF 317B -31E4:2FB1 311F -31E4:2FB3 310F -31E4:2FB5 30EF -31E4:2FB7 30D1 -31E4:2FB9 30A5 -31E4:2FBB 306B -31E4:2FBD 3031 -31E4:2FBF 3021 -31E4:2FC1 3001 -31E4:2FC3 3011 - -31E4:2FC5 91 01 BF 01 db 11h, 30h, 91h, 01h,0BFh, 01h -31E4:2FC9 CE 00 0E 01 0E 00 db 0CEh, 00h, 0Eh, 01h, 0Eh, 00h -31E4:2FCF 00 00 05 00 7F 00 db 00h, 00h, 05h, 00h, 7Fh, 00h -31E4:2FD5 AC 00 D0 00 0E 01 db 0ACh, 00h,0D0h, 00h, 0Eh, 01h -31E4:2FDB 0D 00 00 00 29 00 db 0Dh, 00h, 00h, 00h, 29h, 00h -31E4:2FE1 00 00 36 01 56 01 db 00h, 00h, 36h, 01h, 56h, 01h -31E4:2FE7 C6 00 FA 00 0B 00 db 0C6h, 00h,0FAh, 00h, 0Bh, 00h -31E4:2FED 00 00 06 00 91 01 db 00h, 00h, 06h, 00h, 91h, 01h -31E4:2FF3 BF 01 CE 00 0E 01 db 0BFh, 01h,0CEh, 00h, 0Eh, 01h -31E4:2FF9 0E 00 2F 27 28 00 db 0Eh, 00h, 2Fh, 27h, 28h, 00h -31E4:2FFF 00 00 77 00 C3 00 db 00h, 00h, 77h, 00h,0C3h, 00h -31E4:3005 CF 00 15 01 0D 00 db 0CFh, 00h, 15h, 01h, 0Dh, 00h -31E4:300B 00 00 2E 00 00 00 db 00h, 00h, 2Eh, 00h, 00h, 00h -31E4:3011 7F 00 9B 00 EC 00 db 7Fh, 00h, 9Bh, 00h,0ECh, 00h -31E4:3017 3E 01 0D 00 00 00 db 3Eh, 01h, 0Dh, 00h, 00h, 00h -31E4:301D 01 00 00 00 AA 01 db 01h, 00h, 00h, 00h,0AAh, 01h -31E4:3023 C2 01 D7 00 3E 01 db 0C2h, 01h,0D7h, 00h, 3Eh, 01h -31E4:3029 0E 00 00 00 2E 00 db 0Eh, 00h, 00h, 00h, 2Eh, 00h -31E4:302F 00 00 7F 00 94 00 db 00h, 00h, 7Fh, 00h, 94h, 00h -31E4:3035 87 00 C8 00 0D 00 db 87h, 00h,0C8h, 00h, 0Dh, 00h -31E4:303B 00 00 32 00 00 01 db 00h, 00h, 32h, 00h, 00h, 01h -31E4:3041 22 01 7F 00 C1 00 db 22h, 01h, 7Fh, 00h,0C1h, 00h -31E4:3047 0B 00 00 00 2F 00 db 0Bh, 00h, 00h, 00h, 2Fh, 00h - -31E4:304D 7F 00 94 00 F5 00 db 7Fh, 00h, 94h, 00h,0F5h, 00h -31E4:3053 47 01 0D 00 00 00 db 47h, 01h, 0Dh, 00h, 00h, 00h -31E4:3059 2D 00 7F 01 96 01 db 2Dh, 00h, 7Fh, 01h, 96h, 01h -31E4:305F F4 00 3D 01 0E 00 db 0F4h, 00h, 3Dh, 01h, 0Eh, 00h -31E4:3065 00 00 30 00 00 00 db 00h, 00h, 30h, 00h, 00h, 00h -31E4:306B 7D 00 C7 00 87 00 db 7Dh, 00h,0C7h, 00h, 87h, 00h -31E4:3071 CD 00 0D 00 00 00 db 0CDh, 00h, 0Dh, 00h, 00h, 00h -31E4:3077 34 00 AB 01 BF 01 db 34h, 00h,0ABh, 01h,0BFh, 01h -31E4:307D 87 00 CD 00 0E 00 db 87h, 00h,0CDh, 00h, 0Eh, 00h -31E4:3083 00 00 33 00 7D 00 db 00h, 00h, 33h, 00h, 7Dh, 00h -31E4:3089 A7 00 E7 00 3D 01 db 0A7h, 00h,0E7h, 00h, 3Dh, 01h -31E4:308F 0D 00 00 00 2C 00 db 0Dh, 00h, 00h, 00h, 2Ch, 00h -31E4:3095 AB 01 F4 01 F5 00 db 0ABh, 01h,0F4h, 01h,0F5h, 00h -31E4:309B 47 01 0E 00 00 00 db 47h, 01h, 0Eh, 00h, 00h, 00h -31E4:30A1 2E 00 00 00 04 01 db 2Eh, 00h, 00h, 00h, 04h, 01h -31E4:30A7 44 01 39 01 47 01 db 44h, 01h, 39h, 01h, 47h, 01h -31E4:30AD 0C 00 00 00 2B 00 db 0Ch, 00h, 00h, 00h, 2Bh, 00h -31E4:30B3 CF 00 F3 00 BD 00 db 0CFh, 00h,0F3h, 00h,0BDh, 00h -31E4:30B9 00 01 0B 00 00 00 db 00h, 01h, 0Bh, 00h, 00h, 00h -31E4:30BF 32 00 67 01 8A 01 db 32h, 00h, 67h, 01h, 8Ah, 01h -31E4:30C5 BE 00 01 01 0B 00 db 0BEh, 00h, 01h, 01h, 0Bh, 00h -31E4:30CB 00 00 2D 00 00 00 db 00h, 00h, 2Dh, 00h, 00h, 00h -31E4:30D1 7F 00 9A db 7Fh, 00h, 9Ah - -31E4:30D4 00 C6 00 hotspot_display_buffer db 00h,0C6h, 00h -31E4:30D7 19 01 0D 00 00 00 db 19h, 01h, 0Dh, 00h, 00h, 00h -31E4:30DD 2A 00 A7 01 BF 01 db 2Ah, 00h,0A7h, 01h,0BFh, 01h -31E4:30E3 CF 00 21 01 0E 00 db 0CFh, 00h, 21h, 01h, 0Eh, 00h -31E4:30E9 00 00 2C 00 00 00 db 00h, 00h, 2Ch, 00h, 00h, 00h -31E4:30EF A3 01 BF 01 C8 00 db 0A3h, 01h,0BFh, 01h,0C8h, 00h -31E4:30F5 29 01 0E 00 00 00 db 29h, 01h, 0Eh, 00h, 00h, 00h -31E4:30FB 2B 00 00 00 db 2Bh, 00h, 00h, 00h -31E4:30FF 3F db 3Fh -31E4:3100 01 data_771 db 1 -31E4:3101 74 01 32 01 4A 01 db 74h, 01h, 32h, 01h, 4Ah, 01h -31E4:3107 0C 00 00 00 13 00 db 0Ch, 00h, 00h, 00h, 13h, 00h -31E4:310D 00 00 91 01 BF 01 db 00h, 00h, 91h, 01h,0BFh, 01h -31E4:3113 CE 00 0E 01 0E 00 db 0CEh, 00h, 0Eh, 01h, 0Eh, 00h -31E4:3119 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:311F 91 01 BF 01 CE 00 db 91h, 01h,0BFh, 01h,0CEh, 00h -31E4:3125 0E 01 0E 00 2D 27 db 0Eh, 01h, 0Eh, 00h, 2Dh, 27h -31E4:312B 27 00 7F 00 AC 00 db 27h, 00h, 7Fh, 00h,0ACh, 00h -31E4:3131 D0 00 0E 01 0D 00 db 0D0h, 00h, 0Eh, 01h, 0Dh, 00h -31E4:3137 2E 27 29 00 00 00 db 2Eh, 27h, 29h, 00h, 00h, 00h -31E4:313D C1 00 E0 00 1D 01 db 0C1h, 00h,0E0h, 00h, 1Dh, 01h -31E4:3143 36 01 0C 00 26 27 db 36h, 01h, 0Ch, 00h, 26h, 27h -31E4:3149 0A 00 00 00 7F 00 db 0Ah, 00h, 00h, 00h, 7Fh, 00h -31E4:314F 94 00 C6 00 14 01 db 94h, 00h,0C6h, 00h, 14h, 01h -31E4:3155 0D 00 22 27 14 00 db 0Dh, 00h, 22h, 27h, 14h, 00h -31E4:315B 00 00 2E 01 62 01 db 00h, 00h, 2Eh, 01h, 62h, 01h -31E4:3161 34 01 90 01 0C 00 db 34h, 01h, 90h, 01h, 0Ch, 00h -31E4:3167 29 27 0F 00 7F 00 db 29h, 27h, 0Fh, 00h, 7Fh, 00h -31E4:316D AC 00 D0 00 0E 01 db 0ACh, 00h,0D0h, 00h, 0Eh, 01h -31E4:3173 0D 00 2A 27 27 00 db 0Dh, 00h, 2Ah, 27h, 27h, 00h -31E4:3179 00 00 91 01 BF 01 db 00h, 00h, 91h, 01h,0BFh, 01h -31E4:317F CE 00 0E 01 0E 00 db 0CEh, 00h, 0Eh, 01h, 0Eh, 00h -31E4:3185 2B 27 26 00 7F 00 db 2Bh, 27h, 26h, 00h, 7Fh, 00h -31E4:318B AC 00 D0 00 0E 01 db 0ACh, 00h,0D0h, 00h, 0Eh, 01h -31E4:3191 0D 00 2C 27 28 00 db 0Dh, 00h, 2Ch, 27h, 28h, 00h - -31E4:3197 00 00 A3 00 CB 00 db 00h, 00h,0A3h, 00h,0CBh, 00h -31E4:319D 36 01 4A 01 0C 00 db 36h, 01h, 4Ah, 01h, 0Ch, 00h -31E4:31A3 20 27 0C 00 00 00 db 20h, 27h, 0Ch, 00h, 00h, 00h -31E4:31A9 B9 00 E0 00 24 01 db 0B9h, 00h,0E0h, 00h, 24h, 01h -31E4:31AF 4A 01 0C 00 18 27 db 4Ah, 01h, 0Ch, 00h, 18h, 27h -31E4:31B5 13 00 00 00 63 01 db 13h, 00h, 00h, 00h, 63h, 01h -31E4:31BB 83 01 39 01 90 01 db 83h, 01h, 39h, 01h, 90h, 01h -31E4:31C1 0C 00 1A 27 0E 00 db 0Ch, 00h, 1Ah, 27h, 0Eh, 00h -31E4:31C7 00 00 98 00 B9 00 db 00h, 00h, 98h, 00h,0B9h, 00h -31E4:31CD 2E 01 48 01 0C 00 db 2Eh, 01h, 48h, 01h, 0Ch, 00h -31E4:31D3 16 27 11 00 00 00 db 16h, 27h, 11h, 00h, 00h, 00h -31E4:31D9 00 01 20 01 D5 00 db 00h, 01h, 20h, 01h,0D5h, 00h -31E4:31DF 0F 01 0B 00 00 db 0Fh, 01h, 0Bh, 00h, 00h - -; Popmenu entry list : The contents of the popup menu get constructed in this -; data block - first word is the number of entries, followed by the list of -; items in it; each one being a word giving the Item Id, followed by the text - -31E4:31E4 1200 popmenu_entry_count dw 1200h ; Number of entries -31E4:31E6 popmenu_entry_contents - ... data - -31E4:31E9 7F 00 db 7Fh, 00h -31E4:31EB BC 00 BB 00 29 01 db 0BCh, 00h,0BBh, 00h, 29h, 01h -31E4:31F1 0D 00 00 00 0C 00 db 0Dh, 00h, 00h, 00h, 0Ch, 00h -31E4:31F7 7E 01 BF 01 BB 00 db 7Eh, 01h,0BFh, 01h,0BBh, 00h -31E4:31FD 29 01 0E 00 00 00 db 29h, 01h, 0Eh, 00h, 00h, 00h -31E4:3203 0B 00 00 00 D8 00 db 0Bh, 00h, 00h, 00h,0D8h, 00h -31E4:3209 61 01 2D 01 90 01 db 61h, 01h, 2Dh, 01h, 90h, 01h -31E4:320F 0C 00 00 00 0C 00 db 0Ch, 00h, 00h, 00h, 0Ch, 00h -31E4:3215 08 01 33 01 90 00 db 08h, 01h, 33h, 01h, 90h, 00h -31E4:321B C8 00 0B 00 00 00 db 0C8h, 00h, 0Bh, 00h, 00h, 00h -31E4:3221 14 00 00 00 CB 00 db 14h, 00h, 00h, 00h,0CBh, 00h -31E4:3227 61 01 36 01 90 01 db 61h, 01h, 36h, 01h, 90h, 01h -31E4:322D 0C 00 00 00 18 00 db 0Ch, 00h, 00h, 00h, 18h, 00h -31E4:3233 EB 00 12 01 D6 00 db 0EBh, 00h, 12h, 01h,0D6h, 00h -31E4:3239 07 01 0B 00 00 00 db 07h, 01h, 0Bh, 00h, 00h, 00h -31E4:323F 13 00 00 00 7F 00 db 13h, 00h, 00h, 00h, 7Fh, 00h -31E4:3245 BC 00 BB 00 29 01 db 0BCh, 00h,0BBh, 00h, 29h, 01h -31E4:324B 0D 00 00 00 12 00 db 0Dh, 00h, 00h, 00h, 12h, 00h -31E4:3251 7E 01 BF 01 BB 00 db 7Eh, 01h,0BFh, 01h,0BBh, 00h -31E4:3257 29 01 0E 00 00 00 db 29h, 01h, 0Eh, 00h, 00h, 00h -31E4:325D 19 00 00 00 7F 00 db 19h, 00h, 00h, 00h, 7Fh, 00h -31E4:3263 BC 00 BB 00 29 01 db 0BCh, 00h,0BBh, 00h, 29h, 01h -31E4:3269 0D 00 00 00 16 00 db 0Dh, 00h, 00h, 00h, 16h, 00h -31E4:326F 7E 01 BF 01 BB 00 db 7Eh, 01h,0BFh, 01h,0BBh, 00h -31E4:3275 29 01 0E 00 00 00 db 29h, 01h, 0Eh, 00h, 00h, 00h -31E4:327B 12 00 00 00 D8 00 db 12h, 00h, 00h, 00h,0D8h, 00h -31E4:3281 61 01 3D 01 90 01 db 61h, 01h, 3Dh, 01h, 90h, 01h -31E4:3287 0C 00 00 00 17 00 db 0Ch, 00h, 00h, 00h, 17h, 00h -31E4:328D F2 00 12 01 DA 00 db 0F2h, 00h, 12h, 01h,0DAh, 00h -31E4:3293 0D 01 0B 00 00 00 db 0Dh, 01h, 0Bh, 00h, 00h, 00h -31E4:3299 15 00 00 00 7F 00 db 15h, 00h, 00h, 00h, 7Fh, 00h -31E4:329F BC 00 BB 00 29 01 db 0BCh, 00h,0BBh, 00h, 29h, 01h -31E4:32A5 0D 00 00 00 16 00 db 0Dh, 00h, 00h, 00h, 16h, 00h -31E4:32AB 7E 01 BF 01 BB 00 db 7Eh, 01h,0BFh, 01h,0BBh, 00h -31E4:32B1 29 01 0E 00 00 00 db 29h, 01h, 0Eh, 00h, 00h, 00h -31E4:32B7 11 00 00 00 7F 00 db 11h, 00h, 00h, 00h, 7Fh, 00h -31E4:32BD 87 00 D5 00 54 01 db 87h, 00h,0D5h, 00h, 54h, 01h -31E4:32C3 0D 00 00 00 13 00 db 0Dh, 00h, 00h, 00h, 13h, 00h -31E4:32C9 C8 00 EF 00 AC 00 db 0C8h, 00h,0EFh, 00h,0ACh, 00h -31E4:32CF D4 00 0B 00 00 00 db 0D4h, 00h, 0Bh, 00h, 00h, 00h -31E4:32D5 0D 00 5B 01 89 01 db 0Dh, 00h, 5Bh, 01h, 89h, 01h -31E4:32DB 39 01 54 01 0C 00 db 39h, 01h, 54h, 01h, 0Ch, 00h -31E4:32E1 00 00 1A 00 44 01 db 00h, 00h, 1Ah, 00h, 44h, 01h -31E4:32E7 61 01 BB 00 F4 00 db 61h, 01h,0BBh, 00h,0F4h, 00h - -31E4:32ED 0B 00 21 27 24 00 db 0Bh, 00h, 21h, 27h, 24h, 00h -31E4:32F3 00 00 7F 00 87 00 db 00h, 00h, 7Fh, 00h, 87h, 00h -31E4:32F9 07 01 2F 01 0D 00 db 07h, 01h, 2Fh, 01h, 0Dh, 00h -31E4:32FF 00 00 11 00 FB 00 db 00h, 00h, 11h, 00h,0FBh, 00h -31E4:3305 36 01 C0 00 F5 00 db 36h, 01h,0C0h, 00h,0F5h, 00h -31E4:330B 0B 00 00 00 0E 00 db 0Bh, 00h, 00h, 00h, 0Eh, 00h -31E4:3311 B0 01 BF 01 0C 01 db 0B0h, 01h,0BFh, 01h, 0Ch, 01h -31E4:3317 4A 01 0E 00 00 00 db 4Ah, 01h, 0Eh, 00h, 00h, 00h -31E4:331D 14 00 B9 00 FE 00 db 14h, 00h,0B9h, 00h,0FEh, 00h -31E4:3323 39 01 47 01 0C 00 db 39h, 01h, 47h, 01h, 0Ch, 00h -31E4:3329 00 00 19 00 6F 01 db 00h, 00h, 19h, 00h, 6Fh, 01h -31E4:332F 88 01 D0 00 07 01 db 88h, 01h,0D0h, 00h, 07h, 01h -31E4:3335 0B 00 17 27 1E 00 db 0Bh, 00h, 17h, 27h, 1Eh, 00h -31E4:333B 98 00 B6 00 B8 00 db 98h, 00h,0B6h, 00h,0B8h, 00h -31E4:3341 03 01 0B 00 00 00 db 03h, 01h, 0Bh, 00h, 00h, 00h -31E4:3347 23 00 00 00 7F db 23h, 00h, 00h, 00h, 7Fh -31E4:334C 8700 popmenu_num_entries dw 8700h -31E4:334D 00 02 01 47 01 db 00h, 02h, 01h, 47h, 01h -31E4:3353 0D 00 00 00 17 db 0Dh, 00h, 00h, 00h, 17h -31E4:3358 3B00 data_3358 dw 3B00h -31E4:335A 01 7E 01 B5 db 01h, 7Eh, 01h,0B5h -31E4:335E EB00 data_335E dw 0EB00h -31E4:335F 00 0B db 00h, 0Bh -31E4:3362 0000 popmenu_current_index dw 0 -31E4:3364 0100 popmenu_prior_index dw 100h -31E4:3366 0000 mouse_y_change dw 0 -31E4:3368 0000 menu_items_proc2 dw 0 - -31E4:336B 0F 01 47 01 0E 00 db 0Fh, 01h, 47h, 01h, 0Eh, 00h -31E4:3371 00 00 18 00 0C 01 db 00h, 00h, 18h, 00h, 0Ch, 01h -31E4:3377 2F 01 db 2Fh, 01h - -31E4:3379 00CB dw 00CBh -31E4:337B 00F9 dw 00F9h -31E4:337D 0D 00 00 db 0Dh, 00h, 00h -31E4:3380 1C00 data_3380 dw 1C00h -31E4:3382 00 00 data_3382 dw 0 -31E4:3384 D400 data_3384 dw 0D400h -31E4:3386 0B00 data_3386 dw 0B00h -31E4:3388 01 db 01h -31E4:3389 BB 00 0A 01 0B 00 db 0BBh, 00h, 0Ah, 01h, 0Bh, 00h -31E4:338F 00 00 10 00 9B 00 db 00h, 00h, 10h, 00h, 9Bh, 00h -31E4:3395 DF 00 21 01 47 01 db 0DFh, 00h, 21h, 01h, 47h, 01h -31E4:339B 0C 00 00 00 12 00 db 0Ch, 00h, 00h, 00h, 12h, 00h -31E4:33A1 B0 01 C2 01 DB 00 db 0B0h, 01h,0C2h, 01h,0DBh, 00h -31E4:33A7 47 01 0E 00 00 00 db 47h, 01h, 0Eh, 00h, 00h, 00h -31E4:33AD 13 00 7F 00 87 00 db 13h, 00h, 7Fh, 00h, 87h, 00h -31E4:33B3 0B 01 47 01 0D 00 db 0Bh, 01h, 47h, 01h, 0Dh, 00h -31E4:33B9 00 00 15 00 4A 01 db 00h, 00h, 15h, 00h, 4Ah, 01h -31E4:33BF 63 01 E5 00 18 01 db 63h, 01h,0E5h, 00h, 18h, 01h -31E4:33C5 0B 00 15 27 1D 00 db 0Bh, 00h, 15h, 27h, 1Dh, 00h -31E4:33CB 00 00 D8 00 61 01 db 00h, 00h,0D8h, 00h, 61h, 01h -31E4:33D1 2D 01 90 01 0C 00 db 2Dh, 01h, 90h, 01h, 0Ch, 00h -31E4:33D7 00 00 11 00 08 01 db 00h, 00h, 11h, 00h, 08h, 01h -31E4:33DD 33 01 90 00 C8 00 db 33h, 01h, 90h, 00h,0C8h, 00h -31E4:33E3 0B 00 00 00 0F 00 db 0Bh, 00h, 00h, 00h, 0Fh, 00h -31E4:33E9 00 00 7F 00 73 01 db 00h, 00h, 7Fh, 00h, 73h, 01h -31E4:33EF 3B 01 47 01 0C 00 db 3Bh, 01h, 47h, 01h, 0Ch, 00h -31E4:33F5 00 00 10 00 B0 01 db 00h, 00h, 10h, 00h,0B0h, 01h -31E4:33FB C2 01 FD 00 46 01 db 0C2h, 01h,0FDh, 00h, 46h, 01h -31E4:3401 0E 00 00 00 0E 00 db 0Eh, 00h, 00h, 00h, 0Eh, 00h -31E4:3407 EA 00 29 01 B4 00 db 0EAh, 00h, 29h, 01h,0B4h, 00h -31E4:340D 04 01 0B 00 1E 27 db 04h, 01h, 0Bh, 00h, 1Eh, 27h -31E4:3413 26 00 00 00 7F 00 db 26h, 00h, 00h, 00h, 7Fh, 00h -31E4:3419 87 00 F8 00 2A 01 db 87h, 00h,0F8h, 00h, 2Ah, 01h -31E4:341F 0D 00 00 00 0F 00 db 0Dh, 00h, 00h, 00h, 0Fh, 00h -31E4:3425 7F 00 15 01 39 01 db 7Fh, 00h, 15h, 01h, 39h, 01h -31E4:342B 5E 01 0C 00 00 00 db 5Eh, 01h, 0Ch, 00h, 00h, 00h -31E4:3431 13 00 B0 01 C2 01 db 13h, 00h,0B0h, 01h,0C2h, 01h -31E4:3437 F3 00 2B 01 0E 00 db 0F3h, 00h, 2Bh, 01h, 0Eh, 00h -31E4:343D 00 00 0D 00 F4 00 db 00h, 00h, 0Dh, 00h,0F4h, 00h - -31E4:3443 0F 01 CB 00 FA 00 db 0Fh, 01h,0CBh, 00h,0FAh, 00h -31E4:3449 0B 00 19 27 1F 00 db 0Bh, 00h, 19h, 27h, 1Fh, 00h -31E4:344F 00 00 7F 00 8E 00 db 00h, 00h, 7Fh, 00h, 8Eh, 00h -31E4:3455 E6 00 4A 01 0D 00 db 0E6h, 00h, 4Ah, 01h, 0Dh, 00h -31E4:345B 00 00 0E 00 B1 01 db 00h, 00h, 0Eh, 00h,0B1h, 01h -31E4:3461 C2 01 DF 00 5E 01 db 0C2h, 01h,0DFh, 00h, 5Eh, 01h -31E4:3467 0E 00 00 00 0A 00 db 0Eh, 00h, 00h, 00h, 0Ah, 00h -31E4:346D 9B 00 FE 00 3E 01 db 9Bh, 00h,0FEh, 00h, 3Eh, 01h -31E4:3473 47 01 0C 00 00 00 db 47h, 01h, 0Ch, 00h, 00h, 00h -31E4:3479 14 00 00 00 01 01 db 14h, 00h, 00h, 00h, 01h, 01h -31E4:347F 24 01 85 00 D0 00 db 24h, 01h, 85h, 00h,0D0h, 00h -31E4:3485 0B 00 00 00 1A 00 db 0Bh, 00h, 00h, 00h, 1Ah, 00h -31E4:348B 4D 01 BF 01 13 01 db 4Dh, 01h,0BFh, 01h, 13h, 01h -31E4:3491 47 01 0E 00 00 00 db 47h, 01h, 0Eh, 00h, 00h, 00h -31E4:3497 1B 00 A2 00 C2 00 db 1Bh, 00h,0A2h, 00h,0C2h, 00h -31E4:349D AC 00 DE 00 0B 00 db 0ACh, 00h,0DEh, 00h, 0Bh, 00h -31E4:34A3 1F 27 20 00 00 00 db 1Fh, 27h, 20h, 00h, 00h, 00h -31E4:34A9 9A 01 C2 01 CC 00 db 9Ah, 01h,0C2h, 01h,0CCh, 00h -31E4:34AF 14 01 0E 00 00 00 db 14h, 01h, 0Eh, 00h, 00h, 00h -31E4:34B5 09 00 7F 00 87 00 db 09h, 00h, 7Fh, 00h, 87h, 00h -31E4:34BB F6 00 47 01 0D 00 db 0F6h, 00h, 47h, 01h, 0Dh, 00h -31E4:34C1 00 00 0D 00 AF 00 db 00h, 00h, 0Dh, 00h,0AFh, 00h -31E4:34C7 D4 00 39 01 4A 01 db 0D4h, 00h, 39h, 01h, 4Ah, 01h -31E4:34CD 0C 00 00 00 0B 00 db 0Ch, 00h, 00h, 00h, 0Bh, 00h -31E4:34D3 05 01 1E 01 DB 00 db 05h, 01h, 1Eh, 01h,0DBh, 00h -31E4:34D9 0E 01 0B 00 25 27 db 0Eh, 01h, 0Bh, 00h, 25h, 27h -31E4:34DF 22 00 00 00 7F 00 db 22h, 00h, 00h, 00h, 7Fh, 00h -31E4:34E5 B2 00 E6 00 29 01 db 0B2h, 00h,0E6h, 00h, 29h, 01h -31E4:34EB 0D 00 00 00 0A 00 db 0Dh, 00h, 00h, 00h, 0Ah, 00h -31E4:34F1 E1 00 92 01 39 01 db 0E1h, 00h, 92h, 01h, 39h, 01h -31E4:34F7 47 01 0C 00 00 00 db 47h, 01h, 0Ch, 00h, 00h, 00h -31E4:34FD 08 00 00 00 D8 00 db 08h, 00h, 00h, 00h,0D8h, 00h -31E4:3503 61 01 31 01 90 01 db 61h, 01h, 31h, 01h, 90h, 01h -31E4:3509 0C 00 00 00 07 00 db 0Ch, 00h, 00h, 00h, 07h, 00h -31E4:350F EC 00 12 01 D5 00 db 0ECh, 00h, 12h, 01h,0D5h, 00h -31E4:3515 09 01 0B 00 00 00 db 09h, 01h, 0Bh, 00h, 00h, 00h -31E4:351B 09 00 00 00 D8 00 db 09h, 00h, 00h, 00h,0D8h, 00h -31E4:3521 61 01 38 01 90 01 db 61h, 01h, 38h, 01h, 90h, 01h -31E4:3527 0C 00 00 00 0C 00 db 0Ch, 00h, 00h, 00h, 0Ch, 00h -31E4:352D EC 00 12 01 D6 00 db 0ECh, 00h, 12h, 01h,0D6h, 00h -31E4:3533 0D 01 0B 00 00 00 db 0Dh, 01h, 0Bh, 00h, 00h, 00h -31E4:3539 0A 00 00 00 - -31E4:353D room1_exits dw 7Fh -31E4:353F E0 00 E8 00 29 01 db 0E0h, 00h,0E8h, 00h, 29h, 01h -31E4:3545 0D db 0Dh -31E4:3546 00 data_772 db 0 ; Data table (indexed access) -31E4:3547 11 27 02 00 00 00 db 11h, 27h, 02h, 00h, 00h, 00h -31E4:354D DE 00 FB 00 C8 00 db 0DEh, 00h,0FBh, 00h,0C8h, 00h -31E4:3553 FA 00 0B 00 12 27 db 0FAh, 00h, 0Bh, 00h, 12h, 27h -31E4:3559 01 00 3E 01 5B 01 db 01h, 00h, 3Eh, 01h, 5Bh, 01h -31E4:355F C8 00 FA 00 0B 00 db 0C8h, 00h,0FAh, 00h, 0Bh, 00h -31E4:3565 00 00 03 00 94 01 db 00h, 00h, 03h, 00h, 94h, 01h -31E4:356B C2 01 D1 00 01 01 db 0C2h, 01h,0D1h, 00h, 01h, 01h -31E4:3571 0E 00 14 27 05 00 db 0Eh, 00h, 14h, 27h, 05h, 00h -31E4:3577 00 00 7F 00 A4 00 db 00h, 00h, 7Fh, 00h,0A4h, 00h -31E4:357D E5 00 20 01 0D 00 db 0E5h, 00h, 20h, 01h, 0Dh, 00h -31E4:3583 00 00 02 00 84 01 db 00h, 00h, 02h, 00h, 84h, 01h -31E4:3589 BE 01 E5 00 26 01 db 0BEh, 01h,0E5h, 00h, 26h, 01h -31E4:358F 0E 00 00 00 04 00 db 0Eh, 00h, 00h, 00h, 04h, 00h -31E4:3595 00 00 46 01 6B 01 db 00h, 00h, 46h, 01h, 6Bh, 01h -31E4:359B 31 01 47 01 0C 00 db 31h, 01h, 47h, 01h, 0Ch, 00h -31E4:35A1 00 00 03 00 00 00 db 00h, 00h, 03h, 00h, 00h, 00h -31E4:35A7 7F 00 D2 00 DA 00 db 7Fh, 00h,0D2h, 00h,0DAh, 00h - -31E4:35AD 1B 01 0D 00 00 00 db 1Bh, 01h, 0Dh, 00h, 00h, 00h -31E4:35B3 08 00 00 00 1C 00 db 08h, 00h, 00h, 00h, 1Ch, 00h -31E4:35B9 02 00 F7 35 1E 00 db 02h, 00h,0F7h, 35h, 1Eh, 00h -31E4:35BF 58 1D 1E 00 16 2C db 58h, 1Dh, 1Eh, 00h, 16h, 2Ch -31E4:35C5 1F 00 23 00 1D 2C db 1Fh, 00h, 23h, 00h, 1Dh, 2Ch -31E4:35CB C5 35 1C 00 01 00 db 0C5h, 35h, 1Ch, 00h, 01h, 00h -31E4:35D1 F7 35 21 00 E7 03 db 0F7h, 35h, 21h, 00h,0E7h, 03h -31E4:35D7 1E 00 0B 1D 1F 00 db 1Eh, 00h, 0Bh, 1Dh, 1Fh, 00h -31E4:35DD 1E 00 0B 1D 1C 00 db 1Eh, 00h, 0Bh, 1Dh, 1Ch, 00h -31E4:35E3 02 00 00 00 07 00 db 02h, 00h, 00h, 00h, 07h, 00h -31E4:35E9 12 27 1F 00 1E 00 db 12h, 27h, 1Fh, 00h, 1Eh, 00h -31E4:35EF 3A 2C 20 00 1E 00 db 3Ah, 2Ch, 20h, 00h, 1Eh, 00h -31E4:35F5 58 1D 1C 00 04 00 db 58h, 1Dh, 1Ch, 00h, 04h, 00h -31E4:35FB 00 00 05 00 10 04 db 00h, 00h, 05h, 00h, 10h, 04h -31E4:3601 1E 00 58 1D 1C 00 db 1Eh, 00h, 58h, 1Dh, 1Ch, 00h -31E4:3607 03 00 00 00 1E 00 db 03h, 00h, 00h, 00h, 1Eh, 00h -31E4:360D 58 1D 1E 00 58 1D db 58h, 1Dh, 1Eh, 00h, 58h, 1Dh -31E4:3613 22 00 B7 35 21 00 db 22h, 00h,0B7h, 35h, 21h, 00h -31E4:3619 18 04 1E 00 E9 12 db 18h, 04h, 1Eh, 00h,0E9h, 12h -31E4:361F 21 00 11 27 21 00 db 21h, 00h, 11h, 27h, 21h, 00h -31E4:3625 E8 03 20 00 20 00 db 0E8h, 03h, 20h, 00h, 20h, 00h -31E4:362B 20 00 20 00 27 00 db 20h, 00h, 20h, 00h, 27h, 00h -31E4:3631 CB 00 00 00 20 00 db 0CBh, 00h, 00h, 00h, 20h, 00h -31E4:3637 20 00 20 00 20 00 db 20h, 00h, 20h, 00h, 20h, 00h -31E4:363D 27 00 CC 00 00 00 db 27h, 00h,0CCh, 00h, 00h, 00h -31E4:3643 20 00 20 00 20 00 db 20h, 00h, 20h, 00h, 20h, 00h -31E4:3649 21 00 11 27 1E 00 db 21h, 00h, 11h, 27h, 1Eh, 00h -31E4:364F 31 1D 27 00 8C 00 db 31h, 1Dh, 27h, 00h, 8Ch, 00h -31E4:3655 00 00 22 00 27 36 db 00h, 00h, 22h, 00h, 27h, 36h -31E4:365B 1C 00 02 00 27 36 db 1Ch, 00h, 02h, 00h, 27h, 36h -31E4:3661 1E 00 42 1E 21 00 db 1Eh, 00h, 42h, 1Eh, 21h, 00h -31E4:3667 E8 03 22 00 61 36 db 0E8h, 03h, 22h, 00h, 61h, 36h -31E4:366D 00 00 00 db 00h, 00h, 00h - -31E4:3670 0000 errormsg_list dw 0 ;Table used by display_message() to print errors -31E4:3672 368A dw offset errormsg1 -31E4:3674 369E dw offset errormsg2 -31E4:3676 36C2 dw offset errormsg3 -31E4:3678 36E0 dw offset errormsg4 -31E4:367A 36FB dw offset errormsg5 -31E4:367C 3713 dw offset errormsg6 -31E4:367E 372B dw offset errormsg7 -31E4:3680 3763 dw offset errormsg8 -31E4:3682 3788 dw offset errormsg9 -31E4:3684 379F dw offset errormsga -31E4:3686 3743 dw offset errormsgb -31E4:3688 37C0 dw offset errormsgc - -31E4:368A errormsg1 db 6, '8Disk read error.$', 0 -31E4:369E errormsg2 db 'Game needs colour EGA/VGA monitor.$', 0 -31E4:36C2 errormsg3 db 'Game needs DOS 2.0 or later.$', 0 -31E4:36E0 errormsg4 db 11h, '8Please insert game disk$', 0 -31E4:36FB errormsg5 db 1Ch, '8Please insert disk A$', 0 -31E4:3713 errormsg6 db 27h, '8Please insert disk B$', 0 -31E4:372B errormsg7 db 32h, '8Please insert disk C$', 0 -31E4:3743 errormsgb db 3Dh, '8Please insert Lure data disk$', 0 -31E4:3763 errormsg8 db 'Not enough memory to play the game.$', 0 -31E4:3788 errormsg9 db 'Data file is corrupt.$', 0 -31E4:379F errormsga db 'Sorry - copy protection failed.$', 0 -31E4:37C0 errormsgc db 'Unknown error.$' - -31E4:37D0 data_777 db 'Press a mouse button when ready.$', 0 -31E4:37F2 data_778 db 'and press any key.$', 0 - -31E4:3806 09 09 15 05 0A db 09h, 09h, 15h, 05h, 0Ah -31E4:380B 0A B0 00 7A 00 00 db 0Ah,0B0h, 00h, 7Ah, 00h, 00h -31E4:3811 09 09 15 05 0A 0A db 09h, 09h, 15h, 05h, 0Ah, 0Ah -31E4:3817 B0 00 78 00 00 09 db 0B0h, 00h, 78h, 00h, 00h, 09h -31E4:381D 09 15 05 0A 0A B0 db 09h, 15h, 05h, 0Ah, 0Ah,0B0h -31E4:3823 00 64 01 00 09 09 db 00h, 64h, 01h, 00h, 09h, 09h -31E4:3829 15 05 0A 0A B0 00 db 15h, 05h, 0Ah, 0Ah,0B0h, 00h -31E4:382F 65 01 00 09 09 15 db 65h, 01h, 00h, 09h, 09h, 15h -31E4:3835 05 0A 0A B0 00 66 db 05h, 0Ah, 0Ah,0B0h, 00h, 66h -31E4:383B 01 00 09 06 15 05 db 01h, 00h, 09h, 06h, 15h, 05h -31E4:3841 0A 0A B0 00 56 01 db 0Ah, 0Ah,0B0h, 00h, 56h, 01h -31E4:3847 00 db 00h -31E4:3848 0A 0D 24 data_779 db 0Ah, 0Dh, '$' ; xref 273F:4055, 273F:4094 - ; 273F:40AB -31E4:384B 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h - -31E4:3850 41D9 actions2_proc_list dw 41D9h - dw offset get_proc ; 1 = GET - dw 0 - dw offset operate_proc - dw offset operate_proc - dw offset operate_proc ; 5 - dw offset open_proc - dw offset close_proc -31E4:3860 dw offset lock_unlock_proc - dw offset lock_unlock_proc - dw offset use_proc ; 10 = USE - dw offset give_proc - dw offset talk_to_proc - dw offset tell_proc - dw 0 - dw offset look_proc ; 15 = LOOK -31E4:3870 dw offset look_at_proc - dw offset look_through_proc - dw offset ask_proc - dw 0 - dw offset drink_proc ; 20 = DRINK - dw offset status_proc - dw offset go_to_proc - dw offset return_proc -31E4:3880 dw offset bribe_proc - dw offset examine_proc ; 25 - dw 0 - dw 0 - dw offset npc_set_blocked_offset_proc - dw offset npc_unknown_1 - dw offset npc_execute_script_proc ; 30 - dw offset npc_reset_paused_list - dw offset npc_set_random_dest - dw offset npc_walking_check - dw offset npc_set_support_offset - dw offset npc_set_support_offset_conditional ; 35 - dw offset npc_dispatch_action - dw offset npc_unknown_3 - dw offset npc_pause - dw offset npc_start_talking - dw offset npc_jump_to_address ; 40 - -31E4:38A2 0001 random_v1 dw 1 -31E4:38A4 0000 random_v2 dw 0 - -31E4:38A6 0B[00] db 11 dup (0) -31E4:38B0 01 data_781 db 1 -31E4:38B1 0000 time_ctr dw 0 ; xref 273F:4974, 273F:A896 - ; 273F:A89C, 273F:A8AB - ; 273F:A8CC -31E4:38B3 32 data_783 db 32h ; xref 273F:4956, 273F:4967 - -31E4:38B4 008D[00] db 140 dup (0) -31E4:3940 0000 pathfind_buffer_end dw 0 -31E4:3942 0000 pathfind_sp dw 0 -31E4:3944 0000 pathfind_countdown_ctr dw 0 -31E4:3946 0000 pathfind_in_progress db 0 -31E4:3947 003C[00] db 60 dup (0) -31E4:3983 000A[00] player_pathfind_data dw 5 dup (0) - -........ -31E4:3E92 00 data_785 db 0 ; xref 31E4:18A6 -31E4:3E93 01CD[00] db 461 dup (0) -31E4:4060 ú077D[00] db 1917 dup (0) -31E4:4227 000A[00] chars_pathfind_data dw 5 dup (0) - -........ -31E4:47DD 0000 0000 data_786 dd 00000h ; Data table (indexed access) -31E4:47E1 02EF[00] db 751 dup (0) - -; List of hotspots that don't to be walked to before being looked at - lookat_hotspot_list -31E4:4AD0 0411 0412 041F 0420 dw 0411h, 0412h, 041Fh, 0420h -31E4:4AD8 0421 0422 0426 0427 dw 0421h, 0422h, 0426h, 0427h -31E4:4AE0 0428 0429 0436 0437 dw 0428h, 0429h, 0436h, 0437h -31E4:4AE8 0000 dw 0 - -31E4:4AEA 0421 0879 bribe_hotspot_list dw 421h, 879h -31E4:4AEE 03E9 08C7 dw 3E9h, 8C7h -31E4:4AF2 0429 08D1 dw 429h, 8D1h -31E4:4AF6 0422 08D4 dw 422h, 8D4h -31E4:4AFA 0420 08D6 dw 420h, 8D6h -31E4:4AFE 042B 0956 dw 42Bh, 956h -31E4:4B02 03F2 0BE6 dw 3F2h,0BE6h -31E4:4B06 0000 dw 0 - -31E4:4B08 59 6F 75 20 61 72 carrying_str db 'You are carrying ' -31E4:4B0E 65 20 63 61 72 72 -31E4:4B14 79 69 6E 67 20 -31E4:4B19 6E 6F 74 68 69 6E items_str dw 'nothing.', 0 -31E4:4B1F 67 2E 00 -31E4:4B22 59 6F 75 20 68 61 money_str db 'You have ' -31E4:4B28 76 65 20 -31E4:4B2B 78 s_num_groats db 'x' -31E4:4B2C 20 67 72 6F 61 74 db ' groat' -31E4:4B32 73 00 s_groats_plural db 's', 0 - -31E4:4B34 000C[00] db 13 dup (0) -31E4:4B40 00 data_791 db 0 -31E4:4B41 00 00 saved_dest_character dw 0 - -31E4:4B43 0050[00] hotspot_name db 80 dup (0) - character_name db ? -31E4:4B93 005D[00] action_name db 93 dup (0) - -31E4:4BF0 00 data_794 db 0 ; xref 273F:207A, 273F:7016 -31E4:4BF1 0000 menuitem_table_location dw 0 - -31E4:4BF1 0007[00] db 7 dup (0) -31E4:4BF8 0000 data_unk1 dw 0 -31E4:4BFA 00 mouse_buttons_temp db 0 -31E4:4BFB 4C5A menuitem_list_info db offset menuitem_credits_str -31E4:4BFD 7084 dw offset menuitem_credits - -31E4:4BFF 67 4C menuitem_list_file db offset menuitem_restart_str -31E4:4C01 70EA dw offset menuitem_restart -31E4:4C03 43 4C db offset menuitem_save_str -31E4:4C05 8EB2 dw offset menuitem_save -31E4:4C07 4D 4C db offset menuitem_restore_str -31E4:4C09 8F4A dw offset menuitem_restore - -31E4:4C0B 0028 menuitem_table_info dw 28h ; X start -31E4:4C0D 0057 dw 57h ; X end -31E4:4C0F 0003 dw 3 -31E4:4C11 0001 dw 1 -31E4:4C13 0007 dw 7 ; Max characters width -31E4:4C15 0001 dw 1 ; Num items -31E4:4C17 4BFB dw offset menuitem_list_info - -31E4:4C19 menuitem_table_file dw 7Fh -31E4:4C1B B3 00 dw 0B3h -31E4:4C1D 0D 00 dw 0Dh -31E4:4C1F 01 00 dw 01h -31E4:4C21 0C 00 dw 0Ch -31E4:4C23 03 00 dw 03h -31E4:4C25 4BFF dw offset menuitem_list_file - -31E4:4C27 menuitem_table_info2 dw 0A0h -31E4:4C29 dw 0A6h -31E4:4C2B 06 00 dw 6 -31E4:4C2D 01 00 dw 1 -31E4:4C2F 05 00 dw 5 -31E4:4C31 00 00 dw 0 -31E4:4C33 FB 4B db offset menuitem_list_info - -31E4:4C35 E0 00 menuitem_table_help dw 0E0h -31E4:4C37 19 01 dw 119h -31E4:4C39 1B 00 dw 1Bh -31E4:4C3B 01 00 dw 1 -31E4:4C3D 0A 00 dw 0Ah -31E4:4C3F 03 00 dw 03h -31E4:4C41 4C99 dw offset menuitem_list_help - -31E4:4C43 menuitem_save_str db 'Save game', 0 -31E4:4C4D menuitem_restore_str db 'Restore game', 0 -31E4:4C5A menuitem_credits_str db 'Credits', 0 -31E4:4C62 menuitem_quit_str db 'Quit', 0 -31E4:4C67 menuitem_restart_str db 'Restart game', 0 -31E4:4C74 menuitem_textspeed_str db 'Slow text', 8Bh, 0 -31E4:4C7F slowtext_slow_substr db 'Slow' -31E4:4C83 slowtext_fast_substr db 'Fast' -31E4:4C87 menuitem_sound_str db 'Sound on ', 0 -31E4:4C91 sound_on_substr db 'on ', 0 -31E4:4C95 sound_off_substr db 'off', 0 - -31E4:4C99 4C62 menu_list_help dw offset menuitem_quit_str -31E4:4C9B 7036 dw offset menuitem_quit -31E4:4C9D 4C74 dw offset menuitem_textspeed_str -31E4:4C9F 70F5 dw offset menuitem_textspeed -31E4:4CA1 4C87 dw offset menuitem_sound_str -31E4:4CA3 710D dw offset menuitem_sound - -31E4:4CA5 00 db 0 -31E4:4CA6 000A[00] db 10 dup (0) - -31E4:4CB0 exit_hotspots_list dw 2711h ; Cell door room #1 - dw 2712h ; Cell door room #2 - dw 2714h - dw 2715h - dw 2716h - dw 2717h - dw 2718h - dw 2719h - dw 271Ah - dw 271Eh - dw 271Fh - dw 2720h - dw 2721h - dw 2722h - dw 2725h - dw 2726h - dw 2729h - dw 272Ah - dw 272Bh - dw 272Ch - dw 272Dh - dw 272Eh - dw 272Fh - dw 0 - -31E4:4CE0 0000 current_room_segment dw 0 -31E4:4CE2 0000 data_segment dw 0 -31E4:4CE4 0000 data_segment2 dw 0 -31E4:4CE6 0000 talk_dialog_buffer dw 0 -31E4:4CE8 0000 strings_segment dw 0 -31E4:4CEA 0000 strings_segment_2 dw 0 ; xref 273F:7E16 -31E4:4CEC 0000 strings_segment_3 dw 0 ; xref 273F:7E22 -31E4:4CEE 0000 names_segment dw 0 -31E4:4CF0 0000 font2_segment dw 0 -31E4:4CF2 0000 font_segment dw 0 -31E4:4CF4 0000 cursors_segment dw 0 -31E4:4CF6 0000 data_810 dw 0 ; xref 273F:7AD8 -31E4:4CF8 0000 data_811 dw 0 ; xref 273F:7AEA -31E4:4CFA 0000 data_812 dw 0 ; xref 273F:79EF -31E4:4CFC 0000 largest_free_block dw 0 -31E4:4CFE 0000 data_814 dw 0 -31E4:4D00 0000 buffer_segment dw 0 -31E4:4D02 0000 buffer_segment_end dw 0 - -31E4:4D04 0000 anim_src_segment2 dw 0 -31E4:4D06 0000 anim_src_segment dw 0 -31E4:4D08 0008[00] db 8 dup (0) -31E4:4D10 42 4E 1B 4E 63 4E db 42h, 4Eh, 1Bh, 4Eh, 63h, 4Eh -31E4:4D16 AC 4E 00 00 00 00 db 0ACh, 4Eh, 00h, 00h, 00h, 00h -31E4:4D1C AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D22 C9 4E AC 4E AC 4E db 0C9h, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D28 AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D2E AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D34 AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D3A AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D40 AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D46 AC 4E 62 4D AC 4E db 0ACh, 4Eh, 62h, 4Dh,0ACh, 4Eh -31E4:4D4C AC 4E F0 4E AC 4E db 0ACh, 4Eh,0F0h, 4Eh,0ACh, 4Eh -31E4:4D52 AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D58 AC 4E AC 4E AC 4E db 0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh -31E4:4D5E AC 4E AC 4E 08 01 db 0ACh, 4Eh,0ACh, 4Eh, 08h, 01h -31E4:4D64 00 1E 00 42 1E 20 db 00h, 1Eh, 00h, 42h, 1Eh, 20h -31E4:4D6A 00 00 00 FF FF 01 db 00h, 00h, 00h,0FFh,0FFh, 01h -31E4:4D70 00 20 00 1F 00 00 db 00h, 20h, 00h, 1Fh, 00h, 00h -31E4:4D76 00 FF FF 01 00 20 db 00h,0FFh,0FFh, 01h, 00h, 20h -31E4:4D7C 00 1F 00 00 00 FF db 00h, 1Fh, 00h, 00h, 00h,0FFh -31E4:4D82 FF 03 00 24 00 20 db 0FFh, 03h, 00h, 24h, 00h, 20h -31E4:4D88 04 A5 4D 25 00 20 db 04h,0A5h, 4Dh, 25h, 00h, 20h -31E4:4D8E 04 02 08 00 00 04 db 04h, 02h, 08h, 00h, 00h, 04h -31E4:4D94 08 00 00 25 00 20 db 08h, 00h, 00h, 25h, 00h, 20h -31E4:4D9A 04 03 08 00 00 00 db 04h, 03h, 08h, 00h, 00h, 00h -31E4:4DA0 00 00 00 20 00 00 db 00h, 00h, 00h, 20h, 00h, 00h -31E4:4DA6 00 FF FF 01 00 20 db 00h,0FFh,0FFh, 01h, 00h, 20h -31E4:4DAC 00 1F 00 00 00 FF db 00h, 1Fh, 00h, 00h, 00h,0FFh -31E4:4DB2 FF 01 00 20 00 1F db 0FFh, 01h, 00h, 20h, 00h, 1Fh -31E4:4DB8 00 00 00 FF FF 03 db 00h, 00h, 00h,0FFh,0FFh, 03h -31E4:4DBE 00 24 00 20 04 A5 db 00h, 24h, 00h, 20h, 04h,0A5h -31E4:4DC4 4D 25 00 20 04 02 db 4Dh, 25h, 00h, 20h, 04h, 02h -31E4:4DCA 08 00 00 04 08 00 db 08h, 00h, 00h, 04h, 08h, 00h -31E4:4DD0 00 25 00 20 04 94 db 00h, 25h, 00h, 20h, 04h, 94h -31E4:4DD6 0B 00 00 95 0B 00 db 0Bh, 00h, 00h, 95h, 0Bh, 00h -31E4:4DDC 00 25 00 20 04 96 db 00h, 25h, 00h, 20h, 04h, 96h -31E4:4DE2 0B 0F 00 00 00 00 db 0Bh, 0Fh, 00h, 00h, 00h, 00h -31E4:4DE8 00 20 00 00 00 FF db 00h, 20h, 00h, 00h, 00h,0FFh -31E4:4DEE FF 03 00 25 00 2B db 0FFh, 03h, 00h, 25h, 00h, 2Bh -31E4:4DF4 04 DB 0A 00 00 DC db 04h,0DBh, 0Ah, 00h, 00h,0DCh -31E4:4DFA 0A 00 00 25 00 2B db 0Ah, 00h, 00h, 25h, 00h, 2Bh -31E4:4E00 04 DD 0A 00 00 DE db 04h,0DDh, 0Ah, 00h, 00h,0DEh -31E4:4E06 0A 0A 00 25 00 2B db 0Ah, 0Ah, 00h, 25h, 00h, 2Bh -31E4:4E0C 04 DF 0A 0F 00 E0 db 04h,0DFh, 0Ah, 0Fh, 00h,0E0h -31E4:4E12 0A 00 00 1F 00 00 db 0Ah, 00h, 00h, 1Fh, 00h, 00h -31E4:4E18 00 FF FF 02 01 00 db 00h,0FFh,0FFh, 02h, 01h, 00h -31E4:4E1E 1E 00 42 1E 20 00 db 1Eh, 00h, 42h, 1Eh, 20h, 00h -31E4:4E24 00 00 FF FF 01 00 db 00h, 00h,0FFh,0FFh, 01h, 00h -31E4:4E2A 20 00 00 00 FF FF db 20h, 00h, 00h, 00h,0FFh,0FFh -31E4:4E30 01 00 FE FF 1C 00 db 01h, 00h,0FEh,0FFh, 1Ch, 00h -31E4:4E36 03 00 00 00 20 00 db 03h, 00h, 00h, 00h, 20h, 00h -31E4:4E3C 1F 00 00 00 FF FF db 1Fh, 00h, 00h, 00h,0FFh,0FFh -31E4:4E42 03 01 00 20 00 00 db 03h, 01h, 00h, 20h, 00h, 00h -31E4:4E48 00 FF FF 01 00 11 db 00h,0FFh,0FFh, 01h, 00h, 11h -31E4:4E4E 00 0C 04 1F 00 00 db 00h, 0Ch, 04h, 1Fh, 00h, 00h -31E4:4E54 00 FF FF 01 00 1E db 00h,0FFh,0FFh, 01h, 00h, 1Eh -31E4:4E5A 00 42 1E 20 00 00 db 00h, 42h, 1Eh, 20h, 00h, 00h -31E4:4E60 00 FF FF 05 01 00 db 00h,0FFh,0FFh, 05h, 01h, 00h -31E4:4E66 1E 00 42 1E 20 00 db 1Eh, 00h, 42h, 1Eh, 20h, 00h -31E4:4E6C 00 00 FF FF 01 00 db 00h, 00h,0FFh,0FFh, 01h, 00h -31E4:4E72 20 00 00 00 FF FF db 20h, 00h, 00h, 00h,0FFh,0FFh -31E4:4E78 03 00 06 00 32 75 db 03h, 00h, 06h, 00h, 32h, 75h -31E4:4E7E 00 00 FF FF 03 00 db 00h, 00h,0FFh,0FFh, 03h, 00h -31E4:4E84 1D 00 54 E8 00 00 db 1Dh, 00h, 54h,0E8h, 00h, 00h -31E4:4E8A FF FF 03 00 1F 00 db 0FFh,0FFh, 03h, 00h, 1Fh, 00h -31E4:4E90 11 00 30 75 1F 00 db 11h, 00h, 30h, 75h, 1Fh, 00h -31E4:4E96 00 00 FF FF 01 00 db 00h, 00h,0FFh,0FFh, 01h, 00h -31E4:4E9C FE FF 1C 00 02 00 db 0FEh,0FFh, 1Ch, 00h, 02h, 00h -31E4:4EA2 00 00 20 00 1F 00 db 00h, 00h, 20h, 00h, 1Fh, 00h -31E4:4EA8 00 00 FF FF 03 01 db 00h, 00h,0FFh,0FFh, 03h, 01h -31E4:4EAE 00 1E 00 42 1E 20 db 00h, 1Eh, 00h, 42h, 1Eh, 20h -31E4:4EB4 00 00 00 FF FF 01 db 00h, 00h, 00h,0FFh,0FFh, 01h -31E4:4EBA 00 1F 00 00 00 FF db 00h, 1Fh, 00h, 00h, 00h,0FFh -31E4:4EC0 FF 01 00 20 00 00 db 0FFh, 01h, 00h, 20h, 00h, 00h -31E4:4EC6 00 FF FF 04 01 00 db 00h,0FFh,0FFh, 04h, 01h, 00h -31E4:4ECC 1E 00 42 1E 20 00 db 1Eh, 00h, 42h, 1Eh, 20h, 00h -31E4:4ED2 00 00 FF FF 03 00 db 00h, 00h,0FFh,0FFh, 03h, 00h -31E4:4ED8 1D 00 62 E8 00 00 db 1Dh, 00h, 62h,0E8h, 00h, 00h -31E4:4EDE FF FF 01 00 1F 00 db 0FFh,0FFh, 01h, 00h, 1Fh, 00h -31E4:4EE4 00 00 FF FF 01 00 db 00h, 00h,0FFh,0FFh, 01h, 00h -31E4:4EEA 20 00 00 00 FF FF db 20h, 00h, 00h, 00h,0FFh,0FFh -31E4:4EF0 07 01 00 23 00 6C db 07h, 01h, 00h, 23h, 00h, 6Ch -31E4:4EF6 1E FF 4E 1E 00 42 db 1Eh,0FFh, 4Eh, 1Eh, 00h, 42h -31E4:4EFC 1E 20 00 00 00 FF db 1Eh, 20h, 00h, 00h, 00h,0FFh -31E4:4F02 FF 03 00 25 00 29 db 0FFh, 03h, 00h, 25h, 00h, 29h -31E4:4F08 04 9B 0B 00 00 9C db 04h, 9Bh, 0Bh, 00h, 00h, 9Ch -31E4:4F0E 0B 00 00 25 00 29 db 0Bh, 00h, 00h, 25h, 00h, 29h -31E4:4F14 04 9D 0B 00 00 00 db 04h, 9Dh, 0Bh, 00h, 00h, 00h -31E4:4F1A 00 00 00 20 00 00 db 00h, 00h, 00h, 20h, 00h, 00h -31E4:4F20 00 FF FF 03 00 25 db 00h,0FFh,0FFh, 03h, 00h, 25h -31E4:4F26 00 29 04 9E 0B 00 db 00h, 29h, 04h, 9Eh, 0Bh, 00h -31E4:4F2C 00 9F 0B 00 00 25 db 00h, 9Fh, 0Bh, 00h, 00h, 25h -31E4:4F32 00 29 04 A0 0B 00 db 00h, 29h, 04h,0A0h, 0Bh, 00h -31E4:4F38 00 A2 0B 00 00 25 db 00h,0A2h, 0Bh, 00h, 00h, 25h -31E4:4F3E 00 29 04 A1 0B 00 db 00h, 29h, 04h,0A1h, 0Bh, 00h -31E4:4F44 00 00 00 00 00 20 db 00h, 00h, 00h, 00h, 00h, 20h -31E4:4F4A 00 00 00 FF FF 01 db 00h, 00h, 00h,0FFh,0FFh, 01h -31E4:4F50 00 1F 00 00 00 FF db 00h, 1Fh, 00h, 00h, 00h,0FFh -31E4:4F56 FF 01 00 20 00 00 db 0FFh, 01h, 00h, 20h, 00h, 00h -31E4:4F5C 00 FF FF 01 00 1F db 00h,0FFh,0FFh, 01h, 00h, 1Fh -31E4:4F62 00 00 00 FF FF 01 db 00h, 00h, 00h,0FFh,0FFh, 01h -31E4:4F68 00 20 00 00 00 FF db 00h, 20h, 00h, 00h, 00h,0FFh -31E4:4F6E FF 1F 0E db 0FFh, 1Fh, 0Eh - -31E4:4F71 follower_room_translate_list db 1Eh, 13h, 07h, 08h, 1Ch, 12h -31E4:4F77 db 26h, 0Fh, 27h, 0Fh, 28h, 0Fh -31E4:4F7D db 29h, 0Fh, 22h, 0Ah, 23h, 13h -31E4:4F83 db 24h, 14h, 31h, 2Ch, 2Fh, 2Ch -31E4:4F89 db 00h - -31E4:4F8A 00 data_817 db 0 -31E4:4F8B 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h - -31E4:4F90 a_str db 'a', 0 -31E4:4F92 an_str db 'an', 0 -31E4:4F95 the_str db 'the', 0 - -31E4:4F99 0007[00] db 7 dup (0) -31E4:4FA0 15 16 17 18 19 1A db 15h, 16h, 17h, 18h, 19h, 1Ah -31E4:4FA6 19 18 17 16 17 18 db 19h, 18h, 17h, 16h, 17h, 18h -31E4:4FAC 19 1A 19 18 17 16 db 19h, 1Ah, 19h, 18h, 17h, 16h -31E4:4FB2 15 00 0D 0E 0F 10 db 15h, 00h, 0Dh, 0Eh, 0Fh, 10h -31E4:4FB8 11 12 11 12 11 10 db 11h, 12h, 11h, 12h, 11h, 10h -31E4:4FBE 0F 13 14 00 0C 0D db 0Fh, 13h, 14h, 00h, 0Ch, 0Dh -31E4:4FC4 0E 0F 10 0F 10 0F db 0Eh, 0Fh, 10h, 0Fh, 10h, 0Fh -31E4:4FCA 10 0F 0E 0D 0C 00 db 10h, 0Fh, 0Eh, 0Dh, 0Ch, 00h -31E4:4FD0 01 02 03 04 05 04 db 01h, 02h, 03h, 04h, 05h, 04h -31E4:4FD6 05 04 03 02 06 07 db 05h, 04h, 03h, 02h, 06h, 07h -31E4:4FDC 00 0D 0E 0F 10 11 db 00h, 0Dh, 0Eh, 0Fh, 10h, 11h -31E4:4FE2 12 13 14 15 16 17 db 12h, 13h, 14h, 15h, 16h, 17h -31E4:4FE8 18 19 1A 1B 00 1C db 18h, 19h, 1Ah, 1Bh, 00h, 1Ch -31E4:4FEE 1D 1E 1F db 1Dh, 1Eh, 1Fh -31E4:4FF1 20 21 22 23 24 db ' !"#$' -31E4:4FF6 25 26 27 28 29 2A db '%&', 27h, '()*+,-./0(', 27h, '&%' -31E4:4FFC 2B 2C 2D 2E 2F 30 -31E4:5002 28 27 26 25 -31E4:5006 24 db '$' -31E4:5007 23 22 21 20 db '#"! ' -31E4:500B 1F 1E 1D 1C 00 01 db 1Fh, 1Eh, 1Dh, 1Ch, 00h, 01h -31E4:5011 02 03 04 05 06 07 db 02h, 03h, 04h, 05h, 06h, 07h -31E4:5017 08 09 0A 0B 0C 0D db 08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh -31E4:501D 0E 0F 10 11 12 13 db 0Eh, 0Fh, 10h, 11h, 12h, 13h -31E4:5023 14 15 16 17 18 00 db 14h, 15h, 16h, 17h, 18h, 00h -31E4:5029 00 db 0 - -31E4:502A 001D BB47 sub_211_list dw 1Dh, 0BB47h -31E4:502E 0020 BB61 dw 20h, 0BB61h -31E4:5032 0023 BB7B dw 23h, 0BB7Bh - -31E4:5036 000A[00] db 10 dup (0) - -31E4:5040 09 08 15 05 0A 0A look_info db 09h, 08h, 15h, 05h, 0Ah, 0Ah -31E4:5046 B0 00 db 0B0h, 00h, -31E4:5048 D2 00 db 0D2h, 00h -31E4:504A 0006[00] db 6 dup (0) - -31E4:5050 CF5E give_talk_list dw 0CF5Eh ; Data table (indexed access) -31E4:5052 CF14 dw 0CF14h -31E4:5054 CF90 dw 0CF90h -31E4:5056 CFAA dw 0CFAAh -31E4:5058 CFD0 dw 0CFD0h -31E4:505A CFF6 dw 0CFF6h - -; The following table consists of the set of hotspot Ids and offsets for character talk records. -; Following this is the individual talk records for the characters - -31E4:505C 03EA 5202 talk_table db 03EAh, offset skorl_record -31E4:5060 0411 5206 db 0411h, 5206h -31E4:5064 03E9 5426 db 03E9h, 5426h -31E4:5068 0412 5478 db 0412h, 5478h -31E4:506C 03EB 547C db 03EBh, 547Ch -31E4:5070 03EC 54B2 db 03ECh, 54B2h -31E4:5074 03ED 52E2 db 03EDh, 52E2h -31E4:5078 041F 52AC db 041Fh, 52ACh -31E4:507C 0421 53F0 db 0421h, 53F0h -31E4:5080 0422 53BA db 0422h, 53BAh -31E4:5084 0426 545C db 0426h, 545Ch -31E4:5088 0428 545C db 0428h, 545Ch -31E4:508C 0427 5384 db 0427h, 5384h -31E4:5090 03EF 5318 db 03EFh, 5318h -31E4:5094 0420 534E db 0420h, 534Eh -31E4:5098 0429 520A db 0429h, 520Ah -31E4:509C 03EE 5196 db 03EEh, 5196h -31E4:50A0 03F0 51CC db 03F0h, 51CCh -31E4:50A4 042B 5276 db 042Bh, 5276h -31E4:50A8 042C 5240 db 042Ch, 5240h -31E4:50AC 042D 5240 db 042Dh, 5240h -31E4:50B0 0434 5504 db 0434h, 5504h -31E4:50B4 0436 512A db 0436h, 512Ah -31E4:50B8 03F1 5160 db 03F1h, 5160h -31E4:50BC 03F2 511C db 03F2h, 511Ch -31E4:50C0 0437 5102 db 0437h, 5102h -31E4:50C4 0438 510E db 0438h, 510Eh -31E4:50C8 0442 50CC db 0442h, offset talk_442h_record - -31E4:50CC 10 D0 00 00 1E D0 talk_442h_record db 10h,0D0h, 00h, 00h, 1Eh,0D0h - -31E4:5202 0000 skorl_record dw 0 -31E4:5204 EB24 dw offset skorl_talk_0 -31E4:5206 0000 E022 - -;***** TALK RECORD DATA deleted ***** - -31E4:5504 002C[00] db 44 dup (0) ; Start of final talk list -31E4:5530 EE EB 7A EC dw 0EBEEh, 0EC7Ah -31E4:5534 000C[00] db 12 dup (0) - - -31E4:5540 73 61 76 65 67 61 savegame_filename db 'savegame.dta', 0 ; xref 273F:934F -31E4:5546 6D 65 2E 64 74 61 -31E4:554C 00 -31E4:554D FFFF data_832 dw 0FFFFh ; xref 273F:8F7C, 273F:8F86 -31E4:554F 00 00 00 00 00 20 db 00h, 00h, 00h, 00h, 00h, 20h -31E4:5555 21 40 23 24 db '!@#$' -31E4:5559 25 5E 26 2A 28 29 db '%^&*()_+|-=\{}[]:;', 27h, '<>?,.' -31E4:555F 5F 2B 7C 2D 3D 5C -31E4:5565 7B 7D 5B 5D 3A 3B -31E4:556B 27 3C 3E 3F 2C 2E -31E4:5571 2F 60 7E 22 00 db '/`~"', 0 -31E4:5576 52 65 73 74 6F 72 db 'Restore game', 0 -31E4:557C 65 20 67 61 6D 65 -31E4:5582 00 -31E4:5583 53 61 76 65 20 67 db 'Save game', 0 -31E4:5589 61 6D 65 00 -31E4:558D E0 E1 E1 E0 DE 01 db 0E0h,0E1h,0E1h,0E0h,0DEh, 01h -31E4:5593 79 12 db 79h, 12h -31E4:5595 000B[00] db 11 dup (0) -31E4:55A0 00 data_835 db 0 ; xref 273F:94FB, 273F:A37B - ; 273F:A888, 273F:A8A4 -31E4:55A1 0000 data_836 dw 0 ; xref 273F:949E, 273F:94F8 -31E4:55A3 04 0A 10 16 05 0B db 04h, 0Ah, 10h, 16h, 05h, 0Bh -31E4:55A9 11 17 06 0C 12 07 db 11h, 17h, 06h, 0Ch, 12h, 07h -31E4:55AF 0D 13 08 0E 14 09 db 0Dh, 13h, 08h, 0Eh, 14h, 09h -31E4:55B5 0F 15 00 00 db 0Fh, 15h, 00h, 00h -31E4:55B9 0007[00] db 7 dup (0) -31E4:55C0 10 63 12 00 00 00 db 10h, 63h, 12h, 00h, 00h, 00h -31E4:55C6 00 00 00 11 63 12 db 00h, 00h, 00h, 11h, 63h, 12h -31E4:55CC 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:55D2 12 63 12 00 00 00 db 12h, 63h, 12h, 00h, 00h, 00h -31E4:55D8 00 00 00 13 63 12 db 00h, 00h, 00h, 13h, 63h, 12h -31E4:55DE 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:55E4 14 63 12 00 00 00 db 14h, 63h, 12h, 00h, 00h, 00h -31E4:55EA 00 00 00 15 63 12 db 00h, 00h, 00h, 15h, 63h, 12h -31E4:55F0 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:55F6 16 63 12 00 00 00 db 16h, 63h, 12h, 00h, 00h, 00h -31E4:55FC 00 00 00 17 63 12 db 00h, 00h, 00h, 17h, 63h, 12h -31E4:5602 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5608 18 63 12 00 00 00 db 18h, 63h, 12h, 00h, 00h, 00h -31E4:560E 00 00 00 19 63 12 db 00h, 00h, 00h, 19h, 63h, 12h -31E4:5614 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:561A 20 63 12 00 00 00 db 20h, 63h, 12h, 00h, 00h, 00h -31E4:5620 00 00 00 21 63 12 db 00h, 00h, 00h, 21h, 63h, 12h -31E4:5626 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -31E4:562B sub_272 proc near -31E4:562B 00 22 add [bp+si],ah -31E4:562D 63 12 00 00 00 00 db 63h, 12h, 00h, 00h, 00h, 00h -31E4:5633 00 00 23 63 12 00 db 00h, 00h, 23h, 63h, 12h, 00h -31E4:5639 00 00 00 00 00 24 db 00h, 00h, 00h, 00h, 00h, 24h -31E4:563F 63 12 00 00 00 00 db 63h, 12h, 00h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 444 - -31E4:5645 00 00 25 63 12 00 db 00h, 00h, 25h, 63h, 12h, 00h -31E4:564B 00 00 00 00 00 26 db 00h, 00h, 00h, 00h, 00h, 26h -31E4:5651 63 12 db 63h, 12h -31E4:5653 000D[00] db 13 dup (0) -31E4:5660 00 music_status db 0 ; xref 273F:092D, 273F:493B - ; 273F:4942, 273F:7619 - ; 273F:93E0, 273F:93E4 - ; 273F:9405, 273F:9FA2 - ; 273F:9FCA, 273F:9FD9 - ; 273F:A016, 273F:A021 - ; 273F:A07C, 273F:A087 - ; 273F:A198, 273F:A1BA - ; 273F:A2D7, 273F:A329 - ; 273F:A330, 273F:A576 - ; 273F:A592, 273F:A5A6 -31E4:5661 00 db 0 -31E4:5662 0000 0000 play_music_proc dw 0, 0 ; xref 273F:04BC, 273F:494B - ; 273F:762D, 273F:933E - ; 273F:9F7C, 273F:9F99 - ; 273F:9FBE, 273F:A0A8 - ; 273F:A0D5, 273F:A150 - ; 273F:A1CE, 273F:A1E9 - ; 273F:A1F8, 273F:A2D1 - ; 273F:A2F3, 273F:A31F - ; 273F:A366, 273F:A3E1 - ; 273F:A43F, 273F:A486 - ; 273F:A589, 273F:A5DA - ; 273F:A6DE -31E4:5666 00 00 db 0, 0 -31E4:5668 00 note_flag db 0 ; xref 273F:48E2, 273F:48E9 - ; 273F:48F0, 273F:48F5 - ; 273F:4908, 273F:4936 - ; 273F:9F77, 273F:9F9D - ; 273F:9FC5, 273F:9FD4 - ; 273F:A2CC, 273F:A335 -31E4:5669 00 data_843 db 0 ; xref 273F:A031, 273F:A1FC -31E4:566A 0007[00] db 7 dup (0) -31E4:5671 8A 1E 1A 03 80 00 db 8Ah, 1Eh, 1Ah, 03h, 80h, 00h -31E4:5677 40 15 00 80 81 40 db 40h, 15h, 00h, 80h, 81h, 40h -31E4:567D 02 02 C8 06 40 15 db 02h, 02h,0C8h, 06h, 40h, 15h -31E4:5683 00 80 12 64 15 00 db 00h, 80h, 12h, 64h, 15h, 00h -31E4:5689 80 13 40 15 00 80 db 80h, 13h, 40h, 15h, 00h, 80h -31E4:568F 11 0A 15 00 40 18 db 11h, 0Ah, 15h, 00h, 40h, 18h -31E4:5695 1E 15 00 80 97 1E db 1Eh, 15h, 00h, 80h, 97h, 1Eh -31E4:569B 19 03 C8 07 7E 15 db 19h, 03h,0C8h, 07h, 7Eh, 15h -31E4:56A1 01 80 08 7E 15 01 db 01h, 80h, 08h, 7Eh, 15h, 01h -31E4:56A7 80 00 40 15 00 0F db 80h, 00h, 40h, 15h, 00h, 0Fh -31E4:56AD 8A 40 1A 03 18 16 db 8Ah, 40h, 1Ah, 03h, 18h, 16h -31E4:56B3 00 15 01 80 15 7F db 00h, 15h, 01h, 80h, 15h, 7Fh -31E4:56B9 06 01 80 8F 0A 11 db 06h, 01h, 80h, 8Fh, 0Ah, 11h -31E4:56BF 03 1C 41 64 15 01 db 03h, 1Ch, 41h, 64h, 15h, 01h -31E4:56C5 80 10 64 16 01 02 db 80h, 10h, 64h, 16h, 01h, 02h -31E4:56CB 97 8C 19 03 08 99 db 97h, 8Ch, 19h, 03h, 08h, 99h -31E4:56D1 6A 11 02 6A 2B 80 db 6Ah, 11h, 02h, 6Ah, 2Bh, 80h -31E4:56D7 15 01 80 97 80 19 db 15h, 01h, 80h, 97h, 80h, 19h -31E4:56DD 03 04 2A 80 15 01 db 03h, 04h, 2Ah, 80h, 15h, 01h -31E4:56E3 C8 38 80 15 01 80 db 0C8h, 38h, 80h, 15h, 01h, 80h -31E4:56E9 3A 80 05 00 80 36 db 3Ah, 80h, 05h, 00h, 80h, 36h -31E4:56EF 80 15 00 80 35 80 db 80h, 15h, 00h, 80h, 35h, 80h -31E4:56F5 15 00 80 18 1E 15 db 15h, 00h, 80h, 18h, 1Eh, 15h -31E4:56FB 00 19 18 1E 15 00 db 00h, 19h, 18h, 1Eh, 15h, 00h -31E4:5701 07 02 1E 15 00 80 db 07h, 02h, 1Eh, 15h, 00h, 80h -31E4:5707 04 1E 05 00 80 05 db 04h, 1Eh, 05h, 00h, 80h, 05h -31E4:570D 1E 05 00 80 09 1E db 1Eh, 05h, 00h, 80h, 09h, 1Eh -31E4:5713 15 00 80 0C 80 19 db 15h, 00h, 80h, 0Ch, 80h, 19h -31E4:5719 02 80 83 80 19 00 db 02h, 80h, 83h, 80h, 19h, 00h -31E4:571F 80 1A 80 15 00 80 db 80h, 1Ah, 80h, 15h, 00h, 80h -31E4:5725 22 80 15 00 80 1B db 22h, 80h, 15h, 00h, 80h, 1Bh -31E4:572B 80 1D 00 80 9E 80 db 80h, 1Dh, 00h, 80h, 9Eh, 80h -31E4:5731 19 01 80 9F 80 15 db 19h, 01h, 80h, 9Fh, 80h, 15h -31E4:5737 01 80 21 80 05 01 db 01h, 80h, 21h, 80h, 05h, 01h -31E4:573D 80 2D 80 15 01 80 db 80h, 2Dh, 80h, 15h, 01h, 80h -31E4:5743 30 80 15 01 80 B4 db 30h, 80h, 15h, 01h, 80h,0B4h -31E4:5749 80 15 01 80 23 80 db 80h, 15h, 01h, 80h, 23h, 80h -31E4:574F 11 01 80 24 80 11 db 11h, 01h, 80h, 24h, 80h, 11h -31E4:5755 01 80 25 80 11 01 db 01h, 80h, 25h, 80h, 11h, 01h -31E4:575B 80 26 80 11 01 80 db 80h, 26h, 80h, 11h, 01h, 80h -31E4:5761 27 80 11 01 80 28 db 27h, 80h, 11h, 01h, 80h, 28h -31E4:5767 80 11 01 C8 42 64 db 80h, 11h, 01h,0C8h, 42h, 64h -31E4:576D 15 01 80 29 80 15 db 15h, 01h, 80h, 29h, 80h, 15h -31E4:5773 01 80 3F 80 15 01 db 01h, 80h, 3Fh, 80h, 15h, 01h -31E4:5779 80 FF 00 db 80h,0FFh, 00h -31E4:577C 00 00 00 00 db 0, 0, 0, 0 -31E4:5780 0000 palette_segment dw 0 ; xref 273F:A346, 273F:A850 -31E4:5782 0000 misc_segment dw 0 ; xref 273F:A2C2, 273F:A2E1 - ; 273F:A30D, 273F:A33A - ; 273F:A342, 273F:A352 - ; 273F:A5B2, 273F:A667 - ; 273F:A6BE, 273F:A7C7 - ; 273F:A7EC, 273F:A7FB -31E4:5784 0000 decoded_data_end_segment dw 0 ; xref 273F:A7CF, 273F:A803 - -31E4:5786 09 00 45 01 02 01 db 09h, 00h, 45h, 01h, 02h, 01h -31E4:578C 00 1B 00 48 01 05 db 00h, 1Bh, 00h, 48h, 01h, 05h -31E4:5792 01 00 18 00 46 01 db 01h, 00h, 18h, 00h, 46h, 01h -31E4:5798 03 01 02 18 00 37 db 03h, 01h, 02h, 18h, 00h, 37h -31E4:579E 01 01 01 00 03 00 db 01h, 01h, 01h, 00h, 03h, 00h -31E4:57A4 37 01 01 01 01 03 db 37h, 01h, 01h, 01h, 01h, 03h -31E4:57AA 00 37 01 01 01 02 db 00h, 37h, 01h, 01h, 01h, 02h -31E4:57B0 03 00 37 01 01 01 db 03h, 00h, 37h, 01h, 01h, 01h -31E4:57B6 03 03 00 37 01 01 db 03h, 03h, 00h, 37h, 01h, 01h -31E4:57BC 01 04 04 00 37 01 db 01h, 04h, 04h, 00h, 37h, 01h -31E4:57C2 01 01 05 07 00 47 db 01h, 01h, 05h, 07h, 00h, 47h -31E4:57C8 01 04 01 06 1F 00 db 01h, 04h, 01h, 06h, 1Fh, 00h -31E4:57CE 00 00 06 01 00 db 00h, 00h, 06h, 01h, 00h -31E4:57D3 000D[00] db 13 dup (0) - - hotspot_script_master_list -31E4:57E0 F0 02 80 00 AE 0B db 0F0h, 02h, 80h, 00h,0AEh, 0Bh -31E4:57E6 84 0C B2 0C 08 0D db 84h, 0Ch,0B2h, 0Ch, 08h, 0Dh -31E4:57EC 00 04 1E 26 C2 26 db 00h, 04h, 1Eh, 26h,0C2h, 26h -31E4:57F2 08 27 78 26 DA 09 db 08h, 27h, 78h, 26h,0DAh, 09h -31E4:57F8 E0 09 4C 04 52 0F db 0E0h, 09h, 4Ch, 04h, 52h, 0Fh -31E4:57FE F0 0A 00 00 00 00 db 0F0h, 0Ah, 00h, 00h, 00h, 00h -31E4:5804 00 00 82 02 22 03 db 00h, 00h, 82h, 02h, 22h, 03h -31E4:580A 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h - -; This animation pixel block is referenced by the pixel block for rooms - -31E4:5810 08 40 01 voice_anim_block db 08h, 40h, 01h - -31E4:5813 0000 voice_pixel_segment dw 0 -31E4:5815 0000 dw 0 -31E4:5817 0000 voice_frame_offset dw 0 - -31E4:5819 10 43 12 db 10h, 43h, 12h -31E4:581C 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5822 12 43 12 00 00 00 db 12h, 43h, 12h, 00h, 00h, 00h -31E4:5828 00 00 00 13 43 12 db 00h, 00h, 00h, 13h, 43h, 12h -31E4:582E 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5834 17 41 12 00 00 00 db 17h, 41h, 12h, 00h, 00h, 00h -31E4:583A 00 00 00 11 db 00h, 00h, 00h, 11h -31E4:583E 41 db 41h -31E4:583F 0007[00] db 7 dup (0) -31E4:5846 10 42 12 00 00 00 db 10h, 42h, 12h, 00h, 00h, 00h -31E4:584C 00 00 00 12 41 12 db 00h, 00h, 00h, 12h, 41h, 12h -31E4:5852 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5858 11 42 12 00 00 00 db 11h, 42h, 12h, 00h, 00h, 00h -31E4:585E 00 00 00 10 91 12 db 00h, 00h, 00h, 10h, 91h, 12h -31E4:5864 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:586A 10 9D 12 00 00 00 db 10h, 9Dh, 12h, 00h, 00h, 00h -31E4:5870 00 00 00 11 9D 12 db 00h, 00h, 00h, 11h, 9Dh, 12h -31E4:5876 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:587C 11 A0 12 00 00 00 db 11h,0A0h, 12h, 00h, 00h, 00h -31E4:5882 00 00 00 10 8C 12 db 00h, 00h, 00h, 10h, 8Ch, 12h -31E4:5888 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:588E 10 A0 12 00 00 00 db 10h,0A0h, 12h, 00h, 00h, 00h -31E4:5894 00 00 00 db 00h, 00h, 00h, -31E4:5897 4114 anim_entry_1: dw 4114h ; Disk res for anim contents? -31E4:5899 12 db 12h -31E4:589A 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:58A0 11 44 04 00 00 00 db 11h, 44h, 04h, 00h, 00h, 00h -31E4:58A6 00 00 00 12 42 12 db 00h, 00h, 00h, 12h, 42h, 12h -31E4:58AC 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:58B2 11 87 12 00 00 00 db 11h, 87h, 12h, 00h, 00h, 00h -31E4:58B8 00 00 00 10 87 12 db 00h, 00h, 00h, 10h, 87h, 12h -31E4:58BE 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:58C4 13 41 12 00 00 00 db 13h, 41h, 12h, 00h, 00h, 00h -31E4:58CA 00 00 00 15 41 12 db 00h, 00h, 00h, 15h, 41h, 12h -31E4:58D0 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:58D6 12 44 12 00 00 00 db 12h, 44h, 12h, 00h, 00h, 00h -31E4:58DC 00 00 00 16 41 12 db 00h, 00h, 00h, 16h, 41h, 12h -31E4:58E2 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:58E8 10 9C 12 00 00 00 db 10h, 9Ch, 12h, 00h, 00h, 00h -31E4:58EE 00 00 00 10 93 12 db 00h, 00h, 00h, 10h, 93h, 12h -31E4:58F4 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:58FA 10 9E 12 00 00 00 db 10h, 9Eh, 12h, 00h, 00h, 00h -31E4:5900 00 00 00 10 8E 12 db 00h, 00h, 00h, 10h, 8Eh, 12h -31E4:5906 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:590C 10 9F 12 00 00 00 db 10h, 9Fh, 12h, 00h, 00h, 00h -31E4:5912 00 00 00 11 9C 12 db 00h, 00h, 00h, 11h, 9Ch, 12h -31E4:5918 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:591E 11 9F 12 00 00 00 db 11h, 9Fh, 12h, 00h, 00h, 00h -31E4:5924 00 00 00 13 9E 12 db 00h, 00h, 00h, 13h, 9Eh, 12h -31E4:592A 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5930 16 9E 12 00 00 00 db 16h, 9Eh, 12h, 00h, 00h, 00h -31E4:5936 00 00 00 12 9C 12 db 00h, 00h, 00h, 12h, 9Ch, 12h -31E4:593C 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5942 11 94 12 00 00 00 db 11h, 94h, 12h, 00h, 00h, 00h -31E4:5948 00 00 00 12 A0 12 db 00h, 00h, 00h, 12h,0A0h, 12h -31E4:594E 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5954 11 8C 12 00 00 00 db 11h, 8Ch, 12h, 00h, 00h, 00h -31E4:595A 00 00 00 10 A4 12 db 00h, 00h, 00h, 10h,0A4h, 12h -31E4:5960 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5966 10 94 12 00 00 00 db 10h, 94h, 12h, 00h, 00h, 00h -31E4:596C 00 00 00 12 9F 12 db 00h, 00h, 00h, 12h, 9Fh, 12h -31E4:5972 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5978 13 9F 12 00 00 00 db 13h, 9Fh, 12h, 00h, 00h, 00h -31E4:597E 00 00 00 12 9E 12 db 00h, 00h, 00h, 12h, 9Eh, 12h -31E4:5984 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:598A 10 8F 12 00 00 00 db 10h, 8Fh, 12h, 00h, 00h, 00h -31E4:5990 00 00 00 12 9D 12 db 00h, 00h, 00h, 12h, 9Dh, 12h -31E4:5996 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:599C 20 8A 12 00 00 00 db 20h, 8Ah, 12h, 00h, 00h, 00h -31E4:59A2 00 00 00 10 A2 12 db 00h, 00h, 00h, 10h,0A2h, 12h -31E4:59A8 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:59AE 12 66 12 00 00 00 db 12h, 66h, 12h, 00h, 00h, 00h -31E4:59B4 00 00 00 10 66 12 db 00h, 00h, 00h, 10h, 66h, 12h -31E4:59BA 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:59C0 11 66 12 00 00 00 db 11h, 66h, 12h, 00h, 00h, 00h -31E4:59C6 00 00 00 13 66 12 db 00h, 00h, 00h, 13h, 66h, 12h -31E4:59CC 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:59D2 10 69 12 00 00 00 db 10h, 69h, 12h, 00h, 00h, 00h -31E4:59D8 00 00 00 04 ED 12 db 00h, 00h, 00h, 04h,0EDh, 12h -31E4:59DE 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:59E4 10 A3 12 00 00 00 db 10h,0A3h, 12h, 00h, 00h, 00h -31E4:59EA 00 00 00 11 A3 12 db 00h, 00h, 00h, 11h,0A3h, 12h -31E4:59F0 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -31E4:59F5 sub_273: -31E4:59F5 00 11 add [bx+di],dl -31E4:59F7 69 12 00 00 00 00 db 69h, 12h, 00h, 00h, 00h, 00h -31E4:59FD 00 00 12 69 12 00 db 00h, 00h, 12h, 69h, 12h, 00h -31E4:5A03 00 00 00 00 00 13 db 00h, 00h, 00h, 00h, 00h, 13h -31E4:5A09 69 12 00 00 00 00 db 69h, 12h, 00h, 00h, 00h, 00h -31E4:5A0F 00 00 14 69 12 00 db 00h, 00h, 14h, 69h, 12h, 00h -31E4:5A15 00 00 00 00 00 16 db 00h, 00h, 00h, 00h, 00h, 16h -31E4:5A1B EF 12 00 00 00 00 db 0EFh, 12h, 00h, 00h, 00h, 00h -31E4:5A21 00 00 10 EA 12 00 db 00h, 00h, 10h,0EAh, 12h, 00h -31E4:5A27 00 00 00 00 00 15 db 00h, 00h, 00h, 00h, 00h, 15h -31E4:5A2D EF 12 00 00 00 00 db 0EFh, 12h, 00h, 00h, 00h, 00h -31E4:5A33 00 00 14 EF 12 00 db 00h, 00h, 14h,0EFh, 12h, 00h -31E4:5A39 00 00 00 00 00 13 db 00h, 00h, 00h, 00h, 00h, 13h -31E4:5A3F EF 12 00 00 00 00 db 0EFh, 12h, 00h, 00h, 00h, 00h -31E4:5A45 00 00 11 EA 12 00 db 00h, 00h, 11h,0EAh, 12h, 00h -31E4:5A4B 00 00 00 00 00 10 db 00h, 00h, 00h, 00h, 00h, 10h -31E4:5A51 EF 12 00 00 00 00 db 0EFh, 12h, 00h, 00h, 00h, 00h -31E4:5A57 00 00 11 EF 12 00 db 00h, 00h, 11h,0EFh, 12h, 00h -31E4:5A5D 00 00 00 00 00 12 db 00h, 00h, 00h, 00h, 00h, 12h -31E4:5A63 EF 12 00 00 00 00 db 0EFh, 12h, 00h, 00h, 00h, 00h -31E4:5A69 00 00 17 63 12 00 db 00h, 00h, 17h, 63h, 12h, 00h -31E4:5A6F 00 00 00 00 00 27 db 00h, 00h, 00h, 00h, 00h, 27h -31E4:5A75 63 12 00 00 00 00 db 63h, 12h, 00h, 00h, 00h, 00h -31E4:5A7B 00 00 28 63 12 00 db 00h, 00h, 28h, 63h, 12h, 00h -31E4:5A81 00 00 00 00 00 17 db 00h, 00h, 00h, 00h, 00h, 17h -31E4:5A87 EF 12 00 00 00 00 db 0EFh, 12h, 00h, 00h, 00h, 00h -31E4:5A8D 00 00 12 8E 12 00 db 00h, 00h, 12h, 8Eh, 12h, 00h -31E4:5A93 00 00 00 00 00 11 db 00h, 00h, 00h, 00h, 00h, 11h -31E4:5A99 8E 12 00 00 00 00 db 8Eh, 12h, 00h, 00h, 00h, 00h -31E4:5A9F 00 00 14 9D 12 00 db 00h, 00h, 14h, 9Dh, 12h, 00h -31E4:5AA5 00 00 00 00 00 11 db 00h, 00h, 00h, 00h, 00h, 11h -31E4:5AAB A2 12 00 00 00 00 db 0A2h, 12h, 00h, 00h, 00h, 00h -31E4:5AB1 00 00 13 9D 12 00 db 00h, 00h, 13h, 9Dh, 12h, 00h -31E4:5AB7 00 00 00 00 00 06 db 00h, 00h, 00h, 00h, 00h, 06h -31E4:5ABD EB 12 00 00 00 00 db 0EBh, 12h, 00h, 00h, 00h, 00h -31E4:5AC3 00 00 05 EB 12 00 db 00h, 00h, 05h,0EBh, 12h, 00h -31E4:5AC9 00 00 00 00 00 02 db 00h, 00h, 00h, 00h, 00h, 02h -31E4:5ACF EB 12 00 00 00 00 db 0EBh, 12h, 00h, 00h, 00h, 00h -31E4:5AD5 00 00 03 EB 12 00 db 00h, 00h, 03h,0EBh, 12h, 00h -31E4:5ADB 00 00 00 00 00 04 db 00h, 00h, 00h, 00h, 00h, 04h -31E4:5AE1 EB 12 00 00 00 00 db 0EBh, 12h, 00h, 00h, 00h, 00h -31E4:5AE7 00 00 12 EA 12 00 db 00h, 00h, 12h,0EAh, 12h, 00h -31E4:5AED 00 00 00 00 00 13 db 00h, 00h, 00h, 00h, 00h, 13h -31E4:5AF3 EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5AF9 00 00 14 EA 12 00 db 00h, 00h, 14h,0EAh, 12h, 00h -31E4:5AFF 00 00 00 00 00 15 db 00h, 00h, 00h, 00h, 00h, 15h -31E4:5B05 EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B0B 00 00 16 EA 12 00 db 00h, 00h, 16h,0EAh, 12h, 00h -31E4:5B11 00 00 00 00 00 17 db 00h, 00h, 00h, 00h, 00h, 17h -31E4:5B17 EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B1D 00 00 18 EA 12 00 db 00h, 00h, 18h,0EAh, 12h, 00h -31E4:5B23 00 00 00 00 00 19 db 00h, 00h, 00h, 00h, 00h, 19h -31E4:5B29 EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B2F 00 00 20 EA 12 00 db 00h, 00h, 20h,0EAh, 12h, 00h -31E4:5B35 00 00 00 00 00 21 db 00h, 00h, 00h, 00h, 00h, 21h -31E4:5B3B EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B41 00 00 22 EA 12 00 db 00h, 00h, 22h,0EAh, 12h, 00h -31E4:5B47 00 00 00 00 00 23 db 00h, 00h, 00h, 00h, 00h, 23h -31E4:5B4D EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B53 00 00 24 EA 12 00 db 00h, 00h, 24h,0EAh, 12h, 00h -31E4:5B59 00 00 00 00 00 25 db 00h, 00h, 00h, 00h, 00h, 25h -31E4:5B5F EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B65 00 00 26 EA 12 00 db 00h, 00h, 26h,0EAh, 12h, 00h -31E4:5B6B 00 00 00 00 00 27 db 00h, 00h, 00h, 00h, 00h, 27h -31E4:5B71 EA 12 00 00 00 00 db 0EAh, 12h, 00h, 00h, 00h, 00h -31E4:5B77 00 00 13 9C 12 00 db 00h, 00h, 13h, 9Ch, 12h, 00h -31E4:5B7D 00 00 00 00 00 14 db 00h, 00h, 00h, 00h, 00h, 14h -31E4:5B83 9C 12 00 00 00 00 db 9Ch, 12h, 00h, 00h, 00h, 00h -31E4:5B89 00 00 0A 8D 12 00 db 00h, 00h, 0Ah, 8Dh, 12h, 00h -31E4:5B8F 00 00 00 00 00 0B db 00h, 00h, 00h, 00h, 00h, 0Bh -31E4:5B95 8D 12 00 00 00 00 db 8Dh, 12h, 00h, 00h, 00h, 00h -31E4:5B9B 00 00 0C 8D 12 00 db 00h, 00h, 0Ch, 8Dh, 12h, 00h -31E4:5BA1 00 00 00 00 00 0D db 00h, 00h, 00h, 00h, 00h, 0Dh -31E4:5BA7 8D 12 00 00 00 00 db 8Dh, 12h, 00h, 00h, 00h, 00h -31E4:5BAD 00 00 15 69 12 00 db 00h, 00h, 15h, 69h, 12h, 00h -31E4:5BB3 00 00 00 00 00 0F db 00h, 00h, 00h, 00h, 00h, 0Fh -31E4:5BB9 00 FC FF 00 00 0E db 00h,0FCh,0FFh, 00h, 00h, 0Eh -31E4:5BBF 00 FC FF 00 00 0D db 00h,0FCh,0FFh, 00h, 00h, 0Dh -31E4:5BC5 00 FC FF 00 00 0C db 00h,0FCh,0FFh, 00h, 00h, 0Ch -31E4:5BCB 00 FC FF 00 00 0B db 00h,0FCh,0FFh, 00h, 00h, 0Bh -31E4:5BD1 00 FC FF 00 00 0A db 00h,0FCh,0FFh, 00h, 00h, 0Ah -31E4:5BD7 00 FC FF 00 00 09 db 00h,0FCh,0FFh, 00h, 00h, 09h -31E4:5BDD 00 FC FF 00 00 08 db 00h,0FCh,0FFh, 00h, 00h, 08h -31E4:5BE3 00 FC FF 00 00 FF db 00h,0FCh,0FFh, 00h, 00h,0FFh -31E4:5BE9 FF 00 00 04 00 00 db 0FFh, 00h, 00h, 04h, 00h, 00h -31E4:5BEF 00 01 00 04 00 00 db 00h, 01h, 00h, 04h, 00h, 00h -31E4:5BF5 00 02 00 04 00 00 db 00h, 02h, 00h, 04h, 00h, 00h -31E4:5BFB 00 03 00 04 00 00 db 00h, 03h, 00h, 04h, 00h, 00h -31E4:5C01 00 04 00 04 00 00 db 00h, 04h, 00h, 04h, 00h, 00h -31E4:5C07 00 05 00 04 00 00 db 00h, 05h, 00h, 04h, 00h, 00h -31E4:5C0D 00 06 00 04 00 00 db 00h, 06h, 00h, 04h, 00h, 00h -31E4:5C13 00 07 00 04 00 00 db 00h, 07h, 00h, 04h, 00h, 00h -31E4:5C19 00 FF FF 18 00 00 db 00h,0FFh,0FFh, 18h, 00h, 00h -31E4:5C1F 00 FE FF 19 00 00 db 00h,0FEh,0FFh, 19h, 00h, 00h -31E4:5C25 00 FE FF 1A 00 00 db 00h,0FEh,0FFh, 1Ah, 00h, 00h -31E4:5C2B 00 FE FF 1B 00 00 db 00h,0FEh,0FFh, 1Bh, 00h, 00h -31E4:5C31 00 FE FF 1C 00 00 db 00h,0FEh,0FFh, 1Ch, 00h, 00h -31E4:5C37 00 FE FF 1D 00 00 db 00h,0FEh,0FFh, 1Dh, 00h, 00h -31E4:5C3D 00 FE FF 1E 00 00 db 00h,0FEh,0FFh, 1Eh, 00h, 00h -31E4:5C43 00 FE FF 1F 00 00 db 00h,0FEh,0FFh, 1Fh, 00h, 00h -31E4:5C49 00 FE FF FF FF 10 db 00h,0FEh,0FFh,0FFh,0FFh, 10h -31E4:5C4F 00 00 00 02 00 11 db 00h, 00h, 00h, 02h, 00h, 11h -31E4:5C55 00 00 00 02 00 12 db 00h, 00h, 00h, 02h, 00h, 12h -31E4:5C5B 00 00 00 02 00 13 db 00h, 00h, 00h, 02h, 00h, 13h -31E4:5C61 00 00 00 02 00 14 db 00h, 00h, 00h, 02h, 00h, 14h -31E4:5C67 00 00 00 02 00 15 db 00h, 00h, 00h, 02h, 00h, 15h -31E4:5C6D 00 00 00 02 00 16 db 00h, 00h, 00h, 02h, 00h, 16h -31E4:5C73 00 00 00 02 00 17 db 00h, 00h, 00h, 02h, 00h, 17h -31E4:5C79 00 00 00 02 00 FF db 00h, 00h, 00h, 02h, 00h,0FFh -31E4:5C7F FF db 0FFh -31E4:5C80 20 41 db 20h, 41h -31E4:5C82 0007[00] db 7 dup (0) -31E4:5C89 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5C8F EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5C95 21 41 00 00 00 00 db 21h, 41h, 00h, 00h, 00h, 00h -31E4:5C9B 00 00 00 1C 5C 4E db 00h, 00h, 00h, 1Ch, 5Ch, 4Eh -31E4:5CA1 5C B8 5B EA 5B 23 db 5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h -31E4:5CA7 22 21 20 17 9E db 22h, 21h, 20h, 17h, 9Eh -31E4:5CAC 0007[00] db 7 dup (0) -31E4:5CB3 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5CB9 EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5CBF 11 43 00 00 00 00 db 11h, 43h, 00h, 00h, 00h, 00h -31E4:5CC5 00 00 00 1C 5C 4E db 00h, 00h, 00h, 1Ch, 5Ch, 4Eh -31E4:5CCB 5C B8 5B EA 5B 23 db 5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h -31E4:5CD1 22 21 20 10 44 00 db 22h, 21h, 20h, 10h, 44h, 00h -31E4:5CD7 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5CDD 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5CE3 EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5CE9 12 8A 00 00 00 00 db 12h, 8Ah, 00h, 00h, 00h, 00h -31E4:5CEF 00 00 00 1C 5C 4E db 00h, 00h, 00h, 1Ch, 5Ch, 4Eh -31E4:5CF5 5C B8 5B EA 5B 23 db 5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h -31E4:5CFB 22 21 20 13 8A 00 db 22h, 21h, 20h, 13h, 8Ah, 00h -31E4:5D01 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5D07 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5D0D EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5D13 10 8A 00 00 00 00 db 10h, 8Ah, 00h, 00h, 00h, 00h -31E4:5D19 00 00 00 1C 5C 4E db 00h, 00h, 00h, 1Ch, 5Ch, 4Eh -31E4:5D1F 5C B8 5B EA 5B 23 db 5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h -31E4:5D25 22 21 20 14 9F db 22h, 21h, 20h, 14h, 9Fh -31E4:5D2A 0007[00] db 7 dup (0) -31E4:5D31 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5D37 EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5D3D 14 A4 db 14h,0A4h -31E4:5D3F 0007[00] db 7 dup (0) -31E4:5D46 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5D4C EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5D52 11 A4 00 00 00 00 db 11h,0A4h, 00h, 00h, 00h, 00h -31E4:5D58 00 00 00 1C 5C 4E db 00h, 00h, 00h, 1Ch, 5Ch, 4Eh -31E4:5D5E 5C B8 5B EA 5B 23 db 5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h -31E4:5D64 22 21 20 18 EF db 22h, 21h, 20h, 18h,0EFh -31E4:5D69 0007[00] db 7 dup (0) -31E4:5D70 1C 5C 4E 5C B8 5B db 1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh -31E4:5D76 EA 5B 23 22 21 20 db 0EAh, 5Bh, 23h, 22h, 21h, 20h -31E4:5D7C 00 00 00 00 52 00 db 00h, 00h, 00h, 00h, 52h, 00h -31E4:5D82 000E[00] db 14 dup (0) - - -31E4:5D90 00 write_buffer db 0 ; xref 273F:8F8D -31E4:5D91 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 -31E4:5D97 00 db 0 - -31E4:5D98 EF hotspot_table_2 db 0EFh -31E4:5D99 6C 47 00 00 00 00 db 6Ch, 47h, 00h, 00h, 00h, 00h -31E4:5D9F 00 00 B9 70 F1 00 db 00h, 00h,0B9h, 70h,0F1h, 00h -31E4:5DA5 33 01 00 00 03 67 db 33h, 01h, 00h, 00h, 03h, 67h -31E4:5DAB 6D 49 00 E2 00 00 db 6Dh, 49h, 00h,0E2h, 00h, 00h -31E4:5DB1 00 01 CE 72 7A 01 db 00h, 01h,0CEh, 72h, 7Ah, 01h -31E4:5DB7 D0 08 00 00 02 C2 db 0D0h, 08h, 00h, 00h, 02h,0C2h -31E4:5DBD 77 7A 01 D8 08 00 db 77h, 7Ah, 01h,0D8h, 08h, 00h -31E4:5DC3 00 02 E1 79 7A 01 db 00h, 02h,0E1h, 79h, 7Ah, 01h -31E4:5DC9 DC 08 00 00 02 1F db 0DCh, 08h, 00h, 00h, 02h, 1Fh -31E4:5DCF 7B 7A 01 12 0B 00 db 7Bh, 7Ah, 01h, 12h, 0Bh, 00h -31E4:5DD5 00 02 21 7D 55 08 db 00h, 02h, 21h, 7Dh, 55h, 08h -31E4:5DDB 56 08 00 00 06 18 db 56h, 08h, 00h, 00h, 06h, 18h -31E4:5DE1 7C 7A 01 26 0B 00 db 7Ch, 7Ah, 01h, 26h, 0Bh, 00h -31E4:5DE7 00 02 E6 6D 49 00 db 00h, 02h,0E6h, 6Dh, 49h, 00h -31E4:5DED FE 0B 00 00 02 50 db 0FEh, 0Bh, 00h, 00h, 02h, 50h -31E4:5DF3 71 7A 01 A4 0F 00 db 71h, 7Ah, 01h,0A4h, 0Fh, 00h -31E4:5DF9 00 08 E9 6F 49 00 db 00h, 08h,0E9h, 6Fh, 49h, 00h -31E4:5DFF DF 0F 00 00 00 FF db 0DFh, 0Fh, 00h, 00h, 00h,0FFh -31E4:5E05 FF 00 00 00 00 00 db 0FFh, 00h, 00h, 00h, 00h, 00h -31E4:5E0B 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:5E11 00 00 00 00 00 FF db 00h, 00h, 00h, 00h, 00h,0FFh -31E4:5E17 FF 00 00 00 00 00 db 0FFh, 00h, 00h, 00h, 00h, 00h -31E4:5E1D 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:5E23 00 00 00 00 00 FF db 00h, 00h, 00h, 00h, 00h,0FFh -31E4:5E29 FF 00 00 00 00 00 db 0FFh, 00h, 00h, 00h, 00h, 00h -31E4:5E2F 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:5E35 00 00 00 00 00 FF db 00h, 00h, 00h, 00h, 00h,0FFh -31E4:5E3B FF 00 00 00 00 00 db 0FFh, 00h, 00h, 00h, 00h, 00h -31E4:5E41 00 00 FF db 00h, 00h,0FFh - - ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -31E4:5E44 sub_274: -31E4:5E44 FF 00 inc word ptr [bx+si] -31E4:5E46 00 00 00 00 00 db 0, 0, 0, 0, 0 -31E4:5E4B loc_2130: -31E4:5E4B 00 FF add bh,bh -31E4:5E4D FF 00 inc word ptr [bx+si] -31E4:5E4F 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5E55 FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:5E5B 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:5E61 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5E67 FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:5E6D 00 00 db 00h, 00h -31E4:5E6F loc_2131: -31E4:5E6F 00 FF add bh,bh -31E4:5E71 FF 00 inc word ptr [bx+si] -31E4:5E73 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5E79 FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:5E7F 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:5E85 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5E8B FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:5E91 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:5E97 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5E9D FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:5EA3 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:5EA9 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5EAF FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:5EB5 00 00 00 db 00h, 00h, 00h -31E4:5EB8 07 hotspot_table_5 db 7 ; xref 273F:1CA1, 273F:1CEE -31E4:5EB9 7E 8B 40 AC 00 00 db 7Eh, 8Bh, 40h,0ACh, 00h, 00h -31E4:5EBF 00 01 B0 81 8B 40 db 00h, 01h,0B0h, 81h, 8Bh, 40h -31E4:5EC5 AC 00 00 00 01 DB db 0ACh, 00h, 00h, 00h, 01h,0DBh -31E4:5ECB 81 8B 40 AC 00 00 db 81h, 8Bh, 40h,0ACh, 00h, 00h -31E4:5ED1 00 01 db 00h, 01h -31E4:5ED3 0009[00] db 9 dup (0) -31E4:5EDC EA 6A CD 40 5C 01 db 0EAh, 6Ah,0CDh, 40h, 5Ch, 01h -31E4:5EE2 00 00 01 FB 83 EE db 00h, 00h, 01h,0FBh, 83h,0EEh -31E4:5EE8 40 EF 00 00 00 01 db 40h,0EFh, 00h, 00h, 00h, 01h -31E4:5EEE C6 7E 00 00 00 00 db 0C6h, 7Eh, 00h, 00h, 00h, 00h -31E4:5EF4 00 00 00 D2 7F 8B db 00h, 00h, 00h,0D2h, 7Fh, 8Bh -31E4:5EFA 40 AC 00 00 00 01 db 40h,0ACh, 00h, 00h, 00h, 01h -31E4:5F00 05 80 8F 20 E1 00 db 05h, 80h, 8Fh, 20h,0E1h, 00h -31E4:5F06 00 00 01 37 80 48 db 00h, 00h, 01h, 37h, 80h, 48h -31E4:5F0C 00 E0 00 00 00 01 db 00h,0E0h, 00h, 00h, 00h, 01h -31E4:5F12 81 80 92 20 DA 00 db 81h, 80h, 92h, 20h,0DAh, 00h -31E4:5F18 00 00 01 00 db 00h, 00h, 01h, 00h -31E4:5F1C 001A[00] db 26 dup (0) -31E4:5F36 A7 7F 00 00 00 00 db 0A7h, 7Fh, 00h, 00h, 00h, 00h -31E4:5F3C 00 00 00 7C 7F 35 db 00h, 00h, 00h, 7Ch, 7Fh, 35h -31E4:5F42 21 36 01 00 00 02 db 21h, 36h, 01h, 00h, 00h, 02h -31E4:5F48 F0 7E D3 40 23 01 db 0F0h, 7Eh,0D3h, 40h, 23h, 01h -31E4:5F4E 00 00 01 06 82 D3 db 00h, 00h, 01h, 06h, 82h,0D3h -31E4:5F54 40 D4 00 00 00 01 db 40h,0D4h, 00h, 00h, 00h, 01h -31E4:5F5A 31 82 00 00 00 00 db 31h, 82h, 00h, 00h, 00h, 00h -31E4:5F60 00 00 00 5C 82 D5 db 00h, 00h, 00h, 5Ch, 82h,0D5h -31E4:5F66 00 D9 00 00 00 01 db 00h,0D9h, 00h, 00h, 00h, 01h -31E4:5F6C 1F 7F 00 00 00 00 db 1Fh, 7Fh, 00h, 00h, 00h, 00h -31E4:5F72 00 00 00 49 7F db 00h, 00h, 00h, 49h, 7Fh -31E4:5F77 0007[00] db 7 dup (0) -31E4:5F7E 3A 7E 8B 40 AC 00 db 3Ah, 7Eh, 8Bh, 40h,0ACh, 00h -31E4:5F84 00 00 01 55 88 7A db 00h, 00h, 01h, 55h, 88h, 7Ah -31E4:5F8A 01 A6 08 00 00 02 db 01h,0A6h, 08h, 00h, 00h, 02h -31E4:5F90 D1 80 7A 01 8E 08 db 0D1h, 80h, 7Ah, 01h, 8Eh, 08h -31E4:5F96 00 00 02 05 8C 7A db 00h, 00h, 02h, 05h, 8Ch, 7Ah -31E4:5F9C 01 CD 08 00 00 02 db 01h,0CDh, 08h, 00h, 00h, 02h -31E4:5FA2 71 8D 7A 01 66 08 db 71h, 8Dh, 7Ah, 01h, 66h, 08h -31E4:5FA8 00 00 02 85 8E 00 db 00h, 00h, 02h, 85h, 8Eh, 00h -31E4:5FAE 00 00 00 00 00 02 db 00h, 00h, 00h, 00h, 00h, 02h -31E4:5FB4 70 7E 4E 48 4F 08 db 70h, 7Eh, 4Eh, 48h, 4Fh, 08h -31E4:5FBA 00 00 02 9B 7E 00 db 00h, 00h, 02h, 9Bh, 7Eh, 00h -31E4:5FC0 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:5FC6 B6 8D 49 00 7A 0C db 0B6h, 8Dh, 49h, 00h, 7Ah, 0Ch -31E4:5FCC 00 00 02 40 8E 49 db 00h, 00h, 02h, 40h, 8Eh, 49h -31E4:5FD2 00 8A 08 00 00 02 db 00h, 8Ah, 08h, 00h, 00h, 02h -31E4:5FD8 loc_2132: -31E4:5FD8 FB sti ; Enable interrupts -31E4:5FD9 8D 49 00 lea cx,[bx+di+0] ; Load effective addr -31E4:5FDC 7B 0C jnp loc_2133 ; Jump if not parity -31E4:5FDE 00 00 add [bx+si],al -31E4:5FE0 02 1E 7A81 add bl,ds:data_54e ; (0000:7A81=0D1h) -31E4:5FE4 01 A5 0008 add ds:data_4e[di],sp ; (0000:0008=30h) -31E4:5FE8 00 02 add [bp+si],al -31E4:5FEA loc_2133: ; xref 31E4:5FDC -31E4:5FEA 8C 82 090B mov [bp+si+90Bh],es -31E4:5FEE 0C 09 or al,9 -31E4:5FF0 00 00 add [bx+si],al -31E4:5FF2 02 55 8C add dl,[di-74h] -31E4:5FF5 7A 01 jp loc_2134 ; Jump if parity=1 -31E4:5FF7 54 push sp -31E4:5FF8 loc_2134: ; xref 31E4:5FF5 -31E4:5FF8 09 00 or [bx+si],ax -31E4:5FFA 00 02 add [bp+si],al -31E4:5FFC E7 8C out 8Ch,ax ; port 8Ch ??I/O Non-standard -31E4:5FFE 96 xchg si,ax -31E4:5FFF 09 A6 000A or [bp+0Ah],sp -31E4:6003 00 02 add [bp+si],al -31E4:6005 2C 8D sub al,8Dh -31E4:6007 96 xchg si,ax -31E4:6008 09 A6 000A or [bp+0Ah],sp -31E4:600C 00 02 add [bp+si],al -31E4:600E C2 D482 retn 0D482h - sub_272 endp - -31E4:6011 29 06 0C 00 00 04 db 29h, 06h, 0Ch, 00h, 00h, 04h -31E4:6017 F8 82 D3 29 06 0C db 0F8h, 82h,0D3h, 29h, 06h, 0Ch -31E4:601D 00 00 04 2E 83 D4 db 00h, 00h, 04h, 2Eh, 83h,0D4h -31E4:6023 29 06 0C 00 00 04 db 29h, 06h, 0Ch, 00h, 00h, 04h -31E4:6029 64 83 D3 29 06 0C db 64h, 83h,0D3h, 29h, 06h, 0Ch -31E4:602F 00 00 04 9A 83 D4 db 00h, 00h, 04h, 9Ah, 83h,0D4h -31E4:6035 29 06 0C 00 00 04 db 29h, 06h, 0Ch, 00h, 00h, 04h -31E4:603B D0 83 D3 29 06 0C db 0D0h, 83h,0D3h, 29h, 06h, 0Ch -31E4:6041 00 00 04 B5 8E 0D db 00h, 00h, 04h,0B5h, 8Eh, 0Dh -31E4:6047 0A 93 0B 00 00 04 db 0Ah, 93h, 0Bh, 00h, 00h, 04h -31E4:604D 02 98 00 00 00 00 db 02h, 98h, 00h, 00h, 00h, 00h -31E4:6053 00 00 00 6B 81 7A db 00h, 00h, 00h, 6Bh, 81h, 7Ah -31E4:6059 01 83 0A 00 00 02 db 01h, 83h, 0Ah, 00h, 00h, 02h -31E4:605F 25 8F 49 00 DF 0F db 25h, 8Fh, 49h, 00h,0DFh, 0Fh -31E4:6065 00 00 08 6A 8F 49 db 00h, 00h, 08h, 6Ah, 8Fh, 49h -31E4:606B 00 DF 0F 00 00 08 db 00h,0DFh, 0Fh, 00h, 00h, 08h -31E4:6071 AF 8F 00 00 00 00 db 0AFh, 8Fh, 00h, 00h, 00h, 00h -31E4:6077 00 00 08 CB 95 E8 db 00h, 00h, 08h,0CBh, 95h,0E8h -31E4:607D 0F E9 0F 00 00 08 db 0Fh,0E9h, 0Fh, 00h, 00h, 08h -31E4:6083 F5 95 00 00 00 00 db 0F5h, 95h, 00h, 00h, 00h, 00h -31E4:6089 00 00 08 1F 96 00 db 00h, 00h, 08h, 1Fh, 96h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 453 - -31E4:608F 00 00 00 00 00 08 db 00h, 00h, 00h, 00h, 00h, 08h -31E4:6095 54 96 EA 0F EB 0F db 54h, 96h,0EAh, 0Fh,0EBh, 0Fh -31E4:609B 00 00 08 D8 97 00 db 00h, 00h, 08h,0D8h, 97h, 00h -31E4:60A1 00 00 00 00 00 08 db 00h, 00h, 00h, 00h, 00h, 08h -31E4:60A7 AD 96 db 0ADh, 96h -31E4:60A9 0007[00] db 7 dup (0) -31E4:60B0 D7 96 db 0D7h, 96h -31E4:60B2 0007[00] db 7 dup (0) -31E4:60B9 01 97 00 00 00 00 db 01h, 97h, 00h, 00h, 00h, 00h -31E4:60BF 00 00 00 A2 8C 7A db 00h, 00h, 00h,0A2h, 8Ch, 7Ah -31E4:60C5 01 0A 0C 00 00 02 db 01h, 0Ah, 0Ch, 00h, 00h, 02h -31E4:60CB DA 8F 00 00 00 00 db 0DAh, 8Fh, 00h, 00h, 00h, 00h -31E4:60D1 00 00 02 5A 97 db 00h, 00h, 02h, 5Ah, 97h -31E4:60D6 0007[00] db 7 dup (0) -31E4:60DD 84 97 00 00 00 00 db 84h, 97h, 00h, 00h, 00h, 00h -31E4:60E3 00 00 00 AE 97 00 db 00h, 00h, 00h,0AEh, 97h, 00h -31E4:60E9 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:60EF 05 90 00 00 00 00 db 05h, 90h, 00h, 00h, 00h, 00h -31E4:60F5 00 00 08 30 90 00 db 00h, 00h, 08h, 30h, 90h, 00h -31E4:60FB 00 00 00 00 00 08 db 00h, 00h, 00h, 00h, 00h, 08h -31E4:6101 5B 90 00 00 00 00 db 5Bh, 90h, 00h, 00h, 00h, 00h -31E4:6107 00 00 08 86 90 00 db 00h, 00h, 08h, 86h, 90h, 00h -31E4:610D 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:6113 B1 90 00 00 00 00 db 0B1h, 90h, 00h, 00h, 00h, 00h -31E4:6119 00 00 00 DC 90 db 00h, 00h, 00h,0DCh, 90h -31E4:611E 0007[00] db 7 dup (0) -31E4:6125 07 91 db 07h, 91h -31E4:6127 0007[00] db 7 dup (0) -31E4:612E 32 91 00 00 00 00 db 32h, 91h, 00h, 00h, 00h, 00h -31E4:6134 00 00 00 5D 91 db 00h, 00h, 00h, 5Dh, 91h -31E4:6139 0007[00] db 7 dup (0) -31E4:6140 88 91 00 00 00 00 db 88h, 91h, 00h, 00h, 00h, 00h -31E4:6146 00 00 00 B3 91 00 db 00h, 00h, 00h,0B3h, 91h, 00h -31E4:614C 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:6152 DE 91 db 0DEh, 91h -31E4:6154 0007[00] db 7 dup (0) -31E4:615B 09 92 00 00 00 00 db 09h, 92h, 00h, 00h, 00h, 00h -31E4:6161 00 00 00 34 92 db 00h, 00h, 00h, 34h, 92h -31E4:6166 0007[00] db 7 dup (0) -31E4:616D 5F 92 db 5Fh, 92h -31E4:616F 0007[00] db 7 dup (0) -31E4:6176 8A 92 00 00 00 00 db 8Ah, 92h, 00h, 00h, 00h, 00h -31E4:617C 00 00 00 61 93 db 00h, 00h, 00h, 61h, 93h -31E4:6181 0007[00] db 7 dup (0) -31E4:6188 B5 92 db 0B5h, 92h -31E4:618A 0007[00] db 7 dup (0) -31E4:6191 E0 92 db 0E0h, 92h -31E4:6193 0007[00] db 7 dup (0) -31E4:619A 0B 93 00 00 00 00 db 0Bh, 93h, 00h, 00h, 00h, 00h -31E4:61A0 00 00 00 36 93 00 db 00h, 00h, 00h, 36h, 93h, 00h -31E4:61A6 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:61AC 8C 93 00 00 00 00 db 8Ch, 93h, 00h, 00h, 00h, 00h -31E4:61B2 00 00 00 B7 93 00 db 00h, 00h, 00h,0B7h, 93h, 00h -31E4:61B8 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:61BE E2 93 db 0E2h, 93h -31E4:61C0 0007[00] db 7 dup (0) -31E4:61C7 0D 94 00 00 00 00 db 0Dh, 94h, 00h, 00h, 00h, 00h -31E4:61CD 00 00 00 38 94 db 00h, 00h, 00h, 38h, 94h -31E4:61D2 0007[00] db 7 dup (0) -31E4:61D9 63 94 db 63h, 94h -31E4:61DB 0007[00] db 7 dup (0) -31E4:61E2 8E 94 00 00 00 00 db 8Eh, 94h, 00h, 00h, 00h, 00h -31E4:61E8 00 00 00 B9 94 A7 db 00h, 00h, 00h,0B9h, 94h,0A7h -31E4:61EE 0C A8 0C 00 00 00 db 0Ch,0A8h, 0Ch, 00h, 00h, 00h -31E4:61F4 EC 94 A9 0C AA 0C db 0ECh, 94h,0A9h, 0Ch,0AAh, 0Ch -31E4:61FA 00 00 02 17 95 db 00h, 00h, 02h, 17h, 95h -31E4:61FF 0007[00] db 7 dup (0) -31E4:6206 42 95 db 42h, 95h -31E4:6208 0007[00] db 7 dup (0) -31E4:620F 6D 95 db 6Dh, 95h -31E4:6211 0010[00] db 16 dup (0) -31E4:6221 98 95 db 98h, 95h -31E4:6223 0007[00] db 7 dup (0) -31E4:622A FA 8E 00 00 00 00 db 0FAh, 8Eh, 00h, 00h, 00h, 00h -31E4:6230 00 00 00 D4 db 00h, 00h, 00h,0D4h -31E4:6234 6A db 6Ah -31E4:6235 0007[00] db 7 dup (0) -31E4:623C FF FF db 0FFh,0FFh -31E4:623E 39 hotspot_table_3 db 39h - -31E4:623F 84 6C 40 E7 00 DC db 84h, 6Ch, 40h,0E7h, 00h,0DCh -31E4:6245 00 0F 38 87 6D 20 db 00h, 0Fh, 38h, 87h, 6Dh, 20h -31E4:624B AD 00 00 00 01 70 db 0ADh, 00h, 00h, 00h, 01h, 70h -31E4:6251 87 6D 20 E5 00 00 db 87h, 6Dh, 20h,0E5h, 00h, 00h -31E4:6257 00 01 6E 84 90 40 db 00h, 01h, 6Eh, 84h, 90h, 40h -31E4:625D E4 00 DD 00 0F AE db 0E4h, 00h,0DDh, 00h, 0Fh,0AEh -31E4:6263 87 91 20 DB 00 00 db 87h, 91h, 20h,0DBh, 00h, 00h -31E4:6269 00 01 E6 87 DD 47 db 00h, 01h,0E6h, 87h,0DDh, 47h -31E4:626F 7B 08 00 00 02 1B db 7Bh, 08h, 00h, 00h, 02h, 1Bh -31E4:6275 88 DD 47 7B 08 00 db 88h,0DDh, 47h, 7Bh, 08h, 00h -31E4:627B 00 02 AE 88 DD 47 db 00h, 02h,0AEh, 88h,0DDh, 47h -31E4:6281 31 08 00 00 02 D8 db 31h, 08h, 00h, 00h, 02h,0D8h -31E4:6287 88 DD 47 7B 08 00 db 88h,0DDh, 47h, 7Bh, 08h, 00h -31E4:628D 00 02 10 89 DD 47 db 00h, 02h, 10h, 89h,0DDh, 47h -31E4:6293 7B 08 00 00 02 69 db 7Bh, 08h, 00h, 00h, 02h, 69h -31E4:6299 8A DD 47 7B 08 00 db 8Ah,0DDh, 47h, 7Bh, 08h, 00h -31E4:629F 00 02 98 84 49 41 db 00h, 02h, 98h, 84h, 49h, 41h -31E4:62A5 5B 01 00 00 0F D9 db 5Bh, 01h, 00h, 00h, 0Fh,0D9h -31E4:62AB 86 80 41 81 01 00 db 86h, 80h, 41h, 81h, 01h, 00h -31E4:62B1 00 0F 0E 87 7D 41 db 00h, 0Fh, 0Eh, 87h, 7Dh, 41h -31E4:62B7 62 01 00 00 0F A4 db 62h, 01h, 00h, 00h, 0Fh,0A4h -31E4:62BD 8A DD 47 05 0C 00 db 8Ah,0DDh, 47h, 05h, 0Ch, 00h -31E4:62C3 00 02 4B 89 DD 47 db 00h, 02h, 4Bh, 89h,0DDh, 47h -31E4:62C9 7B 08 00 00 02 75 db 7Bh, 08h, 00h, 00h, 02h, 75h -31E4:62CF 89 DD 47 7B 08 00 db 89h,0DDh, 47h, 7Bh, 08h, 00h -31E4:62D5 00 02 B0 89 DD 47 db 00h, 02h,0B0h, 89h,0DDh, 47h -31E4:62DB 7B 08 00 00 02 DA db 7Bh, 08h, 00h, 00h, 02h,0DAh -31E4:62E1 89 DD 47 7B 08 00 db 89h,0DDh, 47h, 7Bh, 08h, 00h -31E4:62E7 00 02 C7 84 F3 48 db 00h, 02h,0C7h, 84h,0F3h, 48h -31E4:62ED F4 db 0F4h -31E4:62EE loc_2135: -31E4:62EE 08 00 or [bx+si],al -31E4:62F0 00 0F add [bx],cl -31E4:62F2 56 push si -31E4:62F3 86 7B 41 xchg [bp+di+41h],bh -31E4:62F6 7C 01 ;* jl loc_2136 ;*Jump if < -31E4:62F6 7C 01 db 7Ch, 01h -31E4:62F8 00 00 add [bx+si],al -31E4:62FA 0F ;* pop cs ; Dangerous-8088 only -31E4:62FA 0F db 0Fh -31E4:62FB 15 DD8A adc ax,0DD8Ah -31E4:62FE 47 inc di -31E4:62FF 7B 08 ;* jnp loc_2137 ;*Jump if not parity -31E4:62FF 7B 08 db 7Bh, 08h -31E4:6301 00 00 add [bx+si],al -31E4:6303 02 3F add bh,[bx] -31E4:6305 8A DD mov bl,ch -31E4:6307 47 inc di -31E4:6308 7B 08 jnp loc_2138 ; Jump if not parity -31E4:630A 00 00 add [bx+si],al -31E4:630C 02 80 5086 add al,data_822[bx+si] ; (31E4:5086=5Ch) -31E4:6310 41 inc cx -31E4:6311 53 push bx -31E4:6312 loc_2138: ; xref 31E4:6308 -31E4:6312 01 00 add [bx+si],ax -31E4:6314 00 0F add [bx],cl -31E4:6316 AF scasw ; Scan es:[di] for ax -31E4:6317 86 51 41 xchg [bx+di+41h],dl -31E4:631A 52 push dx -31E4:631B 01 00 add [bx+si],ax -31E4:631D 00 0F add [bx],cl -31E4:631F CE into ; Int 4 on overflow -31E4:6320 8A DD mov bl,ch -31E4:6322 47 inc di -31E4:6323 7B 08 jnp $+0Ah ; Jump if not parity -31E4:6325 00 00 add [bx+si],al -31E4:6327 04 09 add al,9 -31E4:6329 8B DD mov bx,bp -31E4:632B 47 inc di -31E4:632C 07 pop es -31E4:632D 0C 00 or al,0 -31E4:632F 00 04 add [si],al -31E4:6331 33 8B 47DD xor cx,[bp+di+47DDh] -31E4:6335 07 pop es -31E4:6336 0C 00 or al,0 -31E4:6338 00 04 add [si],al -31E4:633A 5D pop bp -31E4:633B 8B DD mov bx,bp -31E4:633D 47 inc di -31E4:633E 07 pop es -31E4:633F 0C 00 or al,0 -31E4:6341 00 04 add [si],al -31E4:6343 87 8B 47DD xchg [bp+di+47DDh],cx -31E4:6347 07 pop es -31E4:6348 0C 00 or al,0 -31E4:634A 00 04 add [si],al -31E4:634C B1 8B mov cl,8Bh -31E4:634E DD 47 07 fld qword ptr [bx+7] ; Push onto stack -31E4:6351 0C 00 or al,0 -31E4:6353 00 04 add [si],al -31E4:6355 DB 8B DD 47 07 0C db 0DBh, 8Bh,0DDh, 47h, 07h, 0Ch -31E4:635B 00 00 04 F1 84 5D db 00h, 00h, 04h,0F1h, 84h, 5Dh -31E4:6361 41 5E 01 00 00 0F db 41h, 5Eh, 01h, 00h, 00h, 0Fh -31E4:6367 1B 85 4E 4B 4D 0B db 1Bh, 85h, 4Eh, 4Bh, 4Dh, 0Bh -31E4:636D 00 00 0F 45 85 65 db 00h, 00h, 0Fh, 45h, 85h, 65h -31E4:6373 0B 66 0B 00 00 0F db 0Bh, 66h, 0Bh, 00h, 00h, 0Fh -31E4:6379 6F 85 67 0B 68 0B db 6Fh, 85h, 67h, 0Bh, 68h, 0Bh -31E4:637F 00 00 0F 99 85 7E db 00h, 00h, 0Fh, 99h, 85h, 7Eh -31E4:6385 41 7F 01 00 00 0F db 41h, 7Fh, 01h, 00h, 00h, 0Fh -31E4:638B C8 85 FE 2F 15 10 db 0C8h, 85h,0FEh, 2Fh, 15h, 10h -31E4:6391 14 10 0F F2 85 FF db 14h, 10h, 0Fh,0F2h, 85h,0FFh -31E4:6397 2F 00 10 00 00 08 db 2Fh, 00h, 10h, 00h, 00h, 08h -31E4:639D 27 86 6B 21 6C 01 db 27h, 86h, 6Bh, 21h, 6Ch, 01h -31E4:63A3 00 00 0F 1C 86 74 db 00h, 00h, 0Fh, 1Ch, 86h, 74h -31E4:63A9 81 75 01 00 00 0F db 81h, 75h, 01h, 00h, 00h, 0Fh -31E4:63AF FF FF db 0FFh,0FFh - -31E4:63B1 A3 hotspot_table_4 db 0A3h - -31E4:63B2 6C 86 40 9A 00 00 db 6Ch, 86h, 40h, 9Ah, 00h, 00h -31E4:63B8 00 01 6F 6C EA 40 db 00h, 01h, 6Fh, 6Ch,0EAh, 40h -31E4:63BE EB 00 00 00 01 89 db 0EBh, 00h, 00h, 00h, 01h, 89h -31E4:63C4 6C E8 40 E9 00 00 db 6Ch,0E8h, 40h,0E9h, 00h, 00h -31E4:63CA 00 01 65 6C 04 41 db 00h, 01h, 65h, 6Ch, 04h, 41h -31E4:63D0 05 01 00 00 01 56 db 05h, 01h, 00h, 00h, 01h, 56h -31E4:63D6 6C 06 21 07 01 00 db 6Ch, 06h, 21h, 07h, 01h, 00h -31E4:63DC 00 01 44 6C 1A 21 db 00h, 01h, 44h, 6Ch, 1Ah, 21h -31E4:63E2 1B 01 00 00 01 35 db 1Bh, 01h, 00h, 00h, 01h, 35h -31E4:63E8 6C 10 21 0D 01 00 db 6Ch, 10h, 21h, 0Dh, 01h, 00h -31E4:63EE 00 01 26 6C 0F 21 db 00h, 01h, 26h, 6Ch, 0Fh, 21h -31E4:63F4 0E 01 00 00 01 0D db 0Eh, 01h, 00h, 00h, 01h, 0Dh -31E4:63FA 6C 24 21 25 01 00 db 6Ch, 24h, 21h, 25h, 01h, 00h -31E4:6400 00 01 1C 6C 11 21 db 00h, 01h, 1Ch, 6Ch, 11h, 21h -31E4:6406 12 01 00 00 01 FB db 12h, 01h, 00h, 00h, 01h,0FBh -31E4:640C 6B 21 21 22 01 00 db 6Bh, 21h, 21h, 22h, 01h, 00h -31E4:6412 00 01 E9 6B EC 27 db 00h, 01h,0E9h, 6Bh,0ECh, 27h -31E4:6418 ED 07 00 00 02 D7 db 0EDh, 07h, 00h, 00h, 02h,0D7h -31E4:641E 6B 33 48 32 08 00 db 6Bh, 33h, 48h, 32h, 08h, 00h -31E4:6424 00 02 C4 6B EA 40 db 00h, 02h,0C4h, 6Bh,0EAh, 40h -31E4:642A 61 08 00 00 02 BA db 61h, 08h, 00h, 00h, 02h,0BAh -31E4:6430 6B 2F 08 2D 08 00 db 6Bh, 2Fh, 08h, 2Dh, 08h, 00h -31E4:6436 00 02 B0 6B 2F 08 db 00h, 02h,0B0h, 6Bh, 2Fh, 08h -31E4:643C 74 08 00 00 02 A6 db 74h, 08h, 00h, 00h, 02h,0A6h -31E4:6442 6B 71 48 7E 08 00 db 6Bh, 71h, 48h, 7Eh, 08h, 00h -31E4:6448 00 02 A6 6B 71 08 db 00h, 02h,0A6h, 6Bh, 71h, 08h -31E4:644E 7E 08 00 00 02 9C db 7Eh, 08h, 00h, 00h, 02h, 9Ch -31E4:6454 6B 7F 08 68 08 00 db 6Bh, 7Fh, 08h, 68h, 08h, 00h -31E4:645A 00 02 88 6B 7F 08 db 00h, 02h, 88h, 6Bh, 7Fh, 08h -31E4:6460 82 08 00 00 02 92 db 82h, 08h, 00h, 00h, 02h, 92h -31E4:6466 6B 83 08 6E 08 00 db 6Bh, 83h, 08h, 6Eh, 08h, 00h -31E4:646C 00 02 7E 6B 71 08 db 00h, 02h, 7Eh, 6Bh, 71h, 08h -31E4:6472 85 08 00 00 02 74 db 85h, 08h, 00h, 00h, 02h, 74h -31E4:6478 6B 83 08 87 08 00 db 6Bh, 83h, 08h, 87h, 08h, 00h -31E4:647E 00 02 6A 6B 83 08 db 00h, 02h, 6Ah, 6Bh, 83h, 08h -31E4:6484 89 08 00 00 02 60 db 89h, 08h, 00h, 00h, 02h, 60h -31E4:648A 6B 30 08 65 08 00 db 6Bh, 30h, 08h, 65h, 08h, 00h -31E4:6490 00 02 56 6B 30 08 db 00h, 02h, 56h, 6Bh, 30h, 08h -31E4:6496 2E 08 00 00 02 db 2Eh, 08h, 00h, 00h, 02h -31E4:649B 4C 6B db 4Ch, 6Bh -31E4:649D 0009[00] db 9 dup (0) -31E4:64A6 C8 09 C9 09 00 00 db 0C8h, 09h,0C9h, 09h, 00h, 00h -31E4:64AC 00 B4 6C 2F 08 FB db 00h,0B4h, 6Ch, 2Fh, 08h,0FBh -31E4:64B2 0B 00 00 02 14 6B db 0Bh, 00h, 00h, 02h, 14h, 6Bh -31E4:64B8 E0 4F E3 0F 00 00 db 0E0h, 4Fh,0E3h, 0Fh, 00h, 00h -31E4:64BE 08 3D 6B E1 0F E2 db 08h, 3Dh, 6Bh,0E1h, 0Fh,0E2h -31E4:64C4 0F 00 00 08 29 6B db 0Fh, 00h, 00h, 08h, 29h, 6Bh -31E4:64CA E1 0F E6 0F 00 00 db 0E1h, 0Fh,0E6h, 0Fh, 00h, 00h -31E4:64D0 08 29 6B E1 0F E6 db 08h, 29h, 6Bh,0E1h, 0Fh,0E6h -31E4:64D6 0F 00 00 08 29 6B db 0Fh, 00h, 00h, 08h, 29h, 6Bh -31E4:64DC E1 0F E6 0F 00 00 db 0E1h, 0Fh,0E6h, 0Fh, 00h, 00h -31E4:64E2 08 29 6B E1 0F E6 db 08h, 29h, 6Bh,0E1h, 0Fh,0E6h -31E4:64E8 0F 00 00 08 29 6B db 0Fh, 00h, 00h, 08h, 29h, 6Bh -31E4:64EE E1 0F E6 0F 00 00 db 0E1h, 0Fh,0E6h, 0Fh, 00h, 00h -31E4:64F4 08 33 6B E1 0F E6 db 08h, 33h, 6Bh,0E1h, 0Fh,0E6h -31E4:64FA 0F 00 00 08 33 6B db 0Fh, 00h, 00h, 08h, 33h, 6Bh -31E4:6500 E1 0F E6 0F 00 00 db 0E1h, 0Fh,0E6h, 0Fh, 00h, 00h -31E4:6506 08 33 6B E1 0F E6 db 08h, 33h, 6Bh,0E1h, 0Fh,0E6h -31E4:650C 0F 00 00 08 A4 6A db 0Fh, 00h, 00h, 08h,0A4h, 6Ah -31E4:6512 DD 47 7B 08 00 00 db 0DDh, 47h, 7Bh, 08h, 00h, 00h -31E4:6518 01 C2 6A A7 0B A3 db 01h,0C2h, 6Ah,0A7h, 0Bh,0A3h -31E4:651E loc_2139: -31E4:651E 0B 00 or ax,[bx+si] -31E4:6520 00 02 add [bp+si],al -31E4:6522 C2 A76A retn 0A76Ah - ;* No entry point to code -31E4:6525 0B A4 000B or sp,word ptr copyright+0Bh[si] ; (31E4:000B=7665h) -31E4:6529 00 02 add [bp+si],al -31E4:652B B8 A86A mov ax,0A86Ah -31E4:652E 0B A5 000B or sp,word ptr copyright+0Bh[di] ; (31E4:000B=7665h) -31E4:6532 00 02 add [bp+si],al -31E4:6534 B8 A86A mov ax,0A86Ah -31E4:6537 0B A6 000B or sp,[bp+0Bh] -31E4:653B 00 02 add [bp+si],al -31E4:653D AE scasb ; Scan es:[di] for al -31E4:653E 6A 83 08 FF 0B 00 db 6Ah, 83h, 08h,0FFh, 0Bh, 00h -31E4:6544 00 00 9A 6A DD 47 db 00h, 00h, 9Ah, 6Ah,0DDh, 47h -31E4:654A 7B 08 00 00 00 7F db 7Bh, 08h, 00h, 00h, 00h, 7Fh -31E4:6550 6A 85 40 AE 00 00 db 6Ah, 85h, 40h,0AEh, 00h, 00h -31E4:6556 00 01 70 6A 54 0C db 00h, 01h, 70h, 6Ah, 54h, 0Ch -31E4:655C 55 0C 00 00 02 5E db 55h, 0Ch, 00h, 00h, 02h, 5Eh -31E4:6562 6A 58 0C 79 0C 00 db 6Ah, 58h, 0Ch, 79h, 0Ch, 00h -31E4:6568 00 02 54 6A EE 40 db 00h, 02h, 54h, 6Ah,0EEh, 40h -31E4:656E 61 0C 00 00 02 54 db 61h, 0Ch, 00h, 00h, 02h, 54h -31E4:6574 6A 7D 0C 60 0C 00 db 6Ah, 7Dh, 0Ch, 60h, 0Ch, 00h -31E4:657A 00 02 54 6A 7E 0C db 00h, 02h, 54h, 6Ah, 7Eh, 0Ch -31E4:6580 5F 0C 00 00 02 54 db 5Fh, 0Ch, 00h, 00h, 02h, 54h -31E4:6586 6A 7F 0C 5E 0C 00 db 6Ah, 7Fh, 0Ch, 5Eh, 0Ch, 00h -31E4:658C 00 02 54 6A 80 0C db 00h, 02h, 54h, 6Ah, 80h, 0Ch -31E4:6592 5C 0C 00 00 02 45 db 5Ch, 0Ch, 00h, 00h, 02h, 45h -31E4:6598 6A FC 0F FD 0F 00 db 6Ah,0FCh, 0Fh,0FDh, 0Fh, 00h -31E4:659E 00 08 3B 6A 02 30 db 00h, 08h, 3Bh, 6Ah, 02h, 30h -31E4:65A4 03 10 00 00 08 31 db 03h, 10h, 00h, 00h, 08h, 31h -31E4:65AA 6A 04 30 05 10 00 db 6Ah, 04h, 30h, 05h, 10h, 00h -31E4:65B0 00 08 27 6A 90 20 db 00h, 08h, 27h, 6Ah, 90h, 20h -31E4:65B6 06 10 00 00 08 27 db 06h, 10h, 00h, 00h, 08h, 27h -31E4:65BC 6A 07 10 08 10 00 db 6Ah, 07h, 10h, 08h, 10h, 00h -31E4:65C2 00 08 27 6A 09 10 db 00h, 08h, 27h, 6Ah, 09h, 10h -31E4:65C8 0A 10 00 00 08 27 db 0Ah, 10h, 00h, 00h, 08h, 27h -31E4:65CE 6A 0B 10 0C 10 00 db 6Ah, 0Bh, 10h, 0Ch, 10h, 00h -31E4:65D4 00 08 27 6A 0D 10 db 00h, 08h, 27h, 6Ah, 0Dh, 10h -31E4:65DA 0E 10 00 00 02 13 db 0Eh, 10h, 00h, 00h, 02h, 13h -31E4:65E0 6A 19 10 1A 10 00 db 6Ah, 19h, 10h, 1Ah, 10h, 00h -31E4:65E6 00 08 1D 6A F3 08 db 00h, 08h, 1Dh, 6Ah,0F3h, 08h -31E4:65EC B8 0C 00 00 02 FF db 0B8h, 0Ch, 00h, 00h, 02h,0FFh -31E4:65F2 FF db 0FFh - player_action_support_record: -31E4:65F3 03E0[00] db 992 dup (0) - -31E4:69D3 20 00 db 20h, 00h -31E4:69D5 0042[00] db 66 dup (0) -31E4:6A17 57 6D 2D 00 00 00 db 57h, 6Dh, 2Dh, 00h, 00h, 00h -31E4:6A1D 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6A23 24 00 00 00 00 00 db 24h, 00h, 00h, 00h, 00h, 00h -31E4:6A29 00 00 57 6D 2B 00 db 00h, 00h, 57h, 6Dh, 2Bh, 00h -31E4:6A2F 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:6A35 57 6D 2B 00 00 00 db 57h, 6Dh, 2Bh, 00h, 00h, 00h -31E4:6A3B 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6A41 2B 00 00 00 00 00 db 2Bh, 00h, 00h, 00h, 00h, 00h -31E4:6A47 00 00 4F 6A 2B 00 db 00h, 00h, 4Fh, 6Ah, 2Bh, 00h -31E4:6A4D 00 00 01 00 10 BD db 00h, 00h, 01h, 00h, 10h,0BDh -31E4:6A53 12 00 00 00 00 57 db 12h, 00h, 00h, 00h, 00h, 57h -31E4:6A59 6D 22 00 00 00 00 db 6Dh, 22h, 00h, 00h, 00h, 00h -31E4:6A5F 00 00 00 57 6D 09 db 00h, 00h, 00h, 57h, 6Dh, 09h -31E4:6A65 00 00 00 02 00 01 db 00h, 00h, 00h, 02h, 00h, 01h -31E4:6A6B 0B 80 10 2F 0E 01 db 0Bh, 80h, 10h, 2Fh, 0Eh, 01h -31E4:6A71 02 00 00 68 6A 1E db 02h, 00h, 00h, 68h, 6Ah, 1Eh -31E4:6A77 00 01 00 01 00 11 db 00h, 01h, 00h, 01h, 00h, 11h -31E4:6A7D 1F 02 00 00 01 00 db 1Fh, 02h, 00h, 00h, 01h, 00h -31E4:6A83 7A 6A 01 00 03 00 db 7Ah, 6Ah, 01h, 00h, 03h, 00h -31E4:6A89 05 00 01 10 80 06 db 05h, 00h, 01h, 10h, 80h, 06h -31E4:6A8F 06 80 07 07 00 08 db 06h, 80h, 07h, 07h, 00h, 08h -31E4:6A95 36 09 09 36 09 E1 db 36h, 09h, 09h, 36h, 09h,0E1h -31E4:6A9B 03 00 00 89 6A 0C db 03h, 00h, 00h, 89h, 6Ah, 0Ch -31E4:6AA1 00 00 00 E0 01 00 db 00h, 00h, 00h,0E0h, 01h, 00h -31E4:6AA7 00 89 6A 04 db 00h, 89h, 6Ah, 04h -31E4:6AAB 0007[00] db 7 dup (0) -31E4:6AB2 57 6D 0C 00 00 00 db 57h, 6Dh, 0Ch, 00h, 00h, 00h -31E4:6AB8 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6ABE 23 00 00 00 00 00 db 23h, 00h, 00h, 00h, 00h, 00h -31E4:6AC4 00 00 57 6D 13 00 db 00h, 00h, 57h, 6Dh, 13h, 00h -31E4:6ACA 00 00 02 00 0A 66 db 00h, 00h, 02h, 00h, 0Ah, 66h -31E4:6AD0 12 01 0B 80 db 12h, 01h, 0Bh, 80h - -; Hotspot entry 46Bh contains a loading routine offset for the copy protection check - -31E4:6AD4 39 41 00 00 CC 6A db 39h, 41h, 00h, 00h, 0cch, 6ah -31E4:6ADA FF FF 00 db 0FFh,0FFh, 00h -31E4:6ADD 3AFE dw offset copy_protection_check -31E4:6ADF 00 00 64 db 00h, 00h, 64h -31E4:6AE2 00 64 00 10 00 01 db 00h, 64h, 00h, 10h, 00h, 01h -31E4:6AE8 00 03 01 02 00 40 db 00h, 03h, 01h, 02h, 00h, 40h -31E4:6AEE CC 6A 02 00 00 72 db 0CCh, 6Ah, 02h, 00h, 00h, 72h -31E4:6AF4 71 00 00 64 00 64 db 71h, 00h, 00h, 64h, 00h, 64h -31E4:6AFA 00 10 00 01 00 03 db 00h, 10h, 00h, 01h, 00h, 03h -31E4:6B00 00 BD 41 02 00 02 db 00h,0BDh, 41h, 02h, 00h, 02h -31E4:6B06 00 02 00 00 00 A9 db 00h, 02h, 00h, 00h, 00h,0A9h -31E4:6B0C 58 00 00 00 00 00 db 58h, 00h, 00h, 00h, 00h, 00h -31E4:6B12 00 00 09 02 00 40 db 00h, 00h, 09h, 02h, 00h, 40h -31E4:6B18 1E 6B 2A 00 02 00 db 1Eh, 6Bh, 2Ah, 00h, 02h, 00h -31E4:6B1E 03 00 0A 50 04 04 db 03h, 00h, 0Ah, 50h, 04h, 04h -31E4:6B24 30 04 01 30 04 00 db 30h, 04h, 01h, 30h, 04h, 00h -31E4:6B2A 00 00 00 57 6D 2A db 00h, 00h, 00h, 57h, 6Dh, 2Ah -31E4:6B30 00 02 00 00 00 00 db 00h, 02h, 00h, 00h, 00h, 00h -31E4:6B36 00 57 6D 2A 00 03 db 00h, 57h, 6Dh, 2Ah, 00h, 03h -31E4:6B3C 00 00 00 00 00 47 db 00h, 00h, 00h, 00h, 00h, 47h -31E4:6B42 6B 2A 00 02 00 01 db 6Bh, 2Ah, 00h, 02h, 00h, 01h -31E4:6B48 00 10 B6 12 00 00 db 00h, 10h,0B6h, 12h, 00h, 00h -31E4:6B4E 00 00 57 6D 22 00 db 00h, 00h, 57h, 6Dh, 22h, 00h -31E4:6B54 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -31E4:6B5A 57 6D 0A 00 03 00 db 57h, 6Dh, 0Ah, 00h, 03h, 00h -31E4:6B60 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6B66 0C 00 00 00 00 00 db 0Ch, 00h, 00h, 00h, 00h, 00h -31E4:6B6C 00 00 57 6D 1D 00 db 00h, 00h, 57h, 6Dh, 1Dh, 00h -31E4:6B72 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:6B78 57 6D 1C 00 00 00 db 57h, 6Dh, 1Ch, 00h, 00h, 00h -31E4:6B7E 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6B84 14 00 00 00 00 00 db 14h, 00h, 00h, 00h, 00h, 00h -31E4:6B8A 00 00 57 6D 11 00 db 00h, 00h, 57h, 6Dh, 11h, 00h -31E4:6B90 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:6B96 57 6D 11 00 00 00 db 57h, 6Dh, 11h, 00h, 00h, 00h -31E4:6B9C 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6BA2 0E db 0Eh -31E4:6BA3 0007[00] db 7 dup (0) -31E4:6BAA 57 6D 09 00 00 00 db 57h, 6Dh, 09h, 00h, 00h, 00h -31E4:6BB0 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:6BB6 13 00 00 00 00 00 db 13h, 00h, 00h, 00h, 00h, 00h -31E4:6BBC 00 00 57 6D 0A 00 db 00h, 00h, 57h, 6Dh, 0Ah, 00h -31E4:6BC2 00 00 00 02 00 50 db 00h, 00h, 00h, 02h, 00h, 50h -31E4:6BC8 CE 6B 1E 00 01 00 db 0CEh, 6Bh, 1Eh, 00h, 01h, 00h -31E4:6BCE 02 00 0A 4F 0B 01 db 02h, 00h, 0Ah, 4Fh, 0Bh, 01h -31E4:6BD4 00 0B 80 01 02 00 db 00h, 0Bh, 80h, 01h, 02h, 00h -31E4:6BDA 40 E1 6B 13 00 00 db 40h,0E1h, 6Bh, 13h, 00h, 00h -31E4:6BE0 00 02 00 0A 81 09 db 00h, 02h, 00h, 0Ah, 81h, 09h -31E4:6BE6 01 0B 80 01 02 00 db 01h, 0Bh, 80h, 01h, 02h, 00h -31E4:6BEC 00 F3 6B 1C 00 01 db 00h,0F3h, 6Bh, 1Ch, 00h, 01h -31E4:6BF2 00 02 00 01 50 0D db 00h, 02h, 00h, 01h, 50h, 0Dh -31E4:6BF8 05 FB 08 10 00 00 db 05h,0FBh, 08h, 10h, 00h, 00h -31E4:6BFE 00 05 db 00h, 05h -31E4:6C00 6C data_891 db 6Ch -31E4:6C01 04 00 03 00 02 00 db 04h, 00h, 03h, 00h, 02h, 00h -31E4:6C07 01 12 80 05 21 80 db 01h, 12h, 80h, 05h, 21h, 80h -31E4:6C0D 01 02 00 00 17 6C db 01h, 02h, 00h, 00h, 17h, 6Ch -31E4:6C13 01 00 00 00 01 00 db 01h, 00h, 00h, 00h, 01h, 00h -31E4:6C19 01 1F 80 00 00 00 db 01h, 1Fh, 80h, 00h, 00h, 00h -31E4:6C1F 00 57 6D 03 00 01 db 00h, 57h, 6Dh, 03h, 00h, 01h -31E4:6C25 00 00 00 00 00 30 db 00h, 00h, 00h, 00h, 00h, 30h -31E4:6C2B 6C 03 00 00 00 01 db 6Ch, 03h, 00h, 00h, 00h, 01h -31E4:6C31 00 01 19 80 00 00 db 00h, 01h, 19h, 80h, 00h, 00h -31E4:6C37 00 00 3F 6C 03 00 db 00h, 00h, 3Fh, 6Ch, 03h, 00h -31E4:6C3D 03 00 01 00 01 19 db 03h, 00h, 01h, 00h, 01h, 19h -31E4:6C43 80 01 02 00 00 4E db 80h, 01h, 02h, 00h, 00h, 4Eh -31E4:6C49 6C 04 00 01 00 02 db 6Ch, 04h, 00h, 01h, 00h, 02h -31E4:6C4F 00 0A AD 07 01 0B db 00h, 0Ah,0ADh, 07h, 01h, 0Bh -31E4:6C55 80 00 00 00 00 60 db 80h, 00h, 00h, 00h, 00h, 60h -31E4:6C5B 6C 03 00 00 00 01 db 6Ch, 03h, 00h, 00h, 00h, 01h -31E4:6C61 00 01 12 80 00 00 db 00h, 01h, 12h, 80h, 00h, 00h -31E4:6C67 00 00 4E 6C 02 00 db 00h, 00h, 4Eh, 6Ch, 02h, 00h -31E4:6C6D 00 00 70 02 00 40 db 00h, 00h, 70h, 02h, 00h, 40h -31E4:6C73 78 6C 03 00 00 05 db 78h, 6Ch, 03h, 00h, 00h, 05h -31E4:6C79 00 06 41 2C 05 41 db 00h, 06h, 41h, 2Ch, 05h, 41h -31E4:6C7F 2C 07 03 80 0A F8 db 2Ch, 07h, 03h, 80h, 0Ah,0F8h -31E4:6C85 07 01 0B 80 2D 02 db 07h, 01h, 0Bh, 80h, 2Dh, 02h -31E4:6C8B 00 00 92 6C 03 00 db 00h, 00h, 92h, 6Ch, 03h, 00h -31E4:6C91 00 05 00 01 10 80 db 00h, 05h, 00h, 01h, 10h, 80h -31E4:6C97 04 13 80 03 13 80 db 04h, 13h, 80h, 03h, 13h, 80h -31E4:6C9D 06 14 80 10 AF 12 db 06h, 14h, 80h, 10h,0AFh, 12h - -31E4:6CA3 00 00 01 00 AC 6C db 00h, 00h, 01h, 00h,0ACh, 6Ch -31E4:6CA9 03 00 00 02 00 01 db 03h, 00h, 00h, 02h, 00h, 01h -31E4:6CAF 0B 80 11 21 05 00 db 0Bh, 80h, 11h, 21h, 05h, 00h -31E4:6CB5 00 01 00 BD 6C 13 db 00h, 01h, 00h,0BDh, 6Ch, 13h -31E4:6CBB 00 00 01 00 11 3C db 00h, 00h, 01h, 00h, 11h, 3Ch -31E4:6CC1 02 40 04 db 02h, 40h, 04h -31E4:6CC4 0020[00] db 32 dup (0) -31E4:6CE4 0001 data_893 dw 1 -31E4:6CE6 0009[00] db 9 dup (0) - -; This is the hotspot resource that represents the player character, and is returned -; when a call to get_room_resource_pointer is done with id = 3e8h - -31E4:6CEF 00 player_hotspot_rec db 0 -31E4:6CF0 00 00 40 57 6D db 00h, 00h, 40h, 57h, 6Dh -31E4:6CF5 0001 player_room_number dw 1 -31E4:6CF7 00 67 71 db 00h, 67h, 71h -31E4:6CFA 0000 data_897 dw 0 -31E4:6CFC 0110 data_898 dw 110h -31E4:6CFE 00FA data_899 dw 0FAh -31E4:6D00 20 00 30 00 01 01 db 20h, 00h, 30h, 00h, 01h, 01h -31E4:6D06 5E44 player_tick_handler dw offset player_tick_proc -31E4:6D08 20 00 30 00 08 00 db 20h, 00h, 30h, 00h, 08h, 00h -31E4:6D0E 00 00 80 5C 80 00 db 00h, 00h, 80h, 5Ch, 80h, 00h -31E4:6D14 0010[00] db 16 dup (0) -31E4:6D24 F8 04 00 db 0F8h, 04h, 00h -31E4:6D27 0022[00] db 34 dup (0) - -.... -31E4:6D31 0000 dw 0 -31E4:6D33 00 db 0 -.... -31E4:6D49 73 66 db 73h, 66h -31E4:6D4B 0007[00] db 7 dup (0) -31E4:6D52 00 player_action_state db 0 -31E4:6D53 F3 65 00 00 00 00 db 0F3h, 65h, 00h, 00h, 00h, 00h -31E4:6D59 04 00 0B 88 17 12 db 04h, 00h, 0Bh, 88h, 17h, 12h -31E4:6D5F 8C 1B 0D B0 1C 0C db 8Ch, 1Bh, 0Dh,0B0h, 1Ch, 0Ch -31E4:6D65 43 15 db 43h, 15h - -31E4:6D67 00 0C 82 00 skorl_hotspot_rec db 00h, 0Ch, 82h, 00h -31E4:6D6B 59 6D 03 00 00 67 db 59h, 6Dh, 03h, 00h, 00h, 67h -31E4:6D71 71 00 00 32 01 E8 db 71h, 00h, 00h, 32h, 01h,0E8h -31E4:6D77 00 20 00 30 00 01 db 00h, 20h, 00h, 30h, 00h, 01h -31E4:6D7D 01 FA 7E 20 00 30 db 01h,0FAh, 7Eh, 20h, 00h, 30h -31E4:6D83 00 08 00 00 00 BF db 00h, 08h, 00h, 00h, 00h,0BFh -31E4:6D89 5C 9E db 5Ch, 9Eh -31E4:6D8B 0009[00] db 9 dup (0) -31E4:6D94 C2 15 00 00 2C 01 db 0C2h, 15h, 00h, 00h, 2Ch, 01h -31E4:6D9A 00 00 00 04 00 db 00h, 00h, 00h, 04h, 00h -31E4:6D9F 000D[00] db 13 dup (0) -31E4:6DAC C2 14 00 db 0C2h, 14h, 00h -31E4:6DAF 0012[00] db 18 dup (0) -31E4:6DC1 F3 66 db 0F3h, 66h -31E4:6DC3 0007[00] db 7 dup (0) -31E4:6DCA 02 B7 35 03 db 02h,0B7h, 35h, 03h -31E4:6DCE 0010[00] db 16 dup (0) -31E4:6DDE 02 00 0B 88 17 12 db 02h, 00h, 0Bh, 88h, 17h, 12h -31E4:6DE4 8C 1B db 8Ch, 1Bh - - village_skorl_hotspot_rec: -31E4:6DE6 00 0C 82 00 db 00h, 0Ch, 82h, 00h -31E4:6DEA DE 6D 13 00 00 67 db 0DEh, 6Dh, 13h, 00h, 00h, 67h -31E4:6DF0 71 00 00 39 01 F3 db 71h, 00h, 00h, 39h, 01h,0F3h -31E4:6DF6 00 20 00 30 00 01 db 00h, 20h, 00h, 30h, 00h, 01h -31E4:6DFC 01 82 4F 20 00 30 db 01h, 82h, 4Fh, 20h, 00h, 30h -31E4:6E02 00 08 00 00 00 BF db 00h, 08h, 00h, 00h, 00h,0BFh -31E4:6E08 5C 9E db 5Ch, 9Eh -31E4:6E0A 0009[00] db 9 dup (0) -31E4:6E13 15 15 00 00 64 00 db 15h, 15h, 00h, 00h, 64h, 00h -31E4:6E19 00 00 00 04 28 00 db 00h, 00h, 00h, 04h, 28h, 00h -31E4:6E1F 00 00 00 50 0B db 00h, 00h, 00h, 50h, 0Bh -31E4:6E24 0007[00] db 7 dup (0) -31E4:6E2B D9 14 db 0D9h, 14h -31E4:6E2D 0013[00] db 19 dup (0) -31E4:6E40 33 69 00 00 00 00 db 33h, 69h, 00h, 00h, 00h, 00h -31E4:6E46 00 00 00 02 5D 6E db 00h, 00h, 00h, 02h, 5Dh, 6Eh -31E4:6E4C 13 00 db 13h, 00h -31E4:6E4E 000F[00] db 15 dup (0) -31E4:6E5D 1C 00 13 00 00 00 db 1Ch, 00h, 13h, 00h, 00h, 00h -31E4:6E63 23 00 D1 1D FB 6E db 23h, 00h,0D1h, 1Dh,0FBh, 6Eh -31E4:6E69 21 00 4C 75 1F 00 db 21h, 00h, 4Ch, 75h, 1Fh, 00h -31E4:6E6F 23 00 E2 1D FB 6E db 23h, 00h,0E2h, 1Dh,0FBh, 6Eh -31E4:6E75 1C 00 23 00 FB 6E db 1Ch, 00h, 23h, 00h,0FBh, 6Eh -31E4:6E7B 24 00 36 04 FB 6E db 24h, 00h, 36h, 04h,0FBh, 6Eh -31E4:6E81 23 00 E2 1D EF 6E db 23h, 00h,0E2h, 1Dh,0EFh, 6Eh -31E4:6E87 1E 00 B9 2A 25 00 db 1Eh, 00h,0B9h, 2Ah, 25h, 00h -31E4:6E8D 36 04 AF 0A 00 00 db 36h, 04h,0AFh, 0Ah, 00h, 00h -31E4:6E93 B0 0A 11 00 23 00 db 0B0h, 0Ah, 11h, 00h, 23h, 00h -31E4:6E99 E2 1D EF 6E 25 00 db 0E2h, 1Dh,0EFh, 6Eh, 25h, 00h -31E4:6E9F 36 04 B1 0A 11 00 db 36h, 04h,0B1h, 0Ah, 11h, 00h -31E4:6EA5 B2 0A 1E 00 23 00 db 0B2h, 0Ah, 1Eh, 00h, 23h, 00h -31E4:6EAB E2 1D EF 6E 25 00 db 0E2h, 1Dh,0EFh, 6Eh, 25h, 00h -31E4:6EB1 36 04 B3 0A 50 00 db 36h, 04h,0B3h, 0Ah, 50h, 00h -31E4:6EB7 B4 0A 0A 00 23 00 db 0B4h, 0Ah, 0Ah, 00h, 23h, 00h -31E4:6EBD E2 1D EF 6E 25 00 db 0E2h, 1Dh,0EFh, 6Eh, 25h, 00h -31E4:6EC3 36 04 B5 0A 00 00 db 36h, 04h,0B5h, 0Ah, 00h, 00h -31E4:6EC9 B6 0A 37 00 23 00 db 0B6h, 0Ah, 37h, 00h, 23h, 00h -31E4:6ECF E2 1D EF 6E 25 00 db 0E2h, 1Dh,0EFh, 6Eh, 25h, 00h -31E4:6ED5 36 04 B7 0A 14 00 db 36h, 04h,0B7h, 0Ah, 14h, 00h -31E4:6EDB B8 0A 32 00 1F 00 db 0B8h, 0Ah, 32h, 00h, 1Fh, 00h -31E4:6EE1 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:6EE7 28 00 BE 87 22 00 db 28h, 00h,0BEh, 87h, 22h, 00h -31E4:6EED FB 6E 25 00 36 04 db 0FBh, 6Eh, 25h, 00h, 36h, 04h -31E4:6EF3 AD 0A 00 00 AE 0A db 0ADh, 0Ah, 00h, 00h,0AEh, 0Ah -31E4:6EF9 00 00 1E 00 C0 2A db 00h, 00h, 1Eh, 00h,0C0h, 2Ah -31E4:6EFF 1C 00 12 00 00 00 db 1Ch, 00h, 12h, 00h, 00h, 00h -31E4:6F05 1C 00 16 00 00 00 db 1Ch, 00h, 16h, 00h, 00h, 00h -31E4:6F0B 1C 00 13 00 00 00 db 1Ch, 00h, 13h, 00h, 00h, 00h -31E4:6F11 23 00 7D 1E 2B 6F db 23h, 00h, 7Dh, 1Eh, 2Bh, 6Fh -31E4:6F17 1C 00 1E 00 00 00 db 1Ch, 00h, 1Eh, 00h, 00h, 00h -31E4:6F1D 1E 00 8A 1E 1C 00 db 1Eh, 00h, 8Ah, 1Eh, 1Ch, 00h -31E4:6F23 13 00 00 00 07 00 db 13h, 00h, 00h, 00h, 07h, 00h -31E4:6F29 17 27 1C 00 14 00 db 17h, 27h, 1Ch, 00h, 14h, 00h -31E4:6F2F 00 00 1C 00 1B 00 db 00h, 00h, 1Ch, 00h, 1Bh, 00h -31E4:6F35 00 00 1C 00 09 00 db 00h, 00h, 1Ch, 00h, 09h, 00h -31E4:6F3B 00 00 20 00 1C 00 db 00h, 00h, 20h, 00h, 1Ch, 00h -31E4:6F41 20 00 C3 6F 24 00 db 20h, 00h,0C3h, 6Fh, 24h, 00h -31E4:6F47 29 04 C3 6F 1E 00 db 29h, 04h,0C3h, 6Fh, 1Eh, 00h -31E4:6F4D F4 1E 25 00 29 04 db 0F4h, 1Eh, 25h, 00h, 29h, 04h -31E4:6F53 F2 0A 00 00 AB 0C db 0F2h, 0Ah, 00h, 00h,0ABh, 0Ch -31E4:6F59 00 00 25 00 29 04 db 00h, 00h, 25h, 00h, 29h, 04h -31E4:6F5F F4 0A 00 00 F5 0A db 0F4h, 0Ah, 00h, 00h,0F5h, 0Ah -31E4:6F65 00 00 25 00 29 04 db 00h, 00h, 25h, 00h, 29h, 04h -31E4:6F6B F6 0A 00 00 00 00 db 0F6h, 0Ah, 00h, 00h, 00h, 00h -31E4:6F71 00 00 22 00 C3 6F db 00h, 00h, 22h, 00h,0C3h, 6Fh -31E4:6F77 25 00 29 04 CB 0B db 25h, 00h, 29h, 04h,0CBh, 0Bh -31E4:6F7D 00 00 CC 0B 00 00 db 00h, 00h,0CCh, 0Bh, 00h, 00h -31E4:6F83 25 00 29 04 CD 0B db 25h, 00h, 29h, 04h,0CDh, 0Bh -31E4:6F89 00 00 CE 0B 00 00 db 00h, 00h,0CEh, 0Bh, 00h, 00h -31E4:6F8F 25 00 29 04 CF 0B db 25h, 00h, 29h, 04h,0CFh, 0Bh -31E4:6F95 00 00 D0 0B 00 00 db 00h, 00h,0D0h, 0Bh, 00h, 00h -31E4:6F9B 22 00 C3 6F 25 00 db 22h, 00h,0C3h, 6Fh, 25h, 00h -31E4:6FA1 29 04 D1 0B 00 00 db 29h, 04h,0D1h, 0Bh, 00h, 00h -31E4:6FA7 D2 0B 00 00 25 00 db 0D2h, 0Bh, 00h, 00h, 25h, 00h -31E4:6FAD 29 04 D3 0B 00 00 db 29h, 04h,0D3h, 0Bh, 00h, 00h -31E4:6FB3 D4 0B 00 00 25 00 db 0D4h, 0Bh, 00h, 00h, 25h, 00h -31E4:6FB9 29 04 D5 0B 00 00 db 29h, 04h,0D5h, 0Bh, 00h, 00h -31E4:6FBF 00 00 00 00 1C 00 db 00h, 00h, 00h, 00h, 1Ch, 00h -31E4:6FC5 13 00 00 00 21 00 db 13h, 00h, 00h, 00h, 21h, 00h -31E4:6FCB 17 27 23 00 E4 1E db 17h, 27h, 23h, 00h,0E4h, 1Eh -31E4:6FD1 17 6F 1C 00 0E 00 db 17h, 6Fh, 1Ch, 00h, 0Eh, 00h -31E4:6FD7 00 00 1C 00 0A 00 db 00h, 00h, 1Ch, 00h, 0Ah, 00h -31E4:6FDD 00 00 1C 00 0C 00 db 00h, 00h, 1Ch, 00h, 0Ch, 00h -31E4:6FE3 00 00 22 00 5D 6E db 00h, 00h, 22h, 00h, 5Dh, 6Eh -31E4:6FE9 00 0C 82 00 db 00h, 0Ch, 82h, 00h -31E4:6FED 59 6D db 59h, 6Dh -31E4:6FEF 0063 data_914 dw 63h -31E4:6FF1 00 67 71 00 00 71 db 00h, 67h, 71h, 00h, 00h, 71h -31E4:6FF7 01 18 01 20 00 30 db 01h, 18h, 01h, 20h, 00h, 30h -31E4:6FFD 00 01 01 02 7F 20 db 00h, 01h, 01h, 02h, 7Fh, 20h -31E4:7003 00 30 00 08 00 00 db 00h, 30h, 00h, 08h, 00h, 00h -31E4:7009 00 BF 5C 9E db 00h,0BFh, 5Ch, 9Eh -31E4:700D 0009[00] db 9 dup (0) -31E4:7016 02 16 00 00 64 00 db 02h, 16h, 00h, 00h, 64h, 00h -31E4:701C 00 00 00 04 db 00h, 00h, 00h, 04h -31E4:7020 000E[00] db 14 dup (0) -31E4:702E AB 14 00 db 0ABh, 14h, 00h -31E4:7031 0012[00] db 18 dup (0) -31E4:7043 33 69 00 00 00 00 db 33h, 69h, 00h, 00h, 00h, 00h -31E4:7049 00 00 00 02 db 00h, 00h, 00h, 02h -31E4:704D 60 70 2D db 60h, 70h, 2Dh -31E4:7050 0010[00] db 16 dup (0) -31E4:7060 28 00 1C 88 21 00 db 28h, 00h, 1Ch, 88h, 21h, 00h -31E4:7066 E8 03 21 00 E8 03 db 0E8h, 03h, 21h, 00h,0E8h, 03h -31E4:706C 1C 00 2C 00 00 00 db 1Ch, 00h, 2Ch, 00h, 00h, 00h -31E4:7072 21 00 E8 03 21 00 db 21h, 00h,0E8h, 03h, 21h, 00h -31E4:7078 E8 03 1C 00 2B 00 db 0E8h, 03h, 1Ch, 00h, 2Bh, 00h -31E4:707E 00 00 21 00 E8 03 db 00h, 00h, 21h, 00h,0E8h, 03h -31E4:7084 21 00 E8 03 1C 00 db 21h, 00h,0E8h, 03h, 1Ch, 00h -31E4:708A 2A 00 00 00 21 00 db 2Ah, 00h, 00h, 00h, 21h, 00h -31E4:7090 E8 03 21 00 4E 75 db 0E8h, 03h, 21h, 00h, 4Eh, 75h -31E4:7096 1E 00 49 1E 21 00 db 1Eh, 00h, 49h, 1Eh, 21h, 00h -31E4:709C E8 03 1E 00 42 1E db 0E8h, 03h, 1Eh, 00h, 42h, 1Eh -31E4:70A2 21 00 E8 03 20 00 db 21h, 00h,0E8h, 03h, 20h, 00h -31E4:70A8 22 00 9E 70 03 00 db 22h, 00h, 9Eh, 70h, 03h, 00h -31E4:70AE 0B 33 18 12 32 1C db 0Bh, 33h, 18h, 12h, 32h, 1Ch -31E4:70B4 0D B0 1C 00 00 db 0Dh,0B0h, 1Ch, 00h, 00h - -31E4:70B9 1C00 ratpouch_hotspot_rec dw 1C00h -31E4:70BB 0082 dw 82h -31E4:70BD 70AC dw 70ACh -31E4:70BF 0005 dw 5 -31E4:70C1 00 67 71 00 00 B4 db 00h, 67h, 71h, 00h, 00h,0B4h -31E4:70C7 00 E9 00 20 00 30 db 00h,0E9h, 00h, 20h, 00h, 30h -31E4:70CD 00 01 01 14 7C 20 db 00h, 01h, 01h, 14h, 7Ch, 20h -31E4:70D3 00 30 00 08 00 00 db 00h, 30h, 00h, 08h, 00h, 00h -31E4:70D9 00 D4 5C AD db 00h,0D4h, 5Ch,0ADh -31E4:70DD 0009[00] db 9 dup (0) -31E4:70E6 55 16 00 00 96 00 db 55h, 16h, 00h, 00h, 96h, 00h -31E4:70EC 00 00 F6 0A 28 00 db 00h, 00h,0F6h, 0Ah, 28h, 00h -31E4:70F2 E8 db 0E8h -31E4:70F3 loc_2141: -31E4:70F3 03 00 add ax,[bx+si] -31E4:70F5 9C pushf ; Push flags -31E4:70F6 00 00 00 00 00 db 0, 0, 0, 0, 0 -31E4:70FB 002A data_923 dw 2Ah -31E4:70FD 05 data_924 db 5 -31E4:70FE F9 12 00 db 0F9h, 12h, 00h -31E4:7101 0012[00] db 18 dup (0) -31E4:7113 33 67 73 67 00 00 db 33h, 67h, 73h, 67h, 00h, 00h -31E4:7119 00 00 00 02 D3 69 db 00h, 00h, 00h, 02h,0D3h, 69h -31E4:711F 04 db 04h -31E4:7120 0015[00] db 21 dup (0) -31E4:7135 1C 00 07 00 00 00 db 1Ch, 00h, 07h, 00h, 00h, 00h -31E4:713B 20 00 1F 00 1E 00 db 20h, 00h, 1Fh, 00h, 1Eh, 00h -31E4:7141 97 16 00 00 03 00 db 97h, 16h, 00h, 00h, 03h, 00h -31E4:7147 0B 88 17 12 8C 1B db 0Bh, 88h, 17h, 12h, 8Ch, 1Bh -31E4:714D 0D BD 1C 00 0C 02 db 0Dh,0BDh, 1Ch, 00h, 0Ch, 02h -31E4:7153 00 45 71 2C 00 00 db 00h, 45h, 71h, 2Ch, 00h, 00h -31E4:7159 67 71 00 00 4A 01 db 67h, 71h, 00h, 00h, 4Ah, 01h -31E4:715F 02 01 20 00 30 00 db 02h, 01h, 20h, 00h, 30h, 00h -31E4:7165 01 01 82 4F 20 00 db 01h, 01h, 82h, 4Fh, 20h, 00h -31E4:716B 30 00 08 00 00 00 db 30h, 00h, 08h, 00h, 00h, 00h -31E4:7171 67 5D 80 00 00 db 67h, 5Dh, 80h, 00h, 00h -31E4:7176 0007[00] db 7 dup (0) -31E4:717D 7B 15 00 00 96 00 db 7Bh, 15h, 00h, 00h, 96h, 00h -31E4:7183 00 00 F8 09 00 db 00h, 00h,0F8h, 09h, 00h -31E4:7188 000D[00] db 13 dup (0) -31E4:7195 88 14 db 88h, 14h -31E4:7197 0013[00] db 19 dup (0) -31E4:71AA 73 69 B3 69 00 00 db 73h, 69h,0B3h, 69h, 00h, 00h -31E4:71B0 00 00 00 02 CC db 00h, 00h, 00h, 02h,0CCh -31E4:71B5 71 2C db 71h, 2Ch -31E4:71B7 0015[00] db 21 dup (0) -31E4:71CC 20 00 1C 00 2A 00 db 20h, 00h, 1Ch, 00h, 2Ah, 00h -31E4:71D2 00 00 21 00 4E 75 db 00h, 00h, 21h, 00h, 4Eh, 75h -31E4:71D8 1F 00 1C 00 2D 00 db 1Fh, 00h, 1Ch, 00h, 2Dh, 00h -31E4:71DE 00 00 25 00 37 04 db 00h, 00h, 25h, 00h, 37h, 04h -31E4:71E4 A5 0F 00 00 A6 0F db 0A5h, 0Fh, 00h, 00h,0A6h, 0Fh -31E4:71EA 00 00 25 00 37 04 db 00h, 00h, 25h, 00h, 37h, 04h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 464 - -31E4:71F0 A7 0F 00 00 A8 0F db 0A7h, 0Fh, 00h, 00h,0A8h, 0Fh -31E4:71F6 00 00 1C 00 2A 00 db 00h, 00h, 1Ch, 00h, 2Ah, 00h -31E4:71FC 00 00 20 00 1C 00 db 00h, 00h, 20h, 00h, 1Ch, 00h -31E4:7202 2D 00 00 00 25 00 db 2Dh, 00h, 00h, 00h, 25h, 00h -31E4:7208 37 04 A9 0F 00 00 db 37h, 04h,0A9h, 0Fh, 00h, 00h -31E4:720E AA 0F 00 00 25 00 db 0AAh, 0Fh, 00h, 00h, 25h, 00h -31E4:7214 37 04 AB 0F 00 00 db 37h, 04h,0ABh, 0Fh, 00h, 00h -31E4:721A AC 0F 00 00 1C 00 db 0ACh, 0Fh, 00h, 00h, 1Ch, 00h -31E4:7220 2A 00 00 00 20 00 db 2Ah, 00h, 00h, 00h, 20h, 00h -31E4:7226 1C 00 2D 00 00 00 db 1Ch, 00h, 2Dh, 00h, 00h, 00h -31E4:722C 25 00 37 04 AD 0F db 25h, 00h, 37h, 04h,0ADh, 0Fh -31E4:7232 00 00 AE 0F 00 00 db 00h, 00h,0AEh, 0Fh, 00h, 00h -31E4:7238 25 00 37 04 AF 0F db 25h, 00h, 37h, 04h,0AFh, 0Fh -31E4:723E 00 00 B0 0F 00 00 db 00h, 00h,0B0h, 0Fh, 00h, 00h -31E4:7244 22 00 CE 71 1C 00 db 22h, 00h,0CEh, 71h, 1Ch, 00h -31E4:724A 2D 00 00 00 25 00 db 2Dh, 00h, 00h, 00h, 25h, 00h -31E4:7250 37 04 C9 0F 00 00 db 37h, 04h,0C9h, 0Fh, 00h, 00h -31E4:7256 CA 0F 00 00 25 00 db 0CAh, 0Fh, 00h, 00h, 25h, 00h -31E4:725C 37 04 CB 0F 00 00 db 37h, 04h,0CBh, 0Fh, 00h, 00h -31E4:7262 CC 0F 00 db 0CCh, 0Fh, 00h -31E4:7265 loc_2142: -31E4:7265 00 1E FF00 add ds:data_1202e,bl ; (31E4:FF00=2Fh) -31E4:7269 1D 0022 sbb ax,22h -31E4:726C A2 1C72 mov byte ptr data_691,al ; (31E4:1C72=' ') -31E4:726F 00 2D add [di],ch -31E4:7271 00 00 add [bx+si],al -31E4:7273 00 25 add [di],ah -31E4:7275 00 37 add [bx],dh -31E4:7277 04 CD add al,0CDh -31E4:7279 0F ;* pop cs ; Dangerous-8088 only -31E4:7279 0F db 0Fh -31E4:727A 00 00 add [bx+si],al -31E4:727C CE into ; Int 4 on overflow -31E4:727D 0F ;* pop cs ; Dangerous-8088 only -31E4:727D 0F db 0Fh -31E4:727E 00 00 add [bx+si],al -31E4:7280 1E push ds -31E4:7281 00 BE 1F20 add [bp+1F20h],bh -31E4:7285 00 22 add [bp+si],ah -31E4:7287 00 CE add dh,cl -31E4:7289 71 1C ;* jno loc_2143 ;*Jump if not overflw -31E4:7289 71 1C db 71h, 1Ch -31E4:728B 00 2D add [di],ch -31E4:728D 00 00 add [bx+si],al -31E4:728F 00 25 add [di],ah -31E4:7291 00 37 add [bx],dh -31E4:7293 04 CF add al,0CFh -31E4:7295 0F ;* pop cs ; Dangerous-8088 only -31E4:7295 0F db 0Fh -31E4:7296 00 00 add [bx+si],al -31E4:7298 D0 0F ror byte ptr [bx],1 ; Rotate -31E4:729A 00 00 add [bx+si],al -31E4:729C 1F pop ds -31E4:729D 00 1E FF00 add ds:data_1202e,bl ; (31E4:FF00=2Fh) -31E4:72A1 1D 0020 sbb ax,20h -31E4:72A4 1F pop ds -31E4:72A5 00 1E 4200 add ds:data_62e,bl ; (0002:4200=0C4h) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 465 - -31E4:72A9 1E push ds -31E4:72AA 20 00 and [bx+si],al -31E4:72AC 1F pop ds -31E4:72AD 00 20 add [bx+si],ah -31E4:72AF 00 1F add [bx],bl -31E4:72B1 00 20 add [bx+si],ah -31E4:72B3 00 1F add [bx],bl -31E4:72B5 00 20 add [bx+si],ah -31E4:72B7 00 1F add [bx],bl -31E4:72B9 00 20 add [bx+si],ah -31E4:72BB 00 1F add [bx],bl -31E4:72BD 00 20 add [bx+si],ah -31E4:72BF 00 1F add [bx],bl -31E4:72C1 00 22 add [bp+si],ah -31E4:72C3 00 A2 0272 add [bp+si+272h],ah -31E4:72C7 00 0B add [bp+di],cl -31E4:72C9 D9 17 fst dword ptr [bx] ; Store st to memory -31E4:72CB 12 8C 001B adc cl,ds:data_61e[si] ; (0002:001B=0C8h) -31E4:72CF 0C 82 or al,82h -31E4:72D1 00 C6 add dh,al -31E4:72D3 72 17 ;* jc loc_2144 ;*Jump if carry Set -31E4:72D3 72 17 db 72h, 17h -31E4:72D5 00 00 add [bx+si],al -31E4:72D7 67 71 00 00 16 01 db 67h, 71h, 00h, 00h, 16h, 01h -31E4:72DD F8 00 20 00 30 00 db 0F8h, 00h, 20h, 00h, 30h, 00h -31E4:72E3 01 01 82 4F 20 00 db 01h, 01h, 82h, 4Fh, 20h, 00h -31E4:72E9 30 00 db 30h, 00h -31E4:72EB 08 db 8 -31E4:72EC 00 00 00 E9 5C 9E db 00h, 00h, 00h,0E9h, 5Ch, 9Eh -31E4:72F2 0009[00] db 9 dup (0) -31E4:72FB 54 15 00 00 96 00 db 54h, 15h, 00h, 00h, 96h, 00h -31E4:7301 00 00 F8 04 28 00 db 00h, 00h,0F8h, 04h, 28h, 00h -31E4:7307 00 00 00 50 0B db 00h, 00h, 00h, 50h, 0Bh -31E4:730C 0007[00] db 7 dup (0) -31E4:7313 54 13 00 db 54h, 13h, 00h -31E4:7316 0012[00] db 18 dup (0) -31E4:7328 93 67 db 93h, 67h -31E4:732A 0007[00] db 7 dup (0) -31E4:7331 02 4A 73 17 db 02h, 4Ah, 73h, 17h -31E4:7335 0015[00] db 21 dup (0) -31E4:734A 1C 00 1C 00 00 00 db 1Ch, 00h, 1Ch, 00h, 00h, 00h -31E4:7350 21 00 3B 75 21 00 db 21h, 00h, 3Bh, 75h, 21h, 00h -31E4:7356 E5 03 1F 00 05 00 db 0E5h, 03h, 1Fh, 00h, 05h, 00h -31E4:735C 3B 75 05 00 3B 75 db 3Bh, 75h, 05h, 00h, 3Bh, 75h -31E4:7362 05 00 3B 75 05 00 db 05h, 00h, 3Bh, 75h, 05h, 00h -31E4:7368 3B 75 05 00 3B 75 db 3Bh, 75h, 05h, 00h, 3Bh, 75h -31E4:736E 21 00 db 21h, 00h -31E4:7370 loc_2145: -31E4:7370 3B 75 21 cmp si,[di+21h] -31E4:7373 00 E5 add ch,ah -31E4:7375 03 1F add bx,[bx] -31E4:7377 00 05 add [di],al -31E4:7379 00 3B add [bp+di],bh -31E4:737B 75 05 ;* jnz loc_2146 ;*Jump if not zero -31E4:737B 75 05 db 75h, 05h -31E4:737D 00 3B add [bp+di],bh -31E4:737F 75 05 ;* jnz loc_2147 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 466 - -31E4:737F 75 05 db 75h, 05h -31E4:7381 00 3B add [bp+di],bh -31E4:7383 75 05 ;* jnz loc_2148 ;*Jump if not zero -31E4:7383 75 05 db 75h, 05h -31E4:7385 00 3B add [bp+di],bh -31E4:7387 75 05 ;* jnz loc_2149 ;*Jump if not zero -31E4:7387 75 05 db 75h, 05h -31E4:7389 00 3B add [bp+di],bh -31E4:738B 75 21 ;* jnz loc_2156 ;*Jump if not zero -31E4:738B 75 21 db 75h, 21h -31E4:738D 00 3B add [bp+di],bh -31E4:738F 75 21 ;* jnz loc_2157 ;*Jump if not zero -31E4:738F 75 21 db 75h, 21h -31E4:7391 00 E5 add ch,ah -31E4:7393 03 1F add bx,[bx] -31E4:7395 00 05 add [di],al -31E4:7397 00 3B add [bp+di],bh -31E4:7399 75 05 ;* jnz loc_2152 ;*Jump if not zero -31E4:7399 75 05 db 75h, 05h -31E4:739B 00 3B add [bp+di],bh -31E4:739D 75 05 ;* jnz loc_2153 ;*Jump if not zero -31E4:739D 75 05 db 75h, 05h -31E4:739F 00 3B add [bp+di],bh -31E4:73A1 75 05 ;* jnz loc_2154 ;*Jump if not zero -31E4:73A1 75 05 db 75h, 05h -31E4:73A3 00 3B add [bp+di],bh -31E4:73A5 75 05 ;* jnz loc_2155 ;*Jump if not zero -31E4:73A5 75 05 db 75h, 05h -31E4:73A7 00 3B add [bp+di],bh -31E4:73A9 75 21 ;* jnz loc_2162 ;*Jump if not zero -31E4:73A9 75 21 db 75h, 21h -31E4:73AB 00 3B add [bp+di],bh -31E4:73AD 75 21 ;* jnz loc_2163 ;*Jump if not zero -31E4:73AD 75 21 db 75h, 21h -31E4:73AF 00 E5 add ch,ah -31E4:73B1 03 1F add bx,[bx] -31E4:73B3 00 05 add [di],al -31E4:73B5 00 3B add [bp+di],bh -31E4:73B7 75 05 ;* jnz loc_2158 ;*Jump if not zero -31E4:73B7 75 05 db 75h, 05h -31E4:73B9 00 3B add [bp+di],bh -31E4:73BB 75 05 ;* jnz loc_2159 ;*Jump if not zero -31E4:73BB 75 05 db 75h, 05h -31E4:73BD 00 3B add [bp+di],bh -31E4:73BF 75 05 ;* jnz loc_2160 ;*Jump if not zero -31E4:73BF 75 05 db 75h, 05h -31E4:73C1 00 3B add [bp+di],bh -31E4:73C3 75 05 ;* jnz loc_2161 ;*Jump if not zero -31E4:73C3 75 05 db 75h, 05h -31E4:73C5 00 3B add [bp+di],bh -31E4:73C7 75 21 ;* jnz loc_2167 ;*Jump if not zero -31E4:73C7 75 21 db 75h, 21h -31E4:73C9 00 E5 add ch,ah -31E4:73CB 03 1F add bx,[bx] -31E4:73CD 00 05 add [di],al -31E4:73CF 00 3B add [bp+di],bh -31E4:73D1 75 05 ;* jnz loc_2164 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 467 - -31E4:73D1 75 05 db 75h, 05h -31E4:73D3 00 3B add [bp+di],bh -31E4:73D5 75 20 jnz loc_2168 ; Jump if not zero -31E4:73D7 00 05 add [di],al -31E4:73D9 00 3B add [bp+di],bh -31E4:73DB 75 05 ;* jnz loc_2165 ;*Jump if not zero -31E4:73DB 75 05 db 75h, 05h -31E4:73DD 00 3B add [bp+di],bh -31E4:73DF 75 05 ;* jnz loc_2166 ;*Jump if not zero -31E4:73DF 75 05 db 75h, 05h -31E4:73E1 00 3B add [bp+di],bh -31E4:73E3 75 05 ;* jnz loc_2167 ;*Jump if not zero -31E4:73E3 75 05 db 75h, 05h -31E4:73E5 00 3B add [bp+di],bh -31E4:73E7 75 21 ;* jnz loc_2174 ;*Jump if not zero -31E4:73E7 75 21 db 75h, 21h -31E4:73E9 00 E5 add ch,ah -31E4:73EB 03 1F add bx,[bx] -31E4:73ED 00 05 add [di],al -31E4:73EF 00 3B add [bp+di],bh -31E4:73F1 75 05 ;* jnz loc_2169 ;*Jump if not zero -31E4:73F1 75 05 db 75h, 05h -31E4:73F3 00 3B add [bp+di],bh -31E4:73F5 75 05 ;* jnz loc_2170 ;*Jump if not zero -31E4:73F5 75 05 db 75h, 05h -31E4:73F7 loc_2168: ; xref 31E4:73D5 -31E4:73F7 00 3B add [bp+di],bh -31E4:73F9 75 05 ;* jnz loc_2171 ;*Jump if not zero -31E4:73F9 75 05 db 75h, 05h -31E4:73FB 00 3B add [bp+di],bh -31E4:73FD 75 05 ;* jnz loc_2172 ;*Jump if not zero -31E4:73FD 75 05 db 75h, 05h -31E4:73FF 00 3B add [bp+di],bh -31E4:7401 75 05 ;* jnz loc_2173 ;*Jump if not zero -31E4:7401 75 05 db 75h, 05h -31E4:7403 00 3B add [bp+di],bh -31E4:7405 75 05 ;* jnz loc_2175 ;*Jump if not zero -31E4:7405 75 05 db 75h, 05h -31E4:7407 00 3B add [bp+di],bh -31E4:7409 75 05 ;* jnz loc_2176 ;*Jump if not zero -31E4:7409 75 05 db 75h, 05h -31E4:740B 00 3B add [bp+di],bh -31E4:740D 75 1C jnz loc_2177 ; Jump if not zero -31E4:740F 00 12 add [bp+si],dl -31E4:7411 00 4A 73 add [bp+si+73h],cl -31E4:7414 20 00 and [bx+si],al -31E4:7416 1F pop ds -31E4:7417 00 1F add [bx],bl -31E4:7419 00 1F add [bx],bl -31E4:741B 00 1C add [si],bl -31E4:741D 00 1C add [si],bl -31E4:741F 00 EC add ah,ch -31E4:7421 76 21 ;* jbe loc_2182 ;*Jump if below or = -31E4:7421 76 21 db 76h, 21h -31E4:7423 00 3B add [bp+di],bh -31E4:7425 75 21 ;* jnz loc_2184 ;*Jump if not zero -31E4:7425 75 21 db 75h, 21h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 468 - -31E4:7427 00 E5 add ch,ah -31E4:7429 03 1F add bx,[bx] -31E4:742B loc_2177: ; xref 31E4:740D -31E4:742B 00 05 add [di],al -31E4:742D 00 3B add [bp+di],bh -31E4:742F 75 05 ;* jnz loc_2178 ;*Jump if not zero -31E4:742F 75 05 db 75h, 05h -31E4:7431 00 3B add [bp+di],bh -31E4:7433 75 05 ;* jnz loc_2179 ;*Jump if not zero -31E4:7433 75 05 db 75h, 05h -31E4:7435 00 3B add [bp+di],bh -31E4:7437 75 05 ;* jnz loc_2180 ;*Jump if not zero -31E4:7437 75 05 db 75h, 05h -31E4:7439 00 3B add [bp+di],bh -31E4:743B 75 05 ;* jnz loc_2181 ;*Jump if not zero -31E4:743B 75 05 db 75h, 05h -31E4:743D 00 3B add [bp+di],bh -31E4:743F 75 05 ;* jnz loc_2183 ;*Jump if not zero -31E4:743F 75 05 db 75h, 05h -31E4:7441 00 3B add [bp+di],bh -31E4:7443 75 21 ;* jnz loc_2190 ;*Jump if not zero -31E4:7443 75 21 db 75h, 21h -31E4:7445 00 E5 add ch,ah -31E4:7447 03 1F add bx,[bx] -31E4:7449 00 05 add [di],al -31E4:744B 00 3B add [bp+di],bh -31E4:744D 75 05 ;* jnz loc_2185 ;*Jump if not zero -31E4:744D 75 05 db 75h, 05h -31E4:744F 00 3B add [bp+di],bh -31E4:7451 75 05 ;* jnz loc_2186 ;*Jump if not zero -31E4:7451 75 05 db 75h, 05h -31E4:7453 00 3B add [bp+di],bh -31E4:7455 75 05 ;* jnz loc_2187 ;*Jump if not zero -31E4:7455 75 05 db 75h, 05h -31E4:7457 00 3B add [bp+di],bh -31E4:7459 75 05 ;* jnz loc_2188 ;*Jump if not zero -31E4:7459 75 05 db 75h, 05h -31E4:745B 00 3B add [bp+di],bh -31E4:745D 75 05 ;* jnz loc_2189 ;*Jump if not zero -31E4:745D 75 05 db 75h, 05h -31E4:745F 00 3B add [bp+di],bh -31E4:7461 75 21 ;* jnz loc_2196 ;*Jump if not zero -31E4:7461 75 21 db 75h, 21h -31E4:7463 00 E5 add ch,ah -31E4:7465 03 1F add bx,[bx] -31E4:7467 00 05 add [di],al -31E4:7469 00 3B add [bp+di],bh -31E4:746B 75 05 ;* jnz loc_2191 ;*Jump if not zero -31E4:746B 75 05 db 75h, 05h -31E4:746D 00 3B add [bp+di],bh -31E4:746F 75 05 ;* jnz loc_2192 ;*Jump if not zero -31E4:746F 75 05 db 75h, 05h -31E4:7471 00 3B add [bp+di],bh -31E4:7473 75 05 ;* jnz loc_2193 ;*Jump if not zero -31E4:7473 75 05 db 75h, 05h -31E4:7475 00 3B add [bp+di],bh -31E4:7477 75 05 ;* jnz loc_2194 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 469 - -31E4:7477 75 05 db 75h, 05h -31E4:7479 00 3B add [bp+di],bh -31E4:747B 75 05 ;* jnz loc_2195 ;*Jump if not zero -31E4:747B 75 05 db 75h, 05h -31E4:747D 00 3B add [bp+di],bh -31E4:747F 75 1C jnz loc_2198 ; Jump if not zero -31E4:7481 00 1C add [si],bl -31E4:7483 00 00 add [bx+si],al -31E4:7485 00 21 add [bx+di],ah -31E4:7487 00 3B add [bp+di],bh -31E4:7489 75 21 ;* jnz loc_2202 ;*Jump if not zero -31E4:7489 75 21 db 75h, 21h -31E4:748B 00 E5 add ch,ah -31E4:748D 03 1F add bx,[bx] -31E4:748F 00 05 add [di],al -31E4:7491 00 3B add [bp+di],bh -31E4:7493 75 05 ;* jnz loc_2197 ;*Jump if not zero -31E4:7493 75 05 db 75h, 05h -31E4:7495 00 3B add [bp+di],bh -31E4:7497 75 05 ;* jnz loc_2199 ;*Jump if not zero -31E4:7497 75 05 db 75h, 05h -31E4:7499 00 3B add [bp+di],bh -31E4:749B 75 05 ;* jnz loc_2200 ;*Jump if not zero -31E4:749B 75 05 db 75h, 05h -31E4:749D loc_2198: ; xref 31E4:747F -31E4:749D 00 3B add [bp+di],bh -31E4:749F 75 05 ;* jnz loc_2201 ;*Jump if not zero -31E4:749F 75 05 db 75h, 05h -31E4:74A1 00 3B add [bp+di],bh -31E4:74A3 75 21 ;* jnz loc_2207 ;*Jump if not zero -31E4:74A3 75 21 db 75h, 21h -31E4:74A5 00 3B add [bp+di],bh -31E4:74A7 75 21 ;* jnz loc_2208 ;*Jump if not zero -31E4:74A7 75 21 db 75h, 21h -31E4:74A9 00 E5 add ch,ah -31E4:74AB 03 1F add bx,[bx] -31E4:74AD 00 05 add [di],al -31E4:74AF 00 3B add [bp+di],bh -31E4:74B1 75 05 ;* jnz loc_2203 ;*Jump if not zero -31E4:74B1 75 05 db 75h, 05h -31E4:74B3 00 3B add [bp+di],bh -31E4:74B5 75 05 ;* jnz loc_2204 ;*Jump if not zero -31E4:74B5 75 05 db 75h, 05h -31E4:74B7 00 3B add [bp+di],bh -31E4:74B9 75 05 ;* jnz loc_2205 ;*Jump if not zero -31E4:74B9 75 05 db 75h, 05h -31E4:74BB 00 3B add [bp+di],bh -31E4:74BD 75 05 ;* jnz loc_2206 ;*Jump if not zero -31E4:74BD 75 05 db 75h, 05h -31E4:74BF 00 3B add [bp+di],bh -31E4:74C1 75 21 ;* jnz loc_2213 ;*Jump if not zero -31E4:74C1 75 21 db 75h, 21h -31E4:74C3 00 3B add [bp+di],bh -31E4:74C5 75 21 ;* jnz loc_2214 ;*Jump if not zero -31E4:74C5 75 21 db 75h, 21h -31E4:74C7 00 E5 add ch,ah -31E4:74C9 03 1F add bx,[bx] - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 470 - -31E4:74CB 00 05 add [di],al -31E4:74CD 00 3B add [bp+di],bh -31E4:74CF 75 05 ;* jnz loc_2209 ;*Jump if not zero -31E4:74CF 75 05 db 75h, 05h -31E4:74D1 00 3B add [bp+di],bh -31E4:74D3 75 05 ;* jnz loc_2210 ;*Jump if not zero -31E4:74D3 75 05 db 75h, 05h -31E4:74D5 00 3B add [bp+di],bh -31E4:74D7 75 05 ;* jnz loc_2211 ;*Jump if not zero -31E4:74D7 75 05 db 75h, 05h -31E4:74D9 00 3B add [bp+di],bh -31E4:74DB 75 05 ;* jnz loc_2212 ;*Jump if not zero -31E4:74DB 75 05 db 75h, 05h -31E4:74DD 00 3B add [bp+di],bh -31E4:74DF 75 21 ;* jnz loc_2219 ;*Jump if not zero -31E4:74DF 75 21 db 75h, 21h -31E4:74E1 00 3B add [bp+di],bh -31E4:74E3 75 21 ;* jnz loc_2220 ;*Jump if not zero -31E4:74E3 75 21 db 75h, 21h -31E4:74E5 00 E5 add ch,ah -31E4:74E7 03 1F add bx,[bx] -31E4:74E9 00 05 add [di],al -31E4:74EB 00 3B add [bp+di],bh -31E4:74ED 75 05 ;* jnz loc_2215 ;*Jump if not zero -31E4:74ED 75 05 db 75h, 05h -31E4:74EF 00 3B add [bp+di],bh -31E4:74F1 75 05 ;* jnz loc_2216 ;*Jump if not zero -31E4:74F1 75 05 db 75h, 05h -31E4:74F3 00 3B add [bp+di],bh -31E4:74F5 75 05 ;* jnz loc_2217 ;*Jump if not zero -31E4:74F5 75 05 db 75h, 05h -31E4:74F7 00 3B add [bp+di],bh -31E4:74F9 75 05 ;* jnz loc_2218 ;*Jump if not zero -31E4:74F9 75 05 db 75h, 05h -31E4:74FB 00 3B add [bp+di],bh -31E4:74FD 75 21 ;* jnz loc_2224 ;*Jump if not zero -31E4:74FD 75 21 db 75h, 21h -31E4:74FF 00 E5 add ch,ah -31E4:7501 03 1F add bx,[bx] -31E4:7503 00 05 add [di],al -31E4:7505 00 3B add [bp+di],bh -31E4:7507 75 05 ;* jnz loc_2221 ;*Jump if not zero -31E4:7507 75 05 db 75h, 05h -31E4:7509 00 3B add [bp+di],bh -31E4:750B 75 20 jnz loc_2225 ; Jump if not zero -31E4:750D 00 05 add [di],al -31E4:750F 00 3B add [bp+di],bh -31E4:7511 75 05 ;* jnz loc_2222 ;*Jump if not zero -31E4:7511 75 05 db 75h, 05h -31E4:7513 00 3B add [bp+di],bh -31E4:7515 75 05 ;* jnz loc_2223 ;*Jump if not zero -31E4:7515 75 05 db 75h, 05h -31E4:7517 00 3B add [bp+di],bh -31E4:7519 75 05 ;* jnz loc_2224 ;*Jump if not zero -31E4:7519 75 05 db 75h, 05h -31E4:751B 00 3B add [bp+di],bh -31E4:751D 75 21 ;* jnz loc_2231 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 471 - -31E4:751D 75 21 db 75h, 21h -31E4:751F 00 E5 add ch,ah -31E4:7521 03 1F add bx,[bx] -31E4:7523 00 05 add [di],al -31E4:7525 00 3B add [bp+di],bh -31E4:7527 75 05 ;* jnz loc_2226 ;*Jump if not zero -31E4:7527 75 05 db 75h, 05h -31E4:7529 00 3B add [bp+di],bh -31E4:752B 75 05 ;* jnz loc_2227 ;*Jump if not zero -31E4:752B 75 05 db 75h, 05h -31E4:752D loc_2225: ; xref 31E4:750B -31E4:752D 00 3B add [bp+di],bh -31E4:752F 75 05 ;* jnz loc_2228 ;*Jump if not zero -31E4:752F 75 05 db 75h, 05h -31E4:7531 00 3B add [bp+di],bh -31E4:7533 75 05 ;* jnz loc_2229 ;*Jump if not zero -31E4:7533 75 05 db 75h, 05h -31E4:7535 00 3B add [bp+di],bh -31E4:7537 75 05 ;* jnz loc_2230 ;*Jump if not zero -31E4:7537 75 05 db 75h, 05h -31E4:7539 00 3B add [bp+di],bh -31E4:753B 75 05 ;* jnz loc_2232 ;*Jump if not zero -31E4:753B 75 05 db 75h, 05h -31E4:753D 00 3B add [bp+di],bh -31E4:753F 75 05 ;* jnz loc_2233 ;*Jump if not zero -31E4:753F 75 05 db 75h, 05h -31E4:7541 00 3B add [bp+di],bh -31E4:7543 75 1C jnz loc_2234 ; Jump if not zero -31E4:7545 00 12 add [bp+si],dl -31E4:7547 00 4A 73 add [bp+si+73h],cl -31E4:754A 20 00 and [bx+si],al -31E4:754C 1F pop ds -31E4:754D 00 1F add [bx],bl -31E4:754F 00 1F add [bx],bl -31E4:7551 00 1C add [si],bl -31E4:7553 00 1C add [si],bl -31E4:7555 00 EC add ah,ch -31E4:7557 76 21 ;* jbe loc_2239 ;*Jump if below or = -31E4:7557 76 21 db 76h, 21h -31E4:7559 00 3B add [bp+di],bh -31E4:755B 75 21 ;* jnz loc_2241 ;*Jump if not zero -31E4:755B 75 21 db 75h, 21h -31E4:755D 00 E5 add ch,ah -31E4:755F 03 1F add bx,[bx] -31E4:7561 loc_2234: ; xref 31E4:7543 -31E4:7561 00 05 add [di],al -31E4:7563 00 3B add [bp+di],bh -31E4:7565 75 05 ;* jnz loc_2235 ;*Jump if not zero -31E4:7565 75 05 db 75h, 05h -31E4:7567 00 3B add [bp+di],bh -31E4:7569 75 05 ;* jnz loc_2236 ;*Jump if not zero -31E4:7569 75 05 db 75h, 05h -31E4:756B 00 3B add [bp+di],bh -31E4:756D 75 05 ;* jnz loc_2237 ;*Jump if not zero -31E4:756D 75 05 db 75h, 05h -31E4:756F 00 3B add [bp+di],bh -31E4:7571 75 05 ;* jnz loc_2238 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 472 - -31E4:7571 75 05 db 75h, 05h -31E4:7573 00 3B add [bp+di],bh -31E4:7575 75 05 ;* jnz loc_2240 ;*Jump if not zero -31E4:7575 75 05 db 75h, 05h -31E4:7577 00 3B add [bp+di],bh -31E4:7579 75 21 ;* jnz loc_2247 ;*Jump if not zero -31E4:7579 75 21 db 75h, 21h -31E4:757B 00 E5 add ch,ah -31E4:757D 03 1F add bx,[bx] -31E4:757F 00 05 add [di],al -31E4:7581 00 3B add [bp+di],bh -31E4:7583 75 05 ;* jnz loc_2242 ;*Jump if not zero -31E4:7583 75 05 db 75h, 05h -31E4:7585 00 3B add [bp+di],bh -31E4:7587 75 05 ;* jnz loc_2243 ;*Jump if not zero -31E4:7587 75 05 db 75h, 05h -31E4:7589 00 3B add [bp+di],bh -31E4:758B 75 05 ;* jnz loc_2244 ;*Jump if not zero -31E4:758B 75 05 db 75h, 05h -31E4:758D 00 3B add [bp+di],bh -31E4:758F 75 05 ;* jnz loc_2245 ;*Jump if not zero -31E4:758F 75 05 db 75h, 05h -31E4:7591 00 3B add [bp+di],bh -31E4:7593 75 05 ;* jnz loc_2246 ;*Jump if not zero -31E4:7593 75 05 db 75h, 05h -31E4:7595 00 3B add [bp+di],bh -31E4:7597 75 21 ;* jnz loc_2253 ;*Jump if not zero -31E4:7597 75 21 db 75h, 21h -31E4:7599 00 E5 add ch,ah -31E4:759B 03 1F add bx,[bx] -31E4:759D 00 05 add [di],al -31E4:759F 00 3B add [bp+di],bh -31E4:75A1 75 05 ;* jnz loc_2248 ;*Jump if not zero -31E4:75A1 75 05 db 75h, 05h -31E4:75A3 00 3B add [bp+di],bh -31E4:75A5 75 05 ;* jnz loc_2249 ;*Jump if not zero -31E4:75A5 75 05 db 75h, 05h -31E4:75A7 00 3B add [bp+di],bh -31E4:75A9 75 05 ;* jnz loc_2250 ;*Jump if not zero -31E4:75A9 75 05 db 75h, 05h -31E4:75AB 00 3B add [bp+di],bh -31E4:75AD 75 05 ;* jnz loc_2251 ;*Jump if not zero -31E4:75AD 75 05 db 75h, 05h -31E4:75AF 00 3B add [bp+di],bh -31E4:75B1 75 05 ;* jnz loc_2252 ;*Jump if not zero -31E4:75B1 75 05 db 75h, 05h -31E4:75B3 00 3B add [bp+di],bh -31E4:75B5 75 1C jnz loc_2255 ; Jump if not zero -31E4:75B7 00 1C add [si],bl -31E4:75B9 00 00 add [bx+si],al -31E4:75BB 00 21 add [bx+di],ah -31E4:75BD 00 3B add [bp+di],bh -31E4:75BF 75 21 ;* jnz loc_2259 ;*Jump if not zero -31E4:75BF 75 21 db 75h, 21h -31E4:75C1 00 E5 add ch,ah -31E4:75C3 03 1F add bx,[bx] -31E4:75C5 00 05 add [di],al - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 473 - -31E4:75C7 00 3B add [bp+di],bh -31E4:75C9 75 05 ;* jnz loc_2254 ;*Jump if not zero -31E4:75C9 75 05 db 75h, 05h -31E4:75CB 00 3B add [bp+di],bh -31E4:75CD 75 05 ;* jnz loc_2256 ;*Jump if not zero -31E4:75CD 75 05 db 75h, 05h -31E4:75CF 00 3B add [bp+di],bh -31E4:75D1 75 05 ;* jnz loc_2257 ;*Jump if not zero -31E4:75D1 75 05 db 75h, 05h -31E4:75D3 loc_2255: ; xref 31E4:75B5 -31E4:75D3 00 3B add [bp+di],bh -31E4:75D5 75 05 ;* jnz loc_2258 ;*Jump if not zero -31E4:75D5 75 05 db 75h, 05h -31E4:75D7 00 3B add [bp+di],bh -31E4:75D9 75 21 ;* jnz loc_2264 ;*Jump if not zero -31E4:75D9 75 21 db 75h, 21h -31E4:75DB 00 3B add [bp+di],bh -31E4:75DD 75 21 ;* jnz loc_2265 ;*Jump if not zero -31E4:75DD 75 21 db 75h, 21h -31E4:75DF 00 E5 add ch,ah -31E4:75E1 03 1F add bx,[bx] -31E4:75E3 00 05 add [di],al -31E4:75E5 00 3B add [bp+di],bh -31E4:75E7 75 05 ;* jnz loc_2260 ;*Jump if not zero -31E4:75E7 75 05 db 75h, 05h -31E4:75E9 00 3B add [bp+di],bh -31E4:75EB 75 05 ;* jnz loc_2261 ;*Jump if not zero -31E4:75EB 75 05 db 75h, 05h -31E4:75ED 00 3B add [bp+di],bh -31E4:75EF 75 05 ;* jnz loc_2262 ;*Jump if not zero -31E4:75EF 75 05 db 75h, 05h -31E4:75F1 00 3B add [bp+di],bh -31E4:75F3 75 05 ;* jnz loc_2263 ;*Jump if not zero -31E4:75F3 75 05 db 75h, 05h -31E4:75F5 00 3B add [bp+di],bh -31E4:75F7 75 21 ;* jnz loc_2270 ;*Jump if not zero -31E4:75F7 75 21 db 75h, 21h -31E4:75F9 00 3B add [bp+di],bh -31E4:75FB 75 21 ;* jnz loc_2271 ;*Jump if not zero -31E4:75FB 75 21 db 75h, 21h -31E4:75FD 00 E5 add ch,ah -31E4:75FF 03 1F add bx,[bx] -31E4:7601 00 05 add [di],al -31E4:7603 00 3B add [bp+di],bh -31E4:7605 75 05 ;* jnz loc_2266 ;*Jump if not zero -31E4:7605 75 05 db 75h, 05h -31E4:7607 00 3B add [bp+di],bh -31E4:7609 75 05 ;* jnz loc_2267 ;*Jump if not zero -31E4:7609 75 05 db 75h, 05h -31E4:760B 00 3B add [bp+di],bh -31E4:760D 75 05 ;* jnz loc_2268 ;*Jump if not zero -31E4:760D 75 05 db 75h, 05h -31E4:760F 00 3B add [bp+di],bh -31E4:7611 75 05 ;* jnz loc_2269 ;*Jump if not zero -31E4:7611 75 05 db 75h, 05h -31E4:7613 00 3B add [bp+di],bh -31E4:7615 75 21 ;* jnz loc_2276 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 474 - -31E4:7615 75 21 db 75h, 21h -31E4:7617 00 3B add [bp+di],bh -31E4:7619 75 21 ;* jnz loc_2277 ;*Jump if not zero -31E4:7619 75 21 db 75h, 21h -31E4:761B 00 E5 add ch,ah -31E4:761D 03 1F add bx,[bx] -31E4:761F 00 05 add [di],al -31E4:7621 00 3B add [bp+di],bh -31E4:7623 75 05 ;* jnz loc_2272 ;*Jump if not zero -31E4:7623 75 05 db 75h, 05h -31E4:7625 00 3B add [bp+di],bh -31E4:7627 75 05 ;* jnz loc_2273 ;*Jump if not zero -31E4:7627 75 05 db 75h, 05h -31E4:7629 00 3B add [bp+di],bh -31E4:762B 75 05 ;* jnz loc_2274 ;*Jump if not zero -31E4:762B 75 05 db 75h, 05h -31E4:762D 00 3B add [bp+di],bh -31E4:762F 75 05 ;* jnz loc_2275 ;*Jump if not zero -31E4:762F 75 05 db 75h, 05h -31E4:7631 00 3B add [bp+di],bh -31E4:7633 75 21 ;* jnz loc_2281 ;*Jump if not zero -31E4:7633 75 21 db 75h, 21h -31E4:7635 00 E5 add ch,ah -31E4:7637 03 1F add bx,[bx] -31E4:7639 00 05 add [di],al -31E4:763B 00 3B add [bp+di],bh -31E4:763D 75 05 ;* jnz loc_2278 ;*Jump if not zero -31E4:763D 75 05 db 75h, 05h -31E4:763F 00 3B add [bp+di],bh -31E4:7641 75 20 jnz loc_2282 ; Jump if not zero -31E4:7643 00 05 add [di],al -31E4:7645 00 3B add [bp+di],bh -31E4:7647 75 05 ;* jnz loc_2279 ;*Jump if not zero -31E4:7647 75 05 db 75h, 05h -31E4:7649 00 3B add [bp+di],bh -31E4:764B 75 05 ;* jnz loc_2280 ;*Jump if not zero -31E4:764B 75 05 db 75h, 05h -31E4:764D 00 3B add [bp+di],bh -31E4:764F 75 05 ;* jnz loc_2281 ;*Jump if not zero -31E4:764F 75 05 db 75h, 05h -31E4:7651 00 3B add [bp+di],bh -31E4:7653 75 21 ;* jnz loc_2288 ;*Jump if not zero -31E4:7653 75 21 db 75h, 21h -31E4:7655 00 E5 add ch,ah -31E4:7657 03 1F add bx,[bx] -31E4:7659 00 05 add [di],al -31E4:765B 00 3B add [bp+di],bh -31E4:765D 75 05 ;* jnz loc_2283 ;*Jump if not zero -31E4:765D 75 05 db 75h, 05h -31E4:765F 00 3B add [bp+di],bh -31E4:7661 75 05 ;* jnz loc_2284 ;*Jump if not zero -31E4:7661 75 05 db 75h, 05h -31E4:7663 loc_2282: ; xref 31E4:7641 -31E4:7663 00 3B add [bp+di],bh -31E4:7665 75 05 ;* jnz loc_2285 ;*Jump if not zero -31E4:7665 75 05 db 75h, 05h -31E4:7667 00 3B add [bp+di],bh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 475 - -31E4:7669 75 05 ;* jnz loc_2286 ;*Jump if not zero -31E4:7669 75 05 db 75h, 05h -31E4:766B 00 3B add [bp+di],bh -31E4:766D 75 05 ;* jnz loc_2287 ;*Jump if not zero -31E4:766D 75 05 db 75h, 05h -31E4:766F 00 3B add [bp+di],bh -31E4:7671 75 05 ;* jnz loc_2289 ;*Jump if not zero -31E4:7671 75 05 db 75h, 05h -31E4:7673 00 3B add [bp+di],bh -31E4:7675 75 05 ;* jnz loc_2290 ;*Jump if not zero -31E4:7675 75 05 db 75h, 05h -31E4:7677 00 3B add [bp+di],bh -31E4:7679 75 1C jnz loc_2291 ; Jump if not zero -31E4:767B 00 12 add [bp+si],dl -31E4:767D 00 4A 73 add [bp+si+73h],cl -31E4:7680 20 00 and [bx+si],al -31E4:7682 1F pop ds -31E4:7683 00 1F add [bx],bl -31E4:7685 00 1F add [bx],bl -31E4:7687 00 1C add [si],bl -31E4:7689 00 1C add [si],bl -31E4:768B 00 EC add ah,ch -31E4:768D 76 21 ;* jbe loc_2296 ;*Jump if below or = -31E4:768D 76 21 db 76h, 21h -31E4:768F 00 3B add [bp+di],bh -31E4:7691 75 21 ;* jnz loc_2298 ;*Jump if not zero -31E4:7691 75 21 db 75h, 21h -31E4:7693 00 E5 add ch,ah -31E4:7695 03 1F add bx,[bx] -31E4:7697 loc_2291: ; xref 31E4:7679 -31E4:7697 00 05 add [di],al -31E4:7699 00 3B add [bp+di],bh -31E4:769B 75 05 ;* jnz loc_2292 ;*Jump if not zero -31E4:769B 75 05 db 75h, 05h -31E4:769D 00 3B add [bp+di],bh -31E4:769F 75 05 ;* jnz loc_2293 ;*Jump if not zero -31E4:769F 75 05 db 75h, 05h -31E4:76A1 00 3B add [bp+di],bh -31E4:76A3 75 05 ;* jnz loc_2294 ;*Jump if not zero -31E4:76A3 75 05 db 75h, 05h -31E4:76A5 00 3B add [bp+di],bh -31E4:76A7 75 05 ;* jnz loc_2295 ;*Jump if not zero -31E4:76A7 75 05 db 75h, 05h -31E4:76A9 00 3B add [bp+di],bh -31E4:76AB 75 05 ;* jnz loc_2297 ;*Jump if not zero -31E4:76AB 75 05 db 75h, 05h -31E4:76AD 00 3B add [bp+di],bh -31E4:76AF 75 21 ;* jnz loc_2304 ;*Jump if not zero -31E4:76AF 75 21 db 75h, 21h -31E4:76B1 00 E5 add ch,ah -31E4:76B3 03 1F add bx,[bx] -31E4:76B5 00 05 add [di],al -31E4:76B7 00 3B add [bp+di],bh -31E4:76B9 75 05 ;* jnz loc_2299 ;*Jump if not zero -31E4:76B9 75 05 db 75h, 05h -31E4:76BB 00 3B add [bp+di],bh -31E4:76BD 75 05 ;* jnz loc_2300 ;*Jump if not zero - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 476 - -31E4:76BD 75 05 db 75h, 05h -31E4:76BF 00 3B add [bp+di],bh -31E4:76C1 75 05 ;* jnz loc_2301 ;*Jump if not zero -31E4:76C1 75 05 db 75h, 05h -31E4:76C3 00 3B add [bp+di],bh -31E4:76C5 75 05 ;* jnz loc_2302 ;*Jump if not zero -31E4:76C5 75 05 db 75h, 05h -31E4:76C7 00 3B add [bp+di],bh -31E4:76C9 75 05 ;* jnz loc_2303 ;*Jump if not zero -31E4:76C9 75 05 db 75h, 05h -31E4:76CB 00 3B add [bp+di],bh -31E4:76CD 75 21 ;* jnz loc_2310 ;*Jump if not zero -31E4:76CD 75 21 db 75h, 21h -31E4:76CF 00 E5 add ch,ah -31E4:76D1 03 1F add bx,[bx] -31E4:76D3 00 05 add [di],al -31E4:76D5 00 3B add [bp+di],bh -31E4:76D7 75 05 ;* jnz loc_2305 ;*Jump if not zero -31E4:76D7 75 05 db 75h, 05h -31E4:76D9 00 3B add [bp+di],bh -31E4:76DB 75 05 ;* jnz loc_2306 ;*Jump if not zero -31E4:76DB 75 05 db 75h, 05h -31E4:76DD 00 3B add [bp+di],bh -31E4:76DF 75 05 ;* jnz loc_2307 ;*Jump if not zero -31E4:76DF 75 05 db 75h, 05h -31E4:76E1 00 3B add [bp+di],bh -31E4:76E3 75 05 ;* jnz loc_2308 ;*Jump if not zero -31E4:76E3 75 05 db 75h, 05h -31E4:76E5 00 3B add [bp+di],bh -31E4:76E7 75 05 ;* jnz loc_2309 ;*Jump if not zero -31E4:76E7 75 05 db 75h, 05h -31E4:76E9 00 3B add [bp+di],bh -31E4:76EB 75 1C ;* jnz loc_2311 ;*Jump if not zero -31E4:76EB 75 1C db 75h, 1Ch -31E4:76ED 00 1D add [di],bl -31E4:76EF 00 86 0777 add [bp+777h],al -31E4:76F3 00 16 2427 add ds:data_34e,dl ; (0000:2427=8Bh) -31E4:76F7 00 20 add [bx+si],ah -31E4:76F9 04 86 add al,86h -31E4:76FB 77 1E ja loc_2312 ; Jump if above -31E4:76FD 00 1C add [si],bl -31E4:76FF 1F pop ds -31E4:7700 25 2000 and ax,2000h -31E4:7703 04 05 add al,5 -31E4:7705 08 00 or [bx+si],al -31E4:7707 00 00 db 0, 0 -31E4:7709 00 00 00 25 00 20 db 00h, 00h, 00h, 25h, 00h, 20h -31E4:770F 04 00 00 00 00 D9 db 04h, 00h, 00h, 00h, 00h,0D9h -31E4:7715 08 00 00 25 00 db 08h, 00h, 00h, 25h, 00h -31E4:771A 20 db 20h -31E4:771B loc_2312: ; xref 31E4:76FB -31E4:771B 04 06 add al,6 -31E4:771D 08 00 or [bx+si],al -31E4:771F 00 00 00 00 00 25 db 00h, 00h, 00h, 00h, 00h, 25h -31E4:7725 00 20 04 07 08 00 db 00h, 20h, 04h, 07h, 08h, 00h -31E4:772B 00 00 00 00 00 1F db 00h, 00h, 00h, 00h, 00h, 1Fh -31E4:7731 00 22 00 86 77 25 db 00h, 22h, 00h, 86h, 77h, 25h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 477 - -31E4:7737 00 20 04 F0 0B 00 db 00h, 20h, 04h,0F0h, 0Bh, 00h -31E4:773D 00 F1 0B 00 00 25 db 00h,0F1h, 0Bh, 00h, 00h, 25h -31E4:7743 00 20 04 F2 0B 00 db 00h, 20h, 04h,0F2h, 0Bh, 00h -31E4:7749 00 F3 0B 14 00 25 db 00h,0F3h, 0Bh, 14h, 00h, 25h -31E4:774F 00 20 04 F4 0B 14 db 00h, 20h, 04h,0F4h, 0Bh, 14h -31E4:7755 00 00 00 00 00 1F db 00h, 00h, 00h, 00h, 00h, 1Fh -31E4:775B 00 22 00 86 77 25 db 00h, 22h, 00h, 86h, 77h, 25h -31E4:7761 00 20 04 F5 0B 00 db 00h, 20h, 04h,0F5h, 0Bh, 00h -31E4:7767 00 F6 0B 00 00 25 db 00h,0F6h, 0Bh, 00h, 00h, 25h -31E4:776D 00 20 04 F7 0B 00 db 00h, 20h, 04h,0F7h, 0Bh, 00h -31E4:7773 00 F8 db 00h,0F8h -31E4:7775 000B data_936 dw 0Bh ; xref 31E4:BCFE -31E4:7777 00 25 00 20 04 F9 db 00h, 25h, 00h, 20h, 04h,0F9h -31E4:777D 0B 00 00 FA 0B 00 db 0Bh, 00h, 00h,0FAh, 0Bh, 00h -31E4:7783 00 1F 00 1C 00 11 db 00h, 1Fh, 00h, 1Ch, 00h, 11h -31E4:7789 00 00 00 07 00 15 db 00h, 00h, 00h, 07h, 00h, 15h -31E4:778F 27 1C 00 14 00 00 db 27h, 1Ch, 00h, 14h, 00h, 00h -31E4:7795 00 1C 00 0D 00 00 db 00h, 1Ch, 00h, 0Dh, 00h, 00h -31E4:779B 00 1C 00 0F 00 00 db 00h, 1Ch, 00h, 0Fh, 00h, 00h -31E4:77A1 00 22 00 4A 73 1C db 00h, 22h, 00h, 4Ah, 73h, 1Ch -31E4:77A7 00 1C 00 EC 76 20 db 00h, 1Ch, 00h,0ECh, 76h, 20h -31E4:77AD 00 1F 00 1F 00 1F db 00h, 1Fh, 00h, 1Fh, 00h, 1Fh -31E4:77B3 00 1F 00 22 00 EC db 00h, 1Fh, 00h, 22h, 00h,0ECh -31E4:77B9 76 02 00 0B F7 16 db 76h, 02h, 00h, 0Bh,0F7h, 16h -31E4:77BF 12 8C 1B 00 0C 82 db 12h, 8Ch, 1Bh, 00h, 0Ch, 82h -31E4:77C5 00 BA 77 0A 00 00 db 00h,0BAh, 77h, 0Ah, 00h, 00h -31E4:77CB 67 71 00 00 21 01 db 67h, 71h, 00h, 00h, 21h, 01h -31E4:77D1 06 01 20 00 30 00 db 06h, 01h, 20h, 00h, 30h, 00h -31E4:77D7 01 01 82 4F 20 00 db 01h, 01h, 82h, 4Fh, 20h, 00h -31E4:77DD 30 00 08 00 00 00 db 30h, 00h, 08h, 00h, 00h, 00h -31E4:77E3 13 5D 9E db 13h, 5Dh, 9Eh -31E4:77E6 0009[00] db 9 dup (0) -31E4:77EF 54 15 00 00 96 00 db 54h, 15h, 00h, 00h, 96h, 00h -31E4:77F5 00 00 F8 04 00 db 00h, 00h,0F8h, 04h, 00h -31E4:77FA 000D[00] db 13 dup (0) -31E4:7807 9F 13 00 db 9Fh, 13h, 00h -31E4:780A 0012[00] db 18 dup (0) -31E4:781C D3 67 00 00 00 00 db 0D3h, 67h, 00h, 00h, 00h, 00h -31E4:7822 00 00 00 02 AC db 00h, 00h, 00h, 02h,0ACh -31E4:7827 78 0A db 78h, 0Ah -31E4:7829 0015[00] db 21 dup (0) -31E4:783E 23 00 00 00 5C 78 db 23h, 00h, 00h, 00h, 5Ch, 78h -31E4:7844 25 00 ED 03 A8 0A db 25h, 00h,0EDh, 03h,0A8h, 0Ah -31E4:784A 00 00 A9 0A 00 00 db 00h, 00h,0A9h, 0Ah, 00h, 00h -31E4:7850 25 00 ED 03 AA 0A db 25h, 00h,0EDh, 03h,0AAh, 0Ah -31E4:7856 00 00 AB 0A 00 00 db 00h, 00h,0ABh, 0Ah, 00h, 00h -31E4:785C 1C 00 0E 00 00 00 db 1Ch, 00h, 0Eh, 00h, 00h, 00h -31E4:7862 1C 00 13 00 00 00 db 1Ch, 00h, 13h, 00h, 00h, 00h -31E4:7868 1C 00 20 00 A6 78 db 1Ch, 00h, 20h, 00h,0A6h, 78h -31E4:786E 07 00 20 27 24 00 db 07h, 00h, 20h, 27h, 24h, 00h -31E4:7874 29 04 db 29h, 04h -31E4:7876 loc_2313: -31E4:7876 9C pushf ; Push flags -31E4:7877 78 25 js loc_2314 ; Jump if sign=1 -31E4:7879 00 29 add [bx+di],ch -31E4:787B 04 72 add al,72h ; 'r' -31E4:787D 09 00 or [bx+si],ax - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 478 - -31E4:787F 00 73 09 add [bp+di+9],dh -31E4:7882 00 00 add [bx+si],al -31E4:7884 25 2900 and ax,2900h -31E4:7887 04 74 add al,74h ; 't' -31E4:7889 09 00 or [bx+si],ax -31E4:788B 00 00 00 00 00 25 db 00h, 00h, 00h, 00h, 00h, 25h -31E4:7891 00 29 04 75 09 00 db 00h, 29h, 04h, 75h, 09h, 00h -31E4:7897 00 00 00 00 00 1C db 00h, 00h, 00h, 00h, 00h, 1Ch -31E4:789D 00 db 00h -31E4:789E loc_2314: ; xref 31E4:7877 -31E4:789E 0C 00 or al,0 -31E4:78A0 00 00 add [bx+si],al -31E4:78A2 07 pop es -31E4:78A3 00 1F add [bx],bl -31E4:78A5 27 daa ; Decimal adjust -31E4:78A6 1C 00 sbb al,0 -31E4:78A8 0A 00 or al,[bx+si] -31E4:78AA 00 00 add [bx+si],al -31E4:78AC 1C 00 sbb al,0 -31E4:78AE 0E push cs -31E4:78AF 00 00 add [bx+si],al -31E4:78B1 00 1C add [si],bl -31E4:78B3 00 13 add [bp+di],dl -31E4:78B5 00 00 add [bx+si],al -31E4:78B7 00 1C add [si],bl -31E4:78B9 00 20 add [bx+si],ah -31E4:78BB 00 FC add ah,bh -31E4:78BD 78 07 js loc_2315 ; Jump if sign=1 -31E4:78BF 00 20 add [bx+si],ah -31E4:78C1 27 daa ; Decimal adjust -31E4:78C2 24 00 and al,0 -31E4:78C4 29 04 sub [si],ax -31E4:78C6 loc_2315: ; xref 31E4:78BD -31E4:78C6 F2 78 25 00 29 04 db 0F2h, 78h, 25h, 00h, 29h, 04h -31E4:78CC 97 0B 00 00 98 0B db 97h, 0Bh, 00h, 00h, 98h, 0Bh -31E4:78D2 00 00 25 00 29 04 db 00h, 00h, 25h, 00h, 29h, 04h -31E4:78D8 99 0B 00 00 00 00 db 99h, 0Bh, 00h, 00h, 00h, 00h -31E4:78DE 00 00 25 00 29 04 db 00h, 00h, 25h, 00h, 29h, 04h -31E4:78E4 9A 0B 1E 00 00 00 db 9Ah, 0Bh, 1Eh, 00h, 00h, 00h -31E4:78EA 00 00 1F 00 1F 00 db 00h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:78F0 1F 00 1C 00 0C 00 db 1Fh, 00h, 1Ch, 00h, 0Ch, 00h -31E4:78F6 00 00 07 00 1F 27 db 00h, 00h, 07h, 00h, 1Fh, 27h -31E4:78FC 1C 00 0A 00 00 00 db 1Ch, 00h, 0Ah, 00h, 00h, 00h -31E4:7902 1C 00 0E 00 00 00 db 1Ch, 00h, 0Eh, 00h, 00h, 00h -31E4:7908 1C 00 13 00 00 00 db 1Ch, 00h, 13h, 00h, 00h, 00h -31E4:790E 1E 00 6C 1F 1C 00 db 1Eh, 00h, 6Ch, 1Fh, 1Ch, 00h -31E4:7914 23 00 98 79 24 00 db 23h, 00h, 98h, 79h, 24h, 00h -31E4:791A 36 04 96 79 1E 00 db 36h, 04h, 96h, 79h, 1Eh, 00h -31E4:7920 44 1F 25 00 36 04 db 44h, 1Fh, 25h, 00h, 36h, 04h -31E4:7926 D6 0B 00 00 D7 0B db 0D6h, 0Bh, 00h, 00h,0D7h, 0Bh -31E4:792C 00 00 25 00 36 04 db 00h, 00h, 25h, 00h, 36h, 04h -31E4:7932 D8 0B 00 00 D9 0B db 0D8h, 0Bh, 00h, 00h,0D9h, 0Bh -31E4:7938 00 00 25 00 db 00h, 00h, 25h, 00h -31E4:793C 36 db 36h -31E4:793D loc_2316: -31E4:793D 04 DA add al,0DAh -31E4:793F 0B 00 or ax,[bx+si] -31E4:7941 00 00 00 00 00 22 db 00h, 00h, 00h, 00h, 00h, 22h -31E4:7947 00 96 79 25 00 36 db 00h, 96h, 79h, 25h, 00h, 36h -31E4:794D 04 DB 0B 00 00 DC db 04h,0DBh, 0Bh, 00h, 00h,0DCh -31E4:7953 0B 00 00 25 00 36 db 0Bh, 00h, 00h, 25h, 00h, 36h -31E4:7959 04 DD 0B 00 00 DE db 04h,0DDh, 0Bh, 00h, 00h,0DEh -31E4:795F 0B 00 00 25 00 36 db 0Bh, 00h, 00h, 25h, 00h, 36h -31E4:7965 04 DF 0B 00 00 E0 db 04h,0DFh, 0Bh, 00h, 00h,0E0h -31E4:796B 0B 00 00 22 00 96 db 0Bh, 00h, 00h, 22h, 00h, 96h -31E4:7971 79 25 00 36 04 E1 db 79h, 25h, 00h, 36h, 04h,0E1h -31E4:7977 0B 00 00 E2 0B 00 db 0Bh, 00h, 00h,0E2h, 0Bh, 00h -31E4:797D 00 25 00 36 04 E3 db 00h, 25h, 00h, 36h, 04h,0E3h -31E4:7983 0B 00 00 E4 0B 00 db 0Bh, 00h, 00h,0E4h, 0Bh, 00h -31E4:7989 00 25 00 36 04 E5 db 00h, 25h, 00h, 36h, 04h,0E5h -31E4:798F 0B 00 00 00 00 00 db 0Bh, 00h, 00h, 00h, 00h, 00h -31E4:7995 00 1F 00 1C 00 0C db 00h, 1Fh, 00h, 1Ch, 00h, 0Ch -31E4:799B 00 00 00 1C 00 0A db 00h, 00h, 00h, 1Ch, 00h, 0Ah -31E4:79A1 00 00 00 22 00 5C db 00h, 00h, 00h, 22h, 00h, 5Ch -31E4:79A7 78 1C 00 0F 00 00 db 78h, 1Ch, 00h, 0Fh, 00h, 00h -31E4:79AD 00 21 00 E6 03 1F db 00h, 21h, 00h,0E6h, 03h, 1Fh -31E4:79B3 00 1F 00 1F 00 1F db 00h, 1Fh, 00h, 1Fh, 00h, 1Fh -31E4:79B9 00 1F 00 1F 00 1F db 00h, 1Fh, 00h, 1Fh, 00h, 1Fh -31E4:79BF 00 1F 00 1F 00 1F db 00h, 1Fh, 00h, 1Fh, 00h, 1Fh -31E4:79C5 00 1F 00 1F 00 1F db 00h, 1Fh, 00h, 1Fh, 00h, 1Fh -31E4:79CB 00 1F 00 1E 00 31 db 00h, 1Fh, 00h, 1Eh, 00h, 31h -31E4:79D1 27 22 00 5C 78 03 db 27h, 22h, 00h, 5Ch, 78h, 03h -31E4:79D7 00 0B D1 16 12 8C db 00h, 0Bh,0D1h, 16h, 12h, 8Ch -31E4:79DD 1B 18 81 1D 00 0C db 1Bh, 18h, 81h, 1Dh, 00h, 0Ch -31E4:79E3 82 00 D6 79 0A 00 db 82h, 00h,0D6h, 79h, 0Ah, 00h -31E4:79E9 00 67 71 00 00 75 db 00h, 67h, 71h, 00h, 00h, 75h -31E4:79EF 01 E5 00 20 00 30 db 01h,0E5h, 00h, 20h, 00h, 30h -31E4:79F5 00 01 01 82 4F 20 db 00h, 01h, 01h, 82h, 4Fh, 20h -31E4:79FB 00 30 00 08 00 00 db 00h, 30h, 00h, 08h, 00h, 00h -31E4:7A01 00 FE 5C 8F 00 db 00h,0FEh, 5Ch, 8Fh, 00h -31E4:7A06 0008[00] db 8 dup (0) -31E4:7A0E 15 16 00 00 96 00 db 15h, 16h, 00h, 00h, 96h, 00h -31E4:7A14 00 00 F8 04 28 00 db 00h, 00h,0F8h, 04h, 28h, 00h -31E4:7A1A 00 00 00 50 0B db 00h, 00h, 00h, 50h, 0Bh -31E4:7A1F 0007[00] db 7 dup (0) -31E4:7A26 DA 13 db 0DAh, 13h -31E4:7A28 0013[00] db 19 dup (0) -31E4:7A3B 13 68 00 00 00 00 db 13h, 68h, 00h, 00h, 00h, 00h -31E4:7A41 00 00 00 02 5D 7A db 00h, 00h, 00h, 02h, 5Dh, 7Ah -31E4:7A47 0F db 0Fh -31E4:7A48 0015[00] db 21 dup (0) -31E4:7A5D 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7A63 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7A69 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7A6F 1C 00 15 00 00 00 db 1Ch, 00h, 15h, 00h, 00h, 00h -31E4:7A75 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7A7B 1F 00 1C 00 12 00 db 1Fh, 00h, 1Ch, 00h, 12h, 00h -31E4:7A81 00 00 1C 00 19 00 db 00h, 00h, 1Ch, 00h, 19h, 00h -31E4:7A87 00 00 20 00 1F 00 db 00h, 00h, 20h, 00h, 1Fh, 00h -31E4:7A8D 1F 00 1F 00 1C 00 db 1Fh, 00h, 1Fh, 00h, 1Ch, 00h -31E4:7A93 17 00 00 00 20 00 db 17h, 00h, 00h, 00h, 20h, 00h -31E4:7A99 1F 00 1C 00 15 00 db 1Fh, 00h, 1Ch, 00h, 15h, 00h -31E4:7A9F 00 00 1C 00 14 00 db 00h, 00h, 1Ch, 00h, 14h, 00h -31E4:7AA5 00 00 1C 00 0D 00 db 00h, 00h, 1Ch, 00h, 0Dh, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 480 - -31E4:7AAB 00 00 1E 00 80 1F db 00h, 00h, 1Eh, 00h, 80h, 1Fh -31E4:7AB1 1C 00 0F 00 00 00 db 1Ch, 00h, 0Fh, 00h, 00h, 00h -31E4:7AB7 20 00 22 00 5D 7A db 20h, 00h, 22h, 00h, 5Dh, 7Ah -31E4:7ABD 1C 00 09 00 00 00 db 1Ch, 00h, 09h, 00h, 00h, 00h -31E4:7AC3 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7AC9 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7ACF 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7AD5 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7ADB 1C 00 07 00 00 00 db 1Ch, 00h, 07h, 00h, 00h, 00h -31E4:7AE1 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7AE7 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7AED 1E 00 94 1F 22 00 db 1Eh, 00h, 94h, 1Fh, 22h, 00h -31E4:7AF3 BD 7A 1C 00 1D 00 db 0BDh, 7Ah, 1Ch, 00h, 1Dh, 00h -31E4:7AF9 15 7B 07 00 16 27 db 15h, 7Bh, 07h, 00h, 16h, 27h -31E4:7AFF 24 00 20 04 15 7B db 24h, 00h, 20h, 04h, 15h, 7Bh -31E4:7B05 25 00 20 04 51 0B db 25h, 00h, 20h, 04h, 51h, 0Bh -31E4:7B0B 00 00 52 0B 00 00 db 00h, 00h, 52h, 0Bh, 00h, 00h -31E4:7B11 1F 00 1F 00 00 00 db 1Fh, 00h, 1Fh, 00h, 00h, 00h -31E4:7B17 02 00 0B F7 19 12 db 02h, 00h, 0Bh,0F7h, 19h, 12h -31E4:7B1D 8C 1B 00 0C 82 00 db 8Ch, 1Bh, 00h, 0Ch, 82h, 00h -31E4:7B23 17 7B 24 00 00 67 db 17h, 7Bh, 24h, 00h, 00h, 67h -31E4:7B29 71 00 00 6B 01 07 db 71h, 00h, 00h, 6Bh, 01h, 07h -31E4:7B2F 01 20 00 30 00 01 db 01h, 20h, 00h, 30h, 00h, 01h -31E4:7B35 01 82 4F 20 00 30 db 01h, 82h, 4Fh, 20h, 00h, 30h -31E4:7B3B 00 08 00 00 00 3D db 00h, 08h, 00h, 00h, 00h, 3Dh -31E4:7B41 5D 9E db 5Dh, 9Eh -31E4:7B43 0009[00] db 9 dup (0) -31E4:7B4C A8 15 00 00 96 00 db 0A8h, 15h, 00h, 00h, 96h, 00h -31E4:7B52 00 00 F8 04 28 00 db 00h, 00h,0F8h, 04h, 28h, 00h -31E4:7B58 00 00 00 50 0B db 00h, 00h, 00h, 50h, 0Bh -31E4:7B5D 0007[00] db 7 dup (0) -31E4:7B64 07 15 00 00 db 07h, 15h, 00h, 00h -31E4:7B68 0011[00] db 17 dup (0) -31E4:7B79 53 68 db 53h, 68h -31E4:7B7B 0007[00] db 7 dup (0) -31E4:7B82 02 9B 7B 24 db 02h, 9Bh, 7Bh, 24h -31E4:7B86 0015[00] db 21 dup (0) -31E4:7B9B 1C 00 14 00 00 00 db 1Ch, 00h, 14h, 00h, 00h, 00h -31E4:7BA1 07 00 21 27 1C 00 db 07h, 00h, 21h, 27h, 1Ch, 00h -31E4:7BA7 0F 00 00 00 1C 00 db 0Fh, 00h, 00h, 00h, 1Ch, 00h -31E4:7BAD 11 00 00 00 1C 00 db 11h, 00h, 00h, 00h, 1Ch, 00h -31E4:7BB3 0A 00 00 00 1C 00 db 0Ah, 00h, 00h, 00h, 1Ch, 00h -31E4:7BB9 0C 00 00 00 1C 00 db 0Ch, 00h, 00h, 00h, 1Ch, 00h -31E4:7BBF 14 00 00 00 1C 00 db 14h, 00h, 00h, 00h, 1Ch, 00h -31E4:7BC5 24 00 9B 7B 07 00 db 24h, 00h, 9Bh, 7Bh, 07h, 00h -31E4:7BCB 22 27 20 00 1F 00 db 22h, 27h, 20h, 00h, 1Fh, 00h -31E4:7BD1 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7BD7 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7BDD 1F 00 1F 00 20 00 db 1Fh, 00h, 1Fh, 00h, 20h, 00h -31E4:7BE3 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7BE9 1F 00 20 00 1F 00 db 1Fh, 00h, 20h, 00h, 1Fh, 00h -31E4:7BEF 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7BF5 20 00 1F 00 1F 00 db 20h, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7BFB 1F 00 1F 00 20 00 db 1Fh, 00h, 1Fh, 00h, 20h, 00h -31E4:7C01 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7C07 1F 00 22 00 9B 7B db 1Fh, 00h, 22h, 00h, 9Bh, 7Bh -31E4:7C0D 03 00 0B 3B 1A 12 db 03h, 00h, 0Bh, 3Bh, 1Ah, 12h -31E4:7C13 8C 1B 0D B0 1C 00 db 8Ch, 1Bh, 0Dh,0B0h, 1Ch, 00h -31E4:7C19 0C 82 00 0D 7C 24 db 0Ch, 82h, 00h, 0Dh, 7Ch, 24h -31E4:7C1F 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:7C25 F7 00 FD 00 20 00 db 0F7h, 00h,0FDh, 00h, 20h, 00h -31E4:7C2B 30 00 01 01 82 4F db 30h, 00h, 01h, 01h, 82h, 4Fh -31E4:7C31 20 00 30 00 08 00 db 20h, 00h, 30h, 00h, 08h, 00h -31E4:7C37 00 00 52 5D 9E db 00h, 00h, 52h, 5Dh, 9Eh -31E4:7C3C 0009[00] db 9 dup (0) -31E4:7C45 A8 15 00 00 96 00 db 0A8h, 15h, 00h, 00h, 96h, 00h -31E4:7C4B 00 00 F8 04 00 db 00h, 00h,0F8h, 04h, 00h -31E4:7C50 000D[00] db 13 dup (0) -31E4:7C5D 07 15 00 00 db 07h, 15h, 00h, 00h -31E4:7C61 0011[00] db 17 dup (0) -31E4:7C72 F3 68 db 0F3h, 68h -31E4:7C74 0007[00] db 7 dup (0) -31E4:7C7B 02 94 7C 24 db 02h, 94h, 7Ch, 24h -31E4:7C7F 0015[00] db 21 dup (0) -31E4:7C94 1C 00 14 00 00 00 db 1Ch, 00h, 14h, 00h, 00h, 00h -31E4:7C9A 22 00 AC 7C 1F 00 db 22h, 00h,0ACh, 7Ch, 1Fh, 00h -31E4:7CA0 1F 00 1C 00 14 00 db 1Fh, 00h, 1Ch, 00h, 14h, 00h -31E4:7CA6 00 00 07 00 21 27 db 00h, 00h, 07h, 00h, 21h, 27h -31E4:7CAC 1C 00 0F 00 00 00 db 1Ch, 00h, 0Fh, 00h, 00h, 00h -31E4:7CB2 1C 00 11 00 00 00 db 1Ch, 00h, 11h, 00h, 00h, 00h -31E4:7CB8 1C 00 0A 00 00 00 db 1Ch, 00h, 0Ah, 00h, 00h, 00h -31E4:7CBE 1C 00 0C 00 00 00 db 1Ch, 00h, 0Ch, 00h, 00h, 00h -31E4:7CC4 1C 00 14 00 00 00 db 1Ch, 00h, 14h, 00h, 00h, 00h -31E4:7CCA 1C 00 24 00 9E 7C db 1Ch, 00h, 24h, 00h, 9Eh, 7Ch -31E4:7CD0 07 00 22 27 20 00 db 07h, 00h, 22h, 27h, 20h, 00h -31E4:7CD6 1F 00 db 1Fh, 00h -31E4:7CD8 loc_2317: -31E4:7CD8 1F pop ds -31E4:7CD9 00 1F add [bx],bl -31E4:7CDB 00 1F add [bx],bl -31E4:7CDD 00 20 add [bx+si],ah -31E4:7CDF 00 1F add [bx],bl -31E4:7CE1 00 1F add [bx],bl -31E4:7CE3 00 1F add [bx],bl -31E4:7CE5 00 1F add [bx],bl -31E4:7CE7 00 20 add [bx+si],ah -31E4:7CE9 00 1F add [bx],bl -31E4:7CEB 00 1F add [bx],bl -31E4:7CED 00 1F add [bx],bl -31E4:7CEF 00 1F add [bx],bl -31E4:7CF1 00 20 add [bx+si],ah -31E4:7CF3 00 1F add [bx],bl -31E4:7CF5 00 1F add [bx],bl -31E4:7CF7 00 1F add [bx],bl -31E4:7CF9 00 1F add [bx],bl -31E4:7CFB 00 20 add [bx+si],ah -31E4:7CFD 00 1F add [bx],bl -31E4:7CFF 00 1F add [bx],bl -31E4:7D01 00 1F add [bx],bl -31E4:7D03 00 1F add [bx],bl -31E4:7D05 00 20 add [bx+si],ah -31E4:7D07 00 1F add [bx],bl -31E4:7D09 00 1F add [bx],bl -31E4:7D0B 00 1F add [bx],bl -31E4:7D0D 00 1F add [bx],bl -31E4:7D0F 00 22 add [bp+si],ah -31E4:7D11 00 9E 037C add [bp+37Ch],bl -31E4:7D15 00 0B add [bp+di],cl -31E4:7D17 CB retf ; Return far -31E4:7D18 25 0D CA 1C 12 8C db 25h, 0Dh,0CAh, 1Ch, 12h, 8Ch -31E4:7D1E 1B 00 00 db 1Bh, 00h, 00h - -31E4:7D21 goewin_hotspot_rec: -31E4:7D21 00 00 00 db 00h, 00h, 00h -31E4:7D24 00 14 7D 1F 00 00 db 00h, 14h, 7Dh, 1Fh, 00h, 00h -31E4:7D2A 67 71 00 00 11 01 db 67h, 71h, 00h, 00h, 11h, 01h -31E4:7D30 E6 00 20 00 30 00 db 0E6h, 00h, 20h, 00h, 30h, 00h -31E4:7D36 01 01 80 81 20 00 db 01h, 01h, 80h, 81h, 20h, 00h -31E4:7D3C 30 00 08 00 00 00 db 30h, 00h, 08h, 00h, 00h, 00h -31E4:7D42 1E 59 9E 3A 04 db 1Eh, 59h, 9Eh, 3Ah, 04h -31E4:7D47 0007[00] db 7 dup (0) -31E4:7D4E 5B 15 00 00 96 00 db 5Bh, 15h, 00h, 00h, 96h, 00h -31E4:7D54 00 00 F8 04 00 db 00h, 00h,0F8h, 04h, 00h -31E4:7D59 000D[00] db 13 dup (0) -31E4:7D66 2D 14 00 db 2Dh, 14h, 00h -31E4:7D69 0012[00] db 18 dup (0) -31E4:7D7B 93 68 D3 68 00 00 db 93h, 68h,0D3h, 68h, 00h, 00h -31E4:7D81 00 00 00 02 9D 7D db 00h, 00h, 00h, 02h, 9Dh, 7Dh -31E4:7D87 0E db 0Eh -31E4:7D88 0015[00] db 21 dup (0) -31E4:7D9D 1C 00 22 00 00 00 db 1Ch, 00h, 22h, 00h, 00h, 00h -31E4:7DA3 21 00 4A 75 1E 00 db 21h, 00h, 4Ah, 75h, 1Eh, 00h -31E4:7DA9 CD 1D 1C 00 0A 00 db 0CDh, 1Dh, 1Ch, 00h, 0Ah, 00h -31E4:7DAF 00 00 07 00 25 27 db 00h, 00h, 07h, 00h, 25h, 27h -31E4:7DB5 1C 00 14 00 00 00 db 1Ch, 00h, 14h, 00h, 00h, 00h -31E4:7DBB 1C 00 11 00 00 00 db 1Ch, 00h, 11h, 00h, 00h, 00h -31E4:7DC1 1C 00 0F 00 00 00 db 1Ch, 00h, 0Fh, 00h, 00h, 00h -31E4:7DC7 22 00 9D 7D 1C 00 db 22h, 00h, 9Dh, 7Dh, 1Ch, 00h -31E4:7DCD 0F 00 00 00 21 00 db 0Fh, 00h, 00h, 00h, 21h, 00h -31E4:7DD3 E6 03 1F 00 1F 00 db 0E6h, 03h, 1Fh, 00h, 1Fh, 00h -31E4:7DD9 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7DDF 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7DE5 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7DEB 1F 00 1F 00 1F 00 db 1Fh, 00h, 1Fh, 00h, 1Fh, 00h -31E4:7DF1 1E 00 31 27 22 00 db 1Eh, 00h, 31h, 27h, 22h, 00h -31E4:7DF7 9D 7D 1C 00 26 00 db 9Dh, 7Dh, 1Ch, 00h, 26h, 00h -31E4:7DFD F9 7D 20 00 20 00 db 0F9h, 7Dh, 20h, 00h, 20h, 00h -31E4:7E03 22 00 01 7E 09 02 db 22h, 00h, 01h, 7Eh, 09h, 02h -31E4:7E09 00 10 32 7E 02 00 db 00h, 10h, 32h, 7Eh, 02h, 00h -31E4:7E0F 00 db 00h -31E4:7E10 loc_2318: -31E4:7E10 72 71 jc loc_2322 ; Jump if carry Set -31E4:7E12 00 00 add [bx+si],al -31E4:7E14 08 01 or [bx+di],al -31E4:7E16 loc_2320: -31E4:7E16 C7 00 0010 mov word ptr [bx+si],10h -31E4:7E1A 0B 00 or ax,[bx+si] -31E4:7E1C 03 01 add ax,[bx+di] -31E4:7E1E 3A 7F 08 cmp bh,[bx+8] -31E4:7E21 00 2F add [bx],ch -31E4:7E23 00 02 add [bp+si],al -31E4:7E25 00 00 add [bx+si],al -31E4:7E27 00 3D add [di],bh -31E4:7E29 58 pop ax - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 483 - -31E4:7E2A 00 58 06 add [bx+si+6],bl -31E4:7E2D 00 00 00 00 00 02 db 00h, 00h, 00h, 00h, 00h, 02h -31E4:7E33 00 01 0B 80 04 0B db 00h, 01h, 0Bh, 80h, 04h, 0Bh -31E4:7E39 80 09 02 00 10 32 db 80h, 09h, 02h, 00h, 10h, 32h -31E4:7E3F 7E 02 00 00 72 71 db 7Eh, 02h, 00h, 00h, 72h, 71h -31E4:7E45 00 00 2C 01 C7 00 db 00h, 00h, 2Ch, 01h,0C7h, 00h -31E4:7E4B 10 00 0B 00 03 01 db 10h, 00h, 0Bh, 00h, 03h, 01h -31E4:7E51 3A 7F 08 00 2F 00 db 3Ah, 7Fh, 08h, 00h, 2Fh, 00h -31E4:7E57 02 00 00 00 3D 58 db 02h, 00h, 00h, 00h, 3Dh, 58h -31E4:7E5D 00 4E 06 00 00 00 db 00h, 4Eh, 06h, 00h, 00h, 00h -31E4:7E63 00 06 03 00 01 0B db 00h, 06h, 03h, 00h, 01h, 0Bh -31E4:7E69 80 10 20 0A 0A 37 db 80h, 10h, 20h, 0Ah, 0Ah, 37h -31E4:7E6F 0A db 0Ah - - oil_burner_hotspot_rec: -31E4:7E70 01 02 00 50 65 db 01h, 02h, 00h, 50h, 65h -31E4:7E75 7E 1E 00 00 72 71 db 7Eh, 1Eh, 00h, 00h, 72h, 71h -31E4:7E7B 00 00 78 00 05 01 db 00h, 00h, 78h, 00h, 05h, 01h -31E4:7E81 10 00 db 10h, 00h -31E4:7E83 loc_2322: ; xref 31E4:7E10 -31E4:7E83 06 push es -31E4:7E84 00 02 add [bp+si],al -31E4:7E86 01 BD 0241 add data_539[di],di ; (31E4:0241=0) -31E4:7E8A 00 46 00 add [bp],al -31E4:7E8D 02 00 add al,[bx+si] -31E4:7E8F 00 00 add [bx+si],al -31E4:7E91 27 daa ; Decimal adjust -31E4:7E92 59 pop cx -31E4:7E93 00 1C add [si],bl -31E4:7E95 06 push es -31E4:7E96 0008[00] db 8 dup (0) -31E4:7E9E 20 57 6D A8 01 00 db 20h, 57h, 6Dh,0A8h, 01h, 00h -31E4:7EA4 67 71 00 00 78 00 db 67h, 71h, 00h, 00h, 78h, 00h -31E4:7EAA 05 01 30 00 44 00 db 05h, 01h, 30h, 00h, 44h, 00h -31E4:7EB0 01 01 C6 80 2F 00 db 01h, 01h,0C6h, 80h, 2Fh, 00h -31E4:7EB6 44 00 02 00 00 00 db 44h, 00h, 02h, 00h, 00h, 00h -31E4:7EBC 30 59 db 30h, 59h -31E4:7EBE 000B[00] db 11 dup (0) -31E4:7EC9 20 57 6D 01 80 00 db 20h, 57h, 6Dh, 01h, 80h, 00h -31E4:7ECF 72 71 00 00 47 01 db 72h, 71h, 00h, 00h, 47h, 01h -31E4:7ED5 F2 00 10 00 19 00 db 0F2h, 00h, 10h, 00h, 19h, 00h -31E4:7EDB 03 01 69 7F 10 00 db 03h, 01h, 69h, 7Fh, 10h, 00h -31E4:7EE1 19 00 04 00 00 00 db 19h, 00h, 04h, 00h, 00h, 00h -31E4:7EE7 C4 58 00 84 01 00 db 0C4h, 58h, 00h, 84h, 01h, 00h -31E4:7EED 00 00 00 01 02 00 db 00h, 00h, 00h, 01h, 02h, 00h -31E4:7EF3 50 1A 7F 01 00 00 db 50h, 1Ah, 7Fh, 01h, 00h, 00h -31E4:7EF9 BD 41 00 00 38 01 db 0BDh, 41h, 00h, 00h, 38h, 01h -31E4:7EFF E8 00 20 00 3D 00 db 0E8h, 00h, 20h, 00h, 3Dh, 00h -31E4:7F05 03 01 09 80 20 00 db 03h, 01h, 09h, 80h, 20h, 00h -31E4:7F0B 35 00 04 00 00 00 db 35h, 00h, 04h, 00h, 00h, 00h -31E4:7F11 CD 58 00 82 02 00 db 0CDh, 58h, 00h, 82h, 02h, 00h -31E4:7F17 00 00 00 01 00 01 db 00h, 00h, 00h, 01h, 00h, 01h -31E4:7F1D 1D 80 00 00 00 20 db 1Dh, 80h, 00h, 00h, 00h, 20h -31E4:7F23 57 6D 01 00 00 BD db 57h, 6Dh, 01h, 00h, 00h,0BDh -31E4:7F29 41 00 00 40 01 64 db 41h, 00h, 00h, 40h, 01h, 64h -31E4:7F2F 00 20 00 0C 00 03 db 00h, 20h, 00h, 0Ch, 00h, 03h -31E4:7F35 01 3A 7F 14 00 0C db 01h, 3Ah, 7Fh, 14h, 00h, 0Ch -31E4:7F3B 00 04 00 14 00 34 db 00h, 04h, 00h, 14h, 00h, 34h -31E4:7F41 58 00 26 02 00 00 db 58h, 00h, 26h, 02h, 00h, 00h -31E4:7F47 00 00 00 00 00 20 db 00h, 00h, 00h, 00h, 00h, 20h -31E4:7F4D 57 6D 04 00 00 72 db 57h, 6Dh, 04h, 00h, 00h, 72h -31E4:7F53 71 00 00 C2 00 0F db 71h, 00h, 00h,0C2h, 00h, 0Fh -31E4:7F59 01 20 00 0C 00 03 db 01h, 20h, 00h, 0Ch, 00h, 03h -31E4:7F5F 01 54 7F 14 00 0C db 01h, 54h, 7Fh, 14h, 00h, 0Ch -31E4:7F65 00 04 00 0A 00 34 db 00h, 04h, 00h, 0Ah, 00h, 34h -31E4:7F6B 58 00 A4 01 00 00 db 58h, 00h,0A4h, 01h, 00h, 00h -31E4:7F71 00 00 00 02 00 0A db 00h, 00h, 00h, 02h, 00h, 0Ah -31E4:7F77 B7 0A 01 23 80 01 db 0B7h, 0Ah, 01h, 23h, 80h, 01h -31E4:7F7D 02 00 00 74 7F 07 db 02h, 00h, 00h, 74h, 7Fh, 07h -31E4:7F83 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:7F89 19 01 C9 00 10 00 db 19h, 01h,0C9h, 00h, 10h, 00h -31E4:7F8F 37 00 03 00 3A 7F db 37h, 00h, 03h, 00h, 3Ah, 7Fh -31E4:7F95 0E 00 37 00 01 00 db 0Eh, 00h, 37h, 00h, 01h, 00h -31E4:7F9B 00 00 BB 58 00 9E db 00h, 00h,0BBh, 58h, 00h, 9Eh -31E4:7FA1 02 00 db 02h, 00h -31E4:7FA3 0007[00] db 7 dup (0) -31E4:7FAA 20 57 6D 07 00 00 db 20h, 57h, 6Dh, 07h, 00h, 00h -31E4:7FB0 72 71 00 00 1C 01 db 72h, 71h, 00h, 00h, 1Ch, 01h -31E4:7FB6 CA 00 20 00 30 00 db 0CAh, 00h, 20h, 00h, 30h, 00h -31E4:7FBC 01 01 A1 7F 10 00 db 01h, 01h,0A1h, 7Fh, 10h, 00h -31E4:7FC2 30 00 04 00 00 00 db 30h, 00h, 04h, 00h, 00h, 00h -31E4:7FC8 B2 58 80 A8 02 00 db 0B2h, 58h, 80h,0A8h, 02h, 00h -31E4:7FCE 00 00 00 00 09 02 db 00h, 00h, 00h, 00h, 09h, 02h -31E4:7FD4 00 10 FD 7F 01 00 db 00h, 10h,0FDh, 7Fh, 01h, 00h -31E4:7FDA 00 AC 88 00 00 4D db 00h,0ACh, 88h, 00h, 00h, 4Dh -31E4:7FE0 01 EB 00 10 00 18 db 01h,0EBh, 00h, 10h, 00h, 18h -31E4:7FE6 00 03 01 3A 7F 0B db 00h, 03h, 01h, 3Ah, 7Fh, 0Bh -31E4:7FEC 00 3B 00 02 00 00 db 00h, 3Bh, 00h, 02h, 00h, 00h -31E4:7FF2 00 97 58 00 4E 06 db 00h, 97h, 58h, 00h, 4Eh, 06h -31E4:7FF8 00 00 00 00 00 02 db 00h, 00h, 00h, 00h, 00h, 02h -31E4:7FFE 00 01 db 00h, 01h -31E4:8000 E4 data_962 db 0E4h -31E4:8001 03 04 E4 03 11 02 db 03h, 04h,0E4h, 03h, 11h, 02h -31E4:8007 00 00 2F 80 04 00 db 00h, 00h, 2Fh, 80h, 04h, 00h -31E4:800D 00 72 71 00 00 F2 db 00h, 72h, 71h, 00h, 00h,0F2h -31E4:8013 00 0C 01 30 00 10 db 00h, 0Ch, 01h, 30h, 00h, 10h -31E4:8019 00 00 00 BD 41 08 db 00h, 00h, 00h,0BDh, 41h, 08h -31E4:801F 00 20 00 10 00 00 db 00h, 20h, 00h, 10h, 00h, 00h -31E4:8025 00 db 00h -31E4:8026 3D 58 db 3Dh, 58h -31E4:8028 0007[00] db 7 dup (0) -31E4:802F 02 00 01 10 80 05 db 02h, 00h, 01h, 10h, 80h, 05h -31E4:8035 0A 07 00 08 00 00 db 0Ah, 07h, 00h, 08h, 00h, 00h -31E4:803B 7C 80 04 00 00 67 db 7Ch, 80h, 04h, 00h, 00h, 67h -31E4:8041 71 00 00 AA 00 0C db 71h, 00h, 00h,0AAh, 00h, 0Ch -31E4:8047 01 50 00 0E 00 01 db 01h, 50h, 00h, 0Eh, 00h, 01h -31E4:804D 01 2A 88 49 00 1E db 01h, 2Ah, 88h, 49h, 00h, 1Eh -31E4:8053 00 02 00 00 00 A0 db 00h, 02h, 00h, 00h, 00h,0A0h -31E4:8059 58 AD db 58h,0ADh -31E4:805B 000D[00] db 13 dup (0) -31E4:8068 96 00 00 00 0A db 96h, 00h, 00h, 00h, 0Ah -31E4:806D 000F[00] db 15 dup (0) -31E4:807C 01 00 0C 93 1A 00 db 01h, 00h, 0Ch, 93h, 1Ah, 00h -31E4:8082 0C 00 00 C6 80 02 db 0Ch, 00h, 00h,0C6h, 80h, 02h -31E4:8088 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:808E AA 00 CF 00 10 00 db 0AAh, 00h,0CFh, 00h, 10h, 00h -31E4:8094 10 00 03 01 B3 81 db 10h, 00h, 03h, 01h,0B3h, 81h -31E4:809A 08 00 3E 00 02 00 db 08h, 00h, 3Eh, 00h, 02h, 00h -31E4:80A0 00 00 A9 58 00 E0 db 00h, 00h,0A9h, 58h, 00h,0E0h -31E4:80A6 03 db 03h -31E4:80A7 000B[00] db 11 dup (0) -31E4:80B2 96 00 00 00 F8 06 db 96h, 00h, 00h, 00h,0F8h, 06h -31E4:80B8 000E[00] db 14 dup (0) -31E4:80C6 03 00 0C B7 1A 0B db 03h, 00h, 0Ch,0B7h, 1Ah, 0Bh -31E4:80CC D4 1A 10 CB 12 00 db 0D4h, 1Ah, 10h,0CBh, 12h, 00h -31E4:80D2 0C 82 00 45 88 1D db 0Ch, 82h, 00h, 45h, 88h, 1Dh -31E4:80D8 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:80DE 10 01 C2 00 20 00 db 10h, 01h,0C2h, 00h, 20h, 00h -31E4:80E4 16 00 03 01 A0 82 db 16h, 00h, 03h, 01h,0A0h, 82h -31E4:80EA 20 00 16 00 02 00 db 20h, 00h, 16h, 00h, 02h, 00h -31E4:80F0 00 00 db 00h, 00h -31E4:80F2 73 58 db 73h, 58h -31E4:80F4 000E[00] db 14 dup (0) -31E4:8102 96 00 00 00 F4 06 db 96h, 00h, 00h, 00h,0F4h, 06h -31E4:8108 28 00 00 00 00 50 db 28h, 00h, 00h, 00h, 00h, 50h -31E4:810E 0B db 0Bh -31E4:810F 0007[00] db 7 dup (0) -31E4:8116 02 00 0B 49 17 12 db 02h, 00h, 0Bh, 49h, 17h, 12h -31E4:811C 8C 1B 00 0C 82 00 db 8Ch, 1Bh, 00h, 0Ch, 82h, 00h -31E4:8122 16 81 20 00 00 67 db 16h, 81h, 20h, 00h, 00h, 67h -31E4:8128 71 00 00 10 01 C4 db 71h, 00h, 00h, 10h, 01h,0C4h -31E4:812E 00 20 00 16 00 03 db 00h, 20h, 00h, 16h, 00h, 03h -31E4:8134 01 A0 82 20 00 16 db 01h,0A0h, 82h, 20h, 00h, 16h -31E4:813A 00 02 00 00 00 db 00h, 02h, 00h, 00h, 00h -31E4:813F 7C 58 db 7Ch, 58h -31E4:8141 000E[00] db 14 dup (0) -31E4:814F 96 00 00 00 F2 06 db 96h, 00h, 00h, 00h,0F2h, 06h -31E4:8155 28 00 00 00 00 50 db 28h, 00h, 00h, 00h, 00h, 50h -31E4:815B 0B db 0Bh -31E4:815C 0007[00] db 7 dup (0) -31E4:8163 02 00 0B 9F 18 12 db 02h, 00h, 0Bh, 9Fh, 18h, 12h -31E4:8169 8C 1B 00 0C 82 00 db 8Ch, 1Bh, 00h, 0Ch, 82h, 00h -31E4:816F 63 81 23 00 00 67 db 63h, 81h, 23h, 00h, 00h, 67h -31E4:8175 71 00 00 02 01 D8 db 71h, 00h, 00h, 02h, 01h,0D8h -31E4:817B 00 10 00 17 00 03 db 00h, 10h, 00h, 17h, 00h, 03h -31E4:8181 01 A0 82 10 00 17 db 01h,0A0h, 82h, 10h, 00h, 17h -31E4:8187 00 02 00 00 00 E4 db 00h, 02h, 00h, 00h, 00h,0E4h -31E4:818D 59 db 59h -31E4:818E 000E[00] db 14 dup (0) -31E4:819C 96 00 00 00 F0 06 db 96h, 00h, 00h, 00h,0F0h, 06h -31E4:81A2 28 00 00 00 00 50 db 28h, 00h, 00h, 00h, 00h, 50h -31E4:81A8 0B db 0Bh -31E4:81A9 0007[00] db 7 dup (0) -31E4:81B0 09 02 00 10 32 7E db 09h, 02h, 00h, 10h, 32h, 7Eh -31E4:81B6 03 00 00 72 71 00 db 03h, 00h, 00h, 72h, 71h, 00h -31E4:81BC 00 62 01 DF 00 10 db 00h, 62h, 01h,0DFh, 00h, 10h -31E4:81C2 00 0B 00 03 01 3A db 00h, 0Bh, 00h, 03h, 01h, 3Ah -31E4:81C8 7F 08 00 2F 00 02 db 7Fh, 08h, 00h, 2Fh, 00h, 02h -31E4:81CE 00 00 00 3D 58 00 db 00h, 00h, 00h, 3Dh, 58h, 00h -31E4:81D4 4E 06 00 00 00 00 db 4Eh, 06h, 00h, 00h, 00h, 00h -31E4:81DA 00 09 02 00 10 32 db 00h, 09h, 02h, 00h, 10h, 32h -31E4:81E0 7E 04 00 00 72 71 db 7Eh, 04h, 00h, 00h, 72h, 71h -31E4:81E6 00 00 DC 00 DD 00 db 00h, 00h,0DCh, 00h,0DDh, 00h -31E4:81EC 10 00 0B 00 01 01 db 10h, 00h, 0Bh, 00h, 01h, 01h -31E4:81F2 3A 7F 08 00 2F 00 db 3Ah, 7Fh, 08h, 00h, 2Fh, 00h -31E4:81F8 02 00 00 00 3D 58 db 02h, 00h, 00h, 00h, 3Dh, 58h -31E4:81FE 00 4E 06 db 00h, 4Eh, 06h -31E4:8201 0009[00] db 9 dup (0) -31E4:820A 1A 7F 04 00 00 72 db 1Ah, 7Fh, 04h, 00h, 00h, 72h -31E4:8210 71 00 00 12 01 F4 db 71h, 00h, 00h, 12h, 01h,0F4h -31E4:8216 00 10 00 1B 00 03 db 00h, 10h, 00h, 1Bh, 00h, 03h -31E4:821C 01 3A 7F 10 00 1B db 01h, 3Ah, 7Fh, 10h, 00h, 1Bh -31E4:8222 00 02 00 00 00 D6 db 00h, 02h, 00h, 00h, 00h,0D6h -31E4:8228 58 00 4E 06 db 58h, 00h, 4Eh, 06h -31E4:822C 0008[00] db 8 dup (0) -31E4:8234 20 57 6D 01 00 00 db 20h, 57h, 6Dh, 01h, 00h, 00h -31E4:823A 72 71 00 00 58 01 db 72h, 71h, 00h, 00h, 58h, 01h -31E4:8240 BC 00 10 00 0A 00 db 0BCh, 00h, 10h, 00h, 0Ah, 00h -31E4:8246 01 01 3A 7F 0F 00 db 01h, 01h, 3Ah, 7Fh, 0Fh, 00h -31E4:824C 0A 00 02 00 00 00 db 0Ah, 00h, 02h, 00h, 00h, 00h -31E4:8252 DF 58 00 1C 01 00 db 0DFh, 58h, 00h, 1Ch, 01h, 00h -31E4:8258 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:825E 01 00 87 82 01 00 db 01h, 00h, 87h, 82h, 01h, 00h -31E4:8264 00 67 71 00 00 18 db 00h, 67h, 71h, 00h, 00h, 18h -31E4:826A 01 58 00 10 00 10 db 01h, 58h, 00h, 10h, 00h, 10h -31E4:8270 00 01 01 BD 41 10 db 00h, 01h, 01h,0BDh, 41h, 10h -31E4:8276 00 10 00 02 00 00 db 00h, 10h, 00h, 02h, 00h, 00h -31E4:827C 00 db 00h -31E4:827D 34 58 db 34h, 58h -31E4:827F 0008[00] db 8 dup (0) -31E4:8287 01 00 11 1A 80 00 db 01h, 00h, 11h, 1Ah, 80h, 00h -31E4:828D 00 00 00 57 6D 14 db 00h, 00h, 00h, 57h, 6Dh, 14h -31E4:8293 00 00 17 86 00 00 db 00h, 00h, 17h, 86h, 00h, 00h -31E4:8299 75 01 64 00 10 00 db 75h, 01h, 64h, 00h, 10h, 00h -31E4:829F 10 00 03 01 BD 41 db 10h, 00h, 03h, 01h,0BDh, 41h -31E4:82A5 10 00 10 00 02 00 db 10h, 00h, 10h, 00h, 02h, 00h -31E4:82AB 00 00 db 00h, 00h -31E4:82AD 42 59 db 42h, 59h -31E4:82AF 0008[00] db 8 dup (0) -31E4:82B7 03 00 01 10 80 04 db 03h, 00h, 01h, 10h, 80h, 04h -31E4:82BD E5 0F 03 35 10 0D db 0E5h, 0Fh, 03h, 35h, 10h, 0Dh -31E4:82C3 02 00 10 B7 82 26 db 02h, 00h, 10h,0B7h, 82h, 26h -31E4:82C9 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:82CF 4C 01 C6 00 10 00 db 4Ch, 01h,0C6h, 00h, 10h, 00h -31E4:82D5 0A 00 03 01 FA 86 db 0Ah, 00h, 03h, 01h,0FAh, 86h -31E4:82DB 09 00 0A 00 02 00 db 09h, 00h, 0Ah, 00h, 02h, 00h -31E4:82E1 00 00 C9 db 00h, 00h,0C9h -31E4:82E4 59 db 59h -31E4:82E5 0008[00] db 8 dup (0) -31E4:82ED 03 00 01 10 80 04 db 03h, 00h, 01h, 10h, 80h, 04h -31E4:82F3 6F 0F 03 BF 0F 0D db 6Fh, 0Fh, 03h,0BFh, 0Fh, 0Dh -31E4:82F9 02 00 10 ED 82 26 db 02h, 00h, 10h,0EDh, 82h, 26h -31E4:82FF 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8305 E3 00 C6 00 10 00 db 0E3h, 00h,0C6h, 00h, 10h, 00h -31E4:830B 0A 00 03 01 FF 86 db 0Ah, 00h, 03h, 01h,0FFh, 86h -31E4:8311 09 00 0A 00 02 00 db 09h, 00h, 0Ah, 00h, 02h, 00h -31E4:8317 00 00 C9 db 00h, 00h,0C9h -31E4:831A 59 db 59h -31E4:831B 0008[00] db 8 dup (0) -31E4:8323 03 00 01 10 80 03 db 03h, 00h, 01h, 10h, 80h, 03h -31E4:8329 21 11 04 D1 10 0D db 21h, 11h, 04h,0D1h, 10h, 0Dh -31E4:832F 02 00 10 23 83 27 db 02h, 00h, 10h, 23h, 83h, 27h -31E4:8335 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:833B 4C 01 C6 00 10 00 db 4Ch, 01h,0C6h, 00h, 10h, 00h -31E4:8341 0A 00 03 01 3D 87 db 0Ah, 00h, 03h, 01h, 3Dh, 87h -31E4:8347 09 00 0A 00 02 00 db 09h, 00h, 0Ah, 00h, 02h, 00h -31E4:834D 00 00 C9 db 00h, 00h,0C9h -31E4:8350 59 db 59h -31E4:8351 0008[00] db 8 dup (0) -31E4:8359 03 00 01 10 80 03 db 03h, 00h, 01h, 10h, 80h, 03h -31E4:835F AB 10 04 5B 10 0D db 0ABh, 10h, 04h, 5Bh, 10h, 0Dh -31E4:8365 02 00 10 59 83 27 db 02h, 00h, 10h, 59h, 83h, 27h -31E4:836B 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8371 E3 00 C6 00 10 00 db 0E3h, 00h,0C6h, 00h, 10h, 00h -31E4:8377 0A 00 03 01 1E 87 db 0Ah, 00h, 03h, 01h, 1Eh, 87h -31E4:837D 09 00 0A 00 02 00 db 09h, 00h, 0Ah, 00h, 02h, 00h -31E4:8383 00 00 C9 db 00h, 00h,0C9h -31E4:8386 59 db 59h -31E4:8387 0008[00] db 8 dup (0) -31E4:838F 03 00 01 10 80 03 db 03h, 00h, 01h, 10h, 80h, 03h -31E4:8395 07 12 04 BD 11 0D db 07h, 12h, 04h,0BDh, 11h, 0Dh -31E4:839B 02 00 10 8F 83 28 db 02h, 00h, 10h, 8Fh, 83h, 28h -31E4:83A1 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:83A7 52 01 C6 00 10 00 db 52h, 01h,0C6h, 00h, 10h, 00h -31E4:83AD 0A 00 03 00 47 87 db 0Ah, 00h, 03h, 00h, 47h, 87h -31E4:83B3 09 00 0A 00 02 00 db 09h, 00h, 0Ah, 00h, 02h, 00h -31E4:83B9 00 00 C9 db 00h, 00h,0C9h -31E4:83BC 59 db 59h -31E4:83BD 0008[00] db 8 dup (0) -31E4:83C5 03 00 01 10 80 03 db 03h, 00h, 01h, 10h, 80h, 03h -31E4:83CB 97 11 04 47 11 0D db 97h, 11h, 04h, 47h, 11h, 0Dh -31E4:83D1 02 00 10 C5 83 28 db 02h, 00h, 10h,0C5h, 83h, 28h -31E4:83D7 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:83DD E9 00 C6 00 10 00 db 0E9h, 00h,0C6h, 00h, 10h, 00h -31E4:83E3 0A 00 03 00 42 87 db 0Ah, 00h, 03h, 00h, 42h, 87h -31E4:83E9 09 00 0A 00 02 00 db 09h, 00h, 0Ah, 00h, 02h, 00h -31E4:83EF 00 00 C9 db 00h, 00h,0C9h -31E4:83F2 59 db 59h -31E4:83F3 0008[00] db 8 dup (0) - - sack_hotspot_rec -31E4:83FB 2D 02 00 00 25 84 db 2Dh, 02h, 00h, 00h, 25h, 84h -31E4:8401 03 00 00 67 71 db 03h, 00h, 00h, 67h, 71h -31E4:8406 0000 data_8406 dw 0 -31E4:8408 015E dw 015Eh -31E4:840A 0064 data_840a dw 64h -31E4:840C 20 db 20h -31E4:840D 00 0E 00 03 00 BD db 00h, 0Eh, 00h, 03h, 00h,0BDh -31E4:8413 41 1B 00 18 00 02 db 41h, 1Bh, 00h, 18h, 00h, 02h -31E4:8419 00 00 00 2B 58 40 db 00h, 00h, 00h, 2Bh, 58h, 40h -31E4:841F 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:8425 06 00 10 84 08 06 db 06h, 00h, 10h, 84h, 08h, 06h -31E4:842B E4 08 01 10 80 04 db 0E4h, 08h, 01h, 10h, 80h, 04h -31E4:8431 10 80 03 10 80 0A db 10h, 80h, 03h, 10h, 80h, 0Ah -31E4:8437 44 08 01 02 00 00 db 44h, 08h, 01h, 02h, 00h, 00h -31E4:843D 63 84 03 00 00 72 db 63h, 84h, 03h, 00h, 00h, 72h -31E4:8443 71 00 00 64 01 09 db 71h, 00h, 00h, 64h, 01h, 09h -31E4:8449 01 10 00 0C 00 01 db 01h, 10h, 00h, 0Ch, 00h, 01h -31E4:844F 01 BD 41 04 00 0D db 01h,0BDh, 41h, 04h, 00h, 0Dh -31E4:8455 00 04 00 00 00 19 db 00h, 04h, 00h, 00h, 00h, 19h -31E4:845B 58 70 00 00 00 00 db 58h, 70h, 00h, 00h, 00h, 00h -31E4:8461 00 00 03 00 19 D2 db 00h, 00h, 03h, 00h, 19h,0D2h -31E4:8467 12 10 D2 12 14 0E db 12h, 10h,0D2h, 12h, 14h, 0Eh -31E4:846D 00 db 00h - -31E4:846E 01 02 00 00 57 hotspot_2713 db 01h, 02h, 00h, 00h, 57h -31E4:8473 6D 03 00 00 72 71 db 6Dh, 03h, 00h, 00h, 72h, 71h -31E4:8479 00 00 BF 00 FB 00 db 00h, 00h,0BFh, 00h,0FBh, 00h -31E4:847F 10 00 03 00 01 01 db 10h, 00h, 03h, 00h, 01h, 01h -31E4:8485 BD 41 10 00 1E 00 db 0BDh, 41h, 10h, 00h, 1Eh, 00h -31E4:848B 04 00 00 00 22 58 db 04h, 00h, 00h, 00h, 22h, 58h -31E4:8491 70 00 00 00 00 00 db 70h, 00h, 00h, 00h, 00h, 00h -31E4:8497 00 01 02 00 00 57 db 00h, 01h, 02h, 00h, 00h, 57h -31E4:849D 6D 02 01 00 72 71 db 6Dh, 02h, 01h, 00h, 72h, 71h -31E4:84A3 00 00 1D 01 07 01 db 00h, 00h, 1Dh, 01h, 07h, 01h -31E4:84A9 10 00 03 00 01 01 db 10h, 00h, 03h, 00h, 01h, 01h -31E4:84AF BD 41 06 00 03 00 db 0BDh, 41h, 06h, 00h, 03h, 00h -31E4:84B5 02 db 02h -31E4:84B6 000C[00] db 12 dup (0) -31E4:84C2 01 00 19 F1 0D 01 db 01h, 00h, 19h,0F1h, 0Dh, 01h -31E4:84C8 02 00 00 C2 84 db 02h, 00h, 00h,0C2h, 84h - -31E4:84CD 0102 hotspot_2713_hs5e dw 0102h -31E4:84CF 00 72 71 00 00 db 00h, 72h, 71h, 00h, 00h -31E4:84D4 1D 01 07 01 10 00 db 1Dh, 01h, 07h, 01h, 10h, 00h -31E4:84DA 0F 00 01 01 BD 41 db 0Fh, 00h, 01h, 01h,0BDh, 41h -31E4:84E0 0F 00 0F 00 02 db 0Fh, 00h, 0Fh, 00h, 02h -31E4:84E5 000C[00] db 12 dup (0) -31E4:84F1 01 02 00 00 57 6D db 01h, 02h, 00h, 00h, 57h, 6Dh -31E4:84F7 02 01 00 72 71 00 db 02h, 01h, 00h, 72h, 71h, 00h -31E4:84FD 00 1D 01 07 01 10 db 00h, 1Dh, 01h, 07h, 01h, 10h -31E4:8503 00 0F 00 01 01 BD db 00h, 0Fh, 00h, 01h, 01h,0BDh -31E4:8509 41 0F 00 0F 00 02 db 41h, 0Fh, 00h, 0Fh, 00h, 02h -31E4:850F 000C[00] db 12 dup (0) -31E4:851B 01 02 00 00 57 6D db 01h, 02h, 00h, 00h, 57h, 6Dh -31E4:8521 02 01 00 72 71 00 db 02h, 01h, 00h, 72h, 71h, 00h -31E4:8527 00 1D 01 07 01 10 db 00h, 1Dh, 01h, 07h, 01h, 10h -31E4:852D 00 0F 00 01 01 BD db 00h, 0Fh, 00h, 01h, 01h,0BDh -31E4:8533 41 0F 00 0F 00 02 db 41h, 0Fh, 00h, 0Fh, 00h, 02h -31E4:8539 000C[00] db 12 dup (0) -31E4:8545 01 02 00 20 57 6D db 01h, 02h, 00h, 20h, 57h, 6Dh -31E4:854B 12 00 00 72 71 00 db 12h, 00h, 00h, 72h, 71h, 00h -31E4:8551 00 BC 00 EF 00 10 db 00h,0BCh, 00h,0EFh, 00h, 10h -31E4:8557 00 08 00 01 01 BD db 00h, 08h, 00h, 01h, 01h,0BDh -31E4:855D 41 08 00 08 00 02 db 41h, 08h, 00h, 08h, 00h, 02h -31E4:8563 00 00 00 8F 5A 00 db 00h, 00h, 00h, 8Fh, 5Ah, 00h -31E4:8569 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:856F 01 02 00 20 57 6D db 01h, 02h, 00h, 20h, 57h, 6Dh -31E4:8575 0E 00 00 72 71 00 db 0Eh, 00h, 00h, 72h, 71h, 00h -31E4:857B 00 8C 01 FE 00 10 db 00h, 8Ch, 01h,0FEh, 00h, 10h -31E4:8581 00 06 00 01 01 BD db 00h, 06h, 00h, 01h, 01h,0BDh -31E4:8587 41 0A 00 06 00 02 db 41h, 0Ah, 00h, 06h, 00h, 02h -31E4:858D 00 00 00 98 5A 00 db 00h, 00h, 00h, 98h, 5Ah, 00h -31E4:8593 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:8599 01 02 00 00 57 6D db 01h, 02h, 00h, 00h, 57h, 6Dh -31E4:859F 02 01 00 72 71 00 db 02h, 01h, 00h, 72h, 71h, 00h -31E4:85A5 00 1D 01 07 01 10 db 00h, 1Dh, 01h, 07h, 01h, 10h -31E4:85AB 00 0F 00 01 01 BD db 00h, 0Fh, 00h, 01h, 01h,0BDh -31E4:85B1 41 0F 00 0F 00 02 db 41h, 0Fh, 00h, 0Fh, 00h, 02h -31E4:85B7 000C[00] db 12 dup (0) -31E4:85C3 01 00 01 13 04 01 db 01h, 00h, 01h, 13h, 04h, 01h -31E4:85C9 02 00 40 C3 85 2B db 02h, 00h, 40h,0C3h, 85h, 2Bh -31E4:85CF 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:85D5 F3 00 F0 00 10 00 db 0F3h, 00h,0F0h, 00h, 10h, 00h -31E4:85DB 0D 00 03 01 BD 41 db 0Dh, 00h, 03h, 01h,0BDh, 41h -31E4:85E1 0F 00 0F 00 02 00 db 0Fh, 00h, 0Fh, 00h, 02h, 00h -31E4:85E7 00 00 BC 5A 00 00 db 00h, 00h,0BCh, 5Ah, 00h, 00h -31E4:85ED 00 00 00 00 00 01 db 00h, 00h, 00h, 00h, 00h, 01h -31E4:85F3 02 00 00 57 6D 2B db 02h, 00h, 00h, 57h, 6Dh, 2Bh -31E4:85F9 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:85FF 0E 01 F0 00 10 00 db 0Eh, 01h,0F0h, 00h, 10h, 00h -31E4:8605 0D 00 03 01 BD 41 db 0Dh, 00h, 03h, 01h,0BDh, 41h -31E4:860B 0F 00 0F 00 02 00 db 0Fh, 00h, 0Fh, 00h, 02h, 00h -31E4:8611 00 00 C5 db 00h, 00h,0C5h -31E4:8614 5A db 5Ah -31E4:8615 0007[00] db 7 dup (0) -31E4:861C 01 02 00 00 57 6D db 01h, 02h, 00h, 00h, 57h, 6Dh -31E4:8622 BB 01 00 72 71 01 db 0BBh, 01h, 00h, 72h, 71h, 01h -31E4:8628 02 00 00 57 6D BB db 02h, 00h, 00h, 57h, 6Dh,0BBh -31E4:862E 01 00 72 71 00 00 db 01h, 00h, 72h, 71h, 00h, 00h -31E4:8634 0E 01 F0 00 10 00 db 0Eh, 01h,0F0h, 00h, 10h, 00h -31E4:863A 0D 00 03 01 BD 41 db 0Dh, 00h, 03h, 01h,0BDh, 41h -31E4:8640 0F 00 0F 00 02 00 db 0Fh, 00h, 0Fh, 00h, 02h, 00h -31E4:8646 00 00 C5 db 00h, 00h,0C5h -31E4:8649 5A db 5Ah -31E4:864A 0007[00] db 7 dup (0) -31E4:8651 01 00 19 FE 0D 01 db 01h, 00h, 19h,0FEh, 0Dh, 01h -31E4:8657 02 00 00 51 86 63 db 02h, 00h, 00h, 51h, 86h, 63h -31E4:865D 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8663 F3 00 F6 00 10 00 db 0F3h, 00h,0F6h, 00h, 10h, 00h -31E4:8669 07 00 01 01 BD 41 db 07h, 00h, 01h, 01h,0BDh, 41h -31E4:866F 0F 00 07 00 02 db 0Fh, 00h, 07h, 00h, 02h -31E4:8674 000C[00] db 12 dup (0) -31E4:8680 01 02 00 00 57 6D db 01h, 02h, 00h, 00h, 57h, 6Dh -31E4:8686 00 01 00 72 71 00 db 00h, 01h, 00h, 72h, 71h, 00h -31E4:868C 00 F3 00 F6 00 10 db 00h,0F3h, 00h,0F6h, 00h, 10h -31E4:8692 00 0F 00 01 01 BD db 00h, 0Fh, 00h, 01h, 01h,0BDh -31E4:8698 41 08 00 0F 00 02 db 41h, 08h, 00h, 0Fh, 00h, 02h -31E4:869E 000C[00] db 12 dup (0) -31E4:86AA 01 00 14 2E 80 01 db 01h, 00h, 14h, 2Eh, 80h, 01h -31E4:86B0 02 00 00 AA 86 00 db 02h, 00h, 00h,0AAh, 86h, 00h -31E4:86B6 01 00 72 71 00 00 db 01h, 00h, 72h, 71h, 00h, 00h -31E4:86BC F3 00 F6 00 10 00 db 0F3h, 00h,0F6h, 00h, 10h, 00h -31E4:86C2 07 00 01 01 BD 41 db 07h, 00h, 01h, 01h,0BDh, 41h -31E4:86C8 05 00 07 00 02 db 05h, 00h, 07h, 00h, 02h -31E4:86CD 000C[00] db 12 dup (0) -31E4:86D9 01 02 00 00 57 6D db 01h, 02h, 00h, 00h, 57h, 6Dh -31E4:86DF 00 00 00 72 71 00 db 00h, 00h, 00h, 72h, 71h, 00h -31E4:86E5 00 3A 01 3A 01 10 db 00h, 3Ah, 01h, 3Ah, 01h, 10h -31E4:86EB 00 03 00 01 01 BD db 00h, 03h, 00h, 01h, 01h,0BDh -31E4:86F1 41 06 00 04 00 02 db 41h, 06h, 00h, 04h, 00h, 02h -31E4:86F7 00 00 00 db 00h, 00h, 00h -31E4:86FA 39 59 db 39h, 59h -31E4:86FC 0007[00] db 7 dup (0) -31E4:8703 03 00 10 C7 09 19 db 03h, 00h, 10h,0C7h, 09h, 19h -31E4:8709 C7 09 14 B4 0B 01 db 0C7h, 09h, 14h,0B4h, 0Bh, 01h -31E4:870F 02 00 00 03 87 E7 db 02h, 00h, 00h, 03h, 87h,0E7h -31E4:8715 03 00 72 71 00 00 db 03h, 00h, 72h, 71h, 00h, 00h -31E4:871B E9 00 F3 00 10 00 db 0E9h, 00h,0F3h, 00h, 10h, 00h -31E4:8721 09 00 01 01 BD 41 db 09h, 00h, 01h, 01h,0BDh, 41h -31E4:8727 06 00 09 00 02 db 06h, 00h, 09h, 00h, 02h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 490 - -31E4:872C 000C[00] db 12 dup (0) -31E4:8738 E0 01 00 10 62 87 db 0E0h, 01h, 00h, 10h, 62h, 87h -31E4:873E 01 00 00 67 71 00 db 01h, 00h, 00h, 67h, 71h, 00h -31E4:8744 00 D1 00 F6 00 10 db 00h,0D1h, 00h,0F6h, 00h, 10h -31E4:874A 00 35 00 03 00 07 db 00h, 35h, 00h, 03h, 00h, 07h -31E4:8750 72 0B 00 35 00 08 db 72h, 0Bh, 00h, 35h, 00h, 08h -31E4:8756 00 00 00 db 00h, 00h, 00h -31E4:8759 4F 58 db 4Fh, 58h -31E4:875B 0007[00] db 7 dup (0) -31E4:8762 04 00 01 10 80 06 db 04h, 00h, 01h, 10h, 80h, 06h -31E4:8768 59 02 08 CE 02 09 db 59h, 02h, 08h,0CEh, 02h, 09h -31E4:876E CE 02 E0 01 00 10 db 0CEh, 02h,0E0h, 01h, 00h, 10h -31E4:8774 9A 87 02 00 00 67 db 9Ah, 87h, 02h, 00h, 00h, 67h -31E4:877A 71 00 00 E0 00 C8 db 71h, 00h, 00h,0E0h, 00h,0C8h -31E4:8780 00 20 00 30 00 03 db 00h, 20h, 00h, 30h, 00h, 03h -31E4:8786 01 07 72 20 00 30 db 01h, 07h, 72h, 20h, 00h, 30h -31E4:878C 00 04 00 00 00 db 00h, 04h, 00h, 00h, 00h -31E4:8791 58 58 db 58h, 58h -31E4:8793 0007[00] db 7 dup (0) -31E4:879A 06 00 10 CA 08 06 db 06h, 00h, 10h,0CAh, 08h, 06h -31E4:87A0 86 02 07 B7 02 08 db 86h, 02h, 07h,0B7h, 02h, 08h -31E4:87A6 F8 02 09 25 03 01 db 0F8h, 02h, 09h, 25h, 03h, 01h -31E4:87AC 10 80 0D 02 00 40 db 10h, 80h, 0Dh, 02h, 00h, 40h -31E4:87B2 D8 87 02 00 00 67 db 0D8h, 87h, 02h, 00h, 00h, 67h -31E4:87B8 71 00 00 88 01 D0 db 71h, 00h, 00h, 88h, 01h,0D0h -31E4:87BE 00 20 00 40 00 03 db 00h, 20h, 00h, 40h, 00h, 03h -31E4:87C4 01 07 72 20 00 35 db 01h, 07h, 72h, 20h, 00h, 35h -31E4:87CA 00 08 00 00 00 46 db 00h, 08h, 00h, 00h, 00h, 46h -31E4:87D0 58 10 00 00 00 00 db 58h, 10h, 00h, 00h, 00h, 00h -31E4:87D6 00 00 04 00 06 07 db 00h, 00h, 04h, 00h, 06h, 07h -31E4:87DC 00 03 04 05 04 04 db 00h, 03h, 04h, 05h, 04h, 04h -31E4:87E2 05 01 12 80 61 02 db 05h, 01h, 12h, 80h, 61h, 02h -31E4:87E8 00 10 10 88 11 00 db 00h, 10h, 10h, 88h, 11h, 00h -31E4:87EE 00 67 71 00 00 49 db 00h, 67h, 71h, 00h, 00h, 49h -31E4:87F4 01 E5 00 20 00 39 db 01h,0E5h, 00h, 20h, 00h, 39h -31E4:87FA 00 03 01 07 72 20 db 00h, 03h, 01h, 07h, 72h, 20h -31E4:8800 00 34 00 08 00 00 db 00h, 34h, 00h, 08h, 00h, 00h -31E4:8806 00 db 00h -31E4:8807 61 58 db 61h, 58h -31E4:8809 0007[00] db 7 dup (0) -31E4:8810 03 00 06 73 0D 07 db 03h, 00h, 06h, 73h, 0Dh, 07h -31E4:8816 7A 0D 01 0B 80 61 db 7Ah, 0Dh, 01h, 0Bh, 80h, 61h -31E4:881C 02 00 10 10 88 1D db 02h, 00h, 10h, 10h, 88h, 1Dh -31E4:8822 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8828 98 00 1E 01 60 00 db 98h, 00h, 1Eh, 01h, 60h, 00h -31E4:882E 28 00 03 01 07 72 db 28h, 00h, 03h, 01h, 07h, 72h -31E4:8834 20 00 2C 00 08 00 db 20h, 00h, 2Ch, 00h, 08h, 00h -31E4:883A 00 00 db 00h, 00h -31E4:883C 6A 58 db 6Ah, 58h -31E4:883E 0007[00] db 7 dup (0) -31E4:8845 02 00 0B 88 17 12 db 02h, 00h, 0Bh, 88h, 17h, 12h -31E4:884B 8C 1B 02 00 0B F6 db 8Ch, 1Bh, 02h, 00h, 0Bh,0F6h -31E4:8851 1B 12 D0 1B 00 0C db 1Bh, 12h,0D0h, 1Bh, 00h, 0Ch -31E4:8857 82 00 4D 88 1C 00 db 82h, 00h, 4Dh, 88h, 1Ch, 00h -31E4:885D 00 72 71 00 00 CE db 00h, 72h, 71h, 00h, 00h,0CEh -31E4:8863 00 13 01 30 00 2F db 00h, 13h, 01h, 30h, 00h, 2Fh -31E4:8869 00 01 01 F3 81 27 db 00h, 01h, 01h,0F3h, 81h, 27h -31E4:886F 00 43 00 02 00 00 db 00h, 43h, 00h, 02h, 00h, 00h -31E4:8875 00 E8 58 00 EC 00 db 00h,0E8h, 58h, 00h,0ECh, 00h -31E4:887B 00 00 00 00 05 00 db 00h, 00h, 00h, 00h, 05h, 00h -31E4:8881 00 00 00 00 00 96 db 00h, 00h, 00h, 00h, 00h, 96h -31E4:8887 00 00 00 02 06 db 00h, 00h, 00h, 02h, 06h -31E4:888C 000E[00] db 14 dup (0) -31E4:889A 06 00 08 36 09 09 db 06h, 00h, 08h, 36h, 09h, 09h -31E4:88A0 36 09 06 05 09 07 db 36h, 09h, 06h, 05h, 09h, 07h -31E4:88A6 1F 09 01 10 80 10 db 1Fh, 09h, 01h, 10h, 80h, 10h -31E4:88AC C4 12 E1 03 00 10 db 0C4h, 12h,0E1h, 03h, 00h, 10h -31E4:88B2 9A 88 13 00 00 67 db 9Ah, 88h, 13h, 00h, 00h, 67h -31E4:88B8 71 00 00 6D 01 D1 db 71h, 00h, 00h, 6Dh, 01h,0D1h -31E4:88BE 00 20 00 39 00 03 db 00h, 20h, 00h, 39h, 00h, 03h -31E4:88C4 01 07 72 20 00 37 db 01h, 07h, 72h, 20h, 00h, 37h -31E4:88CA 00 08 00 00 00 F1 db 00h, 08h, 00h, 00h, 00h,0F1h -31E4:88D0 58 db 58h -31E4:88D1 0007[00] db 7 dup (0) -31E4:88D8 61 02 00 10 10 88 db 61h, 02h, 00h, 10h, 10h, 88h -31E4:88DE 1E 00 00 67 71 00 db 1Eh, 00h, 00h, 67h, 71h, 00h -31E4:88E4 00 C2 00 05 01 60 db 00h,0C2h, 00h, 05h, 01h, 60h -31E4:88EA 00 28 00 03 01 07 db 00h, 28h, 00h, 03h, 01h, 07h -31E4:88F0 72 20 00 30 00 04 db 72h, 20h, 00h, 30h, 00h, 04h -31E4:88F6 00 00 00 FA 58 20 db 00h, 00h, 00h,0FAh, 58h, 20h -31E4:88FC 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:8902 04 00 08 D1 0C 09 db 04h, 00h, 08h,0D1h, 0Ch, 09h -31E4:8908 D1 0C 06 D1 0C 01 db 0D1h, 0Ch, 06h,0D1h, 0Ch, 01h -31E4:890E 10 80 E1 03 00 10 db 10h, 80h,0E1h, 03h, 00h, 10h -31E4:8914 02 89 0E 00 00 67 db 02h, 89h, 0Eh, 00h, 00h, 67h -31E4:891A 71 00 00 F6 00 CC db 71h, 00h, 00h,0F6h, 00h,0CCh -31E4:8920 00 20 00 31 00 03 db 00h, 20h, 00h, 31h, 00h, 03h -31E4:8926 01 07 72 20 00 31 db 01h, 07h, 72h, 20h, 00h, 31h -31E4:892C 00 04 00 00 00 03 db 00h, 04h, 00h, 00h, 00h, 03h -31E4:8932 59 50 00 00 00 00 db 59h, 50h, 00h, 00h, 00h, 00h -31E4:8938 00 00 05 00 01 10 db 00h, 00h, 05h, 00h, 01h, 10h -31E4:893E 80 06 00 00 07 00 db 80h, 06h, 00h, 00h, 07h, 00h -31E4:8944 00 db 00h -31E4:8945 08 36 09 09 36 db 08h, 36h, 09h, 09h, 36h -31E4:894A loc_2325: -31E4:894A 09 61 02 or [bx+di+2],sp -31E4:894D 00 10 add [bx+si],dl -31E4:894F 3A 89 000C cmp cl,byte ptr copyright+0Ch[bx+di] ; (31E4:000C='vo') -31E4:8953 00 67 71 add [bx+71h],ah -31E4:8956 00 00 add [bx+si],al -31E4:8958 A8 00 test al,0 -31E4:895A AA stosb ; Store al to es:[di] -31E4:895B 00 20 add [bx+si],ah -31E4:895D 00 3B add [bp+di],bh -31E4:895F 00 03 add [bp+di],al -31E4:8961 01 07 add [bx],ax -31E4:8963 72 20 jc loc_2326 ; Jump if carry Set -31E4:8965 00 3B add [bp+di],bh -31E4:8967 00 04 add [si],al -31E4:8969 00 00 add [bx+si],al -31E4:896B 00 54 59 add [si+59h],dl -31E4:896E 0007[00] db 7 dup (0) -31E4:8975 61 02 00 10 3A 89 db 61h, 02h, 00h, 10h, 3Ah, 89h -31E4:897B 20 00 00 67 71 00 db 20h, 00h, 00h, 67h, 71h, 00h -31E4:8981 00 AC 00 17 db 00h,0ACh, 00h, 17h -31E4:8985 loc_2326: ; xref 31E4:8963 -31E4:8985 01 50 00 ;* add [bx+si+0],dx -31E4:8985 01 50 00 db 01h, 50h, 00h -31E4:8988 30 00 03 01 07 72 db 30h, 00h, 03h, 01h, 07h, 72h -31E4:898E 20 00 36 00 04 00 db 20h, 00h, 36h, 00h, 04h, 00h -31E4:8994 00 00 db 00h, 00h -31E4:8996 4B 59 db 4Bh, 59h -31E4:8998 0007[00] db 7 dup (0) -31E4:899F 05 00 01 10 80 06 db 05h, 00h, 01h, 10h, 80h, 06h -31E4:89A5 81 0D 07 00 00 08 db 81h, 0Dh, 07h, 00h, 00h, 08h -31E4:89AB 36 09 09 36 09 E1 db 36h, 09h, 09h, 36h, 09h,0E1h -31E4:89B1 03 00 10 9F 89 14 db 03h, 00h, 10h, 9Fh, 89h, 14h -31E4:89B7 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:89BD 41 01 BC 00 20 00 db 41h, 01h,0BCh, 00h, 20h, 00h -31E4:89C3 38 00 03 01 07 72 db 38h, 00h, 03h, 01h, 07h, 72h -31E4:89C9 20 00 38 00 04 00 db 20h, 00h, 38h, 00h, 04h, 00h -31E4:89CF 00 00 db 00h, 00h -31E4:89D1 66 59 db 66h, 59h -31E4:89D3 0007[00] db 7 dup (0) -31E4:89DA 61 02 00 10 3A 89 db 61h, 02h, 00h, 10h, 3Ah, 89h -31E4:89E0 24 00 00 67 71 00 db 24h, 00h, 00h, 67h, 71h, 00h -31E4:89E6 00 93 00 E1 00 70 db 00h, 93h, 00h,0E1h, 00h, 70h -31E4:89EC 00 30 00 03 01 07 db 00h, 30h, 00h, 03h, 01h, 07h -31E4:89F2 72 08 00 1E 00 04 db 72h, 08h, 00h, 1Eh, 00h, 04h -31E4:89F8 00 00 00 5D 59 50 db 00h, 00h, 00h, 5Dh, 59h, 50h -31E4:89FE 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:8A04 05 00 01 10 80 06 db 05h, 00h, 01h, 10h, 80h, 06h -31E4:8A0A 5B 0E 07 00 00 08 db 5Bh, 0Eh, 07h, 00h, 00h, 08h -31E4:8A10 36 09 09 36 09 61 db 36h, 09h, 09h, 36h, 09h, 61h -31E4:8A16 02 00 10 04 8A 0A db 02h, 00h, 10h, 04h, 8Ah, 0Ah -31E4:8A1C 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8A22 06 01 DB 00 20 00 db 06h, 01h,0DBh, 00h, 20h, 00h -31E4:8A28 36 00 01 01 07 72 db 36h, 00h, 01h, 01h, 07h, 72h -31E4:8A2E 1A 00 36 00 04 00 db 1Ah, 00h, 36h, 00h, 04h, 00h -31E4:8A34 00 00 9C 59 00 00 db 00h, 00h, 9Ch, 59h, 00h, 00h -31E4:8A3A 00 00 00 00 00 61 db 00h, 00h, 00h, 00h, 00h, 61h -31E4:8A40 02 00 10 3A 89 22 db 02h, 00h, 10h, 3Ah, 89h, 22h -31E4:8A46 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8A4C B6 00 F3 00 30 00 db 0B6h, 00h,0F3h, 00h, 30h, 00h -31E4:8A52 39 00 03 01 07 72 db 39h, 00h, 03h, 01h, 07h, 72h -31E4:8A58 28 00 39 00 04 00 db 28h, 00h, 39h, 00h, 04h, 00h -31E4:8A5E 00 00 A5 59 00 00 db 00h, 00h,0A5h, 59h, 00h, 00h -31E4:8A64 00 00 00 00 00 61 db 00h, 00h, 00h, 00h, 00h, 61h -31E4:8A6A 02 00 10 10 88 1F db 02h, 00h, 10h, 10h, 88h, 1Fh -31E4:8A70 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8A76 41 01 15 01 40 00 db 41h, 01h, 15h, 01h, 40h, 00h -31E4:8A7C 22 00 03 01 07 db 22h, 00h, 03h, 01h, 07h -31E4:8A81 loc_2327: -31E4:8A81 72 20 jc $+22h ; Jump if carry Set -31E4:8A83 00 4A 00 ;* add [bp+si+0],cl -31E4:8A83 00 4A 00 db 00h, 4Ah, 00h -31E4:8A86 04 00 00 00 0C 59 db 04h, 00h, 00h, 00h, 0Ch, 59h -31E4:8A8C 0007[00] db 7 dup (0) -31E4:8A93 05 00 01 10 80 06 db 05h, 00h, 01h, 10h, 80h, 06h -31E4:8A99 06 80 07 10 80 08 db 06h, 80h, 07h, 10h, 80h, 08h -31E4:8A9F 36 09 09 36 09 E1 db 36h, 09h, 09h, 36h, 09h,0E1h -31E4:8AA5 03 00 10 93 8A 0F db 03h, 00h, 10h, 93h, 8Ah, 0Fh -31E4:8AAB 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8AB1 E3 00 A8 00 40 00 db 0E3h, 00h,0A8h, 00h, 40h, 00h -31E4:8AB7 61 00 03 01 07 72 db 61h, 00h, 03h, 01h, 07h, 72h -31E4:8ABD 3D 00 5D 00 04 00 db 3Dh, 00h, 5Dh, 00h, 04h, 00h -31E4:8AC3 00 00 8A 59 00 00 db 00h, 00h, 8Ah, 59h, 00h, 00h -31E4:8AC9 00 00 00 00 00 E1 db 00h, 00h, 00h, 00h, 00h,0E1h -31E4:8ACF 03 00 10 93 8A 26 db 03h, 00h, 10h, 93h, 8Ah, 26h -31E4:8AD5 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8ADB 32 01 14 01 40 00 db 32h, 01h, 14h, 01h, 40h, 00h -31E4:8AE1 35 00 03 01 07 72 db 35h, 00h, 03h, 01h, 07h, 72h -31E4:8AE7 35 00 35 00 04 00 db 35h, 00h, 35h, 00h, 04h, 00h -31E4:8AED 00 00 AE 59 00 00 db 00h, 00h,0AEh, 59h, 00h, 00h -31E4:8AF3 00 00 00 00 00 05 db 00h, 00h, 00h, 00h, 00h, 05h -31E4:8AF9 00 01 10 80 06 06 db 00h, 01h, 10h, 80h, 06h, 06h -31E4:8AFF 80 07 10 80 08 36 db 80h, 07h, 10h, 80h, 08h, 36h -31E4:8B05 09 09 36 09 E1 03 db 09h, 09h, 36h, 09h,0E1h, 03h -31E4:8B0B 00 10 F8 8A 26 00 db 00h, 10h,0F8h, 8Ah, 26h, 00h -31E4:8B11 00 67 71 00 00 91 db 00h, 67h, 71h, 00h, 00h, 91h -31E4:8B17 00 CD 00 30 00 42 db 00h,0CDh, 00h, 30h, 00h, 42h -31E4:8B1D 00 03 01 07 72 18 db 00h, 03h, 01h, 07h, 72h, 18h -31E4:8B23 00 42 00 04 00 00 db 00h, 42h, 00h, 04h, 00h, 00h -31E4:8B29 00 B7 db 00h,0B7h -31E4:8B2B 59 db 59h -31E4:8B2C 0007[00] db 7 dup (0) -31E4:8B33 E1 03 00 10 F8 8A db 0E1h, 03h, 00h, 10h,0F8h, 8Ah -31E4:8B39 27 00 db 27h, 00h -31E4:8B3B loc_2328: -31E4:8B3B 00 67 71 add [bx+71h],ah -31E4:8B3E 00 00 add [bx+si],al -31E4:8B40 81 01 00CD add word ptr [bx+di],0CDh -31E4:8B44 30 00 xor [bx+si],al -31E4:8B46 42 inc dx -31E4:8B47 00 03 add [bp+di],al -31E4:8B49 01 07 add [bx],ax -31E4:8B4B 72 30 jc loc_2329 ; Jump if carry Set -31E4:8B4D 00 42 00 ;* add [bp+si+0],al -31E4:8B4D 00 42 00 db 00h, 42h, 00h -31E4:8B50 04 00 00 00 C0 59 db 04h, 00h, 00h, 00h,0C0h, 59h -31E4:8B56 0007[00] db 7 dup (0) -31E4:8B5D E1 03 00 10 F8 8A db 0E1h, 03h, 00h, 10h,0F8h, 8Ah -31E4:8B63 27 00 00 67 71 00 db 27h, 00h, 00h, 67h, 71h, 00h -31E4:8B69 00 91 00 CD 00 30 db 00h, 91h, 00h,0CDh, 00h, 30h -31E4:8B6F 00 42 00 03 01 07 db 00h, 42h, 00h, 03h, 01h, 07h -31E4:8B75 72 18 00 42 00 04 db 72h, 18h, 00h, 42h, 00h, 04h -31E4:8B7B 00 00 db 00h, 00h -31E4:8B7D loc_2329: ; xref 31E4:8B4B -31E4:8B7D 00 B7 0059 add byte ptr data_519+32h[bx],dh ; (31E4:0059='rriner. Some oth') -31E4:8B81 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:8B87 E1 03 00 10 F8 8A db 0E1h, 03h, 00h, 10h,0F8h, 8Ah -31E4:8B8D 28 00 00 67 71 00 db 28h, 00h, 00h, 67h, 71h, 00h -31E4:8B93 00 81 01 CD 00 30 db 00h, 81h, 01h,0CDh, 00h, 30h -31E4:8B99 00 42 00 03 01 07 db 00h, 42h, 00h, 03h, 01h, 07h -31E4:8B9F 72 30 00 42 00 04 db 72h, 30h, 00h, 42h, 00h, 04h -31E4:8BA5 00 00 00 C0 db 00h, 00h, 00h,0C0h -31E4:8BA9 59 db 59h -31E4:8BAA 0007[00] db 7 dup (0) -31E4:8BB1 E1 03 00 10 F8 8A db 0E1h, 03h, 00h, 10h,0F8h, 8Ah -31E4:8BB7 28 00 00 67 71 00 db 28h, 00h, 00h, 67h, 71h, 00h -31E4:8BBD 00 91 00 CD 00 30 db 00h, 91h, 00h,0CDh, 00h, 30h -31E4:8BC3 00 42 00 03 01 07 db 00h, 42h, 00h, 03h, 01h, 07h -31E4:8BC9 72 18 00 42 00 04 db 72h, 18h, 00h, 42h, 00h, 04h -31E4:8BCF 00 00 00 B7 db 00h, 00h, 00h,0B7h -31E4:8BD3 59 db 59h -31E4:8BD4 0007[00] db 7 dup (0) -31E4:8BDB E1 03 00 10 F8 8A db 0E1h, 03h, 00h, 10h,0F8h, 8Ah -31E4:8BE1 05 00 00 67 71 00 db 05h, 00h, 00h, 67h, 71h, 00h -31E4:8BE7 00 81 01 CD 00 30 db 00h, 81h, 01h,0CDh, 00h, 30h -31E4:8BED 00 42 00 03 01 07 db 00h, 42h, 00h, 03h, 01h, 07h -31E4:8BF3 72 30 00 42 00 04 db 72h, 30h, 00h, 42h, 00h, 04h -31E4:8BF9 00 00 00 C0 db 00h, 00h, 00h,0C0h -31E4:8BFD 59 db 59h -31E4:8BFE 0008[00] db 8 dup (0) -31E4:8C06 0C 82 00 4A 8C 20 db 0Ch, 82h, 00h, 4Ah, 8Ch, 20h -31E4:8C0C 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8C12 28 01 F4 00 20 00 db 28h, 01h,0F4h, 00h, 20h, 00h -31E4:8C18 16 00 01 01 0E 82 db 16h, 00h, 01h, 01h, 0Eh, 82h -31E4:8C1E 18 00 28 00 02 00 db 18h, 00h, 28h, 00h, 02h, 00h -31E4:8C24 00 00 8E 58 00 db 00h, 00h, 8Eh, 58h, 00h -31E4:8C29 000D[00] db 13 dup (0) -31E4:8C36 96 00 00 00 F6 04 db 96h, 00h, 00h, 00h,0F6h, 04h -31E4:8C3C 00 db 00h -31E4:8C3D 000D[00] db 13 dup (0) -31E4:8C4A 03 00 18 8B 1D 0B db 03h, 00h, 18h, 8Bh, 1Dh, 0Bh -31E4:8C50 13 19 12 0A 80 00 db 13h, 19h, 12h, 0Ah, 80h, 00h -31E4:8C56 0C 82 00 45 88 1D db 0Ch, 82h, 00h, 45h, 88h, 1Dh -31E4:8C5C 00 00 67 71 00 00 db 00h, 00h, 67h, 71h, 00h, 00h -31E4:8C62 BE 00 EA 00 20 00 db 0BEh, 00h,0EAh, 00h, 20h, 00h -31E4:8C68 19 00 01 01 37 7F db 19h, 00h, 01h, 01h, 37h, 7Fh -31E4:8C6E 10 00 29 00 02 00 db 10h, 00h, 29h, 00h, 02h, 00h -31E4:8C74 00 00 93 59 00 6A db 00h, 00h, 93h, 59h, 00h, 6Ah -31E4:8C7A 06 db 06h -31E4:8C7B 000B[00] db 11 dup (0) -31E4:8C86 96 00 00 00 F8 02 db 96h, 00h, 00h, 00h,0F8h, 02h -31E4:8C8C 00 db 00h -31E4:8C8D 000D[00] db 13 dup (0) -31E4:8C9A 02 00 0B AB 16 12 db 02h, 00h, 0Bh,0ABh, 16h, 12h -31E4:8CA0 8C 1B 00 0C 82 00 db 8Ch, 1Bh, 00h, 0Ch, 82h, 00h -31E4:8CA6 9A 8C 1D 00 00 72 db 9Ah, 8Ch, 1Dh, 00h, 00h, 72h -31E4:8CAC 71 00 00 4C 01 FD db 71h, 00h, 00h, 4Ch, 01h,0FDh -31E4:8CB2 00 20 00 2D 00 01 db 00h, 20h, 00h, 2Dh, 00h, 01h -31E4:8CB8 01 37 7F 10 00 2D db 01h, 37h, 7Fh, 10h, 00h, 2Dh -31E4:8CBE 00 02 00 00 00 B3 db 00h, 02h, 00h, 00h, 00h,0B3h -31E4:8CC4 5A 00 E4 06 db 5Ah, 00h,0E4h, 06h -31E4:8CC8 000B[00] db 11 dup (0) -31E4:8CD3 96 00 00 00 FE 06 db 96h, 00h, 00h, 00h,0FEh, 06h -31E4:8CD9 000E[00] db 14 dup (0) -31E4:8CE7 0000 data_8ce7 dw 0 -31E4:8CE9 0000 dw 0 -31E4:8CEB 57 6D 0F 00 00 72 db 57h, 6Dh, 0Fh, 00h, 00h, 72h -31E4:8CF1 71 00 00 3F 01 64 db 71h, 00h, 00h, 3Fh, 01h, 64h -31E4:8CF7 00 10 00 02 00 01 db 00h, 10h, 00h, 02h, 00h, 01h -31E4:8CFD 00 2D 86 01 00 02 db 00h, 2Dh, 86h, 01h, 00h, 02h -31E4:8D03 00 02 00 00 00 80 db 00h, 02h, 00h, 00h, 00h, 80h -31E4:8D09 5C 00 db 5Ch, 00h -31E4:8D0B 000D[00] db 13 dup (0) -31E4:8D18 96 00 00 00 00 68 db 96h, 00h, 00h, 00h, 00h, 68h -31E4:8D1E 00 db 00h -31E4:8D1F 000D[00] db 13 dup (0) -31E4:8D2C 0000 data_8d2c dw 0 -31E4:8D2E 0000 dw 0 -31E4:8D30 57 6D 0F 00 00 72 db 57h, 6Dh, 0Fh, 00h, 00h, 72h -31E4:8D36 71 00 00 DB 00 64 db 71h, 00h, 00h,0DBh, 00h, 64h -31E4:8D3C 00 10 00 02 00 01 db 00h, 10h, 00h, 02h, 00h, 01h -31E4:8D42 00 2D 86 01 00 02 db 00h, 2Dh, 86h, 01h, 00h, 02h -31E4:8D48 00 02 00 00 00 80 db 00h, 02h, 00h, 00h, 00h, 80h -31E4:8D4E 5C 00 db 5Ch, 00h -31E4:8D50 000D[00] db 13 dup (0) -31E4:8D5D 96 00 00 00 00 68 db 96h, 00h, 00h, 00h, 00h, 68h -31E4:8D63 00 db 00h -31E4:8D64 000E[00] db 14 dup (0) -31E4:8D72 0C 82 00 45 88 0C db 0Ch, 82h, 00h, 45h, 88h, 0Ch -31E4:8D78 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8D7E 0F 01 F1 00 10 00 db 0Fh, 01h,0F1h, 00h, 10h, 00h -31E4:8D84 08 00 01 01 41 82 db 08h, 00h, 01h, 01h, 41h, 82h -31E4:8D8A 18 00 18 00 02 00 db 18h, 00h, 18h, 00h, 02h, 00h -31E4:8D90 00 00 85 58 00 db 00h, 00h, 85h, 58h, 00h -31E4:8D95 000D[00] db 13 dup (0) -31E4:8DA2 96 00 00 00 F4 06 db 96h, 00h, 00h, 00h,0F4h, 06h -31E4:8DA8 000F[00] db 15 dup (0) -31E4:8DB7 08 00 00 57 6D 1F db 08h, 00h, 00h, 57h, 6Dh, 1Fh -31E4:8DBD 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8DC3 2A 01 E3 00 20 00 db 2Ah, 01h,0E3h, 00h, 20h, 00h -31E4:8DC9 30 00 01 01 CE 85 db 30h, 00h, 01h, 01h,0CEh, 85h -31E4:8DCF 20 00 30 00 02 00 db 20h, 00h, 30h, 00h, 02h, 00h -31E4:8DD5 00 00 6F 59 9E db 00h, 00h, 6Fh, 59h, 9Eh -31E4:8DDA 000D[00] db 13 dup (0) -31E4:8DE7 96 00 00 00 02 06 db 96h, 00h, 00h, 00h, 02h, 06h -31E4:8DED 000F[00] db 15 dup (0) -31E4:8DFC 08 00 00 57 6D 1F db 08h, 00h, 00h, 57h, 6Dh, 1Fh -31E4:8E02 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8E08 EA 00 E3 00 20 00 db 0EAh, 00h,0E3h, 00h, 20h, 00h -31E4:8E0E 30 00 01 01 CE 85 db 30h, 00h, 01h, 01h,0CEh, 85h -31E4:8E14 20 00 30 00 02 00 db 20h, 00h, 30h, 00h, 02h, 00h -31E4:8E1A 00 00 78 59 9E db 00h, 00h, 78h, 59h, 9Eh -31E4:8E1F 000D[00] db 13 dup (0) -31E4:8E2C 96 00 00 00 02 06 db 96h, 00h, 00h, 00h, 02h, 06h -31E4:8E32 000F[00] db 15 dup (0) -31E4:8E41 0C 82 00 45 88 0E db 0Ch, 82h, 00h, 45h, 88h, 0Eh -31E4:8E47 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:8E4D 11 01 CF 00 20 00 db 11h, 01h,0CFh, 00h, 20h, 00h -31E4:8E53 30 00 01 01 CE 85 db 30h, 00h, 01h, 01h,0CEh, 85h -31E4:8E59 20 00 30 00 02 00 db 20h, 00h, 30h, 00h, 02h, 00h -31E4:8E5F 00 00 6F 59 9E 00 db 00h, 00h, 6Fh, 59h, 9Eh, 00h -31E4:8E65 00 00 00 00 00 01 db 00h, 00h, 00h, 00h, 00h, 01h -31E4:8E6B 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:8E71 96 00 00 00 02 06 db 96h, 00h, 00h, 00h, 02h, 06h -31E4:8E77 0011[00] db 17 dup (0) -31E4:8E88 20 00 00 1E 00 00 db 20h, 00h, 00h, 1Eh, 00h, 00h -31E4:8E8E 72 71 00 00 11 01 db 72h, 71h, 00h, 00h, 11h, 01h -31E4:8E94 E6 00 30 00 20 00 db 0E6h, 00h, 30h, 00h, 20h, 00h -31E4:8E9A 02 01 3F 81 26 00 db 02h, 01h, 3Fh, 81h, 26h, 00h -31E4:8EA0 40 00 02 00 00 00 db 40h, 00h, 02h, 00h, 00h, 00h -31E4:8EA6 81 59 00 DA 09 00 db 81h, 59h, 00h,0DAh, 09h, 00h -31E4:8EAC 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -31E4:8EB2 0A 2D 12 00 0A 00 db 0Ah, 2Dh, 12h, 00h, 0Ah, 00h -31E4:8EB8 00 B0 8E 29 00 00 db 00h,0B0h, 8Eh, 29h, 00h, 00h -31E4:8EBE 72 71 00 00 C7 00 db 72h, 71h, 00h, 00h,0C7h, 00h -31E4:8EC4 E7 00 10 00 08 00 db 0E7h, 00h, 10h, 00h, 08h, 00h -31E4:8ECA 03 01 37 7F 0E 00 db 03h, 01h, 37h, 7Fh, 0Eh, 00h -31E4:8ED0 08 00 04 00 00 00 db 08h, 00h, 04h, 00h, 00h, 00h -31E4:8ED6 D2 59 00 88 0B 00 db 0D2h, 59h, 00h, 88h, 0Bh, 00h -31E4:8EDC 00 db 00h -31E4:8EDD 0009[00] db 9 dup (0) -31E4:8EE6 96 00 00 00 0A 12 db 96h, 00h, 00h, 00h, 0Ah, 12h -31E4:8EEC 00 db 00h -31E4:8EED 0010[00] db 16 dup (0) -31E4:8EFD 20 B0 8E 29 00 00 db 20h,0B0h, 8Eh, 29h, 00h, 00h -31E4:8F03 72 71 00 00 AA 00 db 72h, 71h, 00h, 00h,0AAh, 00h -31E4:8F09 07 01 70 00 1F 00 db 07h, 01h, 70h, 00h, 1Fh, 00h -31E4:8F0F 03 00 3A 7F 6F 00 db 03h, 00h, 3Ah, 7Fh, 6Fh, 00h -31E4:8F15 1F 00 04 00 00 00 db 1Fh, 00h, 04h, 00h, 00h, 00h -31E4:8F1B AF 5B 00 BC 0B 00 db 0AFh, 5Bh, 00h,0BCh, 0Bh, 00h -31E4:8F21 00 00 00 00 00 08 db 00h, 00h, 00h, 00h, 00h, 08h -31E4:8F27 00 00 57 6D 2D 00 db 00h, 00h, 57h, 6Dh, 2Dh, 00h -31E4:8F2D 00 67 71 00 00 7A db 00h, 67h, 71h, 00h, 00h, 7Ah -31E4:8F33 01 14 01 30 00 33 db 01h, 14h, 01h, 30h, 00h, 33h -31E4:8F39 00 02 01 EC 87 20 db 00h, 02h, 01h,0ECh, 87h, 20h -31E4:8F3F 00 33 00 04 00 00 db 00h, 33h, 00h, 04h, 00h, 00h -31E4:8F45 00 DB 59 9E EA 0B db 00h,0DBh, 59h, 9Eh,0EAh, 0Bh -31E4:8F4B 00 00 00 db 00h, 00h, 00h -31E4:8F4E 0008[00] db 8 dup (0) -31E4:8F56 96 00 00 00 02 0A db 96h, 00h, 00h, 00h, 02h, 0Ah -31E4:8F5C 00 db 00h -31E4:8F5D 000E[00] db 14 dup (0) -31E4:8F6B 08 00 00 57 6D 2A db 08h, 00h, 00h, 57h, 6Dh, 2Ah -31E4:8F71 80 00 67 71 00 00 db 80h, 00h, 67h, 71h, 00h, 00h -31E4:8F77 99 00 16 01 40 00 db 99h, 00h, 16h, 01h, 40h, 00h -31E4:8F7D 28 00 01 01 EC 87 db 28h, 00h, 01h, 01h,0ECh, 87h -31E4:8F83 3F 00 28 00 04 00 db 3Fh, 00h, 28h, 00h, 04h, 00h -31E4:8F89 00 00 23 5A 9E A2 db 00h, 00h, 23h, 5Ah, 9Eh,0A2h -31E4:8F8F 0C 00 db 0Ch, 00h -31E4:8F91 000A[00] db 10 dup (0) -31E4:8F9B 96 00 00 00 0A 12 db 96h, 00h, 00h, 00h, 0Ah, 12h -31E4:8FA1 00 db 00h -31E4:8FA2 0010[00] db 16 dup (0) -31E4:8FB2 20 57 6D 2A 80 00 db 20h, 57h, 6Dh, 2Ah, 80h, 00h -31E4:8FB8 67 71 00 00 99 00 db 67h, 71h, 00h, 00h, 99h, 00h -31E4:8FBE 16 01 20 00 25 00 db 16h, 01h, 20h, 00h, 25h, 00h -31E4:8FC4 02 01 3A 7F 1B 00 db 02h, 01h, 3Ah, 7Fh, 1Bh, 00h -31E4:8FCA 25 00 04 00 00 00 db 25h, 00h, 04h, 00h, 00h, 00h -31E4:8FD0 47 5A 00 EC 0C 00 db 47h, 5Ah, 00h,0ECh, 0Ch, 00h -31E4:8FD6 0007[00] db 7 dup (0) -31E4:8FDD 20 57 6D 1D 00 00 db 20h, 57h, 6Dh, 1Dh, 00h, 00h -31E4:8FE3 72 71 00 00 7B 01 db 72h, 71h, 00h, 00h, 7Bh, 01h -31E4:8FE9 E9 00 20 00 27 00 db 0E9h, 00h, 20h, 00h, 27h, 00h -31E4:8FEF 03 00 3A 7F 14 00 db 03h, 00h, 3Ah, 7Fh, 14h, 00h -31E4:8FF5 27 00 04 00 00 00 db 27h, 00h, 04h, 00h, 00h, 00h -31E4:8FFB A1 5A 20 14 db 0A1h, 5Ah, 20h, 14h -31E4:8FFF 0D db 0Dh -31E4:9000 0008[00] db 8 dup (0) -31E4:9008 20 57 6D 2B 00 00 db 20h, 57h, 6Dh, 2Bh, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 497 - -31E4:900E 72 71 00 00 7D 01 db 72h, 71h, 00h, 00h, 7Dh, 01h -31E4:9014 F9 db 0F9h -31E4:9015 loc_2330: -31E4:9015 00 30 add [bx+si],dh -31E4:9017 00 29 add [bx+di],ch -31E4:9019 00 03 add [bp+di],al -31E4:901B 00 3A add [bp+si],bh -31E4:901D 7F 14 jg loc_2331 ; Jump if > -31E4:901F 00 27 add [bx],ah -31E4:9021 00 04 add [si],al -31E4:9023 00 00 add [bx+si],al -31E4:9025 00 CE add dh,cl -31E4:9027 5A pop dx -31E4:9028 40 inc ax -31E4:9029 2E 0D 00 00 00 00 db 2Eh, 0Dh, 00h, 00h, 00h, 00h -31E4:902F 00 00 00 00 db 00h, 00h, 00h, 00h -31E4:9033 loc_2331: ; xref 31E4:901D -31E4:9033 20 57 6D and [bx+6Dh],dl -31E4:9036 2B 00 sub ax,[bx+si] -31E4:9038 00 72 71 add [bp+si+71h],dh -31E4:903B 00 00 add [bx+si],al -31E4:903D 70 01 ;* jo loc_2332 ;*Jump if overflow=1 -31E4:903D 70 01 db 70h, 01h -31E4:903F E1 00 loopz locloop_2333 ; Loop if zf=1, cx>0 - - -31E4:9041 locloop_2333: ; xref 31E4:903F -31E4:9041 30 00 xor [bx+si],al -31E4:9043 11 00 adc [bx+si],ax -31E4:9045 03 00 add ax,[bx+si] -31E4:9047 3A 7F 14 cmp bh,[bx+14h] -31E4:904A 00 27 add [bx],ah -31E4:904C 00 04 add [si],al -31E4:904E 00 00 add [bx+si],al -31E4:9050 00 D7 add bh,dl -31E4:9052 5A pop dx -31E4:9053 40 inc ax -31E4:9054 4E dec si -31E4:9055 0D 0000 or ax,0 -31E4:9058 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:905E 20 57 6D 2B 00 00 db 20h, 57h, 6Dh, 2Bh, 00h, 00h -31E4:9064 72 71 00 00 7D 01 db 72h, 71h, 00h, 00h, 7Dh, 01h -31E4:906A D6 00 10 00 05 00 db 0D6h, 00h, 10h, 00h, 05h, 00h -31E4:9070 03 00 3A 7F 14 00 db 03h, 00h, 3Ah, 7Fh, 14h, 00h -31E4:9076 27 00 04 00 00 00 db 27h, 00h, 04h, 00h, 00h, 00h -31E4:907C E0 5A 00 db 0E0h, 5Ah, 00h -31E4:907F 6E 0D db 6Eh, 0Dh -31E4:9081 0008[00] db 8 dup (0) -31E4:9089 loc_2334: -31E4:9089 20 57 6D and [bx+6Dh],dl -31E4:908C 2D 0000 sub ax,0 -31E4:908F 72 71 ;* jc loc_2337 ;*Jump if carry Set -31E4:908F 72 71 db 72h, 71h -31E4:9091 00 00 add [bx+si],al -31E4:9093 35 E401 xor ax,0E401h -31E4:9096 00 10 add [bx+si],dl -31E4:9098 00 0B add [bp+di],cl - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 498 - -31E4:909A 00 03 add [bp+di],al -31E4:909C 01 3A add [bp+si],di -31E4:909E 7F 14 jg loc_2335 ; Jump if > -31E4:90A0 00 27 add [bx],ah -31E4:90A2 00 04 add [si],al -31E4:90A4 00 00 add [bx+si],al -31E4:90A6 00 E9 add cl,ch -31E4:90A8 5A pop dx -31E4:90A9 00 92 000D add [bp+si+0Dh],dl -31E4:90AD 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 -31E4:90B3 00 db 0 -31E4:90B4 loc_2335: ; xref 31E4:909E -31E4:90B4 20 57 6D and [bx+6Dh],dl -31E4:90B7 2E: 00 00 add cs:[bx+si],al -31E4:90BA 72 71 ;* jc loc_2339 ;*Jump if carry Set -31E4:90BA 72 71 db 72h, 71h -31E4:90BC 00 00 add [bx+si],al -31E4:90BE 80 00 E4 add byte ptr [bx+si],0E4h -31E4:90C1 00 10 add [bx+si],dl -31E4:90C3 00 0B add [bp+di],cl -31E4:90C5 00 03 add [bp+di],al -31E4:90C7 01 3A add [bp+si],di -31E4:90C9 7F 14 jg loc_2336 ; Jump if > -31E4:90CB 00 27 add [bx],ah -31E4:90CD 00 04 add [si],al -31E4:90CF 00 00 add [bx+si],al -31E4:90D1 00 E9 add cl,ch -31E4:90D3 5A pop dx -31E4:90D4 00 92 000D add [bp+si+0Dh],dl -31E4:90D8 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 -31E4:90DE 00 db 0 -31E4:90DF loc_2336: ; xref 31E4:90C9 -31E4:90DF 20 57 6D and [bx+6Dh],dl -31E4:90E2 30 00 xor [bx+si],al -31E4:90E4 00 72 71 add [bp+si+71h],dh -31E4:90E7 00 00 add [bx+si],al -31E4:90E9 A1 E500 mov ax,data_1185 ; (31E4:E500=8000h) -31E4:90EC 00 10 add [bx+si],dl -31E4:90EE 00 0B add [bp+di],cl -31E4:90F0 00 02 add [bp+si],al -31E4:90F2 01 3A add [bp+si],di -31E4:90F4 7F 14 jg loc_2338 ; Jump if > -31E4:90F6 00 27 add [bx],ah -31E4:90F8 00 04 add [si],al -31E4:90FA 00 00 add [bx+si],al -31E4:90FC 00 E9 add cl,ch -31E4:90FE 5A pop dx -31E4:90FF 00 92 000D add [bp+si+0Dh],dl -31E4:9103 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 -31E4:9109 00 db 0 -31E4:910A loc_2338: ; xref 31E4:90F4 -31E4:910A 20 57 6D and [bx+6Dh],dl -31E4:910D 2C 00 sub al,0 -31E4:910F 00 72 71 add [bp+si+71h],dh -31E4:9112 00 00 add [bx+si],al -31E4:9114 1B 01 sbb ax,[bx+di] -31E4:9116 C4 00 les ax,dword ptr [bx+si] ; Load seg:offset ptr - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 499 - -31E4:9118 10 00 adc [bx+si],al -31E4:911A 12 00 adc al,[bx+si] -31E4:911C 03 01 add ax,[bx+di] -31E4:911E 3A 7F 14 cmp bh,[bx+14h] -31E4:9121 00 27 add [bx],ah -31E4:9123 00 04 add [si],al -31E4:9125 00 00 add [bx+si],al -31E4:9127 00 F2 add dl,dh -31E4:9129 5A pop dx -31E4:912A 00 AE 000D add [bp+0Dh],ch -31E4:912E 0007[00] db 7 dup (0) -31E4:9135 20 57 6D 2C 00 00 db 20h, 57h, 6Dh, 2Ch, 00h, 00h -31E4:913B 72 71 00 00 32 01 db 72h, 71h, 00h, 00h, 32h, 01h -31E4:9141 A8 00 30 00 08 00 db 0A8h, 00h, 30h, 00h, 08h, 00h -31E4:9147 03 01 3A 7F 14 00 db 03h, 01h, 3Ah, 7Fh, 14h, 00h -31E4:914D 27 00 04 00 00 00 db 27h, 00h, 04h, 00h, 00h, 00h -31E4:9153 FB 5A 00 C8 0D 00 db 0FBh, 5Ah, 00h,0C8h, 0Dh, 00h -31E4:9159 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:915F 00 20 57 6D 2D 00 db 00h, 20h, 57h, 6Dh, 2Dh, 00h -31E4:9165 00 72 71 00 00 BF db 00h, 72h, 71h, 00h, 00h,0BFh -31E4:916B 00 08 01 20 00 1E db 00h, 08h, 01h, 20h, 00h, 1Eh -31E4:9171 00 03 00 3A 7F 14 db 00h, 03h, 00h, 3Ah, 7Fh, 14h -31E4:9177 00 27 00 04 00 00 db 00h, 27h, 00h, 04h, 00h, 00h -31E4:917D 00 04 5B 00 D4 0D db 00h, 04h, 5Bh, 00h,0D4h, 0Dh -31E4:9183 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:9189 00 00 db 00h, 00h -31E4:918B loc_2340: -31E4:918B 20 57 6D and [bx+6Dh],dl -31E4:918E 2D 0000 sub ax,0 -31E4:9191 72 71 ;* jc loc_2341 ;*Jump if carry Set -31E4:9191 72 71 db 72h, 71h -31E4:9193 00 00 add [bx+si],al -31E4:9195 2E 01 FB 00 10 00 db 2Eh, 01h,0FBh, 00h, 10h, 00h -31E4:919B 10 00 03 00 3A 7F db 10h, 00h, 03h, 00h, 3Ah, 7Fh -31E4:91A1 10 00 10 00 04 00 db 10h, 00h, 10h, 00h, 04h, 00h -31E4:91A7 00 00 0D 5B 00 04 db 00h, 00h, 0Dh, 5Bh, 00h, 04h -31E4:91AD 0E db 0Eh -31E4:91AE 0008[00] db 8 dup (0) -31E4:91B6 20 57 6D 2D 00 00 db 20h, 57h, 6Dh, 2Dh, 00h, 00h -31E4:91BC 72 71 00 00 5E 01 db 72h, 71h, 00h, 00h, 5Eh, 01h -31E4:91C2 07 01 10 00 10 00 db 07h, 01h, 10h, 00h, 10h, 00h -31E4:91C8 03 00 3A 7F 10 00 db 03h, 00h, 3Ah, 7Fh, 10h, 00h -31E4:91CE 10 00 04 00 8C 00 db 10h, 00h, 04h, 00h, 8Ch, 00h -31E4:91D4 16 5B 00 40 0E db 16h, 5Bh, 00h, 40h, 0Eh -31E4:91D9 0008[00] db 8 dup (0) -31E4:91E1 20 57 6D 2D 00 00 db 20h, 57h, 6Dh, 2Dh, 00h, 00h -31E4:91E7 72 71 00 00 A0 01 db 72h, 71h, 00h, 00h,0A0h, 01h -31E4:91ED 0E 01 10 00 10 00 db 0Eh, 01h, 10h, 00h, 10h, 00h -31E4:91F3 02 01 3A 7F 10 00 db 02h, 01h, 3Ah, 7Fh, 10h, 00h -31E4:91F9 10 00 04 00 28 00 db 10h, 00h, 04h, 00h, 28h, 00h -31E4:91FF 1F 5B 00 8C 0E db 1Fh, 5Bh, 00h, 8Ch, 0Eh -31E4:9204 00 db 0 -31E4:9205 0007[00] db 7 dup (0) -31E4:920C 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:9212 72 71 00 00 80 00 db 72h, 71h, 00h, 00h, 80h, 00h -31E4:9218 09 01 20 00 2E 00 db 09h, 01h, 20h, 00h, 2Eh, 00h -31E4:921E 02 01 3A 7F 19 00 db 02h, 01h, 3Ah, 7Fh, 19h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 500 - -31E4:9224 2E 00 04 00 00 00 db 2Eh, 00h, 04h, 00h, 00h, 00h -31E4:922A 28 5B 00 E6 0E db 28h, 5Bh, 00h,0E6h, 0Eh -31E4:922F 0008[00] db 8 dup (0) -31E4:9237 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:923D 72 71 00 00 C7 00 db 72h, 71h, 00h, 00h,0C7h, 00h -31E4:9243 0E 01 10 00 18 00 db 0Eh, 01h, 10h, 00h, 18h, 00h -31E4:9249 02 00 3A 7F 10 00 db 02h, 00h, 3Ah, 7Fh, 10h, 00h -31E4:924F 18 00 04 00 00 00 db 18h, 00h, 04h, 00h, 00h, 00h -31E4:9255 31 5B 00 BC 0F 00 db 31h, 5Bh, 00h,0BCh, 0Fh, 00h -31E4:925B 0007[00] db 7 dup (0) -31E4:9262 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:9268 72 71 00 00 9A 00 db 72h, 71h, 00h, 00h, 9Ah, 00h -31E4:926E 07 01 10 00 10 00 db 07h, 01h, 10h, 00h, 10h, 00h -31E4:9274 02 00 3A 7F 10 00 db 02h, 00h, 3Ah, 7Fh, 10h, 00h -31E4:927A 10 00 04 00 00 00 db 10h, 00h, 04h, 00h, 00h, 00h -31E4:9280 3A 5B 00 EC 0F db 3Ah, 5Bh, 00h,0ECh, 0Fh -31E4:9285 0008[00] db 8 dup (0) -31E4:928D 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:9293 72 71 00 00 F4 00 db 72h, 71h, 00h, 00h,0F4h, 00h -31E4:9299 12 01 20 00 21 00 db 12h, 01h, 20h, 00h, 21h, 00h -31E4:929F 02 01 3A 7F 13 00 db 02h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:92A5 21 00 04 00 00 00 db 21h, 00h, 04h, 00h, 00h, 00h -31E4:92AB 43 5B 00 38 10 00 db 43h, 5Bh, 00h, 38h, 10h, 00h -31E4:92B1 0007[00] db 7 dup (0) -31E4:92B8 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:92BE 72 71 00 00 29 01 db 72h, 71h, 00h, 00h, 29h, 01h -31E4:92C4 FA 00 20 00 14 00 db 0FAh, 00h, 20h, 00h, 14h, 00h -31E4:92CA 03 00 3A 7F 15 00 db 03h, 00h, 3Ah, 7Fh, 15h, 00h -31E4:92D0 14 00 04 00 00 00 db 14h, 00h, 04h, 00h, 00h, 00h -31E4:92D6 55 5B 00 82 10 00 db 55h, 5Bh, 00h, 82h, 10h, 00h -31E4:92DC 0007[00] db 7 dup (0) -31E4:92E3 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:92E9 72 71 00 00 48 01 db 72h, 71h, 00h, 00h, 48h, 01h -31E4:92EF 14 01 10 00 0F 00 db 14h, 01h, 10h, 00h, 0Fh, 00h -31E4:92F5 03 00 3A 7F 0B 00 db 03h, 00h, 3Ah, 7Fh, 0Bh, 00h -31E4:92FB 0F 00 04 00 00 00 db 0Fh, 00h, 04h, 00h, 00h, 00h -31E4:9301 5E 5B 50 3E 11 00 db 5Eh, 5Bh, 50h, 3Eh, 11h, 00h -31E4:9307 0007[00] db 7 dup (0) -31E4:930E 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:9314 72 71 00 00 23 01 db 72h, 71h, 00h, 00h, 23h, 01h -31E4:931A 19 01 10 00 0B 00 db 19h, 01h, 10h, 00h, 0Bh, 00h -31E4:9320 03 00 3A 7F 0F 00 db 03h, 00h, 3Ah, 7Fh, 0Fh, 00h -31E4:9326 0B 00 04 00 00 00 db 0Bh, 00h, 04h, 00h, 00h, 00h -31E4:932C 67 5B 00 80 11 00 db 67h, 5Bh, 00h, 80h, 11h, 00h -31E4:9332 0007[00] db 7 dup (0) -31E4:9339 20 57 6D 2E 00 00 db 20h, 57h, 6Dh, 2Eh, 00h, 00h -31E4:933F 72 71 00 00 32 01 db 72h, 71h, 00h, 00h, 32h, 01h -31E4:9345 18 01 20 00 14 00 db 18h, 01h, 20h, 00h, 14h, 00h -31E4:934B 03 00 3A 7F 0F 00 db 03h, 00h, 3Ah, 7Fh, 0Fh, 00h -31E4:9351 0B 00 04 00 00 00 db 0Bh, 00h, 04h, 00h, 00h, 00h -31E4:9357 70 5B 00 A4 11 00 db 70h, 5Bh, 00h,0A4h, 11h, 00h -31E4:935D 0007[00] db 7 dup (0) -31E4:9364 20 57 6D 2A 00 00 db 20h, 57h, 6Dh, 2Ah, 00h, 00h -31E4:936A 72 71 00 00 03 01 db 72h, 71h, 00h, 00h, 03h, 01h -31E4:9370 F6 00 20 00 0C 00 db 0F6h, 00h, 20h, 00h, 0Ch, 00h -31E4:9376 01 01 3A 7F 13 00 db 01h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:937C 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 501 - -31E4:9382 4C 5B 00 14 12 00 db 4Ch, 5Bh, 00h, 14h, 12h, 00h -31E4:9388 0007[00] db 7 dup (0) ; Data table (indexed access) -31E4:938F 20 57 6D 2A 00 00 db 20h, 57h, 6Dh, 2Ah, 00h, 00h -31E4:9395 72 71 00 00 15 01 db 72h, 71h, 00h, 00h, 15h, 01h -31E4:939B 12 01 20 00 0C 00 db 12h, 01h, 20h, 00h, 0Ch, 00h -31E4:93A1 01 01 3A 7F 13 00 db 01h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:93A7 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h -31E4:93AD 4C 5B 00 4E 12 db 4Ch, 5Bh, 00h, 4Eh, 12h -31E4:93B2 0008[00] db 8 dup (0) -31E4:93BA 20 57 6D 2A 00 00 db 20h, 57h, 6Dh, 2Ah, 00h, 00h -31E4:93C0 72 71 00 00 42 01 db 72h, 71h, 00h, 00h, 42h, 01h -31E4:93C6 18 01 20 00 0C 00 db 18h, 01h, 20h, 00h, 0Ch, 00h -31E4:93CC 01 01 3A 7F 13 00 db 01h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:93D2 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h -31E4:93D8 4C 5B 00 E8 12 00 db 4Ch, 5Bh, 00h,0E8h, 12h, 00h -31E4:93DE 0007[00] db 7 dup (0) -31E4:93E5 20 57 6D 2B 00 00 db 20h, 57h, 6Dh, 2Bh, 00h, 00h -31E4:93EB 72 71 00 00 92 00 db 72h, 71h, 00h, 00h, 92h, 00h -31E4:93F1 0D 01 20 00 0C 00 db 0Dh, 01h, 20h, 00h, 0Ch, 00h -31E4:93F7 01 01 3A 7F 13 00 db 01h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:93FD 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h -31E4:9403 4C 5B 00 26 14 00 db 4Ch, 5Bh, 00h, 26h, 14h, 00h -31E4:9409 0007[00] db 7 dup (0) -31E4:9410 20 57 6D 2B 00 00 db 20h, 57h, 6Dh, 2Bh, 00h, 00h -31E4:9416 72 71 00 00 87 00 db 72h, 71h, 00h, 00h, 87h, 00h -31E4:941C 22 01 20 00 0C 00 db 22h, 01h, 20h, 00h, 0Ch, 00h -31E4:9422 01 01 3A 7F 13 00 db 01h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:9428 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h -31E4:942E 4C 5B 00 7C 14 db 4Ch, 5Bh, 00h, 7Ch, 14h -31E4:9433 0008[00] db 8 dup (0) -31E4:943B 20 57 6D 2C 00 00 db 20h, 57h, 6Dh, 2Ch, 00h, 00h -31E4:9441 72 71 00 00 0E 01 db 72h, 71h, 00h, 00h, 0Eh, 01h -31E4:9447 3D 01 20 00 0C 00 db 3Dh, 01h, 20h, 00h, 0Ch, 00h -31E4:944D 01 01 3A 7F 13 00 db 01h, 01h, 3Ah, 7Fh, 13h, 00h -31E4:9453 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h -31E4:9459 4C 5B 00 20 15 00 db 4Ch, 5Bh, 00h, 20h, 15h, 00h -31E4:945F 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:9465 00 20 57 6D 1C 00 db 00h, 20h, 57h, 6Dh, 1Ch, 00h -31E4:946B 00 72 71 00 00 F1 db 00h, 72h, 71h, 00h, 00h,0F1h -31E4:9471 00 1E 01 50 00 0B db 00h, 1Eh, 01h, 50h, 00h, 0Bh -31E4:9477 00 03 00 3A 7F 48 db 00h, 03h, 00h, 3Ah, 7Fh, 48h -31E4:947D 00 0B 00 04 00 00 db 00h, 0Bh, 00h, 04h, 00h, 00h -31E4:9483 00 79 5B 00 AA 15 db 00h, 79h, 5Bh, 00h,0AAh, 15h -31E4:9489 00 db 00h -31E4:948A 0007[00] db 7 dup (0) -31E4:9491 20 57 6D 1C 00 00 db 20h, 57h, 6Dh, 1Ch, 00h, 00h -31E4:9497 72 71 00 00 62 01 db 72h, 71h, 00h, 00h, 62h, 01h -31E4:949D F0 00 20 00 2B 00 db 0F0h, 00h, 20h, 00h, 2Bh, 00h -31E4:94A3 03 00 3A 7F 14 00 db 03h, 00h, 3Ah, 7Fh, 14h, 00h -31E4:94A9 2A 00 04 00 00 00 db 2Ah, 00h, 04h, 00h, 00h, 00h -31E4:94AF 82 5B 00 AA 15 00 db 82h, 5Bh, 00h,0AAh, 15h, 00h -31E4:94B5 00 db 00h -31E4:94B6 0007[00] db 7 dup (0) -31E4:94BD 57 6D 0D 00 00 72 db 57h, 6Dh, 0Dh, 00h, 00h, 72h -31E4:94C3 71 00 00 7C 01 23 db 71h, 00h, 00h, 7Ch, 01h, 23h -31E4:94C9 01 20 00 1C 00 02 db 01h, 20h, 00h, 1Ch, 00h, 02h -31E4:94CF 01 3A 7F 18 00 1C db 01h, 3Ah, 7Fh, 18h, 00h, 1Ch -31E4:94D5 00 04 00 00 00 8B db 00h, 04h, 00h, 00h, 00h, 8Bh -31E4:94DB 5B 10 E6 15 00 00 db 5Bh, 10h,0E6h, 15h, 00h, 00h -31E4:94E1 00 00 00 02 00 0A db 00h, 00h, 00h, 02h, 00h, 0Ah -31E4:94E7 03 0B 01 2F 80 01 db 03h, 0Bh, 01h, 2Fh, 80h, 01h -31E4:94ED 02 00 00 E4 94 0D db 02h, 00h, 00h,0E4h, 94h, 0Dh -31E4:94F3 00 00 72 71 00 00 db 00h, 00h, 72h, 71h, 00h, 00h -31E4:94F9 D5 00 FE 00 10 00 db 0D5h, 00h,0FEh, 00h, 10h, 00h -31E4:94FF 0A 00 03 01 3A 7F db 0Ah, 00h, 03h, 01h, 3Ah, 7Fh -31E4:9505 07 00 08 00 04 00 db 07h, 00h, 08h, 00h, 04h, 00h -31E4:950B 00 00 94 5B 30 1A db 00h, 00h, 94h, 5Bh, 30h, 1Ah -31E4:9511 16 00 00 00 00 00 db 16h, 00h, 00h, 00h, 00h, 00h -31E4:9517 00 00 00 20 57 6D db 00h, 00h, 00h, 20h, 57h, 6Dh -31E4:951D 09 00 00 72 71 00 db 09h, 00h, 00h, 72h, 71h, 00h -31E4:9523 00 80 00 88 00 10 db 00h, 80h, 00h, 88h, 00h, 10h -31E4:9529 00 14 00 02 01 3A db 00h, 14h, 00h, 02h, 01h, 3Ah -31E4:952F 7F 0F 00 14 00 04 db 7Fh, 0Fh, 00h, 14h, 00h, 04h -31E4:9535 00 00 00 A6 5B 00 db 00h, 00h, 00h,0A6h, 5Bh, 00h -31E4:953B 46 16 db 46h, 16h -31E4:953D 0008[00] db 8 dup (0) -31E4:9545 20 57 6D 09 00 00 db 20h, 57h, 6Dh, 09h, 00h, 00h -31E4:954B 72 71 00 00 80 00 db 72h, 71h, 00h, 00h, 80h, 00h -31E4:9551 88 00 10 00 14 00 db 88h, 00h, 10h, 00h, 14h, 00h -31E4:9557 02 01 3A 7F 0F 00 db 02h, 01h, 3Ah, 7Fh, 0Fh, 00h -31E4:955D 14 00 04 00 00 00 db 14h, 00h, 04h, 00h, 00h, 00h -31E4:9563 A6 5B 00 8A 19 db 0A6h, 5Bh, 00h, 8Ah, 19h -31E4:9568 0008[00] db 8 dup (0) -31E4:9570 20 57 6D 09 00 00 db 20h, 57h, 6Dh, 09h, 00h, 00h -31E4:9576 72 71 00 00 80 00 db 72h, 71h, 00h, 00h, 80h, 00h -31E4:957C 88 00 10 00 14 00 db 88h, 00h, 10h, 00h, 14h, 00h -31E4:9582 02 01 3A 7F 0F 00 db 02h, 01h, 3Ah, 7Fh, 0Fh, 00h -31E4:9588 14 00 04 00 00 00 db 14h, 00h, 04h, 00h, 00h, 00h -31E4:958E A6 5B 00 92 1E db 0A6h, 5Bh, 00h, 92h, 1Eh -31E4:9593 0008[00] db 8 dup (0) -31E4:959B 20 57 6D 0F 00 00 db 20h, 57h, 6Dh, 0Fh, 00h, 00h -31E4:95A1 72 71 00 00 B1 01 db 72h, 71h, 00h, 00h,0B1h, 01h -31E4:95A7 B5 00 10 00 08 00 db 0B5h, 00h, 10h, 00h, 08h, 00h -31E4:95AD 01 01 3A 7F 0B 00 db 01h, 01h, 3Ah, 7Fh, 0Bh, 00h -31E4:95B3 08 00 04 00 00 00 db 08h, 00h, 04h, 00h, 00h, 00h -31E4:95B9 9D 5B 00 06 26 00 db 9Dh, 5Bh, 00h, 06h, 26h, 00h -31E4:95BF 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -31E4:95C5 01 10 80 05 F2 05 db 01h, 10h, 80h, 05h,0F2h, 05h -31E4:95CB 11 02 00 00 C3 95 db 11h, 02h, 00h, 00h,0C3h, 95h -31E4:95D1 30 00 00 72 71 00 db 30h, 00h, 00h, 72h, 71h, 00h -31E4:95D7 00 21 01 EB 00 60 db 00h, 21h, 01h,0EBh, 00h, 60h -31E4:95DD 00 40 00 01 01 3A db 00h, 40h, 00h, 01h, 01h, 3Ah -31E4:95E3 7F 5C 00 40 00 04 db 7Fh, 5Ch, 00h, 40h, 00h, 04h -31E4:95E9 00 00 00 2C 5A 00 db 00h, 00h, 00h, 2Ch, 5Ah, 00h -31E4:95EF 72 26 db 72h, 26h -31E4:95F1 0007[00] db 7 dup (0) -31E4:95F8 20 C3 95 30 00 00 db 20h,0C3h, 95h, 30h, 00h, 00h -31E4:95FE 72 71 00 00 61 01 db 72h, 71h, 00h, 00h, 61h, 01h -31E4:9604 85 data_1064 db 85h -31E4:9605 00 10 00 7D 00 01 db 00h, 10h, 00h, 7Dh, 00h, 01h -31E4:960B 01 3A 7F 03 00 7D db 01h, 3Ah, 7Fh, 03h, 00h, 7Dh -31E4:9611 00 01 00 00 00 35 db 00h, 01h, 00h, 00h, 00h, 35h -31E4:9617 5A 00 db 5Ah, 00h -31E4:9619 72 26 db 72h, 26h -31E4:961B 0007[00] db 7 dup (0) -31E4:9622 20 C3 95 30 00 00 db 20h,0C3h, 95h, 30h, 00h, 00h -31E4:9628 72 71 00 00 81 01 db 72h, 71h, 00h, 00h, 81h, 01h -31E4:962E 85 00 10 00 8D 00 db 85h, 00h, 10h, 00h, 8Dh, 00h -31E4:9634 01 01 3A 7F 03 00 db 01h, 01h, 3Ah, 7Fh, 03h, 00h -31E4:963A 8D 00 01 00 00 00 db 8Dh, 00h, 01h, 00h, 00h, 00h -31E4:9640 3E 5A 00 72 26 00 db 3Eh, 5Ah, 00h, 72h, 26h, 00h -31E4:9646 00 00 00 03 00 0A db 00h, 00h, 00h, 03h, 00h, 0Ah -31E4:964C 59 06 04 8F 06 01 db 59h, 06h, 04h, 8Fh, 06h, 01h -31E4:9652 10 80 09 02 00 00 db 10h, 80h, 09h, 02h, 00h, 00h -31E4:9658 49 96 30 00 00 72 db 49h, 96h, 30h, 00h, 00h, 72h -31E4:965E 71 00 00 06 01 07 db 71h, 00h, 00h, 06h, 01h, 07h -31E4:9664 01 50 00 25 00 01 db 01h, 50h, 00h, 25h, 00h, 01h -31E4:966A 01 3A 7F 50 00 25 db 01h, 3Ah, 7Fh, 50h, 00h, 25h -31E4:9670 00 01 00 00 00 50 db 00h, 01h, 00h, 00h, 00h, 50h -31E4:9676 5A 00 BC 26 00 00 db 5Ah, 00h,0BCh, 26h, 00h, 00h -31E4:967C 00 00 00 00 41 04 db 00h, 00h, 00h, 00h, 41h, 04h -31E4:9682 92 10 00 00 03 db 92h, 10h, 00h, 00h, 03h -31E4:9687 0007[00] db 7 dup (0) -31E4:968E F4 0C 94 0B 08 00 db 0F4h, 0Ch, 94h, 0Bh, 08h, 00h -31E4:9694 34 0A D4 08 06 0D db 34h, 0Ah,0D4h, 08h, 06h, 0Dh -31E4:969A 00 db 00h -31E4:969B 0009[00] db 9 dup (0) -31E4:96A4 DC 0D EF 6C db 0DCh, 0Dh,0EFh, 6Ch -31E4:96A8 0008[00] db 8 dup (0) -31E4:96B0 20 57 6D 06 00 00 db 20h, 57h, 6Dh, 06h, 00h, 00h -31E4:96B6 72 71 00 00 C8 00 db 72h, 71h, 00h, 00h,0C8h, 00h -31E4:96BC D3 00 40 00 3E 00 db 0D3h, 00h, 40h, 00h, 3Eh, 00h -31E4:96C2 01 01 2D 98 30 00 db 01h, 01h, 2Dh, 98h, 30h, 00h -31E4:96C8 3E 00 01 00 00 00 db 3Eh, 00h, 01h, 00h, 00h, 00h -31E4:96CE 6B 5A 20 00 db 6Bh, 5Ah, 20h, 00h -31E4:96D2 0008[00] db 8 dup (0) -31E4:96DA 20 57 6D 06 00 00 db 20h, 57h, 6Dh, 06h, 00h, 00h -31E4:96E0 72 71 00 00 60 00 db 72h, 71h, 00h, 00h, 60h, 00h -31E4:96E6 68 00 20 00 20 00 db 68h, 00h, 20h, 00h, 20h, 00h -31E4:96EC 01 01 BD 41 20 00 db 01h, 01h,0BDh, 41h, 20h, 00h -31E4:96F2 20 00 01 00 00 00 db 20h, 00h, 01h, 00h, 00h, 00h -31E4:96F8 74 5A 10 00 db 74h, 5Ah, 10h, 00h -31E4:96FC 0008[00] db 8 dup (0) -31E4:9704 20 57 6D 06 00 00 db 20h, 57h, 6Dh, 06h, 00h, 00h -31E4:970A 72 71 00 00 60 00 db 72h, 71h, 00h, 00h, 60h, 00h -31E4:9710 68 00 20 00 20 00 db 68h, 00h, 20h, 00h, 20h, 00h -31E4:9716 01 01 BD 41 20 00 db 01h, 01h,0BDh, 41h, 20h, 00h -31E4:971C 20 00 01 00 00 00 db 20h, 00h, 01h, 00h, 00h, 00h -31E4:9722 7D 5A 20 00 db 7Dh, 5Ah, 20h, 00h -31E4:9726 0007[00] db 7 dup (0) -31E4:972D 46 04 92 10 00 00 db 46h, 04h, 92h, 10h, 00h, 00h -31E4:9733 03 db 03h -31E4:9734 0007[00] db 7 dup (0) -31E4:973B F4 0C 94 0B 08 00 db 0F4h, 0Ch, 94h, 0Bh, 08h, 00h -31E4:9741 34 0A D4 08 06 0D db 34h, 0Ah,0D4h, 08h, 06h, 0Dh -31E4:9747 00 db 00h -31E4:9748 0009[00] db 9 dup (0) -31E4:9751 DC 0D EF 6C db 0DCh, 0Dh,0EFh, 6Ch -31E4:9755 0008[00] db 8 dup (0) -31E4:975D 20 57 6D 31 00 00 db 20h, 57h, 6Dh, 31h, 00h, 00h -31E4:9763 72 71 00 00 C8 00 db 72h, 71h, 00h, 00h,0C8h, 00h -31E4:9769 FC 00 40 00 3E 00 db 0FCh, 00h, 40h, 00h, 3Eh, 00h -31E4:976F 01 01 2D 98 30 00 db 01h, 01h, 2Dh, 98h, 30h, 00h -31E4:9775 3E 00 01 00 00 00 db 3Eh, 00h, 01h, 00h, 00h, 00h -31E4:977B 6B 5A 70 00 db 6Bh, 5Ah, 70h, 00h -31E4:977F 0008[00] db 8 dup (0) -31E4:9787 20 57 6D 31 00 00 db 20h, 57h, 6Dh, 31h, 00h, 00h -31E4:978D 72 71 00 00 60 00 db 72h, 71h, 00h, 00h, 60h, 00h -31E4:9793 68 00 20 00 20 00 db 68h, 00h, 20h, 00h, 20h, 00h -31E4:9799 01 01 BD 41 20 00 db 01h, 01h,0BDh, 41h, 20h, 00h -31E4:979F 20 00 01 00 00 00 db 20h, 00h, 01h, 00h, 00h, 00h -31E4:97A5 74 5A db 74h, 5Ah -31E4:97A7 000A[00] db 10 dup (0) -31E4:97B1 20 57 6D 31 00 00 db 20h, 57h, 6Dh, 31h, 00h, 00h -31E4:97B7 72 71 00 00 60 00 db 72h, 71h, 00h, 00h, 60h, 00h -31E4:97BD 68 00 20 00 20 00 db 68h, 00h, 20h, 00h, 20h, 00h -31E4:97C3 01 01 BD 41 20 00 db 01h, 01h,0BDh, 41h, 20h, 00h -31E4:97C9 20 00 01 00 00 00 db 20h, 00h, 01h, 00h, 00h, 00h -31E4:97CF 7D 5A db 7Dh, 5Ah -31E4:97D1 000A[00] db 10 dup (0) -31E4:97DB 20 00 00 2D 00 00 db 20h, 00h, 00h, 2Dh, 00h, 00h -31E4:97E1 72 71 00 00 70 01 db 72h, 71h, 00h, 00h, 70h, 01h -31E4:97E7 1B 01 20 00 25 00 db 1Bh, 01h, 20h, 00h, 25h, 00h -31E4:97ED 01 01 BD 41 18 00 db 01h, 01h,0BDh, 41h, 18h, 00h -31E4:97F3 25 00 01 00 00 00 db 25h, 00h, 01h, 00h, 00h, 00h -31E4:97F9 86 5A 00 db 86h, 5Ah, 00h -31E4:97FC 0009[00] db 9 dup (0) -31E4:9805 20 57 6D 29 00 00 db 20h, 57h, 6Dh, 29h, 00h, 00h -31E4:980B BD 41 00 00 A3 00 db 0BDh, 41h, 00h, 00h,0A3h, 00h -31E4:9811 C9 00 D0 00 59 00 db 0C9h, 00h,0D0h, 00h, 59h, 00h -31E4:9817 02 00 B3 87 14 00 db 02h, 00h,0B3h, 87h, 14h, 00h -31E4:981D 0C 00 04 00 00 00 db 0Ch, 00h, 04h, 00h, 00h, 00h -31E4:9823 F6 59 00 db 0F6h, 59h, 00h -31E4:9826 4E 27 db 4Eh, 27h -31E4:9828 00 00 00 00 db 0, 0, 0, 0 -31E4:982C 0000 new_room_number_2 dw 0 ; xref 273F:60AB -31E4:982E 0000 new_room_x dw 0 ; xref 273F:6093 -31E4:9830 0000 new_room_y dw 0 ; xref 273F:609F -31E4:9832 0001 room_number dw 1 -31E4:9834 00 cursor_state db 0 -31E4:9835 00 num_inventory_items db 0 -31E4:9836 01 header_flag_mask db 1 -31E4:9837 00 talk_dialog_active db 0 -31E4:9838 0000 data_1087 dw 0 -31E4:983A 00 data_1088 db 0 -31E4:983B 03E8 talk_character_id dw PLAYER_HOTSPOT_ID -31E4:983D 6B 00 db 6Bh, 00h -31E4:983F 03EA data_1090 dw 3EAh ; xref 273F:1FC8 -31E4:9841 0000 data_1091 dw 0 ; xref 273F:1489 -31E4:9843 0000 current_hotspot_id dw 0 -31E4:9845 0000 current_character_id dw 0 -31E4:9847 0000 data_1093 dw 0 ; xref 273F:62B6 - -31E4:9849 00 pathfind_data db 00 ; Set of entries each 120 bytes -31E4:984A A5 C4 00 00 00 pathfind_data2 db 00h,0A5h,0C4h, 00h, 00h, 00h -31E4:984F 96 75 5A AD 93 A0 db 96h, 75h, 5Ah,0ADh, 93h,0A0h -31E4:9855 74 C9 24 44 8F C4 db 74h,0C9h, 24h, 44h, 8Fh,0C4h -31E4:985B A9 88 93 3C 15 86 db 0A9h, 88h, 93h, 3Ch, 15h, 86h -31E4:9861 24 A8 1B 44 7E E0 db 24h,0A8h, 1Bh, 44h, 7Eh,0E0h -31E4:9867 69 C2 D4 CC C4 4C db 69h,0C2h,0D4h,0CCh,0C4h, 4Ch -31E4:986D FB F4 86 E2 2E 6F db 0FBh,0F4h, 86h,0E2h, 2Eh, 6Fh -31E4:9873 D6 C6 B8 D5 FF FC db 0D6h,0C6h,0B8h,0D5h,0FFh,0FCh -31E4:9879 1E 80 9C 00 05 4C db 1Eh, 80h, 9Ch, 00h, 05h, 4Ch -31E4:987F CC 56 00 05 22 11 db 0CCh, 56h, 00h, 05h, 22h, 11h -31E4:9885 56 00 05 62 98 5C db 56h, 00h, 05h, 62h, 98h, 5Ch -31E4:988B 00 04 A1 45 12 00 db 00h, 04h,0A1h, 45h, 12h, 00h -31E4:9891 04 00 09 46 00 07 db 04h, 00h, 09h, 46h, 00h, 07h -31E4:9897 EF 74 96 00 05 00 db 0EFh, 74h, 96h, 00h, 05h, 00h -31E4:989D 02 36 00 07 FF E9 db 02h, 36h, 00h, 07h,0FFh,0E9h -31E4:98A3 D0 03 F8 01 FF F2 db 0D0h, 03h,0F8h, 01h,0FFh,0F2h -31E4:98A9 00 20 00 0B D6 00 db 00h, 20h, 00h, 0Bh,0D6h, 00h -31E4:98AF 20 00 06 16 EF E0 db 20h, 00h, 06h, 16h,0EFh,0E0h -31E4:98B5 00 01 EE 20 E0 00 db 00h, 01h,0EEh, 20h,0E0h, 00h -31E4:98BB 01 3A B7 7F FF FE db 01h, 3Ah,0B7h, 7Fh,0FFh,0FEh -31E4:98C1 C6 00 80 24 01 00 db 0C6h, 00h, 80h, 24h, 01h, 00h -31E4:98C7 50 80 24 01 00 8E db 50h, 80h, 24h, 01h, 00h, 8Eh -31E4:98CD 80 24 01 00 82 80 db 80h, 24h, 01h, 00h, 82h, 80h -31E4:98D3 24 01 00 16 80 24 db 24h, 01h, 00h, 16h, 80h, 24h -31E4:98D9 01 00 90 80 24 01 db 01h, 00h, 90h, 80h, 24h, 01h -31E4:98DF 00 A6 80 24 01 FF db 00h,0A6h, 80h, 24h, 01h,0FFh -31E4:98E5 04 80 24 01 00 46 db 04h, 80h, 24h, 01h, 00h, 46h -31E4:98EB 80 E7 01 00 62 90 db 80h,0E7h, 01h, 00h, 62h, 90h -31E4:98F1 81 09 00 44 90 81 db 81h, 09h, 00h, 44h, 90h, 81h -31E4:98F7 09 00 5E 90 81 09 db 09h, 00h, 5Eh, 90h, 81h, 09h -31E4:98FD 00 36 90 81 09 00 db 00h, 36h, 90h, 81h, 09h, 00h -31E4:9903 59 FF FF 0F E0 96 db 59h,0FFh,0FFh, 0Fh,0E0h, 96h -31E4:9909 00 00 00 10 88 00 db 00h, 00h, 00h, 10h, 88h, 00h -31E4:990F 00 00 08 C8 00 7E db 00h, 00h, 08h,0C8h, 00h, 7Eh -31E4:9915 00 0C 30 00 00 00 db 00h, 0Ch, 30h, 00h, 00h, 00h -31E4:991B 0C C0 00 00 00 0C db 0Ch,0C0h, 00h, 00h, 00h, 0Ch -31E4:9921 FF FF FF FF FF 80 db 0FFh,0FFh,0FFh,0FFh,0FFh, 80h -31E4:9927 0A 94 D0 82 BD 4D db 0Ah, 94h,0D0h, 82h,0BDh, 4Dh -31E4:992D 31 4E 08 DF 4E 6C db 31h, 4Eh, 08h,0DFh, 4Eh, 6Ch -31E4:9933 8E B6 0A 45 00 A2 db 8Eh,0B6h, 0Ah, 45h, 00h,0A2h -31E4:9939 BE 02 95 44 58 80 db 0BEh, 02h, 95h, 44h, 58h, 80h -31E4:993F BA 80 16 26 FC B6 db 0BAh, 80h, 16h, 26h,0FCh,0B6h -31E4:9945 97 00 22 8A A6 C4 db 97h, 00h, 22h, 8Ah,0A6h,0C4h -31E4:994B 30 E8 88 7A 6C 45 db 30h,0E8h, 88h, 7Ah, 6Ch, 45h -31E4:9951 0A B2 72 87 87 C6 db 0Ah,0B2h, 72h, 87h, 87h,0C6h -31E4:9957 83 8E 8A 66 06 BC db 83h, 8Eh, 8Ah, 66h, 06h,0BCh -31E4:995D FE 92 C6 E6 81 03 db 0FEh, 92h,0C6h,0E6h, 81h, 03h -31E4:9963 02 16 0E FF 03 7F db 02h, 16h, 0Eh,0FFh, 03h, 7Fh -31E4:9969 F7 58 80 02 00 00 db 0F7h, 58h, 80h, 02h, 00h, 00h -31E4:996F 00 80 02 00 00 00 db 00h, 80h, 02h, 00h, 00h, 00h -31E4:9975 80 02 00 00 00 80 db 80h, 02h, 00h, 00h, 00h, 80h -31E4:997B 02 00 00 00 80 02 db 02h, 00h, 00h, 00h, 80h, 02h -31E4:9981 00 00 00 80 03 FF db 00h, 00h, 00h, 80h, 03h,0FFh -31E4:9987 FF FF 80 03 FF FF db 0FFh,0FFh, 80h, 03h,0FFh,0FFh -31E4:998D FF 80 0F C0 00 00 db 0FFh, 80h, 0Fh,0C0h, 00h, 00h -31E4:9993 70 00 00 00 00 00 db 70h, 00h, 00h, 00h, 00h, 00h -31E4:9999 38 00 1F F0 1F 10 db 38h, 00h, 1Fh,0F0h, 1Fh, 10h -31E4:999F 00 00 00 14 30 00 db 00h, 00h, 00h, 14h, 30h, 00h -31E4:99A5 00 00 16 FF FF FF db 00h, 00h, 16h,0FFh,0FFh,0FFh -31E4:99AB FF FF E9 FF 9B 32 db 0FFh,0FFh,0E9h,0FFh, 9Bh, 32h -31E4:99B1 FF 02 80 36 22 AE db 0FFh, 02h, 80h, 36h, 22h,0AEh -31E4:99B7 FE AA A5 36 E9 A2 db 0FEh,0AAh,0A5h, 36h,0E9h,0A2h -31E4:99BD BF 80 CE 8C 86 D2 db 0BFh, 80h,0CEh, 8Ch, 86h,0D2h -31E4:99C3 D6 16 E2 36 C0 3D db 0D6h, 16h,0E2h, 36h,0C0h, 3Dh -31E4:99C9 D6 9C 4A AE 88 A6 db 0D6h, 9Ch, 4Ah,0AEh, 88h,0A6h -31E4:99CF B4 BA B5 10 FD 9D db 0B4h,0BAh,0B5h, 10h,0FDh, 9Dh -31E4:99D5 93 BE 57 2B E1 02 db 93h,0BEh, 57h, 2Bh,0E1h, 02h -31E4:99DB 65 CE 6E BB FF FF db 65h,0CEh, 6Eh,0BBh,0FFh,0FFh -31E4:99E1 FF FF D5 02 00 00 db 0FFh,0FFh,0D5h, 02h, 00h, 00h -31E4:99E7 00 80 02 00 00 00 db 00h, 80h, 02h, 00h, 00h, 00h -31E4:99ED 80 02 00 00 00 80 db 80h, 02h, 00h, 00h, 00h, 80h -31E4:99F3 02 00 00 00 80 02 db 02h, 00h, 00h, 00h, 80h, 02h -31E4:99F9 00 00 00 80 02 00 db 00h, 00h, 00h, 80h, 02h, 00h -31E4:99FF 00 00 80 07 FF FF db 00h, 00h, 80h, 07h,0FFh,0FFh -31E4:9A05 FF C0 08 00 00 00 db 0FFh,0C0h, 08h, 00h, 00h, 00h -31E4:9A0B 20 10 00 00 00 10 db 20h, 10h, 00h, 00h, 00h, 10h -31E4:9A11 3F FF 00 00 0C 40 db 3Fh,0FFh, 00h, 00h, 0Ch, 40h -31E4:9A17 00 00 00 04 FF FF db 00h, 00h, 00h, 04h,0FFh,0FFh -31E4:9A1D FF 83 FF B0 00 00 db 0FFh, 83h,0FFh,0B0h, 00h, 00h -31E4:9A23 02 00 F0 00 00 00 db 02h, 00h,0F0h, 00h, 00h, 00h -31E4:9A29 00 11 22 00 00 30 db 00h, 11h, 22h, 00h, 00h, 30h -31E4:9A2F 60 08 A0 C8 C4 C5 db 60h, 08h,0A0h,0C8h,0C4h,0C5h -31E4:9A35 82 20 62 8C 88 2F db 82h, 20h, 62h, 8Ch, 88h, 2Fh -31E4:9A3B 20 22 A0 32 10 22 db 20h, 22h,0A0h, 32h, 10h, 22h -31E4:9A41 D7 48 87 64 0C 00 db 0D7h, 48h, 87h, 64h, 0Ch, 00h -31E4:9A47 74 34 1A 63 F1 10 db 74h, 34h, 1Ah, 63h,0F1h, 10h -31E4:9A4D A4 64 9A 11 34 81 db 0A4h, 64h, 9Ah, 11h, 34h, 81h -31E4:9A53 09 02 10 64 31 92 db 09h, 02h, 10h, 64h, 31h, 92h -31E4:9A59 A2 15 AA A0 41 AE db 0A2h, 15h,0AAh,0A0h, 41h,0AEh -31E4:9A5F 10 10 05 5A 22 10 db 10h, 10h, 05h, 5Ah, 22h, 10h -31E4:9A65 00 88 B0 04 08 84 db 00h, 88h,0B0h, 04h, 08h, 84h -31E4:9A6B 18 B8 64 04 6E 40 db 18h,0B8h, 64h, 04h, 6Eh, 40h -31E4:9A71 26 C4 02 00 B0 55 db 26h,0C4h, 02h, 00h,0B0h, 55h -31E4:9A77 C8 03 FF 05 28 10 db 0C8h, 03h,0FFh, 05h, 28h, 10h -31E4:9A7D 00 FC 08 19 98 00 db 00h,0FCh, 08h, 19h, 98h, 00h -31E4:9A83 3F 93 E0 06 00 40 db 3Fh, 93h,0E0h, 06h, 00h, 40h -31E4:9A89 30 18 61 0F 81 00 db 30h, 18h, 61h, 0Fh, 81h, 00h -31E4:9A8F 51 36 B0 0C A2 42 db 51h, 36h,0B0h, 0Ch,0A2h, 42h -31E4:9A95 10 43 F1 86 02 6C db 10h, 43h,0F1h, 86h, 02h, 6Ch -31E4:9A9B 1E 00 44 A8 db 1Eh, 00h, 44h,0A8h -31E4:9A9F B1 data_1094 db 0B1h -31E4:9AA0 F5 A7 00 00 00 00 db 0F5h,0A7h, 00h, 00h, 00h, 00h -31E4:9AA6 00 FD 55 65 72 D7 db 00h,0FDh, 55h, 65h, 72h,0D7h -31E4:9AAC 03 5D A9 75 40 4B db 03h, 5Dh,0A9h, 75h, 40h, 4Bh -31E4:9AB2 4C 99 44 5B 2E 94 db 4Ch, 99h, 44h, 5Bh, 2Eh, 94h -31E4:9AB8 98 AA A5 81 25 92 db 98h,0AAh,0A5h, 81h, 25h, 92h -31E4:9ABE 4A CD EA 40 00 09 db 4Ah,0CDh,0EAh, 40h, 00h, 09h -31E4:9AC4 72 00 19 52 A0 06 db 72h, 00h, 19h, 52h,0A0h, 06h -31E4:9ACA AC 39 54 51 42 80 db 0ACh, 39h, 54h, 51h, 42h, 80h -31E4:9AD0 00 AA 29 22 52 B2 db 00h,0AAh, 29h, 22h, 52h,0B2h -31E4:9AD6 00 02 44 00 16 4C db 00h, 02h, 44h, 00h, 16h, 4Ch -31E4:9ADC 90 00 56 87 EB BB db 90h, 00h, 56h, 87h,0EBh,0BBh -31E4:9AE2 76 83 B3 00 00 20 db 76h, 83h,0B3h, 00h, 00h, 20h -31E4:9AE8 BC 02 CF FF 1E 00 db 0BCh, 02h,0CFh,0FFh, 1Eh, 00h -31E4:9AEE FF F0 00 80 FF 00 db 0FFh,0F0h, 00h, 80h,0FFh, 00h -31E4:9AF4 00 00 FF 00 00 00 db 00h, 00h,0FFh, 00h, 00h, 00h -31E4:9AFA 00 00 FC 00 00 00 db 00h, 00h,0FCh, 00h, 00h, 00h -31E4:9B00 7F 82 00 00 00 58 db 7Fh, 82h, 00h, 00h, 00h, 58h -31E4:9B06 B9 00 00 01 9F 96 db 0B9h, 00h, 00h, 01h, 9Fh, 96h -31E4:9B0C 80 00 06 60 8A 40 db 80h, 00h, 06h, 60h, 8Ah, 40h -31E4:9B12 00 F9 C0 56 3F FF db 00h,0F9h,0C0h, 56h, 3Fh,0FFh -31E4:9B18 3A 13 FF E0 20 40 db 3Ah, 13h,0FFh,0E0h, 20h, 40h -31E4:9B1E 80 FF FB 56 19 90 db 80h,0FFh,0FBh, 56h, 19h, 90h -31E4:9B24 FF EF 64 44 24 FF db 0FFh,0EFh, 64h, 44h, 24h,0FFh -31E4:9B2A E0 20 08 30 FF FD db 0E0h, 20h, 08h, 30h,0FFh,0FDh -31E4:9B30 EA 69 90 FF F2 F4 db 0EAh, 69h, 90h,0FFh,0F2h,0F4h -31E4:9B36 02 81 FF E1 4B 01 db 02h, 81h,0FFh,0E1h, 4Bh, 01h -31E4:9B3C 28 FF FA 50 AB 26 db 28h,0FFh,0FAh, 50h,0ABh, 26h -31E4:9B42 00 09 E0 91 1E 00 db 00h, 09h,0E0h, 91h, 1Eh, 00h -31E4:9B48 09 53 84 B0 00 08 db 09h, 53h, 84h,0B0h, 00h, 08h -31E4:9B4E 2F 2D A0 00 09 43 db 2Fh, 2Dh,0A0h, 00h, 09h, 43h -31E4:9B54 1C E3 00 09 38 85 db 1Ch,0E3h, 00h, 09h, 38h, 85h -31E4:9B5A 39 00 09 8D 57 DE db 39h, 00h, 09h, 8Dh, 57h,0DEh -31E4:9B60 00 09 FF 28 19 00 db 00h, 09h,0FFh, 28h, 19h, 00h -31E4:9B66 FE 00 9D 81 00 00 db 0FEh, 00h, 9Dh, 81h, 00h, 00h -31E4:9B6C 00 67 69 03 C0 00 db 00h, 67h, 69h, 03h,0C0h, 00h -31E4:9B72 15 18 00 40 00 09 db 15h, 18h, 00h, 40h, 00h, 09h -31E4:9B78 6B FF FF FF FB 85 db 6Bh,0FFh,0FFh,0FFh,0FBh, 85h -31E4:9B7E D7 44 02 FA F5 FB db 0D7h, 44h, 02h,0FAh,0F5h,0FBh -31E4:9B84 31 A8 63 FF C0 16 db 31h,0A8h, 63h,0FFh,0C0h, 16h -31E4:9B8A BD A4 FE 15 21 22 db 0BDh,0A4h,0FEh, 15h, 21h, 22h -31E4:9B90 78 70 05 23 88 82 db 78h, 70h, 05h, 23h, 88h, 82h -31E4:9B96 74 D4 D5 4B 5F AA db 74h,0D4h,0D5h, 4Bh, 5Fh,0AAh -31E4:9B9C 00 09 9A 9B 22 CD db 00h, 09h, 9Ah, 9Bh, 22h,0CDh -31E4:9BA2 4F 55 9A 8A 05 C0 db 4Fh, 55h, 9Ah, 8Ah, 05h,0C0h -31E4:9BA8 A8 FE FC 01 07 56 db 0A8h,0FEh,0FCh, 01h, 07h, 56h -31E4:9BAE E2 16 92 B8 FE 33 db 0E2h, 16h, 92h,0B8h,0FEh, 33h -31E4:9BB4 5F E7 42 06 2C CF db 5Fh,0E7h, 42h, 06h, 2Ch,0CFh -31E4:9BBA 42 17 E5 A7 F2 9D db 42h, 17h,0E5h,0A7h,0F2h, 9Dh -31E4:9BC0 64 24 39 F3 A4 34 db 64h, 24h, 39h,0F3h,0A4h, 34h -31E4:9BC6 2F 20 CB 92 A4 22 db 2Fh, 20h,0CBh, 92h,0A4h, 22h -31E4:9BCC 0B 26 E1 B4 24 03 db 0Bh, 26h,0E1h,0B4h, 24h, 03h -31E4:9BD2 AD 9C A4 23 3A 00 db 0ADh, 9Ch,0A4h, 23h, 3Ah, 00h -31E4:9BD8 00 E4 37 DD AB 24 db 00h,0E4h, 37h,0DDh,0ABh, 24h -31E4:9BDE 44 20 00 B1 C6 CC db 44h, 20h, 00h,0B1h,0C6h,0CCh -31E4:9BE4 3F 87 9B 01 D0 07 db 3Fh, 87h, 9Bh, 01h,0D0h, 07h -31E4:9BEA C8 1A 28 60 01 E7 db 0C8h, 1Ah, 28h, 60h, 01h,0E7h -31E4:9BF0 A3 D7 A0 00 12 BB db 0A3h,0D7h,0A0h, 00h, 12h,0BBh -31E4:9BF6 D4 A0 00 11 20 59 db 0D4h,0A0h, 00h, 11h, 20h, 59h -31E4:9BFC C0 00 0F 25 1B 40 db 0C0h, 00h, 0Fh, 25h, 1Bh, 40h -31E4:9C02 00 09 57 EE 40 00 db 00h, 09h, 57h,0EEh, 40h, 00h -31E4:9C08 08 A8 5E C4 7A 68 db 08h,0A8h, 5Eh,0C4h, 7Ah, 68h -31E4:9C0E 00 D3 9D 90 2E DB db 00h,0D3h, 9Dh, 90h, 2Eh,0DBh -31E4:9C14 91 77 D6 BB 25 A4 db 91h, 77h,0D6h,0BBh, 25h,0A4h -31E4:9C1A EC 09 7F 5E 00 BE db 0ECh, 09h, 7Fh, 5Eh, 00h,0BEh -31E4:9C20 D7 B6 00 A6 4C ED db 0D7h,0B6h, 00h,0A6h, 4Ch,0EDh -31E4:9C26 FD 09 0B A5 94 38 db 0FDh, 09h, 0Bh,0A5h, 94h, 38h -31E4:9C2C F5 A4 FE BC ED 03 db 0F5h,0A4h,0FEh,0BCh,0EDh, 03h -31E4:9C32 A0 FC CE AE FB 57 db 0A0h,0FCh,0CEh,0AEh,0FBh, 57h -31E4:9C38 EE 73 2A 09 99 EE db 0EEh, 73h, 2Ah, 09h, 99h,0EEh -31E4:9C3E 6F A4 94 E7 EC 55 db 6Fh,0A4h, 94h,0E7h,0ECh, 55h -31E4:9C44 6B 2C 3F FC 00 7A db 6Bh, 2Ch, 3Fh,0FCh, 00h, 7Ah -31E4:9C4A 1B B5 7D FF A8 2C db 1Bh,0B5h, 7Dh,0FFh,0A8h, 2Ch -31E4:9C50 DD FE 00 68 A4 4E db 0DDh,0FEh, 00h, 68h,0A4h, 4Eh -31E4:9C56 C4 00 2B 02 FF F8 db 0C4h, 00h, 2Bh, 02h,0FFh,0F8h -31E4:9C5C 00 1F F4 00 00 00 db 00h, 1Fh,0F4h, 00h, 00h, 00h -31E4:9C62 00 13 00 00 00 00 db 00h, 13h, 00h, 00h, 00h, 00h -31E4:9C68 12 00 00 00 00 12 db 12h, 00h, 00h, 00h, 00h, 12h -31E4:9C6E FC 00 00 00 17 04 db 0FCh, 00h, 00h, 00h, 17h, 04h -31E4:9C74 00 00 00 16 04 00 db 00h, 00h, 00h, 16h, 04h, 00h -31E4:9C7A 00 00 12 07 FC 00 db 00h, 00h, 12h, 07h,0FCh, 00h -31E4:9C80 00 7A FF E7 48 84 db 00h, 7Ah,0FFh,0E7h, 48h, 84h -31E4:9C86 20 BC 1F DF BD AE db 20h,0BCh, 1Fh,0DFh,0BDh,0AEh -31E4:9C8C CD C7 9A 84 70 EB db 0CDh,0C7h, 9Ah, 84h, 70h,0EBh -31E4:9C92 CB 34 D7 9B 8B 93 db 0CBh, 34h,0D7h, 9Bh, 8Bh, 93h -31E4:9C98 2F 32 3A 5D D8 EE db 2Fh, 32h, 3Ah, 5Dh,0D8h,0EEh -31E4:9C9E E6 CE 9B 13 79 9D db 0E6h,0CEh, 9Bh, 13h, 79h, 9Dh -31E4:9CA4 54 72 D3 C1 00 3A db 54h, 72h,0D3h,0C1h, 00h, 3Ah -31E4:9CAA 6F FB 5D 94 2A 1A db 6Fh,0FBh, 5Dh, 94h, 2Ah, 1Ah -31E4:9CB0 AC 45 9A D6 6B CF db 0ACh, 45h, 9Ah,0D6h, 6Bh,0CFh -31E4:9CB6 F9 8D 4C 4B EF 0B db 0F9h, 8Dh, 4Ch, 4Bh,0EFh, 0Bh -31E4:9CBC B8 62 6F 67 0C 3B db 0B8h, 62h, 6Fh, 67h, 0Ch, 3Bh -31E4:9CC2 6E 85 EF 0F 40 1C db 6Eh, 85h,0EFh, 0Fh, 40h, 1Ch -31E4:9CC8 7E FF 08 DF EC EF db 7Eh,0FFh, 08h,0DFh,0ECh,0EFh -31E4:9CCE FD 09 E0 1F FF ED db 0FDh, 09h,0E0h, 1Fh,0FFh,0EDh -31E4:9CD4 EE 00 00 17 5F 00 db 0EEh, 00h, 00h, 17h, 5Fh, 00h -31E4:9CDA 00 01 FF E0 00 00 db 00h, 01h,0FFh,0E0h, 00h, 00h -31E4:9CE0 07 00 00 00 00 19 db 07h, 00h, 00h, 00h, 00h, 19h -31E4:9CE6 00 00 00 00 6E 00 db 00h, 00h, 00h, 00h, 6Eh, 00h -31E4:9CEC 00 00 00 9B 00 00 db 00h, 00h, 00h, 9Bh, 00h, 00h -31E4:9CF2 00 07 E7 FE 1F FF db 00h, 07h,0E7h,0FEh, 1Fh,0FFh -31E4:9CF8 F9 DC 4E 46 C0 C1 db 0F9h,0DCh, 4Eh, 46h,0C0h,0C1h -31E4:9CFE 4C FF FB DA 2D 50 db 4Ch,0FFh,0FBh,0DAh, 2Dh, 50h -31E4:9D04 7A BB 53 C6 22 FF db 7Ah,0BBh, 53h,0C6h, 22h,0FFh -31E4:9D0A B7 66 8F 02 39 97 db 0B7h, 66h, 8Fh, 02h, 39h, 97h -31E4:9D10 DF 28 78 DB 46 FC db 0DFh, 28h, 78h,0DBh, 46h,0FCh -31E4:9D16 2C 86 7A FD EE AE db 2Ch, 86h, 7Ah,0FDh,0EEh,0AEh -31E4:9D1C D2 DF 78 31 35 9C db 0D2h,0DFh, 78h, 31h, 35h, 9Ch -31E4:9D22 FB FF E9 AC AC FD db 0FBh,0FFh,0E9h,0ACh,0ACh,0FDh -31E4:9D28 FC 2D C6 4E D7 DC db 0FCh, 2Dh,0C6h, 4Eh,0D7h,0DCh -31E4:9D2E 2E AB A5 AF BC 21 db 2Eh,0ABh,0A5h,0AFh,0BCh, 21h -31E4:9D34 2F EC 9F BC 2C C6 db 2Fh,0ECh, 9Fh,0BCh, 2Ch,0C6h -31E4:9D3A 7E DF FC 29 FA A6 db 7Eh,0DFh,0FCh, 29h,0FAh,0A6h -31E4:9D40 FA EC 3E 3F EF F6 db 0FAh,0ECh, 3Eh, 3Fh,0EFh,0F6h -31E4:9D46 FC 2B D7 7D BB AC db 0FCh, 2Bh,0D7h, 7Dh,0BBh,0ACh -31E4:9D4C 3F 2D D9 F7 F0 03 db 3Fh, 2Dh,0D9h,0F7h,0F0h, 03h -31E4:9D52 55 BF F6 A0 00 C5 db 55h,0BFh,0F6h,0A0h, 00h,0C5h -31E4:9D58 67 7F C0 00 2C DE db 67h, 7Fh,0C0h, 00h, 2Ch,0DEh -31E4:9D5E EE C0 00 12 BA 97 db 0EEh,0C0h, 00h, 12h,0BAh, 97h -31E4:9D64 C0 00 12 AF BE C0 db 0C0h, 00h, 12h,0AFh,0BEh,0C0h -31E4:9D6A 00 13 BD FF C0 00 db 00h, 13h,0BDh,0FFh,0C0h, 00h -31E4:9D70 15 B2 F9 CF E0 84 db 15h,0B2h,0F9h,0CFh,0E0h, 84h -31E4:9D76 21 EF 3E 44 9D A8 db 21h,0EFh, 3Eh, 44h, 9Dh,0A8h -31E4:9D7C C0 18 0E A0 25 DF db 0C0h, 18h, 0Eh,0A0h, 25h,0DFh -31E4:9D82 EA FA 80 22 50 6B db 0EAh,0FAh, 80h, 22h, 50h, 6Bh -31E4:9D88 0A 9D 24 50 6B FC db 0Ah, 9Dh, 24h, 50h, 6Bh,0FCh -31E4:9D8E A0 08 50 4B FE AA db 0A0h, 08h, 50h, 4Bh,0FEh,0AAh -31E4:9D94 D8 D0 79 0A 80 06 db 0D8h,0D0h, 79h, 0Ah, 80h, 06h -31E4:9D9A 50 59 0A B5 42 D0 db 50h, 59h, 0Ah,0B5h, 42h,0D0h -31E4:9DA0 49 08 AD 34 70 7F db 49h, 08h,0ADh, 34h, 70h, 7Fh -31E4:9DA6 0C 80 06 FF 80 03 db 0Ch, 80h, 06h,0FFh, 80h, 03h -31E4:9DAC FE 42 F8 00 00 03 db 0FEh, 42h,0F8h, 00h, 00h, 03h -31E4:9DB2 7E 78 00 40 01 80 db 7Eh, 78h, 00h, 40h, 01h, 80h -31E4:9DB8 F8 00 F8 00 7F D8 db 0F8h, 00h,0F8h, 00h, 7Fh,0D8h -31E4:9DBE 01 FC 00 7F E8 00 db 01h,0FCh, 00h, 7Fh,0E8h, 00h -31E4:9DC4 00 00 7F E8 00 00 db 00h, 00h, 7Fh,0E8h, 00h, 00h -31E4:9DCA 00 FF F4 00 00 01 db 00h,0FFh,0F4h, 00h, 00h, 01h -31E4:9DD0 FF B2 00 00 07 FF db 0FFh,0B2h, 00h, 00h, 07h,0FFh -31E4:9DD6 ED 00 00 00 7F BE db 0EDh, 00h, 00h, 00h, 7Fh,0BEh -31E4:9DDC 80 00 FF FF 0D 60 db 80h, 00h,0FFh,0FFh, 0Dh, 60h -31E4:9DE2 0F FF FF FB DF FF db 0Fh,0FFh,0FFh,0FBh,0DFh,0FFh -31E4:9DE8 FF FF 08 1B 61 08 db 0FFh,0FFh, 08h, 1Bh, 61h, 08h -31E4:9DEE 46 BE 7F 7D DE 7B db 46h,0BEh, 7Fh, 7Dh,0DEh, 7Bh -31E4:9DF4 94 D5 9F FF F6 01 db 94h,0D5h, 9Fh,0FFh,0F6h, 01h -31E4:9DFA AF 42 BF D9 77 56 db 0AFh, 42h,0BFh,0D9h, 77h, 56h -31E4:9E00 FD 3B 56 86 76 C3 db 0FDh, 3Bh, 56h, 86h, 76h,0C3h -31E4:9E06 F3 CA 24 F9 BB ED db 0F3h,0CAh, 24h,0F9h,0BBh,0EDh -31E4:9E0C C7 3D 75 B0 6E 96 db 0C7h, 3Dh, 75h,0B0h, 6Eh, 96h -31E4:9E12 4F 6A 0F DD AA 03 db 4Fh, 6Ah, 0Fh,0DDh,0AAh, 03h -31E4:9E18 71 6E 7F 57 CE E5 db 71h, 6Eh, 7Fh, 57h,0CEh,0E5h -31E4:9E1E 4F D2 FF 11 9A D1 db 4Fh,0D2h,0FFh, 11h, 9Ah,0D1h -31E4:9E24 B7 5A 6C D5 BD C7 db 0B7h, 5Ah, 6Ch,0D5h,0BDh,0C7h -31E4:9E2A 7C 3F 3E 2D BF F7 db 7Ch, 3Fh, 3Eh, 2Dh,0BFh,0F7h -31E4:9E30 E4 B0 C9 41 7E 4C db 0E4h,0B0h,0C9h, 41h, 7Eh, 4Ch -31E4:9E36 1D F2 67 FD FC D7 db 1Dh,0F2h, 67h,0FDh,0FCh,0D7h -31E4:9E3C F7 EB 7E 7A 6D 55 db 0F7h,0EBh, 7Eh, 7Ah, 6Dh, 55h -31E4:9E42 FF 80 5F FF FE 00 db 0FFh, 80h, 5Fh,0FFh,0FEh, 00h -31E4:9E48 00 E0 db 00h,0E0h -31E4:9E4A 0008[00] db 8 dup (0) -31E4:9E52 FF 00 00 00 0F 3E db 0FFh, 00h, 00h, 00h, 0Fh, 3Eh -31E4:9E58 00 00 01 F3 FA 00 db 00h, 00h, 01h,0F3h,0FAh, 00h -31E4:9E5E 00 06 7C BC AF FD db 00h, 06h, 7Ch,0BCh,0AFh,0FDh -31E4:9E64 F5 6A 74 F7 BD F7 db 0F5h, 6Ah, 74h,0F7h,0BDh,0F7h -31E4:9E6A 58 07 DA DB B3 FD db 58h, 07h,0DAh,0DBh,0B3h,0FDh -31E4:9E70 FD 41 FB F5 AB 5D db 0FDh, 41h,0FBh,0F5h,0ABh, 5Dh -31E4:9E76 6F FF FF 6F BF 9E db 6Fh,0FFh,0FFh, 6Fh,0BFh, 9Eh -31E4:9E7C 98 7B F9 D6 33 77 db 98h, 7Bh,0F9h,0D6h, 33h, 77h -31E4:9E82 EF 6F 56 FE D4 2F db 0EFh, 6Fh, 56h,0FEh,0D4h, 2Fh -31E4:9E88 BF FD E9 B4 2B 5D db 0BFh,0FDh,0E9h,0B4h, 2Bh, 5Dh -31E4:9E8E BF 0A F4 2F F3 FF db 0BFh, 0Ah,0F4h, 2Fh,0F3h,0FFh -31E4:9E94 E5 F4 29 77 9F A3 db 0E5h,0F4h, 29h, 77h, 9Fh,0A3h -31E4:9E9A D4 2F D7 7F 17 54 db 0D4h, 2Fh,0D7h, 7Fh, 17h, 54h -31E4:9EA0 29 FD FF CF F4 2A db 29h,0FDh,0FFh,0CFh,0F4h, 2Ah -31E4:9EA6 9D FF 62 D7 FF FE db 9Dh,0FFh, 62h,0D7h,0FFh,0FEh -31E4:9EAC 00 1E 88 00 00 00 db 00h, 1Eh, 88h, 00h, 00h, 00h -31E4:9EB2 FF F8 db 0FFh,0F8h -31E4:9EB4 000D[00] db 13 dup (0) -31E4:9EC1 FF 80 00 0F FF F0 db 0FFh, 80h, 00h, 0Fh,0FFh,0F0h -31E4:9EC7 00 03 F3 FB 00 00 db 00h, 03h,0F3h,0FBh, 00h, 00h -31E4:9ECD 1D 7F FB 00 00 2F db 1Dh, 7Fh,0FBh, 00h, 00h, 2Fh -31E4:9ED3 C3 5F 00 00 4F 3E db 0C3h, 5Fh, 00h, 00h, 4Fh, 3Eh -31E4:9ED9 AD FB 94 FE 84 26 db 0ADh,0FBh, 94h,0FEh, 84h, 26h -31E4:9EDF F4 FB FB 76 EF FF db 0F4h,0FBh,0FBh, 76h,0EFh,0FFh -31E4:9EE5 6D E2 D4 AF C8 3D db 6Dh,0E2h,0D4h,0AFh,0C8h, 3Dh -31E4:9EEB FE EE C6 D7 BE DA db 0FEh,0EEh,0C6h,0D7h,0BEh,0DAh -31E4:9EF1 DE BD 3B 7F FD FD db 0DEh,0BDh, 3Bh, 7Fh,0FDh,0FDh -31E4:9EF7 45 CB 6F FF 9B 77 db 45h,0CBh, 6Fh,0FFh, 9Bh, 77h -31E4:9EFD 1F BF FD db 1Fh,0BFh,0FDh -31E4:9F00 56 data_1097 db 56h ; xref 31E4:189D -31E4:9F01 92 4F 78 07 FA 97 db 92h, 4Fh, 78h, 07h,0FAh, 97h -31E4:9F07 66 78 06 9F 27 F2 db 66h, 78h, 06h, 9Fh, 27h,0F2h -31E4:9F0D F8 05 FC A4 92 E8 db 0F8h, 05h,0FCh,0A4h, 92h,0E8h -31E4:9F13 05 3F AF FF 38 07 db 05h, 3Fh,0AFh,0FFh, 38h, 07h -31E4:9F19 35 D6 33 E8 05 B7 db 35h,0D6h, 33h,0E8h, 05h,0B7h -31E4:9F1F FF BF F8 04 FE BF db 0FFh,0BFh,0F8h, 04h,0FEh,0BFh -31E4:9F25 78 FF E7 FF FF FF db 78h,0FFh,0E7h,0FFh,0FFh,0FFh -31E4:9F2B F8 00 FF FF 80 F8 db 0F8h, 00h,0FFh,0FFh, 80h,0F8h -31E4:9F31 00 00 00 80 00 00 db 00h, 00h, 00h, 80h, 00h, 00h -31E4:9F37 00 00 80 00 00 00 db 00h, 00h, 80h, 00h, 00h, 00h -31E4:9F3D 00 80 00 00 00 00 db 00h, 80h, 00h, 00h, 00h, 00h -31E4:9F43 80 00 00 00 3F 80 db 80h, 00h, 00h, 00h, 3Fh, 80h -31E4:9F49 00 00 03 CE 80 00 db 00h, 00h, 03h,0CEh, 80h, 00h -31E4:9F4F 00 04 7F 00 00 42 db 00h, 04h, 7Fh, 00h, 00h, 42h -31E4:9F55 10 84 00 00 42 00 db 10h, 84h, 00h, 00h, 42h, 00h -31E4:9F5B 00 00 00 42 00 04 db 00h, 00h, 00h, 42h, 00h, 04h -31E4:9F61 00 00 42 00 00 00 db 00h, 00h, 42h, 00h, 00h, 00h -31E4:9F67 00 42 00 00 00 00 db 00h, 42h, 00h, 00h, 00h, 00h -31E4:9F6D 42 00 00 00 00 42 db 42h, 00h, 00h, 00h, 00h, 42h -31E4:9F73 00 00 00 00 C3 00 db 00h, 00h, 00h, 00h,0C3h, 00h -31E4:9F79 00 00 00 81 00 00 db 00h, 00h, 00h, 81h, 00h, 00h -31E4:9F7F 00 01 00 80 00 00 db 00h, 01h, 00h, 80h, 00h, 00h -31E4:9F85 01 00 80 00 db 01h, 00h, 80h, 00h -31E4:9F89 loc_2342: ; xref 31E4:9FCA -31E4:9F89 00 01 add [bx+di],al -31E4:9F8B 00 80 0000 add byte ptr copyright[bx+si],al ; (31E4:0000='Copyright Revolu') -31E4:9F8F 02 00 add al,[bx+si] -31E4:9F91 40 inc ax -31E4:9F92 00 00 add [bx+si],al -31E4:9F94 02 00 add al,[bx+si] -31E4:9F96 40 inc ax -31E4:9F97 00 00 add [bx+si],al -31E4:9F99 04 00 add al,0 -31E4:9F9B 40 inc ax -31E4:9F9C 00 00 add [bx+si],al -31E4:9F9E 04 00 add al,0 -31E4:9FA0 20 00 and [bx+si],al -31E4:9FA2 00 04 add [si],al -31E4:9FA4 00 20 add [bx+si],ah -31E4:9FA6 00 00 add [bx+si],al -31E4:9FA8 08 00 or [bx+si],al -31E4:9FAA 10 00 adc [bx+si],al - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 511 - -31E4:9FAC 00 08 add [bx+si],cl -31E4:9FAE 00 10 add [bx+si],dl -31E4:9FB0 00 00 add [bx+si],al -31E4:9FB2 10 00 adc [bx+si],al -31E4:9FB4 08 00 or [bx+si],al -31E4:9FB6 00 10 add [bx+si],dl -31E4:9FB8 00 08 add [bx+si],cl -31E4:9FBA 00 00 add [bx+si],al -31E4:9FBC 20 00 and [bx+si],al -31E4:9FBE 0C 00 or al,0 -31E4:9FC0 00 20 add [bx+si],ah -31E4:9FC2 00 04 add [si],al -31E4:9FC4 00 00 add [bx+si],al -31E4:9FC6 20 00 and [bx+si],al -31E4:9FC8 04 00 add al,0 -31E4:9FCA 78 BD js loc_2342 ; Jump if sign=1 -31E4:9FCC 95 xchg bp,ax -31E4:9FCD F9 stc ; Set carry flag -31E4:9FCE 7F D9 ;* jg loc_2343 ;*Jump if > -31E4:9FCE 7F D9 db 7Fh,0D9h -31E4:9FD0 9A F627:7FAE ;* call far ptr sub_281 ;*(F627:7FAE) -31E4:9FD0 9A db 9Ah -31E4:9FD1 7FAE F627 dw 7FAEh, 0F627h -31E4:9FD5 B3 BF mov bl,0BFh -31E4:9FD7 4E dec si -31E4:9FD8 7F 75 jg $+77h ; Jump if > -31E4:9FDA F5 cmc ; Complement carry -31E4:9FDB 55 push bp -31E4:9FDC FD std ; Set direction flag -31E4:9FDD C9 DD FD 7F E7 8D db 0C9h,0DDh,0FDh, 7Fh,0E7h, 8Dh -31E4:9FE3 77 FF ED 1D BB DF db 77h,0FFh,0EDh, 1Dh,0BBh,0DFh -31E4:9FE9 E0 6F FD 77 37 E0 db 0E0h, 6Fh,0FDh, 77h, 37h,0E0h -31E4:9FEF 7E D4 34 6D E0 57 db 7Eh,0D4h, 34h, 6Dh,0E0h, 57h -31E4:9FF5 7F BD DF E0 5F AF db 7Fh,0BDh,0DFh,0E0h, 5Fh,0AFh -31E4:9FFB 7F BF E0 4F F7 6B db 7Fh,0BFh,0E0h, 4Fh,0F7h, 6Bh -31E4:A001 E7 E0 43 FF BB 7F db 0E7h,0E0h, 43h,0FFh,0BBh, 7Fh -31E4:A007 E0 43 FF CF FF 60 db 0E0h, 43h,0FFh,0CFh,0FFh, 60h -31E4:A00D 43 87 F6 F7 E0 23 db 43h, 87h,0F6h,0F7h,0E0h, 23h -31E4:A013 FC A7 BE A0 13 87 db 0FCh,0A7h,0BEh,0A0h, 13h, 87h -31E4:A019 98 BD A0 0B 85 FF db 98h,0BDh,0A0h, 0Bh, 85h,0FFh -31E4:A01F EF 40 05 FC FF FD db 0EFh, 40h, 05h,0FCh,0FFh,0FDh -31E4:A025 80 03 83 1F FE 00 db 80h, 03h, 83h, 1Fh,0FEh, 00h -31E4:A02B 00 00 7F 00 db 00h, 00h, 7Fh, 00h -31E4:A02F 000E[00] db 14 dup (0) -31E4:A03D FC 3F FF FF FF DB db 0FCh, 3Fh,0FFh,0FFh,0FFh,0DBh -31E4:A043 FB F9 F3 D6 FD DA db 0FBh,0F9h,0F3h,0D6h,0FDh,0DAh -31E4:A049 AF 7F F7 C6 DB B7 db 0AFh, 7Fh,0F7h,0C6h,0DBh,0B7h -31E4:A04F FF FA E6 FB EF FF db 0FFh,0FAh,0E6h,0FBh,0EFh,0FFh -31E4:A055 FD 34 AE FB 00 F5 db 0FDh, 34h,0AEh,0FBh, 00h,0F5h -31E4:A05B AF D7 F7 00 FD DD db 0AFh,0D7h,0F7h, 00h,0FDh,0DDh -31E4:A061 EE D7 00 B1 B7 ED db 0EEh,0D7h, 00h,0B1h,0B7h,0EDh -31E4:A067 FF 00 AF 9E 67 6B db 0FFh, 00h,0AFh, 9Eh, 67h, 6Bh -31E4:A06D 00 FB E9 EE 9F 00 db 00h,0FBh,0E9h,0EEh, 9Fh, 00h -31E4:A073 F4 65 7F EF 00 FB db 0F4h, 65h, 7Fh,0EFh, 00h,0FBh -31E4:A079 8E FB FF 00 FA 7B db 8Eh,0FBh,0FFh, 00h,0FAh, 7Bh -31E4:A07F BF 00 00 BF FF FF db 0BFh, 00h, 00h,0BFh,0FFh,0FFh -31E4:A085 F8 00 EB FF FF F8 db 0F8h, 00h,0EBh,0FFh,0FFh,0F8h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 512 - -31E4:A08B 00 B7 FF FF F8 00 db 00h,0B7h,0FFh,0FFh,0F8h, 00h -31E4:A091 AB FF E0 00 00 B1 db 0ABh,0FFh,0E0h, 00h, 00h,0B1h -31E4:A097 FF 80 00 00 FF 00 db 0FFh, 80h, 00h, 00h,0FFh, 00h -31E4:A09D 0009[00] db 9 dup (0) -31E4:A0A6 FF FF E0 00 00 FF db 0FFh,0FFh,0E0h, 00h, 00h,0FFh -31E4:A0AC BF 7F C0 00 FF 77 db 0BFh, 7Fh,0C0h, 00h,0FFh, 77h -31E4:A0B2 EB FF FF AD B6 A6 db 0EBh,0FFh,0FFh,0ADh,0B6h,0A6h -31E4:A0B8 F3 DD 7D 66 A9 2E db 0F3h,0DDh, 7Dh, 66h,0A9h, 2Eh -31E4:A0BE E4 DD 3F 97 CF FE db 0E4h,0DDh, 3Fh, 97h,0CFh,0FEh -31E4:A0C4 CB 53 DF 7E CA 3A db 0CBh, 53h,0DFh, 7Eh,0CAh, 3Ah -31E4:A0CA 1A EF A8 6B A1 DF db 1Ah,0EFh,0A8h, 6Bh,0A1h,0DFh -31E4:A0D0 F3 7F 7F 9D FB DF db 0F3h, 7Fh, 7Fh, 9Dh,0FBh,0DFh -31E4:A0D6 86 4D FE 5F FA BE db 86h, 4Dh,0FEh, 5Fh,0FAh,0BEh -31E4:A0DC BD 7F F7 FF BB 9A db 0BDh, 7Fh,0F7h,0FFh,0BBh, 9Ah -31E4:A0E2 C1 D5 01 37 E3 C1 db 0C1h,0D5h, 01h, 37h,0E3h,0C1h -31E4:A0E8 7D 01 FC 2F C1 FF db 7Dh, 01h,0FCh, 2Fh,0C1h,0FFh -31E4:A0EE 01 DC 31 C1 9B 01 db 01h,0DCh, 31h,0C1h, 9Bh, 01h -31E4:A0F4 FC 2E C1 DF 01 4C db 0FCh, 2Eh,0C1h,0DFh, 01h, 4Ch -31E4:A0FA 23 C1 FD 01 7C 3C db 23h,0C1h,0FDh, 01h, 7Ch, 3Ch -31E4:A100 C1 3F 01 F4 39 21 db 0C1h, 3Fh, 01h,0F4h, 39h, 21h -31E4:A106 C0 00 0F B7 E0 00 db 0C0h, 00h, 0Fh,0B7h,0E0h, 00h -31E4:A10C 00 00 0F db 00h, 00h, 0Fh -31E4:A10F 000F[00] db 15 dup (0) -31E4:A11E 80 00 00 00 00 F0 db 80h, 00h, 00h, 00h, 00h,0F0h -31E4:A124 00 00 00 00 FF 00 db 00h, 00h, 00h, 00h,0FFh, 00h -31E4:A12A 00 00 01 FF C3 FF db 00h, 00h, 01h,0FFh,0C3h,0FFh -31E4:A130 FF FF 00 02 F7 FF db 0FFh,0FFh, 00h, 02h,0F7h,0FFh -31E4:A136 F4 00 03 FB 76 FF db 0F4h, 00h, 03h,0FBh, 76h,0FFh -31E4:A13C 00 03 FE EC DF 00 db 00h, 03h,0FEh,0ECh,0DFh, 00h -31E4:A142 02 EB FB AF 00 03 db 02h,0EBh,0FBh,0AFh, 00h, 03h -31E4:A148 FF FE F7 00 03 D3 db 0FFh,0FEh,0F7h, 00h, 03h,0D3h -31E4:A14E 7D 7F 00 03 82 FA db 7Dh, 7Fh, 00h, 03h, 82h,0FAh -31E4:A154 5F 00 03 EF FB FE db 5Fh, 00h, 03h,0EFh,0FBh,0FEh -31E4:A15A 00 03 9F FF 9E 0F db 00h, 03h, 9Fh,0FFh, 9Eh, 0Fh -31E4:A160 C3 B9 FE FD F0 03 db 0C3h,0B9h,0FEh,0FDh,0F0h, 03h -31E4:A166 4F FF EF 00 03 FF db 4Fh,0FFh,0EFh, 00h, 03h,0FFh -31E4:A16C 04 FE 00 07 F7 07 db 04h,0FEh, 00h, 07h,0F7h, 07h -31E4:A172 E1 00 03 FB F7 DD db 0E1h, 00h, 03h,0FBh,0F7h,0DDh -31E4:A178 00 03 E5 00 2F 00 db 00h, 03h,0E5h, 00h, 2Fh, 00h -31E4:A17E 00 1D 00 17 00 00 db 00h, 1Dh, 00h, 17h, 00h, 00h -31E4:A184 0F F0 0B 00 00 0F db 0Fh,0F0h, 0Bh, 00h, 00h, 0Fh -31E4:A18A F0 07 00 00 00 00 db 0F0h, 07h, 00h, 00h, 00h, 00h -31E4:A190 1F 00 00 00 00 2F db 1Fh, 00h, 00h, 00h, 00h, 2Fh -31E4:A196 00 00 00 00 5F 00 db 00h, 00h, 00h, 00h, 5Fh, 00h -31E4:A19C 00 00 00 5F 00 00 db 00h, 00h, 00h, 5Fh, 00h, 00h -31E4:A1A2 00 00 5F FF FF FF db 00h, 00h, 5Fh,0FFh,0FFh,0FFh -31E4:A1A8 F0 57 6E AF DB F5 db 0F0h, 57h, 6Eh,0AFh,0DBh,0F5h -31E4:A1AE 55 FF FA DF D7 6A db 55h,0FFh,0FAh,0DFh,0D7h, 6Ah -31E4:A1B4 F5 EB F9 D4 01 E6 db 0F5h,0EBh,0F9h,0D4h, 01h,0E6h -31E4:A1BA EE 82 77 FF BF E0 db 0EEh, 82h, 77h,0FFh,0BFh,0E0h -31E4:A1C0 9B 55 00 DC F9 76 db 9Bh, 55h, 00h,0DCh,0F9h, 76h -31E4:A1C6 7D 77 E5 FC 1F AF db 7Dh, 77h,0E5h,0FCh, 1Fh,0AFh -31E4:A1CC 7E FF E7 AB BC 00 db 7Eh,0FFh,0E7h,0ABh,0BCh, 00h -31E4:A1D2 00 3C B6 2C 00 00 db 00h, 3Ch,0B6h, 2Ch, 00h, 00h -31E4:A1D8 22 DB 6C 00 00 2F db 22h,0DBh, 6Ch, 00h, 00h, 2Fh -31E4:A1DE ED 7C 00 00 3E FB db 0EDh, 7Ch, 00h, 00h, 3Eh,0FBh -31E4:A1E4 E4 00 00 3F FF FC db 0E4h, 00h, 00h, 3Fh,0FFh,0FCh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 513 - -31E4:A1EA 00 00 40 00 02 00 db 00h, 00h, 40h, 00h, 02h, 00h -31E4:A1F0 0F 80 00 01 F8 00 db 0Fh, 80h, 00h, 01h,0F8h, 00h -31E4:A1F6 00 00 00 00 0E 00 db 00h, 00h, 00h, 00h, 0Eh, 00h -31E4:A1FC 00 00 78 0A 00 00 db 00h, 00h, 78h, 0Ah, 00h, 00h -31E4:A202 00 68 FE 00 00 00 db 00h, 68h,0FEh, 00h, 00h, 00h -31E4:A208 7F FE 00 00 00 76 db 7Fh,0FEh, 00h, 00h, 00h, 76h -31E4:A20E FF FF FF FF FA CF db 0FFh,0FFh,0FFh,0FFh,0FAh,0CFh -31E4:A214 FF FF BE 6B 56 BE db 0FFh,0FFh,0BEh, 6Bh, 56h,0BEh -31E4:A21A DA F6 DB DF 54 99 db 0DAh,0F6h,0DBh,0DFh, 54h, 99h -31E4:A220 4F FF AB F2 BE 2D db 4Fh,0FFh,0ABh,0F2h,0BEh, 2Dh -31E4:A226 18 CF BD FF 94 95 db 18h,0CFh,0BDh,0FFh, 94h, 95h -31E4:A22C AB D5 FF AA C9 FF db 0ABh,0D5h,0FFh,0AAh,0C9h,0FFh -31E4:A232 6A AF 69 EA AB 3E db 6Ah,0AFh, 69h,0EAh,0ABh, 3Eh -31E4:A238 BE C5 AD D2 AA C7 db 0BEh,0C5h,0ADh,0D2h,0AAh,0C7h -31E4:A23E D6 E9 B2 AD 6F ED db 0D6h,0E9h,0B2h,0ADh, 6Fh,0EDh -31E4:A244 AA D7 DF 6F 25 39 db 0AAh,0D7h,0DFh, 6Fh, 25h, 39h -31E4:A24A EF 77 F0 E8 A5 B7 db 0EFh, 77h,0F0h,0E8h,0A5h,0B7h -31E4:A250 7C 16 EB 7D EA DC db 7Ch, 16h,0EBh, 7Dh,0EAh,0DCh -31E4:A256 17 97 5D E7 74 13 db 17h, 97h, 5Dh,0E7h, 74h, 13h -31E4:A25C ED 77 D5 DC 1F db 0EDh, 77h,0D5h,0DCh, 1Fh -31E4:A261 49 db 49h -31E4:A262 úBF E3 BC 1F db 0BFh,0E3h,0BCh, 1Fh -31E4:A266 ú03 CF FF FC 1D FD db 03h,0CFh,0FFh,0FCh, 1Dh,0FDh -31E4:A26C 37 B5 FC 17 BF 26 db 37h,0B5h,0FCh, 17h,0BFh, 26h -31E4:A272 FF FC 1F BC F7 FB db 0FFh,0FCh, 1Fh,0BCh,0F7h,0FBh -31E4:A278 D0 07 D2 F7 FF A0 db 0D0h, 07h,0D2h,0F7h,0FFh,0A0h -31E4:A27E 01 FF 7D DA A0 00 db 01h,0FFh, 7Dh,0DAh,0A0h, 00h -31E4:A284 1E EB DF A0 00 1D db 1Eh,0EBh,0DFh,0A0h, 00h, 1Dh -31E4:A28A 7F EA C0 00 0D 67 db 7Fh,0EAh,0C0h, 00h, 0Dh, 67h -31E4:A290 DE C0 00 0E EF D5 db 0DEh,0C0h, 00h, 0Eh,0EFh,0D5h -31E4:A296 40 00 0A FA DE FF db 40h, 00h, 0Ah,0FAh,0DEh,0FFh -31E4:A29C FF 6A F4 F3 E9 52 db 0FFh, 6Ah,0F4h,0F3h,0E9h, 52h -31E4:A2A2 D6 BB BF F8 D6 7E db 0D6h,0BBh,0BFh,0F8h,0D6h, 7Eh -31E4:A2A8 07 FF F7 D3 FE F8 db 07h,0FFh,0F7h,0D3h,0FEh,0F8h -31E4:A2AE BD 78 E9 5E 1D 8E db 0BDh, 78h,0E9h, 5Eh, 1Dh, 8Eh -31E4:A2B4 6F BE BE E2 FA E9 db 6Fh,0BEh,0BEh,0E2h,0FAh,0E9h -31E4:A2BA 3D 6F F8 CE DF 7B db 3Dh, 6Fh,0F8h,0CEh,0DFh, 7Bh -31E4:A2C0 FE 00 00 60 BA FE db 0FEh, 00h, 00h, 60h,0BAh,0FEh -31E4:A2C6 00 00 79 96 B6 00 db 00h, 00h, 79h, 96h,0B6h, 00h -31E4:A2CC 00 75 63 66 00 00 db 00h, 75h, 63h, 66h, 00h, 00h -31E4:A2D2 4B 65 D6 00 00 3F db 4Bh, 65h,0D6h, 00h, 00h, 3Fh -31E4:A2D8 FF FC 00 00 40 00 db 0FFh,0FCh, 00h, 00h, 40h, 00h -31E4:A2DE 02 00 0F 80 00 01 db 02h, 00h, 0Fh, 80h, 00h, 01h -31E4:A2E4 C0 00 00 00 00 00 db 0C0h, 00h, 00h, 00h, 00h, 00h -31E4:A2EA 0E 00 00 00 70 0E db 0Eh, 00h, 00h, 00h, 70h, 0Eh -31E4:A2F0 00 00 00 50 FE 00 db 00h, 00h, 00h, 50h,0FEh, 00h -31E4:A2F6 00 00 7F AE 00 00 db 00h, 00h, 7Fh,0AEh, 00h, 00h -31E4:A2FC 00 7F BF FF FF FF db 00h, 7Fh,0BFh,0FFh,0FFh,0FFh -31E4:A302 FF EE DF BD FF FF db 0FFh,0EEh,0DFh,0BDh,0FFh,0FFh -31E4:A308 FA BA A9 FA 7F DC db 0FAh,0BAh,0A9h,0FAh, 7Fh,0DCh -31E4:A30E FE 5E DF AF BA EF db 0FEh, 5Eh,0DFh,0AFh,0BAh,0EFh -31E4:A314 DE B7 3C AA 6E 7B db 0DEh,0B7h, 3Ch,0AAh, 6Eh, 7Bh -31E4:A31A FE 96 FD 74 0D 76 db 0FEh, 96h,0FDh, 74h, 0Dh, 76h -31E4:A320 FB 65 F4 BE FF BB db 0FBh, 65h,0F4h,0BEh,0FFh,0BBh -31E4:A326 A7 6E F2 FB 77 6A db 0A7h, 6Eh,0F2h,0FBh, 77h, 6Ah -31E4:A32C E3 B7 6F D9 AB FE db 0E3h,0B7h, 6Fh,0D9h,0ABh,0FEh -31E4:A332 95 F7 FE FD FB FD db 95h,0F7h,0FEh,0FDh,0FBh,0FDh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 514 - -31E4:A338 7E 00 00 20 07 C2 db 7Eh, 00h, 00h, 20h, 07h,0C2h -31E4:A33E 00 00 20 00 02 00 db 00h, 00h, 20h, 00h, 02h, 00h -31E4:A344 00 20 00 02 00 00 db 00h, 20h, 00h, 02h, 00h, 00h -31E4:A34A 20 00 02 00 00 3F db 20h, 00h, 02h, 00h, 00h, 3Fh -31E4:A350 FF FE 00 00 40 00 db 0FFh,0FEh, 00h, 00h, 40h, 00h -31E4:A356 02 00 07 80 00 01 db 02h, 00h, 07h, 80h, 00h, 01h -31E4:A35C F0 00 00 00 00 00 db 0F0h, 00h, 00h, 00h, 00h, 00h -31E4:A362 0E 00 db 0Eh, 00h -31E4:A364 00 00 70 0E 00 00 db 00h, 00h, 70h, 0Eh, 00h, 00h -31E4:A36A 00 70 FA 00 00 00 db 00h, 70h,0FAh, 00h, 00h, 00h -31E4:A370 7F F6 00 00 00 6F db 7Fh,0F6h, 00h, 00h, 00h, 6Fh -31E4:A376 FB db 0FBh -31E4:A377 0007[FF] db 7 dup (0FFh) -31E4:A37E FD B7 AF DB 3E FF db 0FDh,0B7h,0AFh,0DBh, 3Eh,0FFh -31E4:A384 7F 08 00 00 00 00 db 7Fh, 08h, 00h, 00h, 00h, 00h -31E4:A38A AE D5 56 5E DB 9D db 0AEh,0D5h, 56h, 5Eh,0DBh, 9Dh -31E4:A390 5A 8E EE 9D AA 0B db 5Ah, 8Eh,0EEh, 9Dh,0AAh, 0Bh -31E4:A396 1E 95 55 25 B0 F3 db 1Eh, 95h, 55h, 25h,0B0h,0F3h -31E4:A39C D5 B7 9A 01 BD 5D db 0D5h,0B7h, 9Ah, 01h,0BDh, 5Dh -31E4:A3A2 F9 9D 95 E1 BD 75 db 0F9h, 9Dh, 95h,0E1h,0BDh, 75h -31E4:A3A8 BE 56 DF F9 2B 12 db 0BEh, 56h,0DFh,0F9h, 2Bh, 12h -31E4:A3AE 87 F6 43 67 D8 D4 db 87h,0F6h, 43h, 67h,0D8h,0D4h -31E4:A3B4 17 BE 91 A4 E4 1B db 17h,0BEh, 91h,0A4h,0E4h, 1Bh -31E4:A3BA 4D FA C9 9C 1B 3D db 4Dh,0FAh,0C9h, 9Ch, 1Bh, 3Dh -31E4:A3C0 B5 55 CC 1A 91 1D db 0B5h, 55h,0CCh, 1Ah, 91h, 1Dh -31E4:A3C6 8B 3C 1A 16 A9 9A db 8Bh, 3Ch, 1Ah, 16h,0A9h, 9Ah -31E4:A3CC D4 1B 69 BF B5 9C db 0D4h, 1Bh, 69h,0BFh,0B5h, 9Ch -31E4:A3D2 18 45 D5 2C 64 1E db 18h, 45h,0D5h, 2Ch, 64h, 1Eh -31E4:A3D8 C9 5D F7 4C 3E 20 db 0C9h, 5Dh,0F7h, 4Ch, 3Eh, 20h -31E4:A3DE 33 80 D0 03 CD 98 db 33h, 80h,0D0h, 03h,0CDh, 98h -31E4:A3E4 6F A0 00 E3 AE A9 db 6Fh,0A0h, 00h,0E3h,0AEh,0A9h -31E4:A3EA A0 00 1E 77 F5 C0 db 0A0h, 00h, 1Eh, 77h,0F5h,0C0h -31E4:A3F0 00 16 43 3F C0 00 db 00h, 16h, 43h, 3Fh,0C0h, 00h -31E4:A3F6 12 D4 ED 40 00 15 db 12h,0D4h,0EDh, 40h, 00h, 15h -31E4:A3FC 5E 0B 40 00 17 6C db 5Eh, 0Bh, 40h, 00h, 17h, 6Ch -31E4:A402 00 00 42 84 20 00 db 00h, 00h, 42h, 84h, 20h, 00h -31E4:A408 00 42 00 00 00 00 db 00h, 42h, 00h, 00h, 00h, 00h -31E4:A40E 42 84 20 00 00 42 db 42h, 84h, 20h, 00h, 00h, 42h -31E4:A414 84 00 00 00 42 00 db 84h, 00h, 00h, 00h, 42h, 00h -31E4:A41A 00 00 00 42 00 00 db 00h, 00h, 00h, 42h, 00h, 00h -31E4:A420 00 00 42 00 00 00 db 00h, 00h, 42h, 00h, 00h, 00h -31E4:A426 00 42 00 00 00 00 db 00h, 42h, 00h, 00h, 00h, 00h -31E4:A42C 81 00 00 00 01 00 db 81h, 00h, 00h, 00h, 01h, 00h -31E4:A432 80 00 00 01 00 80 db 80h, 00h, 00h, 01h, 00h, 80h -31E4:A438 00 00 02 00 40 00 db 00h, 00h, 02h, 00h, 40h, 00h -31E4:A43E 00 02 00 40 00 00 db 00h, 02h, 00h, 40h, 00h, 00h -31E4:A444 02 00 20 00 00 04 db 02h, 00h, 20h, 00h, 00h, 04h -31E4:A44A 00 20 00 00 04 00 db 00h, 20h, 00h, 00h, 04h, 00h -31E4:A450 20 00 00 08 00 10 db 20h, 00h, 00h, 08h, 00h, 10h -31E4:A456 00 00 08 00 10 00 db 00h, 00h, 08h, 00h, 10h, 00h -31E4:A45C 00 10 00 10 00 00 db 00h, 10h, 00h, 10h, 00h, 00h -31E4:A462 10 00 08 00 00 10 db 10h, 00h, 08h, 00h, 00h, 10h -31E4:A468 00 08 00 00 20 00 db 00h, 08h, 00h, 00h, 20h, 00h -31E4:A46E 04 00 00 20 00 04 db 04h, 00h, 00h, 20h, 00h, 04h -31E4:A474 00 00 40 00 02 00 db 00h, 00h, 40h, 00h, 02h, 00h -31E4:A47A D3 D6 A4 EA 0A E5 db 0D3h,0D6h,0A4h,0EAh, 0Ah,0E5h -31E4:A480 70 00 23 A0 B7 C0 db 70h, 00h, 23h,0A0h,0B7h,0C0h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 515 - -31E4:A486 84 2A BE A0 CD C4 db 84h, 2Ah,0BEh,0A0h,0CDh,0C4h -31E4:A48C 5B 00 E7 C0 80 3F db 5Bh, 00h,0E7h,0C0h, 80h, 3Fh -31E4:A492 12 29 5C 94 82 CA db 12h, 29h, 5Ch, 94h, 82h,0CAh -31E4:A498 9D 46 D6 BF 00 FF db 9Dh, 46h,0D6h,0BFh, 00h,0FFh -31E4:A49E C0 00 03 57 00 40 db 0C0h, 00h, 03h, 57h, 00h, 40h -31E4:A4A4 00 02 00 00 40 00 db 00h, 02h, 00h, 00h, 40h, 00h -31E4:A4AA 02 00 00 40 00 02 db 02h, 00h, 00h, 40h, 00h, 02h -31E4:A4B0 00 00 40 00 02 00 db 00h, 00h, 40h, 00h, 02h, 00h -31E4:A4B6 00 3F FF FC 00 00 db 00h, 3Fh,0FFh,0FCh, 00h, 00h -31E4:A4BC 40 00 02 00 07 80 db 40h, 00h, 02h, 00h, 07h, 80h -31E4:A4C2 00 01 F0 00 00 00 db 00h, 01h,0F0h, 00h, 00h, 00h -31E4:A4C8 00 00 0E 00 00 00 db 00h, 00h, 0Eh, 00h, 00h, 00h -31E4:A4CE 70 0A 00 00 00 40 db 70h, 0Ah, 00h, 00h, 00h, 40h -31E4:A4D4 FE 00 00 00 40 BA db 0FEh, 00h, 00h, 00h, 40h,0BAh -31E4:A4DA 00 00 00 40 53 FF db 00h, 00h, 00h, 40h, 53h,0FFh -31E4:A4E0 FF FF db 0FFh,0FFh -31E4:A4E2 úFF 3A FD 77 67 7E db 0FFh, 3Ah,0FDh, 77h, 67h, 7Eh -31E4:A4E8 63 A5 7F F7 C5 FF db 63h,0A5h, 7Fh,0F7h,0C5h,0FFh -31E4:A4EE E6 7B 7E ED 20 00 db 0E6h, 7Bh, 7Eh,0EDh, 20h, 00h -31E4:A4F4 01 05 34 BE 4F 92 db 01h, 05h, 34h,0BEh, 4Fh, 92h -31E4:A4FA AA 02 E9 B4 89 44 db 0AAh, 02h,0E9h,0B4h, 89h, 44h -31E4:A500 5A 8B D8 98 A6 B6 db 5Ah, 8Bh,0D8h, 98h,0A6h,0B6h -31E4:A506 96 1A 99 00 0B 40 db 96h, 1Ah, 99h, 00h, 0Bh, 40h -31E4:A50C 32 A5 77 FB 66 9D db 32h,0A5h, 77h,0FBh, 66h, 9Dh -31E4:A512 59 04 77 CA 00 E9 db 59h, 04h, 77h,0CAh, 00h,0E9h -31E4:A518 39 7A 8B 4B 02 2E db 39h, 7Ah, 8Bh, 4Bh, 02h, 2Eh -31E4:A51E 7B D4 25 FB D4 E0 db 7Bh,0D4h, 25h,0FBh,0D4h,0E0h -31E4:A524 2A E7 0F 38 E7 FE db 2Ah,0E7h, 0Fh, 38h,0E7h,0FEh -31E4:A52A CB 0A 0A 5B 3F 17 db 0CBh, 0Ah, 0Ah, 5Bh, 3Fh, 17h -31E4:A530 09 46 EE EB AD 0D db 09h, 46h,0EEh,0EBh,0ADh, 0Dh -31E4:A536 22 2E EB 75 09 4B db 22h, 2Eh,0EBh, 75h, 09h, 4Bh -31E4:A53C E5 6B F9 08 07 53 db 0E5h, 6Bh,0F9h, 08h, 07h, 53h -31E4:A542 B7 D7 0F EC A9 DD db 0B7h,0D7h, 0Fh,0ECh,0A9h,0DDh -31E4:A548 E8 00 12 C4 6F D0 db 0E8h, 00h, 12h,0C4h, 6Fh,0D0h -31E4:A54E 00 0B 7D FF A0 01 db 00h, 0Bh, 7Dh,0FFh,0A0h, 01h -31E4:A554 85 88 D7 40 00 02 db 85h, 88h,0D7h, 40h, 00h, 02h -31E4:A55A F5 BE 9C 00 01 5E db 0F5h,0BEh, 9Ch, 00h, 01h, 5Eh -31E4:A560 ED 04 00 78 AF D9 db 0EDh, 04h, 00h, 78h,0AFh,0D9h -31E4:A566 04 00 40 AB 33 52 db 04h, 00h, 40h,0ABh, 33h, 52h -31E4:A56C B2 AA 66 93 45 12 db 0B2h,0AAh, 66h, 93h, 45h, 12h -31E4:A572 01 12 52 48 00 50 db 01h, 12h, 52h, 48h, 00h, 50h -31E4:A578 91 84 22 92 D5 9F db 91h, 84h, 22h, 92h,0D5h, 9Fh -31E4:A57E A7 B5 A2 82 BB B3 db 0A7h,0B5h,0A2h, 82h,0BBh,0B3h -31E4:A584 01 52 46 49 12 97 db 01h, 52h, 46h, 49h, 12h, 97h -31E4:A58A A9 56 1A F7 B4 10 db 0A9h, 56h, 1Ah,0F7h,0B4h, 10h -31E4:A590 09 A7 99 1C A1 28 db 09h,0A7h, 99h, 1Ch,0A1h, 28h -31E4:A596 99 D7 AA 92 DD 32 db 99h,0D7h,0AAh, 92h,0DDh, 32h -31E4:A59C 6A 64 A0 21 B5 B5 db 6Ah, 64h,0A0h, 21h,0B5h,0B5h -31E4:A5A2 4B 2D 95 57 F3 BF db 4Bh, 2Dh, 95h, 57h,0F3h,0BFh -31E4:A5A8 FF F8 00 D6 C0 00 db 0FFh,0F8h, 00h,0D6h,0C0h, 00h -31E4:A5AE 05 54 73 40 00 04 db 05h, 54h, 73h, 40h, 00h, 04h -31E4:A5B4 EB BF 40 00 02 F3 db 0EBh,0BFh, 40h, 00h, 02h,0F3h -31E4:A5BA 7E F0 00 01 2D 9F db 7Eh,0F0h, 00h, 01h, 2Dh, 9Fh -31E4:A5C0 E0 00 30 92 D3 C0 db 0E0h, 00h, 30h, 92h,0D3h,0C0h -31E4:A5C6 00 18 5B 87 C0 01 db 00h, 18h, 5Bh, 87h,0C0h, 01h -31E4:A5CC F8 27 B8 00 01 F0 db 0F8h, 27h,0B8h, 00h, 01h,0F0h -31E4:A5D2 13 A0 00 00 F0 08 db 13h,0A0h, 00h, 00h,0F0h, 08h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 516 - -31E4:A5D8 A0 00 00 00 06 BF db 0A0h, 00h, 00h, 00h, 06h,0BFh -31E4:A5DE 00 00 00 01 73 6D db 00h, 00h, 00h, 01h, 73h, 6Dh -31E4:A5E4 BB EE 73 F6 5A 9F db 0BBh,0EEh, 73h,0F6h, 5Ah, 9Fh -31E4:A5EA F7 35 E5 25 56 AA db 0F7h, 35h,0E5h, 25h, 56h,0AAh -31E4:A5F0 ED B7 9A 54 B1 3B db 0EDh,0B7h, 9Ah, 54h,0B1h, 3Bh -31E4:A5F6 F3 DB 57 6F FD FD db 0F3h,0DBh, 57h, 6Fh,0FDh,0FDh -31E4:A5FC 4F 9B 55 5F BD DD db 4Fh, 9Bh, 55h, 5Fh,0BDh,0DDh -31E4:A602 DB 76 FD 5A 6A 4A db 0DBh, 76h,0FDh, 5Ah, 6Ah, 4Ah -31E4:A608 A4 DF B7 FE BE 36 db 0A4h,0DFh,0B7h,0FEh,0BEh, 36h -31E4:A60E BF F3 BC 97 6C BF db 0BFh,0F3h,0BCh, 97h, 6Ch,0BFh -31E4:A614 FF D3 F9 B5 77 DB db 0FFh,0D3h,0F9h,0B5h, 77h,0DBh -31E4:A61A FA D5 B5 7F FF C0 db 0FAh,0D5h,0B5h, 7Fh,0FFh,0C0h -31E4:A620 00 1D D9 87 DF FF db 00h, 1Dh,0D9h, 87h,0DFh,0FFh -31E4:A626 D6 EF DB 20 00 25 db 0D6h,0EFh,0DBh, 20h, 00h, 25h -31E4:A62C EF F2 db 0EFh,0F2h -31E4:A62E 40 db 40h - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -31E4:A62F sub_275 proc near -31E4:A62F 00 13 add [bp+di],dl -31E4:A631 B7 B6 mov bh,0B6h -31E4:A633 80 00 0B add byte ptr [bx+si],0Bh -31E4:A636 3D 00DD cmp ax,0DDh -31E4:A639 00 05 add [di],al -31E4:A63B EF out dx,ax ; port 8300h ??I/O Non-standard -31E4:A63C DA 00 fiadd dword ptr [bx+si] ; st = st + memory -31E4:A63E 00 02 add [bp+si],al -31E4:A640 F0> B4 00 lock mov ah,0 -31E4:A643 7F FF FF 74 00 40 db 7Fh,0FFh,0FFh, 74h, 00h, 40h -31E4:A649 01 AE FF FF FE 03 db 01h,0AEh,0FFh,0FFh,0FEh, 03h -31E4:A64F A9 BC 00 49 FA AA db 0A9h,0BCh, 00h, 49h,0FAh,0AAh -31E4:A655 64 00 7E F3 B7 7C db 64h, 00h, 7Eh,0F3h,0B7h, 7Ch -31E4:A65B 00 E6 DD 74 8F 7A db 00h,0E6h,0DDh, 74h, 8Fh, 7Ah -31E4:A661 B5 4D 72 FD B5 99 db 0B5h, 4Dh, 72h,0FDh,0B5h, 99h -31E4:A667 A5 D6 BD 29 85 49 db 0A5h,0D6h,0BDh, 29h, 85h, 49h -31E4:A66D AD FA 69 F3 6B 6D db 0ADh,0FAh, 69h,0F3h, 6Bh, 6Dh -31E4:A673 5E 58 A9 51 DA FF db 5Eh, 58h,0A9h, 51h,0DAh,0FFh -31E4:A679 BB 7E 9E B7 FE AD db 0BBh, 7Eh, 9Eh,0B7h,0FEh,0ADh -31E4:A67F 2B 4A D7 E5 7B F3 db 2Bh, 4Ah,0D7h,0E5h, 7Bh,0F3h -31E4:A685 6E 7F E7 AD EE DD db 6Eh, 7Fh,0E7h,0ADh,0EEh,0DDh -31E4:A68B 79 FF BB B6 D5 AF db 79h,0FFh,0BBh,0B6h,0D5h,0AFh -31E4:A691 FB B7 6D 5A FB EF db 0FBh,0B7h, 6Dh, 5Ah,0FBh,0EFh -31E4:A697 F5 CD F7 BB FE F5 db 0F5h,0CDh,0F7h,0BBh,0FEh,0F5h -31E4:A69D AA 94 DD FA FF FB db 0AAh, 94h,0DDh,0FAh,0FFh,0FBh -31E4:A6A3 EF FD BB FF FF FE db 0EFh,0FDh,0BBh,0FFh,0FFh,0FEh -31E4:A6A9 6F B4 02 30 81 9E db 6Fh,0B4h, 02h, 30h, 81h, 9Eh -31E4:A6AF E8 03 83 80 4F 90 db 0E8h, 03h, 83h, 80h, 4Fh, 90h -31E4:A6B5 00 00 00 2D 20 00 db 00h, 00h, 00h, 2Dh, 20h, 00h -31E4:A6BB 00 00 17 40 00 FE db 00h, 00h, 17h, 40h, 00h,0FEh -31E4:A6C1 00 0B 80 00 82 00 db 00h, 0Bh, 80h, 00h, 82h, 00h -31E4:A6C7 04 FF FF FF F0 FF db 04h,0FFh,0FFh,0FFh,0F0h,0FFh -31E4:A6CD 00 00 00 10 80 FE db 00h, 00h, 00h, 10h, 80h,0FEh -31E4:A6D3 B6 F7 DF 9E FD 37 db 0B6h,0F7h,0DFh, 9Eh,0FDh, 37h -31E4:A6D9 5E DD ED A9 AD DD db 5Eh,0DDh,0EDh,0A9h,0ADh,0DDh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 517 - -31E4:A6DF AFFF dw 0AFFFh ; Data table (indexed access) -31E4:A6E1 FB 7B 5E DB B7 7F db 0FBh, 7Bh, 5Eh,0DBh,0B7h, 7Fh -31E4:A6E7 69 6D EE EF B6 83 db 69h, 6Dh,0EEh,0EFh,0B6h, 83h -31E4:A6ED F1 59 37 DC FC AD db 0F1h, 59h, 37h,0DCh,0FCh,0ADh -31E4:A6F3 DA D7 FF 6E B5 5B db 0DAh,0D7h,0FFh, 6Eh,0B5h, 5Bh -31E4:A6F9 ED F5 FF db 0EDh,0F5h,0FFh -31E4:A6FC loc_2345: ; xref 31E4:A6FF -31E4:A6FC úAD lodsw ; String [si] to ax -31E4:A6FD AB stosw ; Store ax to es:[di] -31E4:A6FE 2F das ; Decimal adjust -31E4:A6FF EB FB jmp short loc_2345 ; (A6FC) - sub_275 endp - -31E4:A701 ED 7D BB EC EB 5B db 0EDh, 7Dh,0BBh,0ECh,0EBh, 5Bh -31E4:A707 FF FF BF FF 52 00 db 0FFh,0FFh,0BFh,0FFh, 52h, 00h -31E4:A70D 0F FD BF FE FF 6C db 0Fh,0FDh,0BFh,0FEh,0FFh, 6Ch -31E4:A713 BE FF FF C0 00 FF db 0BEh,0FFh,0FFh,0C0h, 00h,0FFh -31E4:A719 FC 00 3E AA FF 00 db 0FCh, 00h, 3Eh,0AAh,0FFh, 00h -31E4:A71F 00 01 00 BE 00 00 db 00h, 01h, 00h,0BEh, 00h, 00h -31E4:A725 00 80 F4 00 00 00 db 00h, 80h,0F4h, 00h, 00h, 00h -31E4:A72B 40 E8 00 FF 00 20 db 40h,0E8h, 00h,0FFh, 00h, 20h -31E4:A731 D0 00 FF 00 10 A0 db 0D0h, 00h,0FFh, 00h, 10h,0A0h -31E4:A737 00 00 00 08 40 00 db 00h, 00h, 00h, 08h, 40h, 00h -31E4:A73D 00 00 04 80 00 00 db 00h, 00h, 04h, 80h, 00h, 00h -31E4:A743 00 02 F8 3F FF FF db 00h, 02h,0F8h, 3Fh,0FFh,0FFh -31E4:A749 FE 2D 2B 34 62 15 db 0FEh, 2Dh, 2Bh, 34h, 62h, 15h -31E4:A74F 18 66 6B 2A C3 2B db 18h, 66h, 6Bh, 2Ah,0C3h, 2Bh -31E4:A755 A4 26 23 09 96 41 db 0A4h, 26h, 23h, 09h, 96h, 41h -31E4:A75B 27 28 30 4A 2B 1C db 27h, 28h, 30h, 4Ah, 2Bh, 1Ch -31E4:A761 2A db 2Ah -31E4:A762 loc_2346: -31E4:A762 2E 93 34 36 DA 14 db 2Eh, 93h, 34h, 36h,0DAh, 14h -31E4:A768 16 54 32 2D 16 12 db 16h, 54h, 32h, 2Dh, 16h, 12h -31E4:A76E 9A 66 2A 12 13 17 db 9Ah, 66h, 2Ah, 12h, 13h, 17h -31E4:A774 19 2F 7F 55 28 5F db 19h, 2Fh, 7Fh, 55h, 28h, 5Fh -31E4:A77A 96 94 93 69 96 db 96h, 94h, 93h, 69h, 96h -31E4:A77F 57 4B 3D 3D 44 2B db 'WK==D+V0' -31E4:A785 56 30 -31E4:A787 91 B6 AB 98 A2 96 db 91h,0B6h,0ABh, 98h,0A2h, 96h -31E4:A78D 3A 99 71 91 48 7F db 3Ah, 99h, 71h, 91h, 48h, 7Fh -31E4:A793 66 7A 55 64 63 5D db 'fzUdc]hIO' -31E4:A799 68 49 4F -31E4:A79C 13 34 3A 35 99 35 db 13h, 34h, 3Ah, 35h, 99h, 35h -31E4:A7A2 91 9A 97 78 93 98 db 91h, 9Ah, 97h, 78h, 93h, 98h -31E4:A7A8 91 9F 91 2E 13 58 db 91h, 9Fh, 91h, 2Eh, 13h, 58h -31E4:A7AE AD 14 92 98 A2 9F db 0ADh, 14h, 92h, 98h,0A2h, 9Fh -31E4:A7B4 9A 12 91 16 2F 58 db 9Ah, 12h, 91h, 16h, 2Fh, 58h -31E4:A7BA 77 71 96 5F 92 92 db 77h, 71h, 96h, 5Fh, 92h, 92h -31E4:A7C0 AB C5 02 AE BE B7 db 0ABh,0C5h, 02h,0AEh,0BEh,0B7h -31E4:A7C6 EA BF DC EE E7 EF db 0EAh,0BFh,0DCh,0EEh,0E7h,0EFh -31E4:A7CC CB FE 6E D5 F7 FF db 0CBh,0FEh, 6Eh,0D5h,0F7h,0FFh -31E4:A7D2 6B F3 2E 7B CB 72 db 6Bh,0F3h, 2Eh, 7Bh,0CBh, 72h -31E4:A7D8 6D 5D BF EF 00 0D db 6Dh, 5Dh,0BFh,0EFh, 00h, 0Dh -31E4:A7DE 6E DE AA 77 FB 5D db 6Eh,0DEh,0AAh, 77h,0FBh, 5Dh -31E4:A7E4 5F DB 6E 67 75 BA db 5Fh,0DBh, 6Eh, 67h, 75h,0BAh -31E4:A7EA D9 FD 5E D5 D7 ED db 0D9h,0FDh, 5Eh,0D5h,0D7h,0EDh -31E4:A7F0 AE EF DD 77 DF F4 db 0AEh,0EFh,0DDh, 77h,0DFh,0F4h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 518 - -31E4:A7F6 CF 65 EB BB D6 DB db 0CFh, 65h,0EBh,0BBh,0D6h,0DBh -31E4:A7FC 7F FF F5 FF D6 FE db 7Fh,0FFh,0F5h,0FFh,0D6h,0FEh -31E4:A802 DF FD 5F FF FB 78 db 0DFh,0FDh, 5Fh,0FFh,0FBh, 78h -31E4:A808 46 A0 00 04 EB 3B db 46h,0A0h, 00h, 04h,0EBh, 3Bh -31E4:A80E 40 0F FE DF DF 80 db 40h, 0Fh,0FEh,0DFh,0DFh, 80h -31E4:A814 00 02 52 DD 00 00 db 00h, 02h, 52h,0DDh, 00h, 00h -31E4:A81A 01 7F DA 00 00 00 db 01h, 7Fh,0DAh, 00h, 00h, 00h -31E4:A820 BD 74 00 00 00 48 db 0BDh, 74h, 00h, 00h, 00h, 48h -31E4:A826 FF EF FF FF FF DB db 0FFh,0EFh,0FFh,0FFh,0FFh,0DBh -31E4:A82C 0F FF B7 3F BD 0F db 0Fh,0FFh,0B7h, 3Fh,0BDh, 0Fh -31E4:A832 F3 AB FF BD 0E FF db 0F3h,0ABh,0FFh,0BDh, 0Eh,0FFh -31E4:A838 9A BF ED 55 B7 6A db 9Ah,0BFh,0EDh, 55h,0B7h, 6Ah -31E4:A83E 04 FF 6E CB D5 EE db 04h,0FFh, 6Eh,0CBh,0D5h,0EEh -31E4:A844 ED FD 67 D6 FE BD db 0EDh,0FDh, 67h,0D6h,0FEh,0BDh -31E4:A84A FD AD DD EF FA B7 db 0FDh,0ADh,0DDh,0EFh,0FAh,0B7h -31E4:A850 F7 BD 9F FF 6F BA db 0F7h,0BDh, 9Fh,0FFh, 6Fh,0BAh -31E4:A856 BA FD EA EB 6F DF db 0BAh,0FDh,0EAh,0EBh, 6Fh,0DFh -31E4:A85C FF DF BB BB 7F FB db 0FFh,0DFh,0BBh,0BBh, 7Fh,0FBh -31E4:A862 F6 F5 6F BA F5 FD db 0F6h,0F5h, 6Fh,0BAh,0F5h,0FDh -31E4:A868 9E CA 95 6D F6 DB db 9Eh,0CAh, 95h, 6Dh,0F6h,0DBh -31E4:A86E 6D 5C FF EF B4 6A db 6Dh, 5Ch,0FFh,0EFh,0B4h, 6Ah -31E4:A874 B6 DF FD BF B7 7F db 0B6h,0DFh,0FDh,0BFh,0B7h, 7Fh -31E4:A87A FF FD 77 77 AD AD db 0FFh,0FDh, 77h, 77h,0ADh,0ADh -31E4:A880 AB FD F8 7D DB DA db 0ABh,0FDh,0F8h, 7Dh,0DBh,0DAh -31E4:A886 FF FF 5F 7F FC 80 db 0FFh,0FFh, 5Fh, 7Fh,0FCh, 80h -31E4:A88C 06 BD FE 21 00 00 db 06h,0BDh,0FEh, 21h, 00h, 00h -31E4:A892 FF FF C6 00 00 1C db 0FFh,0FFh,0C6h, 00h, 00h, 1Ch -31E4:A898 00 E8 00 00 03 FF db 00h,0E8h, 00h, 00h, 03h,0FFh -31E4:A89E EF 00 00 00 00 B0 db 0EFh, 00h, 00h, 00h, 00h,0B0h -31E4:A8A4 C0 00 00 00 1D BF db 0C0h, 00h, 00h, 00h, 1Dh,0BFh -31E4:A8AA 00 03 FF 00 7F FF db 00h, 03h,0FFh, 00h, 7Fh,0FFh -31E4:A8B0 02 00 B6 8A 9A EE db 02h, 00h,0B6h, 8Ah, 9Ah,0EEh -31E4:A8B6 83 9E 5C B6 54 B5 db 83h, 9Eh, 5Ch,0B6h, 54h,0B5h -31E4:A8BC EA 8C 92 B5 5F FD db 0EAh, 8Ch, 92h,0B5h, 5Fh,0FDh -31E4:A8C2 3C E7 6F 5D D5 55 db 3Ch,0E7h, 6Fh, 5Dh,0D5h, 55h -31E4:A8C8 FF EA FB DD 7F FB db 0FFh,0EAh,0FBh,0DDh, 7Fh,0FBh -31E4:A8CE BE F5 DF 99 A6 F7 db 0BEh,0F5h,0DFh, 99h,0A6h,0F7h -31E4:A8D4 BF DA AA FE BE E7 db 0BFh,0DAh,0AAh,0FEh,0BEh,0E7h -31E4:A8DA F7 7A 95 49 3F F7 db 0F7h, 7Ah, 95h, 49h, 3Fh,0F7h -31E4:A8E0 D7 6B 37 B5 FF 7F db 0D7h, 6Bh, 37h,0B5h,0FFh, 7Fh -31E4:A8E6 2A FF DF ED B5 EA db 2Ah,0FFh,0DFh,0EDh,0B5h,0EAh -31E4:A8EC EC AD EB F7 7F FF db 0ECh,0ADh,0EBh,0F7h, 7Fh,0FFh -31E4:A8F2 FF 43 FF FF F8 AB db 0FFh, 43h,0FFh,0FFh,0F8h,0ABh -31E4:A8F8 FC 00 00 65 FF 00 db 0FCh, 00h, 00h, 65h,0FFh, 00h -31E4:A8FE 00 00 02 FF E0 00 db 00h, 00h, 02h,0FFh,0E0h, 00h -31E4:A904 00 01 BD 20 00 00 db 00h, 01h,0BDh, 20h, 00h, 00h -31E4:A90A 00 5F 40 00 03 80 db 00h, 5Fh, 40h, 00h, 03h, 80h -31E4:A910 2F 80 00 27 E0 17 db 2Fh, 80h, 00h, 27h,0E0h, 17h -31E4:A916 80 00 0C 10 0B 80 db 80h, 00h, 0Ch, 10h, 0Bh, 80h -31E4:A91C 00 07 40 05 80 00 db 00h, 07h, 40h, 05h, 80h, 00h -31E4:A922 00 00 02 80 00 00 db 00h, 00h, 02h, 80h, 00h, 00h -31E4:A928 00 01 00 00 00 db 00h, 01h, 00h, 00h, 00h -31E4:A92D 00 00 FE FE FE FE db 00h, 00h,0FEh,0FEh,0FEh,0FEh -31E4:A933 FE 00 db 0FEh, 00h -31E4:A935 001A[00] db 26 dup (0) -31E4:A94F FE FE FE FE FE 00 db 0FEh,0FEh,0FEh,0FEh,0FEh, 00h -31E4:A955 0008[00] db 8 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 519 - -31E4:A95D FE FE FF FF FF FF db 0FEh,0FEh,0FFh,0FFh,0FFh,0FFh -31E4:A963 FF FE FE 00 00 00 db 0FFh,0FEh,0FEh, 00h, 00h, 00h -31E4:A969 00 00 00 FE FF FF db 00h, 00h, 00h,0FEh,0FFh,0FFh -31E4:A96F FE 00 FE 00 FE FF db 0FEh, 00h,0FEh, 00h,0FEh,0FFh -31E4:A975 FF FE 00 00 00 00 db 0FFh,0FEh, 00h, 00h, 00h, 00h -31E4:A97B FE FF 00 FE 00 FE db 0FEh,0FFh, 00h,0FEh, 00h,0FEh -31E4:A981 00 FE 00 FE 00 FF db 00h,0FEh, 00h,0FEh, 00h,0FFh -31E4:A987 FE 00 00 00 FE FF db 0FEh, 00h, 00h, 00h,0FEh,0FFh -31E4:A98D FE FF FE 00 FE 00 db 0FEh,0FFh,0FEh, 00h,0FEh, 00h -31E4:A993 FE 00 FE FF FE 00 db 0FEh, 00h,0FEh,0FFh,0FEh, 00h -31E4:A999 00 FE FF FE 00 FE db 00h,0FEh,0FFh,0FEh, 00h,0FEh -31E4:A99F FF FE 00 ED F6 6B db 0FFh,0FEh, 00h,0EDh,0F6h, 6Bh -31E4:A9A5 68 0B CE AB 55 53 db 68h, 0Bh,0CEh,0ABh, 55h, 53h -31E4:A9AB 79 EA 76 B6 96 B7 db 79h,0EAh, 76h,0B6h, 96h,0B7h -31E4:A9B1 AC CA 96 9E 59 CD db 0ACh,0CAh, 96h, 9Eh, 59h,0CDh -31E4:A9B7 4F 6B F5 6F 9A FF db 4Fh, 6Bh,0F5h, 6Fh, 9Ah,0FFh -31E4:A9BD 75 49 B7 DB CD 53 db 75h, 49h,0B7h,0DBh,0CDh, 53h -31E4:A9C3 6A EF FF AE EA DA db 6Ah,0EFh,0FFh,0AEh,0EAh,0DAh -31E4:A9C9 FB F6 FB A7 CF FF db 0FBh,0F6h,0FBh,0A7h,0CFh,0FFh -31E4:A9CF BF FF 5E DF 67 EF db 0BFh,0FFh, 5Eh,0DFh, 67h,0EFh -31E4:A9D5 BB F7 FB B5 7F FF db 0BBh,0F7h,0FBh,0B5h, 7Fh,0FFh -31E4:A9DB FF FF BF EB C0 00 db 0FFh,0FFh,0BFh,0EBh,0C0h, 00h -31E4:A9E1 00 7F D7 C0 00 00 db 00h, 7Fh,0D7h,0C0h, 00h, 00h -31E4:A9E7 10 D7 40 00 00 1F db 10h,0D7h, 40h, 00h, 00h, 1Fh -31E4:A9ED FF C0 00 00 01 38 db 0FFh,0C0h, 00h, 00h, 01h, 38h -31E4:A9F3 00 00 00 01 FF 00 db 00h, 00h, 00h, 01h,0FFh, 00h -31E4:A9F9 00 00 01 FD 00 00 db 00h, 00h, 01h,0FDh, 00h, 00h -31E4:A9FF 00 01 BF 80 00 00 db 00h, 01h,0BFh, 80h, 00h, 00h -31E4:AA05 01 DF C0 00 00 01 db 01h,0DFh,0C0h, 00h, 00h, 01h -31E4:AA0B CF 60 00 00 01 DD db 0CFh, 60h, 00h, 00h, 01h,0DDh -31E4:AA11 DF F8 00 01 CC B6 db 0DFh,0F8h, 00h, 01h,0CCh,0B6h -31E4:AA17 D7 F7 FF E8 DE EE db 0D7h,0F7h,0FFh,0E8h,0DEh,0EEh -31E4:AA1D FB AE FB 6A B7 E4 db 0FBh,0AEh,0FBh, 6Ah,0B7h,0E4h -31E4:AA23 99 65 B2 B5 6A 99 db 99h, 65h,0B2h,0B5h, 6Ah, 99h -31E4:AA29 FB 6D 49 67 4E E9 db 0FBh, 6Dh, 49h, 67h, 4Eh,0E9h -31E4:AA2F 96 B5 D7 B5 F3 73 db 96h,0B5h,0D7h,0B5h,0F3h, 73h -31E4:AA35 58 D4 BB 7D 9A FE db 58h,0D4h,0BBh, 7Dh, 9Ah,0FEh -31E4:AA3B BE EA AC 56 A2 44 db 0BEh,0EAh,0ACh, 56h,0A2h, 44h -31E4:AA41 C9 F6 6D 5F 7C BD db 0C9h,0F6h, 6Dh, 5Fh, 7Ch,0BDh -31E4:AA47 FF FF DA AD B5 DF db 0FFh,0FFh,0DAh,0ADh,0B5h,0DFh -31E4:AA4D DF BB 5A FD 9F FB db 0DFh,0BBh, 5Ah,0FDh, 9Fh,0FBh -31E4:AA53 FE ED 6F FF 7F FF db 0FEh,0EDh, 6Fh,0FFh, 7Fh,0FFh -31E4:AA59 F7 FB F2 80 00 db 0F7h,0FBh,0F2h, 80h, 00h -31E4:AA5E ú0D C3 FE 80 00 0E db 0Dh,0C3h,0FEh, 80h, 00h, 0Eh -31E4:AA64 7F FF 80 00 01 FF db 7Fh,0FFh, 80h, 00h, 01h,0FFh -31E4:AA6A 38 00 00 00 FC FE db 38h, 00h, 00h, 00h,0FCh,0FEh -31E4:AA70 00 00 00 7F F2 00 db 00h, 00h, 00h, 7Fh,0F2h, 00h -31E4:AA76 00 00 7D EB 00 00 db 00h, 00h, 7Dh,0EBh, 00h, 00h -31E4:AA7C 00 5F F5 80 00 00 db 00h, 5Fh,0F5h, 80h, 00h, 00h -31E4:AA82 77 6E C0 00 03 ED db 77h, 6Eh,0C0h, 00h, 03h,0EDh -31E4:AA88 9B 60 00 04 DF FE db 9Bh, 60h, 00h, 04h,0DFh,0FEh -31E4:AA8E FF FF FD 9F BB 36 db 0FFh,0FFh,0FDh, 9Fh,0BBh, 36h -31E4:AA94 A0 0B FE BF 54 AF db 0A0h, 0Bh,0FEh,0BFh, 54h,0AFh -31E4:AA9A F5 BB BC AF 2D 5D db 0F5h,0BBh,0BCh,0AFh, 2Dh, 5Dh -31E4:AAA0 9E BA B4 B3 77 DB db 9Eh,0BAh,0B4h,0B3h, 77h,0DBh -31E4:AAA6 AD D9 6B BD BB BD db 0ADh,0D9h, 6Bh,0BDh,0BBh,0BDh -31E4:AAAC AA CB 95 93 B5 55 db 0AAh,0CBh, 95h, 93h,0B5h, 55h -31E4:AAB2 96 FB 59 EB A7 75 db 96h,0FBh, 59h,0EBh,0A7h, 75h -31E4:AAB8 5A F6 BE 95 77 6F db 5Ah,0F6h,0BEh, 95h, 77h, 6Fh -31E4:AABE 66 CA BE 6E AE B7 db 66h,0CAh,0BEh, 6Eh,0AEh,0B7h -31E4:AAC4 AA 9A FF 73 DF 7D db 0AAh, 9Ah,0FFh, 73h,0DFh, 7Dh -31E4:AACA FF FF FF 7F C1 38 db 0FFh,0FFh,0FFh, 7Fh,0C1h, 38h -31E4:AAD0 00 00 DD FE 60 00 db 00h, 00h,0DDh,0FEh, 60h, 00h -31E4:AAD6 00 FE 1C C0 00 00 db 00h,0FEh, 1Ch,0C0h, 00h, 00h -31E4:AADC BF FF 80 00 00 FF db 0BFh,0FFh, 80h, 00h, 00h,0FFh -31E4:AAE2 38 00 00 00 FC F8 db 38h, 00h, 00h, 00h,0FCh,0F8h -31E4:AAE8 00 00 00 7F E8 00 db 00h, 00h, 00h, 7Fh,0E8h, 00h -31E4:AAEE 00 00 FF EC 00 00 db 00h, 00h,0FFh,0ECh, 00h, 00h -31E4:AAF4 01 FB D7 F8 00 07 db 01h,0FBh,0D7h,0F8h, 00h, 07h -31E4:AAFA E7 7F FF FF FD 3B db 0E7h, 7Fh,0FFh,0FFh,0FDh, 3Bh -31E4:AB00 DF FF DB 7E E7 E7 db 0DFh,0FFh,0DBh, 7Eh,0E7h,0E7h -31E4:AB06 FE FD EE BD A5 59 db 0FEh,0FDh,0EEh,0BDh,0A5h, 59h -31E4:AB0C 9A A9 26 8D 15 FD db 9Ah,0A9h, 26h, 8Dh, 15h,0FDh -31E4:AB12 D6 db 0D6h -31E4:AB13 loc_2348: -31E4:AB13 54 push sp -31E4:AB14 F2 49 2B 3C 53 F5 db 0F2h, 49h, 2Bh, 3Ch, 53h,0F5h -31E4:AB1A A9 50 5F DB BB FF db 0A9h, 50h, 5Fh,0DBh,0BBh,0FFh -31E4:AB20 63 6F 83 BF F7 BF db 63h, 6Fh, 83h,0BFh,0F7h,0BFh -31E4:AB26 74 37 B6 A6 6A 7E db 74h, 37h,0B6h,0A6h, 6Ah, 7Eh -31E4:AB2C 9D BB E5 92 BF 5A db 9Dh,0BBh,0E5h, 92h,0BFh, 5Ah -31E4:AB32 55 67 74 B0 AF 5F db 55h, 67h, 74h,0B0h,0AFh, 5Fh -31E4:AB38 FC A6 D9 53 55 BB db 0FCh,0A6h,0D9h, 53h, 55h,0BBh -31E4:AB3E A2 35 B4 7A AA 00 db 0A2h, 35h,0B4h, 7Ah,0AAh, 00h -31E4:AB44 05 db 05h -31E4:AB45 loc_2349: -31E4:AB45 3C F2 cmp al,0F2h -31E4:AB47 98 cbw ; Convrt byte to word -31E4:AB48 0F ;* pop cs ; Dangerous-8088 only -31E4:AB48 0F db 0Fh -31E4:AB49 F3 7B EF 5D F0 0E db 0F3h, 7Bh,0EFh, 5Dh,0F0h, 0Eh -31E4:AB4F 7C F4 9D 00 03 72 db 7Ch,0F4h, 9Dh, 00h, 03h, 72h -31E4:AB55 F7 6B 00 01 FF E2 db 0F7h, 6Bh, 00h, 01h,0FFh,0E2h -31E4:AB5B 5E 00 00 00 BD 34 db 5Eh, 00h, 00h, 00h,0BDh, 34h -31E4:AB61 00 00 FF C8 C8 00 db 00h, 00h,0FFh,0C8h,0C8h, 00h -31E4:AB67 01 93 AE F8 00 07 db 01h, 93h,0AEh,0F8h, 00h, 07h -31E4:AB6D 9B 40 D0 00 00 4B db 9Bh, 40h,0D0h, 00h, 00h, 4Bh -31E4:AB73 9E 5E 00 00 29 B2 db 9Eh, 5Eh, 00h, 00h, 29h,0B2h -31E4:AB79 B1 00 00 AE BA DE db 0B1h, 00h, 00h,0AEh,0BAh,0DEh -31E4:AB7F FF FF 32 0D 26 29 db 0FFh,0FFh, 32h, 0Dh, 26h, 29h -31E4:AB85 EE 28 65 00 4B D3 db 0EEh, 28h, 65h, 00h, 4Bh,0D3h -31E4:AB8B EB A2 5A 9A 20 03 db 0EBh,0A2h, 5Ah, 9Ah, 20h, 03h -31E4:AB91 EC 16 C8 99 55 19 db 0ECh, 16h,0C8h, 99h, 55h, 19h -31E4:AB97 A0 C5 A3 B3 0C 57 db 0A0h,0C5h,0A3h,0B3h, 0Ch, 57h -31E4:AB9D AE E8 F9 B4 86 6B db 0AEh,0E8h,0F9h,0B4h, 86h, 6Bh -31E4:ABA3 A9 93 db 0A9h, 93h -31E4:ABA5 loc_2350: -31E4:ABA5 55 push bp -31E4:ABA6 19 4C 72 sbb [si+72h],cx -31E4:ABA9 29 6A CC sub [bp+si-34h],bp -31E4:ABAC 4A dec dx -31E4:ABAD EA 966B:DBED ;* jmp far ptr loc_2376 ;*(966B:DBED) -31E4:ABAD EA db 0EAh -31E4:ABAE DBED 966B dw 0DBEDh, 966Bh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 521 - - ;* No entry point to code -31E4:ABB2 D2 7B D6 sar byte ptr [bp+di-2Ah],cl ; Shift w/sign fill -31E4:ABB5 CF iret ; Interrupt return - ;* No entry point to code -31E4:ABB6 54 push sp -31E4:ABB7 CB retf - ;* No entry point to code -31E4:ABB8 9F lahf ; Load ah from flags -31E4:ABB9 BA 55A5 mov dx,55A5h -31E4:ABBC FF C9 dec cx -31E4:ABBE 5A pop dx -31E4:ABBF úBF FFE7 mov di,data_1203e ; (31E4:FFE7=0) -31E4:ABC2 19 DF sbb di,bx -31E4:ABC4 7F FF FE 4D D4 80 db 7Fh,0FFh,0FEh, 4Dh,0D4h, 80h -31E4:ABCA 00 01 43 F9 04 00 db 00h, 01h, 43h,0F9h, 04h, 00h -31E4:ABD0 81 B5 B2 00 00 01 db 81h,0B5h,0B2h, 00h, 00h, 01h -31E4:ABD6 C9 E4 00 00 00 7A db 0C9h,0E4h, 00h, 00h, 00h, 7Ah -31E4:ABDC C8 00 00 00 36 90 db 0C8h, 00h, 00h, 00h, 36h, 90h -31E4:ABE2 18 00 30 3F 20 00 db 18h, 00h, 30h, 3Fh, 20h, 00h -31E4:ABE8 00 00 00 40 00 00 db 00h, 00h, 00h, 40h, 00h, 00h -31E4:ABEE 00 01 80 00 00 00 db 00h, 01h, 80h, 00h, 00h, 00h -31E4:ABF4 01 FF FF FF FF FF db 01h,0FFh,0FFh,0FFh,0FFh,0FFh -31E4:ABFA AD E5 3B FD FC F3 db 0ADh,0E5h, 3Bh,0FDh,0FCh,0F3h -31E4:AC00 B2 A5 3D EB F3 BB db 0B2h,0A5h, 3Dh,0EBh,0F3h,0BBh -31E4:AC06 9B BD 67 F7 6A B9 db 9Bh,0BDh, 67h,0F7h, 6Ah,0B9h -31E4:AC0C 2D 2F D6 C7 3D BD db 2Dh, 2Fh,0D6h,0C7h, 3Dh,0BDh -31E4:AC12 95 FA B5 32 8A 48 db 95h,0FAh,0B5h, 32h, 8Ah, 48h -31E4:AC18 72 A5 55 6C 5B 7F db 72h,0A5h, 55h, 6Ch, 5Bh, 7Fh -31E4:AC1E B8 EC A4 97 DD 72 db 0B8h,0ECh,0A4h, 97h,0DDh, 72h -31E4:AC24 D6 D5 27 BF 53 6A db 0D6h,0D5h, 27h,0BFh, 53h, 6Ah -31E4:AC2A 95 2B F4 EA DD 55 db 95h, 2Bh,0F4h,0EAh,0DDh, 55h -31E4:AC30 D5 F5 8D D2 ED 7F db 0D5h,0F5h, 8Dh,0D2h,0EDh, 7Fh -31E4:AC36 7B FF 6F AE BB 85 db 7Bh,0FFh, 6Fh,0AEh,0BBh, 85h -31E4:AC3C FF FE 79 9F EA 00 db 0FFh,0FEh, 79h, 9Fh,0EAh, 00h -31E4:AC42 01 7A BF 07 FF FF db 01h, 7Ah,0BFh, 07h,0FFh,0FFh -31E4:AC48 FF F8 F8 00 00 00 db 0FFh,0F8h,0F8h, 00h, 00h, 00h -31E4:AC4E 07 00 00 00 00 00 db 07h, 00h, 00h, 00h, 00h, 00h -31E4:AC54 80 00 00 00 01 80 db 80h, 00h, 00h, 00h, 01h, 80h -31E4:AC5A 00 00 00 01 FF FF db 00h, 00h, 00h, 01h,0FFh,0FFh -31E4:AC60 FF FF FF 00 db 0FFh,0FFh,0FFh, 00h -31E4:AC64 000E[00] db 14 dup (0) -31E4:AC72 D6 E7 66 EF F6 13 db 0D6h,0E7h, 66h,0EFh,0F6h, 13h -31E4:AC78 6F ED B2 AB B5 37 db 6Fh,0EDh,0B2h,0ABh,0B5h, 37h -31E4:AC7E EB 3B 35 DB 46 CF db 0EBh, 3Bh, 35h,0DBh, 46h,0CFh -31E4:AC84 2A 56 EB 6B BB 73 db 2Ah, 56h,0EBh, 6Bh,0BBh, 73h -31E4:AC8A A5 FD 7B B7 EA E5 db 0A5h,0FDh, 7Bh,0B7h,0EAh,0E5h -31E4:AC90 93 7F FE FF FD 9F db 93h, 7Fh,0FEh,0FFh,0FDh, 9Fh -31E4:AC96 43 BF F8 7F FB 43 db 43h,0BFh,0F8h, 7Fh,0FBh, 43h -31E4:AC9C E7 F8 5E AB C3 FF db 0E7h,0F8h, 5Eh,0ABh,0C3h,0FFh -31E4:ACA2 78 51 DF C2 E9 F8 db 78h, 51h,0DFh,0C2h,0E9h,0F8h -31E4:ACA8 5B AB C3 69 E8 50 db 5Bh,0ABh,0C3h, 69h,0E8h, 50h -31E4:ACAE D7 C3 5D D8 5D FF db 0D7h,0C3h, 5Dh,0D8h, 5Dh,0FFh -31E4:ACB4 C2 AF B8 79 BF C2 db 0C2h,0AFh,0B8h, 79h,0BFh,0C2h -31E4:ACBA FB F8 52 8F C3 FF db 0FBh,0F8h, 52h, 8Fh,0C3h,0FFh -31E4:ACC0 C0 77 A8 C0 00 00 db 0C0h, 77h,0A8h,0C0h, 00h, 00h -31E4:ACC6 12 5B 40 00 00 15 db 12h, 5Bh, 40h, 00h, 00h, 15h -31E4:ACCC E7 C0 00 00 29 FA db 0E7h,0C0h, 00h, 00h, 29h,0FAh -31E4:ACD2 00 00 00 4B FF 80 db 00h, 00h, 00h, 4Bh,0FFh, 80h -31E4:ACD8 00 00 B4 FF F8 00 db 00h, 00h,0B4h,0FFh,0F8h, 00h -31E4:ACDE 01 6B DE C6 00 02 db 01h, 6Bh,0DEh,0C6h, 00h, 02h -31E4:ACE4 C8 EB 39 87 FD BF db 0C8h,0EBh, 39h, 87h,0FDh,0BFh -31E4:ACEA 08 C5 69 9B 6E 40 db 08h,0C5h, 69h, 9Bh, 6Eh, 40h -31E4:ACF0 80 00 00 00 40 68 db 80h, 00h, 00h, 00h, 40h, 68h -31E4:ACF6 91 22 A0 46 AA E8 db 91h, 22h,0A0h, 46h,0AAh,0E8h -31E4:ACFC 8A 4B AD 34 A5 93 db 8Ah, 4Bh,0ADh, 34h,0A5h, 93h -31E4:AD02 6A 2F D7 AD 3A AA db 6Ah, 2Fh,0D7h,0ADh, 3Ah,0AAh -31E4:AD08 FF FF FF FF FF 00 db 0FFh,0FFh,0FFh,0FFh,0FFh, 00h -31E4:AD0E 00 00 00 00 FC 00 db 00h, 00h, 00h, 00h,0FCh, 00h -31E4:AD14 00 00 00 03 FF FF db 00h, 00h, 00h, 03h,0FFh,0FFh -31E4:AD1A FF FF 98 00 06 52 db 0FFh,0FFh, 98h, 00h, 06h, 52h -31E4:AD20 9B A8 AB A9 92 95 db 9Bh,0A8h,0ABh,0A9h, 92h, 95h -31E4:AD26 A4 db 0A4h -31E4:AD27 loc_2351: ; xref 31E4:AD38 -31E4:AD27 A6 cmpsb ; Cmp [si] to es:[di] -31E4:AD28 35 4D55 xor ax,4D55h -31E4:AD2B AA stosb ; Store al to es:[di] -31E4:AD2C A4 movsb ; Mov [si] to es:[di] -31E4:AD2D A9 6962 test ax,6962h -31E4:AD30 E6 A9 out 0A9h,al ; port 0A9h ??I/O Non-standard -31E4:AD32 4E dec si -31E4:AD33 59 pop cx -31E4:AD34 2B EB sub bp,bx -31E4:AD36 55 push bp -31E4:AD37 9F lahf ; Load ah from flags -31E4:AD38 7F ED jg loc_2351 ; Jump if > -31E4:AD3A 9A FFFF:FF7F ;* call far ptr sub_283 ;*(FFFF:FF7F) -31E4:AD3A 9A db 9Ah -31E4:AD3B FF7F FFFF dw 0FF7Fh, 0FFFFh -31E4:AD3F A6 cmpsb ; Cmp [si] to es:[di] -31E4:AD40 80 87 0080 DD add byte ptr data_519+59h[bx],0DDh ; (31E4:0080=' This ') -31E4:AD45 07 pop es -31E4:AD46 06 push es -31E4:AD47 00 00 add [bx+si],al -31E4:AD49 EF out dx,ax ; port 0, DMA-1 bas&add ch 0 -31E4:AD4A F8 clc ; Clear carry flag -31E4:AD4B 00 00 add [bx+si],al -31E4:AD4D 00 FC add ah,bh -31E4:AD4F 00 60 02 add [bx+si+2],ah -31E4:AD52 00 00 00 00 00 3F db 00h, 00h, 00h, 00h, 00h, 3Fh -31E4:AD58 C0 00 00 03 FF 40 db 0C0h, 00h, 00h, 03h,0FFh, 40h -31E4:AD5E 00 00 00 db 00h, 00h, 00h -31E4:AD61 3F db 3Fh -31E4:AD62 0007[FF] db 7 dup (0FFh) -31E4:AD69 0F FF FF FF FF 0F db 0Fh,0FFh,0FFh,0FFh,0FFh, 0Fh -31E4:AD6F FF FF FF FF 0F FF db 0FFh,0FFh,0FFh,0FFh, 0Fh,0FFh -31E4:AD75 FF FF FF 0F FF FF db 0FFh,0FFh,0FFh, 0Fh,0FFh,0FFh -31E4:AD7B FF FF 0F FF FF FF db 0FFh,0FFh, 0Fh,0FFh,0FFh,0FFh -31E4:AD81 FF 0F F0 00 00 00 db 0FFh, 0Fh,0F0h, 00h, 00h, 00h -31E4:AD87 00 08 00 00 00 00 db 00h, 08h, 00h, 00h, 00h, 00h -31E4:AD8D 08 00 FF FF FF F0 db 08h, 00h,0FFh,0FFh,0FFh,0F0h -31E4:AD93 00 FF FF FF F0 00 db 00h,0FFh,0FFh,0FFh,0F0h, 00h -31E4:AD99 FF FF FF F0 00 FF db 0FFh,0FFh,0FFh,0F0h, 00h,0FFh -31E4:AD9F FF FF F0 00 FF FF db 0FFh,0FFh,0F0h, 00h,0FFh,0FFh -31E4:ADA5 FF F0 00 FF FF FF db 0FFh,0F0h, 00h,0FFh,0FFh,0FFh -31E4:ADAB F0 00 FF FF FF F0 db 0F0h, 00h,0FFh,0FFh,0FFh,0F0h -31E4:ADB1 00 FF FF FF F0 00 db 00h,0FFh,0FFh,0FFh,0F0h, 00h -31E4:ADB7 00 00 1F F0 00 00 db 00h, 00h, 1Fh,0F0h, 00h, 00h -31E4:ADBD 00 1F F0 00 30 06 db 00h, 1Fh,0F0h, 00h, 30h, 06h -31E4:ADC3 00 08 00 00 00 00 db 00h, 08h, 00h, 00h, 00h, 00h -31E4:ADC9 07 FF 20 02 00 00 db 07h,0FFh, 20h, 02h, 00h, 00h -31E4:ADCF 00 FF FC 00 00 3F db 00h,0FFh,0FCh, 00h, 00h, 3Fh -31E4:ADD5 FF FE 08 00 1F db 0FFh,0FEh, 08h, 00h, 1Fh -31E4:ADDA 004E[00] db 78 dup (0) -31E4:AE28 0F FF 00 00 00 0F db 0Fh,0FFh, 00h, 00h, 00h, 0Fh -31E4:AE2E FF 00 00 00 0F FF db 0FFh, 00h, 00h, 00h, 0Fh,0FFh -31E4:AE34 00 00 00 0F FF 00 db 00h, 00h, 00h, 0Fh,0FFh, 00h -31E4:AE3A 00 00 0F FF 00 00 db 00h, 00h, 0Fh,0FFh, 00h, 00h -31E4:AE40 00 0F FF 00 00 00 db 00h, 0Fh,0FFh, 00h, 00h, 00h -31E4:AE46 0F C0 00 00 00 0F db 0Fh,0C0h, 00h, 00h, 00h, 0Fh -31E4:AE4C C0 00 00 00 0F FF db 0C0h, 00h, 00h, 00h, 0Fh,0FFh -31E4:AE52 00 db 00h -31E4:AE53 0028[00] db 40 dup (0) -31E4:AE7B 20 04 00 00 01 11 db 20h, 04h, 00h, 00h, 01h, 11h -31E4:AE81 00 81 00 8A 08 13 db 00h, 81h, 00h, 8Ah, 08h, 13h -31E4:AE87 64 A3 28 47 19 52 db 64h,0A3h, 28h, 47h, 19h, 52h -31E4:AE8D 2B 96 A8 78 48 85 db 2Bh, 96h,0A8h, 78h, 48h, 85h -31E4:AE93 06 B5 0A D6 A1 00 db 06h,0B5h, 0Ah,0D6h,0A1h, 00h -31E4:AE99 7F FF E5 16 FF 80 db 7Fh,0FFh,0E5h, 16h,0FFh, 80h -31E4:AE9F 00 1F 00 00 00 07 db 00h, 1Fh, 00h, 00h, 00h, 07h -31E4:AEA5 FC 90 FE 00 06 02 db 0FCh, 90h,0FEh, 00h, 06h, 02h -31E4:AEAB 6A 02 00 07 01 62 db 6Ah, 02h, 00h, 07h, 01h, 62h -31E4:AEB1 07 80 07 0F CC 09 db 07h, 80h, 07h, 0Fh,0CCh, 09h -31E4:AEB7 00 3F F0 24 12 00 db 00h, 3Fh,0F0h, 24h, 12h, 00h -31E4:AEBD 00 00 10 3E 00 00 db 00h, 00h, 10h, 3Eh, 00h, 00h -31E4:AEC3 00 08 1F FF FF FF db 00h, 08h, 1Fh,0FFh,0FFh,0FFh -31E4:AEC9 F8 db 0F8h -31E4:AECA 0038[00] db 56 dup (0) -31E4:AF02 01 54 00 03 65 A6 db 01h, 54h, 00h, 03h, 65h,0A6h -31E4:AF08 00 90 BC 34 AA 2A db 00h, 90h,0BCh, 34h,0AAh, 2Ah -31E4:AF0E 5A 9B AA 94 91 52 db 5Ah, 9Bh,0AAh, 94h, 91h, 52h -31E4:AF14 85 94 A9 9C A2 66 db 85h, 94h,0A9h, 9Ch,0A2h, 66h -31E4:AF1A F5 67 21 48 A6 E6 db 0F5h, 67h, 21h, 48h,0A6h,0E6h -31E4:AF20 D4 A9 72 EF DB A6 db 0D4h,0A9h, 72h,0EFh,0DBh,0A6h -31E4:AF26 59 17 37 57 DA F7 db 59h, 17h, 37h, 57h,0DAh,0F7h -31E4:AF2C FB 7F FF FF FF FF db 0FBh, 7Fh,0FFh,0FFh,0FFh,0FFh -31E4:AF32 FF 00 db 0FFh, 00h -31E4:AF34 0009[00] db 9 dup (0) -31E4:AF3D FF FF FF FF FF db 0FFh,0FFh,0FFh,0FFh,0FFh - -31E4:AF42 0168[00] talk_string_buffer db 360 dup (0) -31E4:B0AA 0000 game_time_ctr dw 0 -31E4:B0AC 0000 game_time_ctr_2 dw 0 - -31E4:B0AE 00A0[00] character_pause_list db 160 dup (0) - -; Animation table - this contains the list of active hotspots - -31E4:B14E 0011[00] animation_table db 17 dup (0) -31E4:B15F 0000 slot0_tick_proc dw 0 ; Tick handler -31E4:B161 0011[00] db 17 dup (0) -31E4:B172 0000 data_1116 dw 0 ; Offset 24h in slot - dw 0 -31E4:B176 00 slot0_col_offset db 0 -31E4:B177 070C[00] db 1804 dup (0) ; Remaining slots - - -31E4:B883 00 animation_block_list db 0 -31E4:B884 0027[00] db 39 dup (0) - -31E4:B8AB 0000 seq_timer_ctr dw 0 ; xref 273F:485A, 273F:495D -31E4:B8AD 0000 seq_timer_ctr_2 dw 0 ; xref 273F:485E, 273F:4962 - -31E4:B8AF 0118[00] sequence_delay_table db 280 dup (0) - -31E4:B9C7 0032[00] data_1121 db 50 dup (0) ; xref 273F:A066, 273F:A0BD - -31E4:B9F9 0000 talk_speech_ptr dw 0 -31E4:B9FB 0000 data_b9fb dw 0 -31E4:B9FD 0000 data_1122 dw 0 -31E4:B9FF 0000 talk_buffer_segment dw 0 -31E4:BA01 0000 talk_buffer_offset dw 0 -31E4:BA03 0000 talk_buffer_offset_2 dw 0 -31E4:BA05 00 db 0 -31E4:BA06 00 data_ba06 db 0 -31E4:BA07 0000 talk_string_offset dw 0 -31E4:BA09 000C[00] db 12 dup (0) - -; All variables below are placed together to be accessible from the sequence -; executor GET_FIELD and SET_FIELD opcodes - -31E4:BA15 0000 room_number_2 dw 0 -31E4:BA17 0000 character_hotspot dw 0 -31E4:BA19 0000 use_hotspot_id dw 0 -31E4:BA1B 0000 active_hotspot_id dw 0 -31E4:BA1D 0000 sequence_result dw 0 -31E4:BA1F 0000 general_val dw 0 -31E4:BA21 0000 script_v6 dw 0 -31E4:BA23 0000 new_room_number dw 0 -31E4:BA25 0000 old_room_number dw 0 -31E4:BA27 0000 cell_door_state dw 0 -31E4:BA29 0000 torch_hide dw 0 ; #10 -31E4:BA2B 0000 script_v11 dw 0 -31E4:BA2D 0000 dw 0 -31E4:BA2F 0000 dw 0 -31E4:BA31 0000 dw 0 -31E4:BA33 0000 prisoner_dead dw 0 -31E4:BA35 0000 dw 0 -31E4:BA37 0000 dw 0 -31E4:BA39 0000 bottle_filled dw 0 -31E4:BA3B 0000 talk_record_index dw 0 ; xref 273F:2035, 273F:5C96 -31E4:BA3D 0000 sack_cut dw 0 ; #20 -31E4:BA3F 0000 dw 0 -31E4:BA41 0000 dw 0 -31E4:BA43 0000 dw 0 -31E4:BA45 0000 dw 0 -31E4:BA47 0000 dw 0 -31E4:BA49 0000 dw 0 -31E4:BA4B 0000 dw 0 -31E4:BA4D 0000 dw 0 -31E4:BA4F 0000 script_val_29 dw 0 -31E4:BA51 0000 dw 0 ; #30 -31E4:BA53 0000 dw 0 -31E4:BA55 0000 dw 0 -31E4:BA57 0000 dw 0 -31E4:BA59 0000 dw 0 -31E4:BA5B 0000 dw 0 -31E4:BA5D 0000 dw 0 -31E4:BA5F 0000 script_val_37 dw 0 -31E4:BA61 0000 dw 0 -31E4:BA63 0000 dw 0 -31E4:BA65 0000 dw 0 ; #40 -31E4:BA67 0000 dw 0 -31E4:BA69 0000 dw 0 -31E4:BA6B 0000 dw 0 -31E4:BA6D 0000 dw 0 -31E4:BA6F 0000 dw 0 -31E4:BA71 0000 dw 0 -31E4:BA73 0000 dw 0 -31E4:BA75 0000 dw 0 ; #50 -31E4:BA77 0000 dw 0 -31E4:BA79 0000 dw 0 -31E4:BA7B 0000 dw 0 -31E4:BA7D 0000 dw 0 -31E4:BA7F 0000 dw 0 -31E4:BA81 0000 dw 0 -31E4:BA83 0000 dw 0 -31E4:BA85 0000 dw 0 ; #60 -31E4:BA87 0000 dw 0 -31E4:BA89 0000 dw 0 -31E4:BA8B 0000 dw 0 -31E4:BA8D 0000 dw 0 -31E4:BA8F 0000 dw 0 -31E4:BA91 0000 dw 0 -31E4:BA93 0000 dw 0 -31E4:BA95 0000 dw 0 ; #70 -31E4:BA97 0000 dw 0 -31E4:BA99 0000 dw 0 -31E4:BA9B 0000 script_val_73 db 0 -31E4:BA9D 0000 dw 0 -31E4:BA9F 0000 dw 0 -31E4:BAA1 0000 dw 0 -31E4:BAA3 0000 dw 0 -31E4:BAA5 0000 dw 0 -31E4:BAA7 0000 dw 0 -31E4:BAA9 0000 script_val_80 dw 0 ; #80 -31E4:BAAB 0000 dw 0 -31E4:BAAD 0000 room_exit_animation_flag dw 0 -31E4:BAAF 0000 dw 0 -31E4:BAB1 0000 dw 0 -31E4:BAB3 0000 dw 0 -31E4:BAB5 0000 dw 0 -31E4:BAB7 0000 script_val_87 dw 0 -31E4:BAB9 0000 script_val_88 dw 0 -31E4:BABB 0000 dw 0 -31E4:BABD 0000 dw 0 - -31E4:BABF 0CC6 sequence_method_list dw offset animation_load_entry - dw offset sequence_set_hotspot_script - dw offset sub_247 - dw offset seq_method_3 - dw offset sequence_delay_list_init - dw offset seq_deactivate_hotspot_set - dw offset seq_deactivate_hotspot - dw offset seq_pathfind_reset -31E4:BACF dw offset add_sequence_delay - dw offset sub_252 - dw offset seq_character_in_room ; #10 - dw offset seq_set_desc - dw offset seq_set_hotspot_name - dw offset play_sound - dw offset seq_endgame_sequence - dw offset sub_238 -31E4:BADF dw offset display_dialog - dw offset seq_method_17 - dw offset seq_room_remote_view_setup - dw offset start_talk_noone - dw offset seq_check_cell_door_2 ; #20 - dw offset play_music - dw offset seq_get_door_blocked - dw offset seq_is_skorl_in_cell -31E4:BAEF dw 8022h - dw offset sub_92 - dw 7eeeh - dw offset seq_set_blocking_hotspot_script - dw offset seq_decrease_inventory_items - dw offset talk_setup - dw offset seq_set_action_ctr ; #30 - dw offset seq_converse -31E4:BAFF dw offset seq_disable_hotspot - dw offset seq_cut_sack - dw offset seq_increase_groats - dw offset seq_enable_hotspot - dw offset display_message_dialog_4 - dw offset seq_method_37 - dw offset seq_transform_player - dw offset seq_room_14_door_close -31E4:BB0F dw offset seq_check_dropped_desc ; #40 - dw 8782h - dw offset seq_door_close - dw offset seq_method_43 - dw offset seq_door_open - dw offset seq_method_45 - dw 2035h - dw offset display_message_dialog -31E4:BB1F dw offset seq_set_new_dispatch_action - dw offset seq_set_support_offset - dw offset seq_add_item_to_inventory ; #50 - dw offset seq_decrase_groats - dw 8630h - dw offset seq_method_53 - dw offset set_village_skorl_tick_proc - dw offset seq_method_55 -31E4:BB2F dw offset seq_method_56 - dw offset get_num_groats - dw offset seq_method_58 - dw offset seq_method_59 - dw offset seq_method_60 ; #60 - dw offset seq_kill_player - dw offset animation_load - dw offset seq_add_actions -31E4:BB3F dw offset seq_random_to_general -31E4:BB41 dw offset seq_check_cell_door - dw offset seq_method_66 - -31E4:BB45 0000 current_action_num dw 0 -31E4:BB47 0012[00] db 18 dup (0) -31E4:BB59 20 04 A0 4F B4 4F db 20h, 04h,0A0h, 4Fh,0B4h, 4Fh -31E4:BB5F 0D 00 00 db 0Dh, 00h, 00h -31E4:BB62 0011[00] db 17 dup (0) -31E4:BB73 29 04 C2 4F D0 4F db 29h, 04h,0C2h, 4Fh,0D0h, 4Fh -31E4:BB79 0E db 0Eh -31E4:BB7A 0013[00] db 19 dup (0) -31E4:BB8D 36 04 DD 4F DD 4F db 36h, 04h,0DDh, 4Fh,0DDh, 4Fh -31E4:BB93 10 00 db 10h, 00h - -; Following is a support data offset set indexed both by the script index list, -; as well as directly by the program code - -31E4:BB95 06 00 00 00 support_data_rec_bb95 db 06h, 00h, 00h, 00h -31E4:BB99 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BB9F 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBA5 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBAB 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBB1 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBB7 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBBD 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBC3 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBC9 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBCF 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBD5 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBDB 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBE1 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBE7 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBED 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBF3 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBF9 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -31E4:BBFF 00 db 00h -31E4:BC00 00 data_1143 db 0 -31E4:BC01 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC07 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC0D 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC13 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC19 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC1F 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC25 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC2B 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC31 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC37 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC3D 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC43 06 00 00 00 00 00 db 06h, 00h, 00h, 00h, 00h, 00h -31E4:BC49 00 00 num_groats dw 0 - - hotspot_walkto_list -31E4:BC4B 0418 0143 8123 dw 418h, 143h, 8123h -31E4:BC51 2721 0144 80FB -31E4:BC57 2722 0095 8105 -31E4:BC5D 271F 00AC 80EB -31E4:BC63 2720 00AE 813A -31E4:BC69 271E 00ED 810C -31E4:BC6F 753C 016D 010E -31E4:BC75 0421 0112 0112 -31E4:BC7B 0422 00F0 010A -31E4:BC81 753B 012A 811B -31E4:BC87 041F 00E6 0131 -31E4:BC8D 2716 009C 813A -31E4:BC93 2711 00E5 0125 -31E4:BC99 2712 00E4 00FA -...more... - -31E4:BC9E 5E 75 add [bp+75h],bl -31E4:BCA1 59 pop cx -31E4:BCA2 01 31 add [bx+di],si -31E4:BCA4 loc_2354: ; xref 31E4:BCE8 -31E4:BCA4 01 0F add [bx],cx -31E4:BCA6 04 42 add al,42h ; 'B' -31E4:BCA8 01 25 add [di],sp -31E4:BCAA 01 10 add [bx+si],dx -31E4:BCAC 04 EF add al,0EFh -31E4:BCAE 00 1C add [si],bl -31E4:BCB0 81 35 EF75 xor word ptr [di],0EF75h -31E4:BCB4 00 1A add [bp+si],bl -31E4:BCB6 01 14 add [si],dx -31E4:BCB8 27 daa ; Decimal adjust -31E4:BCB9 82 01 04 add byte ptr [bx+di],4 -31E4:BCBC 01 1B add [bp+di],bx -31E4:BCBE 04 1A add al,1Ah -31E4:BCC0 01 1A add [bp+si],bx -31E4:BCC2 01 4A 75 add [bp+si+75h],cx -31E4:BCC5 35 FC01 xor ax,0FC01h -31E4:BCC8 00 4C 75 add [si+75h],cl -31E4:BCCB D4 00 ;* aam 0 ; undocumented inst -31E4:BCCB D4 00 db 0D4h, 00h -31E4:BCCD 03 81 03E6 add ax,data_541[bx+di] ; (31E4:03E6=0) -31E4:BCD1 FC cld ; Clear direction -31E4:BCD2 00 29 add [bx+di],ch -31E4:BCD4 01 E7 add di,sp -31E4:BCD6 03 CE add cx,si -31E4:BCD8 00 22 add [bp+si],ah -31E4:BCDA 01 30 add [bx+si],si -31E4:BCDC 75 E1 ;* jnz loc_2356 ;*Jump if not zero -31E4:BCDC 75 E1 db 75h,0E1h -31E4:BCDE 00 12 add [bp+si],dl -31E4:BCE0 01 31 add [bx+di],si -31E4:BCE2 75 BA jnz loc_2353 ; Jump if not zero -31E4:BCE4 00 1B add [bp+di],bl -31E4:BCE6 01 32 add [bp+si],si -31E4:BCE8 75 BA jnz loc_2354 ; Jump if not zero -31E4:BCEA 00 1B add [bp+di],bl -31E4:BCEC 01 0D add [di],cx -31E4:BCEE 04 67 add al,67h ; 'g' -31E4:BCF0 01 14 add [si],dx -31E4:BCF2 01 33 add [bp+di],si -31E4:BCF4 75 12 jnz loc_2357 ; Jump if not zero -31E4:BCF6 01 11 add [bx+di],dx -31E4:BCF8 01 34 add [si],si -31E4:BCFA 75 1E jnz loc_2358 ; Jump if not zero -31E4:BCFC 01 14 add [si],dx -31E4:BCFE 01 36 7775 add data_936,si ; (31E4:7775=0Bh) -31E4:BD02 01 1D add [di],bx -31E4:BD04 01 37 add [bx],si -31E4:BD06 75 A9 ;* jnz loc_2355 ;*Jump if not zero -31E4:BD06 75 A9 db 75h,0A9h -31E4:BD08 loc_2357: ; xref 31E4:BCF4 -31E4:BD08 00 1C add [si],bl -31E4:BD0A 01 38 add [bx+si],di -31E4:BD0C 75 43 ;* jnz loc_2359 ;*Jump if not zero -31E4:BD0C 75 43 db 75h, 43h -31E4:BD0E 01 2B add [bp+di],bp -31E4:BD10 01 39 add [bx+di],di -31E4:BD12 75 31 jnz $+33h ; Jump if not zero -31E4:BD14 01 1B add [bp+di],bx -31E4:BD16 01 3A add [bp+si],di -31E4:BD18 75 7B ;* jnz loc_2361 ;*Jump if not zero -31E4:BD18 75 7B db 75h, 7Bh -31E4:BD1A loc_2358: ; xref 31E4:BCFA -31E4:BD1A 01 25 add [di],sp -31E4:BD1C 01 18 add [bx+si],bx -31E4:BD1E 27 daa ; Decimal adjust -31E4:BD1F C4 00 les ax,dword ptr [bx+si] ; Load seg:offset ptr -31E4:BD21 23 81 2717 and ax,data_756[bx+di] ; (31E4:2717=0) -31E4:BD25 72 01 jc $+3 ; Jump if carry Set -31E4:BD27 0E push cs -31E4:BD28 01 1A add [bp+si],bx -31E4:BD2A 27 daa ; Decimal adjust -31E4:BD2B 64 01 2E 81 24 04 db 64h, 01h, 2Eh, 81h, 24h, 04h -31E4:BD31 0D 01 1C 01 3D 75 db 0Dh, 01h, 1Ch, 01h, 3Dh, 75h -31E4:BD37 2E 01 1C 01 5F 75 db 2Eh, 01h, 1Ch, 01h, 5Fh, 75h -31E4:BD3D 1E 01 1C 01 3E 75 db 1Eh, 01h, 1Ch, 01h, 3Eh, 75h -31E4:BD43 55 01 15 01 3F 75 db 55h, 01h, 15h, 01h, 3Fh, 75h -31E4:BD49 8F 01 15 01 40 75 db 8Fh, 01h, 15h, 01h, 40h, 75h -31E4:BD4F CC 00 db 0CCh, 00h -31E4:BD51 loc_2359: ; xref 31E4:BD0C -31E4:BD51 19 01 sbb [bx+di],ax -31E4:BD53 41 inc cx -31E4:BD54 loc_2360: ; xref 31E4:BD7E -31E4:BD54 75 63 jnz $+65h ; Jump if not zero -31E4:BD56 01 1E 4201 add word ptr ds:[4201h],bx ; (31E4:4201=0) -31E4:BD5A 75 83 jnz $-7Bh ; Jump if not zero -31E4:BD5C 01 FC add sp,di -31E4:BD5E 00 43 75 add [bp+di+75h],al -31E4:BD61 12 01 adc al,[bx+di] -31E4:BD63 38 01 cmp [bx+di],al -31E4:BD65 44 inc sp -31E4:BD66 75 4D jnz $+4Fh ; Jump if not zero -31E4:BD68 01 1E 4501 add word ptr ds:[4501h],bx ; (31E4:4501=0) -31E4:BD6C 75 FB jnz $-3 ; Jump if not zero -31E4:BD6E 00 14 add [si],dl - - ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - ; SUBROUTINE - ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -31E4:BD70 sub_276 proc near -31E4:BD70 01 46 75 add [bp+75h],ax -31E4:BD73 31 01 xor [bx+di],ax -31E4:BD75 13 01 adc ax,[bx+di] -31E4:BD77 17 pop ss -31E4:BD78 04 18 add al,18h -31E4:BD7A 01 06 4701 add ds:data_45e,ax ; (0000:4701=800Fh) -31E4:BD7E 75 D4 jnz loc_2360 ; Jump if not zero -31E4:BD80 00 F3 add bl,dh -31E4:BD82 00 48 75 add [bx+si+75h],cl -31E4:BD85 AC lodsb ; String [si] to al -31E4:BD86 00 13 add [bp+di],dl -31E4:BD88 01 2A add [bp+si],bp -31E4:BD8A 04 72 add al,72h ; 'r' -31E4:BD8C 01 06 2B01 add ds:data_38e,ax ; (0000:2B01=663Eh) -31E4:BD90 04 D4 add al,0D4h -31E4:BD92 00 1C add [si],bl -31E4:BD94 81 49 75 00C8 or word ptr [bx+di+75h],0C8h -31E4:BD99 2B 01 sub ax,[bx+di] -31E4:BD9B FF FF 33 01 0A 01 db 0FFh,0FFh, 33h, 01h, 0Ah, 01h -31E4:BDA1 2C 04 40 01 22 01 db 2Ch, 04h, 40h, 01h, 22h, 01h -31E4:BDA7 2D 04 C6 00 29 01 db 2Dh, 04h,0C6h, 00h, 29h, 01h -31E4:BDAD 4B 75 1C 01 20 01 db 4Bh, 75h, 1Ch, 01h, 20h, 01h -31E4:BDB3 25 27 01 01 15 81 db 25h, 27h, 01h, 01h, 15h, 81h -31E4:BDB9 26 27 C5 00 1C 81 db 26h, 27h,0C5h, 00h, 1Ch, 81h -31E4:BDBF 29 27 42 01 36 81 db 29h, 27h, 42h, 01h, 36h, 81h -31E4:BDC5 2A 27 BF 00 0C 81 db 2Ah, 27h,0BFh, 00h, 0Ch, 81h -31E4:BDCB 2B 27 67 01 0C 81 db 2Bh, 27h, 67h, 01h, 0Ch, 81h -31E4:BDD1 2C 27 BF 00 0C 81 db 2Ch, 27h,0BFh, 00h, 0Ch, 81h -31E4:BDD7 2D 27 67 01 0C 81 db 2Dh, 27h, 67h, 01h, 0Ch, 81h -31E4:BDDD 2E 27 BF 00 0C 81 db 2Eh, 27h,0BFh, 00h, 0Ch, 81h -31E4:BDE3 1C 27 2C 01 34 01 db 1Ch, 27h, 2Ch, 01h, 34h, 01h -31E4:BDE9 2F 27 67 01 0C 81 db 2Fh, 27h, 67h, 01h, 0Ch, 81h -31E4:BDEF 2E 04 49 01 F1 00 db 2Eh, 04h, 49h, 01h,0F1h, 00h -31E4:BDF5 2F 04 E3 00 F1 00 db 2Fh, 04h,0E3h, 00h,0F1h, 00h -31E4:BDFB 30 04 3A 01 F1 00 db 30h, 04h, 3Ah, 01h,0F1h, 00h -31E4:BE01 31 04 E3 00 F1 00 db 31h, 04h,0E3h, 00h,0F1h, 00h -31E4:BE07 32 04 49 01 F1 00 db 32h, 04h, 49h, 01h,0F1h, 00h -31E4:BE0D 33 04 E3 00 F1 00 db 33h, 04h,0E3h, 00h,0F1h, 00h -31E4:BE13 34 04 0E 01 16 01 db 34h, 04h, 0Eh, 01h, 16h, 01h -31E4:BE19 37 04 7A 01 30 01 db 37h, 04h, 7Ah, 01h, 30h, 01h -31E4:BE1F 4D 75 99 00 30 01 db 4Dh, 75h, 99h, 00h, 30h, 01h -31E4:BE25 4E 75 99 00 30 01 db 4Eh, 75h, 99h, 00h, 30h, 01h -31E4:BE2B 4F 75 A9 00 28 01 db 4Fh, 75h,0A9h, 00h, 28h, 01h -31E4:BE31 50 75 A9 00 28 01 db 50h, 75h,0A9h, 00h, 28h, 01h -31E4:BE37 51 75 C4 00 11 01 db 51h, 75h,0C4h, 00h, 11h, 01h -31E4:BE3D 52 75 C4 00 11 01 db 52h, 75h,0C4h, 00h, 11h, 01h -31E4:BE43 53 75 C4 00 11 01 db 53h, 75h,0C4h, 00h, 11h, 01h -31E4:BE49 54 75 55 01 0C 01 db 54h, 75h, 55h, 01h, 0Ch, 01h -31E4:BE4F 55 75 55 01 0C 01 db 55h, 75h, 55h, 01h, 0Ch, 01h -31E4:BE55 56 75 55 01 0C 01 db 56h, 75h, 55h, 01h, 0Ch, 01h -31E4:BE5B 38 04 AE 00 28 01 db 38h, 04h,0AEh, 00h, 28h, 01h -31E4:BE61 3A 04 22 01 02 01 db 3Ah, 04h, 22h, 01h, 02h, 01h -31E4:BE67 3D 04 0D 01 20 81 db 3Dh, 04h, 0Dh, 01h, 20h, 81h -31E4:BE6D 12 04 AD 00 0D 81 db 12h, 04h,0ADh, 00h, 0Dh, 81h -31E4:BE73 0C 04 AD 00 0D 81 db 0Ch, 04h,0ADh, 00h, 0Dh, 81h -31E4:BE79 32 27 A9 00 19 01 db 32h, 27h,0A9h, 00h, 19h, 01h -31E4:BE7F 58 75 8C 00 1F 01 db 58h, 75h, 8Ch, 00h, 1Fh, 01h -31E4:BE85 59 75 DF 00 14 01 db 59h, 75h,0DFh, 00h, 14h, 01h -31E4:BE8B 5A 75 BA 00 26 01 db 5Ah, 75h,0BAh, 00h, 26h, 01h -31E4:BE91 5B 75 64 01 2A 01 db 5Bh, 75h, 64h, 01h, 2Ah, 01h -31E4:BE97 5C 75 6B 01 FC 00 db 5Ch, 75h, 6Bh, 01h,0FCh, 00h -31E4:BE9D 5D 75 6B 01 FC 00 db 5Dh, 75h, 6Bh, 01h,0FCh, 00h -31E4:BEA3 42 04 59 01 32 01 db 42h, 04h, 59h, 01h, 32h, 01h -31E4:BEA9 60 75 17 01 0A 01 db 60h, 75h, 17h, 01h, 0Ah, 01h -31E4:BEAF 61 75 C5 00 1A 01 db 61h, 75h,0C5h, 00h, 1Ah, 01h -31E4:BEB5 62 75 3F 01 19 01 db 62h, 75h, 3Fh, 01h, 19h, 01h -31E4:BEBB 63 75 29 01 15 01 db 63h, 75h, 29h, 01h, 15h, 01h -31E4:BEC1 64 75 29 01 15 01 db 64h, 75h, 29h, 01h, 15h, 01h -31E4:BEC7 65 75 C5 00 1A 01 db 65h, 75h,0C5h, 00h, 1Ah, 01h -31E4:BECD 66 75 E1 00 0B 01 db 66h, 75h,0E1h, 00h, 0Bh, 01h -31E4:BED3 35 27 E1 00 0B 01 db 35h, 27h,0E1h, 00h, 0Bh, 01h -31E4:BED9 36 27 0A 01 0C 01 db 36h, 27h, 0Ah, 01h, 0Ch, 01h -31E4:BEDF 67 75 7A 01 0B 01 db 67h, 75h, 7Ah, 01h, 0Bh, 01h -31E4:BEE5 68 75 51 01 0B 01 db 68h, 75h, 51h, 01h, 0Bh, 01h -31E4:BEEB 69 75 3B 01 0B 01 db 69h, 75h, 3Bh, 01h, 0Bh, 01h -31E4:BEF1 6A 75 4B 01 14 01 db 6Ah, 75h, 4Bh, 01h, 14h, 01h -31E4:BEF7 6B 75 60 01 14 01 db 6Bh, 75h, 60h, 01h, 14h, 01h -31E4:BEFD 6C 75 69 01 14 01 db 6Ch, 75h, 69h, 01h, 14h, 01h -31E4:BF03 6D 75 4C 01 0B 01 db 6Dh, 75h, 4Ch, 01h, 0Bh, 01h -31E4:BF09 13 27 BA 00 1A 01 db 13h, 27h,0BAh, 00h, 1Ah, 01h -31E4:BF0F E5 03 29 01 12 81 db 0E5h, 03h, 29h, 01h, 12h, 81h -31E4:BF15 6E 75 6A 01 C3 00 db 6Eh, 75h, 6Ah, 01h,0C3h, 00h -31E4:BF1B 63 04 64 01 24 01 db 63h, 04h, 64h, 01h, 24h, 01h -31E4:BF21 64 04 CF 00 23 01 db 64h, 04h,0CFh, 00h, 23h, 01h -31E4:BF27 57 75 51 01 12 01 db 57h, 75h, 51h, 01h, 12h, 01h -31E4:BF2D 6F 75 43 01 02 01 db 6Fh, 75h, 43h, 01h, 02h, 01h -31E4:BF33 15 27 4C 01 1F 01 db 15h, 27h, 4Ch, 01h, 1Fh, 01h -31E4:BF39 00 db 00h -31E4:BF3A 00 00 00 00 00 00 db 0, 0, 0, 0, 0, 0 - -31E4:BF40 0000 room_info_table dw 0 -31E4:BF42 0007[00] db 7 dup (0) - -31E4:BF49 0D C1 01 00 84 00 db 0Dh,0C1h, 01h, 00h, 84h, 00h -31E4:BF4F 00 00 01 3C C1 02 db 00h, 00h, 01h, 3Ch,0C1h, 02h -31E4:BF55 00 71 00 00 00 01 db 00h, 71h, 00h, 00h, 00h, 01h -31E4:BF5B 85 C1 03 00 DE 00 db 85h,0C1h, 03h, 00h,0DEh, 00h -31E4:BF61 00 00 01 C4 C1 04 db 00h, 00h, 01h,0C4h,0C1h, 04h -31E4:BF67 00 DF 00 00 00 01 db 00h,0DFh, 00h, 00h, 00h, 01h -31E4:BF6D FD C9 09 0C CA 0B db 0FDh,0C9h, 09h, 0Ch,0CAh, 0Bh -31E4:BF73 00 00 00 3C CA 09 db 00h, 00h, 00h, 3Ch,0CAh, 09h -31E4:BF79 0C CA 0B 00 00 00 db 0Ch,0CAh, 0Bh, 00h, 00h, 00h -31E4:BF7F FD C1 07 00 7D 08 db 0FDh,0C1h, 07h, 00h, 7Dh, 08h -31E4:BF85 00 00 02 2C C2 08 db 00h, 00h, 02h, 2Ch,0C2h, 08h -31E4:BF8B 00 7C 08 00 00 02 db 00h, 7Ch, 08h, 00h, 00h, 02h -31E4:BF91 6B C2 09 00 62 08 db 6Bh,0C2h, 09h, 00h, 62h, 08h -31E4:BF97 00 00 02 AA C2 0A db 00h, 00h, 02h,0AAh,0C2h, 0Ah -31E4:BF9D 00 63 08 00 00 02 db 00h, 63h, 08h, 00h, 00h, 02h -31E4:BFA3 09 C3 0B 00 7C 08 db 09h,0C3h, 0Bh, 00h, 7Ch, 08h -31E4:BFA9 00 00 02 48 C3 0C db 00h, 00h, 02h, 48h,0C3h, 0Ch -31E4:BFAF 00 64 08 00 00 02 db 00h, 64h, 08h, 00h, 00h, 02h -31E4:BFB5 97 C3 0D 00 72 08 db 97h,0C3h, 0Dh, 00h, 72h, 08h -31E4:BFBB 00 00 02 E6 C3 0E db 00h, 00h, 02h,0E6h,0C3h, 0Eh -31E4:BFC1 00 67 08 00 00 02 db 00h, 67h, 08h, 00h, 00h, 02h -31E4:BFC7 59 C4 0F 00 73 08 db 59h,0C4h, 0Fh, 00h, 73h, 08h -31E4:BFCD 00 00 02 00 db 00h, 00h, 02h, 00h -31E4:BFD1 0008[00] db 8 dup (0) -31E4:BFD9 A8 C4 11 00 6D 08 db 0A8h,0C4h, 11h, 00h, 6Dh, 08h -31E4:BFDF 00 00 02 17 C5 12 db 00h, 00h, 02h, 17h,0C5h, 12h -31E4:BFE5 00 74 0B 00 00 02 db 00h, 74h, 0Bh, 00h, 00h, 02h -31E4:BFEB 76 C5 13 00 6F 08 db 76h,0C5h, 13h, 00h, 6Fh, 08h -31E4:BFF1 00 00 02 F5 C5 14 db 00h, 00h, 02h,0F5h,0C5h, 14h -31E4:BFF7 00 84 08 00 00 02 db 00h, 84h, 08h, 00h, 00h, 02h -31E4:BFFD 54 C6 15 00 7C 08 db 54h,0C6h, 15h, 00h, 7Ch, 08h -31E4:C003 00 00 02 93 C6 16 db 00h, 00h, 02h, 93h,0C6h, 16h -31E4:C009 00 7C 08 00 00 02 db 00h, 7Ch, 08h, 00h, 00h, 02h -31E4:C00F D2 C6 17 00 7C 08 db 0D2h,0C6h, 17h, 00h, 7Ch, 08h -31E4:C015 00 00 02 11 C7 18 db 00h, 00h, 02h, 11h,0C7h, 18h -31E4:C01B 00 7C 08 00 00 02 db 00h, 7Ch, 08h, 00h, 00h, 02h -31E4:C021 50 C7 19 00 7C 08 db 50h,0C7h, 19h, 00h, 7Ch, 08h -31E4:C027 00 00 02 00 00 1A db 00h, 00h, 02h, 00h, 00h, 1Ah -31E4:C02D 00 7C 08 00 00 02 db 00h, 7Ch, 08h, 00h, 00h, 02h -31E4:C033 8F C7 1B 00 7C 08 db 8Fh,0C7h, 1Bh, 00h, 7Ch, 08h -31E4:C039 00 00 02 CE C7 1C db 00h, 00h, 02h,0CEh,0C7h, 1Ch -31E4:C03F 00 86 08 00 00 02 db 00h, 86h, 08h, 00h, 00h, 02h -31E4:C045 FD C7 1D 00 88 08 db 0FDh,0C7h, 1Dh, 00h, 88h, 08h -31E4:C04B 00 00 02 2C C8 1E db 00h, 00h, 02h, 2Ch,0C8h, 1Eh -31E4:C051 00 4D 08 00 00 02 db 00h, 4Dh, 08h, 00h, 00h, 02h -31E4:C057 5B C8 1F 00 70 08 db 5Bh,0C8h, 1Fh, 00h, 70h, 08h -31E4:C05D 00 00 02 B9 C8 20 db 00h, 00h, 02h,0B9h,0C8h, 20h -31E4:C063 00 8C 08 00 00 02 db 00h, 8Ch, 08h, 00h, 00h, 02h -31E4:C069 00 00 21 00 00 00 db 00h, 00h, 21h, 00h, 00h, 00h -31E4:C06F 00 00 02 E8 C8 22 db 00h, 00h, 02h,0E8h,0C8h, 22h -31E4:C075 00 CE 00 00 00 02 db 00h,0CEh, 00h, 00h, 00h, 02h -31E4:C07B 17 C9 23 00 9B 0C db 17h,0C9h, 23h, 00h, 9Bh, 0Ch -31E4:C081 00 00 02 8A C8 24 db 00h, 00h, 02h, 8Ah,0C8h, 24h -31E4:C087 00 EA 08 00 00 02 db 00h,0EAh, 08h, 00h, 00h, 02h -31E4:C08D 00 00 25 00 00 00 db 00h, 00h, 25h, 00h, 00h, 00h -31E4:C093 00 00 02 46 C9 26 db 00h, 00h, 02h, 46h,0C9h, 26h -31E4:C099 00 CA 0B 00 00 04 db 00h,0CAh, 0Bh, 00h, 00h, 04h -31E4:C09F 7F C9 27 00 CA 0B db 7Fh,0C9h, 27h, 00h,0CAh, 0Bh -31E4:C0A5 00 00 04 BE C9 28 db 00h, 00h, 04h,0BEh,0C9h, 28h -31E4:C0AB 00 CA 0B 00 00 04 db 00h,0CAh, 0Bh, 00h, 00h, 04h -31E4:C0B1 7B CA 29 00 F1 0A db 7Bh,0CAh, 29h, 00h,0F1h, 0Ah -31E4:C0B7 00 00 04 AA CA 2A db 00h, 00h, 04h,0AAh,0CAh, 2Ah -31E4:C0BD 00 A0 0F 00 00 08 db 00h,0A0h, 0Fh, 00h, 00h, 08h -31E4:C0C3 D9 CA 2B 00 A1 0F db 0D9h,0CAh, 2Bh, 00h,0A1h, 0Fh -31E4:C0C9 00 00 08 18 CB 2C db 00h, 00h, 08h, 18h,0CBh, 2Ch -31E4:C0CF 00 F3 0F 00 00 08 db 00h,0F3h, 0Fh, 00h, 00h, 08h -31E4:C0D5 67 CB 2D 00 A2 0F db 67h,0CBh, 2Dh, 00h,0A2h, 0Fh -31E4:C0DB 00 00 08 D0 CB 2E db 00h, 00h, 08h,0D0h,0CBh, 2Eh -31E4:C0E1 00 A2 0F 00 00 08 db 00h,0A2h, 0Fh, 00h, 00h, 08h -31E4:C0E7 29 CC 2F 00 18 10 db 29h,0CCh, 2Fh, 00h, 18h, 10h -31E4:C0ED 00 00 08 68 CC 30 db 00h, 00h, 08h, 68h,0CCh, 30h -31E4:C0F3 00 17 10 00 00 08 db 00h, 17h, 10h, 00h, 00h, 08h -31E4:C0F9 97 CC 2F 00 18 10 db 97h,0CCh, 2Fh, 00h, 18h, 10h -31E4:C0FF 00 00 08 C0 CC db 00h, 00h, 08h,0C0h,0CCh -31E4:C104 0007[00] db 7 dup (0) -31E4:C10B FF FF db 0FFh,0FFh - -; Start of room information data for initial cell room -31E4:C10D 0000 dw 0000h -31E4:C10F 8020 dw 8020h -31E4:C111 6D57 dw 6D57h -31E4:C113 1430 dw 1430h ; Offset for auto-load pixel blocks -31E4:C115 02 db 2 ; Default number of screns -31E4:C116 4100 dw 4100h ; Layer Id - Background -31E4:C118 4101 dw 4101h ; Layer Id - Front part of door -31E4:C11A 4102 dw 4102h ; Layer Id - cell window overlay - -31E4:C11C 00 db 00h -31E4:C11D 00 db 00h -31E4:C11E 3B db 3Bh -31E4:C11F 0007[00] db 7 dup (0) - -31E4:C126 00CD dw 0CDh ; X start -31E4:C128 0000 dw 0 ; X end -31E4:C12A 00A8 dw 0A8h -31E4:C12C D0 00 1F 01 26 01 db 0D0h, 00h, 1Fh, 01h, 26h, 01h -31E4:C132 FF FF 02 40 E4 00 db 0FFh,0FFh, 02h, 40h,0E4h, 00h -31E4:C138 00 01 FF FF 00 00 db 00h, 01h,0FFh,0FFh, 00h, 00h -31E4:C13E 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C144 02 01 42 02 42 00 db 02h, 01h, 42h, 02h, 42h, 00h -31E4:C14A 00 00 00 E8 2B 00 db 00h, 00h, 00h,0E8h, 2Bh, 00h -31E4:C150 0009[00] db 9 dup (0) -31E4:C159 E0 00 FC 00 EE 00 db 0E0h, 00h,0FCh, 00h,0EEh, 00h -31E4:C15F F8 00 FF FF 01 10 db 0F8h, 00h,0FFh,0FFh, 01h, 10h -31E4:C165 C6 00 28 01 3C 01 db 0C6h, 00h, 28h, 01h, 3Ch, 01h -31E4:C16B 6E 01 E8 00 FC 00 db 6Eh, 01h,0E8h, 00h,0FCh, 00h -31E4:C171 FF FF 03 10 90 00 db 0FFh,0FFh, 03h, 10h, 90h, 00h -31E4:C177 20 01 AA 01 B8 01 db 20h, 01h,0AAh, 01h,0B8h, 01h -31E4:C17D E6 00 18 01 55 05 db 0E6h, 00h, 18h, 01h, 55h, 05h -31E4:C183 FF FF 00 00 20 00 db 0FFh,0FFh, 00h, 00h, 20h, 00h -31E4:C189 57 6D 3C 14 02 01 db 57h, 6Dh, 3Ch, 14h, 02h, 01h -31E4:C18F 43 02 43 00 00 00 db 43h, 02h, 43h, 00h, 00h, 00h -31E4:C195 00 EC 2B 00 00 00 db 00h,0ECh, 2Bh, 00h, 00h, 00h -31E4:C19B 00 00 02 9F 00 81 db 00h, 00h, 02h, 9Fh, 00h, 81h -31E4:C1A1 01 8A 00 98 00 1A db 01h, 8Ah, 00h, 98h, 00h, 1Ah -31E4:C1A7 01 24 01 FF FF 02 db 01h, 24h, 01h,0FFh,0FFh, 02h -31E4:C1AD 40 44 01 00 01 A4 db 40h, 44h, 01h, 00h, 01h,0A4h -31E4:C1B3 01 C0 01 1A 01 24 db 01h,0C0h, 01h, 1Ah, 01h, 24h -31E4:C1B9 01 FF FF 04 80 4F db 01h,0FFh,0FFh, 04h, 80h, 4Fh -31E4:C1BF 01 3A 01 FF FF 00 db 01h, 3Ah, 01h,0FFh,0FFh, 00h -31E4:C1C5 00 20 00 57 6D 3C db 00h, 20h, 00h, 57h, 6Dh, 3Ch -31E4:C1CB 14 03 00 44 01 44 db 14h, 03h, 00h, 44h, 01h, 44h -31E4:C1D1 02 44 03 44 F3 2B db 02h, 44h, 03h, 44h,0F3h, 2Bh -31E4:C1D7 00 00 00 00 00 03 db 00h, 00h, 00h, 00h, 00h, 03h -31E4:C1DD 00 00 00 00 4C 01 db 00h, 00h, 00h, 00h, 4Ch, 01h -31E4:C1E3 6D 01 39 01 40 01 db 6Dh, 01h, 39h, 01h, 40h, 01h -31E4:C1E9 FF FF 03 20 80 01 db 0FFh,0FFh, 03h, 20h, 80h, 01h -31E4:C1EF 20 01 50 01 69 01 db 20h, 01h, 50h, 01h, 69h, 01h -31E4:C1F5 21 01 30 01 C6 05 db 21h, 01h, 30h, 01h,0C6h, 05h -31E4:C1FB FF FF 00 00 20 00 db 0FFh,0FFh, 00h, 00h, 20h, 00h -31E4:C201 57 6D 3C 14 02 00 db 57h, 6Dh, 3Ch, 14h, 02h, 00h -31E4:C207 87 01 87 00 00 00 db 87h, 01h, 87h, 00h, 00h, 00h -31E4:C20D 00 83 00 FF FF 0F db 00h, 83h, 00h,0FFh,0FFh, 0Fh -31E4:C213 00 01 04 DE 00 00 db 00h, 01h, 04h,0DEh, 00h, 00h -31E4:C219 00 A5 00 D5 00 EF db 00h,0A5h, 00h,0D5h, 00h,0EFh -31E4:C21F 00 2C 01 FF FF 08 db 00h, 2Ch, 01h,0FFh,0FFh, 08h -31E4:C225 80 10 01 40 01 FF db 80h, 10h, 01h, 40h, 01h,0FFh -31E4:C22B FF 00 00 00 20 57 db 0FFh, 00h, 00h, 00h, 20h, 57h -31E4:C231 6D 3C 14 01 00 88 db 6Dh, 3Ch, 14h, 01h, 00h, 88h -31E4:C237 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:C23D FA 2B 00 00 00 00 db 0FAh, 2Bh, 00h, 00h, 00h, 00h -31E4:C243 01 05 00 00 00 00 db 01h, 05h, 00h, 00h, 00h, 00h -31E4:C249 C7 00 6F 01 3F 01 db 0C7h, 00h, 6Fh, 01h, 3Fh, 01h -31E4:C24F 47 01 FF FF 07 10 db 47h, 01h,0FFh,0FFh, 07h, 10h -31E4:C255 D1 00 11 01 ED 00 db 0D1h, 00h, 11h, 01h,0EDh, 00h -31E4:C25B 12 01 FA 00 09 01 db 12h, 01h,0FAh, 00h, 09h, 01h -31E4:C261 FF FF 09 00 50 01 db 0FFh,0FFh, 09h, 00h, 50h, 01h -31E4:C267 40 01 FF FF 00 00 db 40h, 01h,0FFh,0FFh, 00h, 00h -31E4:C26D 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C273 02 00 89 01 89 00 db 02h, 00h, 89h, 01h, 89h, 00h -31E4:C279 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:C27F 00 00 00 01 06 00 db 00h, 00h, 00h, 01h, 06h, 00h -31E4:C285 00 00 00 DD 00 8D db 00h, 00h, 00h,0DDh, 00h, 8Dh -31E4:C28B 01 40 01 90 01 FF db 01h, 40h, 01h, 90h, 01h,0FFh -31E4:C291 FF 08 40 F2 00 16 db 0FFh, 08h, 40h,0F2h, 00h, 16h -31E4:C297 01 81 00 B2 00 E6 db 01h, 81h, 00h,0B2h, 00h,0E6h -31E4:C29D 00 29 01 FF FF 0A db 00h, 29h, 01h,0FFh,0FFh, 0Ah -31E4:C2A3 20 A4 01 10 01 FF db 20h,0A4h, 01h, 10h, 01h,0FFh -31E4:C2A9 FF 00 00 20 00 57 db 0FFh, 00h, 00h, 20h, 00h, 57h -31E4:C2AF 6D 3C 14 02 00 8A db 6Dh, 3Ch, 14h, 02h, 00h, 8Ah -31E4:C2B5 01 8A 00 00 00 00 db 01h, 8Ah, 00h, 00h, 00h, 00h -31E4:C2BB FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:C2C1 01 07 00 00 B5 01 db 01h, 07h, 00h, 00h,0B5h, 01h -31E4:C2C7 C0 01 00 02 01 01 db 0C0h, 01h, 00h, 02h, 01h, 01h -31E4:C2CD 16 01 FF FF 09 00 db 16h, 01h,0FFh,0FFh, 09h, 00h -31E4:C2D3 A9 00 21 01 AC 00 db 0A9h, 00h, 21h, 01h,0ACh, 00h -31E4:C2D9 DB 00 44 01 4A 01 db 0DBh, 00h, 44h, 01h, 4Ah, 01h -31E4:C2DF FF FF 0B 00 F2 00 db 0FFh,0FFh, 0Bh, 00h,0F2h, 00h -31E4:C2E5 16 01 50 00 7A 00 db 16h, 01h, 50h, 00h, 7Ah, 00h -31E4:C2EB F6 00 46 01 FF FF db 0F6h, 00h, 46h, 01h,0FFh,0FFh -31E4:C2F1 0D 00 A4 01 2B 01 db 0Dh, 00h,0A4h, 01h, 2Bh, 01h -31E4:C2F7 01 01 20 01 FC 00 db 01h, 01h, 20h, 01h,0FCh, 00h -31E4:C2FD 0A 01 FF FF 22 00 db 0Ah, 01h,0FFh,0FFh, 22h, 00h -31E4:C303 C5 00 2F 01 FF FF db 0C5h, 00h, 2Fh, 01h,0FFh,0FFh -31E4:C309 00 00 00 20 57 6D db 00h, 00h, 00h, 20h, 57h, 6Dh -31E4:C30F 3C 14 01 00 88 00 db 3Ch, 14h, 01h, 00h, 88h, 00h -31E4:C315 00 00 00 00 00 FF db 00h, 00h, 00h, 00h, 00h,0FFh -31E4:C31B FF 00 00 00 00 01 db 0FFh, 00h, 00h, 00h, 00h, 01h -31E4:C321 05 00 00 00 00 C7 db 05h, 00h, 00h, 00h, 00h,0C7h -31E4:C327 00 6F 01 3F 01 47 db 00h, 6Fh, 01h, 3Fh, 01h, 47h -31E4:C32D 01 FF FF 1B 20 77 db 01h,0FFh,0FFh, 1Bh, 20h, 77h -31E4:C333 01 0B 01 ED 00 12 db 01h, 0Bh, 01h,0EDh, 00h, 12h -31E4:C339 01 FA 00 09 01 FF db 01h,0FAh, 00h, 09h, 01h,0FFh -31E4:C33F FF 0A 00 BE 00 46 db 0FFh, 0Ah, 00h,0BEh, 00h, 46h -31E4:C345 01 FF FF 00 00 20 db 01h,0FFh,0FFh, 00h, 00h, 20h -31E4:C34B 00 57 6D 3C 14 03 db 00h, 57h, 6Dh, 3Ch, 14h, 03h -31E4:C351 00 8C 01 8C 02 8C db 00h, 8Ch, 01h, 8Ch, 02h, 8Ch -31E4:C357 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:C35D 00 00 01 0F 00 00 db 00h, 00h, 01h, 0Fh, 00h, 00h -31E4:C363 00 00 03 01 22 01 db 00h, 00h, 03h, 01h, 22h, 01h -31E4:C369 BD 00 D8 00 FF FF db 0BDh, 00h,0D8h, 00h,0FFh,0FFh -31E4:C36F 14 00 65 01 44 01 db 14h, 00h, 65h, 01h, 44h, 01h -31E4:C375 6C 01 89 01 26 01 db 6Ch, 01h, 89h, 01h, 26h, 01h -31E4:C37B 3B 01 FF FF 1B 00 db 3Bh, 01h,0FFh,0FFh, 1Bh, 00h -31E4:C381 AD 00 0B 01 A2 00 db 0ADh, 00h, 0Bh, 01h,0A2h, 00h -31E4:C387 C3 00 C6 00 E0 00 db 0C3h, 00h,0C6h, 00h,0E0h, 00h -31E4:C38D FF FF 20 00 AC 00 db 0FFh,0FFh, 20h, 00h,0ACh, 00h -31E4:C393 40 01 FF FF 00 00 db 40h, 01h,0FFh,0FFh, 00h, 00h -31E4:C399 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C39F 02 00 8D 01 8D 02 db 02h, 00h, 8Dh, 01h, 8Dh, 02h -31E4:C3A5 8D 00 00 01 2C 00 db 8Dh, 00h, 00h, 01h, 2Ch, 00h -31E4:C3AB 00 00 00 01 08 00 db 00h, 00h, 00h, 01h, 08h, 00h -31E4:C3B1 00 00 00 50 00 7A db 00h, 00h, 00h, 50h, 00h, 7Ah -31E4:C3B7 00 1A 01 46 01 FF db 00h, 1Ah, 01h, 46h, 01h,0FFh -31E4:C3BD FF 0E 00 A8 01 1F db 0FFh, 0Eh, 00h,0A8h, 01h, 1Fh -31E4:C3C3 01 C6 01 E0 01 10 db 01h,0C6h, 01h,0E0h, 01h, 10h -31E4:C3C9 01 46 01 FF FF 0A db 01h, 46h, 01h,0FFh,0FFh, 0Ah -31E4:C3CF 00 7A 00 30 01 9F db 00h, 7Ah, 00h, 30h, 01h, 9Fh -31E4:C3D5 00 0E 01 44 01 4A db 00h, 0Eh, 01h, 44h, 01h, 4Ah -31E4:C3DB 01 FF FF 14 00 D4 db 01h,0FFh,0FFh, 14h, 00h,0D4h -31E4:C3E1 00 D8 00 FF FF 00 db 00h,0D8h, 00h,0FFh,0FFh, 00h -31E4:C3E7 00 20 00 57 6D 3C db 00h, 20h, 00h, 57h, 6Dh, 3Ch -31E4:C3ED 14 02 00 8E 01 8E db 14h, 02h, 00h, 8Eh, 01h, 8Eh -31E4:C3F3 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -31E4:C3F9 00 00 00 00 01 09 db 00h, 00h, 00h, 00h, 01h, 09h -31E4:C3FF 00 00 00 00 50 00 db 00h, 00h, 00h, 00h, 50h, 00h -31E4:C405 7A 00 11 01 26 01 db 7Ah, 00h, 11h, 01h, 26h, 01h -31E4:C40B FF FF 0F 00 A4 01 db 0FFh,0FFh, 0Fh, 00h,0A4h, 01h -31E4:C411 2B 01 80 00 0E 01 db 2Bh, 01h, 80h, 00h, 0Eh, 01h -31E4:C417 3D 01 4A 01 FF FF db 3Dh, 01h, 4Ah, 01h,0FFh,0FFh -31E4:C41D 13 00 04 01 02 01 db 13h, 00h, 04h, 01h, 02h, 01h -31E4:C423 C6 01 E0 01 FC 00 db 0C6h, 01h,0E0h, 01h,0FCh, 00h -31E4:C429 28 01 FF FF 0D 00 db 28h, 01h,0FFh,0FFh, 0Dh, 00h -31E4:C42F 7A 00 35 01 F7 00 db 7Ah, 00h, 35h, 01h,0F7h, 00h -31E4:C435 12 01 E8 00 F8 00 db 12h, 01h,0E8h, 00h,0F8h, 00h -31E4:C43B FF FF 1F 00 67 01 db 0FFh,0FFh, 1Fh, 00h, 67h, 01h -31E4:C441 3B 01 E8 00 54 01 db 3Bh, 01h,0E8h, 00h, 54h, 01h -31E4:C447 09 01 17 01 39 0D db 09h, 01h, 17h, 01h, 39h, 0Dh -31E4:C44D 35 01 4A 01 FC 00 db 35h, 01h, 4Ah, 01h,0FCh, 00h -31E4:C453 0B 01 39 0D FF FF db 0Bh, 01h, 39h, 0Dh,0FFh,0FFh -31E4:C459 00 00 20 00 57 6D db 00h, 00h, 20h, 00h, 57h, 6Dh -31E4:C45F 3C 14 02 00 8F 01 db 3Ch, 14h, 02h, 00h, 8Fh, 01h -31E4:C465 8F 00 00 00 00 0D db 8Fh, 00h, 00h, 00h, 00h, 0Dh -31E4:C46B 0F 00 00 00 00 01 db 0Fh, 00h, 00h, 00h, 00h, 01h -31E4:C471 0A 00 00 00 00 7F db 0Ah, 00h, 00h, 00h, 00h, 7Fh -31E4:C477 00 73 01 3D 01 48 db 00h, 73h, 01h, 3Dh, 01h, 48h -31E4:C47D 01 FF FF 11 00 E3 db 01h,0FFh,0FFh, 11h, 00h,0E3h -31E4:C483 00 0E 01 B2 01 C2 db 00h, 0Eh, 01h,0B2h, 01h,0C2h -31E4:C489 01 11 01 3C 01 FF db 01h, 11h, 01h, 3Ch, 01h,0FFh -31E4:C48F FF 0E 00 7A 00 1D db 0FFh, 0Eh, 00h, 7Ah, 00h, 1Dh -31E4:C495 01 EC 00 23 01 F0 db 01h,0ECh, 00h, 23h, 01h,0F0h -31E4:C49B 00 FA 00 FF FF 26 db 00h,0FAh, 00h,0FFh,0FFh, 26h -31E4:C4A1 00 42 01 46 01 FF db 00h, 42h, 01h, 46h, 01h,0FFh -31E4:C4A7 FF 00 00 20 00 57 db 0FFh, 00h, 00h, 20h, 00h, 57h -31E4:C4AD 6D 3C 14 03 00 91 db 6Dh, 3Ch, 14h, 03h, 00h, 91h -31E4:C4B3 01 91 02 91 00 00 db 01h, 91h, 02h, 91h, 00h, 00h -31E4:C4B9 FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:C4BF 01 0B 00 00 00 00 db 01h, 0Bh, 00h, 00h, 00h, 00h -31E4:C4C5 50 00 7A 00 0B 01 db 50h, 00h, 7Ah, 00h, 0Bh, 01h -31E4:C4CB 47 01 FF FF 15 00 db 47h, 01h,0FFh,0FFh, 15h, 00h -31E4:C4D1 77 01 0B 01 D2 00 db 77h, 01h, 0Bh, 01h,0D2h, 00h -31E4:C4D7 0C 01 CE 00 F5 00 db 0Ch, 01h,0CEh, 00h,0F5h, 00h -31E4:C4DD FF FF 0F 00 FC 00 db 0FFh,0FFh, 0Fh, 00h,0FCh, 00h -31E4:C4E3 46 01 C6 01 E0 01 db 46h, 01h,0C6h, 01h,0E0h, 01h -31E4:C4E9 1C 01 47 01 FF FF db 1Ch, 01h, 47h, 01h,0FFh,0FFh -31E4:C4EF 13 00 78 00 21 01 db 13h, 00h, 78h, 00h, 21h, 01h -31E4:C4F5 9F 00 11 01 40 01 db 9Fh, 00h, 11h, 01h, 40h, 01h -31E4:C4FB 48 01 FF FF 12 00 db 48h, 01h,0FFh,0FFh, 12h, 00h -31E4:C501 4D 01 F0 00 4A 01 db 4Dh, 01h,0F0h, 00h, 4Ah, 01h -31E4:C507 63 01 0A 01 14 01 db 63h, 01h, 0Ah, 01h, 14h, 01h -31E4:C50D FF FF 1D 00 99 00 db 0FFh,0FFh, 1Dh, 00h, 99h, 00h -31E4:C513 40 01 FF FF 00 00 db 40h, 01h,0FFh,0FFh, 00h, 00h -31E4:C519 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C51F 02 00 92 01 92 00 db 02h, 00h, 92h, 01h, 92h, 00h -31E4:C525 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:C52B 00 00 00 01 0C 00 db 00h, 00h, 00h, 01h, 0Ch, 00h -31E4:C531 00 00 00 50 00 7A db 00h, 00h, 00h, 50h, 00h, 7Ah -31E4:C537 00 13 01 3C 01 FF db 00h, 13h, 01h, 3Ch, 01h,0FFh -31E4:C53D FF 17 00 77 01 0B db 0FFh, 17h, 00h, 77h, 01h, 0Bh -31E4:C543 01 3B 01 7E 01 DD db 01h, 3Bh, 01h, 7Eh, 01h,0DDh -31E4:C549 00 EB 00 FF FF 11 db 00h,0EBh, 00h,0FFh,0FFh, 11h -31E4:C54F 00 B1 00 42 01 C6 db 00h,0B1h, 00h, 42h, 01h,0C6h -31E4:C555 01 E0 01 0F 01 47 db 01h,0E0h, 01h, 0Fh, 01h, 47h -31E4:C55B 01 FF FF 18 00 AD db 01h,0FFh,0FFh, 18h, 00h,0ADh -31E4:C561 00 0B 01 FF 00 19 db 00h, 0Bh, 01h,0FFh, 00h, 19h -31E4:C567 01 DB 00 EF 00 FF db 01h,0DBh, 00h,0EFh, 00h,0FFh -31E4:C56D FF 1C 40 01 01 10 db 0FFh, 1Ch, 40h, 01h, 01h, 10h -31E4:C573 01 FF FF 00 00 20 db 01h,0FFh,0FFh, 00h, 00h, 20h -31E4:C579 00 57 6D 3C 14 03 db 00h, 57h, 6Dh, 3Ch, 14h, 03h -31E4:C57F 00 93 01 93 02 93 db 00h, 93h, 01h, 93h, 02h, 93h -31E4:C585 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:C58B 00 00 01 0E 00 00 db 00h, 00h, 01h, 0Eh, 00h, 00h -31E4:C591 00 00 50 00 7A 00 db 00h, 00h, 50h, 00h, 7Ah, 00h -31E4:C597 0C 01 2E 01 FF FF db 0Ch, 01h, 2Eh, 01h,0FFh,0FFh -31E4:C59D 11 00 AD 01 3B 01 db 11h, 00h,0ADh, 01h, 3Bh, 01h -31E4:C5A3 F7 00 36 01 E6 00 db 0F7h, 00h, 36h, 01h,0E6h, 00h -31E4:C5A9 F8 00 FF FF 0E 00 db 0F8h, 00h,0FFh,0FFh, 0Eh, 00h -31E4:C5AF B1 00 46 01 C6 01 db 0B1h, 00h, 46h, 01h,0C6h, 01h -31E4:C5B5 E0 01 11 01 43 01 db 0E0h, 01h, 11h, 01h, 43h, 01h -31E4:C5BB FF FF 14 00 7C 00 db 0FFh,0FFh, 14h, 00h, 7Ch, 00h -31E4:C5C1 26 01 BC 00 FE 00 db 26h, 01h,0BCh, 00h,0FEh, 00h -31E4:C5C7 40 01 48 01 FF FF db 40h, 01h, 48h, 01h,0FFh,0FFh -31E4:C5CD 19 00 F2 00 16 01 db 19h, 00h,0F2h, 00h, 16h, 01h -31E4:C5D3 6F 01 90 01 F7 00 db 6Fh, 01h, 90h, 01h,0F7h, 00h -31E4:C5D9 04 01 FF FF 1E 00 db 04h, 01h,0FFh,0FFh, 1Eh, 00h -31E4:C5DF C1 00 29 01 95 00 db 0C1h, 00h, 29h, 01h, 95h, 00h -31E4:C5E5 BA 00 F5 00 FF 00 db 0BAh, 00h,0F5h, 00h,0FFh, 00h -31E4:C5EB FF FF 23 00 4C 01 db 0FFh,0FFh, 23h, 00h, 4Ch, 01h -31E4:C5F1 43 01 FF FF 00 00 db 43h, 01h,0FFh,0FFh, 00h, 00h -31E4:C5F7 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C5FD 03 00 94 01 94 02 db 03h, 00h, 94h, 01h, 94h, 02h -31E4:C603 94 00 00 FF FF 00 db 94h, 00h, 00h,0FFh,0FFh, 00h -31E4:C609 00 00 00 01 14 00 db 00h, 00h, 00h, 01h, 14h, 00h -31E4:C60F 00 00 00 50 00 7A db 00h, 00h, 00h, 50h, 00h, 7Ah -31E4:C615 00 0E 01 33 01 FF db 00h, 0Eh, 01h, 33h, 01h,0FFh -31E4:C61B FF 13 00 AE 01 2C db 0FFh, 13h, 00h,0AEh, 01h, 2Ch -31E4:C621 01 D1 00 ED 00 CA db 01h,0D1h, 00h,0EDh, 00h,0CAh -31E4:C627 00 D4 00 FF FF 0D db 00h,0D4h, 00h,0FFh,0FFh, 0Dh -31E4:C62D 00 BC 00 40 01 FE db 00h,0BCh, 00h, 40h, 01h,0FEh -31E4:C633 00 82 01 43 01 47 db 00h, 82h, 01h, 43h, 01h, 47h -31E4:C639 01 FF FF 0C 00 01 db 01h,0FFh,0FFh, 0Ch, 00h, 01h -31E4:C63F 01 E0 00 40 01 5D db 01h,0E0h, 00h, 40h, 01h, 5Dh -31E4:C645 01 E8 00 F3 00 FF db 01h,0E8h, 00h,0F3h, 00h,0FFh -31E4:C64B FF 24 10 85 00 0E db 0FFh, 24h, 10h, 85h, 00h, 0Eh -31E4:C651 01 FF FF 00 00 00 db 01h,0FFh,0FFh, 00h, 00h, 00h -31E4:C657 20 57 6D 3C 14 02 db 20h, 57h, 6Dh, 3Ch, 14h, 02h -31E4:C65D 10 88 11 88 00 00 db 10h, 88h, 11h, 88h, 00h, 00h -31E4:C663 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:C669 00 00 01 0D BA 00 db 00h, 00h, 01h, 0Dh,0BAh, 00h -31E4:C66F 86 01 90 00 B2 00 db 86h, 01h, 90h, 00h,0B2h, 00h -31E4:C675 FB 00 0D 01 FF FF db 0FBh, 00h, 0Dh, 01h,0FFh,0FFh -31E4:C67B 16 40 F2 00 16 01 db 16h, 40h,0F2h, 00h, 16h, 01h -31E4:C681 8C 01 AA 01 FB 00 db 8Ch, 01h,0AAh, 01h,0FBh, 00h -31E4:C687 0D 01 FF FF 11 00 db 0Dh, 01h,0FFh,0FFh, 11h, 00h -31E4:C68D 78 00 3E 01 FF FF db 78h, 00h, 3Eh, 01h,0FFh,0FFh -31E4:C693 00 00 00 20 57 6D db 00h, 00h, 00h, 20h, 57h, 6Dh -31E4:C699 3C 14 01 00 88 00 db 3Ch, 14h, 01h, 00h, 88h, 00h -31E4:C69F 00 00 00 00 00 FF db 00h, 00h, 00h, 00h, 00h,0FFh -31E4:C6A5 FF 00 00 00 00 01 db 0FFh, 00h, 00h, 00h, 00h, 01h -31E4:C6AB 05 00 00 00 00 C7 db 05h, 00h, 00h, 00h, 00h,0C7h -31E4:C6B1 00 6F 01 40 01 48 db 00h, 6Fh, 01h, 40h, 01h, 48h -31E4:C6B7 01 FF FF 17 10 AD db 01h,0FFh,0FFh, 17h, 10h,0ADh -31E4:C6BD 00 0B 01 ED 00 12 db 00h, 0Bh, 01h,0EDh, 00h, 12h -31E4:C6C3 01 FA 00 09 01 FF db 01h,0FAh, 00h, 09h, 01h,0FFh -31E4:C6C9 FF 15 10 AD 00 0B db 0FFh, 15h, 10h,0ADh, 00h, 0Bh -31E4:C6CF 01 FF FF 00 00 00 db 01h,0FFh,0FFh, 00h, 00h, 00h -31E4:C6D5 20 57 6D 3C 14 02 db 20h, 57h, 6Dh, 3Ch, 14h, 02h -31E4:C6DB 10 88 11 88 00 00 db 10h, 88h, 11h, 88h, 00h, 00h -31E4:C6E1 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:C6E7 00 00 01 0D BA 00 db 00h, 00h, 01h, 0Dh,0BAh, 00h -31E4:C6ED 86 01 90 00 B2 00 db 86h, 01h, 90h, 00h,0B2h, 00h -31E4:C6F3 FB 00 0D 01 FF FF db 0FBh, 00h, 0Dh, 01h,0FFh,0FFh -31E4:C6F9 16 80 13 01 42 01 db 16h, 80h, 13h, 01h, 42h, 01h -31E4:C6FF 8C 01 AA 01 FB 00 db 8Ch, 01h,0AAh, 01h,0FBh, 00h -31E4:C705 0D 01 FF FF 12 00 db 0Dh, 01h,0FFh,0FFh, 12h, 00h -31E4:C70B 73 00 2E 01 FF FF db 73h, 00h, 2Eh, 01h,0FFh,0FFh -31E4:C711 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:C717 3C 14 02 10 88 11 db 3Ch, 14h, 02h, 10h, 88h, 11h -31E4:C71D 88 00 00 00 00 FF db 88h, 00h, 00h, 00h, 00h,0FFh -31E4:C723 FF 00 00 00 00 01 db 0FFh, 00h, 00h, 00h, 00h, 01h -31E4:C729 0D BA 00 86 01 90 db 0Dh,0BAh, 00h, 86h, 01h, 90h -31E4:C72F 00 B2 00 FB 00 0D db 00h,0B2h, 00h,0FBh, 00h, 0Dh -31E4:C735 01 FF FF 12 00 A8 db 01h,0FFh,0FFh, 12h, 00h,0A8h -31E4:C73B 01 34 01 8C 01 AA db 01h, 34h, 01h, 8Ch, 01h,0AAh -31E4:C741 01 FB 00 0D 01 FF db 01h,0FBh, 00h, 0Dh, 01h,0FFh -31E4:C747 FF 19 80 13 01 42 db 0FFh, 19h, 80h, 13h, 01h, 42h -31E4:C74D 01 FF FF 00 00 00 db 01h,0FFh,0FFh, 00h, 00h, 00h -31E4:C753 20 57 6D 3C 14 01 db 20h, 57h, 6Dh, 3Ch, 14h, 01h -31E4:C759 00 88 00 00 00 00 db 00h, 88h, 00h, 00h, 00h, 00h -31E4:C75F 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:C765 00 00 01 05 00 00 db 00h, 00h, 01h, 05h, 00h, 00h -31E4:C76B 00 00 C7 00 6F 01 db 00h, 00h,0C7h, 00h, 6Fh, 01h -31E4:C771 40 01 48 01 FF FF db 40h, 01h, 48h, 01h,0FFh,0FFh -31E4:C777 18 20 77 01 0B 01 db 18h, 20h, 77h, 01h, 0Bh, 01h -31E4:C77D ED 00 12 01 FA 00 db 0EDh, 00h, 12h, 01h,0FAh, 00h -31E4:C783 09 01 FF FF 13 00 db 09h, 01h,0FFh,0FFh, 13h, 00h -31E4:C789 D0 00 42 01 FF FF db 0D0h, 00h, 42h, 01h,0FFh,0FFh -31E4:C78F 00 00 00 00 57 6D db 00h, 00h, 00h, 00h, 57h, 6Dh -31E4:C795 3C 14 02 10 88 11 db 3Ch, 14h, 02h, 10h, 88h, 11h -31E4:C79B 88 00 00 00 00 FF db 88h, 00h, 00h, 00h, 00h,0FFh -31E4:C7A1 FF 00 00 00 00 01 db 0FFh, 00h, 00h, 00h, 00h, 01h -31E4:C7A7 0D BA 00 86 01 90 db 0Dh,0BAh, 00h, 86h, 01h, 90h -31E4:C7AD 00 B2 00 FB 00 0D db 00h,0B2h, 00h,0FBh, 00h, 0Dh -31E4:C7B3 01 FF FF 0C 00 5A db 01h,0FFh,0FFh, 0Ch, 00h, 5Ah -31E4:C7B9 01 34 01 8C 01 AA db 01h, 34h, 01h, 8Ch, 01h,0AAh -31E4:C7BF 01 FB 00 0D 01 FF db 01h,0FBh, 00h, 0Dh, 01h,0FFh -31E4:C7C5 FF 0B 80 13 01 42 db 0FFh, 0Bh, 80h, 13h, 01h, 42h -31E4:C7CB 01 FF FF 00 00 20 db 01h,0FFh,0FFh, 00h, 00h, 20h -31E4:C7D1 00 57 6D 3C 14 03 db 00h, 57h, 6Dh, 3Ch, 14h, 03h -31E4:C7D7 00 9C 01 9C 02 9C db 00h, 9Ch, 01h, 9Ch, 02h, 9Ch -31E4:C7DD 00 00 0F 2C 00 00 db 00h, 00h, 0Fh, 2Ch, 00h, 00h -31E4:C7E3 00 00 02 10 BA 00 db 00h, 00h, 02h, 10h,0BAh, 00h -31E4:C7E9 86 01 F9 00 21 01 db 86h, 01h,0F9h, 00h, 21h, 01h -31E4:C7EF F8 00 0A 01 FF FF db 0F8h, 00h, 0Ah, 01h,0FFh,0FFh -31E4:C7F5 12 10 19 01 F0 00 db 12h, 10h, 19h, 01h,0F0h, 00h -31E4:C7FB FF FF 00 00 20 00 db 0FFh,0FFh, 00h, 00h, 20h, 00h -31E4:C801 57 6D 3C 14 03 00 db 57h, 6Dh, 3Ch, 14h, 03h, 00h -31E4:C807 9D 01 9D 02 9D 00 db 9Dh, 01h, 9Dh, 02h, 9Dh, 00h -31E4:C80D 00 08 2C 00 00 00 db 00h, 08h, 2Ch, 00h, 00h, 00h -31E4:C813 00 02 11 BA 00 86 db 00h, 02h, 11h,0BAh, 00h, 86h -31E4:C819 01 99 00 B7 00 42 db 01h, 99h, 00h,0B7h, 00h, 42h -31E4:C81F 01 54 01 FF FF 11 db 01h, 54h, 01h,0FFh,0FFh, 11h -31E4:C825 00 4D 01 20 01 FF db 00h, 4Dh, 01h, 20h, 01h,0FFh -31E4:C82B FF 00 00 20 00 57 db 0FFh, 00h, 00h, 20h, 00h, 57h -31E4:C831 6D 3C 14 02 00 9E db 6Dh, 3Ch, 14h, 02h, 00h, 9Eh -31E4:C837 01 9E 00 00 00 00 db 01h, 9Eh, 00h, 00h, 00h, 00h -31E4:C83D FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:C843 02 13 00 00 00 00 db 02h, 13h, 00h, 00h, 00h, 00h -31E4:C849 B4 00 30 01 32 01 db 0B4h, 00h, 30h, 01h, 32h, 01h -31E4:C84F 40 01 FF FF 13 00 db 40h, 01h,0FFh,0FFh, 13h, 00h -31E4:C855 72 01 10 01 FF FF db 72h, 01h, 10h, 01h,0FFh,0FFh -31E4:C85B 00 00 20 00 57 6D db 00h, 00h, 20h, 00h, 57h, 6Dh -31E4:C861 3C 14 02 00 9F 01 db 3Ch, 14h, 02h, 00h, 9Fh, 01h -31E4:C867 9F 00 00 00 00 FF db 9Fh, 00h, 00h, 00h, 00h,0FFh -31E4:C86D FF 00 00 00 00 02 db 0FFh, 00h, 00h, 00h, 00h, 02h -31E4:C873 12 00 00 00 00 38 db 12h, 00h, 00h, 00h, 00h, 38h -31E4:C879 01 86 01 3C 01 40 db 01h, 86h, 01h, 3Ch, 01h, 40h -31E4:C87F 01 FF FF 0E 00 F7 db 01h,0FFh,0FFh, 0Eh, 00h,0F7h -31E4:C885 00 02 01 FF FF 00 db 00h, 02h, 01h,0FFh,0FFh, 00h -31E4:C88B 00 20 00 57 6D 3C db 00h, 20h, 00h, 57h, 6Dh, 3Ch -31E4:C891 14 02 00 A4 01 A4 db 14h, 02h, 00h,0A4h, 01h,0A4h -31E4:C897 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -31E4:C89D 00 00 00 00 02 12 db 00h, 00h, 00h, 00h, 02h, 12h -31E4:C8A3 00 00 00 00 80 00 db 00h, 00h, 00h, 00h, 80h, 00h -31E4:C8A9 8C 00 FB 00 09 01 db 8Ch, 00h,0FBh, 00h, 09h, 01h -31E4:C8AF FF FF 14 40 44 01 db 0FFh,0FFh, 14h, 40h, 44h, 01h -31E4:C8B5 FB 00 FF FF 00 00 db 0FBh, 00h,0FFh,0FFh, 00h, 00h -31E4:C8BB 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C8C1 02 00 A0 01 A0 00 db 02h, 00h,0A0h, 01h,0A0h, 00h -31E4:C8C7 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:C8CD 00 00 00 02 12 00 db 00h, 00h, 00h, 02h, 12h, 00h -31E4:C8D3 00 00 00 AA 00 C6 db 00h, 00h, 00h,0AAh, 00h,0C6h -31E4:C8D9 00 44 01 5E 01 FF db 00h, 44h, 01h, 5Eh, 01h,0FFh -31E4:C8DF FF 0C 00 A1 00 EA db 0FFh, 0Ch, 00h,0A1h, 00h,0EAh -31E4:C8E5 00 FF FF 00 00 20 db 00h,0FFh,0FFh, 00h, 00h, 20h -31E4:C8EB 00 57 6D 3C 14 02 db 00h, 57h, 6Dh, 3Ch, 14h, 02h -31E4:C8F1 00 A2 01 A2 00 00 db 00h,0A2h, 01h,0A2h, 00h, 00h -31E4:C8F7 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -31E4:C8FD 00 00 02 15 00 00 db 00h, 00h, 02h, 15h, 00h, 00h -31E4:C903 00 00 C1 00 E0 00 db 00h, 00h,0C1h, 00h,0E0h, 00h -31E4:C909 30 01 3C 01 FF FF db 30h, 01h, 3Ch, 01h,0FFh,0FFh -31E4:C90F 0A 00 03 01 15 01 db 0Ah, 00h, 03h, 01h, 15h, 01h -31E4:C915 FF FF 00 00 20 00 db 0FFh,0FFh, 00h, 00h, 20h, 00h -31E4:C91B 57 6D 3C 14 02 00 db 57h, 6Dh, 3Ch, 14h, 02h, 00h -31E4:C921 A3 01 A3 02 A3 00 db 0A3h, 01h,0A3h, 02h,0A3h, 00h -31E4:C927 00 FF FF 00 00 00 db 00h,0FFh,0FFh, 00h, 00h, 00h -31E4:C92D 00 02 15 00 00 00 db 00h, 02h, 15h, 00h, 00h, 00h -31E4:C933 00 41 01 70 01 41 db 00h, 41h, 01h, 70h, 01h, 41h -31E4:C939 01 54 01 FF FF 13 db 01h, 54h, 01h,0FFh,0FFh, 13h -31E4:C93F 00 9C 00 0A 01 FF db 00h, 9Ch, 00h, 0Ah, 01h,0FFh -31E4:C945 FF 00 00 20 00 57 db 0FFh, 00h, 00h, 20h, 00h, 57h -31E4:C94B 6D 3C 14 02 00 66 db 6Dh, 3Ch, 14h, 02h, 00h, 66h -31E4:C951 01 66 00 00 00 00 db 01h, 66h, 00h, 00h, 00h, 00h -31E4:C957 91 0E 00 00 00 00 db 91h, 0Eh, 00h, 00h, 00h, 00h -31E4:C95D 03 12 00 00 00 00 db 03h, 12h, 00h, 00h, 00h, 00h -31E4:C963 80 00 9B 00 FA 00 db 80h, 00h, 9Bh, 00h,0FAh, 00h -31E4:C969 18 01 FF FF 27 00 db 18h, 01h,0FFh,0FFh, 27h, 00h -31E4:C96F 86 01 13 01 2C 01 db 86h, 01h, 13h, 01h, 2Ch, 01h -31E4:C975 5E 01 42 01 4A 01 db 5Eh, 01h, 42h, 01h, 4Ah, 01h -31E4:C97B F2 0E FF FF 00 00 db 0F2h, 0Eh,0FFh,0FFh, 00h, 00h -31E4:C981 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:C987 02 00 67 01 67 00 db 02h, 00h, 67h, 01h, 67h, 00h -31E4:C98D 00 00 00 05 02 00 db 00h, 00h, 00h, 05h, 02h, 00h -31E4:C993 00 00 00 03 12 00 db 00h, 00h, 00h, 03h, 12h, 00h -31E4:C999 00 00 00 A2 01 C7 db 00h, 00h, 00h,0A2h, 01h,0C7h -31E4:C99F 01 04 01 18 01 FF db 01h, 04h, 01h, 18h, 01h,0FFh -31E4:C9A5 FF 26 00 9F 00 13 db 0FFh, 26h, 00h, 9Fh, 00h, 13h -31E4:C9AB 01 80 00 9B 00 FA db 01h, 80h, 00h, 9Bh, 00h,0FAh -31E4:C9B1 00 18 01 FF FF 28 db 00h, 18h, 01h,0FFh,0FFh, 28h -31E4:C9B7 00 86 01 13 01 FF db 00h, 86h, 01h, 13h, 01h,0FFh -31E4:C9BD FF 00 00 20 00 57 db 0FFh, 00h, 00h, 20h, 00h, 57h -31E4:C9C3 6D 3C 14 02 00 68 db 6Dh, 3Ch, 14h, 02h, 00h, 68h -31E4:C9C9 01 68 00 00 00 00 db 01h, 68h, 00h, 00h, 00h, 00h -31E4:C9CF FF FF 00 00 00 00 db 0FFh,0FFh, 00h, 00h, 00h, 00h -31E4:C9D5 03 12 00 00 00 00 db 03h, 12h, 00h, 00h, 00h, 00h -31E4:C9DB A2 01 C7 01 04 01 db 0A2h, 01h,0C7h, 01h, 04h, 01h -31E4:C9E1 18 01 FF FF 27 00 db 18h, 01h,0FFh,0FFh, 27h, 00h -31E4:C9E7 9F 00 13 01 80 00 db 9Fh, 00h, 13h, 01h, 80h, 00h -31E4:C9ED 9B 00 FA 00 18 01 db 9Bh, 00h,0FAh, 00h, 18h, 01h -31E4:C9F3 FF FF 05 00 86 01 db 0FFh,0FFh, 05h, 00h, 86h, 01h -31E4:C9F9 13 01 FF FF 00 00 db 13h, 01h,0FFh,0FFh, 00h, 00h -31E4:C9FF 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:CA05 02 00 46 01 46 00 db 02h, 00h, 46h, 01h, 46h, 00h -31E4:CA0B 00 00 00 FF FF 00 db 00h, 00h, 00h,0FFh,0FFh, 00h -31E4:CA11 00 00 00 03 12 00 db 00h, 00h, 00h, 03h, 12h, 00h -31E4:CA17 00 00 00 A2 01 C7 db 00h, 00h, 00h,0A2h, 01h,0C7h -31E4:CA1D 01 04 01 18 01 FF db 01h, 04h, 01h, 18h, 01h,0FFh -31E4:CA23 FF 28 00 9F 00 13 db 0FFh, 28h, 00h, 9Fh, 00h, 13h -31E4:CA29 01 29 01 51 01 E6 db 01h, 29h, 01h, 51h, 01h,0E6h -31E4:CA2F 00 F7 00 FF FF 06 db 00h,0F7h, 00h,0FFh,0FFh, 06h -31E4:CA35 20 96 01 1B 01 FF db 20h, 96h, 01h, 1Bh, 01h,0FFh -31E4:CA3B FF 00 00 20 00 57 db 0FFh, 00h, 00h, 20h, 00h, 57h -31E4:CA41 6D 3C 14 02 00 45 db 6Dh, 3Ch, 14h, 02h, 00h, 45h -31E4:CA47 01 45 00 00 00 00 db 01h, 45h, 00h, 00h, 00h, 00h -31E4:CA4D B1 01 FF FF 0F 00 db 0B1h, 01h,0FFh,0FFh, 0Fh, 00h -31E4:CA53 03 12 00 00 00 00 db 03h, 12h, 00h, 00h, 00h, 00h -31E4:CA59 A2 01 C7 01 04 01 db 0A2h, 01h,0C7h, 01h, 04h, 01h -31E4:CA5F 18 01 FF FF 05 40 db 18h, 01h,0FFh,0FFh, 05h, 40h -31E4:CA65 32 01 04 01 80 00 db 32h, 01h, 04h, 01h, 80h, 00h -31E4:CA6B 9B 00 FA 00 18 01 db 9Bh, 00h,0FAh, 00h, 18h, 01h -31E4:CA71 FF FF 29 00 86 01 db 0FFh,0FFh, 29h, 00h, 86h, 01h -31E4:CA77 13 01 FF FF 00 00 db 13h, 01h,0FFh,0FFh, 00h, 00h -31E4:CA7D 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:CA83 02 00 69 01 69 00 db 02h, 00h, 69h, 01h, 69h, 00h -31E4:CA89 00 00 00 FF FF FF db 00h, 00h, 00h,0FFh,0FFh,0FFh -31E4:CA8F FF 0F 00 03 12 00 db 0FFh, 0Fh, 00h, 03h, 12h, 00h -31E4:CA95 00 00 00 A2 01 C7 db 00h, 00h, 00h,0A2h, 01h,0C7h -31E4:CA9B 01 04 01 18 01 FF db 01h, 04h, 01h, 18h, 01h,0FFh -31E4:CAA1 FF 06 00 8F 00 1B db 0FFh, 06h, 00h, 8Fh, 00h, 1Bh -31E4:CAA7 01 FF FF 00 00 20 db 01h,0FFh,0FFh, 00h, 00h, 20h -31E4:CAAD 00 57 6D 3C 14 03 db 00h, 57h, 6Dh, 3Ch, 14h, 03h -31E4:CAB3 00 EA 01 EA 02 EA db 00h,0EAh, 01h,0EAh, 02h,0EAh -31E4:CAB9 00 00 51 00 FF FF db 00h, 00h, 51h, 00h,0FFh,0FFh -31E4:CABF 0F 00 04 12 00 00 db 0Fh, 00h, 04h, 12h, 00h, 00h -31E4:CAC5 00 00 B4 01 C7 01 db 00h, 00h,0B4h, 01h,0C7h, 01h -31E4:CACB 20 01 34 01 FF FF db 20h, 01h, 34h, 01h,0FFh,0FFh -31E4:CAD1 2B 00 7F 00 1D 01 db 2Bh, 00h, 7Fh, 00h, 1Dh, 01h -31E4:CAD7 FF FF 00 00 20 00 db 0FFh,0FFh, 00h, 00h, 20h, 00h -31E4:CADD 57 6D 3C 14 02 00 db 57h, 6Dh, 3Ch, 14h, 02h, 00h -31E4:CAE3 EB 01 EB 00 00 00 db 0EBh, 01h,0EBh, 00h, 00h, 00h -31E4:CAE9 00 FF FF FF FF 0F db 00h,0FFh,0FFh,0FFh,0FFh, 0Fh -31E4:CAEF 00 04 12 00 00 00 db 00h, 04h, 12h, 00h, 00h, 00h -31E4:CAF5 00 7F 00 8D 00 08 db 00h, 7Fh, 00h, 8Dh, 00h, 08h -31E4:CAFB 01 34 0B FF FF 2A db 01h, 34h, 0Bh,0FFh,0FFh, 2Ah -31E4:CB01 00 A4 01 32 01 B7 db 00h,0A4h, 01h, 32h, 01h,0B7h -31E4:CB07 01 C7 01 09 01 1E db 01h,0C7h, 01h, 09h, 01h, 1Eh -31E4:CB0D 01 FF FF 2C 80 0A db 01h,0FFh,0FFh, 2Ch, 80h, 0Ah -31E4:CB13 01 40 01 FF FF 00 db 01h, 40h, 01h,0FFh,0FFh, 00h -31E4:CB19 00 00 00 57 6D 3C db 00h, 00h, 00h, 57h, 6Dh, 3Ch -31E4:CB1F 14 03 00 EC 01 EC db 14h, 03h, 00h,0ECh, 01h,0ECh -31E4:CB25 02 EC 00 00 FF FF db 02h,0ECh, 00h, 00h,0FFh,0FFh -31E4:CB2B FF FF 0F 00 04 12 db 0FFh,0FFh, 0Fh, 00h, 04h, 12h -31E4:CB31 00 00 00 00 09 01 db 00h, 00h, 00h, 00h, 09h, 01h -31E4:CB37 2C 01 44 01 4A 01 db 2Ch, 01h, 44h, 01h, 4Ah, 01h -31E4:CB3D FF FF 2B 20 A4 01 db 0FFh,0FFh, 2Bh, 20h,0A4h, 01h -31E4:CB43 1A 01 D0 00 F0 00 db 1Ah, 01h,0D0h, 00h,0F0h, 00h -31E4:CB49 EE 00 FB 00 FF FF db 0EEh, 00h,0FBh, 00h,0FFh,0FFh -31E4:CB4F 2D 10 A0 00 C8 00 db 2Dh, 10h,0A0h, 00h,0C8h, 00h -31E4:CB55 6A 01 88 01 F0 00 db 6Ah, 01h, 88h, 01h,0F0h, 00h -31E4:CB5B F9 00 FF FF 2D 10 db 0F9h, 00h,0FFh,0FFh, 2Dh, 10h -31E4:CB61 87 00 3C 01 FF FF db 87h, 00h, 3Ch, 01h,0FFh,0FFh -31E4:CB67 00 00 20 00 57 6D db 00h, 00h, 20h, 00h, 57h, 6Dh -31E4:CB6D 3C 14 03 00 ED 01 db 3Ch, 14h, 03h, 00h,0EDh, 01h -31E4:CB73 ED 02 ED 03 ED FF db 0EDh, 02h,0EDh, 03h,0EDh,0FFh -31E4:CB79 FF FF FF 0F 00 04 db 0FFh,0FFh,0FFh, 0Fh, 00h, 04h -31E4:CB7F 12 00 00 00 00 9A db 12h, 00h, 00h, 00h, 00h, 9Ah -31E4:CB85 00 AE 00 C0 00 CC db 00h,0AEh, 00h,0C0h, 00h,0CCh -31E4:CB8B 00 FF FF 2C 40 D3 db 00h,0FFh,0FFh, 2Ch, 40h,0D3h -31E4:CB91 00 02 01 BF 01 F4 db 00h, 02h, 01h,0BFh, 01h,0F4h -31E4:CB97 01 C0 00 CC 00 FF db 01h,0C0h, 00h,0CCh, 00h,0FFh -31E4:CB9D FF 2E 00 71 00 C8 db 0FFh, 2Eh, 00h, 71h, 00h,0C8h -31E4:CBA3 00 80 00 8B 00 2C db 00h, 80h, 00h, 8Bh, 00h, 2Ch -31E4:CBA9 01 5E 01 FF FF 2C db 01h, 5Eh, 01h,0FFh,0FFh, 2Ch -31E4:CBAF 40 6E 01 07 01 BF db 40h, 6Eh, 01h, 07h, 01h,0BFh -31E4:CBB5 01 F4 01 11 01 36 db 01h,0F4h, 01h, 11h, 01h, 36h -31E4:CBBB 01 FF FF 2E 00 71 db 01h,0FFh,0FFh, 2Eh, 00h, 71h -31E4:CBC1 00 2F 01 CA 00 F0 db 00h, 2Fh, 01h,0CAh, 00h,0F0h -31E4:CBC7 00 22 01 47 01 15 db 00h, 22h, 01h, 47h, 01h, 15h -31E4:CBCD 1E FF FF 00 00 00 db 1Eh,0FFh,0FFh, 00h, 00h, 00h -31E4:CBD3 00 57 6D 3C 14 03 db 00h, 57h, 6Dh, 3Ch, 14h, 03h -31E4:CBD9 00 EE 01 EE 02 EE db 00h,0EEh, 01h,0EEh, 02h,0EEh -31E4:CBDF 03 EE D3 04 FF FF db 03h,0EEh,0D3h, 04h,0FFh,0FFh -31E4:CBE5 0F 00 04 12 00 00 db 0Fh, 00h, 04h, 12h, 00h, 00h -31E4:CBEB 00 00 7F 00 84 00 db 00h, 00h, 7Fh, 00h, 84h, 00h -31E4:CBF1 C0 00 CC 00 FF FF db 0C0h, 00h,0CCh, 00h,0FFh,0FFh -31E4:CBF7 2D 00 AA 01 C8 00 db 2Dh, 00h,0AAh, 01h,0C8h, 00h -31E4:CBFD 7F 00 84 00 11 01 db 7Fh, 00h, 84h, 00h, 11h, 01h -31E4:CC03 36 01 FF FF 2D 00 db 36h, 01h,0FFh,0FFh, 2Dh, 00h -31E4:CC09 AA 01 2F 01 A1 01 db 0AAh, 01h, 2Fh, 01h,0A1h, 01h -31E4:CC0F B8 01 2F 01 40 01 db 0B8h, 01h, 2Fh, 01h, 40h, 01h -31E4:CC15 FF FF 30 00 AA 00 db 0FFh,0FFh, 30h, 00h,0AAh, 00h -31E4:CC1B 12 01 00 01 22 01 db 12h, 01h, 00h, 01h, 22h, 01h -31E4:CC21 A0 00 BC 00 90 05 db 0A0h, 00h,0BCh, 00h, 90h, 05h -31E4:CC27 FF FF 00 00 20 00 db 0FFh,0FFh, 00h, 00h, 20h, 00h -31E4:CC2D 57 6D 3C 14 02 00 db 57h, 6Dh, 3Ch, 14h, 02h, 00h -31E4:CC33 F0 01 F0 00 00 00 db 0F0h, 01h,0F0h, 00h, 00h, 00h -31E4:CC39 00 FF FF 00 00 00 db 00h,0FFh,0FFh, 00h, 00h, 00h -31E4:CC3F 00 01 12 00 00 00 db 00h, 01h, 12h, 00h, 00h, 00h -31E4:CC45 00 80 00 8C 00 31 db 00h, 80h, 00h, 8Ch, 00h, 31h -31E4:CC4B 01 36 01 FF FF 2E db 01h, 36h, 01h,0FFh,0FFh, 2Eh -31E4:CC51 40 07 01 CF 00 B6 db 40h, 07h, 01h,0CFh, 00h,0B6h -31E4:CC57 01 C2 01 31 01 4A db 01h,0C2h, 01h, 31h, 01h, 4Ah -31E4:CC5D 01 FF FF 2E 40 07 db 01h,0FFh,0FFh, 2Eh, 40h, 07h -31E4:CC63 01 CF 00 FF FF 00 db 01h,0CFh, 00h,0FFh,0FFh, 00h -31E4:CC69 00 20 00 57 6D 3C db 00h, 20h, 00h, 57h, 6Dh, 3Ch -31E4:CC6F 14 02 00 EF 01 EF db 14h, 02h, 00h,0EFh, 01h,0EFh -31E4:CC75 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -31E4:CC7B 00 00 00 00 04 12 db 00h, 00h, 00h, 00h, 04h, 12h -31E4:CC81 00 00 00 00 A6 00 db 00h, 00h, 00h, 00h,0A6h, 00h -31E4:CC87 B5 00 07 01 10 01 db 0B5h, 00h, 07h, 01h, 10h, 01h -31E4:CC8D FF FF 2E 00 83 01 db 0FFh,0FFh, 2Eh, 00h, 83h, 01h -31E4:CC93 38 01 FF FF 00 00 db 38h, 01h,0FFh,0FFh, 00h, 00h -31E4:CC99 20 00 57 6D 3C 14 db 20h, 00h, 57h, 6Dh, 3Ch, 14h -31E4:CC9F 02 00 F2 01 F2 00 db 02h, 00h,0F2h, 01h,0F2h, 00h -31E4:CCA5 00 00 00 DE 01 FF db 00h, 00h, 00h,0DEh, 01h,0FFh -31E4:CCAB FF 0F 00 01 12 00 db 0FFh, 0Fh, 00h, 01h, 12h, 00h -31E4:CCB1 00 00 00 80 00 8C db 00h, 00h, 00h, 80h, 00h, 8Ch -31E4:CCB7 00 31 01 4A 01 AD db 00h, 31h, 01h, 4Ah, 01h,0ADh -31E4:CCBD 01 FF FF 00 00 00 db 01h,0FFh,0FFh, 00h, 00h, 00h -31E4:CCC3 00 57 6D 00 00 01 db 00h, 57h, 6Dh, 00h, 00h, 01h -31E4:CCC9 00 78 00 00 00 00 db 00h, 78h, 00h, 00h, 00h, 00h -31E4:CCCF 00 00 FF FF FF FF db 00h, 00h,0FFh,0FFh,0FFh,0FFh -31E4:CCD5 0F 00 01 12 00 00 db 0Fh, 00h, 01h, 12h, 00h, 00h -31E4:CCDB 00 00 FF FF 00 db 00h, 00h,0FFh,0FFh, 00h - -31E4:CCE0 0014[00] talk_character_buffer db 20 dup (0) -31E4:CCF4 012C[00] talk_text_buffer db 300 dup (0) - -31E4:CE20 05 game_flags db 5 -31E4:CE21 00 00 db 0, 0 -31E4:CE23 000D[00] db 13 dup (0) -31E4:CE30 loc_2362: ; xref 31E4:CEA5 - -31E4:CE30 11 27 room_exit_joins_table dw 2711h ; Res Id for Cell Door #1 -31E4:CE32 03 03 dw 0303h ; Result 1 -31E4:CE34 0A 09 dw 090Ah -31E4:CE36 12 27 dw 2712h ; Res Id for Cell Door #2 -31E4:CE38 03 04 dw 0403h ; Result 2 - -31E4:CE3A 0A 09 or cl,[bx+di] -31E4:CE3C 01 38 add [bx+si],di -31E4:CE3E 87 70 87 xchg [bx+si-79h],si -31E4:CE41 14 27 adc al,27h ; ''' -31E4:CE43 03 03 add ax,[bp+di] -31E4:CE45 0D 000D or ax,0Dh -31E4:CE48 00 00 add [bx+si],al -31E4:CE4A 00 0A add [bp+si],cl -31E4:CE4C 09 01 or [bx+di],ax -31E4:CE4E AE scasb ; Scan es:[di] for al -31E4:CE4F 87 AE 1587 xchg [bp+1587h],bp -31E4:CE53 27 daa ; Decimal adjust -31E4:CE54 03 04 add ax,[si] -31E4:CE56 0A 17 or dl,[bx] -31E4:CE58 16 push ss -31E4:CE59 27 daa ; Decimal adjust -31E4:CE5A 03 05 add ax,[di] -31E4:CE5C 0A 17 or dl,[bx] -31E4:CE5E 01 E6 add si,sp -31E4:CE60 87 1B xchg [bp+di],bx -31E4:CE62 88 17 mov [bx],dl -31E4:CE64 27 daa ; Decimal adjust -31E4:CE65 03 04 add ax,[si] -31E4:CE67 0A 17 or dl,[bx] -31E4:CE69 18 27 sbb [bx],ah -31E4:CE6B 03 05 add ax,[di] -31E4:CE6D 0A 17 or dl,[bx] -31E4:CE6F 01 AE D888 add [bp-2778h],bp -31E4:CE73 88 19 mov [bx+di],bl -31E4:CE75 27 daa ; Decimal adjust -31E4:CE76 03 04 add ax,[si] -31E4:CE78 0A 17 or dl,[bx] -31E4:CE7A 1A 27 sbb ah,[bx] -31E4:CE7C 03 05 add ax,[di] -31E4:CE7E 0A 17 or dl,[bx] -31E4:CE80 01 10 add [bx+si],dx -31E4:CE82 89 69 8A mov [bx+di-76h],bp -31E4:CE85 1E push ds -31E4:CE86 27 daa ; Decimal adjust -31E4:CE87 03 04 add ax,[si] -31E4:CE89 0A 17 or dl,[bx] -31E4:CE8B 29 27 sub [bx],sp -31E4:CE8D 03 04 add ax,[si] -31E4:CE8F 0A 17 or dl,[bx] -31E4:CE91 01 A4 CE8A add ds:data_59e[si],sp ; (0000:CE8A=301Eh) -31E4:CE95 8A 1F mov bl,[bx] -31E4:CE97 27 daa ; Decimal adjust -31E4:CE98 03 05 add ax,[di] -31E4:CE9A 0A 17 or dl,[bx] -31E4:CE9C 20 27 and [bx],ah -31E4:CE9E 03 05 add ax,[di] -31E4:CEA0 0A 17 or dl,[bx] -31E4:CEA2 01 4B 89 add [bp+di-77h],cx -31E4:CEA5 75 89 jnz loc_2362 ; Jump if not zero -31E4:CEA7 21 27 and [bx],sp -31E4:CEA9 03 05 add ax,[di] -31E4:CEAB 0A 17 or dl,[bx] -31E4:CEAD 22 27 and ah,[bx] -31E4:CEAF 03 05 add ax,[di] -31E4:CEB1 0A 17 or dl,[bx] -31E4:CEB3 01 B0 DA89 add ds:data_60e[bx+si],si ; (0000:DA89=52F9h) -31E4:CEB7 89 25 mov [di],sp -31E4:CEB9 27 daa ; Decimal adjust -31E4:CEBA 03 05 add ax,[di] -31E4:CEBC 0A 17 or dl,[bx] -31E4:CEBE 26 27 03 04 0A 17 db 26h, 27h, 03h, 04h, 0Ah, 17h -31E4:CEC4 01 15 8A 3F 8A 2A db 01h, 15h, 8Ah, 3Fh, 8Ah, 2Ah -31E4:CECA 27 03 05 00 00 2B db 27h, 03h, 05h, 00h, 00h, 2Bh -31E4:CED0 27 03 05 00 00 01 db 27h, 03h, 05h, 00h, 00h, 01h -31E4:CED6 09 8B 33 8B 2C 27 db 09h, 8Bh, 33h, 8Bh, 2Ch, 27h -31E4:CEDC 03 05 00 00 2D 27 db 03h, 05h, 00h, 00h, 2Dh, 27h -31E4:CEE2 03 05 00 00 01 5D db 03h, 05h, 00h, 00h, 01h, 5Dh -31E4:CEE8 8B 87 8B 2E 27 03 db 8Bh, 87h, 8Bh, 2Eh, 27h, 03h -31E4:CEEE 05 00 00 2F 27 03 db 05h, 00h, 00h, 2Fh, 27h, 03h -31E4:CEF4 05 00 00 01 B1 8B db 05h, 00h, 00h, 01h,0B1h, 8Bh -31E4:CEFA DB 8B 00 db 0DBh, 8Bh, 00h -31E4:CEFD 0005[00] db 5 dup (0) - -31E4:CF02 0000 talk_response_ptr dw 0 -31E4:CF04 0000 talk_next_talk_offset dw 0 -31E4:CF06 0000 talk_to_hotspot_ptr dw 0 -31E4:CF08 0000 talk_state dw 0 -31E4:CF09 00 talk_line_num db 0 -31E4:CF0A 00 talk_selected_line db 0 -31E4:CF0B 00 talk_cf0b db 0 -31E4:CF0C 0008 talk_entry_list db 8 dup (0) - -31E4:CF14 3A CF 00 80 24 04 db 3Ah,0CFh, 00h, 80h, 24h, 04h -31E4:CF1A 00 00 00 80 FB 00 db 00h, 00h, 00h, 80h,0FBh, 00h -31E4:CF20 01 00 00 80 F9 00 db 01h, 00h, 00h, 80h,0F9h, 00h -31E4:CF26 02 00 00 80 FC 00 db 02h, 00h, 00h, 80h,0FCh, 00h -31E4:CF2C 03 00 00 80 FE 00 db 03h, 00h, 00h, 80h,0FEh, 00h -31E4:CF32 04 00 00 80 24 04 db 04h, 00h, 00h, 80h, 24h, 04h -31E4:CF38 05 00 00 00 FA 00 db 05h, 00h, 00h, 00h,0FAh, 00h -31E4:CF3E 01 00 0B 20 00 01 db 01h, 00h, 0Bh, 20h, 00h, 01h -31E4:CF44 02 00 00 00 FF 00 db 02h, 00h, 00h, 00h,0FFh, 00h -31E4:CF4A 03 00 00 00 01 01 db 03h, 00h, 00h, 00h, 01h, 01h -31E4:CF50 04 00 00 00 94 00 db 04h, 00h, 00h, 00h, 94h, 00h -31E4:CF56 05 00 E9 1F 24 04 db 05h, 00h,0E9h, 1Fh, 24h, 04h -31E4:CF5C FF FF 78 CF 00 80 db 0FFh,0FFh, 78h,0CFh, 00h, 80h -31E4:CF62 24 04 00 00 00 80 db 24h, 04h, 00h, 00h, 00h, 80h -31E4:CF68 78 0A 01 00 00 80 db 78h, 0Ah, 01h, 00h, 00h, 80h -31E4:CF6E 24 04 02 00 00 80 db 24h, 04h, 02h, 00h, 00h, 80h -31E4:CF74 24 04 03 00 00 00 db 24h, 04h, 03h, 00h, 00h, 00h -31E4:CF7A 77 0A 01 00 00 00 db 77h, 0Ah, 01h, 00h, 00h, 00h -31E4:CF80 40 0B 02 00 00 00 db 40h, 0Bh, 02h, 00h, 00h, 00h -31E4:CF86 41 0B 03 00 7E 29 db 41h, 0Bh, 03h, 00h, 7Eh, 29h -31E4:CF8C 24 04 FF FF 9E CF db 24h, 04h,0FFh,0FFh, 9Eh,0CFh -31E4:CF92 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:CF98 00 80 24 04 01 00 db 00h, 80h, 24h, 04h, 01h, 00h -31E4:CF9E 00 00 24 04 01 00 db 00h, 00h, 24h, 04h, 01h, 00h -31E4:CFA4 60 2A 24 04 FF FF db 60h, 2Ah, 24h, 04h,0FFh,0FFh -31E4:CFAA BE CF 00 80 24 04 db 0BEh,0CFh, 00h, 80h, 24h, 04h -31E4:CFB0 00 00 00 80 24 04 db 00h, 00h, 00h, 80h, 24h, 04h -31E4:CFB6 01 00 00 80 24 04 db 01h, 00h, 00h, 80h, 24h, 04h -31E4:CFBC 02 00 00 00 BD 0B db 02h, 00h, 00h, 00h,0BDh, 0Bh -31E4:CFC2 01 00 00 00 BE 0B db 01h, 00h, 00h, 00h,0BEh, 0Bh -31E4:CFC8 02 00 00 00 BF 0B db 02h, 00h, 00h, 00h,0BFh, 0Bh -31E4:CFCE FF FF E4 CF 00 80 db 0FFh,0FFh,0E4h,0CFh, 00h, 80h -31E4:CFD4 24 04 00 00 00 80 db 24h, 04h, 00h, 00h, 00h, 80h -31E4:CFDA EC 0B 01 00 00 80 db 0ECh, 0Bh, 01h, 00h, 00h, 80h -31E4:CFE0 EE 0B 02 00 00 00 db 0EEh, 0Bh, 02h, 00h, 00h, 00h -31E4:CFE6 EB 0B 01 00 00 00 db 0EBh, 0Bh, 01h, 00h, 00h, 00h -31E4:CFEC ED 0B 02 00 00 00 db 0EDh, 0Bh, 02h, 00h, 00h, 00h -31E4:CFF2 EF 0B FF FF 04 D0 db 0EFh, 0Bh,0FFh,0FFh, 04h,0D0h -31E4:CFF8 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:CFFE 00 80 24 04 01 00 db 00h, 80h, 24h, 04h, 01h, 00h -31E4:D004 00 00 17 0B 01 00 db 00h, 00h, 17h, 0Bh, 01h, 00h -31E4:D00A 06 19 24 04 FF FF db 06h, 19h, 24h, 04h,0FFh,0FFh -31E4:D010 18 D0 00 80 D5 07 db 18h,0D0h, 00h, 80h,0D5h, 07h -31E4:D016 00 00 73 2A 10 0C db 00h, 00h, 73h, 2Ah, 10h, 0Ch -31E4:D01C FF FF 26 D0 00 80 db 0FFh,0FFh, 26h,0D0h, 00h, 80h -31E4:D022 F9 07 00 00 00 00 db 0F9h, 07h, 00h, 00h, 00h, 00h -31E4:D028 13 0C FF FF 46 D0 db 13h, 0Ch,0FFh,0FFh, 46h,0D0h -31E4:D02E 00 80 FB 07 00 00 db 00h, 80h,0FBh, 07h, 00h, 00h -31E4:D034 00 80 16 0C 01 00 db 00h, 80h, 16h, 0Ch, 01h, 00h -31E4:D03A 00 80 18 0C 02 00 db 00h, 80h, 18h, 0Ch, 02h, 00h -31E4:D040 00 80 1A db 00h, 80h, 1Ah -31E4:D043 0C db 0Ch -31E4:D044 loc_2363: -31E4:D044 03 00 add ax,[bx+si] -31E4:D046 00 00 add [bx+si],al -31E4:D048 15 010C adc ax,10Ch -31E4:D04B 00 00 add [bx+si],al -31E4:D04D 00 17 add [bx],dl -31E4:D04F 0C 02 or al,2 -31E4:D051 00 00 add [bx+si],al -31E4:D053 00 19 add [bx+di],bl -31E4:D055 0C 03 or al,3 -31E4:D057 00 00 add [bx+si],al -31E4:D059 00 1B add [bp+di],bl -31E4:D05B 0C FF or al,0FFh -31E4:D05D FF 66 D0 jmp word ptr [bp-30h] ;* - sub_276 endp - -31E4:D060 00 80 29 0A 00 00 db 00h, 80h, 29h, 0Ah, 00h, 00h -31E4:D066 00 00 0D 0C FF FF db 00h, 00h, 0Dh, 0Ch,0FFh,0FFh -31E4:D06C 8C D0 00 00 22 08 db 8Ch,0D0h, 00h, 00h, 22h, 08h -31E4:D072 00 00 00 80 2C 08 db 00h, 00h, 00h, 80h, 2Ch, 08h -31E4:D078 02 00 00 80 29 0C db 02h, 00h, 00h, 80h, 29h, 0Ch -31E4:D07E 01 00 00 80 24 04 db 01h, 00h, 00h, 80h, 24h, 04h -31E4:D084 03 00 00 80 2E 0C db 03h, 00h, 00h, 80h, 2Eh, 0Ch -31E4:D08A 04 00 00 00 28 0C db 04h, 00h, 00h, 00h, 28h, 0Ch -31E4:D090 02 00 00 00 2A 0C db 02h, 00h, 00h, 00h, 2Ah, 0Ch -31E4:D096 FF FF 00 00 2C 0C db 0FFh,0FFh, 00h, 00h, 2Ch, 0Ch -31E4:D09C 03 00 00 00 2D 0C db 03h, 00h, 00h, 00h, 2Dh, 0Ch -31E4:D0A2 04 00 00 00 2F 0C db 04h, 00h, 00h, 00h, 2Fh, 0Ch -31E4:D0A8 FF FF CA D0 00 00 db 0FFh,0FFh,0CAh,0D0h, 00h, 00h -31E4:D0AE 38 88 00 00 00 80 db 38h, 88h, 00h, 00h, 00h, 80h -31E4:D0B4 0F 0C 04 00 00 80 db 0Fh, 0Ch, 04h, 00h, 00h, 80h -31E4:D0BA 1E 0C 01 00 00 80 db 1Eh, 0Ch, 01h, 00h, 00h, 80h -31E4:D0C0 20 0C 02 00 00 80 db 20h, 0Ch, 02h, 00h, 00h, 80h -31E4:D0C6 24 04 03 00 00 00 db 24h, 04h, 03h, 00h, 00h, 00h -31E4:D0CC 1D 0C 02 00 00 00 db 1Dh, 0Ch, 02h, 00h, 00h, 00h -31E4:D0D2 1F 0C 03 00 00 00 db 1Fh, 0Ch, 03h, 00h, 00h, 00h -31E4:D0D8 21 0C 04 00 83 2A db 21h, 0Ch, 04h, 00h, 83h, 2Ah -31E4:D0DE 24 04 FF FF 00 00 db 24h, 04h,0FFh,0FFh, 00h, 00h -31E4:D0E4 12 0C FF FF FC D0 db 12h, 0Ch,0FFh,0FFh,0FCh,0D0h -31E4:D0EA 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:D0F0 00 80 32 0C 01 00 db 00h, 80h, 32h, 0Ch, 01h, 00h -31E4:D0F6 00 80 34 0C 02 00 db 00h, 80h, 34h, 0Ch, 02h, 00h -31E4:D0FC 00 00 31 0C 01 00 db 00h, 00h, 31h, 0Ch, 01h, 00h -31E4:D102 00 00 33 0C 02 00 db 00h, 00h, 33h, 0Ch, 02h, 00h -31E4:D108 00 00 35 0C FF FF db 00h, 00h, 35h, 0Ch,0FFh,0FFh -31E4:D10E 28 D1 00 00 CA 09 db 28h,0D1h, 00h, 00h,0CAh, 09h -31E4:D114 00 00 00 80 0D 0B db 00h, 00h, 00h, 80h, 0Dh, 0Bh -31E4:D11A 02 00 00 80 38 0C db 02h, 00h, 00h, 80h, 38h, 0Ch -31E4:D120 01 00 00 80 3C 0C db 01h, 00h, 00h, 80h, 3Ch, 0Ch -31E4:D126 03 00 00 00 37 0C db 03h, 00h, 00h, 00h, 37h, 0Ch -31E4:D12C 02 00 00 00 39 0C db 02h, 00h, 00h, 00h, 39h, 0Ch -31E4:D132 FF FF 00 00 3B 0C db 0FFh,0FFh, 00h, 00h, 3Bh, 0Ch -31E4:D138 03 00 00 00 3D 0C db 03h, 00h, 00h, 00h, 3Dh, 0Ch -31E4:D13E FF FF 5A D1 69 23 db 0FFh,0FFh, 5Ah,0D1h, 69h, 23h -31E4:D144 03 09 00 00 00 80 db 03h, 09h, 00h, 00h, 00h, 80h -31E4:D14A 27 0C 03 00 00 80 db 27h, 0Ch, 03h, 00h, 00h, 80h -31E4:D150 40 0C 01 00 00 80 db 40h, 0Ch, 01h, 00h, 00h, 80h -31E4:D156 24 04 02 00 00 00 db 24h, 04h, 02h, 00h, 00h, 00h -31E4:D15C 3F 0C 02 00 00 00 db 3Fh, 0Ch, 02h, 00h, 00h, 00h -31E4:D162 41 0C 03 00 00 00 db 41h, 0Ch, 03h, 00h, 00h, 00h -31E4:D168 42 0C FF FF 00 00 db 42h, 0Ch,0FFh,0FFh, 00h, 00h -31E4:D16E 2B 0C FF FF 80 D1 db 2Bh, 0Ch,0FFh,0FFh, 80h,0D1h -31E4:D174 00 80 EF 09 00 00 db 00h, 80h,0EFh, 09h, 00h, 00h -31E4:D17A 00 80 45 0C 01 00 db 00h, 80h, 45h, 0Ch, 01h, 00h -31E4:D180 00 00 44 0C 01 00 db 00h, 00h, 44h, 0Ch, 01h, 00h -31E4:D186 00 00 46 0C FF FF db 00h, 00h, 46h, 0Ch,0FFh,0FFh -31E4:D18C 9A D1 00 80 40 09 db 9Ah,0D1h, 00h, 80h, 40h, 09h -31E4:D192 00 00 00 80 48 0C db 00h, 00h, 00h, 80h, 48h, 0Ch -31E4:D198 01 00 00 00 47 0C db 01h, 00h, 00h, 00h, 47h, 0Ch -31E4:D19E 01 00 00 00 49 0C db 01h, 00h, 00h, 00h, 49h, 0Ch -31E4:D1A4 FF FF B4 D1 00 80 db 0FFh,0FFh,0B4h,0D1h, 00h, 80h -31E4:D1AA 48 09 00 00 00 80 db 48h, 09h, 00h, 00h, 00h, 80h -31E4:D1B0 4B 0C 01 00 00 00 db 4Bh, 0Ch, 01h, 00h, 00h, 00h -31E4:D1B6 4A 0C 01 00 00 00 db 4Ah, 0Ch, 01h, 00h, 00h, 00h -31E4:D1BC 24 04 FF FF CE D1 db 24h, 04h,0FFh,0FFh,0CEh,0D1h -31E4:D1C2 00 80 2E 0B 00 00 db 00h, 80h, 2Eh, 0Bh, 00h, 00h -31E4:D1C8 00 80 4E 0C 01 00 db 00h, 80h, 4Eh, 0Ch, 01h, 00h -31E4:D1CE 00 00 4D 0C 01 00 db 00h, 00h, 4Dh, 0Ch, 01h, 00h -31E4:D1D4 00 00 4F 0C FF FF db 00h, 00h, 4Fh, 0Ch,0FFh,0FFh -31E4:D1DA E2 D1 00 80 92 09 db 0E2h,0D1h, 00h, 80h, 92h, 09h -31E4:D1E0 00 00 00 00 50 0C db 00h, 00h, 00h, 00h, 50h, 0Ch -31E4:D1E6 FF FF F6 D1 00 80 db 0FFh,0FFh,0F6h,0D1h, 00h, 80h -31E4:D1EC 38 0A 00 00 00 80 db 38h, 0Ah, 00h, 00h, 00h, 80h -31E4:D1F2 52 0C 01 00 00 00 db 52h, 0Ch, 01h, 00h, 00h, 00h -31E4:D1F8 51 0C 01 00 00 00 db 51h, 0Ch, 01h, 00h, 00h, 00h -31E4:D1FE 53 0C FF db 53h, 0Ch,0FFh -31E4:D201 0AFF data_1156 dw 0AFFh ; xref 31E4:2A54 -31E4:D203 D2 00 80 D5 07 00 db 0D2h, 00h, 80h,0D5h, 07h, 00h -31E4:D209 00 00 00 EC A4 FF db 00h, 00h, 00h,0ECh,0A4h,0FFh -31E4:D20F FF 36 D2 00 00 59 db 0FFh, 36h,0D2h, 00h, 00h, 59h -31E4:D215 89 00 00 00 00 5B db 89h, 00h, 00h, 00h, 00h, 5Bh -31E4:D21B 89 01 00 00 80 F9 db 89h, 01h, 00h, 00h, 80h,0F9h -31E4:D221 07 02 00 db 07h, 02h, 00h -31E4:D224 0007[00] db 7 dup (0) -31E4:D22B 80 24 04 03 00 00 db 80h, 24h, 04h, 03h, 00h, 00h -31E4:D231 80 EF 07 04 00 FC db 80h,0EFh, 07h, 04h, 00h,0FCh -31E4:D237 24 5A 09 00 00 09 db 24h, 5Ah, 09h, 00h, 00h, 09h -31E4:D23D 25 5C 09 04 00 00 db 25h, 5Ch, 09h, 04h, 00h, 00h -31E4:D243 00 5E 09 05 00 00 db 00h, 5Eh, 09h, 05h, 00h, 00h -31E4:D249 00 5D 09 00 00 00 db 00h, 5Dh, 09h, 00h, 00h, 00h -31E4:D24F 00 5F 09 FF FF 7A db 00h, 5Fh, 09h,0FFh,0FFh, 7Ah -31E4:D255 D2 16 25 59 09 00 db 0D2h, 16h, 25h, 59h, 09h, 00h -31E4:D25B 00 1D 25 5B 09 01 db 00h, 1Dh, 25h, 5Bh, 09h, 01h -31E4:D261 00 00 80 FB 07 02 db 00h, 00h, 80h,0FBh, 07h, 02h -31E4:D267 00 db 00h -31E4:D268 0007[00] db 7 dup (0) -31E4:D26F 80 24 04 03 00 00 db 80h, 24h, 04h, 03h, 00h, 00h -31E4:D275 80 76 00 04 00 FC db 80h, 76h, 00h, 04h, 00h,0FCh -31E4:D27B 24 5A 09 00 00 09 db 24h, 5Ah, 09h, 00h, 00h, 09h -31E4:D281 25 5C 09 04 00 00 db 25h, 5Ch, 09h, 04h, 00h, 00h -31E4:D287 00 62 09 05 00 00 db 00h, 62h, 09h, 05h, 00h, 00h -31E4:D28D 00 5D 09 00 00 00 db 00h, 5Dh, 09h, 00h, 00h, 00h -31E4:D293 00 24 04 FF FF B8 db 00h, 24h, 04h,0FFh,0FFh,0B8h -31E4:D299 D2 16 25 59 09 00 db 0D2h, 16h, 25h, 59h, 09h, 00h -31E4:D29F 00 1D 25 5B 09 01 db 00h, 1Dh, 25h, 5Bh, 09h, 01h -31E4:D2A5 00 00 00 22 08 02 db 00h, 00h, 00h, 22h, 08h, 02h -31E4:D2AB 00 00 80 2C 08 04 db 00h, 00h, 80h, 2Ch, 08h, 04h -31E4:D2B1 00 00 80 24 04 03 db 00h, 00h, 80h, 24h, 04h, 03h -31E4:D2B7 00 FC 24 5A 09 00 db 00h,0FCh, 24h, 5Ah, 09h, 00h -31E4:D2BD 00 09 25 5C 09 04 db 00h, 09h, 25h, 5Ch, 09h, 04h -31E4:D2C3 00 00 00 63 09 FF db 00h, 00h, 00h, 63h, 09h,0FFh -31E4:D2C9 FF 00 00 5D 09 00 db 0FFh, 00h, 00h, 5Dh, 09h, 00h -31E4:D2CF 00 00 00 A1 0A FF db 00h, 00h, 00h,0A1h, 0Ah,0FFh -31E4:D2D5 FF F6 D2 16 25 59 db 0FFh,0F6h,0D2h, 16h, 25h, 59h -31E4:D2DB 09 00 00 1D 25 5B db 09h, 00h, 00h, 1Dh, 25h, 5Bh -31E4:D2E1 09 01 00 00 80 38 db 09h, 01h, 00h, 00h, 80h, 38h -31E4:D2E7 08 02 00 db 08h, 02h, 00h -31E4:D2EA 0007[00] db 7 dup (0) -31E4:D2F1 80 24 04 03 00 FC db 80h, 24h, 04h, 03h, 00h,0FCh -31E4:D2F7 24 5A 09 00 00 09 db 24h, 5Ah, 09h, 00h, 00h, 09h -31E4:D2FD 25 5C 09 04 00 00 db 25h, 5Ch, 09h, 04h, 00h, 00h -31E4:D303 00 64 09 FF FF 00 db 00h, 64h, 09h,0FFh,0FFh, 00h -31E4:D309 00 5D 09 00 00 1C db 00h, 5Dh, 09h, 00h, 00h, 1Ch -31E4:D30F D3 00 80 24 04 00 db 0D3h, 00h, 80h, 24h, 04h, 00h -31E4:D315 00 00 80 66 09 01 db 00h, 00h, 80h, 66h, 09h, 01h -31E4:D31B 00 00 00 65 09 01 db 00h, 00h, 00h, 65h, 09h, 01h -31E4:D321 00 00 00 67 09 FF db 00h, 00h, 00h, 67h, 09h,0FFh -31E4:D327 FF 36 D3 00 80 0D db 0FFh, 36h,0D3h, 00h, 80h, 0Dh -31E4:D32D 0B 00 00 00 80 0F db 0Bh, 00h, 00h, 00h, 80h, 0Fh -31E4:D333 0B 01 00 00 00 0E db 0Bh, 01h, 00h, 00h, 00h, 0Eh -31E4:D339 0B 01 00 00 00 10 db 0Bh, 01h, 00h, 00h, 00h, 10h -31E4:D33F 0B FF FF 4A D3 00 db 0Bh,0FFh,0FFh, 4Ah,0D3h, 00h -31E4:D345 80 CA 09 00 00 00 db 80h,0CAh, 09h, 00h, 00h, 00h -31E4:D34B 00 11 0B FF FF 6A db 00h, 11h, 0Bh,0FFh,0FFh, 6Ah -31E4:D351 D3 69 23 03 09 00 db 0D3h, 69h, 23h, 03h, 09h, 00h -31E4:D357 00 00 80 40 09 02 db 00h, 00h, 80h, 40h, 09h, 02h -31E4:D35D 0008[00] db 8 dup (0) -31E4:D365 80 69 09 01 00 00 db 80h, 69h, 09h, 01h, 00h, 00h -31E4:D36B 00 68 09 03 00 00 db 00h, 68h, 09h, 03h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 545 - -31E4:D371 00 6A 09 FF FF 00 db 00h, 6Ah, 09h,0FFh,0FFh, 00h -31E4:D377 00 D2 09 FF FF 8A db 00h,0D2h, 09h,0FFh,0FFh, 8Ah -31E4:D37D D3 00 80 01 0C 00 db 0D3h, 00h, 80h, 01h, 0Ch, 00h -31E4:D383 00 00 80 03 0C 01 db 00h, 00h, 80h, 03h, 0Ch, 01h -31E4:D389 00 00 00 02 0C 01 db 00h, 00h, 00h, 02h, 0Ch, 01h -31E4:D38F 00 00 00 04 0C FF db 00h, 00h, 00h, 04h, 0Ch,0FFh -31E4:D395 FF AA D3 00 80 48 db 0FFh,0AAh,0D3h, 00h, 80h, 48h -31E4:D39B 09 00 db 09h, 00h -31E4:D39D 0008[00] db 8 dup (0) -31E4:D3A5 80 6C 09 01 00 00 db 80h, 6Ch, 09h, 01h, 00h, 00h -31E4:D3AB 00 6B 09 02 00 00 db 00h, 6Bh, 09h, 02h, 00h, 00h -31E4:D3B1 00 6D 09 FF FF CA db 00h, 6Dh, 09h,0FFh,0FFh,0CAh -31E4:D3B7 D3 00 80 97 09 00 db 0D3h, 00h, 80h, 97h, 09h, 00h -31E4:D3BD 00 db 00h -31E4:D3BE 0007[00] db 7 dup (0) -31E4:D3C5 80 99 09 01 00 00 db 80h, 99h, 09h, 01h, 00h, 00h -31E4:D3CB 00 98 09 02 00 00 db 00h, 98h, 09h, 02h, 00h, 00h -31E4:D3D1 00 9A 09 FF FF E4 db 00h, 9Ah, 09h,0FFh,0FFh,0E4h -31E4:D3D7 D3 00 80 97 09 00 db 0D3h, 00h, 80h, 97h, 09h, 00h -31E4:D3DD 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -31E4:D3E3 00 B7 26 9B 09 FF db 00h,0B7h, 26h, 9Bh, 09h,0FFh -31E4:D3E9 FF F2 D3 00 80 9C db 0FFh,0F2h,0D3h, 00h, 80h, 9Ch -31E4:D3EF 09 00 00 00 00 9D db 09h, 00h, 00h, 00h, 00h, 9Dh -31E4:D3F5 09 FF FF 0C D4 00 db 09h,0FFh,0FFh, 0Ch,0D4h, 00h -31E4:D3FB 00 38 0A 00 00 00 db 00h, 38h, 0Ah, 00h, 00h, 00h -31E4:D401 80 7F 0A 02 00 00 db 80h, 7Fh, 0Ah, 02h, 00h, 00h -31E4:D407 80 7D 0A 01 00 00 db 80h, 7Dh, 0Ah, 01h, 00h, 00h -31E4:D40D 00 7C 0A 02 00 00 db 00h, 7Ch, 0Ah, 02h, 00h, 00h -31E4:D413 00 7E 0A FF FF 00 db 00h, 7Eh, 0Ah,0FFh,0FFh, 00h -31E4:D419 00 80 0A FF FF 26 db 00h, 80h, 0Ah,0FFh,0FFh, 26h -31E4:D41F D4 00 80 D5 07 00 db 0D4h, 00h, 80h,0D5h, 07h, 00h -31E4:D425 00 00 00 94 A4 FF db 00h, 00h, 00h, 94h,0A4h,0FFh -31E4:D42B FF 52 D4 6D 23 36 db 0FFh, 52h,0D4h, 6Dh, 23h, 36h -31E4:D431 09 00 00 00 00 2E db 09h, 00h, 00h, 00h, 00h, 2Eh -31E4:D437 89 03 00 00 80 3A db 89h, 03h, 00h, 00h, 80h, 3Ah -31E4:D43D 09 04 00 db 09h, 04h, 00h -31E4:D440 0007[00] db 7 dup (0) -31E4:D447 80 2B 09 01 00 00 db 80h, 2Bh, 09h, 01h, 00h, 00h -31E4:D44D 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:D453 00 37 09 04 00 00 db 00h, 37h, 09h, 04h, 00h, 00h -31E4:D459 00 38 09 05 00 70 db 00h, 38h, 09h, 05h, 00h, 70h -31E4:D45F 24 24 04 FF FF 00 db 24h, 24h, 04h,0FFh,0FFh, 00h -31E4:D465 00 39 09 FF FF 00 db 00h, 39h, 09h,0FFh,0FFh, 00h -31E4:D46B 00 3B 09 FF FF 90 db 00h, 3Bh, 09h,0FFh,0FFh, 90h -31E4:D471 D4 00 00 6D 0B 08 db 0D4h, 00h, 00h, 6Dh, 0Bh, 08h -31E4:D477 00 00 80 40 09 00 db 00h, 00h, 80h, 40h, 09h, 00h -31E4:D47D 00 00 80 42 09 02 db 00h, 00h, 80h, 42h, 09h, 02h -31E4:D483 00 00 80 24 04 03 db 00h, 00h, 80h, 24h, 04h, 03h -31E4:D489 00 00 80 45 89 04 db 00h, 00h, 80h, 45h, 89h, 04h -31E4:D48F 00 A4 24 41 09 02 db 00h,0A4h, 24h, 41h, 09h, 02h -31E4:D495 00 00 00 4B 09 FF db 00h, 00h, 00h, 4Bh, 09h,0FFh -31E4:D49B FF 00 00 43 09 03 db 0FFh, 00h, 00h, 43h, 09h, 03h -31E4:D4A1 00 00 00 44 09 04 db 00h, 00h, 00h, 44h, 09h, 04h -31E4:D4A7 00 42 2A 46 09 FF db 00h, 42h, 2Ah, 46h, 09h,0FFh -31E4:D4AD FF 00 00 47 09 04 db 0FFh, 00h, 00h, 47h, 09h, 04h -31E4:D4B3 00 BB 24 49 09 07 db 00h,0BBh, 24h, 49h, 09h, 07h -31E4:D4B9 00 00 00 4A 09 FF db 00h, 00h, 00h, 4Ah, 09h,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 546 - -31E4:D4BF FF 00 00 72 0B 00 db 0FFh, 00h, 00h, 72h, 0Bh, 00h -31E4:D4C5 00 D4 D4 00 80 48 db 00h,0D4h,0D4h, 00h, 80h, 48h -31E4:D4CB 09 00 00 00 80 24 db 09h, 00h, 00h, 00h, 80h, 24h -31E4:D4D1 04 01 00 00 00 49 db 04h, 01h, 00h, 00h, 00h, 49h -31E4:D4D7 09 01 00 00 00 4A db 09h, 01h, 00h, 00h, 00h, 4Ah -31E4:D4DD 09 FF FF E8 D4 00 db 09h,0FFh,0FFh,0E8h,0D4h, 00h -31E4:D4E3 80 24 04 00 00 00 db 80h, 24h, 04h, 00h, 00h, 00h -31E4:D4E9 00 27 0B FF FF F6 db 00h, 27h, 0Bh,0FFh,0FFh,0F6h -31E4:D4EF D4 00 80 D5 07 00 db 0D4h, 00h, 80h,0D5h, 07h, 00h -31E4:D4F5 00 00 00 60 A4 FF db 00h, 00h, 00h, 60h,0A4h,0FFh -31E4:D4FB FF 22 D5 6D 23 29 db 0FFh, 22h,0D5h, 6Dh, 23h, 29h -31E4:D501 09 00 00 00 00 2E db 09h, 00h, 00h, 00h, 00h, 2Eh -31E4:D507 89 03 00 00 80 30 db 89h, 03h, 00h, 00h, 80h, 30h -31E4:D50D 09 04 00 db 09h, 04h, 00h -31E4:D510 0007[00] db 7 dup (0) -31E4:D517 80 2B 09 01 00 00 db 80h, 2Bh, 09h, 01h, 00h, 00h -31E4:D51D 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:D523 00 2A 09 04 00 00 db 00h, 2Ah, 09h, 04h, 00h, 00h -31E4:D529 00 2C 09 05 00 70 db 00h, 2Ch, 09h, 05h, 00h, 70h -31E4:D52F 24 24 04 FF FF 00 db 24h, 24h, 04h,0FFh,0FFh, 00h -31E4:D535 00 2F 09 FF FF 00 db 00h, 2Fh, 09h,0FFh,0FFh, 00h -31E4:D53B 00 31 09 FF FF 4E db 00h, 31h, 09h,0FFh,0FFh, 4Eh -31E4:D541 D5 00 80 24 04 00 db 0D5h, 00h, 80h, 24h, 04h, 00h -31E4:D547 00 00 80 14 0B 01 db 00h, 00h, 80h, 14h, 0Bh, 01h -31E4:D54D 00 00 00 13 0B 01 db 00h, 00h, 00h, 13h, 0Bh, 01h -31E4:D553 00 00 00 15 0B FF db 00h, 00h, 00h, 15h, 0Bh,0FFh -31E4:D559 FF 92 D5 00 00 6D db 0FFh, 92h,0D5h, 00h, 00h, 6Dh -31E4:D55F 8B 06 00 00 80 40 db 8Bh, 06h, 00h, 00h, 80h, 40h -31E4:D565 09 00 00 00 00 4D db 09h, 00h, 00h, 00h, 00h, 4Dh -31E4:D56B 09 01 00 00 80 42 db 09h, 01h, 00h, 00h, 80h, 42h -31E4:D571 09 02 00 00 80 24 db 09h, 02h, 00h, 00h, 80h, 24h -31E4:D577 04 03 00 00 80 51 db 04h, 03h, 00h, 00h, 80h, 51h -31E4:D57D 09 04 00 00 80 24 db 09h, 04h, 00h, 00h, 80h, 24h -31E4:D583 04 05 00 00 80 6F db 04h, 05h, 00h, 00h, 80h, 6Fh -31E4:D589 0B 07 00 00 80 24 db 0Bh, 07h, 00h, 00h, 80h, 24h -31E4:D58F 04 08 00 C8 24 4C db 04h, 08h, 00h,0C8h, 24h, 4Ch -31E4:D595 09 02 00 00 00 4E db 09h, 02h, 00h, 00h, 00h, 4Eh -31E4:D59B 09 FF FF DF 24 4F db 09h,0FFh,0FFh,0DFh, 24h, 4Fh -31E4:D5A1 09 04 00 00 00 50 db 09h, 04h, 00h, 00h, 00h, 50h -31E4:D5A7 09 05 00 00 00 52 db 09h, 05h, 00h, 00h, 00h, 52h -31E4:D5AD 09 06 00 00 00 53 db 09h, 06h, 00h, 00h, 00h, 53h -31E4:D5B3 09 FF FF 00 00 6E db 09h,0FFh,0FFh, 00h, 00h, 6Eh -31E4:D5B9 0B 07 00 00 00 70 db 0Bh, 07h, 00h, 00h, 00h, 70h -31E4:D5BF 0B 08 00 2F 2A 24 db 0Bh, 08h, 00h, 2Fh, 2Ah, 24h -31E4:D5C5 04 FF FF E2 D5 00 db 04h,0FFh,0FFh,0E2h,0D5h, 00h -31E4:D5CB 80 48 09 00 00 00 db 80h, 48h, 09h, 00h, 00h, 00h -31E4:D5D1 00 3A 0A 01 00 00 db 00h, 3Ah, 0Ah, 01h, 00h, 00h -31E4:D5D7 00 3C 0A 02 00 00 db 00h, 3Ch, 0Ah, 02h, 00h, 00h -31E4:D5DD 80 3E 0A 03 00 00 db 80h, 3Eh, 0Ah, 03h, 00h, 00h -31E4:D5E3 00 39 0A 01 00 00 db 00h, 39h, 0Ah, 01h, 00h, 00h -31E4:D5E9 00 3B 0A FF FF 00 db 00h, 3Bh, 0Ah,0FFh,0FFh, 00h -31E4:D5EF 00 3D 0A FF FF 00 db 00h, 3Dh, 0Ah,0FFh,0FFh, 00h -31E4:D5F5 00 3F 0A FF FF 02 db 00h, 3Fh, 0Ah,0FFh,0FFh, 02h -31E4:D5FB D6 00 80 D5 07 00 db 0D6h, 00h, 80h,0D5h, 07h, 00h -31E4:D601 00 00 00 85 A2 FF db 00h, 00h, 00h, 85h,0A2h,0FFh -31E4:D607 FF 1C D6 00 00 BD db 0FFh, 1Ch,0D6h, 00h, 00h,0BDh -31E4:D60D 08 02 00 00 80 F9 db 08h, 02h, 00h, 00h, 80h,0F9h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 547 - -31E4:D613 07 03 00 db 07h, 03h, 00h -31E4:D616 0008[00] db 8 dup (0) -31E4:D61E 91 08 00 00 00 00 db 91h, 08h, 00h, 00h, 00h, 00h -31E4:D624 BA 08 00 00 02 22 db 0BAh, 08h, 00h, 00h, 02h, 22h -31E4:D62A 95 A2 01 00 00 00 db 95h,0A2h, 01h, 00h, 00h, 00h -31E4:D630 BE 08 FF FF 42 D6 db 0BEh, 08h,0FFh,0FFh, 42h,0D6h -31E4:D636 00 00 BD 08 02 00 db 00h, 00h,0BDh, 08h, 02h, 00h -31E4:D63C 00 80 FB 07 03 00 db 00h, 80h,0FBh, 07h, 03h, 00h -31E4:D642 00 00 91 08 00 00 db 00h, 00h, 91h, 08h, 00h, 00h -31E4:D648 00 00 BA 08 00 00 db 00h, 00h,0BAh, 08h, 00h, 00h -31E4:D64E 02 22 95 A2 01 00 db 02h, 22h, 95h,0A2h, 01h, 00h -31E4:D654 00 00 BF 08 FF FF db 00h, 00h,0BFh, 08h,0FFh,0FFh -31E4:D65A 6E D6 00 00 BD 08 db 6Eh,0D6h, 00h, 00h,0BDh, 08h -31E4:D660 02 00 00 00 22 08 db 02h, 00h, 00h, 00h, 22h, 08h -31E4:D666 03 00 00 80 2C 08 db 03h, 00h, 00h, 80h, 2Ch, 08h -31E4:D66C 04 00 00 00 91 08 db 04h, 00h, 00h, 00h, 91h, 08h -31E4:D672 00 00 00 00 BA 08 db 00h, 00h, 00h, 00h,0BAh, 08h -31E4:D678 00 00 02 22 95 A2 db 00h, 00h, 02h, 22h, 95h,0A2h -31E4:D67E 01 00 00 00 C0 08 db 01h, 00h, 00h, 00h,0C0h, 08h -31E4:D684 FF FF 00 00 E3 0A db 0FFh,0FFh, 00h, 00h,0E3h, 0Ah -31E4:D68A FF FF 9A D6 00 00 db 0FFh,0FFh, 9Ah,0D6h, 00h, 00h -31E4:D690 BD 08 02 00 00 80 db 0BDh, 08h, 02h, 00h, 00h, 80h -31E4:D696 38 08 03 00 00 00 db 38h, 08h, 03h, 00h, 00h, 00h -31E4:D69C 91 08 00 00 00 00 db 91h, 08h, 00h, 00h, 00h, 00h -31E4:D6A2 BA 08 00 00 02 22 db 0BAh, 08h, 00h, 00h, 02h, 22h -31E4:D6A8 95 A2 01 00 00 00 db 95h,0A2h, 01h, 00h, 00h, 00h -31E4:D6AE C1 08 FF FF BA D6 db 0C1h, 08h,0FFh,0FFh,0BAh,0D6h -31E4:D6B4 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:D6BA 00 00 C2 08 FF FF db 00h, 00h,0C2h, 08h,0FFh,0FFh -31E4:D6C0 D4 D6 00 80 CA db 0D4h,0D6h, 00h, 80h,0CAh -31E4:D6C5 09 db 9 -31E4:D6C6 0009[00] db 9 dup (0) -31E4:D6CF 80 24 04 db 80h, 24h, 04h -31E4:D6D2 01 data_1167 db 1 ; Data table (indexed access) -31E4:D6D3 00 00 00 E9 09 02 db 00h, 00h, 00h,0E9h, 09h, 02h -31E4:D6D9 00 3B 28 24 04 FF db 00h, 3Bh, 28h, 24h, 04h,0FFh -31E4:D6DF FF FA D6 69 23 03 db 0FFh,0FAh,0D6h, 69h, 23h, 03h -31E4:D6E5 09 00 00 00 00 ED db 09h, 00h, 00h, 00h, 00h,0EDh -31E4:D6EB 09 01 00 00 80 EF db 09h, 01h, 00h, 00h, 80h,0EFh -31E4:D6F1 09 02 00 db 09h, 02h, 00h -31E4:D6F4 0008[00] db 8 dup (0) -31E4:D6FC EC 09 FF FF 00 00 db 0ECh, 09h,0FFh,0FFh, 00h, 00h -31E4:D702 EE 09 FF FF 00 00 db 0EEh, 09h,0FFh,0FFh, 00h, 00h -31E4:D708 F0 09 FF FF 14 D7 db 0F0h, 09h,0FFh,0FFh, 14h,0D7h -31E4:D70E 00 80 40 09 00 00 db 00h, 80h, 40h, 09h, 00h, 00h -31E4:D714 00 00 EB 09 FF FF db 00h, 00h,0EBh, 09h,0FFh,0FFh -31E4:D71A 22 D7 00 80 48 09 db 22h,0D7h, 00h, 80h, 48h, 09h -31E4:D720 00 00 00 00 F1 09 db 00h, 00h, 00h, 00h,0F1h, 09h -31E4:D726 FF FF 30 D7 00 80 db 0FFh,0FFh, 30h,0D7h, 00h, 80h -31E4:D72C 92 09 00 00 00 00 db 92h, 09h, 00h, 00h, 00h, 00h -31E4:D732 F2 09 FF FF 3E D7 db 0F2h, 09h,0FFh,0FFh, 3Eh,0D7h -31E4:D738 00 80 38 0A 00 00 db 00h, 80h, 38h, 0Ah, 00h, 00h -31E4:D73E 00 00 0C 0B FF FF db 00h, 00h, 0Ch, 0Bh,0FFh,0FFh -31E4:D744 52 D7 00 80 24 04 db 52h,0D7h, 00h, 80h, 24h, 04h -31E4:D74A 00 00 00 80 24 04 db 00h, 00h, 00h, 80h, 24h, 04h -31E4:D750 01 00 00 00 B1 08 db 01h, 00h, 00h, 00h,0B1h, 08h -31E4:D756 01 00 96 2A 24 04 db 01h, 00h, 96h, 2Ah, 24h, 04h -31E4:D75C FF FF 7E D7 00 80 db 0FFh,0FFh, 7Eh,0D7h, 00h, 80h -31E4:D762 B2 08 00 00 00 80 db 0B2h, 08h, 00h, 00h, 00h, 80h -31E4:D768 B4 08 01 00 72 A2 db 0B4h, 08h, 01h, 00h, 72h,0A2h -31E4:D76E B7 08 04 00 00 80 db 0B7h, 08h, 04h, 00h, 00h, 80h -31E4:D774 24 04 03 00 00 80 db 24h, 04h, 03h, 00h, 00h, 80h -31E4:D77A 6F 09 02 00 00 00 db 6Fh, 09h, 02h, 00h, 00h, 00h -31E4:D780 B3 08 01 00 00 00 db 0B3h, 08h, 01h, 00h, 00h, 00h -31E4:D786 B5 08 02 00 00 00 db 0B5h, 08h, 02h, 00h, 00h, 00h -31E4:D78C B8 08 03 00 00 00 db 0B8h, 08h, 03h, 00h, 00h, 00h -31E4:D792 24 04 FF FF 00 00 db 24h, 04h,0FFh,0FFh, 00h, 00h -31E4:D798 6E 09 04 00 A4 D7 db 6Eh, 09h, 04h, 00h,0A4h,0D7h -31E4:D79E 00 80 CA 09 00 00 db 00h, 80h,0CAh, 09h, 00h, 00h -31E4:D7A4 00 00 31 0B FF FF db 00h, 00h, 31h, 0Bh,0FFh,0FFh -31E4:D7AA B8 D7 69 23 03 09 db 0B8h,0D7h, 69h, 23h, 03h, 09h -31E4:D7B0 00 00 00 80 75 0A db 00h, 00h, 00h, 80h, 75h, 0Ah -31E4:D7B6 01 00 00 00 70 09 db 01h, 00h, 00h, 00h, 70h, 09h -31E4:D7BC FF FF 00 00 81 0C db 0FFh,0FFh, 00h, 00h, 81h, 0Ch -31E4:D7C2 FF FF CC D7 00 80 db 0FFh,0FFh,0CCh,0D7h, 00h, 80h -31E4:D7C8 EF 09 00 00 00 00 db 0EFh, 09h, 00h, 00h, 00h, 00h -31E4:D7CE 32 0B FF FF DA D7 db 32h, 0Bh,0FFh,0FFh,0DAh,0D7h -31E4:D7D4 00 80 40 09 00 00 db 00h, 80h, 40h, 09h, 00h, 00h -31E4:D7DA 00 00 33 0B FF FF db 00h, 00h, 33h, 0Bh,0FFh,0FFh -31E4:D7E0 E8 D7 00 80 2E 0B db 0E8h,0D7h, 00h, 80h, 2Eh, 0Bh -31E4:D7E6 00 00 00 00 34 0B db 00h, 00h, 00h, 00h, 34h, 0Bh -31E4:D7EC FF FF 38 D8 00 00 db 0FFh,0FFh, 38h,0D8h, 00h, 00h -31E4:D7F2 48 09 00 00 00 80 db 48h, 09h, 00h, 00h, 00h, 80h -31E4:D7F8 7D 09 01 db 7Dh, 09h, 01h -31E4:D7FB 0009[00] db 9 dup (0) -31E4:D804 7F data_1170 db 7Fh -31E4:D805 09 03 00 00 00 80 db 09h, 03h, 00h, 00h, 00h, 80h -31E4:D80B 09 02 00 00 80 81 db 09h, 02h, 00h, 00h, 80h, 81h -31E4:D811 09 04 00 00 00 83 db 09h, 04h, 00h, 00h, 00h, 83h -31E4:D817 09 05 00 00 00 86 db 09h, 05h, 00h, 00h, 00h, 86h -31E4:D81D 09 06 00 00 80 89 db 09h, 06h, 00h, 00h, 80h, 89h -31E4:D823 09 07 00 00 80 85 db 09h, 07h, 00h, 00h, 80h, 85h -31E4:D829 09 08 00 00 80 88 db 09h, 08h, 00h, 00h, 80h, 88h -31E4:D82F 09 08 00 00 80 61 db 09h, 08h, 00h, 00h, 80h, 61h -31E4:D835 0B 0B 00 00 00 7C db 0Bh, 0Bh, 00h, 00h, 00h, 7Ch -31E4:D83B 09 FF FF 00 00 7E db 09h,0FFh,0FFh, 00h, 00h, 7Eh -31E4:D841 09 03 00 8F 25 82 db 09h, 03h, 00h, 8Fh, 25h, 82h -31E4:D847 09 06 00 82 25 82 db 09h, 06h, 00h, 82h, 25h, 82h -31E4:D84D 09 06 00 9C 25 82 db 09h, 06h, 00h, 9Ch, 25h, 82h -31E4:D853 09 06 00 00 00 84 db 09h, 06h, 00h, 00h, 00h, 84h -31E4:D859 09 09 00 00 00 87 db 09h, 09h, 00h, 00h, 00h, 87h -31E4:D85F 09 0A 00 00 00 8A db 09h, 0Ah, 00h, 00h, 00h, 8Ah -31E4:D865 09 0A 00 24 25 8C db 09h, 0Ah, 00h, 24h, 25h, 8Ch -31E4:D86B 09 FF FF 00 00 5F db 09h,0FFh,0FFh, 00h, 00h, 5Fh -31E4:D871 0B FF FF 00 00 60 db 0Bh,0FFh,0FFh, 00h, 00h, 60h -31E4:D877 0B 0B 00 00 00 62 db 0Bh, 0Bh, 00h, 00h, 00h, 62h -31E4:D87D 0B FF FF A0 D8 A9 db 0Bh,0FFh,0FFh,0A0h,0D8h,0A9h -31E4:D883 25 63 0B 04 00 BA db 25h, 63h, 0Bh, 04h, 00h,0BAh -31E4:D889 25 8D 09 00 00 00 db 25h, 8Dh, 09h, 00h, 00h, 00h -31E4:D88F 80 48 09 03 db 80h, 48h, 09h, 03h -31E4:D893 0008[00] db 8 dup (0) -31E4:D89B 80 90 09 02 00 87 db 80h, 90h, 09h, 02h, 00h, 87h -31E4:D8A1 26 8E 09 FF FF 00 db 26h, 8Eh, 09h,0FFh,0FFh, 00h -31E4:D8A7 00 8F 09 04 00 9E db 00h, 8Fh, 09h, 04h, 00h, 9Eh -31E4:D8AD 26 91 09 FF FF 00 db 26h, 91h, 09h,0FFh,0FFh, 00h -31E4:D8B3 00 7C 09 FF FF 00 db 00h, 7Ch, 09h,0FFh,0FFh, 00h -31E4:D8B9 00 64 0B FF FF D2 db 00h, 64h, 0Bh,0FFh,0FFh,0D2h -31E4:D8BF D8 00 80 92 09 00 db 0D8h, 00h, 80h, 92h, 09h, 00h -31E4:D8C5 00 db 00h -31E4:D8C6 0007[00] db 7 dup (0) -31E4:D8CD 80 94 09 01 00 00 db 80h, 94h, 09h, 01h, 00h, 00h -31E4:D8D3 00 93 09 02 00 CE db 00h, 93h, 09h, 02h, 00h,0CEh -31E4:D8D9 26 95 09 FF FF E6 db 26h, 95h, 09h,0FFh,0FFh,0E6h -31E4:D8DF D8 00 80 72 0C 00 db 0D8h, 00h, 80h, 72h, 0Ch, 00h -31E4:D8E5 00 00 00 73 0C FF db 00h, 00h, 00h, 73h, 0Ch,0FFh -31E4:D8EB FF 0C D9 00 80 A7 db 0FFh, 0Ch,0D9h, 00h, 80h,0A7h -31E4:D8F1 09 00 00 00 80 A9 db 09h, 00h, 00h, 00h, 80h,0A9h -31E4:D8F7 09 02 00 00 80 24 db 09h, 02h, 00h, 00h, 80h, 24h -31E4:D8FD 04 03 00 00 80 AC db 04h, 03h, 00h, 00h, 80h,0ACh -31E4:D903 09 04 00 00 80 AE db 09h, 04h, 00h, 00h, 80h,0AEh -31E4:D909 09 05 00 FD 26 AB db 09h, 05h, 00h,0FDh, 26h,0ABh -31E4:D90F 09 FF FF 00 00 A8 db 09h,0FFh,0FFh, 00h, 00h,0A8h -31E4:D915 09 01 00 00 00 AA db 09h, 01h, 00h, 00h, 00h,0AAh -31E4:D91B 09 02 00 38 27 AD db 09h, 02h, 00h, 38h, 27h,0ADh -31E4:D921 09 03 00 00 00 24 db 09h, 03h, 00h, 00h, 00h, 24h -31E4:D927 04 04 00 00 00 AF db 04h, 04h, 00h, 00h, 00h,0AFh -31E4:D92D 09 FF FF 00 80 24 db 09h,0FFh,0FFh, 00h, 80h, 24h -31E4:D933 04 66 D9 00 00 D5 db 04h, 66h,0D9h, 00h, 00h,0D5h -31E4:D939 09 00 00 00 00 D7 db 09h, 00h, 00h, 00h, 00h,0D7h -31E4:D93F 09 01 00 00 00 D9 db 09h, 01h, 00h, 00h, 00h,0D9h -31E4:D945 09 02 00 00 80 DD db 09h, 02h, 00h, 00h, 80h,0DDh -31E4:D94B 09 04 00 00 80 DB db 09h, 04h, 00h, 00h, 80h,0DBh -31E4:D951 09 03 00 00 00 DF db 09h, 03h, 00h, 00h, 00h,0DFh -31E4:D957 09 05 00 00 00 E1 db 09h, 05h, 00h, 00h, 00h,0E1h -31E4:D95D 09 06 00 00 80 E2 db 09h, 06h, 00h, 00h, 80h,0E2h -31E4:D963 09 07 00 00 00 D6 db 09h, 07h, 00h, 00h, 00h,0D6h -31E4:D969 09 FF FF 00 00 74 db 09h,0FFh,0FFh, 00h, 00h, 74h -31E4:D96F 0C FF FF 00 00 DA db 0Ch,0FFh,0FFh, 00h, 00h,0DAh -31E4:D975 09 04 00 00 00 DC db 09h, 04h, 00h, 00h, 00h,0DCh -31E4:D97B 09 FF FF 00 00 DE db 09h,0FFh,0FFh, 00h, 00h,0DEh -31E4:D981 09 05 00 00 00 E0 db 09h, 05h, 00h, 00h, 00h,0E0h -31E4:D987 09 FF FF 00 00 E3 db 09h,0FFh,0FFh, 00h, 00h,0E3h -31E4:D98D 09 FF FF 00 00 E4 db 09h,0FFh,0FFh, 00h, 00h,0E4h -31E4:D993 09 FF FF B0 D9 00 db 09h,0FFh,0FFh,0B0h,0D9h, 00h -31E4:D999 00 E5 09 00 00 00 db 00h,0E5h, 09h, 00h, 00h, 00h -31E4:D99F 80 E4 0A 02 00 00 db 80h,0E4h, 0Ah, 02h, 00h, 00h -31E4:D9A5 80 E7 09 01 00 00 db 80h,0E7h, 09h, 01h, 00h, 00h -31E4:D9AB 80 E6 0A 03 00 00 db 80h,0E6h, 0Ah, 03h, 00h, 00h -31E4:D9B1 00 E6 09 02 00 00 db 00h,0E6h, 09h, 02h, 00h, 00h -31E4:D9B7 00 E8 09 FF FF 00 db 00h,0E8h, 09h,0FFh,0FFh, 00h -31E4:D9BD 00 E5 0A 03 00 00 db 00h,0E5h, 0Ah, 03h, 00h, 00h -31E4:D9C3 00 24 04 FF FF E2 db 00h, 24h, 04h,0FFh,0FFh,0E2h -31E4:D9C9 D9 00 80 38 0A 00 db 0D9h, 00h, 80h, 38h, 0Ah, 00h -31E4:D9CF 00 00 80 37 0B 01 db 00h, 00h, 80h, 37h, 0Bh, 01h -31E4:D9D5 00 00 80 24 04 02 db 00h, 00h, 80h, 24h, 04h, 02h -31E4:D9DB 00 00 80 6E 09 03 db 00h, 00h, 80h, 6Eh, 09h, 03h -31E4:D9E1 00 00 00 36 0B 01 db 00h, 00h, 00h, 36h, 0Bh, 01h -31E4:D9E7 00 00 00 38 0B 02 db 00h, 00h, 00h, 38h, 0Bh, 02h -31E4:D9ED 00 00 00 39 0B 03 db 00h, 00h, 00h, 39h, 0Bh, 03h -31E4:D9F3 00 00 00 3A 0B FF db 00h, 00h, 00h, 3Ah, 0Bh,0FFh -31E4:D9F9 FF 02 DA 00 80 80 db 0FFh, 02h,0DAh, 00h, 80h, 80h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 550 - -31E4:D9FF 08 00 00 00 00 db 08h, 00h, 00h, 00h, 00h -31E4:DA04 81 data_1173 db 81h -31E4:DA05 08 FF FF 22 DA B5 db 08h,0FFh,0FFh, 22h,0DAh,0B5h -31E4:DA0B 27 B0 09 00 00 D5 db 27h,0B0h, 09h, 00h, 00h,0D5h -31E4:DA11 A7 B2 09 01 00 00 db 0A7h,0B2h, 09h, 01h, 00h, 00h -31E4:DA17 80 B4 09 02 00 00 db 80h,0B4h, 09h, 02h, 00h, 00h -31E4:DA1D 80 B6 09 03 00 00 db 80h,0B6h, 09h, 03h, 00h, 00h -31E4:DA23 00 B1 09 FF FF A9 db 00h,0B1h, 09h,0FFh,0FFh,0A9h -31E4:DA29 2A B3 09 02 00 00 db 2Ah,0B3h, 09h, 02h, 00h, 00h -31E4:DA2F 00 B5 09 03 00 00 db 00h,0B5h, 09h, 03h, 00h, 00h -31E4:DA35 00 24 04 FF FF 5A db 00h, 24h, 04h,0FFh,0FFh, 5Ah -31E4:DA3B DA 00 80 D5 07 00 db 0DAh, 00h, 80h,0D5h, 07h, 00h -31E4:DA41 00 00 80 DE 08 01 db 00h, 00h, 80h,0DEh, 08h, 01h -31E4:DA47 00 00 00 E0 08 02 db 00h, 00h, 00h,0E0h, 08h, 02h -31E4:DA4D 00 00 80 E2 08 03 db 00h, 00h, 80h,0E2h, 08h, 03h -31E4:DA53 00 00 80 24 04 04 db 00h, 00h, 80h, 24h, 04h, 04h -31E4:DA59 00 00 00 B5 A2 01 db 00h, 00h, 00h,0B5h,0A2h, 01h -31E4:DA5F 00 00 00 DF 08 02 db 00h, 00h, 00h,0DFh, 08h, 02h -31E4:DA65 00 00 00 E1 08 04 db 00h, 00h, 00h,0E1h, 08h, 04h -31E4:DA6B 00 00 00 E3 08 FF db 00h, 00h, 00h,0E3h, 08h,0FFh -31E4:DA71 FF 58 28 24 04 FF db 0FFh, 58h, 28h, 24h, 04h,0FFh -31E4:DA77 FF 92 DA 00 00 F9 db 0FFh, 92h,0DAh, 00h, 00h,0F9h -31E4:DA7D 07 00 00 71 A8 F4 db 07h, 00h, 00h, 71h,0A8h,0F4h -31E4:DA83 09 01 db 09h, 01h -31E4:DA85 00 00 00 00 db 0, 0, 0, 0 -31E4:DA89 0000 data_1175 dw 0 ; Data table (indexed access) -31E4:DA8B 00 00 80 24 04 02 db 00h, 00h, 80h, 24h, 04h, 02h -31E4:DA91 00 00 00 E4 08 FF db 00h, 00h, 00h,0E4h, 08h,0FFh -31E4:DA97 FF 00 00 E1 08 03 db 0FFh, 00h, 00h,0E1h, 08h, 03h -31E4:DA9D 00 58 28 24 04 FF db 00h, 58h, 28h, 24h, 04h,0FFh -31E4:DAA3 FF BE DA 00 00 FB db 0FFh,0BEh,0DAh, 00h, 00h,0FBh -31E4:DAA9 07 00 00 71 A8 F4 db 07h, 00h, 00h, 71h,0A8h,0F4h -31E4:DAAF 09 01 db 09h, 01h -31E4:DAB1 0008[00] db 8 dup (0) -31E4:DAB9 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:DABF 00 E5 08 FF FF 00 db 00h,0E5h, 08h,0FFh,0FFh, 00h -31E4:DAC5 00 E1 08 03 00 58 db 00h,0E1h, 08h, 03h, 00h, 58h -31E4:DACB 28 24 04 FF FF EA db 28h, 24h, 04h,0FFh,0FFh,0EAh -31E4:DAD1 DA 00 00 22 08 00 db 0DAh, 00h, 00h, 22h, 08h, 00h -31E4:DAD7 00 71 28 F4 09 02 db 00h, 71h, 28h,0F4h, 09h, 02h -31E4:DADD 00 00 80 2C 08 01 db 00h, 00h, 80h, 2Ch, 08h, 01h -31E4:DAE3 00 00 80 24 04 03 db 00h, 00h, 80h, 24h, 04h, 03h -31E4:DAE9 00 00 00 E6 08 FF db 00h, 00h, 00h,0E6h, 08h,0FFh -31E4:DAEF FF 00 00 81 0A FF db 0FFh, 00h, 00h, 81h, 0Ah,0FFh -31E4:DAF5 FF 00 00 E1 08 03 db 0FFh, 00h, 00h,0E1h, 08h, 03h -31E4:DAFB 00 58 28 24 04 FF db 00h, 58h, 28h, 24h, 04h,0FFh -31E4:DB01 FF 16 DB 71 28 F4 db 0FFh, 16h,0DBh, 71h, 28h,0F4h -31E4:DB07 09 01 00 00 80 38 db 09h, 01h, 00h, 00h, 80h, 38h -31E4:DB0D 08 00 00 00 80 24 db 08h, 00h, 00h, 00h, 80h, 24h -31E4:DB13 04 02 00 00 00 E7 db 04h, 02h, 00h, 00h, 00h,0E7h -31E4:DB19 08 FF FF 00 00 E1 db 08h,0FFh,0FFh, 00h, 00h,0E1h -31E4:DB1F 08 02 00 58 28 24 db 08h, 02h, 00h, 58h, 28h, 24h -31E4:DB25 04 FF FF 30 DB 00 db 04h,0FFh,0FFh, 30h,0DBh, 00h -31E4:DB2B 80 F5 09 00 00 00 db 80h,0F5h, 09h, 00h, 00h, 00h -31E4:DB31 00 F6 09 FF FF 56 db 00h,0F6h, 09h,0FFh,0FFh, 56h -31E4:DB37 DB 00 80 24 04 00 db 0DBh, 00h, 80h, 24h, 04h, 00h -31E4:DB3D 00 00 00 EE 08 01 db 00h, 00h, 00h,0EEh, 08h, 01h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 551 - -31E4:DB43 00 00 00 F1 88 02 db 00h, 00h, 00h,0F1h, 88h, 02h -31E4:DB49 00 00 80 EF 08 03 db 00h, 00h, 80h,0EFh, 08h, 03h -31E4:DB4F 00 00 80 24 04 04 db 00h, 00h, 80h, 24h, 04h, 04h -31E4:DB55 00 00 00 C5 A2 01 db 00h, 00h, 00h,0C5h,0A2h, 01h -31E4:DB5B 00 00 00 24 04 FF db 00h, 00h, 00h, 24h, 04h,0FFh -31E4:DB61 FF 00 00 F2 08 01 db 0FFh, 00h, 00h,0F2h, 08h, 01h -31E4:DB67 00 00 00 24 04 04 db 00h, 00h, 00h, 24h, 04h, 04h -31E4:DB6D 00 F6 22 24 04 FF db 00h,0F6h, 22h, 24h, 04h,0FFh -31E4:DB73 FF 88 DB 00 80 24 db 0FFh, 88h,0DBh, 00h, 80h, 24h -31E4:DB79 04 00 00 00 80 3C db 04h, 00h, 00h, 00h, 80h, 3Ch -31E4:DB7F 0B 01 00 00 80 3E db 0Bh, 01h, 00h, 00h, 80h, 3Eh -31E4:DB85 0B 02 00 00 00 3B db 0Bh, 02h, 00h, 00h, 00h, 3Bh -31E4:DB8B 0B 01 00 00 00 3D db 0Bh, 01h, 00h, 00h, 00h, 3Dh -31E4:DB91 0B 02 00 00 00 3F db 0Bh, 02h, 00h, 00h, 00h, 3Fh -31E4:DB97 0B FF FF A8 DB 69 db 0Bh,0FFh,0FFh,0A8h,0DBh, 69h -31E4:DB9D 23 03 09 00 00 00 db 23h, 03h, 09h, 00h, 00h, 00h -31E4:DBA3 80 F8 09 01 00 00 db 80h,0F8h, 09h, 01h, 00h, 00h -31E4:DBA9 00 F7 09 FF FF 00 db 00h,0F7h, 09h,0FFh,0FFh, 00h -31E4:DBAF 00 F9 09 FF FF C8 db 00h,0F9h, 09h,0FFh,0FFh,0C8h -31E4:DBB5 DB 00 00 40 09 00 db 0DBh, 00h, 00h, 40h, 09h, 00h -31E4:DBBB 00 00 80 75 0A 01 db 00h, 00h, 80h, 75h, 0Ah, 01h -31E4:DBC1 00 00 80 29 0B 02 db 00h, 00h, 80h, 29h, 0Bh, 02h -31E4:DBC7 00 00 00 AC 0A FF db 00h, 00h, 00h,0ACh, 0Ah,0FFh -31E4:DBCD FF 00 00 28 0B 02 db 0FFh, 00h, 00h, 28h, 0Bh, 02h -31E4:DBD3 00 00 00 2A 0B FF db 00h, 00h, 00h, 2Ah, 0Bh,0FFh -31E4:DBD9 FF E2 DB 00 80 48 db 0FFh,0E2h,0DBh, 00h, 80h, 48h -31E4:DBDF 09 00 00 00 00 2B db 09h, 00h, 00h, 00h, 00h, 2Bh -31E4:DBE5 0B FF FF F0 DB 00 db 0Bh,0FFh,0FFh,0F0h,0DBh, 00h -31E4:DBEB 80 2E 0B 00 00 00 db 80h, 2Eh, 0Bh, 00h, 00h, 00h -31E4:DBF1 00 2C 0B FF FF FE db 00h, 2Ch, 0Bh,0FFh,0FFh,0FEh -31E4:DBF7 DB 00 80 92 09 00 db 0DBh, 00h, 80h, 92h, 09h, 00h -31E4:DBFD 00 00 00 2D 0B FF db 00h, 00h, 00h, 2Dh, 0Bh,0FFh -31E4:DC03 FF 12 DC 00 80 38 db 0FFh, 12h,0DCh, 00h, 80h, 38h -31E4:DC09 0A 00 00 00 80 2F db 0Ah, 00h, 00h, 00h, 80h, 2Fh -31E4:DC0F 0B 01 00 00 00 09 db 0Bh, 01h, 00h, 00h, 00h, 09h -31E4:DC15 0B 01 00 00 00 30 db 0Bh, 01h, 00h, 00h, 00h, 30h -31E4:DC1B 0B FF FF 50 DC 00 db 0Bh,0FFh,0FFh, 50h,0DCh, 00h -31E4:DC21 80 D5 07 00 00 00 db 80h,0D5h, 07h, 00h, 00h, 00h -31E4:DC27 80 5E 0A 01 00 00 db 80h, 5Eh, 0Ah, 01h, 00h, 00h -31E4:DC2D 80 60 0A 02 00 00 db 80h, 60h, 0Ah, 02h, 00h, 00h -31E4:DC33 80 62 0A 03 00 00 db 80h, 62h, 0Ah, 03h, 00h, 00h -31E4:DC39 80 24 04 04 00 00 db 80h, 24h, 04h, 04h, 00h, 00h -31E4:DC3F 80 65 0A 05 00 00 db 80h, 65h, 0Ah, 05h, 00h, 00h -31E4:DC45 80 67 0A 06 00 00 db 80h, 67h, 0Ah, 06h, 00h, 00h -31E4:DC4B 80 69 0A 07 00 00 db 80h, 69h, 0Ah, 07h, 00h, 00h -31E4:DC51 00 3F A2 01 00 00 db 00h, 3Fh,0A2h, 01h, 00h, 00h -31E4:DC57 00 5F 0A 02 00 00 db 00h, 5Fh, 0Ah, 02h, 00h, 00h -31E4:DC5D 00 61 0A 03 00 00 db 00h, 61h, 0Ah, 03h, 00h, 00h -31E4:DC63 00 63 0A 04 00 00 db 00h, 63h, 0Ah, 04h, 00h, 00h -31E4:DC69 00 64 0A 05 00 00 db 00h, 64h, 0Ah, 05h, 00h, 00h -31E4:DC6F 00 66 0A 06 00 00 db 00h, 66h, 0Ah, 06h, 00h, 00h -31E4:DC75 00 68 0A 07 00 00 db 00h, 68h, 0Ah, 07h, 00h, 00h -31E4:DC7B 00 6A 0A FF FF 88 db 00h, 6Ah, 0Ah,0FFh,0FFh, 88h -31E4:DC81 DC 00 80 F9 07 00 db 0DCh, 00h, 80h,0F9h, 07h, 00h -31E4:DC87 00 00 00 4F A2 FF db 00h, 00h, 00h, 4Fh,0A2h,0FFh -31E4:DC8D FF 96 DC 00 80 FB db 0FFh, 96h,0DCh, 00h, 80h,0FBh -31E4:DC93 07 00 00 00 00 AB db 07h, 00h, 00h, 00h, 00h,0ABh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 552 - -31E4:DC99 08 FF FF AA DC 00 db 08h,0FFh,0FFh,0AAh,0DCh, 00h -31E4:DC9F 00 22 08 00 00 00 db 00h, 22h, 08h, 00h, 00h, 00h -31E4:DCA5 80 2C 08 01 00 00 db 80h, 2Ch, 08h, 01h, 00h, 00h -31E4:DCAB 00 AC 08 FF FF 00 db 00h,0ACh, 08h,0FFh,0FFh, 00h -31E4:DCB1 00 6B 0A FF FF BE db 00h, 6Bh, 0Ah,0FFh,0FFh,0BEh -31E4:DCB7 DC 00 80 38 08 00 db 0DCh, 00h, 80h, 38h, 08h, 00h -31E4:DCBD 00 00 00 AD 08 FF db 00h, 00h, 00h,0ADh, 08h,0FFh -31E4:DCC3 FF D2 DC 00 80 24 db 0FFh,0D2h,0DCh, 00h, 80h, 24h -31E4:DCC9 04 00 00 00 80 AF db 04h, 00h, 00h, 00h, 80h,0AFh -31E4:DCCF 08 01 00 00 00 AE db 08h, 01h, 00h, 00h, 00h,0AEh -31E4:DCD5 08 01 00 00 00 B0 db 08h, 01h, 00h, 00h, 00h,0B0h -31E4:DCDB 08 FF FF E6 DC 00 db 08h,0FFh,0FFh,0E6h,0DCh, 00h -31E4:DCE1 80 0D 0B 00 00 00 db 80h, 0Dh, 0Bh, 00h, 00h, 00h -31E4:DCE7 00 FD 0B FF FF 00 db 00h,0FDh, 0Bh,0FFh,0FFh, 00h -31E4:DCED DD 69 A3 03 db 0DDh, 69h,0A3h, 03h -31E4:DCF1 09 db 9 -31E4:DCF2 0009[00] db 9 dup (0) -31E4:DCFB 80 6D 0A 01 00 00 db 80h, 6Dh, 0Ah, 01h, 00h, 00h -31E4:DD01 00 6C 0A 02 00 00 db 00h, 6Ch, 0Ah, 02h, 00h, 00h -31E4:DD07 00 6E 0A FF FF 20 db 00h, 6Eh, 0Ah,0FFh,0FFh, 20h -31E4:DD0D DD 00 80 40 09 00 db 0DDh, 00h, 80h, 40h, 09h, 00h -31E4:DD13 00 00 00 70 0A 01 db 00h, 00h, 00h, 70h, 0Ah, 01h -31E4:DD19 00 00 80 72 0A 02 db 00h, 00h, 80h, 72h, 0Ah, 02h -31E4:DD1F 00 00 00 6F 0A 01 db 00h, 00h, 00h, 6Fh, 0Ah, 01h -31E4:DD25 00 00 00 71 0A FF db 00h, 00h, 00h, 71h, 0Ah,0FFh -31E4:DD2B FF 00 00 73 0A FF db 0FFh, 00h, 00h, 73h, 0Ah,0FFh -31E4:DD31 FF 3A DD 00 80 48 db 0FFh, 3Ah,0DDh, 00h, 80h, 48h -31E4:DD37 09 00 00 00 00 62 db 09h, 00h, 00h, 00h, 00h, 62h -31E4:DD3D 0C FF FF 48 DD 00 db 0Ch,0FFh,0FFh, 48h,0DDh, 00h -31E4:DD43 80 92 09 00 00 00 db 80h, 92h, 09h, 00h, 00h, 00h -31E4:DD49 00 63 0C FF FF 62 db 00h, 63h, 0Ch,0FFh,0FFh, 62h -31E4:DD4F DD 00 00 38 0A 00 db 0DDh, 00h, 00h, 38h, 0Ah, 00h -31E4:DD55 00 00 80 1F 0B 01 db 00h, 00h, 80h, 1Fh, 0Bh, 01h -31E4:DD5B 00 00 80 66 0C 02 db 00h, 00h, 80h, 66h, 0Ch, 02h -31E4:DD61 00 00 00 64 0C FF db 00h, 00h, 00h, 64h, 0Ch,0FFh -31E4:DD67 FF 00 00 db 0FFh, 00h, 00h -31E4:DD6A 65 data_1178 db 65h ; Data table (indexed access) -31E4:DD6B 0C 02 00 00 00 67 db 0Ch, 02h, 00h, 00h, 00h, 67h -31E4:DD71 0C FF FF 7C DD 00 db 0Ch,0FFh,0FFh, 7Ch,0DDh, 00h -31E4:DD77 80 D5 07 00 00 00 db 80h,0D5h, 07h, 00h, 00h, 00h -31E4:DD7D 00 A4 A1 FF FF 90 db 00h,0A4h,0A1h,0FFh,0FFh, 90h -31E4:DD83 DD 00 00 90 08 02 db 0DDh, 00h, 00h, 90h, 08h, 02h -31E4:DD89 00 00 80 F9 07 03 db 00h, 00h, 80h,0F9h, 07h, 03h -31E4:DD8F 00 00 00 91 08 00 db 00h, 00h, 00h, 91h, 08h, 00h -31E4:DD95 00 00 00 BA 08 FF db 00h, 00h, 00h,0BAh, 08h,0FFh -31E4:DD9B FF 02 22 B4 A1 01 db 0FFh, 02h, 22h,0B4h,0A1h, 01h -31E4:DDA1 00 E0 21 1C A2 FF db 00h,0E0h, 21h, 1Ch,0A2h,0FFh -31E4:DDA7 FF B6 DD 00 00 90 db 0FFh,0B6h,0DDh, 00h, 00h, 90h -31E4:DDAD 08 02 00 00 80 FB db 08h, 02h, 00h, 00h, 80h,0FBh -31E4:DDB3 07 03 00 00 00 91 db 07h, 03h, 00h, 00h, 00h, 91h -31E4:DDB9 08 00 00 00 00 BA db 08h, 00h, 00h, 00h, 00h,0BAh -31E4:DDBF 08 FF FF 02 22 B4 db 08h,0FFh,0FFh, 02h, 22h,0B4h -31E4:DDC5 A1 01 00 E0 21 96 db 0A1h, 01h, 00h,0E0h, 21h, 96h -31E4:DDCB 08 FF FF E8 DD 00 db 08h,0FFh,0FFh,0E8h,0DDh, 00h -31E4:DDD1 00 90 08 02 00 00 db 00h, 90h, 08h, 02h, 00h, 00h -31E4:DDD7 80 22 08 03 00 db 80h, 22h, 08h, 03h, 00h -31E4:DDDC 0007[00] db 7 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 553 - -31E4:DDE3 80 98 08 04 00 00 db 80h, 98h, 08h, 04h, 00h, 00h -31E4:DDE9 00 91 08 00 00 00 db 00h, 91h, 08h, 00h, 00h, 00h -31E4:DDEF 00 BA 08 FF FF 02 db 00h,0BAh, 08h,0FFh,0FFh, 02h -31E4:DDF5 22 B4 A1 01 00 E0 db 22h,0B4h,0A1h, 01h, 00h,0E0h -31E4:DDFB 21 97 08 03 00 00 db 21h, 97h, 08h, 03h, 00h, 00h -31E4:DE01 00 99 08 FF FF 26 db 00h, 99h, 08h,0FFh,0FFh, 26h -31E4:DE07 DE 00 00 90 08 02 db 0DEh, 00h, 00h, 90h, 08h, 02h -31E4:DE0D 00 00 80 38 08 03 db 00h, 00h, 80h, 38h, 08h, 03h -31E4:DE13 00 db 00h -31E4:DE14 0008[00] db 8 dup (0) -31E4:DE1C 9B 08 04 00 00 80 db 9Bh, 08h, 04h, 00h, 00h, 80h -31E4:DE22 9D 08 05 00 00 00 db 9Dh, 08h, 05h, 00h, 00h, 00h -31E4:DE28 91 08 00 00 00 00 db 91h, 08h, 00h, 00h, 00h, 00h -31E4:DE2E BA 08 FF FF 02 22 db 0BAh, 08h,0FFh,0FFh, 02h, 22h -31E4:DE34 B4 A1 01 00 E0 21 db 0B4h,0A1h, 01h, 00h,0E0h, 21h -31E4:DE3A 9A 08 03 00 00 00 db 9Ah, 08h, 03h, 00h, 00h, 00h -31E4:DE40 9C 08 FF FF 00 00 db 9Ch, 08h,0FFh,0FFh, 00h, 00h -31E4:DE46 9E 08 FF FF 6A DE db 9Eh, 08h,0FFh,0FFh, 6Ah,0DEh -31E4:DE4C 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:DE52 00 00 A0 08 01 00 db 00h, 00h,0A0h, 08h, 01h, 00h -31E4:DE58 00 80 2D 0A 03 00 db 00h, 80h, 2Dh, 0Ah, 03h, 00h -31E4:DE5E 0007[00] db 7 dup (0) -31E4:DE65 80 A2 08 02 00 00 db 80h,0A2h, 08h, 02h, 00h, 00h -31E4:DE6B 00 9F 08 01 00 00 db 00h, 9Fh, 08h, 01h, 00h, 00h -31E4:DE71 00 A1 08 04 00 00 db 00h,0A1h, 08h, 04h, 00h, 00h -31E4:DE77 00 A3 08 FF FF 00 db 00h,0A3h, 08h,0FFh,0FFh, 00h -31E4:DE7D 00 2E 0A FF FF A2 db 00h, 2Eh, 0Ah,0FFh,0FFh,0A2h -31E4:DE83 DE 00 80 24 04 02 db 0DEh, 00h, 80h, 24h, 04h, 02h -31E4:DE89 00 00 00 CA 09 04 db 00h, 00h, 00h,0CAh, 09h, 04h -31E4:DE8F 00 00 80 90 08 06 db 00h, 00h, 80h, 90h, 08h, 06h -31E4:DE95 00 db 00h -31E4:DE96 0007[00] db 7 dup (0) -31E4:DE9D 80 CA 09 05 00 00 db 80h,0CAh, 09h, 05h, 00h, 00h -31E4:DEA3 00 91 08 01 00 00 db 00h, 91h, 08h, 01h, 00h, 00h -31E4:DEA9 00 BA 08 FF FF C7 db 00h,0BAh, 08h,0FFh,0FFh,0C7h -31E4:DEAF 28 31 0A 01 00 00 db 28h, 31h, 0Ah, 01h, 00h, 00h -31E4:DEB5 00 2F 0A 04 00 E0 db 00h, 2Fh, 0Ah, 04h, 00h,0E0h -31E4:DEBB 21 32 0A FF FF 00 db 21h, 32h, 0Ah,0FFh,0FFh, 00h -31E4:DEC1 00 30 0A FF FF 02 db 00h, 30h, 0Ah,0FFh,0FFh, 02h -31E4:DEC7 22 B4 A1 01 00 E0 db 22h,0B4h,0A1h, 01h, 00h,0E0h -31E4:DECD DE 69 23 03 09 02 db 0DEh, 69h, 23h, 03h, 09h, 02h -31E4:DED3 00 00 00 40 09 03 db 00h, 00h, 00h, 40h, 09h, 03h -31E4:DED9 00 00 80 90 08 04 db 00h, 00h, 80h, 90h, 08h, 04h -31E4:DEDF 00 00 00 91 08 00 db 00h, 00h, 00h, 91h, 08h, 00h -31E4:DEE5 00 00 00 BA 08 FF db 00h, 00h, 00h,0BAh, 08h,0FFh -31E4:DEEB FF 00 00 33 0A FF db 0FFh, 00h, 00h, 33h, 0Ah,0FFh -31E4:DEF1 FF E0 21 34 0A FF db 0FFh,0E0h, 21h, 34h, 0Ah,0FFh -31E4:DEF7 FF 02 22 B4 A1 00 db 0FFh, 02h, 22h,0B4h,0A1h, 00h -31E4:DEFD 00 0C DF 00 00 90 db 00h, 0Ch,0DFh, 00h, 00h, 90h -31E4:DF03 08 03 00 00 80 48 db 08h, 03h, 00h, 00h, 80h, 48h -31E4:DF09 09 02 00 00 00 91 db 09h, 02h, 00h, 00h, 00h, 91h -31E4:DF0F 08 00 00 00 00 BA db 08h, 00h, 00h, 00h, 00h,0BAh -31E4:DF15 08 FF FF E0 21 35 db 08h,0FFh,0FFh,0E0h, 21h, 35h -31E4:DF1B 0A FF FF 02 22 B4 db 0Ah,0FFh,0FFh, 02h, 22h,0B4h -31E4:DF21 A1 00 00 32 DF 00 db 0A1h, 00h, 00h, 32h,0DFh, 00h -31E4:DF27 00 90 08 03 00 00 db 00h, 90h, 08h, 03h, 00h, 00h -31E4:DF2D 80 92 09 02 00 00 db 80h, 92h, 09h, 02h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 554 - -31E4:DF33 00 91 08 00 00 00 db 00h, 91h, 08h, 00h, 00h, 00h -31E4:DF39 00 BA 08 FF FF E0 db 00h,0BAh, 08h,0FFh,0FFh,0E0h -31E4:DF3F 21 36 0A FF FF 02 db 21h, 36h, 0Ah,0FFh,0FFh, 02h -31E4:DF45 22 B4 A1 00 00 58 db 22h,0B4h,0A1h, 00h, 00h, 58h -31E4:DF4B DF 00 00 90 08 03 db 0DFh, 00h, 00h, 90h, 08h, 03h -31E4:DF51 00 00 80 38 0A 02 db 00h, 00h, 80h, 38h, 0Ah, 02h -31E4:DF57 00 00 00 91 08 00 db 00h, 00h, 00h, 91h, 08h, 00h -31E4:DF5D 00 00 00 BA 08 FF db 00h, 00h, 00h,0BAh, 08h,0FFh -31E4:DF63 FF E0 21 37 0A FF db 0FFh,0E0h, 21h, 37h, 0Ah,0FFh -31E4:DF69 FF 02 22 B4 A1 00 db 0FFh, 02h, 22h,0B4h,0A1h, 00h -31E4:DF6F 00 7E DF 00 80 D5 db 00h, 7Eh,0DFh, 00h, 80h,0D5h -31E4:DF75 07 00 00 00 80 20 db 07h, 00h, 00h, 00h, 80h, 20h -31E4:DF7B 08 01 00 00 00 49 db 08h, 01h, 00h, 00h, 00h, 49h -31E4:DF81 A1 01 00 00 00 21 db 0A1h, 01h, 00h, 00h, 00h, 21h -31E4:DF87 08 FF FF 92 DF 00 db 08h,0FFh,0FFh, 92h,0DFh, 00h -31E4:DF8D 80 F9 07 00 00 00 db 80h,0F9h, 07h, 00h, 00h, 00h -31E4:DF93 00 59 08 FF FF A0 db 00h, 59h, 08h,0FFh,0FFh,0A0h -31E4:DF99 DF 00 80 FB 07 00 db 0DFh, 00h, 80h,0FBh, 07h, 00h -31E4:DF9F 00 00 00 5A 08 FF db 00h, 00h, 00h, 5Ah, 08h,0FFh -31E4:DFA5 FF C6 DF 00 00 22 db 0FFh,0C6h,0DFh, 00h, 00h, 22h -31E4:DFAB 08 00 00 00 80 2C db 08h, 00h, 00h, 00h, 80h, 2Ch -31E4:DFB1 08 01 00 00 80 25 db 08h, 01h, 00h, 00h, 80h, 25h -31E4:DFB7 08 02 00 00 80 24 db 08h, 02h, 00h, 00h, 80h, 24h -31E4:DFBD 04 03 00 00 80 24 db 04h, 03h, 00h, 00h, 80h, 24h -31E4:DFC3 04 04 00 00 00 23 db 04h, 04h, 00h, 00h, 00h, 23h -31E4:DFC9 08 FF FF 72 21 24 db 08h,0FFh,0FFh, 72h, 21h, 24h -31E4:DFCF 08 02 00 00 00 26 db 08h, 02h, 00h, 00h, 00h, 26h -31E4:DFD5 08 03 00 00 00 27 db 08h, 03h, 00h, 00h, 00h, 27h -31E4:DFDB 08 04 00 59 21 24 db 08h, 04h, 00h, 59h, 21h, 24h -31E4:DFE1 04 FF FF EC DF 00 db 04h,0FFh,0FFh,0ECh,0DFh, 00h -31E4:DFE7 80 38 08 00 00 00 db 80h, 38h, 08h, 00h, 00h, 00h -31E4:DFED 00 A4 08 FF FF 00 db 00h,0A4h, 08h,0FFh,0FFh, 00h -31E4:DFF3 E0 00 80 24 04 00 db 0E0h, 00h, 80h, 24h, 04h, 00h -31E4:DFF9 00 00 80 41 0A 01 db 00h, 00h, 80h, 41h, 0Ah, 01h -31E4:DFFF 00 00 00 40 0A 01 db 00h, 00h, 00h, 40h, 0Ah, 01h -31E4:E005 00 00 00 42 0A FF db 00h, 00h, 00h, 42h, 0Ah,0FFh -31E4:E00B FF 1A E0 00 80 43 db 0FFh, 1Ah,0E0h, 00h, 80h, 43h -31E4:E011 0A 00 00 00 80 45 db 0Ah, 00h, 00h, 00h, 80h, 45h -31E4:E017 0A 01 00 00 00 44 db 0Ah, 01h, 00h, 00h, 00h, 44h -31E4:E01D 0A 01 00 00 00 46 db 0Ah, 01h, 00h, 00h, 00h, 46h -31E4:E023 0A FF FF 2E E0 00 db 0Ah,0FFh,0FFh, 2Eh,0E0h, 00h -31E4:E029 80 CA 09 00 00 00 db 80h,0CAh, 09h, 00h, 00h, 00h -31E4:E02F 00 74 0A FF FF 54 db 00h, 74h, 0Ah,0FFh,0FFh, 54h -31E4:E035 E0 69 23 03 09 00 db 0E0h, 69h, 23h, 03h, 09h, 00h -31E4:E03B 00 00 80 75 0A 01 db 00h, 00h, 80h, 75h, 0Ah, 01h -31E4:E041 00 00 80 E7 0A 02 db 00h, 00h, 80h,0E7h, 0Ah, 02h -31E4:E047 00 00 80 E9 0A 03 db 00h, 00h, 80h,0E9h, 0Ah, 03h -31E4:E04D 00 00 80 EB 0A 04 db 00h, 00h, 80h,0EBh, 0Ah, 04h -31E4:E053 00 00 00 47 0A FF db 00h, 00h, 00h, 47h, 0Ah,0FFh -31E4:E059 FF 00 00 76 0A 02 db 0FFh, 00h, 00h, 76h, 0Ah, 02h -31E4:E05F 00 00 00 E8 0A 03 db 00h, 00h, 00h,0E8h, 0Ah, 03h -31E4:E065 00 00 00 EA 0A 04 db 00h, 00h, 00h,0EAh, 0Ah, 04h -31E4:E06B 00 00 00 EC 0A FF db 00h, 00h, 00h,0ECh, 0Ah,0FFh -31E4:E071 FF 86 E0 00 80 EF db 0FFh, 86h,0E0h, 00h, 80h,0EFh -31E4:E077 09 00 00 00 00 49 db 09h, 00h, 00h, 00h, 00h, 49h -31E4:E07D 0A 01 00 00 80 4B db 0Ah, 01h, 00h, 00h, 80h, 4Bh -31E4:E083 0A 02 00 00 00 48 db 0Ah, 02h, 00h, 00h, 00h, 48h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 555 - -31E4:E089 0A 01 00 00 00 4A db 0Ah, 01h, 00h, 00h, 00h, 4Ah -31E4:E08F 0A FF FF 00 00 4C db 0Ah,0FFh,0FFh, 00h, 00h, 4Ch -31E4:E095 0A FF FF A6 E0 00 db 0Ah,0FFh,0FFh,0A6h,0E0h, 00h -31E4:E09B 80 40 09 00 00 00 db 80h, 40h, 09h, 00h, 00h, 00h -31E4:E0A1 80 4E 0A 01 00 00 db 80h, 4Eh, 0Ah, 01h, 00h, 00h -31E4:E0A7 00 4D 0A 01 00 00 db 00h, 4Dh, 0Ah, 01h, 00h, 00h -31E4:E0AD 00 4F 0A FF FF C6 db 00h, 4Fh, 0Ah,0FFh,0FFh,0C6h -31E4:E0B3 E0 00 80 48 09 00 db 0E0h, 00h, 80h, 48h, 09h, 00h -31E4:E0B9 00 00 80 24 04 01 db 00h, 00h, 80h, 24h, 04h, 01h -31E4:E0BF 00 00 80 52 0A 02 db 00h, 00h, 80h, 52h, 0Ah, 02h -31E4:E0C5 00 00 00 50 0A 01 db 00h, 00h, 00h, 50h, 0Ah, 01h -31E4:E0CB 00 00 00 51 0A 02 db 00h, 00h, 00h, 51h, 0Ah, 02h -31E4:E0D1 00 00 00 53 0A FF db 00h, 00h, 00h, 53h, 0Ah,0FFh -31E4:E0D7 FF F2 E0 00 80 97 db 0FFh,0F2h,0E0h, 00h, 80h, 97h -31E4:E0DD 09 00 00 00 00 55 db 09h, 00h, 00h, 00h, 00h, 55h -31E4:E0E3 0A 01 00 00 00 57 db 0Ah, 01h, 00h, 00h, 00h, 57h -31E4:E0E9 0A 02 00 00 80 59 db 0Ah, 02h, 00h, 00h, 80h, 59h -31E4:E0EF 0A 03 00 00 00 54 db 0Ah, 03h, 00h, 00h, 00h, 54h -31E4:E0F5 0A 01 00 00 00 56 db 0Ah, 01h, 00h, 00h, 00h, 56h -31E4:E0FB 0A FF FF 00 00 58 db 0Ah,0FFh,0FFh, 00h, 00h, 58h -31E4:E101 0A FF FF 00 00 5A db 0Ah,0FFh,0FFh, 00h, 00h, 5Ah -31E4:E107 0A FF FF 12 E1 00 db 0Ah,0FFh,0FFh, 12h,0E1h, 00h -31E4:E10D 80 92 09 00 00 00 db 80h, 92h, 09h, 00h, 00h, 00h -31E4:E113 00 5B 0A FF FF 20 db 00h, 5Bh, 0Ah,0FFh,0FFh, 20h -31E4:E119 E1 00 80 5C 0A 00 db 0E1h, 00h, 80h, 5Ch, 0Ah, 00h -31E4:E11F 00 00 00 5D 0A FF db 00h, 00h, 00h, 5Dh, 0Ah,0FFh -31E4:E125 FF 2E E1 00 80 D5 db 0FFh, 2Eh,0E1h, 00h, 80h,0D5h -31E4:E12B 07 00 00 00 00 EF db 07h, 00h, 00h, 00h, 00h,0EFh -31E4:E131 A0 FF FF 3C E1 00 db 0A0h,0FFh,0FFh, 3Ch,0E1h, 00h -31E4:E137 80 D9 07 00 00 00 db 80h,0D9h, 07h, 00h, 00h, 00h -31E4:E13D 00 0B 08 FF FF 50 db 00h, 0Bh, 08h,0FFh,0FFh, 50h -31E4:E143 E1 00 80 19 08 00 db 0E1h, 00h, 80h, 19h, 08h, 00h -31E4:E149 00 00 80 24 04 01 db 00h, 00h, 80h, 24h, 04h, 01h -31E4:E14F 00 00 00 11 08 01 db 00h, 00h, 00h, 11h, 08h, 01h -31E4:E155 00 FF 20 24 04 FF db 00h,0FFh, 20h, 24h, 04h,0FFh -31E4:E15B FF 70 E1 00 80 FB db 0FFh, 70h,0E1h, 00h, 80h,0FBh -31E4:E161 07 00 00 00 80 0D db 07h, 00h, 00h, 00h, 80h, 0Dh -31E4:E167 08 01 00 00 80 24 db 08h, 01h, 00h, 00h, 80h, 24h -31E4:E16D 04 03 00 1C 21 0C db 04h, 03h, 00h, 1Ch, 21h, 0Ch -31E4:E173 08 01 00 00 00 0E db 08h, 01h, 00h, 00h, 00h, 0Eh -31E4:E179 08 FF FF 00 00 17 db 08h,0FFh,0FFh, 00h, 00h, 17h -31E4:E17F 08 02 00 3C 21 24 db 08h, 02h, 00h, 3Ch, 21h, 24h -31E4:E185 04 FF FF 9C E1 00 db 04h,0FFh,0FFh, 9Ch,0E1h, 00h -31E4:E18B 00 22 08 00 00 00 db 00h, 22h, 08h, 00h, 00h, 00h -31E4:E191 80 2C 08 01 00 00 db 80h, 2Ch, 08h, 01h, 00h, 00h -31E4:E197 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:E19D 00 77 08 FF FF 00 db 00h, 77h, 08h,0FFh,0FFh, 00h -31E4:E1A3 00 E1 0A 02 00 2E db 00h,0E1h, 0Ah, 02h, 00h, 2Eh -31E4:E1A9 29 24 04 FF FF B6 db 29h, 24h, 04h,0FFh,0FFh,0B6h -31E4:E1AF E1 00 80 38 08 00 db 0E1h, 00h, 80h, 38h, 08h, 00h -31E4:E1B5 00 00 00 78 08 FF db 00h, 00h, 00h, 78h, 08h,0FFh -31E4:E1BB FF CA E1 00 80 24 db 0FFh,0CAh,0E1h, 00h, 80h, 24h -31E4:E1C1 04 00 00 00 80 CF db 04h, 00h, 00h, 00h, 80h,0CFh -31E4:E1C7 08 01 00 00 00 CE db 08h, 01h, 00h, 00h, 00h,0CEh -31E4:E1CD 08 01 00 00 00 24 db 08h, 01h, 00h, 00h, 00h, 24h -31E4:E1D3 04 FF FF DE E1 00 db 04h,0FFh,0FFh,0DEh,0E1h, 00h -31E4:E1D9 80 F5 08 00 00 00 db 80h,0F5h, 08h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 556 - -31E4:E1DF 00 F6 08 FF FF FE db 00h,0F6h, 08h,0FFh,0FFh,0FEh -31E4:E1E5 E1 5B 23 F8 08 00 db 0E1h, 5Bh, 23h,0F8h, 08h, 00h -31E4:E1EB 00 00 80 F5 08 02 db 00h, 00h, 80h,0F5h, 08h, 02h -31E4:E1F1 00 db 00h -31E4:E1F2 0007[00] db 7 dup (0) -31E4:E1F9 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:E1FF 00 0F A3 03 00 34 db 00h, 0Fh,0A3h, 03h, 00h, 34h -31E4:E205 23 24 04 FF FF 00 db 23h, 24h, 04h,0FFh,0FFh, 00h -31E4:E20B 00 F6 08 FF FF 5A db 00h,0F6h, 08h,0FFh,0FFh, 5Ah -31E4:E211 E2 00 00 F5 08 00 db 0E2h, 00h, 00h,0F5h, 08h, 00h -31E4:E217 00 8D A4 10 09 01 db 00h, 8Dh,0A4h, 10h, 09h, 01h -31E4:E21D 0008[00] db 8 dup (0) -31E4:E225 80 12 09 02 00 00 db 80h, 12h, 09h, 02h, 00h, 00h -31E4:E22B 80 14 09 03 00 00 db 80h, 14h, 09h, 03h, 00h, 00h -31E4:E231 80 16 09 04 00 00 db 80h, 16h, 09h, 04h, 00h, 00h -31E4:E237 80 18 09 05 00 00 db 80h, 18h, 09h, 05h, 00h, 00h -31E4:E23D 80 24 04 06 00 00 db 80h, 24h, 04h, 06h, 00h, 00h -31E4:E243 00 1B 09 07 00 00 db 00h, 1Bh, 09h, 07h, 00h, 00h -31E4:E249 80 1D 09 08 00 00 db 80h, 1Dh, 09h, 08h, 00h, 00h -31E4:E24F 80 1F 09 09 00 00 db 80h, 1Fh, 09h, 09h, 00h, 00h -31E4:E255 80 24 04 0A 00 00 db 80h, 24h, 04h, 0Ah, 00h, 00h -31E4:E25B 00 F6 08 FF FF 2D db 00h,0F6h, 08h,0FFh,0FFh, 2Dh -31E4:E261 24 11 09 03 00 00 db 24h, 11h, 09h, 03h, 00h, 00h -31E4:E267 00 13 09 04 00 00 db 00h, 13h, 09h, 04h, 00h, 00h -31E4:E26D 00 15 09 05 00 00 db 00h, 15h, 09h, 05h, 00h, 00h -31E4:E273 00 17 09 06 00 00 db 00h, 17h, 09h, 06h, 00h, 00h -31E4:E279 00 19 09 07 00 D3 db 00h, 19h, 09h, 07h, 00h,0D3h -31E4:E27F 23 1A 09 08 00 00 db 23h, 1Ah, 09h, 08h, 00h, 00h -31E4:E285 00 1C 09 09 00 B9 db 00h, 1Ch, 09h, 09h, 00h,0B9h -31E4:E28B 23 1E 09 0A 00 00 db 23h, 1Eh, 09h, 0Ah, 00h, 00h -31E4:E291 00 20 09 0B 00 94 db 00h, 20h, 09h, 0Bh, 00h, 94h -31E4:E297 23 24 04 FF FF 00 db 23h, 24h, 04h,0FFh,0FFh, 00h -31E4:E29D 00 3D 09 FF FF 00 db 00h, 3Dh, 09h,0FFh,0FFh, 00h -31E4:E2A3 00 3E 09 FF FF 00 db 00h, 3Eh, 09h,0FFh,0FFh, 00h -31E4:E2A9 00 3F 09 08 00 BC db 00h, 3Fh, 09h, 08h, 00h,0BCh -31E4:E2AF E2 4E 29 F8 0A 00 db 0E2h, 4Eh, 29h,0F8h, 0Ah, 00h -31E4:E2B5 00 00 80 40 09 01 db 00h, 00h, 80h, 40h, 09h, 01h -31E4:E2BB 00 00 00 F9 0A FF db 00h, 00h, 00h,0F9h, 0Ah,0FFh -31E4:E2C1 FF 00 00 F7 0A FF db 0FFh, 00h, 00h,0F7h, 0Ah,0FFh -31E4:E2C7 FF D6 E2 4E 29 F8 db 0FFh,0D6h,0E2h, 4Eh, 29h,0F8h -31E4:E2CD 0A 00 00 00 80 48 db 0Ah, 00h, 00h, 00h, 80h, 48h -31E4:E2D3 09 01 00 00 00 F9 db 09h, 01h, 00h, 00h, 00h,0F9h -31E4:E2D9 0A FF FF 00 00 FA db 0Ah,0FFh,0FFh, 00h, 00h,0FAh -31E4:E2DF 0A FF FF FC E2 4E db 0Ah,0FFh,0FFh,0FCh,0E2h, 4Eh -31E4:E2E5 29 F8 0A 00 00 00 db 29h,0F8h, 0Ah, 00h, 00h, 00h -31E4:E2EB 80 92 09 01 00 00 db 80h, 92h, 09h, 01h, 00h, 00h -31E4:E2F1 00 FC 0A 02 00 00 db 00h,0FCh, 0Ah, 02h, 00h, 00h -31E4:E2F7 80 FE 0A 03 00 00 db 80h,0FEh, 0Ah, 03h, 00h, 00h -31E4:E2FD 00 F9 0A FF FF 00 db 00h,0F9h, 0Ah,0FFh,0FFh, 00h -31E4:E303 00 FB 0A 02 00 00 db 00h,0FBh, 0Ah, 02h, 00h, 00h -31E4:E309 00 FD 0A FF FF 00 db 00h,0FDh, 0Ah,0FFh,0FFh, 00h -31E4:E30F 00 FF 0A FF FF 3A db 00h,0FFh, 0Ah,0FFh,0FFh, 3Ah -31E4:E315 E3 00 00 38 0A 00 db 0E3h, 00h, 00h, 38h, 0Ah, 00h -31E4:E31B 00 00 80 1F 0B 04 db 00h, 00h, 80h, 1Fh, 0Bh, 04h -31E4:E321 00 00 00 19 0B 01 db 00h, 00h, 00h, 19h, 0Bh, 01h -31E4:E327 00 00 80 1B 0B 02 db 00h, 00h, 80h, 1Bh, 0Bh, 02h -31E4:E32D 00 00 80 1D 0B 03 db 00h, 00h, 80h, 1Dh, 0Bh, 03h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 557 - -31E4:E333 00 00 80 21 0B 05 db 00h, 00h, 80h, 21h, 0Bh, 05h -31E4:E339 00 00 00 18 0B 02 db 00h, 00h, 00h, 18h, 0Bh, 02h -31E4:E33F 00 00 00 1A 0B FF db 00h, 00h, 00h, 1Ah, 0Bh,0FFh -31E4:E345 FF 00 00 1C 0B 04 db 0FFh, 00h, 00h, 1Ch, 0Bh, 04h -31E4:E34B 00 00 00 1E 0B FF db 00h, 00h, 00h, 1Eh, 0Bh,0FFh -31E4:E351 FF 00 00 20 0B 05 db 0FFh, 00h, 00h, 20h, 0Bh, 05h -31E4:E357 00 00 00 22 0B FF db 00h, 00h, 00h, 22h, 0Bh,0FFh -31E4:E35D FF 78 E3 00 80 D5 db 0FFh, 78h,0E3h, 00h, 80h,0D5h -31E4:E363 87 00 00 00 00 EF db 87h, 00h, 00h, 00h, 00h,0EFh -31E4:E369 07 5D A0 00 80 F6 db 07h, 5Dh,0A0h, 00h, 80h,0F6h -31E4:E36F 07 97 A0 00 80 F2 db 07h, 97h,0A0h, 00h, 80h,0F2h -31E4:E375 07 05 00 00 00 4D db 07h, 05h, 00h, 00h, 00h, 4Dh -31E4:E37B A0 01 00 00 00 F0 db 0A0h, 01h, 00h, 00h, 00h,0F0h -31E4:E381 07 FF FF 00 00 F1 db 07h,0FFh,0FFh, 00h, 00h,0F1h -31E4:E387 07 03 00 00 00 F7 db 07h, 03h, 00h, 00h, 00h,0F7h -31E4:E38D 07 FF FF 00 00 F8 db 07h,0FFh,0FFh, 00h, 00h,0F8h -31E4:E393 07 FF FF BE 20 F4 db 07h,0FFh,0FFh,0BEh, 20h,0F4h -31E4:E399 07 FF FF AA E3 00 db 07h,0FFh,0FFh,0AAh,0E3h, 00h -31E4:E39F 80 FD 07 00 00 00 db 80h,0FDh, 07h, 00h, 00h, 00h -31E4:E3A5 80 FF 07 01 00 00 db 80h,0FFh, 07h, 01h, 00h, 00h -31E4:E3AB 00 FE 07 01 00 00 db 00h,0FEh, 07h, 01h, 00h, 00h -31E4:E3B1 00 24 04 FF FF D0 db 00h, 24h, 04h,0FFh,0FFh,0D0h -31E4:E3B7 E3 00 80 1A 08 00 db 0E3h, 00h, 80h, 1Ah, 08h, 00h -31E4:E3BD 00 00 80 1C 08 01 db 00h, 00h, 80h, 1Ch, 08h, 01h -31E4:E3C3 00 00 80 1E 08 02 db 00h, 00h, 80h, 1Eh, 08h, 02h -31E4:E3C9 00 00 80 24 04 03 db 00h, 00h, 80h, 24h, 04h, 03h -31E4:E3CF 00 00 00 1B 08 01 db 00h, 00h, 00h, 1Bh, 08h, 01h -31E4:E3D5 00 00 00 1D 08 02 db 00h, 00h, 00h, 1Dh, 08h, 02h -31E4:E3DB 00 00 00 00 08 03 db 00h, 00h, 00h, 00h, 08h, 03h -31E4:E3E1 00 E2 20 01 08 FF db 00h,0E2h, 20h, 01h, 08h,0FFh -31E4:E3E7 FF F6 E3 00 00 22 db 0FFh,0F6h,0E3h, 00h, 00h, 22h -31E4:E3ED 08 00 00 00 80 2C db 08h, 00h, 00h, 00h, 80h, 2Ch -31E4:E3F3 08 01 00 00 00 46 db 08h, 01h, 00h, 00h, 00h, 46h -31E4:E3F9 08 FF FF 00 00 A7 db 08h,0FFh,0FFh, 00h, 00h,0A7h -31E4:E3FF 0A FF FF 0A E4 00 db 0Ah,0FFh,0FFh, 0Ah,0E4h, 00h -31E4:E405 80 38 08 00 00 00 db 80h, 38h, 08h, 00h, 00h, 00h -31E4:E40B 00 39 08 FF FF 2A db 00h, 39h, 08h,0FFh,0FFh, 2Ah -31E4:E411 E4 00 80 57 0B 00 db 0E4h, 00h, 80h, 57h, 0Bh, 00h -31E4:E417 00 00 00 59 0B 01 db 00h, 00h, 00h, 59h, 0Bh, 01h -31E4:E41D 00 00 80 5B 0B 02 db 00h, 00h, 80h, 5Bh, 0Bh, 02h -31E4:E423 00 00 80 24 04 03 db 00h, 00h, 80h, 24h, 04h, 03h -31E4:E429 00 00 00 58 0B 01 db 00h, 00h, 00h, 58h, 0Bh, 01h -31E4:E42F 00 00 00 5A 0B FF db 00h, 00h, 00h, 5Ah, 0Bh,0FFh -31E4:E435 FF 00 00 5C 0B FF db 0FFh, 00h, 00h, 5Ch, 0Bh,0FFh -31E4:E43B FF 00 00 24 04 FF db 0FFh, 00h, 00h, 24h, 04h,0FFh -31E4:E441 FF 50 E4 00 80 24 db 0FFh, 50h,0E4h, 00h, 80h, 24h -31E4:E447 04 00 00 00 80 E1 db 04h, 00h, 00h, 00h, 80h,0E1h -31E4:E44D 07 01 00 00 00 E0 db 07h, 01h, 00h, 00h, 00h,0E0h -31E4:E453 07 01 00 00 00 E2 db 07h, 01h, 00h, 00h, 00h,0E2h -31E4:E459 07 FF FF A0 E4 00 db 07h,0FFh,0FFh,0A0h,0E4h, 00h -31E4:E45F 80 E3 07 00 00 00 db 80h,0E3h, 07h, 00h, 00h, 00h -31E4:E465 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:E46B 00 E6 87 02 00 00 db 00h,0E6h, 87h, 02h, 00h, 00h -31E4:E471 00 E9 07 04 00 00 db 00h,0E9h, 07h, 04h, 00h, 00h -31E4:E477 80 F3 07 05 00 00 db 80h,0F3h, 07h, 05h, 00h, 00h -31E4:E47D 80 24 04 03 00 00 db 80h, 24h, 04h, 03h, 00h, 00h -31E4:E483 80 24 04 06 00 00 db 80h, 24h, 04h, 06h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 558 - -31E4:E489 80 01 0B 07 00 00 db 80h, 01h, 0Bh, 07h, 00h, 00h -31E4:E48F 80 03 0B 08 00 00 db 80h, 03h, 0Bh, 08h, 00h, 00h -31E4:E495 80 05 0B 09 00 00 db 80h, 05h, 0Bh, 09h, 00h, 00h -31E4:E49B 80 07 0B 0A 00 00 db 80h, 07h, 0Bh, 0Ah, 00h, 00h -31E4:E4A1 00 E4 07 01 00 00 db 00h,0E4h, 07h, 01h, 00h, 00h -31E4:E4A7 00 E5 07 02 00 00 db 00h,0E5h, 07h, 02h, 00h, 00h -31E4:E4AD 00 E7 07 05 00 00 db 00h,0E7h, 07h, 05h, 00h, 00h -31E4:E4B3 00 E8 07 03 00 00 db 00h,0E8h, 07h, 03h, 00h, 00h -31E4:E4B9 00 EA 07 06 00 00 db 00h,0EAh, 07h, 06h, 00h, 00h -31E4:E4BF 00 F5 07 FF FF 00 db 00h,0F5h, 07h,0FFh,0FFh, 00h -31E4:E4C5 00 00 0B 07 00 00 db 00h, 00h, 0Bh, 07h, 00h, 00h -31E4:E4CB 00 02 0B 08 00 00 db 00h, 02h, 0Bh, 08h, 00h, 00h -31E4:E4D1 00 04 0B 09 00 00 db 00h, 04h, 0Bh, 09h, 00h, 00h -31E4:E4D7 00 06 0B FF FF 00 db 00h, 06h, 0Bh,0FFh,0FFh, 00h -31E4:E4DD 00 08 0B FF FF EA db 00h, 08h, 0Bh,0FFh,0FFh,0EAh -31E4:E4E3 E4 69 A3 03 09 00 db 0E4h, 69h,0A3h, 03h, 09h, 00h -31E4:E4E9 00 00 00 29 08 FF db 00h, 00h, 00h, 29h, 08h,0FFh -31E4:E4EF FF F8 E4 00 80 24 db 0FFh,0F8h,0E4h, 00h, 80h, 24h -31E4:E4F5 04 00 00 00 00 2A db 04h, 00h, 00h, 00h, 00h, 2Ah -31E4:E4FB 08 FF FF 0C E5 db 08h,0FFh,0FFh, 0Ch,0E5h -31E4:E500 8000 data_1185 dw 8000h ; xref 31E4:90E9 -31E4:E502 40 09 00 00 00 80 db 40h, 09h, 00h, 00h, 00h, 80h -31E4:E508 69 0C 01 00 00 00 db 69h, 0Ch, 01h, 00h, 00h, 00h -31E4:E50E 68 0C 01 00 00 00 db 68h, 0Ch, 01h, 00h, 00h, 00h -31E4:E514 6A 0C FF FF 20 E5 db 6Ah, 0Ch,0FFh,0FFh, 20h,0E5h -31E4:E51A 00 80 48 09 00 00 db 00h, 80h, 48h, 09h, 00h, 00h -31E4:E520 00 00 00 0C FF FF db 00h, 00h, 00h, 0Ch,0FFh,0FFh -31E4:E526 3A E5 00 80 24 04 db 3Ah,0E5h, 00h, 80h, 24h, 04h -31E4:E52C 00 00 00 80 6C 0C db 00h, 00h, 00h, 80h, 6Ch, 0Ch -31E4:E532 01 00 00 80 6E 0C db 01h, 00h, 00h, 80h, 6Eh, 0Ch -31E4:E538 02 00 00 00 6B 0C db 02h, 00h, 00h, 00h, 6Bh, 0Ch -31E4:E53E 01 00 00 00 6D 0C db 01h, 00h, 00h, 00h, 6Dh, 0Ch -31E4:E544 02 00 00 00 6F 0C db 02h, 00h, 00h, 00h, 6Fh, 0Ch -31E4:E54A FF FF 5A E5 00 80 db 0FFh,0FFh, 5Ah,0E5h, 00h, 80h -31E4:E550 2E 0B 00 00 00 80 db 2Eh, 0Bh, 00h, 00h, 00h, 80h -31E4:E556 71 0C 01 00 00 00 db 71h, 0Ch, 01h, 00h, 00h, 00h -31E4:E55C 70 0C 01 00 00 00 db 70h, 0Ch, 01h, 00h, 00h, 00h -31E4:E562 24 04 FF FF 7A E5 db 24h, 04h,0FFh,0FFh, 7Ah,0E5h -31E4:E568 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:E56E 00 80 98 0C 01 00 db 00h, 80h, 98h, 0Ch, 01h, 00h -31E4:E574 00 80 9A 0C 02 00 db 00h, 80h, 9Ah, 0Ch, 02h, 00h -31E4:E57A 00 00 97 0C 01 00 db 00h, 00h, 97h, 0Ch, 01h, 00h -31E4:E580 00 00 99 0C 02 00 db 00h, 00h, 99h, 0Ch, 02h, 00h -31E4:E586 00 00 24 04 FF FF db 00h, 00h, 24h, 04h,0FFh,0FFh -31E4:E58C 94 E5 00 80 38 0A db 94h,0E5h, 00h, 80h, 38h, 0Ah -31E4:E592 00 00 00 00 08 0C db 00h, 00h, 00h, 00h, 08h, 0Ch -31E4:E598 FF FF A2 E5 00 80 db 0FFh,0FFh,0A2h,0E5h, 00h, 80h -31E4:E59E 78 00 00 00 00 00 db 78h, 00h, 00h, 00h, 00h, 00h -31E4:E5A4 7D 00 FF FF CE E5 db 7Dh, 00h,0FFh,0FFh,0CEh,0E5h -31E4:E5AA 00 80 24 04 00 00 db 00h, 80h, 24h, 04h, 00h, 00h -31E4:E5B0 00 80 FB 00 02 00 db 00h, 80h,0FBh, 00h, 02h, 00h -31E4:E5B6 00 80 F9 00 03 00 db 00h, 80h,0F9h, 00h, 03h, 00h -31E4:E5BC 00 80 FC 00 04 00 db 00h, 80h,0FCh, 00h, 04h, 00h -31E4:E5C2 00 80 FE 00 05 00 db 00h, 80h,0FEh, 00h, 05h, 00h -31E4:E5C8 00 80 24 04 06 00 db 00h, 80h, 24h, 04h, 06h, 00h -31E4:E5CE CF 1F FD 00 FF FF db 0CFh, 1Fh,0FDh, 00h,0FFh,0FFh -31E4:E5D4 00 00 24 04 01 00 db 00h, 00h, 24h, 04h, 01h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 559 - -31E4:E5DA 0B 20 00 01 02 00 db 0Bh, 20h, 00h, 01h, 02h, 00h -31E4:E5E0 00 00 FF 00 03 00 db 00h, 00h,0FFh, 00h, 03h, 00h -31E4:E5E6 00 00 01 01 04 00 db 00h, 00h, 01h, 01h, 04h, 00h -31E4:E5EC 00 00 94 00 05 00 db 00h, 00h, 94h, 00h, 05h, 00h -31E4:E5F2 E9 1F 24 04 FF FF db 0E9h, 1Fh, 24h, 04h,0FFh,0FFh -31E4:E5F8 06 E6 00 80 F4 00 db 06h,0E6h, 00h, 80h,0F4h, 00h -31E4:E5FE 00 00 00 80 F6 00 db 00h, 00h, 00h, 80h,0F6h, 00h -31E4:E604 01 00 00 00 F5 00 db 01h, 00h, 00h, 00h,0F5h, 00h -31E4:E60A 01 00 00 00 F7 00 db 01h, 00h, 00h, 00h,0F7h, 00h -31E4:E610 FF FF 1A E6 00 80 db 0FFh,0FFh, 1Ah,0E6h, 00h, 80h -31E4:E616 F9 07 00 00 00 00 db 0F9h, 07h, 00h, 00h, 00h, 00h -31E4:E61C FA 07 FF FF 28 E6 db 0FAh, 07h,0FFh,0FFh, 28h,0E6h -31E4:E622 00 80 FB 07 00 00 db 00h, 80h,0FBh, 07h, 00h, 00h -31E4:E628 00 00 FC 07 FF FF db 00h, 00h,0FCh, 07h,0FFh,0FFh -31E4:E62E 3C E6 00 80 C9 08 db 3Ch,0E6h, 00h, 80h,0C9h, 08h -31E4:E634 00 00 00 80 24 04 db 00h, 00h, 00h, 80h, 24h, 04h -31E4:E63A 01 00 00 00 CA 08 db 01h, 00h, 00h, 00h,0CAh, 08h -31E4:E640 01 00 A8 22 24 04 db 01h, 00h,0A8h, 22h, 24h, 04h -31E4:E646 FF FF 56 E6 00 00 db 0FFh,0FFh, 56h,0E6h, 00h, 00h -31E4:E64C 2C 08 01 00 00 80 db 2Ch, 08h, 01h, 00h, 00h, 80h -31E4:E652 22 08 00 00 00 00 db 22h, 08h, 00h, 00h, 00h, 00h -31E4:E658 3B 08 FF FF 00 00 db 3Bh, 08h,0FFh,0FFh, 00h, 00h -31E4:E65E D7 0A FF FF 6A E6 db 0D7h, 0Ah,0FFh,0FFh, 6Ah,0E6h -31E4:E664 00 80 CB 08 00 00 db 00h, 80h,0CBh, 08h, 00h, 00h -31E4:E66A 00 00 CC 08 FF FF db 00h, 00h,0CCh, 08h,0FFh,0FFh -31E4:E670 78 E6 00 80 C9 08 db 78h,0E6h, 00h, 80h,0C9h, 08h -31E4:E676 00 00 00 00 10 0A db 00h, 00h, 00h, 00h, 10h, 0Ah -31E4:E67C FF FF 86 E6 00 80 db 0FFh,0FFh, 86h,0E6h, 00h, 80h -31E4:E682 38 08 00 00 00 00 db 38h, 08h, 00h, 00h, 00h, 00h -31E4:E688 3A 08 FF FF B2 E6 db 3Ah, 08h,0FFh,0FFh,0B2h,0E6h -31E4:E68E 69 23 03 09 00 00 db 69h, 23h, 03h, 09h, 00h, 00h -31E4:E694 00 80 C9 08 03 00 db 00h, 80h,0C9h, 08h, 03h, 00h -31E4:E69A 0007[00] db 7 dup (0) -31E4:E6A1 80 05 09 01 00 00 db 80h, 05h, 09h, 01h, 00h, 00h -31E4:E6A7 80 07 09 02 00 00 db 80h, 07h, 09h, 02h, 00h, 00h -31E4:E6AD 80 12 0A 04 00 00 db 80h, 12h, 0Ah, 04h, 00h, 00h -31E4:E6B3 00 04 09 03 00 00 db 00h, 04h, 09h, 03h, 00h, 00h -31E4:E6B9 00 06 09 04 00 00 db 00h, 06h, 09h, 04h, 00h, 00h -31E4:E6BF 00 08 09 FF FF 00 db 00h, 08h, 09h,0FFh,0FFh, 00h -31E4:E6C5 00 11 0A 05 00 00 db 00h, 11h, 0Ah, 05h, 00h, 00h -31E4:E6CB 00 13 0A FF FF EA db 00h, 13h, 0Ah,0FFh,0FFh,0EAh -31E4:E6D1 E6 00 80 C9 08 00 db 0E6h, 00h, 80h,0C9h, 08h, 00h -31E4:E6D7 0009[00] db 9 dup (0) -31E4:E6E0 15 0A 01 00 00 80 db 15h, 0Ah, 01h, 00h, 00h, 80h -31E4:E6E6 17 0A 02 00 00 00 db 17h, 0Ah, 02h, 00h, 00h, 00h -31E4:E6EC 14 0A 02 00 00 00 db 14h, 0Ah, 02h, 00h, 00h, 00h -31E4:E6F2 16 0A FF FF 00 00 db 16h, 0Ah,0FFh,0FFh, 00h, 00h -31E4:E6F8 18 0A FF FF 04 E7 db 18h, 0Ah,0FFh,0FFh, 04h,0E7h -31E4:E6FE 00 80 C9 08 00 00 db 00h, 80h,0C9h, 08h, 00h, 00h -31E4:E704 00 00 19 0A FF FF db 00h, 00h, 19h, 0Ah,0FFh,0FFh -31E4:E70A 2A E7 00 00 1A 0A db 2Ah,0E7h, 00h, 00h, 1Ah, 0Ah -31E4:E710 00 00 00 80 48 09 db 00h, 00h, 00h, 80h, 48h, 09h -31E4:E716 02 db 02h -31E4:E717 0008[00] db 8 dup (0) -31E4:E71F 80 1C 0A 01 00 00 db 80h, 1Ch, 0Ah, 01h, 00h, 00h -31E4:E725 80 1F 0A 03 00 00 db 80h, 1Fh, 0Ah, 03h, 00h, 00h -31E4:E72B 00 1B 0A 03 00 00 db 00h, 1Bh, 0Ah, 03h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 560 - -31E4:E731 00 1D 0A FF FF 00 db 00h, 1Dh, 0Ah,0FFh,0FFh, 00h -31E4:E737 00 1E 0A 04 00 00 db 00h, 1Eh, 0Ah, 04h, 00h, 00h -31E4:E73D 00 20 0A FF FF 4A db 00h, 20h, 0Ah,0FFh,0FFh, 4Ah -31E4:E743 E7 00 80 C9 08 00 db 0E7h, 00h, 80h,0C9h, 08h, 00h -31E4:E749 00 00 00 21 0A FF db 00h, 00h, 00h, 21h, 0Ah,0FFh -31E4:E74F FF 6A E7 00 80 22 db 0FFh, 6Ah,0E7h, 00h, 80h, 22h -31E4:E755 0A 00 00 00 80 24 db 0Ah, 00h, 00h, 00h, 80h, 24h -31E4:E75B 04 01 00 00 80 25 db 04h, 01h, 00h, 00h, 80h, 25h -31E4:E761 0A 02 00 00 80 27 db 0Ah, 02h, 00h, 00h, 80h, 27h -31E4:E767 0A 03 00 00 00 23 db 0Ah, 03h, 00h, 00h, 00h, 23h -31E4:E76D 0A 01 00 00 00 24 db 0Ah, 01h, 00h, 00h, 00h, 24h -31E4:E773 0A 02 00 00 00 26 db 0Ah, 02h, 00h, 00h, 00h, 26h -31E4:E779 0A 03 00 00 00 28 db 0Ah, 03h, 00h, 00h, 00h, 28h -31E4:E77F 0A FF FF BA E7 4F db 0Ah,0FFh,0FFh,0BAh,0E7h, 4Fh -31E4:E785 2A 88 0B 00 00 00 db 2Ah, 88h, 0Bh, 00h, 00h, 00h -31E4:E78B 00 7D 0B 03 00 00 db 00h, 7Dh, 0Bh, 03h, 00h, 00h -31E4:E791 80 38 0A 05 00 00 db 80h, 38h, 0Ah, 05h, 00h, 00h -31E4:E797 80 8A 0B 01 00 00 db 80h, 8Ah, 0Bh, 01h, 00h, 00h -31E4:E79D 80 8C 0B 02 00 00 db 80h, 8Ch, 0Bh, 02h, 00h, 00h -31E4:E7A3 80 7F 0B 04 00 00 db 80h, 7Fh, 0Bh, 04h, 00h, 00h -31E4:E7A9 80 82 0B 06 00 00 db 80h, 82h, 0Bh, 06h, 00h, 00h -31E4:E7AF 80 84 0B 07 00 00 db 80h, 84h, 0Bh, 07h, 00h, 00h -31E4:E7B5 80 86 0B 08 00 00 db 80h, 86h, 0Bh, 08h, 00h, 00h -31E4:E7BB 00 89 0B 03 00 00 db 00h, 89h, 0Bh, 03h, 00h, 00h -31E4:E7C1 00 8B 0B 04 00 00 db 00h, 8Bh, 0Bh, 04h, 00h, 00h -31E4:E7C7 00 8D 0B FF FF 00 db 00h, 8Dh, 0Bh,0FFh,0FFh, 00h -31E4:E7CD 00 7E 0B 05 00 00 db 00h, 7Eh, 0Bh, 05h, 00h, 00h -31E4:E7D3 00 80 0B FF FF 00 db 00h, 80h, 0Bh,0FFh,0FFh, 00h -31E4:E7D9 00 81 0B 06 00 00 db 00h, 81h, 0Bh, 06h, 00h, 00h -31E4:E7DF 00 83 0B 07 00 00 db 00h, 83h, 0Bh, 07h, 00h, 00h -31E4:E7E5 00 85 0B 08 00 00 db 00h, 85h, 0Bh, 08h, 00h, 00h -31E4:E7EB 00 87 0B FF FF 0A db 00h, 87h, 0Bh,0FFh,0FFh, 0Ah -31E4:E7F1 E8 00 80 24 84 00 db 0E8h, 00h, 80h, 24h, 84h, 00h -31E4:E7F7 00 00 80 5F 08 03 db 00h, 00h, 80h, 5Fh, 08h, 03h -31E4:E7FD 00 00 80 58 08 01 db 00h, 00h, 80h, 58h, 08h, 01h -31E4:E803 00 00 80 5D 08 02 db 00h, 00h, 80h, 5Dh, 08h, 02h -31E4:E809 00 00 00 57 08 02 db 00h, 00h, 00h, 57h, 08h, 02h -31E4:E80F 00 00 00 5C 08 03 db 00h, 00h, 00h, 5Ch, 08h, 03h -31E4:E815 00 82 21 5E 08 FF db 00h, 82h, 21h, 5Eh, 08h,0FFh -31E4:E81B FF 00 00 60 08 FF db 0FFh, 00h, 00h, 60h, 08h,0FFh -31E4:E821 FF 3C E8 00 00 B2 db 0FFh, 3Ch,0E8h, 00h, 00h,0B2h -31E4:E827 00 00 00 00 00 B3 db 00h, 00h, 00h, 00h, 00h,0B3h -31E4:E82D 00 01 00 00 80 B4 db 00h, 01h, 00h, 00h, 80h,0B4h -31E4:E833 00 02 00 00 80 F2 db 00h, 02h, 00h, 00h, 80h,0F2h -31E4:E839 00 03 00 FD 06 C1 db 00h, 03h, 00h,0FDh, 06h,0C1h -31E4:E83F 00 FF FF FD 06 C2 db 00h,0FFh,0FFh,0FDh, 06h,0C2h -31E4:E845 00 FF FF FD 06 C7 db 00h,0FFh,0FFh,0FDh, 06h,0C7h -31E4:E84B 00 03 00 00 00 F3 db 00h, 03h, 00h, 00h, 00h,0F3h -31E4:E851 00 FF FF 5C E8 00 db 00h,0FFh,0FFh, 5Ch,0E8h, 00h -31E4:E857 80 31 01 00 00 00 db 80h, 31h, 01h, 00h, 00h, 00h -31E4:E85D 00 32 01 FF FF 70 db 00h, 32h, 01h,0FFh,0FFh, 70h -31E4:E863 E8 00 80 24 04 00 db 0E8h, 00h, 80h, 24h, 04h, 00h -31E4:E869 00 00 80 D9 0A 01 db 00h, 00h, 80h,0D9h, 0Ah, 01h -31E4:E86F 00 00 00 D8 0A 01 db 00h, 00h, 00h,0D8h, 0Ah, 01h -31E4:E875 00 00 00 DA 0A FF db 00h, 00h, 00h,0DAh, 0Ah,0FFh -31E4:E87B FF 8A E8 00 80 D0 db 0FFh, 8Ah,0E8h, 00h, 80h,0D0h -31E4:E881 07 00 00 00 80 24 db 07h, 00h, 00h, 00h, 80h, 24h -31E4:E887 04 01 00 00 00 D1 db 04h, 01h, 00h, 00h, 00h,0D1h -31E4:E88D 07 01 00 00 00 D2 db 07h, 01h, 00h, 00h, 00h,0D2h -31E4:E893 07 FF FF B0 E8 00 db 07h,0FFh,0FFh,0B0h,0E8h, 00h -31E4:E899 80 db 80h -31E4:E89A 22 08 db 22h, 08h -31E4:E89C 0009[00] db 9 dup (0) -31E4:E8A5 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:E8AB 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:E8B1 00 3C 08 02 00 00 db 00h, 3Ch, 08h, 02h, 00h, 00h -31E4:E8B7 00 3D 08 03 00 00 db 00h, 3Dh, 08h, 03h, 00h, 00h -31E4:E8BD 00 3E 08 FF FF E8 db 00h, 3Eh, 08h,0FFh,0FFh,0E8h -31E4:E8C3 E8 00 80 db 0E8h, 00h, 80h -31E4:E8C6 38 08 db 38h, 08h -31E4:E8C8 0009[00] db 9 dup (0) -31E4:E8D1 80 40 08 01 00 00 db 80h, 40h, 08h, 01h, 00h, 00h -31E4:E8D7 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:E8DD 80 24 04 03 00 00 db 80h, 24h, 04h, 03h, 00h, 00h -31E4:E8E3 80 44 08 04 00 00 db 80h, 44h, 08h, 04h, 00h, 00h -31E4:E8E9 00 3F 08 02 00 00 db 00h, 3Fh, 08h, 02h, 00h, 00h -31E4:E8EF 00 41 08 03 00 00 db 00h, 41h, 08h, 03h, 00h, 00h -31E4:E8F5 00 42 08 04 00 00 db 00h, 42h, 08h, 04h, 00h, 00h -31E4:E8FB 00 43 08 05 00 db 00h, 43h, 08h, 05h, 00h -31E4:E900 00 data_1191 db 0 ; Data table (indexed access) -31E4:E901 00 45 08 FF FF 1A db 00h, 45h, 08h,0FFh,0FFh, 1Ah -31E4:E907 E9 00 80 FB 07 db 0E9h, 00h, 80h,0FBh, 07h -31E4:E90C 0009[00] db 9 dup (0) -31E4:E915 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:E91B 00 08 08 02 00 00 db 00h, 08h, 08h, 02h, 00h, 00h -31E4:E921 00 09 08 FF FF 52 db 00h, 09h, 08h,0FFh,0FFh, 52h -31E4:E927 E9 00 80 D5 87 00 db 0E9h, 00h, 80h,0D5h, 87h, 00h -31E4:E92D 00 00 80 24 84 01 db 00h, 00h, 80h, 24h, 84h, 01h -31E4:E933 00 00 80 24 84 02 db 00h, 00h, 80h, 24h, 84h, 02h -31E4:E939 00 2B A0 D9 07 03 db 00h, 2Bh,0A0h,0D9h, 07h, 03h -31E4:E93F 00 db 00h -31E4:E940 0007[00] db 7 dup (0) -31E4:E947 80 24 04 04 00 00 db 80h, 24h, 04h, 04h, 00h, 00h -31E4:E94D 80 24 04 05 00 00 db 80h, 24h, 04h, 05h, 00h, 00h -31E4:E953 00 1B A0 01 00 00 db 00h, 1Bh,0A0h, 01h, 00h, 00h -31E4:E959 00 D7 07 02 00 00 db 00h,0D7h, 07h, 02h, 00h, 00h -31E4:E95F 00 D8 07 FF FF 00 db 00h,0D8h, 07h,0FFh,0FFh, 00h -31E4:E965 00 DA 07 05 00 00 db 00h,0DAh, 07h, 05h, 00h, 00h -31E4:E96B 00 DB 07 06 00 00 db 00h,0DBh, 07h, 06h, 00h, 00h -31E4:E971 00 DC 07 FF FF 90 db 00h,0DCh, 07h,0FFh,0FFh, 90h -31E4:E977 E9 00 80 db 0E9h, 00h, 80h -31E4:E97A 29 0A db 29h, 0Ah -31E4:E97C 0009[00] db 9 dup (0) -31E4:E985 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:E98B 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:E991 00 2A 0A 02 00 00 db 00h, 2Ah, 0Ah, 02h, 00h, 00h -31E4:E997 00 2B 0A 03 00 00 db 00h, 2Bh, 0Ah, 03h, 00h, 00h -31E4:E99D 00 2C 0A FF FF B0 db 00h, 2Ch, 0Ah,0FFh,0FFh,0B0h -31E4:E9A3 E9 00 80 24 04 00 db 0E9h, 00h, 80h, 24h, 04h, 00h -31E4:E9A9 00 00 80 24 04 01 db 00h, 00h, 80h, 24h, 04h, 01h -31E4:E9AF 00 00 00 77 09 01 db 00h, 00h, 00h, 77h, 09h, 01h -31E4:E9B5 00 00 00 78 09 FF db 00h, 00h, 00h, 78h, 09h,0FFh -31E4:E9BB FF C4 E9 00 80 CA db 0FFh,0C4h,0E9h, 00h, 80h,0CAh -31E4:E9C1 09 00 db 09h, 00h -31E4:E9C3 00 00 00 CB 09 FF db 00h, 00h, 00h,0CBh, 09h,0FFh -31E4:E9C9 FF EA E9 69 A3 03 db 0FFh,0EAh,0E9h, 69h,0A3h, 03h -31E4:E9CF 09 00 00 00 80 24 db 09h, 00h, 00h, 00h, 80h, 24h -31E4:E9D5 04 02 00 db 04h, 02h, 00h -31E4:E9D8 0007[00] db 7 dup (0) -31E4:E9DF 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:E9E5 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:E9EB 00 79 09 03 00 00 db 00h, 79h, 09h, 03h, 00h, 00h -31E4:E9F1 00 7A 09 04 00 00 db 00h, 7Ah, 09h, 04h, 00h, 00h -31E4:E9F7 00 7B 09 FF FF 0A db 00h, 7Bh, 09h,0FFh,0FFh, 0Ah -31E4:E9FD EA 00 80 24 04 00 db 0EAh, 00h, 80h, 24h, 04h, 00h -31E4:EA03 00 00 80 CD 09 01 db 00h, 00h, 80h,0CDh, 09h, 01h -31E4:EA09 00 00 00 CC 09 01 db 00h, 00h, 00h,0CCh, 09h, 01h -31E4:EA0F 00 00 00 45 08 FF db 00h, 00h, 00h, 45h, 08h,0FFh -31E4:EA15 FF 30 EA 00 80 db 0FFh, 30h,0EAh, 00h, 80h -31E4:EA1A 40 09 db 40h, 09h -31E4:EA1C 0009[00] db 9 dup (0) -31E4:EA25 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:EA2B 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:EA31 00 CF 09 02 00 00 db 00h,0CFh, 09h, 02h, 00h, 00h -31E4:EA37 00 D0 09 03 00 00 db 00h,0D0h, 09h, 03h, 00h, 00h -31E4:EA3D 00 D1 09 FF FF 5C db 00h,0D1h, 09h,0FFh,0FFh, 5Ch -31E4:EA43 EA 00 80 db 0EAh, 00h, 80h -31E4:EA46 48 09 db 48h, 09h -31E4:EA48 0009[00] db 9 dup (0) -31E4:EA51 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:EA57 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:EA5D 00 B7 09 02 00 00 db 00h,0B7h, 09h, 02h, 00h, 00h -31E4:EA63 00 B8 09 03 00 00 db 00h,0B8h, 09h, 03h, 00h, 00h -31E4:EA69 00 B9 09 FF FF 8E db 00h,0B9h, 09h,0FFh,0FFh, 8Eh -31E4:EA6F EA 00 80 92 09 00 db 0EAh, 00h, 80h, 92h, 09h, 00h -31E4:EA75 00 db 00h -31E4:EA76 0007[00] db 7 dup (0) -31E4:EA7D 80 24 04 03 00 00 db 80h, 24h, 04h, 03h, 00h, 00h -31E4:EA83 80 BC 09 04 00 00 db 80h,0BCh, 09h, 04h, 00h, 00h -31E4:EA89 80 24 04 02 00 DC db 80h, 24h, 04h, 02h, 00h,0DCh -31E4:EA8F 27 BA 09 02 00 00 db 27h,0BAh, 09h, 02h, 00h, 00h -31E4:EA95 00 BE 09 04 00 00 db 00h,0BEh, 09h, 04h, 00h, 00h -31E4:EA9B 00 BF 09 FF FF 00 db 00h,0BFh, 09h,0FFh,0FFh, 00h -31E4:EAA1 00 BB 09 03 00 E7 db 00h,0BBh, 09h, 03h, 00h,0E7h -31E4:EAA7 26 BD 09 FF FF C0 db 26h,0BDh, 09h,0FFh,0FFh,0C0h -31E4:EAAD EA 00 80 75 0C 00 db 0EAh, 00h, 80h, 75h, 0Ch, 00h -31E4:EAB3 00 00 80 24 04 01 db 00h, 00h, 80h, 24h, 04h, 01h -31E4:EAB9 00 00 80 24 04 02 db 00h, 00h, 80h, 24h, 04h, 02h -31E4:EABF 00 00 00 76 0C 01 db 00h, 00h, 00h, 76h, 0Ch, 01h -31E4:EAC5 00 00 00 77 0C 02 db 00h, 00h, 00h, 77h, 0Ch, 02h -31E4:EACB 00 00 00 78 0C FF db 00h, 00h, 00h, 78h, 0Ch,0FFh -31E4:EAD1 FF E6 EA 00 80 C0 db 0FFh,0E6h,0EAh, 00h, 80h,0C0h -31E4:EAD7 09 00 00 00 80 A9 db 09h, 00h, 00h, 00h, 80h,0A9h -31E4:EADD 09 02 00 00 80 24 db 09h, 02h, 00h, 00h, 80h, 24h -31E4:EAE3 04 03 00 17 27 AB db 04h, 03h, 00h, 17h, 27h,0ABh -31E4:EAE9 09 FF FF 00 00 C1 db 09h,0FFh,0FFh, 00h, 00h,0C1h -31E4:EAEF 09 01 00 00 00 C2 db 09h, 01h, 00h, 00h, 00h,0C2h -31E4:EAF5 09 02 00 F3 27 24 db 09h, 02h, 00h,0F3h, 27h, 24h -31E4:EAFB 04 FF FF 12 EB 00 db 04h,0FFh,0FFh, 12h,0EBh, 00h -31E4:EB01 80 38 0A 00 00 00 db 80h, 38h, 0Ah, 00h, 00h, 00h -31E4:EB07 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:EB0D 80 24 04 02 00 00 db 80h, 24h, 04h, 02h, 00h, 00h -31E4:EB13 00 23 0B 01 00 00 db 00h, 23h, 0Bh, 01h, 00h, 00h -31E4:EB19 00 24 0B 02 00 00 db 00h, 24h, 0Bh, 02h, 00h, 00h -31E4:EB1F 00 25 0B FF FF - -31E4:EB24 EB56 skorl_talk_0 dw offset skorl_responses -31E4:EB26 00 00 AF 00 01 db 00h, 00h,0AFh, 00h, 01h -31E4:EB2B 00 00 00 B0 00 01 db 00h, 00h, 00h,0B0h, 00h, 01h -31E4:EB31 00 00 80 B1 00 02 db 00h, 00h, 80h,0B1h, 00h, 02h -31E4:EB37 00 00 00 B5 00 03 db 00h, 00h, 00h,0B5h, 00h, 03h -31E4:EB3D 00 00 00 B6 00 04 db 00h, 00h, 00h,0B6h, 00h, 04h -31E4:EB43 00 00 80 B7 00 05 db 00h, 00h, 80h,0B7h, 00h, 05h -31E4:EB49 00 00 00 B8 00 06 db 00h, 00h, 00h,0B8h, 00h, 06h -31E4:EB4F 00 00 80 B9 00 07 db 00h, 00h, 80h,0B9h, 00h, 07h -31E4:EB55 00 db 00h - -31E4:EB56 0000 00BF FFFF skorl_responses dw 0000h, 00BFh, 0FFFFh -31E4:EB5C 1FA8 00BE 0003 -31E4:EB62 1FC2 00C0 FFFF -31E4:EB68 0000 00C4 FFFF -31E4:EB6E 0000 00C3 FFFF -31E4:EB74 0000 00C6 0006 -31E4:EB7A 0000 00C5 FFFF -31E4:EB80 0000 00C8 FFFF -31E4:EB86 EBA6 8000 099E - - -31E4:EB86 A6 EB 00 80 9E db 0A6h,0EBh, 00h, 80h, 9Eh -31E4:EB8B 09 00 00 00 80 A0 db 09h, 00h, 00h, 00h, 80h,0A0h -31E4:EB91 09 01 00 00 80 A2 db 09h, 01h, 00h, 00h, 80h,0A2h -31E4:EB97 09 02 00 00 80 6C db 09h, 02h, 00h, 00h, 80h, 6Ch -31E4:EB9D 09 03 00 00 80 A5 db 09h, 03h, 00h, 00h, 80h,0A5h -31E4:EBA3 09 04 00 00 00 9F db 09h, 04h, 00h, 00h, 00h, 9Fh -31E4:EBA9 09 01 00 00 00 A1 db 09h, 01h, 00h, 00h, 00h,0A1h -31E4:EBAF 09 02 00 00 00 A3 db 09h, 02h, 00h, 00h, 00h,0A3h -31E4:EBB5 09 03 00 00 00 A4 db 09h, 03h, 00h, 00h, 00h,0A4h -31E4:EBBB 09 04 00 C1 26 A6 db 09h, 04h, 00h,0C1h, 26h,0A6h -31E4:EBC1 09 FF FF CC EB 00 db 09h,0FFh,0FFh,0CCh,0EBh, 00h -31E4:EBC7 80 7A 0A 00 00 00 db 80h, 7Ah, 0Ah, 00h, 00h, 00h -31E4:EBCD 00 7B 0A FF FF DA db 00h, 7Bh, 0Ah,0FFh,0FFh,0DAh -31E4:EBD3 EB 00 80 9E 09 00 db 0EBh, 00h, 80h, 9Eh, 09h, 00h -31E4:EBD9 00 00 00 79 0A FF db 00h, 00h, 00h, 79h, 0Ah,0FFh -31E4:EBDF FF E8 EB 00 80 9E db 0FFh,0E8h,0EBh, 00h, 80h, 9Eh -31E4:EBE5 09 00 00 00 00 24 db 09h, 00h, 00h, 00h, 00h, 24h -31E4:EBEB 04 FF FF 32 EC 00 db 04h,0FFh,0FFh, 32h,0ECh, 00h -31E4:EBF1 80 FB 09 00 00 00 db 80h,0FBh, 09h, 00h, 00h, 00h -31E4:EBF7 00 FD 89 02 00 00 db 00h,0FDh, 89h, 02h, 00h, 00h -31E4:EBFD 00 FF 89 03 00 00 db 00h,0FFh, 89h, 03h, 00h, 00h -31E4:EC03 80 01 0A 04 00 00 db 80h, 01h, 0Ah, 04h, 00h, 00h -31E4:EC09 80 69 08 05 00 00 db 80h, 69h, 08h, 05h, 00h, 00h -31E4:EC0F 80 24 04 06 00 00 db 80h, 24h, 04h, 06h, 00h, 00h -31E4:EC15 80 24 04 07 00 00 db 80h, 24h, 04h, 07h, 00h, 00h -31E4:EC1B 80 06 0A 08 00 00 db 80h, 06h, 0Ah, 08h, 00h, 00h -31E4:EC21 80 08 0A 09 00 00 db 80h, 08h, 0Ah, 09h, 00h, 00h -31E4:EC27 80 0A 0A 0A 00 00 db 80h, 0Ah, 0Ah, 0Ah, 00h, 00h -31E4:EC2D 80 0C 0A 0B 00 78 db 80h, 0Ch, 0Ah, 0Bh, 00h, 78h -31E4:EC33 28 24 04 FF FF 00 db 28h, 24h, 04h,0FFh,0FFh, 00h -31E4:EC39 00 FC 09 01 00 00 db 00h,0FCh, 09h, 01h, 00h, 00h -31E4:EC3F 00 FE 09 01 00 00 db 00h,0FEh, 09h, 01h, 00h, 00h -31E4:EC45 00 00 0A 01 00 00 db 00h, 00h, 0Ah, 01h, 00h, 00h -31E4:EC4B 00 02 0A 04 00 00 db 00h, 02h, 0Ah, 04h, 00h, 00h -31E4:EC51 00 03 0A 05 00 00 db 00h, 03h, 0Ah, 05h, 00h, 00h -31E4:EC57 00 04 0A 07 00 00 db 00h, 04h, 0Ah, 07h, 00h, 00h -31E4:EC5D 00 05 0A 07 00 00 db 00h, 05h, 0Ah, 07h, 00h, 00h -31E4:EC63 00 07 0A 08 00 00 db 00h, 07h, 0Ah, 08h, 00h, 00h -31E4:EC69 00 09 0A 09 00 A5 db 00h, 09h, 0Ah, 09h, 00h,0A5h -31E4:EC6F 28 0B 0A 0A 00 00 db 28h, 0Bh, 0Ah, 0Ah, 00h, 00h -31E4:EC75 00 24 04 FF FF 82 db 00h, 24h, 04h,0FFh,0FFh, 82h -31E4:EC7B EC 00 80 05 0A 00 db 0ECh, 00h, 80h, 05h, 0Ah, 00h -31E4:EC81 00 00 00 24 04 FF db 00h, 00h, 00h, 24h, 04h,0FFh -31E4:EC87 FF 9C EC 00 80 D5 db 0FFh, 9Ch,0ECh, 00h, 80h,0D5h -31E4:EC8D 07 00 00 00 00 85 db 07h, 00h, 00h, 00h, 00h, 85h -31E4:EC93 0A 01 00 00 80 87 db 0Ah, 01h, 00h, 00h, 80h, 87h -31E4:EC99 0A 02 00 E1 28 84 db 0Ah, 02h, 00h,0E1h, 28h, 84h -31E4:EC9F 0A 01 00 00 00 86 db 0Ah, 01h, 00h, 00h, 00h, 86h -31E4:ECA5 0A FF FF 00 00 88 db 0Ah,0FFh,0FFh, 00h, 00h, 88h -31E4:ECAB 0A FF FF B6 EC 00 db 0Ah,0FFh,0FFh,0B6h,0ECh, 00h -31E4:ECB1 80 F9 07 00 00 00 db 80h,0F9h, 07h, 00h, 00h, 00h -31E4:ECB7 00 89 0A FF FF C4 db 00h, 89h, 0Ah,0FFh,0FFh,0C4h -31E4:ECBD EC 00 80 FB 07 00 db 0ECh, 00h, 80h,0FBh, 07h, 00h -31E4:ECC3 00 00 00 8A 0A FF db 00h, 00h, 00h, 8Ah, 0Ah,0FFh -31E4:ECC9 FF D8 EC 00 00 22 db 0FFh,0D8h,0ECh, 00h, 00h, 22h -31E4:ECCF 08 00 00 00 80 2C db 08h, 00h, 00h, 00h, 80h, 2Ch -31E4:ECD5 08 01 00 00 00 8B db 08h, 01h, 00h, 00h, 00h, 8Bh -31E4:ECDB 0A FF FF 00 00 8C db 0Ah,0FFh,0FFh, 00h, 00h, 8Ch -31E4:ECE1 0A FF FF EC EC 00 db 0Ah,0FFh,0FFh,0ECh,0ECh, 00h -31E4:ECE7 80 38 08 00 00 00 db 80h, 38h, 08h, 00h, 00h, 00h -31E4:ECED 00 8D 0A FF FF 00 db 00h, 8Dh, 0Ah,0FFh,0FFh, 00h -31E4:ECF3 ED 00 80 24 04 00 db 0EDh, 00h, 80h, 24h, 04h, 00h -31E4:ECF9 00 00 80 8F 0A 01 db 00h, 00h, 80h, 8Fh, 0Ah, 01h -31E4:ECFF 00 00 00 8E 0A 01 db 00h, 00h, 00h, 8Eh, 0Ah, 01h -31E4:ED05 00 00 00 90 0A FF db 00h, 00h, 00h, 90h, 0Ah,0FFh -31E4:ED0B FF 20 ED 00 80 CA db 0FFh, 20h,0EDh, 00h, 80h,0CAh -31E4:ED11 09 00 00 00 80 92 db 09h, 00h, 00h, 00h, 80h, 92h -31E4:ED17 0A 01 00 00 80 94 db 0Ah, 01h, 00h, 00h, 80h, 94h -31E4:ED1D 0A 02 00 00 00 91 db 0Ah, 02h, 00h, 00h, 00h, 91h -31E4:ED23 0A 01 00 00 00 93 db 0Ah, 01h, 00h, 00h, 00h, 93h -31E4:ED29 0A 02 00 00 00 95 db 0Ah, 02h, 00h, 00h, 00h, 95h -31E4:ED2F 0A FF FF 40 ED 00 db 0Ah,0FFh,0FFh, 40h,0EDh, 00h -31E4:ED35 80 40 09 00 00 00 db 80h, 40h, 09h, 00h, 00h, 00h -31E4:ED3B 80 24 04 01 00 00 db 80h, 24h, 04h, 01h, 00h, 00h -31E4:ED41 00 0A 0B 01 00 00 db 00h, 0Ah, 0Bh, 01h, 00h, 00h -31E4:ED47 00 0B 0B FF FF 60 db 00h, 0Bh, 0Bh,0FFh,0FFh, 60h -31E4:ED4D ED 69 23 03 09 00 db 0EDh, 69h, 23h, 03h, 09h, 00h -31E4:ED53 00 00 80 99 0A 02 db 00h, 00h, 80h, 99h, 0Ah, 02h -31E4:ED59 00 00 80 97 0A 01 db 00h, 00h, 80h, 97h, 0Ah, 01h -31E4:ED5F 00 00 00 96 0A 02 db 00h, 00h, 00h, 96h, 0Ah, 02h -31E4:ED65 00 00 00 98 0A FF db 00h, 00h, 00h, 98h, 0Ah,0FFh -31E4:ED6B FF 00 00 9A 0A FF db 0FFh, 00h, 00h, 9Ah, 0Ah,0FFh -31E4:ED71 FF 86 ED 00 00 40 db 0FFh, 86h,0EDh, 00h, 00h, 40h -31E4:ED77 09 00 00 00 80 9C db 09h, 00h, 00h, 00h, 80h, 9Ch -31E4:ED7D 0A 01 00 00 80 24 db 0Ah, 01h, 00h, 00h, 80h, 24h -31E4:ED83 04 02 00 00 00 9B db 04h, 02h, 00h, 00h, 00h, 9Bh -31E4:ED89 0A FF FF 00 00 9D db 0Ah,0FFh,0FFh, 00h, 00h, 9Dh -31E4:ED8F 0A 02 00 00 00 9E db 0Ah, 02h, 00h, 00h, 00h, 9Eh -31E4:ED95 0A FF FF AC ED 00 db 0Ah,0FFh,0FFh,0ACh,0EDh, 00h -31E4:ED9B 80 48 09 00 00 00 db 80h, 48h, 09h, 00h, 00h, 00h -31E4:EDA1 80 A3 0A 01 00 00 db 80h,0A3h, 0Ah, 01h, 00h, 00h -31E4:EDA7 80 D1 0A 02 00 00 db 80h,0D1h, 0Ah, 02h, 00h, 00h -31E4:EDAD 00 A2 0A 01 00 00 db 00h,0A2h, 0Ah, 01h, 00h, 00h -31E4:EDB3 00 A4 0A 02 00 00 db 00h,0A4h, 0Ah, 02h, 00h, 00h -31E4:EDB9 00 A5 0A FF FF C6 db 00h,0A5h, 0Ah,0FFh,0FFh,0C6h -31E4:EDBF ED 00 80 92 09 00 db 0EDh, 00h, 80h, 92h, 09h, 00h -31E4:EDC5 00 00 00 D2 0A FF db 00h, 00h, 00h,0D2h, 0Ah,0FFh -31E4:EDCB FF E0 ED 00 80 38 db 0FFh,0E0h,0EDh, 00h, 80h, 38h -31E4:EDD1 0A 00 00 00 80 D4 db 0Ah, 00h, 00h, 00h, 80h,0D4h -31E4:EDD7 0A 01 00 00 80 D6 db 0Ah, 01h, 00h, 00h, 80h,0D6h -31E4:EDDD 0A 02 00 00 00 D3 db 0Ah, 02h, 00h, 00h, 00h,0D3h -31E4:EDE3 0A 01 00 00 00 D5 db 0Ah, 01h, 00h, 00h, 00h,0D5h -31E4:EDE9 0A 02 00 00 00 24 db 0Ah, 02h, 00h, 00h, 00h, 24h -31E4:EDEF 04 FF FF 12 EE 00 db 04h,0FFh,0FFh, 12h,0EEh, 00h -31E4:EDF5 80 C9 0A 00 00 00 db 80h,0C9h, 0Ah, 00h, 00h, 00h -31E4:EDFB 80 CB 0A 01 00 00 db 80h,0CBh, 0Ah, 01h, 00h, 00h -31E4:EE01 80 CD 0A 02 00 00 db 80h,0CDh, 0Ah, 02h, 00h, 00h -31E4:EE07 80 CD 0A 03 00 00 db 80h,0CDh, 0Ah, 03h, 00h, 00h -31E4:EE0D 80 24 04 04 00 00 db 80h, 24h, 04h, 04h, 00h, 00h -31E4:EE13 00 CA 0A 01 00 00 db 00h,0CAh, 0Ah, 01h, 00h, 00h -31E4:EE19 00 CC 0A 02 00 00 db 00h,0CCh, 0Ah, 02h, 00h, 00h -31E4:EE1F 00 CE 0A 03 00 00 db 00h,0CEh, 0Ah, 03h, 00h, 00h -31E4:EE25 00 CF 0A 04 00 FE db 00h,0CFh, 0Ah, 04h, 00h,0FEh -31E4:EE2B 28 24 04 FF FF 44 db 28h, 24h, 04h,0FFh,0FFh, 44h -31E4:EE31 EE 00 80 77 0B 00 db 0EEh, 00h, 80h, 77h, 0Bh, 00h -31E4:EE37 00 00 80 79 0B 01 db 00h, 00h, 80h, 79h, 0Bh, 01h -31E4:EE3D 00 00 80 7B 0B 02 db 00h, 00h, 80h, 7Bh, 0Bh, 02h -31E4:EE43 00 00 00 78 0B 01 db 00h, 00h, 00h, 78h, 0Bh, 01h -31E4:EE49 00 00 00 7A 0B 02 db 00h, 00h, 00h, 7Ah, 0Bh, 02h -31E4:EE4F 00 00 00 7C 0B FF db 00h, 00h, 00h, 7Ch, 0Bh,0FFh -31E4:EE55 FF 82 EE 00 80 BA db 0FFh, 82h,0EEh, 00h, 80h,0BAh -31E4:EE5B 0A 00 00 00 80 BC db 0Ah, 00h, 00h, 00h, 80h,0BCh -31E4:EE61 0A 01 00 00 80 BE db 0Ah, 01h, 00h, 00h, 80h,0BEh -31E4:EE67 0A 02 00 00 80 C0 db 0Ah, 02h, 00h, 00h, 80h,0C0h -31E4:EE6D 0A 03 00 00 80 C2 db 0Ah, 03h, 00h, 00h, 80h,0C2h -31E4:EE73 0A 04 00 00 80 C4 db 0Ah, 04h, 00h, 00h, 80h,0C4h -31E4:EE79 0A 05 00 00 80 C6 db 0Ah, 05h, 00h, 00h, 80h,0C6h -31E4:EE7F 0A 06 00 00 00 BB db 0Ah, 06h, 00h, 00h, 00h,0BBh -31E4:EE85 0A 01 00 00 00 BD db 0Ah, 01h, 00h, 00h, 00h,0BDh -31E4:EE8B 0A 02 00 00 00 BF db 0Ah, 02h, 00h, 00h, 00h,0BFh -31E4:EE91 0A 03 00 00 00 C1 db 0Ah, 03h, 00h, 00h, 00h,0C1h -31E4:EE97 0A 04 00 00 00 C3 db 0Ah, 04h, 00h, 00h, 00h,0C3h -31E4:EE9D 0A 05 00 00 00 C5 db 0Ah, 05h, 00h, 00h, 00h,0C5h -31E4:EEA3 0A 06 00 F1 28 C7 db 0Ah, 06h, 00h,0F1h, 28h,0C7h -31E4:EEA9 0A FF FF B4 EE 00 db 0Ah,0FFh,0FFh,0B4h,0EEh, 00h -31E4:EEAF 80 24 04 00 00 00 db 80h, 24h, 04h, 00h, 00h, 00h -31E4:EEB5 00 C8 0A FF FF CE db 00h,0C8h, 0Ah,0FFh,0FFh,0CEh -31E4:EEBB EE 00 80 B1 0F 00 db 0EEh, 00h, 80h,0B1h, 0Fh, 00h -31E4:EEC1 00 00 80 B3 0F 01 db 00h, 00h, 80h,0B3h, 0Fh, 01h -31E4:EEC7 00 00 80 C1 0F 02 db 00h, 00h, 80h,0C1h, 0Fh, 02h -31E4:EECD 00 00 00 B2 0F 01 db 00h, 00h, 00h,0B2h, 0Fh, 01h -31E4:EED3 00 9A 29 B4 0F 02 db 00h, 9Ah, 29h,0B4h, 0Fh, 02h -31E4:EED9 00 00 00 C2 0F FF db 00h, 00h, 00h,0C2h, 0Fh,0FFh -31E4:EEDF FF 1E EF 00 00 B5 db 0FFh, 1Eh,0EFh, 00h, 00h,0B5h -31E4:EEE5 8F 00 00 00 00 B7 db 8Fh, 00h, 00h, 00h, 00h,0B7h -31E4:EEEB 8F 01 00 00 00 B9 db 8Fh, 01h, 00h, 00h, 00h,0B9h -31E4:EEF1 8F 02 00 00 80 BF db 8Fh, 02h, 00h, 00h, 80h,0BFh -31E4:EEF7 0F 05 00 00 00 C3 db 0Fh, 05h, 00h, 00h, 00h,0C3h -31E4:EEFD 0F 07 00 02 2A C7 db 0Fh, 07h, 00h, 02h, 2Ah,0C7h -31E4:EF03 0F 08 00 00 80 C5 db 0Fh, 08h, 00h, 00h, 80h,0C5h -31E4:EF09 0F 09 00 00 80 BB db 0Fh, 09h, 00h, 00h, 80h,0BBh -31E4:EF0F 0F 03 00 00 80 BD db 0Fh, 03h, 00h, 00h, 80h,0BDh -31E4:EF15 0F db 0Fh -31E4:EF16 04 data_1199 db 4 -31E4:EF17 00 00 80 C1 0F 06 db 00h, 00h, 80h,0C1h, 0Fh, 06h -31E4:EF1D 00 00 00 B6 0F 01 db 00h, 00h, 00h,0B6h, 0Fh, 01h -31E4:EF23 00 EC 29 B8 0F FF db 00h,0ECh, 29h,0B8h, 0Fh,0FFh -31E4:EF29 FF 00 00 BA 0F 07 db 0FFh, 00h, 00h,0BAh, 0Fh, 07h -31E4:EF2F 00 00 00 BC 0F 08 db 00h, 00h, 00h,0BCh, 0Fh, 08h -31E4:EF35 00 00 00 BE 0F 04 db 00h, 00h, 00h,0BEh, 0Fh, 04h -31E4:EF3B 00 00 00 C0 0F 04 db 00h, 00h, 00h,0C0h, 0Fh, 04h -31E4:EF41 00 00 00 C2 0F 04 db 00h, 00h, 00h,0C2h, 0Fh, 04h -31E4:EF47 00 C0 29 C4 0F FF db 00h,0C0h, 29h,0C4h, 0Fh,0FFh -31E4:EF4D FF D6 29 C8 0F FF db 0FFh,0D6h, 29h,0C8h, 0Fh,0FFh -31E4:EF53 FF AA 29 C6 0F FF db 0FFh,0AAh, 29h,0C6h, 0Fh,0FFh -31E4:EF59 FF 62 EF 00 80 24 db 0FFh, 62h,0EFh, 00h, 80h, 24h -31E4:EF5F 04 00 00 00 00 D1 db 04h, 00h, 00h, 00h, 00h,0D1h -31E4:EF65 0F FF FF 88 EF 00 db 0Fh,0FFh,0FFh, 88h,0EFh, 00h -31E4:EF6B 80 24 84 00 00 00 db 80h, 24h, 84h, 00h, 00h, 00h -31E4:EF71 00 D3 8F 01 00 02 db 00h,0D3h, 8Fh, 01h, 00h, 02h -31E4:EF77 2A C7 0F 03 00 00 db 2Ah,0C7h, 0Fh, 03h, 00h, 00h -31E4:EF7D 80 C5 0F 04 00 00 db 80h,0C5h, 0Fh, 04h, 00h, 00h -31E4:EF83 80 D5 0F 02 00 00 db 80h,0D5h, 0Fh, 02h, 00h, 00h -31E4:EF89 00 D2 0F 01 00 00 db 00h,0D2h, 0Fh, 01h, 00h, 00h -31E4:EF8F 00 D4 0F 04 00 00 db 00h,0D4h, 0Fh, 04h, 00h, 00h -31E4:EF95 00 D6 0F FF FF D6 db 00h,0D6h, 0Fh,0FFh,0FFh,0D6h -31E4:EF9B 29 C8 0F FF FF AA db 29h,0C8h, 0Fh,0FFh,0FFh,0AAh -31E4:EFA1 29 C6 0F FF FF B4 db 29h,0C6h, 0Fh,0FFh,0FFh,0B4h -31E4:EFA7 EF 00 80 D7 0F 00 db 0EFh, 00h, 80h,0D7h, 0Fh, 00h -31E4:EFAD 00 00 80 D9 0F 01 db 00h, 00h, 80h,0D9h, 0Fh, 01h -31E4:EFB3 00 00 00 D8 0F 01 db 00h, 00h, 00h,0D8h, 0Fh, 01h -31E4:EFB9 00 09 2A DA 0F FF db 00h, 09h, 2Ah,0DAh, 0Fh,0FFh -31E4:EFBF FF C8 EF 00 80 12 db 0FFh,0C8h,0EFh, 00h, 80h, 12h -31E4:EFC5 10 00 00 00 00 13 db 10h, 00h, 00h, 00h, 00h, 13h -31E4:EFCB 10 FF FF D6 EF 00 db 10h,0FFh,0FFh,0D6h,0EFh, 00h -31E4:EFD1 80 24 04 00 00 00 db 80h, 24h, 04h, 00h, 00h, 00h -31E4:EFD7 00 DB 0F FF FF EA db 00h,0DBh, 0Fh,0FFh,0FFh,0EAh -31E4:EFDD EF 00 80 DC 0F 00 db 0EFh, 00h, 80h,0DCh, 0Fh, 00h -31E4:EFE3 00 00 80 24 04 01 db 00h, 00h, 80h, 24h, 04h, 01h -31E4:EFE9 00 00 00 DD 0F 01 db 00h, 00h, 00h,0DDh, 0Fh, 01h -31E4:EFEF 00 1F 2A 24 04 FF db 00h, 1Fh, 2Ah, 24h, 04h,0FFh -31E4:EFF5 FF db 0FFh - -31E4:EFF6 FE EF 00 80 1D db 0FEh,0EFh, 00h, 80h, 1Dh -31E4:EFFB 10 00 00 00 00 24 db 10h, 00h, 00h, 00h, 00h, 24h -31E4:F001 04 FF FF 00 db 04h,0FFh,0FFh, 00h -31E4:F005 000B[00] db 11 dup (0) - -31E4:F010 0000 timer_ticks dw 0 ; xref 273F:14BF, 273F:14E9 - ; 273F:48D5, 273F:48DD - ; 273F:9500 -31E4:F012 000E[00] db 14 dup (0) - - data_seg ends - - - - ;------------------------------------------------------------ scripts2_seg ---- - - scripts2_seg segment byte public - assume cs:scripts2_seg, ds:scripts2_seg, ss:stack_seg_k - -40E6:0000 06 00 06 00 01 00 db 06h, 00h, 06h, 00h, 01h, 00h -40E6:0006 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:000C 03 00 03 00 04 00 db 03h, 00h, 03h, 00h, 04h, 00h -40E6:0012 04 00 05 00 05 00 db 04h, 00h, 05h, 00h, 05h, 00h -40E6:0018 04 00 04 00 02 00 db 04h, 00h, 04h, 00h, 02h, 00h -40E6:001E 02 00 06 00 06 00 db 02h, 00h, 06h, 00h, 06h, 00h -40E6:0024 06 00 06 00 07 00 db 06h, 00h, 06h, 00h, 07h, 00h -40E6:002A 07 00 08 00 08 00 db 07h, 00h, 08h, 00h, 08h, 00h -40E6:0030 09 00 09 00 0A 00 db 09h, 00h, 09h, 00h, 0Ah, 00h -40E6:0036 0A 00 0B 00 0B 00 db 0Ah, 00h, 0Bh, 00h, 0Bh, 00h -40E6:003C 0A 00 0A 00 0B 00 db 0Ah, 00h, 0Ah, 00h, 0Bh, 00h -40E6:0042 0B 00 09 00 09 00 db 0Bh, 00h, 09h, 00h, 09h, 00h -40E6:0048 08 00 08 00 07 00 db 08h, 00h, 08h, 00h, 07h, 00h -40E6:004E 07 00 06 00 FC FF db 07h, 00h, 06h, 00h,0FCh,0FFh -40E6:0054 06 00 06 00 01 00 db 06h, 00h, 06h, 00h, 01h, 00h -40E6:005A 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:0060 03 00 03 00 04 00 db 03h, 00h, 03h, 00h, 04h, 00h -40E6:0066 04 00 05 00 05 00 db 04h, 00h, 05h, 00h, 05h, 00h -40E6:006C 04 00 04 00 02 00 db 04h, 00h, 04h, 00h, 02h, 00h -40E6:0072 02 00 F8 FF 11 00 db 02h, 00h,0F8h,0FFh, 11h, 00h -40E6:0078 20 00 06 00 06 00 db 20h, 00h, 06h, 00h, 06h, 00h -40E6:007E FC FF F6 FF 00 00 db 0FCh,0FFh,0F6h,0FFh, 00h, 00h -40E6:0084 00 00 F9 FF 15 59 db 00h, 00h,0F9h,0FFh, 15h, 59h -40E6:008A FD FF F8 FF 00 00 db 0FDh,0FFh,0F8h,0FFh, 00h, 00h -40E6:0090 FB FF 03 00 2F 00 db 0FBh,0FFh, 03h, 00h, 2Fh, 00h -40E6:0096 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:009C 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:00A2 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:00A8 F8 FF 07 00 1C 00 db 0F8h,0FFh, 07h, 00h, 1Ch, 00h -40E6:00AE F8 FF 1B 00 12 00 db 0F8h,0FFh, 1Bh, 00h, 12h, 00h -40E6:00B4 F8 FF 1C 00 17 00 db 0F8h,0FFh, 1Ch, 00h, 17h, 00h -40E6:00BA F8 FF 1C 00 18 00 db 0F8h,0FFh, 1Ch, 00h, 18h, 00h -40E6:00C0 F8 FF 1C 00 11 00 db 0F8h,0FFh, 1Ch, 00h, 11h, 00h -40E6:00C6 09 00 0A 00 0B 00 db 09h, 00h, 0Ah, 00h, 0Bh, 00h -40E6:00CC 0C 00 0D 00 0E 00 db 0Ch, 00h, 0Dh, 00h, 0Eh, 00h -40E6:00D2 F9 FF E9 5C FB FF db 0F9h,0FFh,0E9h, 5Ch,0FBh,0FFh -40E6:00D8 02 00 30 00 FD FF db 02h, 00h, 30h, 00h,0FDh,0FFh -40E6:00DE 08 00 00 00 22 00 db 08h, 00h, 00h, 00h, 22h, 00h -40E6:00E4 F6 FF 00 0C 82 00 db 0F6h,0FFh, 00h, 0Ch, 82h, 00h -40E6:00EA FC FF F8 FF 1E 00 db 0FCh,0FFh,0F8h,0FFh, 1Eh, 00h -40E6:00F0 1C 00 FE FF CE 00 db 1Ch, 00h,0FEh,0FFh,0CEh, 00h -40E6:00F6 13 01 00 00 FE FF db 13h, 01h, 00h, 00h,0FEh,0FFh -40E6:00FC D0 00 13 01 01 00 db 0D0h, 00h, 13h, 01h, 01h, 00h -40E6:0102 F8 FF 1F 00 1C 00 db 0F8h,0FFh, 1Fh, 00h, 1Ch, 00h -40E6:0108 FE FF D2 00 13 01 db 0FEh,0FFh,0D2h, 00h, 13h, 01h -40E6:010E 02 00 FE FF D0 00 db 02h, 00h,0FEh,0FFh,0D0h, 00h -40E6:0114 13 01 01 00 FA FF db 13h, 01h, 01h, 00h,0FAh,0FFh -40E6:011A EC 00 FE FF 80 00 db 0ECh, 00h,0FEh,0FFh, 80h, 00h -40E6:0120 64 00 FF FF 1E 00 db 64h, 00h,0FFh,0FFh, 1Eh, 00h -40E6:0126 FE FF 58 01 BC 00 db 0FEh,0FFh, 58h, 01h,0BCh, 00h -40E6:012C 00 00 FE FF 58 01 db 00h, 00h,0FEh,0FFh, 58h, 01h -40E6:0132 D0 00 00 00 FE FF db 0D0h, 00h, 00h, 00h,0FEh,0FFh -40E6:0138 58 01 F7 00 00 00 db 58h, 01h,0F7h, 00h, 00h, 00h -40E6:013E FE FF 58 01 33 01 db 0FEh,0FFh, 58h, 01h, 33h, 01h -40E6:0144 00 00 F8 FF 06 00 db 00h, 00h,0F8h,0FFh, 06h, 00h -40E6:014A 01 00 FE FF 57 01 db 01h, 00h,0FEh,0FFh, 57h, 01h -40E6:0150 33 01 01 00 FE FF db 33h, 01h, 01h, 00h,0FEh,0FFh -40E6:0156 56 01 33 01 02 00 db 56h, 01h, 33h, 01h, 02h, 00h -40E6:015C FE FF 55 01 33 01 db 0FEh,0FFh, 55h, 01h, 33h, 01h -40E6:0162 03 00 FE FF 53 01 db 03h, 00h,0FEh,0FFh, 53h, 01h -40E6:0168 33 01 04 00 FE FF db 33h, 01h, 04h, 00h,0FEh,0FFh -40E6:016E 52 01 33 01 05 00 db 52h, 01h, 33h, 01h, 05h, 00h -40E6:0174 06 00 FE FF 52 01 db 06h, 00h,0FEh,0FFh, 52h, 01h -40E6:017A 64 00 FF FF 02 00 db 64h, 00h,0FFh,0FFh, 02h, 00h -40E6:0180 FA FF 1C 01 00 00 db 0FAh,0FFh, 1Ch, 01h, 00h, 00h -40E6:0186 FF FF 02 00 FE FF db 0FFh,0FFh, 02h, 00h,0FEh,0FFh -40E6:018C 47 01 FB 00 01 00 db 47h, 01h,0FBh, 00h, 01h, 00h -40E6:0192 FF FF 02 00 FE FF db 0FFh,0FFh, 02h, 00h,0FEh,0FFh -40E6:0198 47 01 08 01 02 00 db 47h, 01h, 08h, 01h, 02h, 00h -40E6:019E FF FF 02 00 FC FF db 0FFh,0FFh, 02h, 00h,0FCh,0FFh -40E6:01A4 02 00 F8 FF 05 00 db 02h, 00h,0F8h,0FFh, 05h, 00h -40E6:01AA 04 00 FE FF F4 00 db 04h, 00h,0FEh,0FFh,0F4h, 00h -40E6:01B0 0F 01 03 00 FE FF db 0Fh, 01h, 03h, 00h,0FEh,0FFh -40E6:01B6 FE 00 0F 01 02 00 db 0FEh, 00h, 0Fh, 01h, 02h, 00h -40E6:01BC FE FF 08 01 0F 01 db 0FEh,0FFh, 08h, 01h, 0Fh, 01h -40E6:01C2 03 00 FE FF 12 01 db 03h, 00h,0FEh,0FFh, 12h, 01h -40E6:01C8 0F 01 02 00 FE FF db 0Fh, 01h, 02h, 00h,0FEh,0FFh -40E6:01CE 1C 01 0F 01 03 00 db 1Ch, 01h, 0Fh, 01h, 03h, 00h -40E6:01D4 FF FF 06 00 F8 FF db 0FFh,0FFh, 06h, 00h,0F8h,0FFh -40E6:01DA 05 00 04 00 FE FF db 05h, 00h, 04h, 00h,0FEh,0FFh -40E6:01E0 26 01 0F 01 02 00 db 26h, 01h, 0Fh, 01h, 02h, 00h -40E6:01E6 FE FF 30 01 0F 01 db 0FEh,0FFh, 30h, 01h, 0Fh, 01h -40E6:01EC 03 00 FE FF 3A 01 db 03h, 00h,0FEh,0FFh, 3Ah, 01h -40E6:01F2 0F 01 02 00 FE FF db 0Fh, 01h, 02h, 00h,0FEh,0FFh -40E6:01F8 44 01 0F 01 03 00 db 44h, 01h, 0Fh, 01h, 03h, 00h -40E6:01FE FE FF 4E 01 0F 01 db 0FEh,0FFh, 4Eh, 01h, 0Fh, 01h -40E6:0204 02 00 FE FF 58 01 db 02h, 00h,0FEh,0FFh, 58h, 01h -40E6:020A 0F 01 03 00 FE FF db 0Fh, 01h, 03h, 00h,0FEh,0FFh -40E6:0210 62 01 0F 01 02 00 db 62h, 01h, 0Fh, 01h, 02h, 00h -40E6:0216 FE FF 6C 01 0F 01 db 0FEh,0FFh, 6Ch, 01h, 0Fh, 01h -40E6:021C 03 00 FE FF 4E 01 db 03h, 00h,0FEh,0FFh, 4Eh, 01h -40E6:0222 64 00 FC FF FE FF db 64h, 00h,0FCh,0FFh,0FEh,0FFh -40E6:0228 3F 01 12 01 01 00 db 3Fh, 01h, 12h, 01h, 01h, 00h -40E6:022E F8 FF 05 00 01 00 db 0F8h,0FFh, 05h, 00h, 01h, 00h -40E6:0234 FE FF 35 01 12 01 db 0FEh,0FFh, 35h, 01h, 12h, 01h -40E6:023A 00 00 FE FF 2B 01 db 00h, 00h,0FEh,0FFh, 2Bh, 01h -40E6:0240 12 01 01 00 FE FF db 12h, 01h, 01h, 00h,0FEh,0FFh -40E6:0246 21 01 12 01 00 00 db 21h, 01h, 12h, 01h, 00h, 00h -40E6:024C FE FF 17 01 12 01 db 0FEh,0FFh, 17h, 01h, 12h, 01h -40E6:0252 01 00 F8 FF 05 00 db 01h, 00h,0F8h,0FFh, 05h, 00h -40E6:0258 01 00 FE FF 0D 01 db 01h, 00h,0FEh,0FFh, 0Dh, 01h -40E6:025E 12 01 00 00 FE FF db 12h, 01h, 00h, 00h,0FEh,0FFh -40E6:0264 03 01 12 01 01 00 db 03h, 01h, 12h, 01h, 01h, 00h -40E6:026A FE FF F9 00 12 01 db 0FEh,0FFh,0F9h, 00h, 12h, 01h -40E6:0270 00 00 FE FF EF 00 db 00h, 00h,0FEh,0FFh,0EFh, 00h -40E6:0276 12 01 01 00 FE FF db 12h, 01h, 01h, 00h,0FEh,0FFh -40E6:027C EF 00 64 00 FC FF db 0EFh, 00h, 64h, 00h,0FCh,0FFh -40E6:0282 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0288 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:028E 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:0294 09 00 0A 00 0B 00 db 09h, 00h, 0Ah, 00h, 0Bh, 00h -40E6:029A FA FF 82 02 00 00 db 0FAh,0FFh, 82h, 02h, 00h, 00h -40E6:02A0 01 00 02 00 FA FF db 01h, 00h, 02h, 00h,0FAh,0FFh -40E6:02A6 9E 02 FE FF 17 01 db 9Eh, 02h,0FEh,0FFh, 17h, 01h -40E6:02AC C0 00 00 00 01 00 db 0C0h, 00h, 00h, 00h, 01h, 00h -40E6:02B2 FE FF 1C 01 CD 00 db 0FEh,0FFh, 1Ch, 01h,0CDh, 00h -40E6:02B8 02 00 FE FF 1D 01 db 02h, 00h,0FEh,0FFh, 1Dh, 01h -40E6:02BE D8 00 03 00 FE FF db 0D8h, 00h, 03h, 00h,0FEh,0FFh -40E6:02C4 1F 01 DC 00 04 00 db 1Fh, 01h,0DCh, 00h, 04h, 00h -40E6:02CA F8 FF 24 00 07 00 db 0F8h,0FFh, 24h, 00h, 07h, 00h -40E6:02D0 FE FF 21 01 E0 00 db 0FEh,0FFh, 21h, 01h,0E0h, 00h -40E6:02D6 04 00 FF FF 01 00 db 04h, 00h,0FFh,0FFh, 01h, 00h -40E6:02DC 05 00 FF FF 02 00 db 05h, 00h,0FFh,0FFh, 02h, 00h -40E6:02E2 06 00 FF FF 03 00 db 06h, 00h,0FFh,0FFh, 03h, 00h -40E6:02E8 07 00 FF FF 01 00 db 07h, 00h,0FFh,0FFh, 01h, 00h -40E6:02EE FC FF 24 00 FF FF db 0FCh,0FFh, 24h, 00h,0FFh,0FFh -40E6:02F4 0A 00 25 00 FF FF db 0Ah, 00h, 25h, 00h,0FFh,0FFh -40E6:02FA 0A 00 26 00 FF FF db 0Ah, 00h, 26h, 00h,0FFh,0FFh -40E6:0300 0A 00 27 00 FF FF db 0Ah, 00h, 27h, 00h,0FFh,0FFh -40E6:0306 0A 00 26 00 FF FF db 0Ah, 00h, 26h, 00h,0FFh,0FFh -40E6:030C 04 00 27 00 FF FF db 04h, 00h, 27h, 00h,0FFh,0FFh -40E6:0312 06 00 26 00 FF FF db 06h, 00h, 26h, 00h,0FFh,0FFh -40E6:0318 04 00 27 00 FF FF db 04h, 00h, 27h, 00h,0FFh,0FFh -40E6:031E 06 00 FC FF F9 FF db 06h, 00h,0FCh,0FFh,0F9h,0FFh -40E6:0324 95 5C 00 00 FF FF db 95h, 5Ch, 00h, 00h,0FFh,0FFh -40E6:032A 0A 00 01 00 FF FF db 0Ah, 00h, 01h, 00h,0FFh,0FFh -40E6:0330 0A 00 02 00 FF FF db 0Ah, 00h, 02h, 00h,0FFh,0FFh -40E6:0336 0A 00 03 00 FF FF db 0Ah, 00h, 03h, 00h,0FFh,0FFh -40E6:033C 0A 00 02 00 FF FF db 0Ah, 00h, 02h, 00h,0FFh,0FFh -40E6:0342 04 00 03 00 FF FF db 04h, 00h, 03h, 00h,0FFh,0FFh -40E6:0348 06 00 02 00 FF FF db 06h, 00h, 02h, 00h,0FFh,0FFh -40E6:034E 04 00 03 00 FF FF db 04h, 00h, 03h, 00h,0FFh,0FFh -40E6:0354 06 00 F9 FF 80 5C db 06h, 00h,0F9h,0FFh, 80h, 5Ch -40E6:035A FC FF F8 FF 14 00 db 0FCh,0FFh,0F8h,0FFh, 14h, 00h -40E6:0360 04 00 FF FF 0B 00 db 04h, 00h,0FFh,0FFh, 0Bh, 00h -40E6:0366 01 00 FF FF 0A 00 db 01h, 00h,0FFh,0FFh, 0Ah, 00h -40E6:036C F8 FF 14 00 04 00 db 0F8h,0FFh, 14h, 00h, 04h, 00h -40E6:0372 02 00 FF FF 37 00 db 02h, 00h,0FFh,0FFh, 37h, 00h -40E6:0378 F8 FF 14 00 04 00 db 0F8h,0FFh, 14h, 00h, 04h, 00h -40E6:037E 01 00 00 00 FC FF db 01h, 00h, 00h, 00h,0FCh,0FFh -40E6:0384 FB FF 03 00 19 00 db 0FBh,0FFh, 03h, 00h, 19h, 00h -40E6:038A FE FF BE 00 FD 00 db 0FEh,0FFh,0BEh, 00h,0FDh, 00h -40E6:0390 03 00 FF FF 05 00 db 03h, 00h,0FFh,0FFh, 05h, 00h -40E6:0396 FB FF 03 00 1A 00 db 0FBh,0FFh, 03h, 00h, 1Ah, 00h -40E6:039C FE FF BE 00 FB 00 db 0FEh,0FFh,0BEh, 00h,0FBh, 00h -40E6:03A2 04 00 FF FF 03 00 db 04h, 00h,0FFh,0FFh, 03h, 00h -40E6:03A8 FB FF 02 00 1A 00 db 0FBh,0FFh, 02h, 00h, 1Ah, 00h -40E6:03AE FE FF BE 00 F4 00 db 0FEh,0FFh,0BEh, 00h,0F4h, 00h -40E6:03B4 05 00 FF FF 01 00 db 05h, 00h,0FFh,0FFh, 01h, 00h -40E6:03BA FB FF 02 00 1B 00 db 0FBh,0FFh, 02h, 00h, 1Bh, 00h -40E6:03C0 FE FF BE 00 F3 00 db 0FEh,0FFh,0BEh, 00h,0F3h, 00h -40E6:03C6 06 00 FF FF 01 00 db 06h, 00h,0FFh,0FFh, 01h, 00h -40E6:03CC FB FF 01 00 1B 00 db 0FBh,0FFh, 01h, 00h, 1Bh, 00h -40E6:03D2 FE FF BE 00 F3 00 db 0FEh,0FFh,0BEh, 00h,0F3h, 00h -40E6:03D8 07 00 FF FF 01 00 db 07h, 00h,0FFh,0FFh, 01h, 00h -40E6:03DE FC FF 02 00 FF FF db 0FCh,0FFh, 02h, 00h,0FFh,0FFh -40E6:03E4 14 00 01 00 FF FF db 14h, 00h, 01h, 00h,0FFh,0FFh -40E6:03EA 1E 00 02 00 FF FF db 1Eh, 00h, 02h, 00h,0FFh,0FFh -40E6:03F0 05 00 00 00 FC FF db 05h, 00h, 00h, 00h,0FCh,0FFh -40E6:03F6 02 00 FF FF 1E 00 db 02h, 00h,0FFh,0FFh, 1Eh, 00h -40E6:03FC 00 00 FC FF F9 FF db 00h, 00h,0FCh,0FFh,0F9h,0FFh -40E6:0402 1A 5A 00 00 01 00 db 1Ah, 5Ah, 00h, 00h, 01h, 00h -40E6:0408 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:040E 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0414 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:041A 03 00 00 00 01 00 db 03h, 00h, 00h, 00h, 01h, 00h -40E6:0420 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:0426 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:042C 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0432 03 00 F9 FF 80 5C db 03h, 00h,0F9h,0FFh, 80h, 5Ch -40E6:0438 FC FF FF FF 32 00 db 0FCh,0FFh,0FFh,0FFh, 32h, 00h -40E6:043E 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0444 04 00 F9 FF 28 5D db 04h, 00h,0F9h,0FFh, 28h, 5Dh -40E6:044A FC FF FF FF 14 00 db 0FCh,0FFh,0FFh,0FFh, 14h, 00h -40E6:0450 F9 FF AA 5A FF FF db 0F9h,0FFh,0AAh, 5Ah,0FFh,0FFh -40E6:0456 0A 00 00 00 01 00 db 0Ah, 00h, 00h, 00h, 01h, 00h -40E6:045C 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0462 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0468 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:046E 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0474 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:047A 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0480 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0486 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:048C 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0492 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0498 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:049E 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04A4 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04AA 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04B0 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04B6 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04BC 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04C2 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04C8 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04CE 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04D4 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04DA 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04E0 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04E6 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04EC 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04F2 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:04F8 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:04FE 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0504 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:050A 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0510 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0516 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:051C 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0522 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0528 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:052E 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0534 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:053A 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0540 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0546 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:054C 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0552 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0558 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:055E 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0564 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:056A 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0570 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0576 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:057C 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0582 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0588 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:058E 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0594 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:059A 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05A0 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05A6 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05AC 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05B2 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05B8 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05BE 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05C4 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05CA 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05D0 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05D6 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05DC 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05E2 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05E8 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05EE 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:05F4 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:05FA 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0600 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0606 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:060C 01 00 00 00 F9 FF db 01h, 00h, 00h, 00h,0F9h,0FFh -40E6:0612 28 5D 10 00 10 00 db 28h, 5Dh, 10h, 00h, 10h, 00h -40E6:0618 FA FF 16 06 00 00 db 0FAh,0FFh, 16h, 06h, 00h, 00h -40E6:061E 01 00 F8 FF 26 00 db 01h, 00h,0F8h,0FFh, 26h, 00h -40E6:0624 1E 00 F8 FF 27 00 db 1Eh, 00h,0F8h,0FFh, 27h, 00h -40E6:062A 1E 00 FA FF 1C 06 db 1Eh, 00h,0FAh,0FFh, 1Ch, 06h -40E6:0630 00 00 F8 FF 23 00 db 00h, 00h,0F8h,0FFh, 23h, 00h -40E6:0636 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:063C 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:0642 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:0648 09 00 0A 00 FC FF db 09h, 00h, 0Ah, 00h,0FCh,0FFh -40E6:064E 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0654 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:065A 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:0660 09 00 0A 00 0B 00 db 09h, 00h, 0Ah, 00h, 0Bh, 00h -40E6:0666 FA FF 4E 06 00 00 db 0FAh,0FFh, 4Eh, 06h, 00h, 00h -40E6:066C 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0672 04 00 05 00 06 00 db 04h, 00h, 05h, 00h, 06h, 00h -40E6:0678 06 00 06 00 06 00 db 06h, 00h, 06h, 00h, 06h, 00h -40E6:067E 06 00 05 00 07 00 db 06h, 00h, 05h, 00h, 07h, 00h -40E6:0684 00 00 F8 FF 11 00 db 00h, 00h,0F8h,0FFh, 11h, 00h -40E6:068A 1D 00 FF FF 23 00 db 1Dh, 00h,0FFh,0FFh, 23h, 00h -40E6:0690 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0696 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:069C 06 00 06 00 06 00 db 06h, 00h, 06h, 00h, 06h, 00h -40E6:06A2 06 00 05 00 07 00 db 06h, 00h, 05h, 00h, 07h, 00h -40E6:06A8 00 00 F8 FF 11 00 db 00h, 00h,0F8h,0FFh, 11h, 00h -40E6:06AE 1D 00 FF FF 2D 00 db 1Dh, 00h,0FFh,0FFh, 2Dh, 00h -40E6:06B4 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:06BA 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:06C0 06 00 06 00 06 00 db 06h, 00h, 06h, 00h, 06h, 00h -40E6:06C6 06 00 06 00 06 00 db 06h, 00h, 06h, 00h, 06h, 00h -40E6:06CC 06 00 06 00 05 00 db 06h, 00h, 06h, 00h, 05h, 00h -40E6:06D2 07 00 00 00 F8 FF db 07h, 00h, 00h, 00h,0F8h,0FFh -40E6:06D8 11 00 1D 00 FF FF db 11h, 00h, 1Dh, 00h,0FFh,0FFh -40E6:06DE 28 00 FA FF 6A 06 db 28h, 00h,0FAh,0FFh, 6Ah, 06h -40E6:06E4 F8 FF db 0F8h,0FFh -40E6:06E6 28 db 28h -40E6:06E7 0007[00] db 7 dup (0) -40E6:06EE 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:06F4 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:06FA 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0700 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0706 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:070C 28 db 28h -40E6:070D 0007[00] db 7 dup (0) -40E6:0714 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:071A 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0720 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0726 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:072C 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:0732 28 db 28h -40E6:0733 0007[00] db 7 dup (0) -40E6:073A 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0740 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0746 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:074C 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0752 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:0758 28 db 28h -40E6:0759 0007[00] db 7 dup (0) -40E6:0760 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0766 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:076C 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0772 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0778 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:077E 28 db 28h -40E6:077F 0007[00] db 7 dup (0) -40E6:0786 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:078C 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0792 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0798 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:079E 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:07A4 28 db 28h -40E6:07A5 0007[00] db 7 dup (0) -40E6:07AC 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:07B2 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:07B8 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:07BE 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:07C4 04 00 04 00 05 00 db 04h, 00h, 04h, 00h, 05h, 00h -40E6:07CA 05 00 06 00 06 00 db 05h, 00h, 06h, 00h, 06h, 00h -40E6:07D0 07 00 07 00 08 00 db 07h, 00h, 07h, 00h, 08h, 00h -40E6:07D6 08 00 09 00 09 00 db 08h, 00h, 09h, 00h, 09h, 00h -40E6:07DC 0A 00 0A 00 0B 00 db 0Ah, 00h, 0Ah, 00h, 0Bh, 00h -40E6:07E2 0B 00 0B 00 0B 00 db 0Bh, 00h, 0Bh, 00h, 0Bh, 00h -40E6:07E8 0A 00 0A 00 09 00 db 0Ah, 00h, 0Ah, 00h, 09h, 00h -40E6:07EE 09 00 08 00 F8 FF db 09h, 00h, 08h, 00h,0F8h,0FFh -40E6:07F4 11 00 1D 00 08 00 db 11h, 00h, 1Dh, 00h, 08h, 00h -40E6:07FA 07 00 07 00 06 00 db 07h, 00h, 07h, 00h, 06h, 00h -40E6:0800 06 00 05 00 05 00 db 06h, 00h, 05h, 00h, 05h, 00h -40E6:0806 F8 FF db 0F8h,0FFh -40E6:0808 28 db 28h -40E6:0809 0007[00] db 7 dup (0) -40E6:0810 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0816 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:081C 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0822 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0828 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:082E 28 db 28h -40E6:082F 0007[00] db 7 dup (0) -40E6:0836 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:083C 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0842 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0848 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:084E 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:0854 28 db 28h -40E6:0855 0007[00] db 7 dup (0) -40E6:085C 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0862 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0868 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:086E 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0874 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:087A 28 db 28h -40E6:087B 0007[00] db 7 dup (0) -40E6:0882 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0888 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:088E 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0894 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:089A 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:08A0 28 db 28h -40E6:08A1 0007[00] db 7 dup (0) -40E6:08A8 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:08AE 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:08B4 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:08BA 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:08C0 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:08C6 28 db 28h -40E6:08C7 0007[00] db 7 dup (0) -40E6:08CE 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:08D4 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:08DA 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:08E0 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:08E6 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:08EC 28 db 28h -40E6:08ED 0007[00] db 7 dup (0) -40E6:08F4 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:08FA 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0900 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0906 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:090C 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:0912 28 db 28h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 574 - -40E6:0913 0007[00] db 7 dup (0) -40E6:091A 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0920 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0926 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:092C 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0932 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:0938 28 db 28h -40E6:0939 0007[00] db 7 dup (0) -40E6:0940 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:0946 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:094C 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0952 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:0958 04 00 04 00 F8 FF db 04h, 00h, 04h, 00h,0F8h,0FFh -40E6:095E 28 db 28h -40E6:095F 0007[00] db 7 dup (0) -40E6:0966 01 00 01 00 F8 FF db 01h, 00h, 01h, 00h,0F8h,0FFh -40E6:096C 28 00 00 00 02 00 db 28h, 00h, 00h, 00h, 02h, 00h -40E6:0972 02 00 F8 FF 28 00 db 02h, 00h,0F8h,0FFh, 28h, 00h -40E6:0978 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:097E 04 00 04 00 05 00 db 04h, 00h, 04h, 00h, 05h, 00h -40E6:0984 05 00 06 00 06 00 db 05h, 00h, 06h, 00h, 06h, 00h -40E6:098A 07 00 07 00 08 00 db 07h, 00h, 07h, 00h, 08h, 00h -40E6:0990 08 00 09 00 09 00 db 08h, 00h, 09h, 00h, 09h, 00h -40E6:0996 0A 00 0A 00 0B 00 db 0Ah, 00h, 0Ah, 00h, 0Bh, 00h -40E6:099C 0B 00 0B 00 0B 00 db 0Bh, 00h, 0Bh, 00h, 0Bh, 00h -40E6:09A2 0A 00 0A 00 0B 00 db 0Ah, 00h, 0Ah, 00h, 0Bh, 00h -40E6:09A8 0B 00 0B 00 0B 00 db 0Bh, 00h, 0Bh, 00h, 0Bh, 00h -40E6:09AE 0B 00 0B 00 0B 00 db 0Bh, 00h, 0Bh, 00h, 0Bh, 00h -40E6:09B4 0B 00 0A 00 09 00 db 0Bh, 00h, 0Ah, 00h, 09h, 00h -40E6:09BA 09 00 08 00 F8 FF db 09h, 00h, 08h, 00h,0F8h,0FFh -40E6:09C0 11 00 1D 00 08 00 db 11h, 00h, 1Dh, 00h, 08h, 00h -40E6:09C6 07 00 07 00 06 00 db 07h, 00h, 07h, 00h, 06h, 00h -40E6:09CC 06 00 05 00 05 00 db 06h, 00h, 05h, 00h, 05h, 00h -40E6:09D2 FF FF 03 00 FA FF db 0FFh,0FFh, 03h, 00h,0FAh,0FFh -40E6:09D8 E4 06 00 00 FA FF db 0E4h, 06h, 00h, 00h,0FAh,0FFh -40E6:09DE DA 09 01 00 FF FF db 0DAh, 09h, 01h, 00h,0FFh,0FFh -40E6:09E4 00 00 02 00 FF FF db 00h, 00h, 02h, 00h,0FFh,0FFh -40E6:09EA 00 00 03 00 FF FF db 00h, 00h, 03h, 00h,0FFh,0FFh -40E6:09F0 00 00 04 00 FF FF db 00h, 00h, 04h, 00h,0FFh,0FFh -40E6:09F6 00 00 05 00 FF FF db 00h, 00h, 05h, 00h,0FFh,0FFh -40E6:09FC 00 00 06 00 FF FF db 00h, 00h, 06h, 00h,0FFh,0FFh -40E6:0A02 00 00 07 00 FF FF db 00h, 00h, 07h, 00h,0FFh,0FFh -40E6:0A08 00 00 08 00 FF FF db 00h, 00h, 08h, 00h,0FFh,0FFh -40E6:0A0E 00 00 09 00 FF FF db 00h, 00h, 09h, 00h,0FFh,0FFh -40E6:0A14 00 00 0A 00 FF FF db 00h, 00h, 0Ah, 00h,0FFh,0FFh -40E6:0A1A 00 00 0B 00 FF FF db 00h, 00h, 0Bh, 00h,0FFh,0FFh -40E6:0A20 00 00 0C 00 FF FF db 00h, 00h, 0Ch, 00h,0FFh,0FFh -40E6:0A26 00 00 0D 00 FF FF db 00h, 00h, 0Dh, 00h,0FFh,0FFh -40E6:0A2C 00 00 0E 00 FF FF db 00h, 00h, 0Eh, 00h,0FFh,0FFh -40E6:0A32 00 00 0F 00 FF FF db 00h, 00h, 0Fh, 00h,0FFh,0FFh -40E6:0A38 00 00 10 00 FF FF db 00h, 00h, 10h, 00h,0FFh,0FFh -40E6:0A3E 00 00 11 00 FF FF db 00h, 00h, 11h, 00h,0FFh,0FFh -40E6:0A44 00 00 12 00 FF FF db 00h, 00h, 12h, 00h,0FFh,0FFh -40E6:0A4A 00 00 13 00 FF FF db 00h, 00h, 13h, 00h,0FFh,0FFh -40E6:0A50 00 00 14 00 FF FF db 00h, 00h, 14h, 00h,0FFh,0FFh -40E6:0A56 00 00 15 00 FF FF db 00h, 00h, 15h, 00h,0FFh,0FFh -40E6:0A5C 00 00 16 00 FF FF db 00h, 00h, 16h, 00h,0FFh,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 575 - -40E6:0A62 00 00 17 00 FF FF db 00h, 00h, 17h, 00h,0FFh,0FFh -40E6:0A68 00 00 18 00 FF FF db 00h, 00h, 18h, 00h,0FFh,0FFh -40E6:0A6E 00 00 19 00 FF FF db 00h, 00h, 19h, 00h,0FFh,0FFh -40E6:0A74 00 00 1A 00 FF FF db 00h, 00h, 1Ah, 00h,0FFh,0FFh -40E6:0A7A 00 00 1B 00 FF FF db 00h, 00h, 1Bh, 00h,0FFh,0FFh -40E6:0A80 00 00 F8 FF 29 00 db 00h, 00h,0F8h,0FFh, 29h, 00h -40E6:0A86 00 00 1C 00 FF FF db 00h, 00h, 1Ch, 00h,0FFh,0FFh -40E6:0A8C 00 00 1D 00 FF FF db 00h, 00h, 1Dh, 00h,0FFh,0FFh -40E6:0A92 00 00 1E 00 FF FF db 00h, 00h, 1Eh, 00h,0FFh,0FFh -40E6:0A98 00 00 1F 00 FF FF db 00h, 00h, 1Fh, 00h,0FFh,0FFh -40E6:0A9E 00 00 20 00 FF FF db 00h, 00h, 20h, 00h,0FFh,0FFh -40E6:0AA4 00 00 21 00 FF FF db 00h, 00h, 21h, 00h,0FFh,0FFh -40E6:0AAA 00 00 22 00 FF FF db 00h, 00h, 22h, 00h,0FFh,0FFh -40E6:0AB0 00 00 23 00 FF FF db 00h, 00h, 23h, 00h,0FFh,0FFh -40E6:0AB6 00 00 24 00 FF FF db 00h, 00h, 24h, 00h,0FFh,0FFh -40E6:0ABC 00 00 25 00 FF FF db 00h, 00h, 25h, 00h,0FFh,0FFh -40E6:0AC2 00 00 F7 FF 29 00 db 00h, 00h,0F7h,0FFh, 29h, 00h -40E6:0AC8 26 00 FF FF 00 00 db 26h, 00h,0FFh,0FFh, 00h, 00h -40E6:0ACE 27 00 FF FF 00 00 db 27h, 00h,0FFh,0FFh, 00h, 00h -40E6:0AD4 28 00 FF FF 00 00 db 28h, 00h,0FFh,0FFh, 00h, 00h -40E6:0ADA 29 00 FF FF 00 00 db 29h, 00h,0FFh,0FFh, 00h, 00h -40E6:0AE0 2A 00 FF FF 00 00 db 2Ah, 00h,0FFh,0FFh, 00h, 00h -40E6:0AE6 2B 00 FF FF 00 00 db 2Bh, 00h,0FFh,0FFh, 00h, 00h -40E6:0AEC 2C 00 FC FF 01 00 db 2Ch, 00h,0FCh,0FFh, 01h, 00h -40E6:0AF2 FF FF 00 00 02 00 db 0FFh,0FFh, 00h, 00h, 02h, 00h -40E6:0AF8 FF FF 00 00 03 00 db 0FFh,0FFh, 00h, 00h, 03h, 00h -40E6:0AFE FF FF 00 00 04 00 db 0FFh,0FFh, 00h, 00h, 04h, 00h -40E6:0B04 FF FF 00 00 05 00 db 0FFh,0FFh, 00h, 00h, 05h, 00h -40E6:0B0A FF FF 00 00 06 00 db 0FFh,0FFh, 00h, 00h, 06h, 00h -40E6:0B10 FF FF 00 00 07 00 db 0FFh,0FFh, 00h, 00h, 07h, 00h -40E6:0B16 FF FF 00 00 08 00 db 0FFh,0FFh, 00h, 00h, 08h, 00h -40E6:0B1C FF FF 00 00 09 00 db 0FFh,0FFh, 00h, 00h, 09h, 00h -40E6:0B22 FF FF 00 00 0A 00 db 0FFh,0FFh, 00h, 00h, 0Ah, 00h -40E6:0B28 FF FF 00 00 0B 00 db 0FFh,0FFh, 00h, 00h, 0Bh, 00h -40E6:0B2E FF FF 00 00 0C 00 db 0FFh,0FFh, 00h, 00h, 0Ch, 00h -40E6:0B34 FF FF 00 00 0D 00 db 0FFh,0FFh, 00h, 00h, 0Dh, 00h -40E6:0B3A FF FF 00 00 0E 00 db 0FFh,0FFh, 00h, 00h, 0Eh, 00h -40E6:0B40 FF FF 00 00 F8 FF db 0FFh,0FFh, 00h, 00h,0F8h,0FFh -40E6:0B46 29 00 00 00 0F 00 db 29h, 00h, 00h, 00h, 0Fh, 00h -40E6:0B4C FF FF 00 00 10 00 db 0FFh,0FFh, 00h, 00h, 10h, 00h -40E6:0B52 FF FF 00 00 11 00 db 0FFh,0FFh, 00h, 00h, 11h, 00h -40E6:0B58 FF FF 00 00 12 00 db 0FFh,0FFh, 00h, 00h, 12h, 00h -40E6:0B5E FF FF 00 00 13 00 db 0FFh,0FFh, 00h, 00h, 13h, 00h -40E6:0B64 FF FF 00 00 F7 FF db 0FFh,0FFh, 00h, 00h,0F7h,0FFh -40E6:0B6A 29 00 14 00 FF FF db 29h, 00h, 14h, 00h,0FFh,0FFh -40E6:0B70 00 00 15 00 FF FF db 00h, 00h, 15h, 00h,0FFh,0FFh -40E6:0B76 00 00 16 00 FC FF db 00h, 00h, 16h, 00h,0FCh,0FFh -40E6:0B7C 16 00 FA FF 7C 0B db 16h, 00h,0FAh,0FFh, 7Ch, 0Bh -40E6:0B82 2C 00 FA FF 82 0B db 2Ch, 00h,0FAh,0FFh, 82h, 0Bh -40E6:0B88 00 00 FF FF 1E 00 db 00h, 00h,0FFh,0FFh, 1Eh, 00h -40E6:0B8E 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0B94 04 00 05 00 FF FF db 04h, 00h, 05h, 00h,0FFh,0FFh -40E6:0B9A 50 00 00 00 05 00 db 50h, 00h, 00h, 00h, 05h, 00h -40E6:0BA0 FF FF 78 00 00 00 db 0FFh,0FFh, 78h, 00h, 00h, 00h -40E6:0BA6 00 00 05 00 FA FF db 00h, 00h, 05h, 00h,0FAh,0FFh -40E6:0BAC 98 0B 04 00 03 00 db 98h, 0Bh, 04h, 00h, 03h, 00h -40E6:0BB2 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 576 - -40E6:0BB8 FA FF B6 0B 00 00 db 0FAh,0FFh,0B6h, 0Bh, 00h, 00h -40E6:0BBE 03 00 01 00 00 00 db 03h, 00h, 01h, 00h, 00h, 00h -40E6:0BC4 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:0BCA 01 00 00 00 03 00 db 01h, 00h, 00h, 00h, 03h, 00h -40E6:0BD0 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:0BD6 01 00 03 00 01 00 db 01h, 00h, 03h, 00h, 01h, 00h -40E6:0BDC 00 00 02 00 03 00 db 00h, 00h, 02h, 00h, 03h, 00h -40E6:0BE2 01 00 02 00 FA FF db 01h, 00h, 02h, 00h,0FAh,0FFh -40E6:0BE8 BC 0B 00 00 01 00 db 0BCh, 0Bh, 00h, 00h, 01h, 00h -40E6:0BEE 01 00 0B 00 0B 00 db 01h, 00h, 0Bh, 00h, 0Bh, 00h -40E6:0BF4 0C 00 0D 00 0E 00 db 0Ch, 00h, 0Dh, 00h, 0Eh, 00h -40E6:0BFA 0F 00 0C 00 0D 00 db 0Fh, 00h, 0Ch, 00h, 0Dh, 00h -40E6:0C00 0E 00 0F 00 0C 00 db 0Eh, 00h, 0Fh, 00h, 0Ch, 00h -40E6:0C06 0D 00 0E 00 0F 00 db 0Dh, 00h, 0Eh, 00h, 0Fh, 00h -40E6:0C0C 0C 00 0D 00 0E 00 db 0Ch, 00h, 0Dh, 00h, 0Eh, 00h -40E6:0C12 0F 00 0C 00 0D 00 db 0Fh, 00h, 0Ch, 00h, 0Dh, 00h -40E6:0C18 0E 00 0F 00 0C 00 db 0Eh, 00h, 0Fh, 00h, 0Ch, 00h -40E6:0C1E 0D 00 0E 00 0F 00 db 0Dh, 00h, 0Eh, 00h, 0Fh, 00h -40E6:0C24 0C 00 0D 00 0E 00 db 0Ch, 00h, 0Dh, 00h, 0Eh, 00h -40E6:0C2A 0F 00 0C 00 0D 00 db 0Fh, 00h, 0Ch, 00h, 0Dh, 00h -40E6:0C30 0E 00 0F 00 0C 00 db 0Eh, 00h, 0Fh, 00h, 0Ch, 00h -40E6:0C36 0D 00 0E 00 0F 00 db 0Dh, 00h, 0Eh, 00h, 0Fh, 00h -40E6:0C3C 0C 00 0D 00 0E 00 db 0Ch, 00h, 0Dh, 00h, 0Eh, 00h -40E6:0C42 0F 00 0B 00 0B 00 db 0Fh, 00h, 0Bh, 00h, 0Bh, 00h -40E6:0C48 01 00 01 00 00 00 db 01h, 00h, 01h, 00h, 00h, 00h -40E6:0C4E FF FF 24 00 01 00 db 0FFh,0FFh, 24h, 00h, 01h, 00h -40E6:0C54 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:0C5A 10 00 10 00 11 00 db 10h, 00h, 10h, 00h, 11h, 00h -40E6:0C60 11 00 11 00 11 00 db 11h, 00h, 11h, 00h, 11h, 00h -40E6:0C66 11 00 11 00 11 00 db 11h, 00h, 11h, 00h, 11h, 00h -40E6:0C6C 11 00 10 00 10 00 db 11h, 00h, 10h, 00h, 10h, 00h -40E6:0C72 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:0C78 01 00 00 00 FF FF db 01h, 00h, 00h, 00h,0FFh,0FFh -40E6:0C7E 57 00 FA FF EA 0B db 57h, 00h,0FAh,0FFh,0EAh, 0Bh -40E6:0C84 FF FF 14 00 00 00 db 0FFh,0FFh, 14h, 00h, 00h, 00h -40E6:0C8A 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0C90 04 00 03 00 05 00 db 04h, 00h, 03h, 00h, 05h, 00h -40E6:0C96 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:0C9C 09 00 0A 00 FC FF db 09h, 00h, 0Ah, 00h,0FCh,0FFh -40E6:0CA2 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0CA8 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:0CAE FA FF A2 0C 06 00 db 0FAh,0FFh,0A2h, 0Ch, 06h, 00h -40E6:0CB4 07 00 08 00 09 00 db 07h, 00h, 08h, 00h, 09h, 00h -40E6:0CBA 0A 00 0B 00 0C 00 db 0Ah, 00h, 0Bh, 00h, 0Ch, 00h -40E6:0CC0 FF FF 02 00 0D 00 db 0FFh,0FFh, 02h, 00h, 0Dh, 00h -40E6:0CC6 FF FF 02 00 0E 00 db 0FFh,0FFh, 02h, 00h, 0Eh, 00h -40E6:0CCC FF FF 02 00 0F 00 db 0FFh,0FFh, 02h, 00h, 0Fh, 00h -40E6:0CD2 FF FF 02 00 10 00 db 0FFh,0FFh, 02h, 00h, 10h, 00h -40E6:0CD8 FF FF 02 00 0F 00 db 0FFh,0FFh, 02h, 00h, 0Fh, 00h -40E6:0CDE FF FF 14 00 10 00 db 0FFh,0FFh, 14h, 00h, 10h, 00h -40E6:0CE4 FF FF 1E 00 FA FF db 0FFh,0FFh, 1Eh, 00h,0FAh,0FFh -40E6:0CEA DC 0C 00 00 01 00 db 0DCh, 0Ch, 00h, 00h, 01h, 00h -40E6:0CF0 02 00 F8 FF 2B 00 db 02h, 00h,0F8h,0FFh, 2Bh, 00h -40E6:0CF6 2A 00 03 00 04 00 db 2Ah, 00h, 03h, 00h, 04h, 00h -40E6:0CFC 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0D02 08 00 FA FF F2 0C db 08h, 00h,0FAh,0FFh,0F2h, 0Ch -40E6:0D08 09 00 0A 00 0B 00 db 09h, 00h, 0Ah, 00h, 0Bh, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 577 - -40E6:0D0E 0C 00 0D 00 FC FF db 0Ch, 00h, 0Dh, 00h,0FCh,0FFh -40E6:0D14 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0D1A 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:0D20 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:0D26 09 00 0A 00 FA FF db 09h, 00h, 0Ah, 00h,0FAh,0FFh -40E6:0D2C 14 0D 00 00 01 00 db 14h, 0Dh, 00h, 00h, 01h, 00h -40E6:0D32 07 00 02 00 05 00 db 07h, 00h, 02h, 00h, 05h, 00h -40E6:0D38 03 00 00 00 06 00 db 03h, 00h, 00h, 00h, 06h, 00h -40E6:0D3E 04 00 05 00 06 00 db 04h, 00h, 05h, 00h, 06h, 00h -40E6:0D44 00 00 03 00 07 00 db 00h, 00h, 03h, 00h, 07h, 00h -40E6:0D4A FA FF 2E 0D 00 00 db 0FAh,0FFh, 2Eh, 0Dh, 00h, 00h -40E6:0D50 01 00 07 00 02 00 db 01h, 00h, 07h, 00h, 02h, 00h -40E6:0D56 05 00 03 00 00 00 db 05h, 00h, 03h, 00h, 00h, 00h -40E6:0D5C 06 00 04 00 05 00 db 06h, 00h, 04h, 00h, 05h, 00h -40E6:0D62 06 00 00 00 03 00 db 06h, 00h, 00h, 00h, 03h, 00h -40E6:0D68 07 00 FA FF 4E 0D db 07h, 00h,0FAh,0FFh, 4Eh, 0Dh -40E6:0D6E 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:0D74 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:0D7A 03 00 03 00 04 00 db 03h, 00h, 03h, 00h, 04h, 00h -40E6:0D80 04 00 05 00 05 00 db 04h, 00h, 05h, 00h, 05h, 00h -40E6:0D86 06 00 06 00 07 00 db 06h, 00h, 06h, 00h, 07h, 00h -40E6:0D8C 07 00 FA FF 6E 0D db 07h, 00h,0FAh,0FFh, 6Eh, 0Dh -40E6:0D92 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0D98 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:0D9E 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:0DA4 09 00 0A 00 0B 00 db 09h, 00h, 0Ah, 00h, 0Bh, 00h -40E6:0DAA FA FF 92 0D 00 00 db 0FAh,0FFh, 92h, 0Dh, 00h, 00h -40E6:0DB0 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0DB6 04 00 05 00 06 00 db 04h, 00h, 05h, 00h, 06h, 00h -40E6:0DBC 07 00 08 00 09 00 db 07h, 00h, 08h, 00h, 09h, 00h -40E6:0DC2 0A 00 FA FF AE 0D db 0Ah, 00h,0FAh,0FFh,0AEh, 0Dh -40E6:0DC8 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0DCE 03 00 FA FF C8 0D db 03h, 00h,0FAh,0FFh,0C8h, 0Dh -40E6:0DD4 F8 FF 1D 00 2D 00 db 0F8h,0FFh, 1Dh, 00h, 2Dh, 00h -40E6:0DDA 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:0DE0 03 00 04 00 00 00 db 03h, 00h, 04h, 00h, 00h, 00h -40E6:0DE6 FF FF 64 00 F8 FF db 0FFh,0FFh, 64h, 00h,0F8h,0FFh -40E6:0DEC 1D 00 2D 00 00 00 db 1Dh, 00h, 2Dh, 00h, 00h, 00h -40E6:0DF2 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0DF8 04 00 00 00 FF FF db 04h, 00h, 00h, 00h,0FFh,0FFh -40E6:0DFE 28 00 FA FF D4 0D db 28h, 00h,0FAh,0FFh,0D4h, 0Dh -40E6:0E04 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:0E0A 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:0E10 02 00 03 00 02 00 db 02h, 00h, 03h, 00h, 02h, 00h -40E6:0E16 01 00 01 00 00 00 db 01h, 00h, 01h, 00h, 00h, 00h -40E6:0E1C FF FF 78 00 00 00 db 0FFh,0FFh, 78h, 00h, 00h, 00h -40E6:0E22 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:0E28 02 00 03 00 02 00 db 02h, 00h, 03h, 00h, 02h, 00h -40E6:0E2E 03 00 02 00 01 00 db 03h, 00h, 02h, 00h, 01h, 00h -40E6:0E34 01 00 00 00 FF FF db 01h, 00h, 00h, 00h,0FFh,0FFh -40E6:0E3A 28 00 FA FF 04 0E db 28h, 00h,0FAh,0FFh, 04h, 0Eh -40E6:0E40 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:0E46 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:0E4C 03 00 04 00 04 00 db 03h, 00h, 04h, 00h, 04h, 00h -40E6:0E52 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:0E58 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:0E5E 00 00 FF FF 5A 00 db 00h, 00h,0FFh,0FFh, 5Ah, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 578 - -40E6:0E64 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:0E6A 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:0E70 03 00 04 00 04 00 db 03h, 00h, 04h, 00h, 04h, 00h -40E6:0E76 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:0E7C 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:0E82 00 00 FF FF 71 00 db 00h, 00h,0FFh,0FFh, 71h, 00h -40E6:0E88 FA FF 40 0E 00 00 db 0FAh,0FFh, 40h, 0Eh, 00h, 00h -40E6:0E8E 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:0E94 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:0E9A 03 00 04 00 04 00 db 03h, 00h, 04h, 00h, 04h, 00h -40E6:0EA0 04 00 04 00 03 00 db 04h, 00h, 04h, 00h, 03h, 00h -40E6:0EA6 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:0EAC 01 00 01 00 00 00 db 01h, 00h, 01h, 00h, 00h, 00h -40E6:0EB2 FF FF 55 00 00 00 db 0FFh,0FFh, 55h, 00h, 00h, 00h -40E6:0EB8 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:0EBE 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:0EC4 04 00 04 00 04 00 db 04h, 00h, 04h, 00h, 04h, 00h -40E6:0ECA 04 00 04 00 04 00 db 04h, 00h, 04h, 00h, 04h, 00h -40E6:0ED0 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:0ED6 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:0EDC 00 00 FF FF 2F 00 db 00h, 00h,0FFh,0FFh, 2Fh, 00h -40E6:0EE2 FA FF 8C 0E 00 00 db 0FAh,0FFh, 8Ch, 0Eh, 00h, 00h -40E6:0EE8 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0EEE 04 00 05 00 06 00 db 04h, 00h, 05h, 00h, 06h, 00h -40E6:0EF4 07 00 06 00 05 00 db 07h, 00h, 06h, 00h, 05h, 00h -40E6:0EFA 04 00 03 00 02 00 db 04h, 00h, 03h, 00h, 02h, 00h -40E6:0F00 01 00 00 00 FF FF db 01h, 00h, 00h, 00h,0FFh,0FFh -40E6:0F06 38 00 00 00 01 00 db 38h, 00h, 00h, 00h, 01h, 00h -40E6:0F0C 02 00 03 00 04 00 db 02h, 00h, 03h, 00h, 04h, 00h -40E6:0F12 05 00 04 00 03 00 db 05h, 00h, 04h, 00h, 03h, 00h -40E6:0F18 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:0F1E FF FF 2F 00 00 00 db 0FFh,0FFh, 2Fh, 00h, 00h, 00h -40E6:0F24 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0F2A 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:0F30 FF FF 5A 00 00 00 db 0FFh,0FFh, 5Ah, 00h, 00h, 00h -40E6:0F36 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0F3C 04 00 05 00 06 00 db 04h, 00h, 05h, 00h, 06h, 00h -40E6:0F42 05 00 04 00 03 00 db 05h, 00h, 04h, 00h, 03h, 00h -40E6:0F48 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:0F4E FA FF E6 0E 00 00 db 0FAh,0FFh,0E6h, 0Eh, 00h, 00h -40E6:0F54 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:0F5A 04 00 05 00 06 00 db 04h, 00h, 05h, 00h, 06h, 00h -40E6:0F60 07 00 06 00 05 00 db 07h, 00h, 06h, 00h, 05h, 00h -40E6:0F66 06 00 07 00 06 00 db 06h, 00h, 07h, 00h, 06h, 00h -40E6:0F6C 05 00 06 00 07 00 db 05h, 00h, 06h, 00h, 07h, 00h -40E6:0F72 06 00 05 00 06 00 db 06h, 00h, 05h, 00h, 06h, 00h -40E6:0F78 07 00 08 00 09 00 db 07h, 00h, 08h, 00h, 09h, 00h -40E6:0F7E 0A 00 0B 00 0C 00 db 0Ah, 00h, 0Bh, 00h, 0Ch, 00h -40E6:0F84 0D 00 0E 00 0E 00 db 0Dh, 00h, 0Eh, 00h, 0Eh, 00h -40E6:0F8A 0F 00 0F 00 10 00 db 0Fh, 00h, 0Fh, 00h, 10h, 00h -40E6:0F90 10 00 11 00 FF FF db 10h, 00h, 11h, 00h,0FFh,0FFh -40E6:0F96 5A 00 12 00 11 00 db 5Ah, 00h, 12h, 00h, 11h, 00h -40E6:0F9C 12 00 11 00 FF FF db 12h, 00h, 11h, 00h,0FFh,0FFh -40E6:0FA2 28 00 12 00 13 00 db 28h, 00h, 12h, 00h, 13h, 00h -40E6:0FA8 14 00 14 00 14 00 db 14h, 00h, 14h, 00h, 14h, 00h -40E6:0FAE 14 00 14 00 14 00 db 14h, 00h, 14h, 00h, 14h, 00h -40E6:0FB4 13 00 12 00 FA FF db 13h, 00h, 12h, 00h,0FAh,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 579 - -40E6:0FBA 92 0F 01 00 01 00 db 92h, 0Fh, 01h, 00h, 01h, 00h -40E6:0FC0 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:0FC6 04 00 05 00 F8 FF db 04h, 00h, 05h, 00h,0F8h,0FFh -40E6:0FCC 06 00 2E 00 05 00 db 06h, 00h, 2Eh, 00h, 05h, 00h -40E6:0FD2 06 00 06 00 07 00 db 06h, 00h, 06h, 00h, 07h, 00h -40E6:0FD8 07 00 08 00 08 00 db 07h, 00h, 08h, 00h, 08h, 00h -40E6:0FDE 09 00 09 00 00 00 db 09h, 00h, 09h, 00h, 00h, 00h -40E6:0FE4 FF FF 19 00 FA FF db 0FFh,0FFh, 19h, 00h,0FAh,0FFh -40E6:0FEA BC 0F 00 00 00 00 db 0BCh, 0Fh, 00h, 00h, 00h, 00h -40E6:0FF0 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:0FF6 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:0FFC 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:1002 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:1008 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -40E6:100E 39 00 00 00 00 00 db 39h, 00h, 00h, 00h, 00h, 00h -40E6:1014 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:101A 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:1020 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:1026 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:102C 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -40E6:1032 62 00 FA FF EC 0F db 62h, 00h,0FAh,0FFh,0ECh, 0Fh -40E6:1038 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:103E 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:1044 03 00 03 00 04 00 db 03h, 00h, 03h, 00h, 04h, 00h -40E6:104A 04 00 05 00 05 00 db 04h, 00h, 05h, 00h, 05h, 00h -40E6:1050 06 00 06 00 05 00 db 06h, 00h, 06h, 00h, 05h, 00h -40E6:1056 05 00 04 00 04 00 db 05h, 00h, 04h, 00h, 04h, 00h -40E6:105C 05 00 05 00 06 00 db 05h, 00h, 05h, 00h, 06h, 00h -40E6:1062 06 00 05 00 05 00 db 06h, 00h, 05h, 00h, 05h, 00h -40E6:1068 04 00 04 00 03 00 db 04h, 00h, 04h, 00h, 03h, 00h -40E6:106E 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:1074 01 00 01 00 00 00 db 01h, 00h, 01h, 00h, 00h, 00h -40E6:107A FF FF 9D 00 FA FF db 0FFh,0FFh, 9Dh, 00h,0FAh,0FFh -40E6:1080 38 10 00 00 01 00 db 38h, 10h, 00h, 00h, 01h, 00h -40E6:1086 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:108C 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:1092 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:1098 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:109E 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:10A4 01 00 01 00 00 00 db 01h, 00h, 01h, 00h, 00h, 00h -40E6:10AA FF FF 39 00 00 00 db 0FFh,0FFh, 39h, 00h, 00h, 00h -40E6:10B0 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:10B6 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:10BC 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:10C2 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:10C8 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:10CE 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:10D4 00 00 FF FF 64 00 db 00h, 00h,0FFh,0FFh, 64h, 00h -40E6:10DA 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:10E0 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:10E6 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:10EC 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:10F2 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:10F8 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:10FE 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:1104 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:110A 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 580 - -40E6:1110 00 00 FF FF A0 00 db 00h, 00h,0FFh,0FFh,0A0h, 00h -40E6:1116 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:111C 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:1122 03 00 02 00 02 00 db 03h, 00h, 02h, 00h, 02h, 00h -40E6:1128 03 00 03 00 02 00 db 03h, 00h, 03h, 00h, 02h, 00h -40E6:112E 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:1134 00 00 FF FF 20 00 db 00h, 00h,0FFh,0FFh, 20h, 00h -40E6:113A FA FF 82 10 00 00 db 0FAh,0FFh, 82h, 10h, 00h, 00h -40E6:1140 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:1146 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:114C 00 00 FF FF 1B 00 db 00h, 00h,0FFh,0FFh, 1Bh, 00h -40E6:1152 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:1158 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:115E 01 00 00 00 FF FF db 01h, 00h, 00h, 00h,0FFh,0FFh -40E6:1164 A7 00 00 00 01 00 db 0A7h, 00h, 00h, 00h, 01h, 00h -40E6:116A 01 00 02 00 FF FF db 01h, 00h, 02h, 00h,0FFh,0FFh -40E6:1170 32 00 01 00 01 00 db 32h, 00h, 01h, 00h, 01h, 00h -40E6:1176 00 00 FF FF 44 00 db 00h, 00h,0FFh,0FFh, 44h, 00h -40E6:117C FA FF 3E 11 00 00 db 0FAh,0FFh, 3Eh, 11h, 00h, 00h -40E6:1182 01 00 01 00 01 00 db 01h, 00h, 01h, 00h, 01h, 00h -40E6:1188 01 00 00 00 FF FF db 01h, 00h, 00h, 00h,0FFh,0FFh -40E6:118E 14 01 00 00 01 00 db 14h, 01h, 00h, 00h, 01h, 00h -40E6:1194 01 00 01 00 01 00 db 01h, 00h, 01h, 00h, 01h, 00h -40E6:119A 00 00 FF FF 38 00 db 00h, 00h,0FFh,0FFh, 38h, 00h -40E6:11A0 FA FF 80 11 00 00 db 0FAh,0FFh, 80h, 11h, 00h, 00h -40E6:11A6 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:11AC 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:11B2 04 00 04 00 05 00 db 04h, 00h, 04h, 00h, 05h, 00h -40E6:11B8 05 00 06 00 06 00 db 05h, 00h, 06h, 00h, 06h, 00h -40E6:11BE 00 00 FF FF 52 00 db 00h, 00h,0FFh,0FFh, 52h, 00h -40E6:11C4 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:11CA 02 00 02 00 03 00 db 02h, 00h, 02h, 00h, 03h, 00h -40E6:11D0 03 00 04 00 04 00 db 03h, 00h, 04h, 00h, 04h, 00h -40E6:11D6 05 00 05 00 06 00 db 05h, 00h, 05h, 00h, 06h, 00h -40E6:11DC 06 00 00 00 FF FF db 06h, 00h, 00h, 00h,0FFh,0FFh -40E6:11E2 38 00 00 00 01 00 db 38h, 00h, 00h, 00h, 01h, 00h -40E6:11E8 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:11EE 03 00 03 00 04 00 db 03h, 00h, 03h, 00h, 04h, 00h -40E6:11F4 04 00 05 00 05 00 db 04h, 00h, 05h, 00h, 05h, 00h -40E6:11FA 05 00 05 00 04 00 db 05h, 00h, 05h, 00h, 04h, 00h -40E6:1200 04 00 05 00 05 00 db 04h, 00h, 05h, 00h, 05h, 00h -40E6:1206 06 00 06 00 00 00 db 06h, 00h, 06h, 00h, 00h, 00h -40E6:120C FF FF 81 00 FA FF db 0FFh,0FFh, 81h, 00h,0FAh,0FFh -40E6:1212 A4 11 06 00 FE FF db 0A4h, 11h, 06h, 00h,0FEh,0FFh -40E6:1218 13 01 F6 00 07 00 db 13h, 01h,0F6h, 00h, 07h, 00h -40E6:121E FE FF 23 01 F6 00 db 0FEh,0FFh, 23h, 01h,0F6h, 00h -40E6:1224 06 00 FE FF 33 01 db 06h, 00h,0FEh,0FFh, 33h, 01h -40E6:122A F6 00 07 00 F8 FF db 0F6h, 00h, 07h, 00h,0F8h,0FFh -40E6:1230 05 00 2A 00 FE FF db 05h, 00h, 2Ah, 00h,0FEh,0FFh -40E6:1236 43 01 F6 00 06 00 db 43h, 01h,0F6h, 00h, 06h, 00h -40E6:123C FE FF 53 01 F6 00 db 0FEh,0FFh, 53h, 01h,0F6h, 00h -40E6:1242 07 00 FE FF 63 01 db 07h, 00h,0FEh,0FFh, 63h, 01h -40E6:1248 F6 00 06 00 FC FF db 0F6h, 00h, 06h, 00h,0FCh,0FFh -40E6:124E 02 00 FE FF 15 01 db 02h, 00h,0FEh,0FFh, 15h, 01h -40E6:1254 1A 01 03 00 FE FF db 1Ah, 01h, 03h, 00h,0FEh,0FFh -40E6:125A 15 01 22 01 02 00 db 15h, 01h, 22h, 01h, 02h, 00h -40E6:1260 FE FF 15 01 2A 01 db 0FEh,0FFh, 15h, 01h, 2Ah, 01h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 581 - -40E6:1266 03 00 FE FF 15 01 db 03h, 00h,0FEh,0FFh, 15h, 01h -40E6:126C 32 01 02 00 FE FF db 32h, 01h, 02h, 00h,0FEh,0FFh -40E6:1272 25 01 32 01 07 00 db 25h, 01h, 32h, 01h, 07h, 00h -40E6:1278 FE FF 35 01 32 01 db 0FEh,0FFh, 35h, 01h, 32h, 01h -40E6:127E 06 00 FE FF 45 01 db 06h, 00h,0FEh,0FFh, 45h, 01h -40E6:1284 32 01 07 00 FE FF db 32h, 01h, 07h, 00h,0FEh,0FFh -40E6:128A 35 01 32 01 04 00 db 35h, 01h, 32h, 01h, 04h, 00h -40E6:1290 FE FF 25 01 32 01 db 0FEh,0FFh, 25h, 01h, 32h, 01h -40E6:1296 05 00 FE FF 15 01 db 05h, 00h,0FEh,0FFh, 15h, 01h -40E6:129C 32 01 04 00 FE FF db 32h, 01h, 04h, 00h,0FEh,0FFh -40E6:12A2 05 01 32 01 05 00 db 05h, 01h, 32h, 01h, 05h, 00h -40E6:12A8 FE FF F5 00 32 01 db 0FEh,0FFh,0F5h, 00h, 32h, 01h -40E6:12AE 04 00 FE FF E5 00 db 04h, 00h,0FEh,0FFh,0E5h, 00h -40E6:12B4 32 01 05 00 FE FF db 32h, 01h, 05h, 00h,0FEh,0FFh -40E6:12BA D5 00 32 01 04 00 db 0D5h, 00h, 32h, 01h, 04h, 00h -40E6:12C0 FE FF C5 00 32 01 db 0FEh,0FFh,0C5h, 00h, 32h, 01h -40E6:12C6 05 00 FE FF B5 00 db 05h, 00h,0FEh,0FFh,0B5h, 00h -40E6:12CC 32 01 04 00 FE FF db 32h, 01h, 04h, 00h,0FEh,0FFh -40E6:12D2 A5 00 32 01 05 00 db 0A5h, 00h, 32h, 01h, 05h, 00h -40E6:12D8 F8 FF 05 00 2A 00 db 0F8h,0FFh, 05h, 00h, 2Ah, 00h -40E6:12DE FE FF 95 00 32 01 db 0FEh,0FFh, 95h, 00h, 32h, 01h -40E6:12E4 02 00 FC FF 04 00 db 02h, 00h,0FCh,0FFh, 04h, 00h -40E6:12EA FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:12F0 05 00 FD FF F0 FF db 05h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:12F6 00 00 04 00 FD FF db 00h, 00h, 04h, 00h,0FDh,0FFh -40E6:12FC F0 FF 00 00 05 00 db 0F0h,0FFh, 00h, 00h, 05h, 00h -40E6:1302 FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:1308 04 00 FD FF F0 FF db 04h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:130E 00 00 05 00 FD FF db 00h, 00h, 05h, 00h,0FDh,0FFh -40E6:1314 F0 FF 00 00 04 00 db 0F0h,0FFh, 00h, 00h, 04h, 00h -40E6:131A FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:1320 05 00 FD FF F0 FF db 05h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:1326 00 00 04 00 FD FF db 00h, 00h, 04h, 00h,0FDh,0FFh -40E6:132C F0 FF 00 00 05 00 db 0F0h,0FFh, 00h, 00h, 05h, 00h -40E6:1332 FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:1338 04 00 08 00 FF FF db 04h, 00h, 08h, 00h,0FFh,0FFh -40E6:133E 96 00 06 00 FD FF db 96h, 00h, 06h, 00h,0FDh,0FFh -40E6:1344 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:134A FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1350 06 00 FD FF 10 00 db 06h, 00h,0FDh,0FFh, 10h, 00h -40E6:1356 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:135C 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:1362 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1368 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:136E 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:1374 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:137A FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1380 06 00 FD FF 10 00 db 06h, 00h,0FDh,0FFh, 10h, 00h -40E6:1386 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:138C 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:1392 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1398 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:139E 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:13A4 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:13AA FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:13B0 06 00 08 00 FF FF db 06h, 00h, 08h, 00h,0FFh,0FFh -40E6:13B6 4C 00 FE FF 60 01 db 4Ch, 00h,0FEh,0FFh, 60h, 01h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 582 - -40E6:13BC FA 00 F8 FF 05 00 db 0FAh, 00h,0F8h,0FFh, 05h, 00h -40E6:13C2 2A 00 04 00 FD FF db 2Ah, 00h, 04h, 00h,0FDh,0FFh -40E6:13C8 F0 FF 00 00 05 00 db 0F0h,0FFh, 00h, 00h, 05h, 00h -40E6:13CE FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:13D4 04 00 FD FF F0 FF db 04h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:13DA 00 00 05 00 FD FF db 00h, 00h, 05h, 00h,0FDh,0FFh -40E6:13E0 F0 FF 00 00 04 00 db 0F0h,0FFh, 00h, 00h, 04h, 00h -40E6:13E6 FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:13EC 05 00 FD FF F0 FF db 05h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:13F2 00 00 04 00 FD FF db 00h, 00h, 04h, 00h,0FDh,0FFh -40E6:13F8 F0 FF 00 00 05 00 db 0F0h,0FFh, 00h, 00h, 05h, 00h -40E6:13FE FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:1404 04 00 FD FF F0 FF db 04h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:140A 00 00 05 00 FD FF db 00h, 00h, 05h, 00h,0FDh,0FFh -40E6:1410 F0 FF 00 00 04 00 db 0F0h,0FFh, 00h, 00h, 04h, 00h -40E6:1416 FD FF F0 FF 00 00 db 0FDh,0FFh,0F0h,0FFh, 00h, 00h -40E6:141C 05 00 FD FF F0 FF db 05h, 00h,0FDh,0FFh,0F0h,0FFh -40E6:1422 00 00 FC FF 06 00 db 00h, 00h,0FCh,0FFh, 06h, 00h -40E6:1428 F8 FF 05 00 2B 00 db 0F8h,0FFh, 05h, 00h, 2Bh, 00h -40E6:142E FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1434 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:143A 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:1440 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:1446 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:144C 06 00 FD FF 00 00 db 06h, 00h,0FDh,0FFh, 00h, 00h -40E6:1452 F8 FF FD FF 10 00 db 0F8h,0FFh,0FDh,0FFh, 10h, 00h -40E6:1458 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:145E 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:1464 FD FF 00 00 F8 FF db 0FDh,0FFh, 00h, 00h,0F8h,0FFh -40E6:146A FD FF 00 00 F8 FF db 0FDh,0FFh, 00h, 00h,0F8h,0FFh -40E6:1470 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1476 F8 FF 01 00 FC FF db 0F8h,0FFh, 01h, 00h,0FCh,0FFh -40E6:147C 06 00 FD FF 10 00 db 06h, 00h,0FDh,0FFh, 10h, 00h -40E6:1482 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:1488 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:148E FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1494 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:149A 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:14A0 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:14A6 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:14AC 06 00 FD FF 10 00 db 06h, 00h,0FDh,0FFh, 10h, 00h -40E6:14B2 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:14B8 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:14BE FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:14C4 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:14CA 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:14D0 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:14D6 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:14DC 06 00 FD FF 10 00 db 06h, 00h,0FDh,0FFh, 10h, 00h -40E6:14E2 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:14E8 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:14EE FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:14F4 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:14FA 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:1500 00 00 F8 FF 00 00 db 00h, 00h,0F8h,0FFh, 00h, 00h -40E6:1506 FD FF 00 00 F8 FF db 0FDh,0FFh, 00h, 00h,0F8h,0FFh -40E6:150C 01 00 FD FF 10 00 db 01h, 00h,0FDh,0FFh, 10h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 583 - -40E6:1512 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:1518 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:151E FC FF 00 00 F8 FF db 0FCh,0FFh, 00h, 00h,0F8h,0FFh -40E6:1524 05 00 2C 00 FD FF db 05h, 00h, 2Ch, 00h,0FDh,0FFh -40E6:152A 00 00 F8 FF 01 00 db 00h, 00h,0F8h,0FFh, 01h, 00h -40E6:1530 FD FF 00 00 F8 FF db 0FDh,0FFh, 00h, 00h,0F8h,0FFh -40E6:1536 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:153C F8 FF 01 00 FD FF db 0F8h,0FFh, 01h, 00h,0FDh,0FFh -40E6:1542 00 00 F8 FF 00 00 db 00h, 00h,0F8h,0FFh, 00h, 00h -40E6:1548 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:154E 06 00 FD FF 10 00 db 06h, 00h,0FDh,0FFh, 10h, 00h -40E6:1554 00 00 07 00 FD FF db 00h, 00h, 07h, 00h,0FDh,0FFh -40E6:155A 10 00 00 00 06 00 db 10h, 00h, 00h, 00h, 06h, 00h -40E6:1560 FD FF 10 00 00 00 db 0FDh,0FFh, 10h, 00h, 00h, 00h -40E6:1566 07 00 FD FF 10 00 db 07h, 00h,0FDh,0FFh, 10h, 00h -40E6:156C 00 00 06 00 FD FF db 00h, 00h, 06h, 00h,0FDh,0FFh -40E6:1572 10 00 00 00 07 00 db 10h, 00h, 00h, 00h, 07h, 00h -40E6:1578 FD FF 00 00 F8 FF db 0FDh,0FFh, 00h, 00h,0F8h,0FFh -40E6:157E 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1584 F8 FF 00 00 FD FF db 0F8h,0FFh, 00h, 00h,0FDh,0FFh -40E6:158A 00 00 F8 FF 01 00 db 00h, 00h,0F8h,0FFh, 01h, 00h -40E6:1590 FD FF 00 00 F8 FF db 0FDh,0FFh, 00h, 00h,0F8h,0FFh -40E6:1596 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:159C F8 FF 01 00 FD FF db 0F8h,0FFh, 01h, 00h,0FDh,0FFh -40E6:15A2 00 00 F8 FF 00 00 db 00h, 00h,0F8h,0FFh, 00h, 00h -40E6:15A8 FC FF 02 00 02 00 db 0FCh,0FFh, 02h, 00h, 02h, 00h -40E6:15AE 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -40E6:15B4 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:15BA 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:15C0 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:15C6 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:15CC 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -40E6:15D2 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:15D8 01 00 02 00 02 00 db 01h, 00h, 02h, 00h, 02h, 00h -40E6:15DE 01 00 01 00 FA FF db 01h, 00h, 01h, 00h,0FAh,0FFh -40E6:15E4 AA 15 00 00 00 00 db 0AAh, 15h, 00h, 00h, 00h, 00h -40E6:15EA 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h -40E6:15F0 02 00 03 00 03 00 db 02h, 00h, 03h, 00h, 03h, 00h -40E6:15F6 00 00 00 00 03 00 db 00h, 00h, 00h, 00h, 03h, 00h -40E6:15FC 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -40E6:1602 03 00 03 00 00 00 db 03h, 00h, 03h, 00h, 00h, 00h -40E6:1608 00 00 03 00 03 00 db 00h, 00h, 03h, 00h, 03h, 00h -40E6:160E 00 00 00 00 03 00 db 00h, 00h, 00h, 00h, 03h, 00h -40E6:1614 03 00 FA FF E6 15 db 03h, 00h,0FAh,0FFh,0E6h, 15h -40E6:161A 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:1620 03 00 04 00 05 00 db 03h, 00h, 04h, 00h, 05h, 00h -40E6:1626 06 00 07 00 08 00 db 06h, 00h, 07h, 00h, 08h, 00h -40E6:162C 09 00 0A 00 0B 00 db 09h, 00h, 0Ah, 00h, 0Bh, 00h -40E6:1632 0C 00 0D 00 0E 00 db 0Ch, 00h, 0Dh, 00h, 0Eh, 00h -40E6:1638 0F 00 10 00 11 00 db 0Fh, 00h, 10h, 00h, 11h, 00h -40E6:163E 12 00 13 00 FA FF db 12h, 00h, 13h, 00h,0FAh,0FFh -40E6:1644 1A 16 FE FF 9E 00 db 1Ah, 16h,0FEh,0FFh, 9Eh, 00h -40E6:164A C8 00 01 00 FF FF db 0C8h, 00h, 01h, 00h,0FFh,0FFh -40E6:1650 10 00 FD FF 03 00 db 10h, 00h,0FDh,0FFh, 03h, 00h -40E6:1656 04 00 00 00 FD FF db 04h, 00h, 00h, 00h,0FDh,0FFh -40E6:165C 03 00 03 00 01 00 db 03h, 00h, 03h, 00h, 01h, 00h -40E6:1662 FD FF 05 00 02 00 db 0FDh,0FFh, 05h, 00h, 02h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 584 - -40E6:1668 00 00 FD FF 08 00 db 00h, 00h,0FDh,0FFh, 08h, 00h -40E6:166E 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:1674 05 00 02 00 00 00 db 05h, 00h, 02h, 00h, 00h, 00h -40E6:167A FD FF 06 00 04 00 db 0FDh,0FFh, 06h, 00h, 04h, 00h -40E6:1680 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:1686 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:168C 04 00 03 00 01 00 db 04h, 00h, 03h, 00h, 01h, 00h -40E6:1692 FD FF 05 00 05 00 db 0FDh,0FFh, 05h, 00h, 05h, 00h -40E6:1698 00 00 FD FF 05 00 db 00h, 00h,0FDh,0FFh, 05h, 00h -40E6:169E 03 00 01 00 FD FF db 03h, 00h, 01h, 00h,0FDh,0FFh -40E6:16A4 05 00 05 00 00 00 db 05h, 00h, 05h, 00h, 00h, 00h -40E6:16AA FD FF 05 00 04 00 db 0FDh,0FFh, 05h, 00h, 04h, 00h -40E6:16B0 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:16B6 03 00 00 00 FD FF db 03h, 00h, 00h, 00h,0FDh,0FFh -40E6:16BC 04 00 03 00 01 00 db 04h, 00h, 03h, 00h, 01h, 00h -40E6:16C2 FD FF 03 00 02 00 db 0FDh,0FFh, 03h, 00h, 02h, 00h -40E6:16C8 00 00 FD FF 03 00 db 00h, 00h,0FDh,0FFh, 03h, 00h -40E6:16CE 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:16D4 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:16DA FD FF 03 00 03 00 db 0FDh,0FFh, 03h, 00h, 03h, 00h -40E6:16E0 01 00 FD FF 02 00 db 01h, 00h,0FDh,0FFh, 02h, 00h -40E6:16E6 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:16EC 01 00 01 00 01 00 db 01h, 00h, 01h, 00h, 01h, 00h -40E6:16F2 FD FF 02 00 01 00 db 0FDh,0FFh, 02h, 00h, 01h, 00h -40E6:16F8 00 00 FD FF 03 00 db 00h, 00h,0FDh,0FFh, 03h, 00h -40E6:16FE 03 00 01 00 FD FF db 03h, 00h, 01h, 00h,0FDh,0FFh -40E6:1704 03 00 03 00 00 00 db 03h, 00h, 03h, 00h, 00h, 00h -40E6:170A FD FF 01 00 00 00 db 0FDh,0FFh, 01h, 00h, 00h, 00h -40E6:1710 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:1716 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:171C 02 00 00 00 01 00 db 02h, 00h, 00h, 00h, 01h, 00h -40E6:1722 FD FF 03 00 00 00 db 0FDh,0FFh, 03h, 00h, 00h, 00h -40E6:1728 00 00 FD FF 03 00 db 00h, 00h,0FDh,0FFh, 03h, 00h -40E6:172E 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:1734 05 00 FE FF 00 00 db 05h, 00h,0FEh,0FFh, 00h, 00h -40E6:173A FD FF 09 00 FD FF db 0FDh,0FFh, 09h, 00h,0FDh,0FFh -40E6:1740 01 00 FD FF 06 00 db 01h, 00h,0FDh,0FFh, 06h, 00h -40E6:1746 FC FF 00 00 FD FF db 0FCh,0FFh, 00h, 00h,0FDh,0FFh -40E6:174C 05 00 FE FF 01 00 db 05h, 00h,0FEh,0FFh, 01h, 00h -40E6:1752 FD FF 07 00 FE FF db 0FDh,0FFh, 07h, 00h,0FEh,0FFh -40E6:1758 00 00 FD FF 09 00 db 00h, 00h,0FDh,0FFh, 09h, 00h -40E6:175E FC FF 01 00 FD FF db 0FCh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1764 08 00 FD FF 00 00 db 08h, 00h,0FDh,0FFh, 00h, 00h -40E6:176A FD FF 06 00 FE FF db 0FDh,0FFh, 06h, 00h,0FEh,0FFh -40E6:1770 01 00 FD FF 05 00 db 01h, 00h,0FDh,0FFh, 05h, 00h -40E6:1776 FF FF 00 00 FD FF db 0FFh,0FFh, 00h, 00h,0FDh,0FFh -40E6:177C 03 00 FE FF 01 00 db 03h, 00h,0FEh,0FFh, 01h, 00h -40E6:1782 FD FF 04 00 FE FF db 0FDh,0FFh, 04h, 00h,0FEh,0FFh -40E6:1788 00 00 FD FF 03 00 db 00h, 00h,0FDh,0FFh, 03h, 00h -40E6:178E FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1794 02 00 FF FF 00 00 db 02h, 00h,0FFh,0FFh, 00h, 00h -40E6:179A FD FF 05 00 FD FF db 0FDh,0FFh, 05h, 00h,0FDh,0FFh -40E6:17A0 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:17A6 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:17AC 03 00 FF FF 01 00 db 03h, 00h,0FFh,0FFh, 01h, 00h -40E6:17B2 FD FF 04 00 00 00 db 0FDh,0FFh, 04h, 00h, 00h, 00h -40E6:17B8 00 00 FD FF 08 00 db 00h, 00h,0FDh,0FFh, 08h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 585 - -40E6:17BE FD FF 01 00 FD FF db 0FDh,0FFh, 01h, 00h,0FDh,0FFh -40E6:17C4 04 00 FE FF 00 00 db 04h, 00h,0FEh,0FFh, 00h, 00h -40E6:17CA FD FF 06 00 FE FF db 0FDh,0FFh, 06h, 00h,0FEh,0FFh -40E6:17D0 01 00 FD FF 07 00 db 01h, 00h,0FDh,0FFh, 07h, 00h -40E6:17D6 FF FF 00 00 FD FF db 0FFh,0FFh, 00h, 00h,0FDh,0FFh -40E6:17DC 08 00 FF FF 01 00 db 08h, 00h,0FFh,0FFh, 01h, 00h -40E6:17E2 FD FF 0A 00 FF FF db 0FDh,0FFh, 0Ah, 00h,0FFh,0FFh -40E6:17E8 00 00 FE FF 64 00 db 00h, 00h,0FEh,0FFh, 64h, 00h -40E6:17EE 64 00 03 00 FF FF db 64h, 00h, 03h, 00h,0FFh,0FFh -40E6:17F4 05 00 FE FF 7E 01 db 05h, 00h,0FEh,0FFh, 7Eh, 01h -40E6:17FA F0 00 03 00 FD FF db 0F0h, 00h, 03h, 00h,0FDh,0FFh -40E6:1800 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -40E6:1806 FD FF FF FF 06 00 db 0FDh,0FFh,0FFh,0FFh, 06h, 00h -40E6:180C 03 00 FD FF FF FF db 03h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1812 02 00 02 00 FD FF db 02h, 00h, 02h, 00h,0FDh,0FFh -40E6:1818 FC FF 04 00 03 00 db 0FCh,0FFh, 04h, 00h, 03h, 00h -40E6:181E FD FF FC FF 04 00 db 0FDh,0FFh,0FCh,0FFh, 04h, 00h -40E6:1824 02 00 FD FF FA FF db 02h, 00h,0FDh,0FFh,0FAh,0FFh -40E6:182A 04 00 03 00 FD FF db 04h, 00h, 03h, 00h,0FDh,0FFh -40E6:1830 FB FF 04 00 02 00 db 0FBh,0FFh, 04h, 00h, 02h, 00h -40E6:1836 FD FF FA FF 03 00 db 0FDh,0FFh,0FAh,0FFh, 03h, 00h -40E6:183C 03 00 FD FF FC FF db 03h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:1842 03 00 02 00 FD FF db 03h, 00h, 02h, 00h,0FDh,0FFh -40E6:1848 FB FF 02 00 03 00 db 0FBh,0FFh, 02h, 00h, 03h, 00h -40E6:184E FD FF FE FF 02 00 db 0FDh,0FFh,0FEh,0FFh, 02h, 00h -40E6:1854 02 00 FD FF FC FF db 02h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:185A 02 00 03 00 FD FF db 02h, 00h, 03h, 00h,0FDh,0FFh -40E6:1860 FC FF 02 00 02 00 db 0FCh,0FFh, 02h, 00h, 02h, 00h -40E6:1866 FD FF FD FF 01 00 db 0FDh,0FFh,0FDh,0FFh, 01h, 00h -40E6:186C 03 00 FD FF FA FF db 03h, 00h,0FDh,0FFh,0FAh,0FFh -40E6:1872 03 00 02 00 FD FF db 03h, 00h, 02h, 00h,0FDh,0FFh -40E6:1878 FB FF 01 00 03 00 db 0FBh,0FFh, 01h, 00h, 03h, 00h -40E6:187E FD FF FC FF 01 00 db 0FDh,0FFh,0FCh,0FFh, 01h, 00h -40E6:1884 02 00 FD FF FB FF db 02h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:188A 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:1890 FB FF 00 00 02 00 db 0FBh,0FFh, 00h, 00h, 02h, 00h -40E6:1896 FD FF F9 FF 00 00 db 0FDh,0FFh,0F9h,0FFh, 00h, 00h -40E6:189C 03 00 FD FF F8 FF db 03h, 00h,0FDh,0FFh,0F8h,0FFh -40E6:18A2 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:18A8 F9 FF FF FF 03 00 db 0F9h,0FFh,0FFh,0FFh, 03h, 00h -40E6:18AE FD FF F8 FF 00 00 db 0FDh,0FFh,0F8h,0FFh, 00h, 00h -40E6:18B4 02 00 FD FF F8 FF db 02h, 00h,0FDh,0FFh,0F8h,0FFh -40E6:18BA 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:18C0 F8 FF 00 00 02 00 db 0F8h,0FFh, 00h, 00h, 02h, 00h -40E6:18C6 FD FF F9 FF FF FF db 0FDh,0FFh,0F9h,0FFh,0FFh,0FFh -40E6:18CC 03 00 FD FF F7 FF db 03h, 00h,0FDh,0FFh,0F7h,0FFh -40E6:18D2 FF FF 02 00 FD FF db 0FFh,0FFh, 02h, 00h,0FDh,0FFh -40E6:18D8 FA FF FE FF 03 00 db 0FAh,0FFh,0FEh,0FFh, 03h, 00h -40E6:18DE FD FF F9 FF FE FF db 0FDh,0FFh,0F9h,0FFh,0FEh,0FFh -40E6:18E4 02 00 FD FF FB FF db 02h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:18EA FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:18F0 FB FF FE FF 02 00 db 0FBh,0FFh,0FEh,0FFh, 02h, 00h -40E6:18F6 FD FF FC FF FE FF db 0FDh,0FFh,0FCh,0FFh,0FEh,0FFh -40E6:18FC 03 00 FD FF FD FF db 03h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:1902 FE FF 02 00 FD FF db 0FEh,0FFh, 02h, 00h,0FDh,0FFh -40E6:1908 FD FF FE FF 03 00 db 0FDh,0FFh,0FEh,0FFh, 03h, 00h -40E6:190E FD FF FC FF FD FF db 0FDh,0FFh,0FCh,0FFh,0FDh,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 586 - -40E6:1914 02 00 FD FF FF FF db 02h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:191A FF FF 03 00 FD FF db 0FFh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1920 FE FF FE FF 02 00 db 0FEh,0FFh,0FEh,0FFh, 02h, 00h -40E6:1926 FD FF FE FF FD FF db 0FDh,0FFh,0FEh,0FFh,0FDh,0FFh -40E6:192C 03 00 FD FF FD FF db 03h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:1932 FD FF 02 00 FD FF db 0FDh,0FFh, 02h, 00h,0FDh,0FFh -40E6:1938 FD FF FC FF 03 00 db 0FDh,0FFh,0FCh,0FFh, 03h, 00h -40E6:193E FD FF FE FF FC FF db 0FDh,0FFh,0FEh,0FFh,0FCh,0FFh -40E6:1944 02 00 FD FF FE FF db 02h, 00h,0FDh,0FFh,0FEh,0FFh -40E6:194A FC FF 03 00 FD FF db 0FCh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1950 FD FF FB FF 02 00 db 0FDh,0FFh,0FBh,0FFh, 02h, 00h -40E6:1956 FD FF FE FF FB FF db 0FDh,0FFh,0FEh,0FFh,0FBh,0FFh -40E6:195C 03 00 FD FF FB FF db 03h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:1962 F9 FF 02 00 FD FF db 0F9h,0FFh, 02h, 00h,0FDh,0FFh -40E6:1968 FD FF FB FF 03 00 db 0FDh,0FFh,0FBh,0FFh, 03h, 00h -40E6:196E FD FF FC FF FA FF db 0FDh,0FFh,0FCh,0FFh,0FAh,0FFh -40E6:1974 02 00 FD FF FE FF db 02h, 00h,0FDh,0FFh,0FEh,0FFh -40E6:197A FC FF 03 00 FD FF db 0FCh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1980 FD FF E0 FF 02 00 db 0FDh,0FFh,0E0h,0FFh, 02h, 00h -40E6:1986 FA FF 46 16 FE FF db 0FAh,0FFh, 46h, 16h,0FEh,0FFh -40E6:198C A7 00 C5 00 02 00 db 0A7h, 00h,0C5h, 00h, 02h, 00h -40E6:1992 FD FF 02 00 02 00 db 0FDh,0FFh, 02h, 00h, 02h, 00h -40E6:1998 01 00 FD FF 09 00 db 01h, 00h,0FDh,0FFh, 09h, 00h -40E6:199E 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:19A4 03 00 01 00 01 00 db 03h, 00h, 01h, 00h, 01h, 00h -40E6:19AA FD FF 02 00 02 00 db 0FDh,0FFh, 02h, 00h, 02h, 00h -40E6:19B0 00 00 FD FF 05 00 db 00h, 00h,0FDh,0FFh, 05h, 00h -40E6:19B6 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:19BC 07 00 02 00 00 00 db 07h, 00h, 02h, 00h, 00h, 00h -40E6:19C2 FD FF 04 00 00 00 db 0FDh,0FFh, 04h, 00h, 00h, 00h -40E6:19C8 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:19CE 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:19D4 03 00 00 00 01 00 db 03h, 00h, 00h, 00h, 01h, 00h -40E6:19DA FD FF 01 00 00 00 db 0FDh,0FFh, 01h, 00h, 00h, 00h -40E6:19E0 00 00 FD FF 02 00 db 00h, 00h,0FDh,0FFh, 02h, 00h -40E6:19E6 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:19EC 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -40E6:19F2 FD FF 02 00 00 00 db 0FDh,0FFh, 02h, 00h, 00h, 00h -40E6:19F8 01 00 FD FF 02 00 db 01h, 00h,0FDh,0FFh, 02h, 00h -40E6:19FE 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1A04 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:1A0A FD FF 03 00 02 00 db 0FDh,0FFh, 03h, 00h, 02h, 00h -40E6:1A10 00 00 FD FF 03 00 db 00h, 00h,0FDh,0FFh, 03h, 00h -40E6:1A16 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:1A1C 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:1A22 FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:1A28 01 00 FD FF 02 00 db 01h, 00h,0FDh,0FFh, 02h, 00h -40E6:1A2E 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:1A34 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:1A3A FD FF 02 00 02 00 db 0FDh,0FFh, 02h, 00h, 02h, 00h -40E6:1A40 00 00 FD FF 04 00 db 00h, 00h,0FDh,0FFh, 04h, 00h -40E6:1A46 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:1A4C 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:1A52 FD FF 05 00 03 00 db 0FDh,0FFh, 05h, 00h, 03h, 00h -40E6:1A58 01 00 FD FF 07 00 db 01h, 00h,0FDh,0FFh, 07h, 00h -40E6:1A5E 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:1A64 04 00 01 00 01 00 db 04h, 00h, 01h, 00h, 01h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 587 - -40E6:1A6A FD FF 03 00 01 00 db 0FDh,0FFh, 03h, 00h, 01h, 00h -40E6:1A70 00 00 FD FF 04 00 db 00h, 00h,0FDh,0FFh, 04h, 00h -40E6:1A76 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1A7C 06 00 01 00 00 00 db 06h, 00h, 01h, 00h, 00h, 00h -40E6:1A82 FD FF 06 00 00 00 db 0FDh,0FFh, 06h, 00h, 00h, 00h -40E6:1A88 01 00 FD FF 04 00 db 01h, 00h,0FDh,0FFh, 04h, 00h -40E6:1A8E 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1A94 04 00 00 00 01 00 db 04h, 00h, 00h, 00h, 01h, 00h -40E6:1A9A FD FF 06 00 FF FF db 0FDh,0FFh, 06h, 00h,0FFh,0FFh -40E6:1AA0 00 00 FD FF 05 00 db 00h, 00h,0FDh,0FFh, 05h, 00h -40E6:1AA6 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1AAC 09 00 FE FF 00 00 db 09h, 00h,0FEh,0FFh, 00h, 00h -40E6:1AB2 FD FF 04 00 00 00 db 0FDh,0FFh, 04h, 00h, 00h, 00h -40E6:1AB8 01 00 FD FF 07 00 db 01h, 00h,0FDh,0FFh, 07h, 00h -40E6:1ABE FF FF 00 00 FD FF db 0FFh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1AC4 04 00 FF FF 01 00 db 04h, 00h,0FFh,0FFh, 01h, 00h -40E6:1ACA FD FF 05 00 FF FF db 0FDh,0FFh, 05h, 00h,0FFh,0FFh -40E6:1AD0 00 00 FD FF 04 00 db 00h, 00h,0FDh,0FFh, 04h, 00h -40E6:1AD6 FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1ADC 03 00 FF FF 00 00 db 03h, 00h,0FFh,0FFh, 00h, 00h -40E6:1AE2 FD FF 03 00 FF FF db 0FDh,0FFh, 03h, 00h,0FFh,0FFh -40E6:1AE8 01 00 FD FF 04 00 db 01h, 00h,0FDh,0FFh, 04h, 00h -40E6:1AEE FF FF 00 00 FD FF db 0FFh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1AF4 04 00 FF FF 01 00 db 04h, 00h,0FFh,0FFh, 01h, 00h -40E6:1AFA FD FF 04 00 FE FF db 0FDh,0FFh, 04h, 00h,0FEh,0FFh -40E6:1B00 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1B06 FF FF 01 00 FD FF db 0FFh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1B0C 03 00 FF FF 00 00 db 03h, 00h,0FFh,0FFh, 00h, 00h -40E6:1B12 FD FF 02 00 FF FF db 0FDh,0FFh, 02h, 00h,0FFh,0FFh -40E6:1B18 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:1B1E FF FF 00 00 FD FF db 0FFh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1B24 01 00 FF FF 01 00 db 01h, 00h,0FFh,0FFh, 01h, 00h -40E6:1B2A FD FF 01 00 00 00 db 0FDh,0FFh, 01h, 00h, 00h, 00h -40E6:1B30 00 00 FD FF 02 00 db 00h, 00h,0FDh,0FFh, 02h, 00h -40E6:1B36 FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1B3C 01 00 FF FF 00 00 db 01h, 00h,0FFh,0FFh, 00h, 00h -40E6:1B42 FD FF 01 00 FF FF db 0FDh,0FFh, 01h, 00h,0FFh,0FFh -40E6:1B48 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1B4E 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1B54 01 00 FF FF 01 00 db 01h, 00h,0FFh,0FFh, 01h, 00h -40E6:1B5A FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:1B60 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1B66 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1B6C 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -40E6:1B72 FD FF 01 00 00 00 db 0FDh,0FFh, 01h, 00h, 00h, 00h -40E6:1B78 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1B7E 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1B84 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:1B8A FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:1B90 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1B96 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1B9C 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -40E6:1BA2 FD FF 02 00 01 00 db 0FDh,0FFh, 02h, 00h, 01h, 00h -40E6:1BA8 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:1BAE 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:1BB4 03 00 01 00 01 00 db 03h, 00h, 01h, 00h, 01h, 00h -40E6:1BBA FD FF 04 00 04 00 db 0FDh,0FFh, 04h, 00h, 04h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 588 - -40E6:1BC0 00 00 FD FF 04 00 db 00h, 00h,0FDh,0FFh, 04h, 00h -40E6:1BC6 04 00 01 00 FD FF db 04h, 00h, 01h, 00h,0FDh,0FFh -40E6:1BCC 02 00 02 00 00 00 db 02h, 00h, 02h, 00h, 00h, 00h -40E6:1BD2 FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:1BD8 01 00 FD FF 02 00 db 01h, 00h,0FDh,0FFh, 02h, 00h -40E6:1BDE 02 00 00 00 FE FF db 02h, 00h, 00h, 00h,0FEh,0FFh -40E6:1BE4 64 00 64 00 FF FF db 64h, 00h, 64h, 00h,0FFh,0FFh -40E6:1BEA 15 00 FE FF 6F 01 db 15h, 00h,0FEh,0FFh, 6Fh, 01h -40E6:1BF0 F3 00 02 00 FD FF db 0F3h, 00h, 02h, 00h,0FDh,0FFh -40E6:1BF6 FD FF 05 00 03 00 db 0FDh,0FFh, 05h, 00h, 03h, 00h -40E6:1BFC FD FF FB FF 06 00 db 0FDh,0FFh,0FBh,0FFh, 06h, 00h -40E6:1C02 02 00 FD FF FF FF db 02h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1C08 02 00 03 00 FD FF db 02h, 00h, 03h, 00h,0FDh,0FFh -40E6:1C0E FE FF 04 00 02 00 db 0FEh,0FFh, 04h, 00h, 02h, 00h -40E6:1C14 FD FF FF FF 02 00 db 0FDh,0FFh,0FFh,0FFh, 02h, 00h -40E6:1C1A 03 00 FD FF FF FF db 03h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1C20 02 00 02 00 FD FF db 02h, 00h, 02h, 00h,0FDh,0FFh -40E6:1C26 FF FF 02 00 03 00 db 0FFh,0FFh, 02h, 00h, 03h, 00h -40E6:1C2C FD FF FE FF 02 00 db 0FDh,0FFh,0FEh,0FFh, 02h, 00h -40E6:1C32 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:1C38 01 00 03 00 FD FF db 01h, 00h, 03h, 00h,0FDh,0FFh -40E6:1C3E FF FF 01 00 02 00 db 0FFh,0FFh, 01h, 00h, 02h, 00h -40E6:1C44 FD FF FF FF 01 00 db 0FDh,0FFh,0FFh,0FFh, 01h, 00h -40E6:1C4A 03 00 FD FF FF FF db 03h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1C50 01 00 02 00 FD FF db 01h, 00h, 02h, 00h,0FDh,0FFh -40E6:1C56 00 00 01 00 00 00 db 00h, 00h, 01h, 00h, 00h, 00h -40E6:1C5C FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:1C62 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1C68 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1C6E 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:1C74 FD FF 00 00 02 00 db 0FDh,0FFh, 00h, 00h, 02h, 00h -40E6:1C7A 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1C80 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1C86 00 00 01 00 00 00 db 00h, 00h, 01h, 00h, 00h, 00h -40E6:1C8C FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:1C92 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1C98 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:1C9E 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:1CA4 FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:1CAA 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1CB0 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:1CB6 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:1CBC FD FF 00 00 01 00 db 0FDh,0FFh, 00h, 00h, 01h, 00h -40E6:1CC2 01 00 FD FF 02 00 db 01h, 00h,0FDh,0FFh, 02h, 00h -40E6:1CC8 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:1CCE 01 00 01 00 01 00 db 01h, 00h, 01h, 00h, 01h, 00h -40E6:1CD4 FD FF 01 00 00 00 db 0FDh,0FFh, 01h, 00h, 00h, 00h -40E6:1CDA 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1CE0 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1CE6 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -40E6:1CEC FD FF 01 00 FE FF db 0FDh,0FFh, 01h, 00h,0FEh,0FFh -40E6:1CF2 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1CF8 FE FF 00 00 FD FF db 0FEh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1CFE 01 00 FF FF 01 00 db 01h, 00h,0FFh,0FFh, 01h, 00h -40E6:1D04 FD FF 02 00 01 00 db 0FDh,0FFh, 02h, 00h, 01h, 00h -40E6:1D0A 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1D10 01 00 01 00 FD FF db 01h, 00h, 01h, 00h,0FDh,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 589 - -40E6:1D16 00 00 03 00 00 00 db 00h, 00h, 03h, 00h, 00h, 00h -40E6:1D1C FD FF 00 00 02 00 db 0FDh,0FFh, 00h, 00h, 02h, 00h -40E6:1D22 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1D28 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:1D2E 00 00 02 00 01 00 db 00h, 00h, 02h, 00h, 01h, 00h -40E6:1D34 FD FF 00 00 01 00 db 0FDh,0FFh, 00h, 00h, 01h, 00h -40E6:1D3A 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1D40 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1D46 00 00 01 00 00 00 db 00h, 00h, 01h, 00h, 00h, 00h -40E6:1D4C FD FF 00 00 01 00 db 0FDh,0FFh, 00h, 00h, 01h, 00h -40E6:1D52 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1D58 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1D5E 00 00 01 00 01 00 db 00h, 00h, 01h, 00h, 01h, 00h -40E6:1D64 FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:1D6A 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1D70 FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1D76 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:1D7C FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:1D82 03 00 FD FF 00 00 db 03h, 00h,0FDh,0FFh, 00h, 00h -40E6:1D88 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:1D8E FF FF 00 00 03 00 db 0FFh,0FFh, 00h, 00h, 03h, 00h -40E6:1D94 FD FF FE FF 01 00 db 0FDh,0FFh,0FEh,0FFh, 01h, 00h -40E6:1D9A 02 00 FD FF FD FF db 02h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:1DA0 FF FF 03 00 FD FF db 0FFh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1DA6 FE FF 00 00 02 00 db 0FEh,0FFh, 00h, 00h, 02h, 00h -40E6:1DAC FD FF FE FF FE FF db 0FDh,0FFh,0FEh,0FFh,0FEh,0FFh -40E6:1DB2 03 00 FD FF FF FF db 03h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1DB8 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:1DBE FF FF FE FF 03 00 db 0FFh,0FFh,0FEh,0FFh, 03h, 00h -40E6:1DC4 FD FF FD FF FE FF db 0FDh,0FFh,0FDh,0FFh,0FEh,0FFh -40E6:1DCA 02 00 FD FF FF FF db 02h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1DD0 FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1DD6 FE FF FF FF 02 00 db 0FEh,0FFh,0FFh,0FFh, 02h, 00h -40E6:1DDC FD FF FF FF FE FF db 0FDh,0FFh,0FFh,0FFh,0FEh,0FFh -40E6:1DE2 03 00 FD FF 00 00 db 03h, 00h,0FDh,0FFh, 00h, 00h -40E6:1DE8 FE FF 02 00 FD FF db 0FEh,0FFh, 02h, 00h,0FDh,0FFh -40E6:1DEE 00 00 FE FF 03 00 db 00h, 00h,0FEh,0FFh, 03h, 00h -40E6:1DF4 FD FF 00 00 FF FF db 0FDh,0FFh, 00h, 00h,0FFh,0FFh -40E6:1DFA 02 00 FD FF 01 00 db 02h, 00h,0FDh,0FFh, 01h, 00h -40E6:1E00 FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1E06 01 00 00 00 02 00 db 01h, 00h, 00h, 00h, 02h, 00h -40E6:1E0C FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:1E12 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1E18 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:1E1E 01 00 FF FF 00 00 db 01h, 00h,0FFh,0FFh, 00h, 00h -40E6:1E24 FD FF 02 00 FF FF db 0FDh,0FFh, 02h, 00h,0FFh,0FFh -40E6:1E2A 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:1E30 FD FF 00 00 FD FF db 0FDh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1E36 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:1E3C FD FF 03 00 FB FF db 0FDh,0FFh, 03h, 00h,0FBh,0FFh -40E6:1E42 00 00 FD FF 02 00 db 00h, 00h,0FDh,0FFh, 02h, 00h -40E6:1E48 FA FF 01 00 FD FF db 0FAh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1E4E 02 00 FB FF 00 00 db 02h, 00h,0FBh,0FFh, 00h, 00h -40E6:1E54 FD FF 01 00 FD FF db 0FDh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1E5A 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:1E60 FD FF 00 00 FD FF db 0FDh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1E66 02 00 FD FF 01 00 db 02h, 00h,0FDh,0FFh, 01h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 590 - -40E6:1E6C FD FF 01 00 FD FF db 0FDh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1E72 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1E78 FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1E7E 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:1E84 FE FF 64 00 64 00 db 0FEh,0FFh, 64h, 00h, 64h, 00h -40E6:1E8A FF FF 0A 00 FA FF db 0FFh,0FFh, 0Ah, 00h,0FAh,0FFh -40E6:1E90 8A 19 FE FF A1 00 db 8Ah, 19h,0FEh,0FFh,0A1h, 00h -40E6:1E96 EE 00 00 00 FD FF db 0EEh, 00h, 00h, 00h,0FDh,0FFh -40E6:1E9C 04 00 01 00 01 00 db 04h, 00h, 01h, 00h, 01h, 00h -40E6:1EA2 FD FF 02 00 FF FF db 0FDh,0FFh, 02h, 00h,0FFh,0FFh -40E6:1EA8 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:1EAE FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1EB4 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:1EBA FD FF 03 00 FD FF db 0FDh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1EC0 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:1EC6 FE FF 00 00 FD FF db 0FEh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1ECC 03 00 FF FF 01 00 db 03h, 00h,0FFh,0FFh, 01h, 00h -40E6:1ED2 FD FF 02 00 00 00 db 0FDh,0FFh, 02h, 00h, 00h, 00h -40E6:1ED8 00 00 FD FF 03 00 db 00h, 00h,0FDh,0FFh, 03h, 00h -40E6:1EDE FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1EE4 07 00 FF FF 00 00 db 07h, 00h,0FFh,0FFh, 00h, 00h -40E6:1EEA FD FF 04 00 00 00 db 0FDh,0FFh, 04h, 00h, 00h, 00h -40E6:1EF0 01 00 FD FF 04 00 db 01h, 00h,0FDh,0FFh, 04h, 00h -40E6:1EF6 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:1EFC 06 00 FF FF 01 00 db 06h, 00h,0FFh,0FFh, 01h, 00h -40E6:1F02 FD FF 06 00 FC FF db 0FDh,0FFh, 06h, 00h,0FCh,0FFh -40E6:1F08 00 00 FD FF 02 00 db 00h, 00h,0FDh,0FFh, 02h, 00h -40E6:1F0E FD FF 01 00 FD FF db 0FDh,0FFh, 01h, 00h,0FDh,0FFh -40E6:1F14 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:1F1A FD FF 03 00 FD FF db 0FDh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1F20 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:1F26 FA FF 00 00 FD FF db 0FAh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1F2C 02 00 FC FF 01 00 db 02h, 00h,0FCh,0FFh, 01h, 00h -40E6:1F32 FD FF 00 00 FD FF db 0FDh,0FFh, 00h, 00h,0FDh,0FFh -40E6:1F38 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:1F3E 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:1F44 00 00 00 00 03 00 db 00h, 00h, 00h, 00h, 03h, 00h -40E6:1F4A FD FF FF FF 02 00 db 0FDh,0FFh,0FFh,0FFh, 02h, 00h -40E6:1F50 02 00 FD FF FE FF db 02h, 00h,0FDh,0FFh,0FEh,0FFh -40E6:1F56 01 00 03 00 FD FF db 01h, 00h, 03h, 00h,0FDh,0FFh -40E6:1F5C FF FF FF FF 02 00 db 0FFh,0FFh,0FFh,0FFh, 02h, 00h -40E6:1F62 FD FF FE FF FE FF db 0FDh,0FFh,0FEh,0FFh,0FEh,0FFh -40E6:1F68 03 00 FD FF FE FF db 03h, 00h,0FDh,0FFh,0FEh,0FFh -40E6:1F6E FE FF 02 00 FD FF db 0FEh,0FFh, 02h, 00h,0FDh,0FFh -40E6:1F74 FE FF FE FF 03 00 db 0FEh,0FFh,0FEh,0FFh, 03h, 00h -40E6:1F7A FD FF FE FF FE FF db 0FDh,0FFh,0FEh,0FFh,0FEh,0FFh -40E6:1F80 02 00 FD FF FF FF db 02h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1F86 FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1F8C 00 00 FE FF 02 00 db 00h, 00h,0FEh,0FFh, 02h, 00h -40E6:1F92 FD FF 01 00 FF FF db 0FDh,0FFh, 01h, 00h,0FFh,0FFh -40E6:1F98 03 00 FD FF 01 00 db 03h, 00h,0FDh,0FFh, 01h, 00h -40E6:1F9E 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:1FA4 01 00 01 00 03 00 db 01h, 00h, 01h, 00h, 03h, 00h -40E6:1FAA FD FF 02 00 03 00 db 0FDh,0FFh, 02h, 00h, 03h, 00h -40E6:1FB0 02 00 FD FF 03 00 db 02h, 00h,0FDh,0FFh, 03h, 00h -40E6:1FB6 02 00 03 00 FD FF db 02h, 00h, 03h, 00h,0FDh,0FFh -40E6:1FBC 01 00 01 00 02 00 db 01h, 00h, 01h, 00h, 02h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 591 - -40E6:1FC2 FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:1FC8 03 00 FD FF 01 00 db 03h, 00h,0FDh,0FFh, 01h, 00h -40E6:1FCE 01 00 02 00 FD FF db 01h, 00h, 02h, 00h,0FDh,0FFh -40E6:1FD4 01 00 00 00 03 00 db 01h, 00h, 00h, 00h, 03h, 00h -40E6:1FDA FD FF 01 00 FF FF db 0FDh,0FFh, 01h, 00h,0FFh,0FFh -40E6:1FE0 02 00 FD FF FF FF db 02h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1FE6 FC FF 03 00 FD FF db 0FCh,0FFh, 03h, 00h,0FDh,0FFh -40E6:1FEC FF FF FD FF 02 00 db 0FFh,0FFh,0FDh,0FFh, 02h, 00h -40E6:1FF2 FD FF 00 00 FE FF db 0FDh,0FFh, 00h, 00h,0FEh,0FFh -40E6:1FF8 03 00 FD FF FF FF db 03h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:1FFE FE FF 02 00 FD FF db 0FEh,0FFh, 02h, 00h,0FDh,0FFh -40E6:2004 00 00 FE FF 03 00 db 00h, 00h,0FEh,0FFh, 03h, 00h -40E6:200A FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:2010 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:2016 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:201C FF FF 01 00 02 00 db 0FFh,0FFh, 01h, 00h, 02h, 00h -40E6:2022 FD FF 00 00 01 00 db 0FDh,0FFh, 00h, 00h, 01h, 00h -40E6:2028 03 00 FD FF 00 00 db 03h, 00h,0FDh,0FFh, 00h, 00h -40E6:202E 01 00 02 00 FD FF db 01h, 00h, 02h, 00h,0FDh,0FFh -40E6:2034 FF FF 01 00 03 00 db 0FFh,0FFh, 01h, 00h, 03h, 00h -40E6:203A FD FF FD FF 02 00 db 0FDh,0FFh,0FDh,0FFh, 02h, 00h -40E6:2040 02 00 FD FF FF FF db 02h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:2046 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:204C FD FF FF FF 02 00 db 0FDh,0FFh,0FFh,0FFh, 02h, 00h -40E6:2052 FD FF FD FF FF FF db 0FDh,0FFh,0FDh,0FFh,0FFh,0FFh -40E6:2058 03 00 FD FF FF FF db 03h, 00h,0FDh,0FFh,0FFh,0FFh -40E6:205E FF FF 02 00 FD FF db 0FFh,0FFh, 02h, 00h,0FDh,0FFh -40E6:2064 FD FF 00 00 03 00 db 0FDh,0FFh, 00h, 00h, 03h, 00h -40E6:206A FD FF FE FF 02 00 db 0FDh,0FFh,0FEh,0FFh, 02h, 00h -40E6:2070 02 00 FD FF FD FF db 02h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:2076 02 00 03 00 FD FF db 02h, 00h, 03h, 00h,0FDh,0FFh -40E6:207C FF FF FF FF 02 00 db 0FFh,0FFh,0FFh,0FFh, 02h, 00h -40E6:2082 FD FF FF FF 01 00 db 0FDh,0FFh,0FFh,0FFh, 01h, 00h -40E6:2088 03 00 FD FF 00 00 db 03h, 00h,0FDh,0FFh, 00h, 00h -40E6:208E 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:2094 02 00 00 00 03 00 db 02h, 00h, 00h, 00h, 03h, 00h -40E6:209A FD FF 03 00 FF FF db 0FDh,0FFh, 03h, 00h,0FFh,0FFh -40E6:20A0 02 00 FD FF 03 00 db 02h, 00h,0FDh,0FFh, 03h, 00h -40E6:20A6 FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:20AC 02 00 FF FF 02 00 db 02h, 00h,0FFh,0FFh, 02h, 00h -40E6:20B2 FD FF 01 00 FF FF db 0FDh,0FFh, 01h, 00h,0FFh,0FFh -40E6:20B8 03 00 FD FF 00 00 db 03h, 00h,0FDh,0FFh, 00h, 00h -40E6:20BE 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:20C4 00 00 00 00 03 00 db 00h, 00h, 00h, 00h, 03h, 00h -40E6:20CA FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:20D0 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:20D6 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:20DC 01 00 00 00 01 00 db 01h, 00h, 00h, 00h, 01h, 00h -40E6:20E2 FD FF 01 00 01 00 db 0FDh,0FFh, 01h, 00h, 01h, 00h -40E6:20E8 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:20EE 01 00 01 00 FD FF db 01h, 00h, 01h, 00h,0FDh,0FFh -40E6:20F4 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:20FA FD FF 03 00 02 00 db 0FDh,0FFh, 03h, 00h, 02h, 00h -40E6:2100 01 00 FD FF 02 00 db 01h, 00h,0FDh,0FFh, 02h, 00h -40E6:2106 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:210C 02 00 01 00 01 00 db 02h, 00h, 01h, 00h, 01h, 00h -40E6:2112 FD FF 02 00 02 00 db 0FDh,0FFh, 02h, 00h, 02h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 592 - -40E6:2118 00 00 FD FF 02 00 db 00h, 00h,0FDh,0FFh, 02h, 00h -40E6:211E 01 00 01 00 FD FF db 01h, 00h, 01h, 00h,0FDh,0FFh -40E6:2124 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:212A FD FF 02 00 02 00 db 0FDh,0FFh, 02h, 00h, 02h, 00h -40E6:2130 01 00 FD FF 03 00 db 01h, 00h,0FDh,0FFh, 03h, 00h -40E6:2136 02 00 00 00 FD FF db 02h, 00h, 00h, 00h,0FDh,0FFh -40E6:213C 02 00 02 00 01 00 db 02h, 00h, 02h, 00h, 01h, 00h -40E6:2142 FD FF 06 00 03 00 db 0FDh,0FFh, 06h, 00h, 03h, 00h -40E6:2148 00 00 FD FF 06 00 db 00h, 00h,0FDh,0FFh, 06h, 00h -40E6:214E 04 00 01 00 FD FF db 04h, 00h, 01h, 00h,0FDh,0FFh -40E6:2154 04 00 03 00 00 00 db 04h, 00h, 03h, 00h, 00h, 00h -40E6:215A FD FF 03 00 01 00 db 0FDh,0FFh, 03h, 00h, 01h, 00h -40E6:2160 01 00 FD FF 04 00 db 01h, 00h,0FDh,0FFh, 04h, 00h -40E6:2166 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:216C 05 00 02 00 01 00 db 05h, 00h, 02h, 00h, 01h, 00h -40E6:2172 FD FF 04 00 01 00 db 0FDh,0FFh, 04h, 00h, 01h, 00h -40E6:2178 00 00 FD FF 04 00 db 00h, 00h,0FDh,0FFh, 04h, 00h -40E6:217E 01 00 01 00 FD FF db 01h, 00h, 01h, 00h,0FDh,0FFh -40E6:2184 05 00 01 00 00 00 db 05h, 00h, 01h, 00h, 00h, 00h -40E6:218A FD FF 07 00 02 00 db 0FDh,0FFh, 07h, 00h, 02h, 00h -40E6:2190 01 00 FD FF 05 00 db 01h, 00h,0FDh,0FFh, 05h, 00h -40E6:2196 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:219C 04 00 01 00 01 00 db 04h, 00h, 01h, 00h, 01h, 00h -40E6:21A2 FD FF 08 00 01 00 db 0FDh,0FFh, 08h, 00h, 01h, 00h -40E6:21A8 00 00 FD FF 09 00 db 00h, 00h,0FDh,0FFh, 09h, 00h -40E6:21AE 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:21B4 07 00 00 00 00 00 db 07h, 00h, 00h, 00h, 00h, 00h -40E6:21BA FD FF 06 00 00 00 db 0FDh,0FFh, 06h, 00h, 00h, 00h -40E6:21C0 01 00 FD FF 07 00 db 01h, 00h,0FDh,0FFh, 07h, 00h -40E6:21C6 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:21CC 02 00 00 00 01 00 db 02h, 00h, 00h, 00h, 01h, 00h -40E6:21D2 FD FF 03 00 00 00 db 0FDh,0FFh, 03h, 00h, 00h, 00h -40E6:21D8 00 00 FD FF 04 00 db 00h, 00h,0FDh,0FFh, 04h, 00h -40E6:21DE 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:21E4 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -40E6:21EA FD FF 01 00 FF FF db 0FDh,0FFh, 01h, 00h,0FFh,0FFh -40E6:21F0 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:21F6 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:21FC 01 00 FF FF 01 00 db 01h, 00h,0FFh,0FFh, 01h, 00h -40E6:2202 FD FF 00 00 FF FF db 0FDh,0FFh, 00h, 00h,0FFh,0FFh -40E6:2208 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:220E FE FF 01 00 FD FF db 0FEh,0FFh, 01h, 00h,0FDh,0FFh -40E6:2214 00 00 FE FF 00 00 db 00h, 00h,0FEh,0FFh, 00h, 00h -40E6:221A FD FF 00 00 FE FF db 0FDh,0FFh, 00h, 00h,0FEh,0FFh -40E6:2220 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:2226 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:222C 04 00 01 00 01 00 db 04h, 00h, 01h, 00h, 01h, 00h -40E6:2232 FD FF 02 00 01 00 db 0FDh,0FFh, 02h, 00h, 01h, 00h -40E6:2238 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:223E 01 00 01 00 FD FF db 01h, 00h, 01h, 00h,0FDh,0FFh -40E6:2244 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -40E6:224A FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:2250 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:2256 FF FF 00 00 FD FF db 0FFh,0FFh, 00h, 00h,0FDh,0FFh -40E6:225C 01 00 FF FF 01 00 db 01h, 00h,0FFh,0FFh, 01h, 00h -40E6:2262 FD FF 00 00 FF FF db 0FDh,0FFh, 00h, 00h,0FFh,0FFh -40E6:2268 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 593 - -40E6:226E 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:2274 02 00 FF FF 00 00 db 02h, 00h,0FFh,0FFh, 00h, 00h -40E6:227A FD FF 05 00 01 00 db 0FDh,0FFh, 05h, 00h, 01h, 00h -40E6:2280 01 00 FD FF 04 00 db 01h, 00h,0FDh,0FFh, 04h, 00h -40E6:2286 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:228C 08 00 01 00 01 00 db 08h, 00h, 01h, 00h, 01h, 00h -40E6:2292 FD FF 09 00 00 00 db 0FDh,0FFh, 09h, 00h, 00h, 00h -40E6:2298 00 00 FE FF 64 00 db 00h, 00h,0FEh,0FFh, 64h, 00h -40E6:229E 64 00 00 00 FF FF db 64h, 00h, 00h, 00h,0FFh,0FFh -40E6:22A4 16 00 FE FF 8F 01 db 16h, 00h,0FEh,0FFh, 8Fh, 01h -40E6:22AA 0C 01 02 00 FD FF db 0Ch, 01h, 02h, 00h,0FDh,0FFh -40E6:22B0 FF FF FA FF 03 00 db 0FFh,0FFh,0FAh,0FFh, 03h, 00h -40E6:22B6 FD FF 00 00 FF FF db 0FDh,0FFh, 00h, 00h,0FFh,0FFh -40E6:22BC 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:22C2 FF FF 03 00 FD FF db 0FFh,0FFh, 03h, 00h,0FDh,0FFh -40E6:22C8 FE FF 00 00 02 00 db 0FEh,0FFh, 00h, 00h, 02h, 00h -40E6:22CE FD FF FE FF 00 00 db 0FDh,0FFh,0FEh,0FFh, 00h, 00h -40E6:22D4 03 00 FD FF FD FF db 03h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:22DA 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:22E0 FC FF FE FF 03 00 db 0FCh,0FFh,0FEh,0FFh, 03h, 00h -40E6:22E6 FD FF FD FF FF FF db 0FDh,0FFh,0FDh,0FFh,0FFh,0FFh -40E6:22EC 02 00 FD FF FD FF db 02h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:22F2 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:22F8 FD FF FF FF 02 00 db 0FDh,0FFh,0FFh,0FFh, 02h, 00h -40E6:22FE FD FF FC FF FE FF db 0FDh,0FFh,0FCh,0FFh,0FEh,0FFh -40E6:2304 03 00 FD FF FB FF db 03h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:230A FE FF 02 00 FD FF db 0FEh,0FFh, 02h, 00h,0FDh,0FFh -40E6:2310 FC FF FF FF 03 00 db 0FCh,0FFh,0FFh,0FFh, 03h, 00h -40E6:2316 FD FF FB FF FE FF db 0FDh,0FFh,0FBh,0FFh,0FEh,0FFh -40E6:231C 02 00 FD FF FE FF db 02h, 00h,0FDh,0FFh,0FEh,0FFh -40E6:2322 FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:2328 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -40E6:232E FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:2334 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:233A 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:2340 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -40E6:2346 FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:234C 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:2352 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:2358 01 00 01 00 01 00 db 01h, 00h, 01h, 00h, 01h, 00h -40E6:235E FD FF 02 00 02 00 db 0FDh,0FFh, 02h, 00h, 02h, 00h -40E6:2364 00 00 FD FF 01 00 db 00h, 00h,0FDh,0FFh, 01h, 00h -40E6:236A 02 00 01 00 FD FF db 02h, 00h, 01h, 00h,0FDh,0FFh -40E6:2370 01 00 01 00 00 00 db 01h, 00h, 01h, 00h, 00h, 00h -40E6:2376 FD FF 02 00 03 00 db 0FDh,0FFh, 02h, 00h, 03h, 00h -40E6:237C 01 00 FD FF 01 00 db 01h, 00h,0FDh,0FFh, 01h, 00h -40E6:2382 01 00 00 00 FD FF db 01h, 00h, 00h, 00h,0FDh,0FFh -40E6:2388 01 00 01 00 01 00 db 01h, 00h, 01h, 00h, 01h, 00h -40E6:238E FD FF 03 00 03 00 db 0FDh,0FFh, 03h, 00h, 03h, 00h -40E6:2394 00 00 FD FF 02 00 db 00h, 00h,0FDh,0FFh, 02h, 00h -40E6:239A 01 00 01 00 FD FF db 01h, 00h, 01h, 00h,0FDh,0FFh -40E6:23A0 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:23A6 FD FF 01 00 00 00 db 0FDh,0FFh, 01h, 00h, 00h, 00h -40E6:23AC 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:23B2 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:23B8 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:23BE FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 594 - -40E6:23C4 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:23CA FF FF 01 00 FD FF db 0FFh,0FFh, 01h, 00h,0FDh,0FFh -40E6:23D0 00 00 FF FF 00 00 db 00h, 00h,0FFh,0FFh, 00h, 00h -40E6:23D6 FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:23DC 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:23E2 FE FF 00 00 FD FF db 0FEh,0FFh, 00h, 00h,0FDh,0FFh -40E6:23E8 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:23EE FD FF 00 00 FF FF db 0FDh,0FFh, 00h, 00h,0FFh,0FFh -40E6:23F4 00 00 FD FF 00 00 db 00h, 00h,0FDh,0FFh, 00h, 00h -40E6:23FA 00 00 01 00 FD FF db 00h, 00h, 01h, 00h,0FDh,0FFh -40E6:2400 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -40E6:2406 FD FF 00 00 01 00 db 0FDh,0FFh, 00h, 00h, 01h, 00h -40E6:240C 01 00 FD FF 00 00 db 01h, 00h,0FDh,0FFh, 00h, 00h -40E6:2412 00 00 00 00 FD FF db 00h, 00h, 00h, 00h,0FDh,0FFh -40E6:2418 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -40E6:241E FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:2424 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:242A 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:2430 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -40E6:2436 FD FF 00 00 00 00 db 0FDh,0FFh, 00h, 00h, 00h, 00h -40E6:243C 03 00 FD FF 00 00 db 03h, 00h,0FDh,0FFh, 00h, 00h -40E6:2442 01 00 02 00 FD FF db 01h, 00h, 02h, 00h,0FDh,0FFh -40E6:2448 FF FF 00 00 03 00 db 0FFh,0FFh, 00h, 00h, 03h, 00h -40E6:244E FD FF FF FF 00 00 db 0FDh,0FFh,0FFh,0FFh, 00h, 00h -40E6:2454 02 00 FD FF 00 00 db 02h, 00h,0FDh,0FFh, 00h, 00h -40E6:245A 01 00 03 00 FD FF db 01h, 00h, 03h, 00h,0FDh,0FFh -40E6:2460 FF FF 00 00 02 00 db 0FFh,0FFh, 00h, 00h, 02h, 00h -40E6:2466 FD FF FE FF 00 00 db 0FDh,0FFh,0FEh,0FFh, 00h, 00h -40E6:246C 03 00 FD FF FD FF db 03h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:2472 01 00 02 00 FD FF db 01h, 00h, 02h, 00h,0FDh,0FFh -40E6:2478 FE FF 01 00 03 00 db 0FEh,0FFh, 01h, 00h, 03h, 00h -40E6:247E FD FF FE FF 01 00 db 0FDh,0FFh,0FEh,0FFh, 01h, 00h -40E6:2484 02 00 FD FF FD FF db 02h, 00h,0FDh,0FFh,0FDh,0FFh -40E6:248A 01 00 03 00 FD FF db 01h, 00h, 03h, 00h,0FDh,0FFh -40E6:2490 FF FF 01 00 02 00 db 0FFh,0FFh, 01h, 00h, 02h, 00h -40E6:2496 FD FF FD FF 01 00 db 0FDh,0FFh,0FDh,0FFh, 01h, 00h -40E6:249C 03 00 FD FF FE FF db 03h, 00h,0FDh,0FFh,0FEh,0FFh -40E6:24A2 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:24A8 FD FF 01 00 03 00 db 0FDh,0FFh, 01h, 00h, 03h, 00h -40E6:24AE FD FF FB FF 01 00 db 0FDh,0FFh,0FBh,0FFh, 01h, 00h -40E6:24B4 02 00 FD FF FC FF db 02h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:24BA 02 00 03 00 FD FF db 02h, 00h, 03h, 00h,0FDh,0FFh -40E6:24C0 FA FF 02 00 02 00 db 0FAh,0FFh, 02h, 00h, 02h, 00h -40E6:24C6 FD FF FD FF 00 00 db 0FDh,0FFh,0FDh,0FFh, 00h, 00h -40E6:24CC 03 00 FD FF FC FF db 03h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:24D2 01 00 02 00 FD FF db 01h, 00h, 02h, 00h,0FDh,0FFh -40E6:24D8 FD FF 01 00 03 00 db 0FDh,0FFh, 01h, 00h, 03h, 00h -40E6:24DE FD FF FD FF 00 00 db 0FDh,0FFh,0FDh,0FFh, 00h, 00h -40E6:24E4 02 00 FD FF FC FF db 02h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:24EA 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:24F0 FB FF 00 00 02 00 db 0FBh,0FFh, 00h, 00h, 02h, 00h -40E6:24F6 FD FF FD FF 00 00 db 0FDh,0FFh,0FDh,0FFh, 00h, 00h -40E6:24FC 03 00 FD FF FC FF db 03h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:2502 00 00 02 00 FD FF db 00h, 00h, 02h, 00h,0FDh,0FFh -40E6:2508 FD FF 00 00 03 00 db 0FDh,0FFh, 00h, 00h, 03h, 00h -40E6:250E FD FF FC FF 00 00 db 0FDh,0FFh,0FCh,0FFh, 00h, 00h -40E6:2514 02 00 FD FF F9 FF db 02h, 00h,0FDh,0FFh,0F9h,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 595 - -40E6:251A 00 00 03 00 FD FF db 00h, 00h, 03h, 00h,0FDh,0FFh -40E6:2520 FF FF 00 00 02 00 db 0FFh,0FFh, 00h, 00h, 02h, 00h -40E6:2526 FD FF FE FF FE FF db 0FDh,0FFh,0FEh,0FFh,0FEh,0FFh -40E6:252C 03 00 FD FF FC FF db 03h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:2532 FF FF 02 00 FD FF db 0FFh,0FFh, 02h, 00h,0FDh,0FFh -40E6:2538 FD FF FF FF 03 00 db 0FDh,0FFh,0FFh,0FFh, 03h, 00h -40E6:253E FD FF FA FF FD FF db 0FDh,0FFh,0FAh,0FFh,0FDh,0FFh -40E6:2544 02 00 FD FF FA FF db 02h, 00h,0FDh,0FFh,0FAh,0FFh -40E6:254A FC FF 03 00 FD FF db 0FCh,0FFh, 03h, 00h,0FDh,0FFh -40E6:2550 FA FF FD FF 02 00 db 0FAh,0FFh,0FDh,0FFh, 02h, 00h -40E6:2556 FD FF FD FF FE FF db 0FDh,0FFh,0FDh,0FFh,0FEh,0FFh -40E6:255C 03 00 FD FF FC FF db 03h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:2562 FF FF 02 00 FD FF db 0FFh,0FFh, 02h, 00h,0FDh,0FFh -40E6:2568 FE FF FF FF 03 00 db 0FEh,0FFh,0FFh,0FFh, 03h, 00h -40E6:256E FD FF FC FF FE FF db 0FDh,0FFh,0FCh,0FFh,0FEh,0FFh -40E6:2574 02 00 FD FF FC FF db 02h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:257A FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:2580 FD FF FF FF 02 00 db 0FDh,0FFh,0FFh,0FFh, 02h, 00h -40E6:2586 FD FF FC FF FE FF db 0FDh,0FFh,0FCh,0FFh,0FEh,0FFh -40E6:258C 03 00 FD FF FC FF db 03h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:2592 FD FF 02 00 FD FF db 0FDh,0FFh, 02h, 00h,0FDh,0FFh -40E6:2598 F8 FF FD FF 03 00 db 0F8h,0FFh,0FDh,0FFh, 03h, 00h -40E6:259E FD FF FA FF FE FF db 0FDh,0FFh,0FAh,0FFh,0FEh,0FFh -40E6:25A4 02 00 FD FF FB FF db 02h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:25AA FF FF 03 00 FD FF db 0FFh,0FFh, 03h, 00h,0FDh,0FFh -40E6:25B0 FA FF FE FF 02 00 db 0FAh,0FFh,0FEh,0FFh, 02h, 00h -40E6:25B6 FD FF FD FF FE FF db 0FDh,0FFh,0FDh,0FFh,0FEh,0FFh -40E6:25BC 03 00 FD FF FB FF db 03h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:25C2 FE FF 02 00 FD FF db 0FEh,0FFh, 02h, 00h,0FDh,0FFh -40E6:25C8 FB FF FE FF 03 00 db 0FBh,0FFh,0FEh,0FFh, 03h, 00h -40E6:25CE FD FF FC FF FE FF db 0FDh,0FFh,0FCh,0FFh,0FEh,0FFh -40E6:25D4 02 00 FD FF FC FF db 02h, 00h,0FDh,0FFh,0FCh,0FFh -40E6:25DA FE FF 03 00 FD FF db 0FEh,0FFh, 03h, 00h,0FDh,0FFh -40E6:25E0 FB FF FE FF 02 00 db 0FBh,0FFh,0FEh,0FFh, 02h, 00h -40E6:25E6 FD FF FD FF FF FF db 0FDh,0FFh,0FDh,0FFh,0FFh,0FFh -40E6:25EC 03 00 FD FF FB FF db 03h, 00h,0FDh,0FFh,0FBh,0FFh -40E6:25F2 FD FF 02 00 FE FF db 0FDh,0FFh, 02h, 00h,0FEh,0FFh -40E6:25F8 64 00 64 00 00 00 db 64h, 00h, 64h, 00h, 00h, 00h -40E6:25FE FF FF 0D 00 FA FF db 0FFh,0FFh, 0Dh, 00h,0FAh,0FFh -40E6:2604 92 1E FE FF 77 00 db 92h, 1Eh,0FEh,0FFh, 77h, 00h -40E6:260A FD 00 19 00 FD FF db 0FDh, 00h, 19h, 00h,0FDh,0FFh -40E6:2610 06 00 02 00 1A 00 db 06h, 00h, 02h, 00h, 1Ah, 00h -40E6:2616 FF FF 0A 00 FA FF db 0FFh,0FFh, 0Ah, 00h,0FAh,0FFh -40E6:261C 06 26 00 00 F8 FF db 06h, 26h, 00h, 00h,0F8h,0FFh -40E6:2622 22 00 30 00 00 00 db 22h, 00h, 30h, 00h, 00h, 00h -40E6:2628 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:262E 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:2634 03 00 00 00 01 00 db 03h, 00h, 00h, 00h, 01h, 00h -40E6:263A 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:2640 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:2646 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:264C 03 00 00 00 01 00 db 03h, 00h, 00h, 00h, 01h, 00h -40E6:2652 02 00 03 00 00 00 db 02h, 00h, 03h, 00h, 00h, 00h -40E6:2658 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:265E 00 00 01 00 02 00 db 00h, 00h, 01h, 00h, 02h, 00h -40E6:2664 03 00 00 00 01 00 db 03h, 00h, 00h, 00h, 01h, 00h -40E6:266A 02 00 03 00 F7 FF db 02h, 00h, 03h, 00h,0F7h,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 596 - -40E6:2670 22 00 00 00 FA FF db 22h, 00h, 00h, 00h,0FAh,0FFh -40E6:2676 72 26 00 00 00 00 db 72h, 26h, 00h, 00h, 00h, 00h -40E6:267C FF FF 01 00 F8 FF db 0FFh,0FFh, 01h, 00h,0F8h,0FFh -40E6:2682 14 00 30 00 01 00 db 14h, 00h, 30h, 00h, 01h, 00h -40E6:2688 FF FF 01 00 02 00 db 0FFh,0FFh, 01h, 00h, 02h, 00h -40E6:268E FF FF 01 00 03 00 db 0FFh,0FFh, 01h, 00h, 03h, 00h -40E6:2694 FF FF 01 00 04 00 db 0FFh,0FFh, 01h, 00h, 04h, 00h -40E6:269A FF FF 01 00 05 00 db 0FFh,0FFh, 01h, 00h, 05h, 00h -40E6:26A0 FF FF 01 00 06 00 db 0FFh,0FFh, 01h, 00h, 06h, 00h -40E6:26A6 FF FF 01 00 07 00 db 0FFh,0FFh, 01h, 00h, 07h, 00h -40E6:26AC FF FF 14 00 06 00 db 0FFh,0FFh, 14h, 00h, 06h, 00h -40E6:26B2 05 00 04 00 03 00 db 05h, 00h, 04h, 00h, 03h, 00h -40E6:26B8 02 00 01 00 00 00 db 02h, 00h, 01h, 00h, 00h, 00h -40E6:26BE FA FF BC 26 F9 FF db 0FAh,0FFh,0BCh, 26h,0F9h,0FFh -40E6:26C4 59 5A FD FF FE FF db 59h, 5Ah,0FDh,0FFh,0FEh,0FFh -40E6:26CA 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -40E6:26D0 01 00 01 00 FF FF db 01h, 00h, 01h, 00h,0FFh,0FFh -40E6:26D6 01 00 02 00 FF FF db 01h, 00h, 02h, 00h,0FFh,0FFh -40E6:26DC 01 00 03 00 FF FF db 01h, 00h, 03h, 00h,0FFh,0FFh -40E6:26E2 01 00 04 00 FF FF db 01h, 00h, 04h, 00h,0FFh,0FFh -40E6:26E8 01 00 05 00 FF FF db 01h, 00h, 05h, 00h,0FFh,0FFh -40E6:26EE 01 00 06 00 FF FF db 01h, 00h, 06h, 00h,0FFh,0FFh -40E6:26F4 01 00 07 00 FF FF db 01h, 00h, 07h, 00h,0FFh,0FFh -40E6:26FA 14 00 F9 FF 80 5C db 14h, 00h,0F9h,0FFh, 80h, 5Ch -40E6:2700 FD FF 02 00 00 00 db 0FDh,0FFh, 02h, 00h, 00h, 00h -40E6:2706 FC FF F9 FF 62 5A db 0FCh,0FFh,0F9h,0FFh, 62h, 5Ah -40E6:270C FD FF FE FF 00 00 db 0FDh,0FFh,0FEh,0FFh, 00h, 00h -40E6:2712 00 00 FF FF 01 00 db 00h, 00h,0FFh,0FFh, 01h, 00h -40E6:2718 01 00 FF FF 01 00 db 01h, 00h,0FFh,0FFh, 01h, 00h -40E6:271E 02 00 FF FF 01 00 db 02h, 00h,0FFh,0FFh, 01h, 00h -40E6:2724 03 00 FF FF 01 00 db 03h, 00h,0FFh,0FFh, 01h, 00h -40E6:272A 04 00 FF FF 01 00 db 04h, 00h,0FFh,0FFh, 01h, 00h -40E6:2730 05 00 FF FF 01 00 db 05h, 00h,0FFh,0FFh, 01h, 00h -40E6:2736 06 00 FF FF 01 00 db 06h, 00h,0FFh,0FFh, 01h, 00h -40E6:273C 07 00 FF FF 14 00 db 07h, 00h,0FFh,0FFh, 14h, 00h -40E6:2742 F9 FF 67 5D FD FF db 0F9h,0FFh, 67h, 5Dh,0FDh,0FFh -40E6:2748 02 00 00 00 FC FF db 02h, 00h, 00h, 00h,0FCh,0FFh -40E6:274E F9 FF F6 59 00 00 db 0F9h,0FFh,0F6h, 59h, 00h, 00h -40E6:2754 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:275A F9 FF FF 59 00 00 db 0F9h,0FFh,0FFh, 59h, 00h, 00h -40E6:2760 F8 FF 20 00 29 00 db 0F8h,0FFh, 20h, 00h, 29h, 00h -40E6:2766 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:276C F9 FF 08 5A 00 00 db 0F9h,0FFh, 08h, 5Ah, 00h, 00h -40E6:2772 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:2778 F9 FF 11 5A 00 00 db 0F9h,0FFh, 11h, 5Ah, 00h, 00h -40E6:277E 01 00 02 00 03 00 db 01h, 00h, 02h, 00h, 03h, 00h -40E6:2784 F7 FF 20 00 FC FF db 0F7h,0FFh, 20h, 00h,0FCh,0FFh -40E6:278A 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h - - scripts2_seg ends - - - - ;------------------------------------------------ seg_d ---- - - seg_d segment byte public - assume cs:seg_d , ds:seg_d , ss:stack_seg_k - -435F:0000 FF 55 1A call word ptr [di+1Ah] ;* -435F:0003 56 push si -435F:0004 11 56 08 adc [bp+8],dx -435F:0007 56 push si -435F:0008 2C 56 sub al,56h ; 'V' -435F:000A 35 2356 xor ax,2356h -435F:000D 56 push si -435F:000E EB FF 00 00 EB FF db 0EBh,0FFh, 00h, 00h,0EBh,0FFh -435F:0014 01 00 EB FF 02 00 db 01h, 00h,0EBh,0FFh, 02h, 00h -435F:001A EB FF 03 00 EB FF db 0EBh,0FFh, 03h, 00h,0EBh,0FFh -435F:0020 04 00 EB FF 05 00 db 04h, 00h,0EBh,0FFh, 05h, 00h -435F:0026 EB FF 06 00 EB FF db 0EBh,0FFh, 06h, 00h,0EBh,0FFh -435F:002C 07 00 db 07h, 00h -435F:002E 08 db 8 -435F:002F 000B[00] db 11 dup (0) -435F:003A FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:0040 01 00 00 00 ED FF db 01h, 00h, 00h, 00h,0EDh,0FFh -435F:0046 00 db 00h -435F:0047 0007[00] db 7 dup (0) -435F:004E 01 00 db 1, 0 -435F:0050 000A[00] db 10 dup (0) -435F:005A F2 FF 01 00 02 db 0F2h,0FFh, 01h, 00h, 02h -435F:005F 000B[00] db 11 dup (0) -435F:006A 02 00 db 2, 0 -435F:006C 000A[00] db 10 dup (0) -435F:0076 02 00 db 2, 0 -435F:0078 000A[00] db 10 dup (0) -435F:0082 02 00 db 2, 0 -435F:0084 000A[00] db 10 dup (0) -435F:008E F2 FF 00 00 03 db 0F2h,0FFh, 00h, 00h, 03h -435F:0093 000B[00] db 11 dup (0) -435F:009E 04 00 db 4, 0 -435F:00A0 000A[00] db 10 dup (0) -435F:00AA 05 00 00 db 5, 0, 0 -435F:00AD 0009[00] db 9 dup (0) -435F:00B6 FE FF 00 00 EE FF db 0FEh,0FFh, 00h, 00h,0EEh,0FFh -435F:00BC 08 db 08h -435F:00BD 000B[00] db 11 dup (0) -435F:00C8 FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:00CE 01 00 00 00 ED FF db 01h, 00h, 00h, 00h,0EDh,0FFh -435F:00D4 00 db 00h -435F:00D5 0007[00] db 7 dup (0) -435F:00DC 01 00 db 1, 0 -435F:00DE 000A[00] db 10 dup (0) -435F:00E8 F2 FF 01 00 02 db 0F2h,0FFh, 01h, 00h, 02h -435F:00ED 000B[00] db 11 dup (0) -435F:00F8 02 00 db 2, 0 -435F:00FA 000A[00] db 10 dup (0) -435F:0104 02 00 db 2, 0 -435F:0106 000A[00] db 10 dup (0) -435F:0110 02 00 db 2, 0 -435F:0112 000A[00] db 10 dup (0) -435F:011C F2 FF 00 00 EE FF db 0F2h,0FFh, 00h, 00h,0EEh,0FFh -435F:0122 F8 FF 10 03 EF FF db 0F8h,0FFh, 10h, 03h,0EFh,0FFh -435F:0128 FE FF 02 00 00 00 db 0FEh,0FFh, 02h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 598 - -435F:012E ED FF 00 db 0EDh,0FFh, 00h -435F:0131 0007[00] db 7 dup (0) -435F:0138 F2 FF 02 00 01 db 0F2h,0FFh, 02h, 00h, 01h -435F:013D 000B[00] db 11 dup (0) -435F:0148 02 00 db 2, 0 -435F:014A 000A[00] db 10 dup (0) -435F:0154 03 00 db 3, 0 -435F:0156 000A[00] db 10 dup (0) -435F:0160 03 00 db 3, 0 -435F:0162 000A[00] db 10 dup (0) -435F:016C 03 00 db 3, 0 -435F:016E 000A[00] db 10 dup (0) -435F:0178 03 00 db 3, 0 -435F:017A 000A[00] db 10 dup (0) -435F:0184 F2 FF 00 00 02 db 0F2h,0FFh, 00h, 00h, 02h -435F:0189 000B[00] db 11 dup (0) -435F:0194 01 00 db 1, 0 -435F:0196 0016[00] db 22 dup (0) -435F:01AC FE FF 00 00 EE FF db 0FEh,0FFh, 00h, 00h,0EEh,0FFh -435F:01B2 08 db 08h -435F:01B3 000B[00] db 11 dup (0) -435F:01BE FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:01C4 03 00 00 00 ED FF db 03h, 00h, 00h, 00h,0EDh,0FFh -435F:01CA 00 db 00h -435F:01CB 0007[00] db 7 dup (0) -435F:01D2 F2 FF 03 00 01 db 0F2h,0FFh, 03h, 00h, 01h -435F:01D7 000B[00] db 11 dup (0) -435F:01E2 02 00 db 2, 0 -435F:01E4 000A[00] db 10 dup (0) -435F:01EE 03 00 db 3, 0 -435F:01F0 000A[00] db 10 dup (0) -435F:01FA 04 00 db 4, 0 -435F:01FC 000A[00] db 10 dup (0) -435F:0206 05 00 00 db 5, 0, 0 -435F:0209 0009[00] db 9 dup (0) -435F:0212 F2 FF 00 00 06 00 db 0F2h,0FFh, 00h, 00h, 06h, 00h -435F:0218 00 db 00h -435F:0219 0009[00] db 9 dup (0) -435F:0222 07 db 7 -435F:0223 000B[00] db 11 dup (0) -435F:022E FE FF 00 00 EE FF db 0FEh,0FFh, 00h, 00h,0EEh,0FFh -435F:0234 08 db 08h -435F:0235 000B[00] db 11 dup (0) -435F:0240 FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:0246 03 00 00 00 ED FF db 03h, 00h, 00h, 00h,0EDh,0FFh -435F:024C 00 db 00h -435F:024D 0007[00] db 7 dup (0) -435F:0254 F2 FF 03 00 01 db 0F2h,0FFh, 03h, 00h, 01h -435F:0259 000B[00] db 11 dup (0) -435F:0264 02 00 db 2, 0 -435F:0266 000A[00] db 10 dup (0) -435F:0270 03 00 db 3, 0 -435F:0272 000A[00] db 10 dup (0) -435F:027C 04 00 db 4, 0 -435F:027E 000A[00] db 10 dup (0) -435F:0288 05 00 00 db 5, 0, 0 -435F:028B 0009[00] db 9 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 599 - -435F:0294 F2 FF 00 00 EE FF db 0F2h,0FFh, 00h, 00h,0EEh,0FFh -435F:029A F8 FF 10 03 06 00 db 0F8h,0FFh, 10h, 03h, 06h, 00h -435F:02A0 00 db 00h -435F:02A1 0009[00] db 9 dup (0) -435F:02AA 07 db 7 -435F:02AB 000B[00] db 11 dup (0) -435F:02B6 FE FF 00 00 EE FF db 0FEh,0FFh, 00h, 00h,0EEh,0FFh -435F:02BC 08 db 08h -435F:02BD 000B[00] db 11 dup (0) -435F:02C8 FB FF 07 00 FC FF db 0FBh,0FFh, 07h, 00h,0FCh,0FFh -435F:02CE 00 db 00h -435F:02CF 0007[00] db 7 dup (0) -435F:02D6 EF FF 06 00 FC FF db 0EFh,0FFh, 06h, 00h,0FCh,0FFh -435F:02DC 00 db 00h -435F:02DD 0007[00] db 7 dup (0) -435F:02E4 EF FF 05 00 FC FF db 0EFh,0FFh, 05h, 00h,0FCh,0FFh -435F:02EA 00 db 00h -435F:02EB 0007[00] db 7 dup (0) -435F:02F2 EF FF 04 00 FC FF db 0EFh,0FFh, 04h, 00h,0FCh,0FFh -435F:02F8 00 db 00h -435F:02F9 0007[00] db 7 dup (0) -435F:0300 EF FF 08 db 0EFh,0FFh, 08h -435F:0303 000B[00] db 11 dup (0) -435F:030E FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:0314 04 db 04h -435F:0315 000D[00] db 13 dup (0) -435F:0322 01 00 db 1, 0 -435F:0324 000A[00] db 10 dup (0) -435F:032E 02 00 db 2, 0 -435F:0330 000A[00] db 10 dup (0) -435F:033A F1 FF 05 00 A0 03 db 0F1h,0FFh, 05h, 00h,0A0h, 03h -435F:0340 F2 FF 05 00 03 db 0F2h,0FFh, 05h, 00h, 03h -435F:0345 000B[00] db 11 dup (0) -435F:0350 F1 FF 02 00 F6 03 db 0F1h,0FFh, 02h, 00h,0F6h, 03h -435F:0356 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:035C 06 00 31 00 16 00 db 06h, 00h, 31h, 00h, 16h, 00h -435F:0362 F0 FF 46 0E 05 00 db 0F0h,0FFh, 46h, 0Eh, 05h, 00h -435F:0368 00 00 00 00 07 00 db 00h, 00h, 00h, 00h, 07h, 00h -435F:036E 38 00 16 00 F2 FF db 38h, 00h, 16h, 00h,0F2h,0FFh -435F:0374 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -435F:037A 00 00 06 00 32 00 db 00h, 00h, 06h, 00h, 32h, 00h -435F:0380 17 00 07 db 17h, 00h, 07h -435F:0383 000B[00] db 11 dup (0) -435F:038E FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:0393 000B[00] db 11 dup (0) -435F:039E FB FF EA FF 2A 00 db 0FBh,0FFh,0EAh,0FFh, 2Ah, 00h -435F:03A4 02 db 02h -435F:03A5 000B[00] db 11 dup (0) -435F:03B0 02 00 db 2, 0 -435F:03B2 000A[00] db 10 dup (0) -435F:03BC 02 00 db 2, 0 -435F:03BE 000A[00] db 10 dup (0) -435F:03C8 F2 FF 00 00 01 db 0F2h,0FFh, 00h, 00h, 01h -435F:03CD 0017[00] db 23 dup (0) -435F:03E4 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:03E9 000B[00] db 11 dup (0) -435F:03F4 FB FF 03 db 0FBh,0FFh, 03h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 600 - -435F:03F7 000B[00] db 11 dup (0) -435F:0402 03 00 db 3, 0 -435F:0404 000A[00] db 10 dup (0) -435F:040E 02 00 db 2, 0 -435F:0410 000A[00] db 10 dup (0) -435F:041A F2 FF 00 00 01 db 0F2h,0FFh, 00h, 00h, 01h -435F:041F 0017[00] db 23 dup (0) -435F:0436 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:043B 000B[00] db 11 dup (0) -435F:0446 FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:044C 05 db 05h -435F:044D 000D[00] db 13 dup (0) -435F:045A 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:0460 01 00 F9 FF F3 FF db 01h, 00h,0F9h,0FFh,0F3h,0FFh -435F:0466 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:046C 01 00 F9 FF F3 FF db 01h, 00h,0F9h,0FFh,0F3h,0FFh -435F:0472 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:0478 01 00 F9 FF F3 FF db 01h, 00h,0F9h,0FFh,0F3h,0FFh -435F:047E 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:0484 01 00 F9 FF F3 FF db 01h, 00h,0F9h,0FFh,0F3h,0FFh -435F:048A F2 FF 04 00 02 00 db 0F2h,0FFh, 04h, 00h, 02h, 00h -435F:0490 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -435F:0496 ED FF F7 FF 03 00 db 0EDh,0FFh,0F7h,0FFh, 03h, 00h -435F:049C 00 00 00 00 03 00 db 00h, 00h, 00h, 00h, 03h, 00h -435F:04A2 0D 00 EF FF F1 FF db 0Dh, 00h,0EFh,0FFh,0F1h,0FFh -435F:04A8 04 00 4E 05 04 00 db 04h, 00h, 4Eh, 05h, 04h, 00h -435F:04AE 00 00 00 00 04 00 db 00h, 00h, 00h, 00h, 04h, 00h -435F:04B4 30 00 0C 00 F1 FF db 30h, 00h, 0Ch, 00h,0F1h,0FFh -435F:04BA 01 00 08 05 F0 FF db 01h, 00h, 08h, 05h,0F0h,0FFh -435F:04C0 F8 0D 05 00 00 00 db 0F8h, 0Dh, 05h, 00h, 00h, 00h -435F:04C6 00 00 05 00 30 00 db 00h, 00h, 05h, 00h, 30h, 00h -435F:04CC 1B 00 F2 FF 00 00 db 1Bh, 00h,0F2h,0FFh, 00h, 00h -435F:04D2 06 00 00 db 06h, 00h, 00h -435F:04D5 0009[00] db 9 dup (0) -435F:04DE 07 db 7 -435F:04DF 000B[00] db 11 dup (0) -435F:04EA 08 00 db 8, 0 -435F:04EC 000A[00] db 10 dup (0) -435F:04F6 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:04FB 000B[00] db 11 dup (0) -435F:0506 FB FF F2 FF 00 00 db 0FBh,0FFh,0F2h,0FFh, 00h, 00h -435F:050C 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0512 04 00 30 00 0C 00 db 04h, 00h, 30h, 00h, 0Ch, 00h -435F:0518 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:051E 04 00 30 00 0C 00 db 04h, 00h, 30h, 00h, 0Ch, 00h -435F:0524 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:052A 04 00 30 00 0C 00 db 04h, 00h, 30h, 00h, 0Ch, 00h -435F:0530 08 db 8 -435F:0531 000B[00] db 11 dup (0) -435F:053C FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:0541 000B[00] db 11 dup (0) -435F:054C FB FF EA FF 2A 00 db 0FBh,0FFh,0EAh,0FFh, 2Ah, 00h -435F:0552 02 db 02h -435F:0553 000B[00] db 11 dup (0) -435F:055E 02 00 db 2, 0 -435F:0560 000A[00] db 10 dup (0) -435F:056A 02 00 db 2, 0 - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 601 - -435F:056C 000A[00] db 10 dup (0) -435F:0576 F2 FF 00 00 01 db 0F2h,0FFh, 00h, 00h, 01h -435F:057B 0017[00] db 23 dup (0) -435F:0592 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:0597 000B[00] db 11 dup (0) -435F:05A2 FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:05A8 05 db 05h -435F:05A9 000D[00] db 13 dup (0) -435F:05B6 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:05BC 01 00 F9 FF F3 FF db 01h, 00h,0F9h,0FFh,0F3h,0FFh -435F:05C2 F2 FF 04 00 02 00 db 0F2h,0FFh, 04h, 00h, 02h, 00h -435F:05C8 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -435F:05CE ED FF F7 FF 03 00 db 0EDh,0FFh,0F7h,0FFh, 03h, 00h -435F:05D4 00 00 00 00 03 00 db 00h, 00h, 00h, 00h, 03h, 00h -435F:05DA 0D 00 EF FF F1 FF db 0Dh, 00h,0EFh,0FFh,0F1h,0FFh -435F:05E0 04 00 6E 06 04 00 db 04h, 00h, 6Eh, 06h, 04h, 00h -435F:05E6 00 00 00 00 04 00 db 00h, 00h, 00h, 00h, 04h, 00h -435F:05EC 30 00 0C 00 F1 FF db 30h, 00h, 0Ch, 00h,0F1h,0FFh -435F:05F2 01 00 40 06 F0 FF db 01h, 00h, 40h, 06h,0F0h,0FFh -435F:05F8 F8 0D 05 00 00 00 db 0F8h, 0Dh, 05h, 00h, 00h, 00h -435F:05FE 00 00 05 00 30 00 db 00h, 00h, 05h, 00h, 30h, 00h -435F:0604 1B 00 F2 FF 00 00 db 1Bh, 00h,0F2h,0FFh, 00h, 00h -435F:060A 06 00 00 db 06h, 00h, 00h -435F:060D 0009[00] db 9 dup (0) -435F:0616 07 db 7 -435F:0617 000B[00] db 11 dup (0) -435F:0622 08 00 db 8, 0 -435F:0624 000A[00] db 10 dup (0) -435F:062E FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:0633 000B[00] db 11 dup (0) -435F:063E FB FF F2 FF 00 00 db 0FBh,0FFh,0F2h,0FFh, 00h, 00h -435F:0644 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:064A 04 00 30 00 0C 00 db 04h, 00h, 30h, 00h, 0Ch, 00h -435F:0650 08 db 8 -435F:0651 000B[00] db 11 dup (0) -435F:065C FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:0661 000B[00] db 11 dup (0) -435F:066C FB FF EA FF 2A 00 db 0FBh,0FFh,0EAh,0FFh, 2Ah, 00h -435F:0672 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:0678 02 00 ED FF F7 FF db 02h, 00h,0EDh,0FFh,0F7h,0FFh -435F:067E F2 FF 00 00 01 00 db 0F2h,0FFh, 00h, 00h, 01h, 00h -435F:0684 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -435F:068A F9 FF F3 FF 00 db 0F9h,0FFh,0F3h,0FFh, 00h -435F:068F 000B[00] db 11 dup (0) -435F:069A FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:069F 000B[00] db 11 dup (0) -435F:06AA FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:06B0 06 00 00 db 06h, 00h, 00h -435F:06B3 000B[00] db 11 dup (0) -435F:06BE 01 00 db 1, 0 -435F:06C0 000A[00] db 10 dup (0) -435F:06CA 02 00 db 2, 0 -435F:06CC 000A[00] db 10 dup (0) -435F:06D6 02 00 db 2, 0 -435F:06D8 000A[00] db 10 dup (0) -435F:06E2 02 00 db 2, 0 -435F:06E4 000A[00] db 10 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 602 - -435F:06EE 02 00 db 2, 0 -435F:06F0 000A[00] db 10 dup (0) -435F:06FA 03 00 db 3, 0 -435F:06FC 000A[00] db 10 dup (0) -435F:0706 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:070C 08 00 3C 00 1F 00 db 08h, 00h, 3Ch, 00h, 1Fh, 00h -435F:0712 F1 FF 02 00 58 07 db 0F1h,0FFh, 02h, 00h, 58h, 07h -435F:0718 F1 FF 03 00 22 07 db 0F1h,0FFh, 03h, 00h, 22h, 07h -435F:071E F0 FF 94 0E 05 00 db 0F0h,0FFh, 94h, 0Eh, 05h, 00h -435F:0724 00 00 00 00 09 00 db 00h, 00h, 00h, 00h, 09h, 00h -435F:072A 33 00 0D 00 06 00 db 33h, 00h, 0Dh, 00h, 06h, 00h -435F:0730 00 db 00h -435F:0731 0009[00] db 9 dup (0) -435F:073A 07 db 7 -435F:073B 000B[00] db 11 dup (0) -435F:0746 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:074B 000B[00] db 11 dup (0) -435F:0756 FB FF 04 00 00 00 db 0FBh,0FFh, 04h, 00h, 00h, 00h -435F:075C 00 00 08 00 3C 00 db 00h, 00h, 08h, 00h, 3Ch, 00h -435F:0762 1F 00 04 00 00 00 db 1Fh, 00h, 04h, 00h, 00h, 00h -435F:0768 00 00 08 00 3C 00 db 00h, 00h, 08h, 00h, 3Ch, 00h -435F:076E 1F 00 04 00 00 00 db 1Fh, 00h, 04h, 00h, 00h, 00h -435F:0774 00 00 08 00 3C 00 db 00h, 00h, 08h, 00h, 3Ch, 00h -435F:077A 1F 00 07 db 1Fh, 00h, 07h -435F:077D 000B[00] db 11 dup (0) -435F:0788 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:078D 000B[00] db 11 dup (0) -435F:0798 FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:079E 06 00 00 db 06h, 00h, 00h -435F:07A1 000B[00] db 11 dup (0) -435F:07AC 01 00 db 1, 0 -435F:07AE 000A[00] db 10 dup (0) -435F:07B8 02 00 db 2, 0 -435F:07BA 000A[00] db 10 dup (0) -435F:07C4 02 00 db 2, 0 -435F:07C6 000A[00] db 10 dup (0) -435F:07D0 03 00 db 3, 0 -435F:07D2 000A[00] db 10 dup (0) -435F:07DC 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:07E2 08 00 3C 00 1F 00 db 08h, 00h, 3Ch, 00h, 1Fh, 00h -435F:07E8 F1 FF 02 00 2E 08 db 0F1h,0FFh, 02h, 00h, 2Eh, 08h -435F:07EE F1 FF 03 00 F8 07 db 0F1h,0FFh, 03h, 00h,0F8h, 07h -435F:07F4 F0 FF 94 0E 05 00 db 0F0h,0FFh, 94h, 0Eh, 05h, 00h -435F:07FA 00 00 00 00 09 00 db 00h, 00h, 00h, 00h, 09h, 00h -435F:0800 33 00 0D 00 06 00 db 33h, 00h, 0Dh, 00h, 06h, 00h -435F:0806 00 db 00h -435F:0807 0009[00] db 9 dup (0) -435F:0810 07 db 7 -435F:0811 000B[00] db 11 dup (0) -435F:081C FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:0821 000B[00] db 11 dup (0) -435F:082C FB FF 04 00 00 00 db 0FBh,0FFh, 04h, 00h, 00h, 00h -435F:0832 00 00 08 00 3C 00 db 00h, 00h, 08h, 00h, 3Ch, 00h -435F:0838 1F 00 07 db 1Fh, 00h, 07h -435F:083B 000B[00] db 11 dup (0) -435F:0846 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:084B 000B[00] db 11 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 603 - -435F:0856 FB FF EF FF FE FF db 0FBh,0FFh,0EFh,0FFh,0FEh,0FFh -435F:085C 06 00 00 db 06h, 00h, 00h -435F:085F 000B[00] db 11 dup (0) -435F:086A 01 00 db 1, 0 -435F:086C 000A[00] db 10 dup (0) -435F:0876 02 00 db 2, 0 -435F:0878 000A[00] db 10 dup (0) -435F:0882 02 00 db 2, 0 -435F:0884 000A[00] db 10 dup (0) -435F:088E 01 00 db 1, 0 -435F:0890 0016[00] db 22 dup (0) -435F:08A6 FE FF 00 00 08 db 0FEh,0FFh, 00h, 00h, 08h -435F:08AB 000B[00] db 11 dup (0) -435F:08B6 FB FF 00 00 0E 00 db 0FBh,0FFh, 00h, 00h, 0Eh, 00h -435F:08BC 3C 00 CA 02 26 01 db 3Ch, 00h,0CAh, 02h, 26h, 01h -435F:08C2 C0 01 10 03 48 04 db 0C0h, 01h, 10h, 03h, 48h, 04h -435F:08C8 AC 06 58 08 A4 05 db 0ACh, 06h, 58h, 08h,0A4h, 05h -435F:08CE 9A 07 42 02 CA 00 db 9Ah, 07h, 42h, 02h,0CAh, 00h -435F:08D4 01 db 01h -435F:08D5 001F[00] db 31 dup (0) -435F:08F4 01 00 db 1, 0 -435F:08F6 001E[00] db 30 dup (0) -435F:0914 01 00 01 00 00 01 db 1, 0, 1, 0, 0, 1 -435F:091A 00 01 01 00 db 0, 1, 1, 0 -435F:091E 0009[00] db 9 dup (0) -435F:0927 0B 00 09 01 00 00 db 0Bh, 00h, 09h, 01h, 00h, 00h -435F:092D 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:0933 00 01 00 01 00 00 db 00h, 01h, 00h, 01h, 00h, 00h -435F:0939 0B 00 01 00 01 00 db 0Bh, 00h, 01h, 00h, 01h, 00h -435F:093F 01 0A 00 01 00 00 db 01h, 0Ah, 00h, 01h, 00h, 00h -435F:0945 00 00 01 00 00 09 db 00h, 00h, 01h, 00h, 00h, 09h -435F:094B 01 00 01 01 00 00 db 01h, 00h, 01h, 01h, 00h, 00h -435F:0951 00 00 00 01 00 00 db 00h, 00h, 00h, 01h, 00h, 00h -435F:0957 00 00 00 00 01 01 db 00h, 00h, 00h, 00h, 01h, 01h -435F:095D 00 db 00h -435F:095E 0009[00] db 9 dup (0) -435F:0967 0A 00 00 09 00 01 db 0Ah, 00h, 00h, 09h, 00h, 01h -435F:096D 00 01 00 00 00 0B db 00h, 01h, 00h, 00h, 00h, 0Bh -435F:0973 00 01 00 00 01 01 db 00h, 01h, 00h, 00h, 01h, 01h -435F:0979 00 0B 00 00 00 01 db 00h, 0Bh, 00h, 00h, 00h, 01h -435F:097F 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:0985 00 00 01 06 00 00 db 00h, 00h, 01h, 06h, 00h, 00h -435F:098B 00 01 00 0A 01 00 db 00h, 01h, 00h, 0Ah, 01h, 00h -435F:0991 01 00 00 01 db 01h, 00h, 00h, 01h -435F:0995 0008[00] db 8 dup (0) -435F:099D 01 01 01 00 00 00 db 01h, 01h, 01h, 00h, 00h, 00h -435F:09A3 00 00 0A 00 00 01 db 00h, 00h, 0Ah, 00h, 00h, 01h -435F:09A9 0B 00 09 01 06 00 db 0Bh, 00h, 09h, 01h, 06h, 00h -435F:09AF 00 00 00 00 00 01 db 00h, 00h, 00h, 00h, 00h, 01h -435F:09B5 00 00 00 01 00 db 00h, 00h, 00h, 01h, 00h -435F:09BA 09 db 9 -435F:09BB 000B[00] db 11 dup (0) -435F:09C6 09 01 01 0A 00 01 db 09h, 01h, 01h, 0Ah, 00h, 01h -435F:09CC 00 00 00 0B 00 00 db 00h, 00h, 00h, 0Bh, 00h, 00h -435F:09D2 06 00 01 00 00 01 db 06h, 00h, 01h, 00h, 00h, 01h -435F:09D8 00 01 01 09 00 00 db 00h, 01h, 01h, 09h, 00h, 00h -435F:09DE 00 00 01 01 00 06 db 00h, 00h, 01h, 01h, 00h, 06h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 604 - -435F:09E4 00 00 0A 00 00 00 db 00h, 00h, 0Ah, 00h, 00h, 00h -435F:09EA 0B 06 00 09 01 00 db 0Bh, 06h, 00h, 09h, 01h, 00h -435F:09F0 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -435F:09F6 00 00 0B 00 01 09 db 00h, 00h, 0Bh, 00h, 01h, 09h -435F:09FC 00 00 00 00 0A 01 db 00h, 00h, 00h, 00h, 0Ah, 01h -435F:0A02 01 01 00 00 00 00 db 01h, 01h, 00h, 00h, 00h, 00h -435F:0A08 00 00 01 00 01 09 db 00h, 00h, 01h, 00h, 01h, 09h -435F:0A0E 01 01 01 db 01h, 01h, 01h -435F:0A11 0023[00] db 35 dup (0) -435F:0A34 FF FF FF 03 FF FF db 0FFh,0FFh,0FFh, 03h,0FFh,0FFh -435F:0A3A 00 FF FF FF 00 FF db 00h,0FFh,0FFh,0FFh, 00h,0FFh -435F:0A40 00 FF 00 FF FF FF db 00h,0FFh, 00h,0FFh,0FFh,0FFh -435F:0A46 FF FF 00 00 FF 03 db 0FFh,0FFh, 00h, 00h,0FFh, 03h -435F:0A4C FF 00 03 db 0FFh, 00h, 03h -435F:0A4F 000B[FF] db 11 dup (0FFh) -435F:0A5A 00 FF FF FF 00 FF db 00h,0FFh,0FFh,0FFh, 00h,0FFh -435F:0A60 00 FF 00 FF FF FF db 00h,0FFh, 00h,0FFh,0FFh,0FFh -435F:0A66 FF FF 00 00 FF FF db 0FFh,0FFh, 00h, 00h,0FFh,0FFh -435F:0A6C FF 00 03 FF db 0FFh, 00h, 03h,0FFh -435F:0A70 000A[FF] db 10 dup (0FFh) -435F:0A7A 00 FF FF FF 00 db 00h,0FFh,0FFh,0FFh, 00h -435F:0A7F 0009[FF] db 9 dup (0FFh) -435F:0A88 00 00 FF FF FF 00 db 00h, 00h,0FFh,0FFh,0FFh, 00h -435F:0A8E 03 FF db 03h,0FFh -435F:0A90 000A[FF] db 10 dup (0FFh) -435F:0A9A 00 FF FF FF FF FF db 00h,0FFh,0FFh,0FFh,0FFh,0FFh -435F:0AA0 FF FF 00 FF FF FF db 0FFh,0FFh, 00h,0FFh,0FFh,0FFh -435F:0AA6 FF FF 00 00 FF FF db 0FFh,0FFh, 00h, 00h,0FFh,0FFh -435F:0AAC FF FF db 0FFh,0FFh -435F:0AAE 0D db 0Dh -435F:0AAF 000B[FF] db 11 dup (0FFh) -435F:0ABA 00 FF FF FF 00 FF db 00h,0FFh,0FFh,0FFh, 00h,0FFh -435F:0AC0 00 FF 00 FF FF FF db 00h,0FFh, 00h,0FFh,0FFh,0FFh -435F:0AC6 FF FF 00 0C FF FF db 0FFh,0FFh, 00h, 0Ch,0FFh,0FFh -435F:0ACC FF 00 03 FF db 0FFh, 00h, 03h,0FFh -435F:0AD0 000A[FF] db 10 dup (0FFh) -435F:0ADA 03 0C 03 FF 03 FF db 03h, 0Ch, 03h,0FFh, 03h,0FFh -435F:0AE0 03 FF 03 FF 03 FF db 03h,0FFh, 03h,0FFh, 03h,0FFh -435F:0AE6 03 FF FF FF FF 0D db 03h,0FFh,0FFh,0FFh,0FFh, 0Dh -435F:0AEC FF 00 03 FF db 0FFh, 00h, 03h,0FFh -435F:0AF0 000C[FF] db 12 dup (0FFh) -435F:0AFC 0C FF 00 FF FF FF db 0Ch,0FFh, 00h,0FFh,0FFh,0FFh -435F:0B02 FF FF FF 03 FF FF db 0FFh,0FFh,0FFh, 03h,0FFh,0FFh -435F:0B08 FF FF 0D FF FF 00 db 0FFh,0FFh, 0Dh,0FFh,0FFh, 00h -435F:0B0E FF FF FF 03 db 0FFh,0FFh,0FFh, 03h -435F:0B12 000C[FF] db 12 dup (0FFh) -435F:0B1E 00 FF db 00h,0FFh -435F:0B20 000D[FF] db 13 dup (0FFh) -435F:0B2D 00 03 db 0, 3 -435F:0B2F 000B[FF] db 11 dup (0FFh) -435F:0B3A 03 FF FF FF FF FF db 03h,0FFh,0FFh,0FFh,0FFh,0FFh -435F:0B40 FF FF 00 FF FF 03 db 0FFh,0FFh, 00h,0FFh,0FFh, 03h -435F:0B46 FF FF FF FF 03 0C db 0FFh,0FFh,0FFh,0FFh, 03h, 0Ch -435F:0B4C FF db 0FFh -435F:0B4D 000E[FF] db 14 dup (0FFh) -435F:0B5B 03 FF FF 00 FF 00 db 03h,0FFh,0FFh, 00h,0FFh, 00h -435F:0B61 FF 00 FF FF FF FF db 0FFh, 00h,0FFh,0FFh,0FFh,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 605 - -435F:0B67 FF FF 00 FF FF FF db 0FFh,0FFh, 00h,0FFh,0FFh,0FFh -435F:0B6D 00 FF FF FF FF FF db 00h,0FFh,0FFh,0FFh,0FFh,0FFh -435F:0B73 FF 00 db 0FFh, 00h -435F:0B75 0022[00] db 34 dup (0) -435F:0B97 09 00 08 00 00 09 db 9, 0, 8, 0, 0, 9 -435F:0B9D 0007[00] db 7 dup (0) -435F:0BA4 07 07 07 07 00 00 db 7, 7, 7, 7, 0, 0 -435F:0BAA 09 00 07 00 08 00 db 9, 0, 7, 0, 8, 0 -435F:0BB0 00 00 03 00 06 00 db 0, 0, 3, 0, 6, 0 -435F:0BB6 06 00 06 00 06 00 db 6, 0, 6, 0, 6, 0 -435F:0BBC 06 00 06 00 06 00 db 6, 0, 6, 0, 6, 0 -435F:0BC2 06 db 6 -435F:0BC3 0011[00] db 17 dup (0) -435F:0BD4 09 00 09 00 00 00 db 9, 0, 9, 0, 0, 0 -435F:0BDA 09 00 06 06 db 9, 0, 6, 6 -435F:0BDE 0009[00] db 9 dup (0) -435F:0BE7 07 07 0A 0A 0A 0A db 07h, 07h, 0Ah, 0Ah, 0Ah, 0Ah -435F:0BED 0007[00] db 7 dup (0) -435F:0BF4 0A 0A 0A 0A 0A 07 db 0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 07h -435F:0BFA 07 07 07 db 07h, 07h, 07h -435F:0BFD 08 08 db 8, 8 -435F:0BFF 000A[07] db 10 dup (7) -435F:0C09 08 08 08 08 07 07 db 08h, 08h, 08h, 08h, 07h, 07h -435F:0C0F 0A 0A 0A 0A 0A 07 db 0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 07h -435F:0C15 07 07 07 07 07 07 db 07h, 07h, 07h, 07h, 07h, 07h -435F:0C1B 00 00 00 00 0B 0B db 00h, 00h, 00h, 00h, 0Bh, 0Bh -435F:0C21 00 0B 0B 00 00 0A db 00h, 0Bh, 0Bh, 00h, 00h, 0Ah -435F:0C27 0A 0A 0A 00 08 08 db 0Ah, 0Ah, 0Ah, 00h, 08h, 08h -435F:0C2D 0B 0B 0B 0B 07 08 db 0Bh, 0Bh, 0Bh, 0Bh, 07h, 08h -435F:0C33 07 db 07h -435F:0C34 0009[0B] db 9 dup (0Bh) -435F:0C3D 0A 0B 0B 0B 0B 0B db 0Ah, 0Bh, 0Bh, 0Bh, 0Bh, 0Bh -435F:0C43 09 0B 0B 0B 0B 0B db 09h, 0Bh, 0Bh, 0Bh, 0Bh, 0Bh -435F:0C49 0A 0A 0B 06 06 06 db 0Ah, 0Ah, 0Bh, 06h, 06h, 06h -435F:0C4F 06 06 06 06 06 06 db 06h, 06h, 06h, 06h, 06h, 06h -435F:0C55 0A 0B 06 0A 0B 06 db 0Ah, 0Bh, 06h, 0Ah, 0Bh, 06h -435F:0C5B 0A 0B 06 0A 0B 06 db 0Ah, 0Bh, 06h, 0Ah, 0Bh, 06h -435F:0C61 0A 0B 0B 00 00 0B db 0Ah, 0Bh, 0Bh, 00h, 00h, 0Bh -435F:0C67 0B 0A 0A 0A 0A 0B db 0Bh, 0Ah, 0Ah, 0Ah, 0Ah, 0Bh -435F:0C6D 0007[0B] db 7 dup (0Bh) -435F:0C74 06 06 0B 06 07 0A db 06h, 06h, 0Bh, 06h, 07h, 0Ah -435F:0C7A 0A 0A 0B 0B 0B 08 db 0Ah, 0Ah, 0Bh, 0Bh, 0Bh, 08h -435F:0C80 07 07 0B 07 0B 06 db 07h, 07h, 0Bh, 07h, 0Bh, 06h -435F:0C86 0B 06 0B 0A 08 08 db 0Bh, 06h, 0Bh, 0Ah, 08h, 08h -435F:0C8C 07 07 0A 0A 0A 0A db 07h, 07h, 0Ah, 0Ah, 0Ah, 0Ah -435F:0C92 0A 00 06 0B 06 0A db 0Ah, 00h, 06h, 0Bh, 06h, 0Ah -435F:0C98 03 00 0A 0A 0A 0A db 03h, 00h, 0Ah, 0Ah, 0Ah, 0Ah -435F:0C9E 0B 03 0B 0B 0B 0B db 0Bh, 03h, 0Bh, 0Bh, 0Bh, 0Bh -435F:0CA4 0A 0B 0A 06 0B 06 db 0Ah, 0Bh, 0Ah, 06h, 0Bh, 06h -435F:0CAA 0A 03 00 07 07 07 db 0Ah, 03h, 00h, 07h, 07h, 07h -435F:0CB0 06 0B 0A 0A 0B 0A db 06h, 0Bh, 0Ah, 0Ah, 0Bh, 0Ah -435F:0CB6 0B 00 03 00 0A 0B db 0Bh, 00h, 03h, 00h, 0Ah, 0Bh -435F:0CBC 0A 0B 0B 00 07 0B db 0Ah, 0Bh, 0Bh, 00h, 07h, 0Bh -435F:0CC2 07 00 00 00 0A 07 db 07h, 00h, 00h, 00h, 0Ah, 07h -435F:0CC8 0B 07 00 03 03 06 db 0Bh, 07h, 00h, 03h, 03h, 06h -435F:0CCE 0B 06 03 03 db 0Bh, 06h, 03h, 03h -435F:0CD2 0022[00] db 34 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 606 - -435F:0CF4 05 00 0C 00 0C 00 db 05h, 00h, 0Ch, 00h, 0Ch, 00h -435F:0CFA 0A 00 09 00 08 00 db 0Ah, 00h, 09h, 00h, 08h, 00h -435F:0D00 07 00 07 00 04 00 db 07h, 00h, 07h, 00h, 04h, 00h -435F:0D06 02 00 01 00 0B 00 db 02h, 00h, 01h, 00h, 0Bh, 00h -435F:0D0C 02 00 0C 00 04 00 db 02h, 00h, 0Ch, 00h, 04h, 00h -435F:0D12 0D 00 05 00 00 00 db 0Dh, 00h, 05h, 00h, 00h, 00h -435F:0D18 00 00 0B 00 02 00 db 00h, 00h, 0Bh, 00h, 02h, 00h -435F:0D1E 0C 00 04 00 0D 00 db 0Ch, 00h, 04h, 00h, 0Dh, 00h -435F:0D24 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0D2A 0B 00 02 00 0C 00 db 0Bh, 00h, 02h, 00h, 0Ch, 00h -435F:0D30 04 00 0D 00 0C 00 db 04h, 00h, 0Dh, 00h, 0Ch, 00h -435F:0D36 00 00 00 00 0B 00 db 00h, 00h, 00h, 00h, 0Bh, 00h -435F:0D3C 02 00 0C 00 04 00 db 02h, 00h, 0Ch, 00h, 04h, 00h -435F:0D42 0D 00 0C 00 00 00 db 0Dh, 00h, 0Ch, 00h, 00h, 00h -435F:0D48 00 00 0B 00 02 00 db 00h, 00h, 0Bh, 00h, 02h, 00h -435F:0D4E 0C 00 04 00 0D 00 db 0Ch, 00h, 04h, 00h, 0Dh, 00h -435F:0D54 0C 00 00 00 00 00 db 0Ch, 00h, 00h, 00h, 00h, 00h -435F:0D5A 0B 00 0D 00 0C 00 db 0Bh, 00h, 0Dh, 00h, 0Ch, 00h -435F:0D60 04 00 0D 00 0C 00 db 04h, 00h, 0Dh, 00h, 0Ch, 00h -435F:0D66 00 00 00 00 0B 00 db 00h, 00h, 00h, 00h, 0Bh, 00h -435F:0D6C 0D 00 0C 00 04 00 db 0Dh, 00h, 0Ch, 00h, 04h, 00h -435F:0D72 0D 00 05 00 00 00 db 0Dh, 00h, 05h, 00h, 00h, 00h -435F:0D78 00 00 0B 00 0D 00 db 00h, 00h, 0Bh, 00h, 0Dh, 00h -435F:0D7E 0C 00 04 00 0D 00 db 0Ch, 00h, 04h, 00h, 0Dh, 00h -435F:0D84 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0D8A 0B 00 0D 00 0C 00 db 0Bh, 00h, 0Dh, 00h, 0Ch, 00h -435F:0D90 04 00 0D 00 05 00 db 04h, 00h, 0Dh, 00h, 05h, 00h -435F:0D96 00 00 00 00 0B 00 db 00h, 00h, 00h, 00h, 0Bh, 00h -435F:0D9C 02 00 0C 00 04 00 db 02h, 00h, 0Ch, 00h, 04h, 00h -435F:0DA2 0D 00 05 db 0Dh, 00h, 05h -435F:0DA5 000F[00] db 15 dup (0) -435F:0DB4 44 18 A8 13 2C 13 db 44h, 18h,0A8h, 13h, 2Ch, 13h -435F:0DBA 90 12 4A 18 44 18 db 90h, 12h, 4Ah, 18h, 44h, 18h -435F:0DC0 28 15 C8 16 18 14 db 28h, 15h,0C8h, 16h, 18h, 14h -435F:0DC6 4A 18 FF FF F6 55 db 4Ah, 18h,0FFh,0FFh,0F6h, 55h -435F:0DCC 00 00 F0 FF 00 00 db 00h, 00h,0F0h,0FFh, 00h, 00h -435F:0DD2 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0DD8 EF FF FB FF 00 db 0EFh,0FFh,0FBh,0FFh, 00h -435F:0DDD 000B[00] db 11 dup (0) -435F:0DE8 01 00 db 1, 0 -435F:0DEA 000A[00] db 10 dup (0) -435F:0DF4 EF FF FB FF EE FF db 0EFh,0FFh,0FBh,0FFh,0EEh,0FFh -435F:0DFA FF FF 3E 56 F2 FF db 0FFh,0FFh, 3Eh, 56h,0F2h,0FFh -435F:0E00 00 00 00 00 06 00 db 00h, 00h, 00h, 00h, 06h, 00h -435F:0E06 00 00 18 db 00h, 00h, 18h -435F:0E09 0007[00] db 7 dup (0) -435F:0E10 03 00 00 00 18 00 db 03h, 00h, 00h, 00h, 18h, 00h -435F:0E16 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -435F:0E1C 02 00 00 00 18 db 02h, 00h, 00h, 00h, 18h -435F:0E21 000B[00] db 11 dup (0) -435F:0E2C 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E32 FF FF F6 55 EF FF db 0FFh,0FFh,0F6h, 55h,0EFh,0FFh -435F:0E38 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -435F:0E3E 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E44 FB FF EE FF FF FF db 0FBh,0FFh,0EEh,0FFh,0FFh,0FFh -435F:0E4A 3E 56 F2 FF 00 00 db 3Eh, 56h,0F2h,0FFh, 00h, 00h -435F:0E50 01 00 06 00 00 00 db 01h, 00h, 06h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 607 - -435F:0E56 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E5C 01 00 03 00 00 00 db 01h, 00h, 03h, 00h, 00h, 00h -435F:0E62 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E68 01 00 02 00 00 00 db 01h, 00h, 02h, 00h, 00h, 00h -435F:0E6E 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E74 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:0E7A 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E80 FF FF F6 55 EF FF db 0FFh,0FFh,0F6h, 55h,0EFh,0FFh -435F:0E86 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -435F:0E8C 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:0E92 FB FF EE FF FF FF db 0FBh,0FFh,0EEh,0FFh,0FFh,0FFh -435F:0E98 3E 56 F2 FF 00 00 db 3Eh, 56h,0F2h,0FFh, 00h, 00h -435F:0E9E 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:0EA4 14 00 F0 FF FF FF db 14h, 00h,0F0h,0FFh,0FFh,0FFh -435F:0EAA 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:0EB0 15 00 E2 FF 10 00 db 15h, 00h,0E2h,0FFh, 10h, 00h -435F:0EB6 EA FF 24 00 04 00 db 0EAh,0FFh, 24h, 00h, 04h, 00h -435F:0EBC 00 00 00 00 16 00 db 00h, 00h, 00h, 00h, 16h, 00h -435F:0EC2 E6 FF 16 00 05 00 db 0E6h,0FFh, 16h, 00h, 05h, 00h -435F:0EC8 00 00 00 00 16 00 db 00h, 00h, 00h, 00h, 16h, 00h -435F:0ECE E4 FF 17 00 06 00 db 0E4h,0FFh, 17h, 00h, 06h, 00h -435F:0ED4 00 00 00 00 17 00 db 00h, 00h, 00h, 00h, 17h, 00h -435F:0EDA E9 FF 16 00 06 00 db 0E9h,0FFh, 16h, 00h, 06h, 00h -435F:0EE0 00 00 00 00 17 00 db 00h, 00h, 00h, 00h, 17h, 00h -435F:0EE6 E9 FF 16 00 06 00 db 0E9h,0FFh, 16h, 00h, 06h, 00h -435F:0EEC 00 00 00 00 17 00 db 00h, 00h, 00h, 00h, 17h, 00h -435F:0EF2 E9 FF 16 00 06 00 db 0E9h,0FFh, 16h, 00h, 06h, 00h -435F:0EF8 00 00 00 00 17 00 db 00h, 00h, 00h, 00h, 17h, 00h -435F:0EFE E9 FF 16 00 07 00 db 0E9h,0FFh, 16h, 00h, 07h, 00h -435F:0F04 00 00 00 00 15 00 db 00h, 00h, 00h, 00h, 15h, 00h -435F:0F0A E9 FF 19 00 07 00 db 0E9h,0FFh, 19h, 00h, 07h, 00h -435F:0F10 00 00 00 00 15 00 db 00h, 00h, 00h, 00h, 15h, 00h -435F:0F16 E9 FF 19 00 08 00 db 0E9h,0FFh, 19h, 00h, 08h, 00h -435F:0F1C 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:0F22 00 00 00 00 08 00 db 00h, 00h, 00h, 00h, 08h, 00h -435F:0F28 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:0F2E 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -435F:0F34 F6 55 EF FF 00 00 db 0F6h, 55h,0EFh,0FFh, 00h, 00h -435F:0F3A 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:0F40 00 00 00 00 FB FF db 00h, 00h, 00h, 00h,0FBh,0FFh -435F:0F46 EE FF FF FF 3E 56 db 0EEh,0FFh,0FFh,0FFh, 3Eh, 56h -435F:0F4C 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:0F52 14 00 F0 FF FF FF db 14h, 00h,0F0h,0FFh,0FFh,0FFh -435F:0F58 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:0F5E 15 00 E2 FF 10 00 db 15h, 00h,0E2h,0FFh, 10h, 00h -435F:0F64 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0F6A 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:0F70 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0F76 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:0F7C 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0F82 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:0F88 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0F8E 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:0F94 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0F9A 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:0FA0 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0FA6 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 608 - -435F:0FAC 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0FB2 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:0FB8 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:0FBE 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:0FC4 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0FCA 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:0FD0 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0FD6 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:0FDC 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0FE2 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:0FE8 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0FEE 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:0FF4 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:0FFA 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:1000 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:1006 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:100C 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:1012 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:1018 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:101E 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:1024 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:102A 16 00 E6 FF 16 00 db 16h, 00h,0E6h,0FFh, 16h, 00h -435F:1030 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:1036 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:103C 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:1042 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:1048 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:104E 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:1054 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:105A 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:1060 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:1066 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:106C 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:1072 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:1078 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:107E 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:1084 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:108A 16 00 E4 FF 17 00 db 16h, 00h,0E4h,0FFh, 17h, 00h -435F:1090 ED FF EE FF FF FF db 0EDh,0FFh,0EEh,0FFh,0FFh,0FFh -435F:1096 50 56 db 50h, 56h -435F:1098 0048[00] db 72 dup (0) -435F:10E0 01 00 db 1, 0 -435F:10E2 000A[00] db 10 dup (0) -435F:10EC 01 00 db 1, 0 -435F:10EE 000A[00] db 10 dup (0) -435F:10F8 01 00 db 1, 0 -435F:10FA 000A[00] db 10 dup (0) -435F:1104 01 00 db 1, 0 -435F:1106 000A[00] db 10 dup (0) -435F:1110 01 00 db 1, 0 -435F:1112 000A[00] db 10 dup (0) -435F:111C 02 00 db 2, 0 -435F:111E 000A[00] db 10 dup (0) -435F:1128 03 00 db 3, 0 -435F:112A 000A[00] db 10 dup (0) -435F:1134 04 00 db 4, 0 -435F:1136 000A[00] db 10 dup (0) - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 609 - -435F:1140 05 00 00 db 5, 0, 0 -435F:1143 0009[00] db 9 dup (0) -435F:114C 06 db 6 -435F:114D 000B[00] db 11 dup (0) -435F:1158 07 db 7 -435F:1159 000B[00] db 11 dup (0) -435F:1164 08 00 db 8, 0 -435F:1166 000A[00] db 10 dup (0) -435F:1170 09 00 db 9, 0 -435F:1172 000A[00] db 10 dup (0) -435F:117C 0A 00 db 0Ah, 00h -435F:117E 000A[00] db 10 dup (0) -435F:1188 0B 00 db 0Bh, 00h -435F:118A 000A[00] db 10 dup (0) -435F:1194 EC FF 0B db 0ECh,0FFh, 0Bh -435F:1197 000B[00] db 11 dup (0) -435F:11A2 F8 FF 96 11 EE FF db 0F8h,0FFh, 96h, 11h,0EEh,0FFh -435F:11A8 F2 FF 00 00 FF FF db 0F2h,0FFh, 00h, 00h,0FFh,0FFh -435F:11AE 47 56 00 00 F8 FF db 47h, 56h, 00h, 00h,0F8h,0FFh -435F:11B4 00 db 00h -435F:11B5 0009[00] db 9 dup (0) -435F:11BE FC FF 00 db 0FCh,0FFh, 00h -435F:11C1 0009[00] db 9 dup (0) -435F:11CA FD FF 00 db 0FDh,0FFh, 00h -435F:11CD 0013[00] db 19 dup (0) -435F:11E0 FF FF FF 55 EF FF db 0FFh,0FFh,0FFh, 55h,0EFh,0FFh -435F:11E6 08 db 08h -435F:11E7 000B[00] db 11 dup (0) -435F:11F2 FB FF EE FF F2 FF db 0FBh,0FFh,0EEh,0FFh,0F2h,0FFh -435F:11F8 00 00 FF FF 47 56 db 00h, 00h,0FFh,0FFh, 47h, 56h -435F:11FE 02 00 F8 FF 00 db 02h, 00h,0F8h,0FFh, 00h -435F:1203 0007[00] db 7 dup (0) -435F:120A 02 00 FC FF 00 db 02h, 00h,0FCh,0FFh, 00h -435F:120F 0007[00] db 7 dup (0) -435F:1216 02 00 FD FF 00 db 02h, 00h,0FDh,0FFh, 00h -435F:121B 0007[00] db 7 dup (0) -435F:1222 02 00 db 2, 0 -435F:1224 000A[00] db 10 dup (0) -435F:122E FF FF FF 55 EF FF db 0FFh,0FFh,0FFh, 55h,0EFh,0FFh -435F:1234 08 db 08h -435F:1235 000B[00] db 11 dup (0) -435F:1240 FB FF EE FF F2 FF db 0FBh,0FFh,0EEh,0FFh,0F2h,0FFh -435F:1246 00 00 FF FF 47 56 db 00h, 00h,0FFh,0FFh, 47h, 56h -435F:124C 01 00 F8 FF 00 db 01h, 00h,0F8h,0FFh, 00h -435F:1251 0007[00] db 7 dup (0) -435F:1258 01 00 FC FF 00 db 01h, 00h,0FCh,0FFh, 00h -435F:125D 0007[00] db 7 dup (0) -435F:1264 01 00 FD FF 00 db 01h, 00h,0FDh,0FFh, 00h -435F:1269 0007[00] db 7 dup (0) -435F:1270 01 00 db 1, 0 -435F:1272 000A[00] db 10 dup (0) -435F:127C FF FF FF 55 EF FF db 0FFh,0FFh,0FFh, 55h,0EFh,0FFh -435F:1282 08 db 08h -435F:1283 000B[00] db 11 dup (0) -435F:128E FB FF EF FF FF FF db 0FBh,0FFh,0EFh,0FFh,0FFh,0FFh -435F:1294 ED 55 00 00 0C 00 db 0EDh, 55h, 00h, 00h, 0Ch, 00h -435F:129A 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 610 - -435F:12A0 00 00 F6 FF 08 00 db 00h, 00h,0F6h,0FFh, 08h, 00h -435F:12A6 0C 13 01 00 00 00 db 0Ch, 13h, 01h, 00h, 00h, 00h -435F:12AC 00 00 11 00 F5 FF db 00h, 00h, 11h, 00h,0F5h,0FFh -435F:12B2 EF FF F2 FF 03 00 db 0EFh,0FFh,0F2h,0FFh, 03h, 00h -435F:12B8 02 00 00 00 FE FF db 02h, 00h, 00h, 00h,0FEh,0FFh -435F:12BE 12 00 F5 FF EF FF db 12h, 00h,0F5h,0FFh,0EFh,0FFh -435F:12C4 03 00 00 00 FC FF db 03h, 00h, 00h, 00h,0FCh,0FFh -435F:12CA 12 00 F4 FF EE FF db 12h, 00h,0F4h,0FFh,0EEh,0FFh -435F:12D0 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:12D6 12 00 F4 FF EE FF db 12h, 00h,0F4h,0FFh,0EEh,0FFh -435F:12DC 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:12E2 11 00 F5 FF EF FF db 11h, 00h,0F5h,0FFh,0EFh,0FFh -435F:12E8 05 00 00 00 00 00 db 05h, 00h, 00h, 00h, 00h, 00h -435F:12EE 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:12F4 F2 FF 00 00 FF FF db 0F2h,0FFh, 00h, 00h,0FFh,0FFh -435F:12FA F6 55 EE FF 00 00 db 0F6h, 55h,0EEh,0FFh, 00h, 00h -435F:1300 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1306 00 00 00 00 FB FF db 00h, 00h, 00h, 00h,0FBh,0FFh -435F:130C 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -435F:1312 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:1318 FF FF F6 55 EE FF db 0FFh,0FFh,0F6h, 55h,0EEh,0FFh -435F:131E 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -435F:1324 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:132A FB FF EF FF FF FF db 0FBh,0FFh,0EFh,0FFh,0FFh,0FFh -435F:1330 C9 55 00 00 0C 00 db 0C9h, 55h, 00h, 00h, 0Ch, 00h -435F:1336 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:133C 00 00 01 00 00 00 db 00h, 00h, 01h, 00h, 00h, 00h -435F:1342 00 00 13 00 F2 FF db 00h, 00h, 13h, 00h,0F2h,0FFh -435F:1348 16 00 F2 FF 02 00 db 16h, 00h,0F2h,0FFh, 02h, 00h -435F:134E 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:1354 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:135A 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:1360 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:1366 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:136C 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:1372 F7 FF 07 00 66 13 db 0F7h,0FFh, 07h, 00h, 66h, 13h -435F:1378 F2 FF 00 00 01 00 db 0F2h,0FFh, 00h, 00h, 01h, 00h -435F:137E 00 00 00 00 13 00 db 00h, 00h, 00h, 00h, 13h, 00h -435F:1384 F2 FF 16 00 00 00 db 0F2h,0FFh, 16h, 00h, 00h, 00h -435F:138A 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1390 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -435F:1396 F6 55 EE FF 00 00 db 0F6h, 55h,0EEh,0FFh, 00h, 00h -435F:139C 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:13A2 00 00 00 00 FB FF db 00h, 00h, 00h, 00h,0FBh,0FFh -435F:13A8 EF FF FF FF DB 55 db 0EFh,0FFh,0FFh,0FFh,0DBh, 55h -435F:13AE 00 00 0C 00 00 00 db 00h, 00h, 0Ch, 00h, 00h, 00h -435F:13B4 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:13BA F2 FF 01 00 02 00 db 0F2h,0FFh, 01h, 00h, 02h, 00h -435F:13C0 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:13C6 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -435F:13CC 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:13D2 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -435F:13D8 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:13DE 00 00 00 00 F7 FF db 00h, 00h, 00h, 00h,0F7h,0FFh -435F:13E4 06 00 D6 13 F2 FF db 06h, 00h,0D6h, 13h,0F2h,0FFh -435F:13EA 00 00 03 00 00 00 db 00h, 00h, 03h, 00h, 00h, 00h -435F:13F0 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:13F6 00 00 04 00 00 00 db 00h, 00h, 04h, 00h, 00h, 00h -435F:13FC 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:1402 00 00 FF FF F6 55 db 00h, 00h,0FFh,0FFh,0F6h, 55h -435F:1408 EE FF 04 00 00 00 db 0EEh,0FFh, 04h, 00h, 00h, 00h -435F:140E 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:1414 00 00 FB FF EF FF db 00h, 00h,0FBh,0FFh,0EFh,0FFh -435F:141A FF FF E4 55 00 00 db 0FFh,0FFh,0E4h, 55h, 00h, 00h -435F:1420 00 00 00 00 0C 00 db 00h, 00h, 00h, 00h, 0Ch, 00h -435F:1426 18 00 F8 FF F6 FF db 18h, 00h,0F8h,0FFh,0F6h,0FFh -435F:142C 0D 00 A8 14 01 00 db 0Dh, 00h,0A8h, 14h, 01h, 00h -435F:1432 00 00 00 00 0D 00 db 00h, 00h, 00h, 00h, 0Dh, 00h -435F:1438 16 00 0D 00 02 00 db 16h, 00h, 0Dh, 00h, 02h, 00h -435F:143E 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1444 00 00 00 00 F4 FF db 00h, 00h, 00h, 00h,0F4h,0FFh -435F:144A 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:1450 0E 00 E3 FF 16 00 db 0Eh, 00h,0E3h,0FFh, 16h, 00h -435F:1456 F1 FF 03 00 E0 14 db 0F1h,0FFh, 03h, 00h,0E0h, 14h -435F:145C F0 FF F4 11 04 00 db 0F0h,0FFh,0F4h, 11h, 04h, 00h -435F:1462 00 00 00 00 0F 00 db 00h, 00h, 00h, 00h, 0Fh, 00h -435F:1468 E3 FF 16 00 05 00 db 0E3h,0FFh, 16h, 00h, 05h, 00h -435F:146E 00 00 00 00 10 00 db 00h, 00h, 00h, 00h, 10h, 00h -435F:1474 E3 FF 0A 00 06 00 db 0E3h,0FFh, 0Ah, 00h, 06h, 00h -435F:147A 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1480 00 00 00 00 07 db 00h, 00h, 00h, 00h, 07h -435F:1485 0007[00] db 7 dup (0) -435F:148C 11 00 F6 FF FF FF db 11h, 00h,0F6h,0FFh,0FFh,0FFh -435F:1492 F6 55 04 00 00 00 db 0F6h, 55h, 04h, 00h, 00h, 00h -435F:1498 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:149E 00 00 F7 FF 0D 00 db 00h, 00h,0F7h,0FFh, 0Dh, 00h -435F:14A4 94 14 FB FF 01 00 db 94h, 14h,0FBh,0FFh, 01h, 00h -435F:14AA 00 00 00 00 0D 00 db 00h, 00h, 00h, 00h, 0Dh, 00h -435F:14B0 16 00 0D 00 F4 FF db 16h, 00h, 0Dh, 00h,0F4h,0FFh -435F:14B6 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:14BC 0D 00 16 00 db 0Dh, 00h, 16h, 00h -435F:14C0 0D db 0Dh -435F:14C1 0007[00] db 7 dup (0) -435F:14C8 0C 00 18 00 F8 FF db 0Ch, 00h, 18h, 00h,0F8h,0FFh -435F:14CE FF FF F6 55 04 00 db 0FFh,0FFh,0F6h, 55h, 04h, 00h -435F:14D4 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:14DA 00 00 00 00 FB FF db 00h, 00h, 00h, 00h,0FBh,0FFh -435F:14E0 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:14E6 0E 00 E3 FF 16 00 db 0Eh, 00h,0E3h,0FFh, 16h, 00h -435F:14EC 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:14F2 0E 00 E3 FF 16 00 db 0Eh, 00h,0E3h,0FFh, 16h, 00h -435F:14F8 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:14FE 0E 00 E3 FF 16 00 db 0Eh, 00h,0E3h,0FFh, 16h, 00h -435F:1504 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:150A 0D 00 16 00 0D 00 db 0Dh, 00h, 16h, 00h, 0Dh, 00h -435F:1510 FF FF F6 55 04 00 db 0FFh,0FFh,0F6h, 55h, 04h, 00h -435F:1516 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:151C 00 00 00 00 F7 FF db 00h, 00h, 00h, 00h,0F7h,0FFh -435F:1522 0D 00 94 14 FB FF db 0Dh, 00h, 94h, 14h,0FBh,0FFh -435F:1528 EF FF FF FF D2 55 db 0EFh,0FFh,0FFh,0FFh,0D2h, 55h -435F:152E 00 00 00 00 00 00 db 00h, 00h, 00h, 00h, 00h, 00h -435F:1534 01 00 17 00 F8 FF db 01h, 00h, 17h, 00h,0F8h,0FFh -435F:153A 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:1540 02 00 16 00 05 00 db 02h, 00h, 16h, 00h, 05h, 00h -435F:1546 F4 FF F6 FF 0B 00 db 0F4h,0FFh,0F6h,0FFh, 0Bh, 00h -435F:154C DE 15 02 00 00 00 db 0DEh, 15h, 02h, 00h, 00h, 00h -435F:1552 00 00 03 00 17 00 db 00h, 00h, 03h, 00h, 17h, 00h -435F:1558 F0 FF F2 FF 04 00 db 0F0h,0FFh,0F2h,0FFh, 04h, 00h -435F:155E 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:1564 04 00 08 00 EE FF db 04h, 00h, 08h, 00h,0EEh,0FFh -435F:156A F1 FF 04 00 6C 16 db 0F1h,0FFh, 04h, 00h, 6Ch, 16h -435F:1570 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:1576 05 00 F0 FF EF FF db 05h, 00h,0F0h,0FFh,0EFh,0FFh -435F:157C F1 FF 01 00 14 16 db 0F1h,0FFh, 01h, 00h, 14h, 16h -435F:1582 F2 FF 00 00 F0 FF db 0F2h,0FFh, 00h, 00h,0F0h,0FFh -435F:1588 A6 11 05 00 00 00 db 0A6h, 11h, 05h, 00h, 00h, 00h -435F:158E 00 00 06 00 DF FF db 00h, 00h, 06h, 00h,0DFh,0FFh -435F:1594 05 00 06 00 00 00 db 05h, 00h, 06h, 00h, 00h, 00h -435F:159A 00 00 07 00 DF FF db 00h, 00h, 07h, 00h,0DFh,0FFh -435F:15A0 07 00 07 00 00 00 db 07h, 00h, 07h, 00h, 00h, 00h -435F:15A6 00 00 08 00 EF FF db 00h, 00h, 08h, 00h,0EFh,0FFh -435F:15AC 07 00 08 00 00 00 db 07h, 00h, 08h, 00h, 00h, 00h -435F:15B2 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:15B8 00 00 09 00 00 00 db 00h, 00h, 09h, 00h, 00h, 00h -435F:15BE 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:15C4 00 00 FF FF F6 55 db 00h, 00h,0FFh,0FFh,0F6h, 55h -435F:15CA 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:15D0 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:15D6 F7 FF 0B 00 CA 15 db 0F7h,0FFh, 0Bh, 00h,0CAh, 15h -435F:15DC FB FF 01 00 00 00 db 0FBh,0FFh, 01h, 00h, 00h, 00h -435F:15E2 00 00 02 00 16 00 db 00h, 00h, 02h, 00h, 16h, 00h -435F:15E8 05 00 01 00 00 00 db 05h, 00h, 01h, 00h, 00h, 00h -435F:15EE 00 00 02 00 16 00 db 00h, 00h, 02h, 00h, 16h, 00h -435F:15F4 05 db 05h -435F:15F5 0007[00] db 7 dup (0) -435F:15FC 01 00 17 00 F8 FF db 01h, 00h, 17h, 00h,0F8h,0FFh -435F:1602 FF FF F6 55 04 00 db 0FFh,0FFh,0F6h, 55h, 04h, 00h -435F:1608 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:160E 00 00 00 00 FB FF db 00h, 00h, 00h, 00h,0FBh,0FFh -435F:1614 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:161A 05 00 F0 FF EF FF db 05h, 00h,0F0h,0FFh,0EFh,0FFh -435F:1620 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:1626 05 00 F0 FF EF FF db 05h, 00h,0F0h,0FFh,0EFh,0FFh -435F:162C F2 FF 00 00 07 00 db 0F2h,0FFh, 00h, 00h, 07h, 00h -435F:1632 00 00 00 00 08 00 db 00h, 00h, 00h, 00h, 08h, 00h -435F:1638 EF FF 07 00 08 00 db 0EFh,0FFh, 07h, 00h, 08h, 00h -435F:163E 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1644 00 00 00 00 09 00 db 00h, 00h, 00h, 00h, 09h, 00h -435F:164A 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1650 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -435F:1656 F6 55 04 00 00 00 db 0F6h, 55h, 04h, 00h, 00h, 00h -435F:165C 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:1662 00 00 F7 FF 0B 00 db 00h, 00h,0F7h,0FFh, 0Bh, 00h -435F:1668 CA 15 FB FF EA FF db 0CAh, 15h,0FBh,0FFh,0EAh,0FFh -435F:166E 2A 00 03 00 00 00 db 2Ah, 00h, 03h, 00h, 00h, 00h -435F:1674 00 00 04 00 08 00 db 00h, 00h, 04h, 00h, 08h, 00h -435F:167A EE FF 03 00 00 00 db 0EEh,0FFh, 03h, 00h, 00h, 00h -435F:1680 00 00 04 00 08 00 db 00h, 00h, 04h, 00h, 08h, 00h -435F:1686 EE FF 03 00 00 00 db 0EEh,0FFh, 03h, 00h, 00h, 00h -435F:168C 00 00 04 00 08 00 db 00h, 00h, 04h, 00h, 08h, 00h -435F:1692 EE FF F2 FF 00 00 db 0EEh,0FFh,0F2h,0FFh, 00h, 00h -435F:1698 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:169E 03 00 17 00 F0 FF db 03h, 00h, 17h, 00h,0F0h,0FFh -435F:16A4 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:16AA 02 00 16 00 05 00 db 02h, 00h, 16h, 00h, 05h, 00h -435F:16B0 FF FF F6 55 04 00 db 0FFh,0FFh,0F6h, 55h, 04h, 00h -435F:16B6 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:16BC 00 00 00 00 F7 FF db 00h, 00h, 00h, 00h,0F7h,0FFh -435F:16C2 0B 00 CA 15 FB FF db 0Bh, 00h,0CAh, 15h,0FBh,0FFh -435F:16C8 EF FF FF FF C0 55 db 0EFh,0FFh,0FFh,0FFh,0C0h, 55h -435F:16CE 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:16D4 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:16DA F6 FF 0C 00 66 17 db 0F6h,0FFh, 0Ch, 00h, 66h, 17h -435F:16E0 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:16E6 18 00 01 00 FF FF db 18h, 00h, 01h, 00h,0FFh,0FFh -435F:16EC F4 FF F1 FF 05 00 db 0F4h,0FFh,0F1h,0FFh, 05h, 00h -435F:16F2 F8 17 F2 FF 05 00 db 0F8h, 17h,0F2h,0FFh, 05h, 00h -435F:16F8 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:16FE 09 00 F0 FF 05 00 db 09h, 00h,0F0h,0FFh, 05h, 00h -435F:1704 F1 FF 02 00 9E 17 db 0F1h,0FFh, 02h, 00h, 9Eh, 17h -435F:170A 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:1710 0A 00 DF FF 05 00 db 0Ah, 00h,0DFh,0FFh, 05h, 00h -435F:1716 F0 FF 42 12 05 00 db 0F0h,0FFh, 42h, 12h, 05h, 00h -435F:171C 00 00 00 00 0B 00 db 00h, 00h, 00h, 00h, 0Bh, 00h -435F:1722 EB FF 05 00 F2 FF db 0EBh,0FFh, 05h, 00h,0F2h,0FFh -435F:1728 00 00 06 00 00 00 db 00h, 00h, 06h, 00h, 00h, 00h -435F:172E 00 00 09 00 F2 FF db 00h, 00h, 09h, 00h,0F2h,0FFh -435F:1734 03 00 07 00 00 00 db 03h, 00h, 07h, 00h, 00h, 00h -435F:173A 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:1740 00 00 08 00 00 00 db 00h, 00h, 08h, 00h, 00h, 00h -435F:1746 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:174C 00 00 FF FF F6 55 db 00h, 00h,0FFh,0FFh,0F6h, 55h -435F:1752 04 00 00 00 00 00 db 04h, 00h, 00h, 00h, 00h, 00h -435F:1758 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:175E F7 FF 0C 00 52 17 db 0F7h,0FFh, 0Ch, 00h, 52h, 17h -435F:1764 FB FF 01 00 00 00 db 0FBh,0FFh, 01h, 00h, 00h, 00h -435F:176A 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:1770 00 00 F4 FF 01 00 db 00h, 00h,0F4h,0FFh, 01h, 00h -435F:1776 00 00 00 00 18 db 00h, 00h, 00h, 00h, 18h -435F:177B 000B[00] db 11 dup (0) -435F:1786 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:178C FF FF F6 55 04 00 db 0FFh,0FFh,0F6h, 55h, 04h, 00h -435F:1792 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1798 00 00 00 00 FB FF db 00h, 00h, 00h, 00h,0FBh,0FFh -435F:179E 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:17A4 09 00 F0 FF 05 00 db 09h, 00h,0F0h,0FFh, 05h, 00h -435F:17AA 03 00 00 00 00 00 db 03h, 00h, 00h, 00h, 00h, 00h -435F:17B0 09 00 F0 FF 05 00 db 09h, 00h,0F0h,0FFh, 05h, 00h -435F:17B6 02 00 00 00 00 00 db 02h, 00h, 00h, 00h, 00h, 00h -435F:17BC 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:17C2 F2 FF 00 00 F4 FF db 0F2h,0FFh, 00h, 00h,0F4h,0FFh -435F:17C8 01 00 00 00 00 00 db 01h, 00h, 00h, 00h, 00h, 00h -435F:17CE 18 db 18h -435F:17CF 000B[00] db 11 dup (0) -435F:17DA 18 00 00 00 00 00 db 18h, 00h, 00h, 00h, 00h, 00h -435F:17E0 FF FF F6 55 04 00 db 0FFh,0FFh,0F6h, 55h, 04h, 00h -435F:17E6 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:17EC 00 00 00 00 F7 FF db 00h, 00h, 00h, 00h,0F7h,0FFh - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 614 - -435F:17F2 0C 00 52 17 FB FF db 0Ch, 00h, 52h, 17h,0FBh,0FFh -435F:17F8 EA FF 2A 00 02 00 db 0EAh,0FFh, 2Ah, 00h, 02h, 00h -435F:17FE 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1804 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -435F:180A 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1810 00 00 00 00 02 00 db 00h, 00h, 00h, 00h, 02h, 00h -435F:1816 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:181C 00 00 00 00 01 00 db 00h, 00h, 00h, 00h, 01h, 00h -435F:1822 00 00 00 00 18 00 db 00h, 00h, 00h, 00h, 18h, 00h -435F:1828 00 00 00 00 FF FF db 00h, 00h, 00h, 00h,0FFh,0FFh -435F:182E F6 55 04 00 00 00 db 0F6h, 55h, 04h, 00h, 00h, 00h -435F:1834 00 00 18 00 00 00 db 00h, 00h, 18h, 00h, 00h, 00h -435F:183A 00 00 F7 FF 0C 00 db 00h, 00h,0F7h,0FFh, 0Ch, 00h -435F:1840 52 17 FB FF FA FF db 52h, 17h,0FBh,0FFh,0FAh,0FFh -435F:1846 F8 FF 44 18 F9 FF db 0F8h,0FFh, 44h, 18h,0F9h,0FFh -435F:184C F8 FF 4A 18 db 0F8h,0FFh, 4Ah, 18h - - seg_d ends - - - - ;------------------------------------- ega_talk_frame_seg ---- - - ega_talk_frame_seg segment byte public - assume cs:ega_talk_frame_seg, ds:ega_talk_frame_seg, ss:stack_seg_k - -44E4:0000 00 FF FF 00 00 FF db 00h,0FFh,0FFh, 00h, 00h,0FFh -44E4:0006 FF 00 00 FF FF 00 db 0FFh, 00h, 00h,0FFh,0FFh, 00h -44E4:000C 00 data_1404 db 0 ; xref 273F:3042 -44E4:000D 80 80 80 00 00 00 db 80h, 80h, 80h, 00h, 00h, 00h -44E4:0013 00 00 01 01 00 3F db 00h, 00h, 01h, 01h, 00h, 3Fh -44E4:0019 80 80 BF FF 00 00 db 80h, 80h,0BFh,0FFh, 00h, 00h -44E4:001F FF FC 01 01 FC 3F db 0FFh,0FCh, 01h, 01h,0FCh, 3Fh -44E4:0025 BF 80 9F FF FF 00 db 0BFh, 80h, 9Fh,0FFh,0FFh, 00h -44E4:002B FF FC F9 01 FC db 0FFh,0FCh,0F9h, 01h,0FCh -44E4:0030 3F data_1405 db 3Fh ; xref 273F:3033 -44E4:0031 BF 80 80 FF FF 00 db 0BFh, 80h, 80h,0FFh,0FFh, 00h -44E4:0037 00 FC FD 01 00 00 db 00h,0FCh,0FDh, 01h, 00h, 00h -44E4:003D 80 80 80 00 00 00 db 80h, 80h, 80h, 00h, 00h, 00h -44E4:0043 00 00 01 01 00 00 db 00h, 00h, 01h, 01h, 00h, 00h -44E4:0049 FF FF FF 00 FF FF db 0FFh,0FFh,0FFh, 00h,0FFh,0FFh -44E4:004F FF 00 FF FF FF 00 db 0FFh, 00h,0FFh,0FFh,0FFh, 00h -44E4:0055 000B[00] db 11 dup (0) - - ega_talk_frame_seg ends - - - - ;---------------------------------------------------- dialog_segment ---- - - dialog_segment segment byte public - assume cs:dialog_segment, ds:dailog_segment, ss:stack_seg_k - -44EA:0000 0010[E0] db 16 dup (0E0h) -44EA:0010 DE DF db 0DEh,0DFh -44EA:0012 000E[E1] db 14 dup (0E1h) -44EA:0020 DE DE DF E0 DF db 0DEh,0DEh,0DFh,0E0h,0DFh -44EA:0025 000C[DF] db 12 dup (0DFh) -44EA:0031 DE DE DF E0 DF db 0DEh,0DEh,0DFh,0E0h,0DFh -44EA:0036 000A[E0] db 10 dup (0E0h) -44EA:0040 DE DF DE DE DF E0 db 0DEh,0DFh,0DEh,0DEh,0DFh,0E0h -44EA:0046 DF E0 E1 db 0DFh,0E0h,0E1h -44EA:0049 0007[E1] db 7 dup (0E1h) -44EA:0050 DE DE DF DE DE DF db 0DEh,0DEh,0DFh,0DEh,0DEh,0DFh -44EA:0056 E0 DF E0 E1 db 0E0h,0DFh,0E0h,0E1h -44EA:005A 0007[DF] db 7 dup (0DFh) -44EA:0061 DE DE DF DE DE DF db 0DEh,0DEh,0DFh,0DEh,0DEh,0DFh -44EA:0067 E0 DF E0 E1 DF DE db 0E0h,0DFh,0E0h,0E1h,0DFh,0DEh -44EA:006D DE DE DE E0 DF DE db 0DEh,0DEh,0DEh,0E0h,0DFh,0DEh -44EA:0073 DE DF DE DE DF E0 db 0DEh,0DFh,0DEh,0DEh,0DFh,0E0h -44EA:0079 DF E0 E1 DF DE DD db 0DFh,0E0h,0E1h,0DFh,0DEh,0DDh -44EA:007F DD DC E1 DF DE DE db 0DDh,0DCh,0E1h,0DFh,0DEh,0DEh -44EA:0085 DF DE DE DF E0 DF db 0DFh,0DEh,0DEh,0DFh,0E0h,0DFh -44EA:008B E0 E1 DF DE DD DC db 0E0h,0E1h,0DFh,0DEh,0DDh,0DCh -44EA:0091 E0 E1 DF DE DE DF db 0E0h,0E1h,0DFh,0DEh,0DEh,0DFh -44EA:0097 DE DE DF E0 DF E0 db 0DEh,0DEh,0DFh,0E0h,0DFh,0E0h -44EA:009D E1 DF DE DD DD DC db 0E1h,0DFh,0DEh,0DDh,0DDh,0DCh -44EA:00A3 DF E0 E1 DF DE DE db 0DFh,0E0h,0E1h,0DFh,0DEh,0DEh -44EA:00A9 DF DE DE DF E0 DF db 0DFh,0DEh,0DEh,0DFh,0E0h,0DFh -44EA:00AF E0 E1 DF DE DD DC db 0E0h,0E1h,0DFh,0DEh,0DDh,0DCh -44EA:00B5 DF E0 E1 DF DE DE db 0DFh,0E0h,0E1h,0DFh,0DEh,0DEh -44EA:00BB DF DE DE DF E0 DF db 0DFh,0DEh,0DEh,0DFh,0E0h,0DFh -44EA:00C1 E0 E1 DF DE DC E0 db 0E0h,0E1h,0DFh,0DEh,0DCh,0E0h -44EA:00C7 E0 E0 E1 DF DE DE db 0E0h,0E0h,0E1h,0DFh,0DEh,0DEh -44EA:00CD DF DE DE DF E0 DF db 0DFh,0DEh,0DEh,0DFh,0E0h,0DFh -44EA:00D3 E0 E1 DF E0 E1 E1 db 0E0h,0E1h,0DFh,0E0h,0E1h,0E1h -44EA:00D9 E1 E1 E1 DF DE DE db 0E1h,0E1h,0E1h,0DFh,0DEh,0DEh -44EA:00DF DF DE DE DF E0 DF db 0DFh,0DEh,0DEh,0DFh,0E0h,0DFh -44EA:00E5 E0 E0 db 0E0h,0E0h -44EA:00E7 0008[DF] db 8 dup (0DFh) -44EA:00EF DE DE DF DE DE DF db 0DEh,0DEh,0DFh,0DEh,0DEh,0DFh -44EA:00F5 E0 DF DF db 0E0h,0DFh,0DFh -44EA:00F8 000B[DE] db 11 dup (0DEh) -44EA:0103 DF DE DE DF E0 DF db 0DFh,0DEh,0DEh,0DFh,0E0h,0DFh -44EA:0109 000B[DD] db 11 dup (0DDh) -44EA:0114 DE DF DE DE DF E0 db 0DEh,0DFh,0DEh,0DEh,0DFh,0E0h -44EA:011A DF db 0DFh -44EA:011B 000D[DF] db 13 dup (0DFh) -44EA:0128 DE DE DF db 0DEh,0DEh,0DFh -44EA:012B 0011[DE] db 17 dup (0DEh) -44EA:013C 0011[DD] db 17 dup (0DDh) -44EA:014D DE 00 00 db 0DEh, 00h, 00h - - dialog_segment ends - - - - ;--------------------------------------- vga_talk_frame_seg ---- - - vga_talk_frame_seg segment byte public - assume cs:talk_frame_seg, ds:talk_frame_seg, ss:stack_seg_k - -44FF:0000 E0 E0 E0 E0 E0 DF db 0E0h,0E0h,0E0h,0E0h,0E0h,0DFh -44FF:0006 DF E1 E1 E1 E1 DE db 0DFh,0E1h,0E1h,0E1h,0E1h,0DEh -44FF:000C DF E0 DD DF E0 DE db 0DFh,0E0h,0DDh,0DFh,0E0h,0DEh -44FF:0012 DF E0 DD DC E0 DF db 0DFh,0E0h,0DDh,0DCh,0E0h,0DFh -44FF:0018 DE DF E0 DF E0 DF db 0DEh,0DFh,0E0h,0DFh,0E0h,0DFh -44FF:001E DE DF E0 DF DF DF db 0DEh,0DFh,0E0h,0DFh,0DFh,0DFh -44FF:0024 DE DE DD DD DD DD db 0DEh,0DEh,0DDh,0DDh,0DDh,0DDh -44FF:002A DD 00 00 00 00 00 db 0DDh, 00h, 00h, 00h, 00h, 00h - - vga_talk_frame_seg ends - - - - ;------------------------------------------------- musical_note_seg ----- - ; This segment contains the raw data for the display of a 14x14 pixel - ; music note - - musical_note_seg segment byte public - - -4502:0000 0008[00] db 8 dup (0) -4502:0008 FC FA F9 F9 FC db 0FCh,0FAh,0F9h,0F9h,0FCh -4502:000D 0007[00] db 7 dup (0) -4502:0014 FC FA F9 F9 FA FA db 0FCh,0FAh,0F9h,0F9h,0FAh,0FAh -4502:001A FC 00 00 00 00 00 db 0FCh, 00h, 00h, 00h, 00h, 00h -4502:0020 FC FA F9 F9 FA FA db 0FCh,0FAh,0F9h,0F9h,0FAh,0FAh -4502:0026 FA FA FC 00 00 00 db 0FAh,0FAh,0FCh, 00h, 00h, 00h -4502:002C 00 FA F9 F9 FA FA db 00h,0FAh,0F9h,0F9h,0FAh,0FAh -4502:0032 FA FB FC FA FC 00 db 0FAh,0FBh,0FCh,0FAh,0FCh, 00h -4502:0038 00 00 00 F9 FA FA db 00h, 00h, 00h,0F9h,0FAh,0FAh -4502:003E FA FB FC FD FB FA db 0FAh,0FBh,0FCh,0FDh,0FBh,0FAh -4502:0044 FC 00 00 00 00 F9 db 0FCh, 00h, 00h, 00h, 00h,0F9h -4502:004A FA FB FC FD 00 00 db 0FAh,0FBh,0FCh,0FDh, 00h, 00h -4502:0050 FA FA FC 00 00 00 db 0FAh,0FAh,0FCh, 00h, 00h, 00h -4502:0056 00 F9 FA FC 00 00 db 00h,0F9h,0FAh,0FCh, 00h, 00h -4502:005C 00 00 F9 FA FC 00 db 00h, 00h,0F9h,0FAh,0FCh, 00h -4502:0062 00 00 00 F9 FA FC db 00h, 00h, 00h,0F9h,0FAh,0FCh -4502:0068 00 00 00 00 F9 FA db 00h, 00h, 00h, 00h,0F9h,0FAh -4502:006E FC 00 00 00 00 F9 db 0FCh, 00h, 00h, 00h, 00h,0F9h -4502:0074 FA FC 00 FB F9 F9 db 0FAh,0FCh, 00h,0FBh,0F9h,0F9h -4502:007A FA FA FC 00 00 00 db 0FAh,0FAh,0FCh, 00h, 00h, 00h -4502:0080 00 F9 FA FC 00 F9 db 00h,0F9h,0FAh,0FCh, 00h,0F9h -4502:0086 F8 F8 F9 FA FD 00 db 0F8h,0F8h,0F9h,0FAh,0FDh, 00h -4502:008C 00 00 00 F9 FA FC db 00h, 00h, 00h,0F9h,0FAh,0FCh -4502:0092 00 FB F9 F9 FA FC db 00h,0FBh,0F9h,0F9h,0FAh,0FCh -4502:0098 00 00 FB F9 F9 FA db 00h, 00h,0FBh,0F9h,0F9h,0FAh -4502:009E FA FC db 0FAh,0FCh -4502:00A0 0008[00] db 8 dup (0) -4502:00A8 F9 F8 F8 F9 FA FD db 0F9h,0F8h,0F8h,0F9h,0FAh,0FDh -4502:00AE 0008[00] db 8 dup (0) -4502:00B6 FB F9 F9 FA FC db 0FBh,0F9h,0F9h,0FAh,0FCh -4502:00BB 0015[00] db 21 dup (0) - - musical_note_seg ends - - - - ;---------------------------------------------- scripts_seg ---- - - scripts_seg segment byte public - assume cs:scripts_seg, ds:scripts_seg, ss:stack_seg_k - -450F:0000 23 00 00 21 08 00 db 23h, 00h, 00h, 21h, 08h, 00h -450F:0006 28 23 01 00 21 08 db 28h, 23h, 01h, 00h, 21h, 08h -450F:000C 00 28 23 18 00 21 db 00h, 28h, 23h, 18h, 00h, 21h -450F:0012 08 00 1F 24 00 23 db 08h, 00h, 1Fh, 24h, 00h, 23h -450F:0018 01 00 0A 2B 0C 00 db 01h, 00h, 0Ah, 2Bh, 0Ch, 00h -450F:001E 23 17 00 21 08 00 db 23h, 17h, 00h, 21h, 08h, 00h -450F:0024 23 00 00 21 24 00 db 23h, 00h, 00h, 21h, 24h, 00h -450F:002A 1F 24 00 23 02 00 db 1Fh, 24h, 00h, 23h, 02h, 00h -450F:0030 0A 2B 06 00 23 28 db 0Ah, 2Bh, 06h, 00h, 23h, 28h -450F:0036 00 21 08 00 28 23 db 00h, 21h, 08h, 00h, 28h, 23h -450F:003C 11 04 27 00 00 23 db 11h, 04h, 27h, 00h, 00h, 23h -450F:0042 13 00 23 18 04 27 db 13h, 00h, 23h, 18h, 04h, 27h -450F:0048 01 00 23 13 00 27 db 01h, 00h, 23h, 13h, 00h, 27h -450F:004E 02 00 28 1F 7A 00 db 02h, 00h, 28h, 1Fh, 7Ah, 00h -450F:0054 23 00 00 0A 2B 27 db 23h, 00h, 00h, 0Ah, 2Bh, 27h -450F:005A 00 23 01 00 21 7A db 00h, 23h, 01h, 00h, 21h, 7Ah -450F:0060 00 23 00 00 21 26 db 00h, 23h, 00h, 00h, 21h, 26h -450F:0066 00 23 08 00 27 03 db 00h, 23h, 08h, 00h, 27h, 03h -450F:006C 00 27 04 00 23 02 db 00h, 27h, 04h, 00h, 23h, 02h -450F:0072 00 27 05 00 23 F2 db 00h, 27h, 05h, 00h, 23h,0F2h -450F:0078 03 27 00 00 23 37 db 03h, 27h, 00h, 00h, 23h, 37h -450F:007E 04 27 00 00 28 1F db 04h, 27h, 00h, 00h, 28h, 1Fh -450F:0084 7C 00 23 00 00 0A db 7Ch, 00h, 23h, 00h, 00h, 0Ah -450F:008A 2B 8E 00 23 01 00 db 2Bh, 8Eh, 00h, 23h, 01h, 00h -450F:0090 21 7C 00 23 EA 03 db 21h, 7Ch, 00h, 23h,0EAh, 03h -450F:0096 27 06 00 23 02 00 db 27h, 06h, 00h, 23h, 02h, 00h -450F:009C 27 03 00 27 04 00 db 27h, 03h, 00h, 27h, 04h, 00h -450F:00A2 27 07 00 25 22 01 db 27h, 07h, 00h, 25h, 22h, 01h -450F:00A8 23 00 00 23 14 00 db 23h, 00h, 00h, 23h, 14h, 00h -450F:00AE 23 5A 2B 27 08 00 db 23h, 5Ah, 2Bh, 27h, 08h, 00h -450F:00B4 23 00 00 23 13 00 db 23h, 00h, 00h, 23h, 13h, 00h -450F:00BA 23 C2 2B 27 08 00 db 23h,0C2h, 2Bh, 27h, 08h, 00h -450F:00C0 23 19 00 27 09 00 db 23h, 19h, 00h, 27h, 09h, 00h -450F:00C6 23 01 00 21 26 00 db 23h, 01h, 00h, 21h, 26h, 00h -450F:00CC 23 01 00 21 56 00 db 23h, 01h, 00h, 21h, 56h, 00h -450F:00D2 23 01 00 21 58 00 db 23h, 01h, 00h, 21h, 58h, 00h -450F:00D8 23 01 00 21 6E 00 db 23h, 01h, 00h, 21h, 6Eh, 00h -450F:00DE 23 02 00 21 32 00 db 23h, 02h, 00h, 21h, 32h, 00h -450F:00E4 23 2A 00 21 70 00 db 23h, 2Ah, 00h, 21h, 70h, 00h -450F:00EA 23 E8 03 23 10 27 db 23h,0E8h, 03h, 23h, 10h, 27h -450F:00F0 27 0A 00 1F 0A 00 db 27h, 0Ah, 00h, 1Fh, 0Ah, 00h -450F:00F6 23 01 00 0A 2B 1E db 23h, 01h, 00h, 0Ah, 2Bh, 1Eh -450F:00FC 00 23 61 01 23 10 db 00h, 23h, 61h, 01h, 23h, 10h -450F:0102 27 27 0B 00 23 60 db 27h, 27h, 0Bh, 00h, 23h, 60h -450F:0108 01 23 10 27 27 0C db 01h, 23h, 10h, 27h, 27h, 0Ch -450F:010E 00 23 02 00 21 24 db 00h, 23h, 02h, 00h, 21h, 24h -450F:0114 00 23 01 00 21 8E db 00h, 23h, 01h, 00h, 21h, 8Eh -450F:011A 00 23 00 00 27 0D db 00h, 23h, 00h, 00h, 27h, 0Dh -450F:0120 00 28 23 EB 03 27 db 00h, 28h, 23h,0EBh, 03h, 27h -450F:0126 00 00 23 EC 03 27 db 00h, 00h, 23h,0ECh, 03h, 27h -450F:012C 00 00 23 ED 03 27 db 00h, 00h, 23h,0EDh, 03h, 27h -450F:0132 00 00 23 EE 03 27 db 00h, 00h, 23h,0EEh, 03h, 27h -450F:0138 00 00 23 EF 03 27 db 00h, 00h, 23h,0EFh, 03h, 27h -450F:013E 00 00 23 F0 03 27 db 00h, 00h, 23h,0F0h, 03h, 27h -450F:0144 00 00 23 F1 03 27 db 00h, 00h, 23h,0F1h, 03h, 27h -450F:014A 00 00 23 36 04 27 db 00h, 00h, 23h, 36h, 04h, 27h -450F:0150 00 00 23 15 27 27 db 00h, 00h, 23h, 15h, 27h, 27h -450F:0156 00 00 23 16 27 27 db 00h, 00h, 23h, 16h, 27h, 27h -450F:015C 00 00 23 17 27 27 db 00h, 00h, 23h, 17h, 27h, 27h -450F:0162 00 00 23 18 27 27 db 00h, 00h, 23h, 18h, 27h, 27h -450F:0168 00 00 23 19 27 27 db 00h, 00h, 23h, 19h, 27h, 27h -450F:016E 00 00 23 1A 27 27 db 00h, 00h, 23h, 1Ah, 27h, 27h -450F:0174 00 00 23 20 04 27 db 00h, 00h, 23h, 20h, 04h, 27h -450F:017A 00 00 23 29 04 27 db 00h, 00h, 23h, 29h, 04h, 27h -450F:0180 00 00 23 1E 27 27 db 00h, 00h, 23h, 1Eh, 27h, 27h -450F:0186 00 00 23 1F 27 27 db 00h, 00h, 23h, 1Fh, 27h, 27h -450F:018C 00 00 23 20 27 27 db 00h, 00h, 23h, 20h, 27h, 27h -450F:0192 00 00 23 21 27 27 db 00h, 00h, 23h, 21h, 27h, 27h -450F:0198 00 00 23 22 27 27 db 00h, 00h, 23h, 22h, 27h, 27h -450F:019E 00 00 23 25 27 27 db 00h, 00h, 23h, 25h, 27h, 27h -450F:01A4 00 00 23 26 27 27 db 00h, 00h, 23h, 26h, 27h, 27h -450F:01AA 00 00 28 27 0E 00 db 00h, 00h, 28h, 27h, 0Eh, 00h -450F:01B0 28 1F 8A 00 23 00 db 28h, 1Fh, 8Ah, 00h, 23h, 00h -450F:01B6 00 0A 2B 1B 00 23 db 00h, 0Ah, 2Bh, 1Bh, 00h, 23h -450F:01BC 03 00 27 05 00 27 db 03h, 00h, 27h, 05h, 00h, 27h -450F:01C2 0F 00 23 01 00 21 db 0Fh, 00h, 23h, 01h, 00h, 21h -450F:01C8 8A 00 23 01 00 23 db 8Ah, 00h, 23h, 01h, 00h, 23h -450F:01CE 01 00 23 D7 01 27 db 01h, 00h, 23h,0D7h, 01h, 27h -450F:01D4 08 00 28 23 9C 0C db 08h, 00h, 28h, 23h, 9Ch, 0Ch -450F:01DA 27 10 00 28 1F 8C db 27h, 10h, 00h, 28h, 1Fh, 8Ch -450F:01E0 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:01E6 15 00 27 11 00 23 db 15h, 00h, 27h, 11h, 00h, 23h -450F:01EC 01 00 21 8C 00 23 db 01h, 00h, 21h, 8Ch, 00h, 23h -450F:01F2 01 00 23 01 00 23 db 01h, 00h, 23h, 01h, 00h, 23h -450F:01F8 FE 01 27 08 00 28 db 0FEh, 01h, 27h, 08h, 00h, 28h -450F:01FE 23 16 10 27 10 00 db 23h, 16h, 10h, 27h, 10h, 00h -450F:0204 28 25 22 01 23 E9 db 28h, 25h, 22h, 01h, 23h,0E9h -450F:020A 03 27 00 00 1F 4A db 03h, 27h, 00h, 00h, 1Fh, 4Ah -450F:0210 00 23 01 00 0A 2B db 00h, 23h, 01h, 00h, 0Ah, 2Bh -450F:0216 06 00 23 02 00 21 db 06h, 00h, 23h, 02h, 00h, 21h -450F:021C 4A 00 28 1F 02 00 db 4Ah, 00h, 28h, 1Fh, 02h, 00h -450F:0222 23 E8 03 0C 2B 09 db 23h,0E8h, 03h, 0Ch, 2Bh, 09h -450F:0228 00 23 2A 00 21 08 db 00h, 23h, 2Ah, 00h, 21h, 08h -450F:022E 00 2D 09 00 23 04 db 00h, 2Dh, 09h, 00h, 23h, 04h -450F:0234 00 21 0E 00 27 12 db 00h, 21h, 0Eh, 00h, 27h, 12h -450F:023A 00 28 1F 02 00 23 db 00h, 28h, 1Fh, 02h, 00h, 23h -450F:0240 E8 03 0C 2B 09 00 db 0E8h, 03h, 0Ch, 2Bh, 09h, 00h -450F:0246 23 2A 00 21 08 00 db 23h, 2Ah, 00h, 21h, 08h, 00h -450F:024C 2D 09 00 23 23 00 db 2Dh, 09h, 00h, 23h, 23h, 00h -450F:0252 21 0E 00 27 12 00 db 21h, 0Eh, 00h, 27h, 12h, 00h -450F:0258 28 1F 12 00 23 01 db 28h, 1Fh, 12h, 00h, 23h, 01h -450F:025E 00 0A 2B 22 00 1F db 00h, 0Ah, 2Bh, 22h, 00h, 1Fh -450F:0264 02 00 23 E9 03 0C db 02h, 00h, 23h,0E9h, 03h, 0Ch -450F:026A 2B 09 00 23 06 00 db 2Bh, 09h, 00h, 23h, 06h, 00h -450F:0270 21 08 00 2D 0F 00 db 21h, 08h, 00h, 2Dh, 0Fh, 00h -450F:0276 23 73 01 23 E9 03 db 23h, 73h, 01h, 23h,0E9h, 03h -450F:027C 27 13 00 23 01 00 db 27h, 13h, 00h, 23h, 01h, 00h -450F:0282 21 08 00 28 1F 02 db 21h, 08h, 00h, 28h, 1Fh, 02h -450F:0288 00 23 EA 03 0A 2B db 00h, 23h,0EAh, 03h, 0Ah, 2Bh -450F:028E 06 00 23 00 00 21 db 06h, 00h, 23h, 00h, 00h, 21h -450F:0294 12 00 1F 12 00 23 db 12h, 00h, 1Fh, 12h, 00h, 23h -450F:029A 01 00 0A 2B 09 00 db 01h, 00h, 0Ah, 2Bh, 09h, 00h -450F:02A0 23 06 00 21 08 00 db 23h, 06h, 00h, 21h, 08h, 00h -450F:02A6 2D 0D 00 1F 02 00 db 2Dh, 0Dh, 00h, 1Fh, 02h, 00h -450F:02AC 23 E8 03 0A 2B 03 db 23h,0E8h, 03h, 0Ah, 2Bh, 03h -450F:02B2 00 27 14 00 28 1F db 00h, 27h, 14h, 00h, 28h, 1Fh -450F:02B8 02 00 23 EA 03 0A db 02h, 00h, 23h,0EAh, 03h, 0Ah -450F:02BE 2B 06 00 23 01 00 db 2Bh, 06h, 00h, 23h, 01h, 00h -450F:02C4 21 12 00 23 15 00 db 21h, 12h, 00h, 23h, 15h, 00h -450F:02CA 27 15 00 28 23 11 db 27h, 15h, 00h, 28h, 23h, 11h -450F:02D0 27 27 16 00 1F 0A db 27h, 27h, 16h, 00h, 1Fh, 0Ah -450F:02D6 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:02DC 09 00 23 88 00 27 db 09h, 00h, 23h, 88h, 00h, 27h -450F:02E2 10 00 2D 10 00 1F db 10h, 00h, 2Dh, 10h, 00h, 1Fh -450F:02E8 02 00 23 E8 03 0A db 02h, 00h, 23h,0E8h, 03h, 0Ah -450F:02EE 2B 06 00 23 87 00 db 2Bh, 06h, 00h, 23h, 87h, 00h -450F:02F4 27 10 00 28 23 11 db 27h, 10h, 00h, 28h, 23h, 11h -450F:02FA 27 27 16 00 1F 0A db 27h, 27h, 16h, 00h, 1Fh, 0Ah -450F:0300 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:0306 13 00 1F 02 00 23 db 13h, 00h, 1Fh, 02h, 00h, 23h -450F:030C E8 03 0A 2B 06 00 db 0E8h, 03h, 0Ah, 2Bh, 06h, 00h -450F:0312 23 88 00 27 10 00 db 23h, 88h, 00h, 27h, 10h, 00h -450F:0318 2D 09 00 25 8B 03 db 2Dh, 09h, 00h, 25h, 8Bh, 03h -450F:031E 23 01 00 21 12 00 db 23h, 01h, 00h, 21h, 12h, 00h -450F:0324 28 23 11 27 27 16 db 28h, 23h, 11h, 27h, 27h, 16h -450F:032A 00 1F 0A 00 23 00 db 00h, 1Fh, 0Ah, 00h, 23h, 00h -450F:0330 00 0A 2B 13 00 1F db 00h, 0Ah, 2Bh, 13h, 00h, 1Fh -450F:0336 02 00 23 E8 03 0A db 02h, 00h, 23h,0E8h, 03h, 0Ah -450F:033C 2B 06 00 23 88 00 db 2Bh, 06h, 00h, 23h, 88h, 00h -450F:0342 27 10 00 2D 42 00 db 27h, 10h, 00h, 2Dh, 42h, 00h -450F:0348 1F 02 00 23 E8 03 db 1Fh, 02h, 00h, 23h,0E8h, 03h -450F:034E 0A 2B 22 00 1F 12 db 0Ah, 2Bh, 22h, 00h, 1Fh, 12h -450F:0354 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:035A 09 00 23 6A 01 27 db 09h, 00h, 23h, 6Ah, 01h, 27h -450F:0360 10 00 2D 0C 00 23 db 10h, 00h, 2Dh, 0Ch, 00h, 23h -450F:0366 19 00 27 0D 00 23 db 19h, 00h, 27h, 0Dh, 00h, 23h -450F:036C 69 01 27 10 00 2D db 69h, 01h, 27h, 10h, 00h, 2Dh -450F:0372 10 00 1F 12 00 23 db 10h, 00h, 1Fh, 12h, 00h, 23h -450F:0378 01 00 0A 2B 06 00 db 01h, 00h, 0Ah, 2Bh, 06h, 00h -450F:037E 23 19 00 27 0D 00 db 23h, 19h, 00h, 27h, 0Dh, 00h -450F:0384 23 00 00 21 12 00 db 23h, 00h, 00h, 21h, 12h, 00h -450F:038A 28 1F 02 00 23 E8 db 28h, 1Fh, 02h, 00h, 23h,0E8h -450F:0390 03 0A 2B 4E 00 27 db 03h, 0Ah, 2Bh, 4Eh, 00h, 27h -450F:0396 17 00 1F 0A 00 23 db 17h, 00h, 1Fh, 0Ah, 00h, 23h -450F:039C 00 00 0A 2B 22 00 db 00h, 00h, 0Ah, 2Bh, 22h, 00h -450F:03A2 1F 12 00 23 00 00 db 1Fh, 12h, 00h, 23h, 00h, 00h -450F:03A8 0A 2B 0F 00 23 19 db 0Ah, 2Bh, 0Fh, 00h, 23h, 19h -450F:03AE 00 27 0D 00 23 D2 db 00h, 27h, 0Dh, 00h, 23h,0D2h -450F:03B4 00 27 10 00 2D 06 db 00h, 27h, 10h, 00h, 2Dh, 06h -450F:03BA 00 23 68 01 27 10 db 00h, 23h, 68h, 01h, 27h, 10h -450F:03C0 00 2D 1F 00 1F 12 db 00h, 2Dh, 1Fh, 00h, 1Fh, 12h -450F:03C6 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:03CC 0F 00 23 19 00 27 db 0Fh, 00h, 23h, 19h, 00h, 27h -450F:03D2 0D 00 23 43 01 27 db 0Dh, 00h, 23h, 43h, 01h, 27h -450F:03D8 10 00 2D 06 00 23 db 10h, 00h, 2Dh, 06h, 00h, 23h -450F:03DE 68 01 27 10 00 28 db 68h, 01h, 27h, 10h, 00h, 28h -450F:03E4 1F 14 00 23 00 00 db 1Fh, 14h, 00h, 23h, 00h, 00h -450F:03EA 0A 2B 24 00 23 0F db 0Ah, 2Bh, 24h, 00h, 23h, 0Fh -450F:03F0 04 27 06 00 23 38 db 04h, 27h, 06h, 00h, 23h, 38h -450F:03F6 75 27 06 00 23 0E db 75h, 27h, 06h, 00h, 23h, 0Eh -450F:03FC 04 27 00 00 23 01 db 04h, 27h, 00h, 00h, 23h, 01h -450F:0402 00 21 14 00 23 A8 db 00h, 21h, 14h, 00h, 23h,0A8h -450F:0408 00 27 10 00 23 01 db 00h, 27h, 10h, 00h, 23h, 01h -450F:040E 00 21 08 00 28 1F db 00h, 21h, 08h, 00h, 28h, 1Fh -450F:0414 02 00 23 E8 03 0A db 02h, 00h, 23h,0E8h, 03h, 0Ah -450F:041A 2B 09 00 23 01 10 db 2Bh, 09h, 00h, 23h, 01h, 10h -450F:0420 27 10 00 2D 09 00 db 27h, 10h, 00h, 2Dh, 09h, 00h -450F:0426 23 1B 10 1F 02 00 db 23h, 1Bh, 10h, 1Fh, 02h, 00h -450F:042C 27 13 00 28 1F 02 db 27h, 13h, 00h, 28h, 1Fh, 02h -450F:0432 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:0438 0F 00 23 F7 0F 27 db 0Fh, 00h, 23h,0F7h, 0Fh, 27h -450F:043E 10 00 23 01 00 21 db 10h, 00h, 23h, 01h, 00h, 21h -450F:0444 08 00 2D 06 00 23 db 08h, 00h, 2Dh, 06h, 00h, 23h -450F:044A 11 00 21 08 00 28 db 11h, 00h, 21h, 08h, 00h, 28h -450F:0450 23 11 00 21 08 00 db 23h, 11h, 00h, 21h, 08h, 00h -450F:0456 1F 04 00 23 36 27 db 1Fh, 04h, 00h, 23h, 36h, 27h -450F:045C 0A 2B 3D 00 1F 02 db 0Ah, 2Bh, 3Dh, 00h, 1Fh, 02h -450F:0462 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:0468 06 00 23 E5 0F 27 db 06h, 00h, 23h,0E5h, 0Fh, 27h -450F:046E 10 00 23 4D 75 27 db 10h, 00h, 23h, 4Dh, 75h, 27h -450F:0474 06 00 23 E4 0F 23 db 06h, 00h, 23h,0E4h, 0Fh, 23h -450F:047A 4E 75 27 0B 00 23 db 4Eh, 75h, 27h, 0Bh, 00h, 23h -450F:0480 39 04 27 00 00 23 db 39h, 04h, 27h, 00h, 00h, 23h -450F:0486 01 00 21 7E 00 23 db 01h, 00h, 21h, 7Eh, 00h, 23h -450F:048C 00 00 21 08 00 23 db 00h, 00h, 21h, 08h, 00h, 23h -450F:0492 00 00 23 5F 00 23 db 00h, 00h, 23h, 5Fh, 00h, 23h -450F:0498 9E 04 27 08 00 28 db 9Eh, 04h, 27h, 08h, 00h, 28h -450F:049E 1F 80 00 23 01 00 db 1Fh, 80h, 00h, 23h, 01h, 00h -450F:04A4 0A 2B 0C 00 23 04 db 0Ah, 2Bh, 0Ch, 00h, 23h, 04h -450F:04AA 00 23 38 04 27 01 db 00h, 23h, 38h, 04h, 27h, 01h -450F:04B0 00 2D 09 00 23 05 db 00h, 2Dh, 09h, 00h, 23h, 05h -450F:04B6 00 23 39 04 27 01 db 00h, 23h, 39h, 04h, 27h, 01h -450F:04BC 00 23 02 00 21 7E db 00h, 23h, 02h, 00h, 21h, 7Eh -450F:04C2 00 23 FB 0F 23 4E db 00h, 23h,0FBh, 0Fh, 23h, 4Eh -450F:04C8 75 27 0B 00 23 2D db 75h, 27h, 0Bh, 00h, 23h, 2Dh -450F:04CE 00 27 15 00 28 1F db 00h, 27h, 15h, 00h, 28h, 1Fh -450F:04D4 9C 00 23 00 00 0A db 9Ch, 00h, 23h, 00h, 00h, 0Ah -450F:04DA 2B 0C 00 23 01 00 db 2Bh, 0Ch, 00h, 23h, 01h, 00h -450F:04E0 23 3C 00 23 EA 04 db 23h, 3Ch, 00h, 23h,0EAh, 04h -450F:04E6 27 08 00 28 23 0E db 27h, 08h, 00h, 28h, 23h, 0Eh -450F:04EC 00 23 53 04 27 01 db 00h, 23h, 53h, 04h, 27h, 01h -450F:04F2 00 23 01 00 21 9C db 00h, 23h, 01h, 00h, 21h, 9Ch -450F:04F8 00 28 23 D6 00 23 db 00h, 28h, 23h,0D6h, 00h, 23h -450F:04FE E8 03 27 13 00 28 db 0E8h, 03h, 27h, 13h, 00h, 28h -450F:0504 1F 02 00 23 E8 03 db 1Fh, 02h, 00h, 23h,0E8h, 03h -450F:050A 0A 2B 0F 00 23 A9 db 0Ah, 2Bh, 0Fh, 00h, 23h,0A9h -450F:0510 00 27 10 00 23 01 db 00h, 27h, 10h, 00h, 23h, 01h -450F:0516 00 21 08 00 2D 03 db 00h, 21h, 08h, 00h, 2Dh, 03h -450F:051C 00 27 18 00 28 25 db 00h, 27h, 18h, 00h, 28h, 25h -450F:0522 1F 02 1F 0E 00 23 db 1Fh, 02h, 1Fh, 0Eh, 00h, 23h -450F:0528 00 00 0C 2B 06 00 db 00h, 00h, 0Ch, 2Bh, 06h, 00h -450F:052E 23 01 00 21 0E 00 db 23h, 01h, 00h, 21h, 0Eh, 00h -450F:0534 1F 02 00 23 E9 03 db 1Fh, 02h, 00h, 23h,0E9h, 03h -450F:053A 0A 2B 16 00 27 17 db 0Ah, 2Bh, 16h, 00h, 27h, 17h -450F:0540 00 1F 0A 00 23 00 db 00h, 1Fh, 0Ah, 00h, 23h, 00h -450F:0546 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:054C 9D 00 23 E9 03 27 db 9Dh, 00h, 23h,0E9h, 03h, 27h -450F:0552 13 00 28 1F 02 00 db 13h, 00h, 28h, 1Fh, 02h, 00h -450F:0558 23 E9 03 0A 2B 18 db 23h,0E9h, 03h, 0Ah, 2Bh, 18h -450F:055E 00 23 08 00 23 F3 db 00h, 23h, 08h, 00h, 23h,0F3h -450F:0564 00 23 0C 01 27 19 db 00h, 23h, 0Ch, 01h, 27h, 19h -450F:056A 00 27 1A 00 23 14 db 00h, 27h, 1Ah, 00h, 23h, 14h -450F:0570 27 27 06 00 2D 18 db 27h, 27h, 06h, 00h, 2Dh, 18h -450F:0576 00 23 00 00 27 05 db 00h, 23h, 00h, 00h, 27h, 05h -450F:057C 00 23 07 00 23 80 db 00h, 23h, 07h, 00h, 23h, 80h -450F:0582 00 23 88 00 27 19 db 00h, 23h, 88h, 00h, 27h, 19h -450F:0588 00 23 01 00 21 98 db 00h, 23h, 01h, 00h, 21h, 98h -450F:058E 00 28 1F 84 00 23 db 00h, 28h, 1Fh, 84h, 00h, 23h -450F:0594 00 00 0A 2B 17 00 db 00h, 00h, 0Ah, 2Bh, 17h, 00h -450F:059A 23 2F 00 23 00 20 db 23h, 2Fh, 00h, 23h, 00h, 20h -450F:05A0 02 23 9A 01 23 40 db 02h, 23h, 9Ah, 01h, 23h, 40h -450F:05A6 01 23 08 00 04 27 db 01h, 23h, 08h, 00h, 04h, 27h -450F:05AC 19 00 2D 14 00 23 db 19h, 00h, 2Dh, 14h, 00h, 23h -450F:05B2 31 00 23 00 20 02 db 31h, 00h, 23h, 00h, 20h, 02h -450F:05B8 23 9A 01 23 40 01 db 23h, 9Ah, 01h, 23h, 40h, 01h -450F:05BE 23 08 00 04 27 19 db 23h, 08h, 00h, 04h, 27h, 19h -450F:05C4 00 28 1F 02 00 23 db 00h, 28h, 1Fh, 02h, 00h, 23h -450F:05CA E8 03 0A 1F 1C 00 db 0E8h, 03h, 0Ah, 1Fh, 1Ch, 00h -450F:05D0 23 00 00 0A 1A 2B db 23h, 00h, 00h, 0Ah, 1Ah, 2Bh -450F:05D6 19 00 1F 20 00 23 db 19h, 00h, 1Fh, 20h, 00h, 23h -450F:05DC 00 00 0A 2B 0F 00 db 00h, 00h, 0Ah, 2Bh, 0Fh, 00h -450F:05E2 23 01 00 21 20 00 db 23h, 01h, 00h, 21h, 20h, 00h -450F:05E8 23 98 00 23 11 04 db 23h, 98h, 00h, 23h, 11h, 04h -450F:05EE 27 13 00 28 1F 02 db 27h, 13h, 00h, 28h, 1Fh, 02h -450F:05F4 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:05FA 53 00 1F 84 00 23 db 53h, 00h, 1Fh, 84h, 00h, 23h -450F:0600 00 00 0A 2B 40 00 db 00h, 00h, 0Ah, 2Bh, 40h, 00h -450F:0606 1F 82 00 23 01 00 db 1Fh, 82h, 00h, 23h, 01h, 00h -450F:060C 0A 2B 2D 00 23 06 db 0Ah, 2Bh, 2Dh, 00h, 23h, 06h -450F:0612 00 23 E8 03 27 1B db 00h, 23h,0E8h, 03h, 27h, 1Bh -450F:0618 00 23 07 00 23 3A db 00h, 23h, 07h, 00h, 23h, 3Ah -450F:061E 04 27 01 00 23 07 db 04h, 27h, 01h, 00h, 23h, 07h -450F:0624 00 23 3B 04 27 01 db 00h, 23h, 3Bh, 04h, 27h, 01h -450F:062A 00 23 07 00 23 3C db 00h, 23h, 07h, 00h, 23h, 3Ch -450F:0630 04 27 01 00 23 01 db 04h, 27h, 01h, 00h, 23h, 01h -450F:0636 00 21 84 00 2D 06 db 00h, 21h, 84h, 00h, 2Dh, 06h -450F:063C 00 23 EC 0F 27 10 db 00h, 23h,0ECh, 0Fh, 27h, 10h -450F:0642 00 2D 06 00 23 EC db 00h, 2Dh, 06h, 00h, 23h,0ECh -450F:0648 0F 27 10 00 2D 09 db 0Fh, 27h, 10h, 00h, 2Dh, 09h -450F:064E 00 23 EE 0F 1F 02 db 00h, 23h,0EEh, 0Fh, 1Fh, 02h -450F:0654 00 27 13 00 28 23 db 00h, 27h, 13h, 00h, 28h, 23h -450F:065A 11 00 21 08 00 1F db 11h, 00h, 21h, 08h, 00h, 1Fh -450F:0660 04 00 23 35 27 0A db 04h, 00h, 23h, 35h, 27h, 0Ah -450F:0666 2B 25 00 23 01 00 db 2Bh, 25h, 00h, 23h, 01h, 00h -450F:066C 21 9A 00 23 00 00 db 21h, 9Ah, 00h, 23h, 00h, 00h -450F:0672 21 08 00 23 35 27 db 21h, 08h, 00h, 23h, 35h, 27h -450F:0678 27 06 00 1F 02 00 db 27h, 06h, 00h, 1Fh, 02h, 00h -450F:067E 23 E8 03 0A 2B 09 db 23h,0E8h, 03h, 0Ah, 2Bh, 09h -450F:0684 00 23 11 10 27 10 db 00h, 23h, 11h, 10h, 27h, 10h -450F:068A 00 27 1C 00 28 1F db 00h, 27h, 1Ch, 00h, 28h, 1Fh -450F:0690 9A 00 23 01 00 0A db 9Ah, 00h, 23h, 01h, 00h, 0Ah -450F:0696 2B 3D 00 1F 02 00 db 2Bh, 3Dh, 00h, 1Fh, 02h, 00h -450F:069C 23 E8 03 0A 2B 0C db 23h,0E8h, 03h, 0Ah, 2Bh, 0Ch -450F:06A2 00 23 08 00 23 E8 db 00h, 23h, 08h, 00h, 23h,0E8h -450F:06A8 03 27 1B 00 2D 09 db 03h, 27h, 1Bh, 00h, 2Dh, 09h -450F:06AE 00 23 09 00 1F 02 db 00h, 23h, 09h, 00h, 1Fh, 02h -450F:06B4 00 27 1B 00 23 0A db 00h, 27h, 1Bh, 00h, 23h, 0Ah -450F:06BA 00 23 3D 04 27 01 db 00h, 23h, 3Dh, 04h, 27h, 01h -450F:06C0 00 23 01 00 21 82 db 00h, 23h, 01h, 00h, 21h, 82h -450F:06C6 00 23 00 00 23 05 db 00h, 23h, 00h, 00h, 23h, 05h -450F:06CC 00 23 F6 06 27 08 db 00h, 23h,0F6h, 06h, 27h, 08h -450F:06D2 00 2D 1F 00 1F 02 db 00h, 2Dh, 1Fh, 00h, 1Fh, 02h -450F:06D8 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:06DE 09 00 23 0F 10 27 db 09h, 00h, 23h, 0Fh, 10h, 27h -450F:06E4 10 00 2D 0C 00 23 db 10h, 00h, 2Dh, 0Ch, 00h, 23h -450F:06EA 10 10 23 E8 03 23 db 10h, 10h, 23h,0E8h, 03h, 23h -450F:06F0 F2 03 27 1D 00 28 db 0F2h, 03h, 27h, 1Dh, 00h, 28h -450F:06F6 23 00 00 21 82 00 db 23h, 00h, 00h, 21h, 82h, 00h -450F:06FC 28 23 01 00 21 20 db 28h, 23h, 01h, 00h, 21h, 20h -450F:0702 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:0708 00 28 23 01 00 21 db 00h, 28h, 23h, 01h, 00h, 21h -450F:070E 20 00 1F 1C 00 23 db 20h, 00h, 1Fh, 1Ch, 00h, 23h -450F:0714 00 00 0C 2B 09 00 db 00h, 00h, 0Ch, 2Bh, 09h, 00h -450F:071A 23 11 00 21 08 00 db 23h, 11h, 00h, 21h, 08h, 00h -450F:0720 2D 89 00 23 01 00 db 2Dh, 89h, 00h, 23h, 01h, 00h -450F:0726 23 11 04 27 1E 00 db 23h, 11h, 04h, 27h, 1Eh, 00h -450F:072C 1F 02 00 23 EA 03 db 1Fh, 02h, 00h, 23h,0EAh, 03h -450F:0732 0A 2B 24 00 23 00 db 0Ah, 2Bh, 24h, 00h, 23h, 00h -450F:0738 00 23 EA 03 27 1B db 00h, 23h,0EAh, 03h, 27h, 1Bh -450F:073E 00 23 97 00 23 11 db 00h, 23h, 97h, 00h, 23h, 11h -450F:0744 04 23 EA 03 27 1F db 04h, 23h,0EAh, 03h, 27h, 1Fh -450F:074A 00 23 96 00 23 EA db 00h, 23h, 96h, 00h, 23h,0EAh -450F:0750 03 23 11 04 27 1D db 03h, 23h, 11h, 04h, 27h, 1Dh -450F:0756 00 2D 52 00 23 14 db 00h, 2Dh, 52h, 00h, 23h, 14h -450F:075C 00 23 E8 03 27 1B db 00h, 23h,0E8h, 03h, 27h, 1Bh -450F:0762 00 1F 78 00 23 00 db 00h, 1Fh, 78h, 00h, 23h, 00h -450F:0768 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:076E ED 0A 23 11 04 27 db 0EDh, 0Ah, 23h, 11h, 04h, 27h -450F:0774 13 00 1F 78 00 23 db 13h, 00h, 1Fh, 78h, 00h, 23h -450F:077A 01 00 0A 2B 09 00 db 01h, 00h, 0Ah, 2Bh, 09h, 00h -450F:0780 23 EE 0A 23 11 04 db 23h,0EEh, 0Ah, 23h, 11h, 04h -450F:0786 27 13 00 1F 78 00 db 27h, 13h, 00h, 1Fh, 78h, 00h -450F:078C 23 01 00 02 21 78 db 23h, 01h, 00h, 02h, 21h, 78h -450F:0792 00 1F 78 00 23 02 db 00h, 1Fh, 78h, 00h, 23h, 02h -450F:0798 00 0A 2B 0F 00 23 db 00h, 0Ah, 2Bh, 0Fh, 00h, 23h -450F:079E 02 00 21 1C 00 23 db 02h, 00h, 21h, 1Ch, 00h, 23h -450F:07A4 F0 0A 23 11 04 27 db 0F0h, 0Ah, 23h, 11h, 04h, 27h -450F:07AA 0B 00 28 23 11 00 db 0Bh, 00h, 28h, 23h, 11h, 00h -450F:07B0 21 08 00 1F 04 00 db 21h, 08h, 00h, 1Fh, 04h, 00h -450F:07B6 23 13 27 0A 2B 3A db 23h, 13h, 27h, 0Ah, 2Bh, 3Ah -450F:07BC 00 23 00 00 21 08 db 00h, 23h, 00h, 00h, 21h, 08h -450F:07C2 00 23 35 75 27 06 db 00h, 23h, 35h, 75h, 27h, 06h -450F:07C8 00 1F 1C 00 23 00 db 00h, 1Fh, 1Ch, 00h, 23h, 00h -450F:07CE 00 0A 2B 1E 00 23 db 00h, 0Ah, 2Bh, 1Eh, 00h, 23h -450F:07D4 01 00 21 1C 00 23 db 01h, 00h, 21h, 1Ch, 00h, 23h -450F:07DA 1A 00 27 0D 00 23 db 1Ah, 00h, 27h, 0Dh, 00h, 23h -450F:07E0 03 00 23 11 04 27 db 03h, 00h, 23h, 11h, 04h, 27h -450F:07E6 1E 00 23 11 04 27 db 1Eh, 00h, 23h, 11h, 04h, 27h -450F:07EC 20 00 2D 06 00 23 db 20h, 00h, 2Dh, 06h, 00h, 23h -450F:07F2 6F 01 27 10 00 28 db 6Fh, 01h, 27h, 10h, 00h, 28h -450F:07F8 23 11 00 21 08 00 db 23h, 11h, 00h, 21h, 08h, 00h -450F:07FE 1F 04 00 23 10 27 db 1Fh, 04h, 00h, 23h, 10h, 27h -450F:0804 0A 2B 3B 00 1F 24 db 0Ah, 2Bh, 3Bh, 00h, 1Fh, 24h -450F:080A 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:0810 2B 00 23 01 00 21 db 2Bh, 00h, 23h, 01h, 00h, 21h -450F:0816 24 00 23 00 00 21 db 24h, 00h, 23h, 00h, 00h, 21h -450F:081C 08 00 23 04 00 27 db 08h, 00h, 23h, 04h, 00h, 27h -450F:0822 0D 00 1F 02 00 23 db 0Dh, 00h, 1Fh, 02h, 00h, 23h -450F:0828 E8 03 0A 2B 0C 00 db 0E8h, 03h, 0Ah, 2Bh, 0Ch, 00h -450F:082E 23 ED 00 27 10 00 db 23h,0EDh, 00h, 27h, 10h, 00h -450F:0834 23 04 00 27 15 00 db 23h, 04h, 00h, 27h, 15h, 00h -450F:083A 2D 06 00 23 1C 00 db 2Dh, 06h, 00h, 23h, 1Ch, 00h -450F:0840 21 08 00 28 23 11 db 21h, 08h, 00h, 28h, 23h, 11h -450F:0846 00 21 08 00 1F 04 db 00h, 21h, 08h, 00h, 1Fh, 04h -450F:084C 00 23 13 27 0A 2B db 00h, 23h, 13h, 27h, 0Ah, 2Bh -450F:0852 2F 00 1F 28 00 23 db 2Fh, 00h, 1Fh, 28h, 00h, 23h -450F:0858 00 00 0A 2B 25 00 db 00h, 00h, 0Ah, 2Bh, 25h, 00h -450F:085E 23 01 00 21 28 00 db 23h, 01h, 00h, 21h, 28h, 00h -450F:0864 23 00 00 21 08 00 db 23h, 00h, 00h, 21h, 08h, 00h -450F:086A 27 21 00 23 1A 00 db 27h, 21h, 00h, 23h, 1Ah, 00h -450F:0870 27 0D 00 1F 02 00 db 27h, 0Dh, 00h, 1Fh, 02h, 00h -450F:0876 23 E8 03 0A 2B 06 db 23h,0E8h, 03h, 0Ah, 2Bh, 06h -450F:087C 00 23 F0 00 27 10 db 00h, 23h,0F0h, 00h, 27h, 10h -450F:0882 00 28 23 01 00 21 db 00h, 28h, 23h, 01h, 00h, 21h -450F:0888 08 00 1F 28 00 23 db 08h, 00h, 1Fh, 28h, 00h, 23h -450F:088E 00 00 0A 2B 06 00 db 00h, 00h, 0Ah, 2Bh, 06h, 00h -450F:0894 23 00 00 21 08 00 db 23h, 00h, 00h, 21h, 08h, 00h -450F:089A 1F 28 00 23 02 00 db 1Fh, 28h, 00h, 23h, 02h, 00h -450F:08A0 0A 2B 06 00 23 D8 db 0Ah, 2Bh, 06h, 00h, 23h,0D8h -450F:08A6 00 27 10 00 1F 28 db 00h, 27h, 10h, 00h, 1Fh, 28h -450F:08AC 00 23 01 00 0A 2B db 00h, 23h, 01h, 00h, 0Ah, 2Bh -450F:08B2 15 00 23 0B 01 27 db 15h, 00h, 23h, 0Bh, 01h, 27h -450F:08B8 10 00 23 01 00 1F db 10h, 00h, 23h, 01h, 00h, 1Fh -450F:08BE 02 00 27 22 00 23 db 02h, 00h, 27h, 22h, 00h, 23h -450F:08C4 02 00 21 28 00 28 db 02h, 00h, 21h, 28h, 00h, 28h -450F:08CA 27 17 00 1F 0A 00 db 27h, 17h, 00h, 1Fh, 0Ah, 00h -450F:08D0 23 00 00 0C 2B 0C db 23h, 00h, 00h, 0Ch, 2Bh, 0Ch -450F:08D6 00 23 01 00 21 08 db 00h, 23h, 01h, 00h, 21h, 08h -450F:08DC 00 23 44 01 27 10 db 00h, 23h, 44h, 01h, 27h, 10h -450F:08E2 00 28 23 1E 00 21 db 00h, 28h, 23h, 1Eh, 00h, 21h -450F:08E8 08 00 1F 28 00 23 db 08h, 00h, 1Fh, 28h, 00h, 23h -450F:08EE 00 00 0C 2B 06 00 db 00h, 00h, 0Ch, 2Bh, 06h, 00h -450F:08F4 23 33 00 21 08 00 db 23h, 33h, 00h, 21h, 08h, 00h -450F:08FA 28 23 01 00 1F 02 db 28h, 23h, 01h, 00h, 1Fh, 02h -450F:0900 00 27 1B 00 28 1F db 00h, 27h, 1Bh, 00h, 28h, 1Fh -450F:0906 30 00 23 00 00 0A db 30h, 00h, 23h, 00h, 00h, 0Ah -450F:090C 2B 09 00 23 06 00 db 2Bh, 09h, 00h, 23h, 06h, 00h -450F:0912 21 08 00 2D 06 00 db 21h, 08h, 00h, 2Dh, 06h, 00h -450F:0918 23 3C 75 27 20 00 db 23h, 3Ch, 75h, 27h, 20h, 00h -450F:091E 28 23 3C 75 27 23 db 28h, 23h, 3Ch, 75h, 27h, 23h -450F:0924 00 1F 02 00 23 F1 db 00h, 1Fh, 02h, 00h, 23h,0F1h -450F:092A 03 0A 2B 06 00 23 db 03h, 0Ah, 2Bh, 06h, 00h, 23h -450F:0930 00 00 21 30 00 28 db 00h, 00h, 21h, 30h, 00h, 28h -450F:0936 1F 02 00 23 E9 03 db 1Fh, 02h, 00h, 23h,0E9h, 03h -450F:093C 0A 2B 34 00 23 E9 db 0Ah, 2Bh, 34h, 00h, 23h,0E9h -450F:0942 03 db 03h -450F:0943 loc_2367: -450F:0943 23 1B and bx,[bp+di] -450F:0945 27 daa ; Decimal adjust -450F:0946 27 daa ; Decimal adjust -450F:0947 0A 00 or al,[bx+si] -450F:0949 1F pop ds -450F:094A 0A 00 or al,[bx+si] -450F:094C 23 01 and ax,[bx+di] -450F:094E 00 0A add [bp+si],cl -450F:0950 2B 12 sub dx,[bp+si] -450F:0952 00 23 add [bp+di],ah -450F:0954 01 00 add [bx+si],ax -450F:0956 21 30 and [bx+si],si -450F:0958 00 23 add [bp+di],ah -450F:095A 35 1F08 xor ax,1F08h -450F:095D 02 00 add al,[bx+si] -450F:095F 27 daa ; Decimal adjust -450F:0960 13 00 adc ax,[bx+si] -450F:0962 2D 000C sub ax,0Ch -450F:0965 23 00 and ax,[bx+si] -450F:0967 00 1F add [bx],bl -450F:0969 02 00 add al,[bx+si] -450F:096B 23 2A and bp,[bp+si] -450F:096D 00 27 add [bx],ah -450F:096F 24 00 and al,0 -450F:0971 2D 000C sub ax,0Ch -450F:0974 23 00 and ax,[bx+si] -450F:0976 00 1F add [bx],bl -450F:0978 02 00 add al,[bx+si] -450F:097A 23 2A and bp,[bp+si] -450F:097C 00 27 add [bx],ah -450F:097E 24 00 and al,0 -450F:0980 28 23 sub [bp+di],ah -450F:0982 11 00 adc [bx+si],ax -450F:0984 21 08 and [bx+si],cx -450F:0986 00 1F add [bx],bl -450F:0988 04 00 add al,0 -450F:098A 23 1B and bx,[bp+di] -450F:098C 27 daa ; Decimal adjust -450F:098D 0A 2B or ch,[bp+di] -450F:098F 35 1F00 xor ax,1F00h -450F:0992 02 00 add al,[bx+si] -450F:0994 23 E9 and bp,cx -450F:0996 03 0A add cx,[bp+si] -450F:0998 2B 15 sub dx,[di] -450F:099A 00 23 add [bp+di],ah -450F:099C 01 00 add [bx+si],ax -450F:099E 21 30 and [bx+si],si -450F:09A0 00 23 add [bp+di],ah -450F:09A2 00 00 add [bx+si],al -450F:09A4 21 08 and [bx+si],cx -450F:09A6 00 23 add [bp+di],ah -450F:09A8 35 1F08 xor ax,1F08h -450F:09AB 02 00 add al,[bx+si] -450F:09AD 27 daa ; Decimal adjust -450F:09AE 13 00 adc ax,[bx+si] -450F:09B0 1F pop ds -450F:09B1 02 00 add al,[bx+si] -450F:09B3 23 E8 and bp,ax - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 625 - -450F:09B5 03 0A add cx,[bp+si] -450F:09B7 2B 0C sub cx,[si] -450F:09B9 00 23 add [bp+di],ah -450F:09BB 34 08 xor al,8 -450F:09BD 27 daa ; Decimal adjust -450F:09BE 10 00 adc [bx+si],al -450F:09C0 23 00 and ax,[bx+si] -450F:09C2 00 21 add [bx+di],ah -450F:09C4 08 00 or [bx+si],al -450F:09C6 28 23 sub [bp+di],ah -450F:09C8 01 00 add [bx+si],ax -450F:09CA 21 08 and [bx+si],cx -450F:09CC 00 1F add [bx],bl -450F:09CE 32 00 xor al,[bx+si] -450F:09D0 23 01 and ax,[bx+di] -450F:09D2 00 0A add [bp+si],cl -450F:09D4 2B 09 sub cx,[bx+di] -450F:09D6 00 23 add [bp+di],ah -450F:09D8 87 01 xchg [bx+di],ax -450F:09DA 27 daa ; Decimal adjust -450F:09DB 10 00 adc [bx+si],al -450F:09DD 2D 003F sub ax,3Fh -450F:09E0 1F pop ds -450F:09E1 32 00 xor al,[bx+si] -450F:09E3 23 02 and ax,[bp+si] -450F:09E5 00 0A add [bp+si],cl -450F:09E7 2B 09 sub cx,[bx+di] -450F:09E9 00 23 add [bp+di],ah -450F:09EB 86 01 xchg [bx+di],al -450F:09ED 27 daa ; Decimal adjust -450F:09EE 10 00 adc [bx+si],al -450F:09F0 2D 002C sub ax,2Ch -450F:09F3 1F pop ds -450F:09F4 32 00 xor al,[bx+si] -450F:09F6 23 03 and ax,[bp+di] -450F:09F8 00 0A add [bp+si],cl -450F:09FA 2B 09 sub cx,[bx+di] -450F:09FC 00 23 add [bp+di],ah -450F:09FE 89 01 mov [bx+di],ax -450F:0A00 27 daa ; Decimal adjust -450F:0A01 10 00 adc [bx+si],al -450F:0A03 2D 0019 sub ax,19h -450F:0A06 1F pop ds -450F:0A07 32 00 xor al,[bx+si] -450F:0A09 23 04 and ax,[si] -450F:0A0B 00 0A add [bp+si],cl -450F:0A0D 2B 09 sub cx,[bx+di] -450F:0A0F 00 23 add [bp+di],ah -450F:0A11 88 01 mov [bx+di],al -450F:0A13 27 daa ; Decimal adjust -450F:0A14 10 00 adc [bx+si],al -450F:0A16 2D 0006 sub ax,6 -450F:0A19 23 00 and ax,[bx+si] -450F:0A1B 00 21 add [bx+di],ah -450F:0A1D 08 00 or [bx+si],al -450F:0A1F 28 1F sub [bx],bl -450F:0A21 34 00 xor al,0 - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 626 - -450F:0A23 23 01 and ax,[bx+di] -450F:0A25 00 0A add [bp+si],cl -450F:0A27 2B 0C sub cx,[si] -450F:0A29 00 23 add [bp+di],ah -450F:0A2B 01 00 add [bx+si],ax -450F:0A2D 21 08 and [bx+si],cx -450F:0A2F 00 23 add [bp+di],ah -450F:0A31 50 push ax -450F:0A32 08 27 or [bx],ah -450F:0A34 10 00 adc [bx+si],al -450F:0A36 28 23 sub [bp+di],ah -450F:0A38 11 00 adc [bx+si],ax -450F:0A3A 21 08 and [bx+si],cx -450F:0A3C 00 1F add [bx],bl -450F:0A3E 34 00 xor al,0 -450F:0A40 23 00 and ax,[bx+si] -450F:0A42 00 0A add [bp+si],cl -450F:0A44 2B 65 00 ;* sub sp,[di+0] -450F:0A44 2B 65 00 db 2Bh, 65h, 00h -450F:0A47 1F 04 00 23 1C 27 db 1Fh, 04h, 00h, 23h, 1Ch, 27h -450F:0A4D 0A 2B 5B 00 1F 02 db 0Ah, 2Bh, 5Bh, 00h, 1Fh, 02h -450F:0A53 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:0A59 2D 00 23 01 00 21 db 2Dh, 00h, 23h, 01h, 00h, 21h -450F:0A5F 34 00 23 00 00 21 db 34h, 00h, 23h, 00h, 00h, 21h -450F:0A65 08 00 23 51 08 27 db 08h, 00h, 23h, 51h, 08h, 27h -450F:0A6B 10 00 23 01 00 23 db 10h, 00h, 23h, 01h, 00h, 23h -450F:0A71 02 00 23 AD 0A 27 db 02h, 00h, 23h,0ADh, 0Ah, 27h -450F:0A77 08 00 27 25 00 23 db 08h, 00h, 27h, 25h, 00h, 23h -450F:0A7D 0C 00 23 23 04 27 db 0Ch, 00h, 23h, 23h, 04h, 27h -450F:0A83 01 00 2D 24 00 23 db 01h, 00h, 2Dh, 24h, 00h, 23h -450F:0A89 01 00 21 34 00 23 db 01h, 00h, 21h, 34h, 00h, 23h -450F:0A8F 01 00 23 02 00 23 db 01h, 00h, 23h, 02h, 00h, 23h -450F:0A95 AD 0A 27 08 00 27 db 0ADh, 0Ah, 27h, 08h, 00h, 27h -450F:0A9B 25 00 23 0C 00 23 db 25h, 00h, 23h, 0Ch, 00h, 23h -450F:0AA1 23 04 27 01 00 23 db 23h, 04h, 27h, 01h, 00h, 23h -450F:0AA7 00 00 21 08 00 28 db 00h, 00h, 21h, 08h, 00h, 28h -450F:0AAD 23 52 08 23 E9 03 db 23h, 52h, 08h, 23h,0E9h, 03h -450F:0AB3 27 13 00 28 23 11 db 27h, 13h, 00h, 28h, 23h, 11h -450F:0AB9 00 21 08 00 1F 04 db 00h, 21h, 08h, 00h, 1Fh, 04h -450F:0ABF 00 23 1D 27 0A 2B db 00h, 23h, 1Dh, 27h, 0Ah, 2Bh -450F:0AC5 3B 00 1F 32 00 23 db 3Bh, 00h, 1Fh, 32h, 00h, 23h -450F:0ACB 00 00 0A 2B 2B 00 db 00h, 00h, 0Ah, 2Bh, 2Bh, 00h -450F:0AD1 23 03 00 21 32 00 db 23h, 03h, 00h, 21h, 32h, 00h -450F:0AD7 23 00 00 21 08 00 db 23h, 00h, 00h, 21h, 08h, 00h -450F:0ADD 23 04 00 27 0D 00 db 23h, 04h, 00h, 27h, 0Dh, 00h -450F:0AE3 1F 02 00 23 E8 03 db 1Fh, 02h, 00h, 23h,0E8h, 03h -450F:0AE9 0A 2B 0C 00 23 AC db 0Ah, 2Bh, 0Ch, 00h, 23h,0ACh -450F:0AEF 0C 27 10 00 23 04 db 0Ch, 27h, 10h, 00h, 23h, 04h -450F:0AF5 00 27 15 00 2D 06 db 00h, 27h, 15h, 00h, 2Dh, 06h -450F:0AFB 00 23 1C 00 21 08 db 00h, 23h, 1Ch, 00h, 21h, 08h -450F:0B01 00 28 23 11 00 21 db 00h, 28h, 23h, 11h, 00h, 21h -450F:0B07 08 00 1F 04 00 23 db 08h, 00h, 1Fh, 04h, 00h, 23h -450F:0B0D 1D 27 0A 2B 3B 00 db 1Dh, 27h, 0Ah, 2Bh, 3Bh, 00h -450F:0B13 1F 32 00 23 00 00 db 1Fh, 32h, 00h, 23h, 00h, 00h -450F:0B19 0A 2B 2B 00 23 04 db 0Ah, 2Bh, 2Bh, 00h, 23h, 04h -450F:0B1F 00 21 32 00 23 00 db 00h, 21h, 32h, 00h, 23h, 00h -450F:0B25 00 21 08 00 23 04 db 00h, 21h, 08h, 00h, 23h, 04h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 627 - -450F:0B2B 00 27 0D 00 1F 02 db 00h, 27h, 0Dh, 00h, 1Fh, 02h -450F:0B31 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:0B37 0C 00 23 B0 0C 27 db 0Ch, 00h, 23h,0B0h, 0Ch, 27h -450F:0B3D 10 00 23 04 00 27 db 10h, 00h, 23h, 04h, 00h, 27h -450F:0B43 15 00 2D 06 00 23 db 15h, 00h, 2Dh, 06h, 00h, 23h -450F:0B49 1C 00 21 08 00 28 db 1Ch, 00h, 21h, 08h, 00h, 28h -450F:0B4F 23 11 00 21 08 00 db 23h, 11h, 00h, 21h, 08h, 00h -450F:0B55 1F 04 00 23 1D 27 db 1Fh, 04h, 00h, 23h, 1Dh, 27h -450F:0B5B 0A 2B 54 00 1F 36 db 0Ah, 2Bh, 54h, 00h, 1Fh, 36h -450F:0B61 00 23 01 00 0A 2B db 00h, 23h, 01h, 00h, 0Ah, 2Bh -450F:0B67 4A 00 1F 32 00 23 db 4Ah, 00h, 1Fh, 32h, 00h, 23h -450F:0B6D 00 00 0A 2B 3A 00 db 00h, 00h, 0Ah, 2Bh, 3Ah, 00h -450F:0B73 23 01 00 21 32 00 db 23h, 01h, 00h, 21h, 32h, 00h -450F:0B79 23 0B 00 23 23 04 db 23h, 0Bh, 00h, 23h, 23h, 04h -450F:0B7F 27 01 00 23 00 00 db 27h, 01h, 00h, 23h, 00h, 00h -450F:0B85 21 08 00 23 00 00 db 21h, 08h, 00h, 23h, 00h, 00h -450F:0B8B 21 36 00 23 04 00 db 21h, 36h, 00h, 23h, 04h, 00h -450F:0B91 27 0D 00 1F 02 00 db 27h, 0Dh, 00h, 1Fh, 02h, 00h -450F:0B97 23 E8 03 0A 2B 0C db 23h,0E8h, 03h, 0Ah, 2Bh, 0Ch -450F:0B9D 00 23 53 08 27 10 db 00h, 23h, 53h, 08h, 27h, 10h -450F:0BA3 00 23 04 00 27 15 db 00h, 23h, 04h, 00h, 27h, 15h -450F:0BA9 00 2D 06 00 23 1C db 00h, 2Dh, 06h, 00h, 23h, 1Ch -450F:0BAF 00 21 08 00 28 23 db 00h, 21h, 08h, 00h, 28h, 23h -450F:0BB5 18 00 21 08 00 1F db 18h, 00h, 21h, 08h, 00h, 1Fh -450F:0BBB 32 00 23 01 00 0A db 32h, 00h, 23h, 01h, 00h, 0Ah -450F:0BC1 2B 48 00 23 01 00 db 2Bh, 48h, 00h, 23h, 01h, 00h -450F:0BC7 21 08 00 1F 02 00 db 21h, 08h, 00h, 1Fh, 02h, 00h -450F:0BCD 23 E8 03 0A 2B 22 db 23h,0E8h, 03h, 0Ah, 2Bh, 22h -450F:0BD3 00 1F 38 00 23 00 db 00h, 1Fh, 38h, 00h, 23h, 00h -450F:0BD9 00 0A 2B 03 00 27 db 00h, 0Ah, 2Bh, 03h, 00h, 27h -450F:0BDF 26 00 23 02 00 21 db 26h, 00h, 23h, 02h, 00h, 21h -450F:0BE5 3A 00 23 00 00 21 db 3Ah, 00h, 23h, 00h, 00h, 21h -450F:0BEB 32 00 23 06 00 21 db 32h, 00h, 23h, 06h, 00h, 21h -450F:0BF1 26 00 2D 16 00 1F db 26h, 00h, 2Dh, 16h, 00h, 1Fh -450F:0BF7 02 00 23 E9 03 0A db 02h, 00h, 23h,0E9h, 03h, 0Ah -450F:0BFD 2B 0C 00 23 DB 08 db 2Bh, 0Ch, 00h, 23h,0DBh, 08h -450F:0C03 23 E8 03 23 E9 03 db 23h,0E8h, 03h, 23h,0E9h, 03h -450F:0C09 27 1D 00 1F 32 00 db 27h, 1Dh, 00h, 1Fh, 32h, 00h -450F:0C0F 23 02 00 0A 2B 25 db 23h, 02h, 00h, 0Ah, 2Bh, 25h -450F:0C15 00 23 01 00 21 08 db 00h, 23h, 01h, 00h, 21h, 08h -450F:0C1B 00 1F 02 00 23 E8 db 00h, 1Fh, 02h, 00h, 23h,0E8h -450F:0C21 03 0A 2B 12 00 23 db 03h, 0Ah, 2Bh, 12h, 00h, 23h -450F:0C27 54 0B 27 10 00 23 db 54h, 0Bh, 27h, 10h, 00h, 23h -450F:0C2D 55 0B 27 10 00 23 db 55h, 0Bh, 27h, 10h, 00h, 23h -450F:0C33 82 0C 27 10 00 2D db 82h, 0Ch, 27h, 10h, 00h, 2Dh -450F:0C39 7B 00 1F 32 00 23 db 7Bh, 00h, 1Fh, 32h, 00h, 23h -450F:0C3F 03 00 0A 2B 32 00 db 03h, 00h, 0Ah, 2Bh, 32h, 00h -450F:0C45 23 01 00 21 08 00 db 23h, 01h, 00h, 21h, 08h, 00h -450F:0C4B 1F 02 00 23 E8 03 db 1Fh, 02h, 00h, 23h,0E8h, 03h -450F:0C51 0A 2B 09 00 23 56 db 0Ah, 2Bh, 09h, 00h, 23h, 56h -450F:0C57 0B 27 10 00 2D 16 db 0Bh, 27h, 10h, 00h, 2Dh, 16h -450F:0C5D 00 1F 02 00 23 E9 db 00h, 1Fh, 02h, 00h, 23h,0E9h -450F:0C63 03 0A 2B 0C 00 23 db 03h, 0Ah, 2Bh, 0Ch, 00h, 23h -450F:0C69 AD 0C 23 E8 03 23 db 0ADh, 0Ch, 23h,0E8h, 03h, 23h -450F:0C6F E9 03 27 1D 00 2D db 0E9h, 03h, 27h, 1Dh, 00h, 2Dh -450F:0C75 3F 00 1F 32 00 23 db 3Fh, 00h, 1Fh, 32h, 00h, 23h -450F:0C7B 04 00 0A 2B 35 00 db 04h, 00h, 0Ah, 2Bh, 35h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 628 - -450F:0C81 23 01 00 21 08 00 db 23h, 01h, 00h, 21h, 08h, 00h -450F:0C87 23 00 00 21 32 00 db 23h, 00h, 00h, 21h, 32h, 00h -450F:0C8D 1F 02 00 23 E8 03 db 1Fh, 02h, 00h, 23h,0E8h, 03h -450F:0C93 0A 2B 09 00 23 AE db 0Ah, 2Bh, 09h, 00h, 23h,0AEh -450F:0C99 0C 27 10 00 2D 16 db 0Ch, 27h, 10h, 00h, 2Dh, 16h -450F:0C9F 00 1F 02 00 23 E9 db 00h, 1Fh, 02h, 00h, 23h,0E9h -450F:0CA5 03 0A 2B 0C 00 23 db 03h, 0Ah, 2Bh, 0Ch, 00h, 23h -450F:0CAB AF 0C 23 E8 03 23 db 0AFh, 0Ch, 23h,0E8h, 03h, 23h -450F:0CB1 E9 03 27 1D 00 28 db 0E9h, 03h, 27h, 1Dh, 00h, 28h -450F:0CB7 27 26 00 23 05 00 db 27h, 26h, 00h, 23h, 05h, 00h -450F:0CBD 21 26 00 1F 40 00 db 21h, 26h, 00h, 1Fh, 40h, 00h -450F:0CC3 23 01 00 0A 2B 06 db 23h, 01h, 00h, 0Ah, 2Bh, 06h -450F:0CC9 00 23 07 00 21 26 db 00h, 23h, 07h, 00h, 21h, 26h -450F:0CCF 00 28 1F 38 00 23 db 00h, 28h, 1Fh, 38h, 00h, 23h -450F:0CD5 00 00 0A 2B 15 00 db 00h, 00h, 0Ah, 2Bh, 15h, 00h -450F:0CDB 23 5B 08 23 27 04 db 23h, 5Bh, 08h, 23h, 27h, 04h -450F:0CE1 27 13 00 25 13 0D db 27h, 13h, 00h, 25h, 13h, 0Dh -450F:0CE7 23 01 00 21 08 00 db 23h, 01h, 00h, 21h, 08h, 00h -450F:0CED 2D 12 00 23 C6 08 db 2Dh, 12h, 00h, 23h,0C6h, 08h -450F:0CF3 23 27 04 27 13 00 db 23h, 27h, 04h, 27h, 13h, 00h -450F:0CF9 23 01 00 23 27 04 db 23h, 01h, 00h, 23h, 27h, 04h -450F:0CFF 27 1E 00 28 23 01 db 27h, 1Eh, 00h, 28h, 23h, 01h -450F:0D05 00 23 27 04 27 1E db 00h, 23h, 27h, 04h, 27h, 1Eh -450F:0D0B 00 23 00 00 21 42 db 00h, 23h, 00h, 00h, 21h, 42h -450F:0D11 00 28 1F 42 00 23 db 00h, 28h, 1Fh, 42h, 00h, 23h -450F:0D17 00 00 0A 2B 1B 00 db 00h, 00h, 0Ah, 2Bh, 1Bh, 00h -450F:0D1D 23 00 00 23 0F 00 db 23h, 00h, 00h, 23h, 0Fh, 00h -450F:0D23 23 03 0D 27 08 00 db 23h, 03h, 0Dh, 27h, 08h, 00h -450F:0D29 23 00 00 23 27 04 db 23h, 00h, 00h, 23h, 27h, 04h -450F:0D2F 27 1E 00 23 01 00 db 27h, 1Eh, 00h, 23h, 01h, 00h -450F:0D35 21 42 00 28 1F 02 db 21h, 42h, 00h, 28h, 1Fh, 02h -450F:0D3B 00 23 E8 03 0A 2B db 00h, 23h,0E8h, 03h, 0Ah, 2Bh -450F:0D41 03 00 27 27 00 25 db 03h, 00h, 27h, 27h, 00h, 25h -450F:0D47 13 0D 23 01 00 21 db 13h, 0Dh, 23h, 01h, 00h, 21h -450F:0D4D 42 00 28 23 01 00 db 42h, 00h, 28h, 23h, 01h, 00h -450F:0D53 21 08 00 1F 02 00 db 21h, 08h, 00h, 1Fh, 02h, 00h -450F:0D59 23 E8 03 0A 2B 09 db 23h,0E8h, 03h, 0Ah, 2Bh, 09h -450F:0D5F 00 23 75 08 27 10 db 00h, 23h, 75h, 08h, 27h, 10h -450F:0D65 00 2D 09 00 23 76 db 00h, 2Dh, 09h, 00h, 23h, 76h -450F:0D6B 08 1F 02 00 27 13 db 08h, 1Fh, 02h, 00h, 27h, 13h -450F:0D71 00 28 23 44 75 27 db 00h, 28h, 23h, 44h, 75h, 27h -450F:0D77 20 00 28 23 44 75 db 20h, 00h, 28h, 23h, 44h, 75h -450F:0D7D 27 23 00 28 1F 02 db 27h, 23h, 00h, 28h, 1Fh, 02h -450F:0D83 00 23 E8 03 0A 1F db 00h, 23h,0E8h, 03h, 0Ah, 1Fh -450F:0D89 26 00 23 08 00 0E db 26h, 00h, 23h, 08h, 00h, 0Eh -450F:0D8F 1F 26 00 23 0D 00 db 1Fh, 26h, 00h, 23h, 0Dh, 00h -450F:0D95 10 1C 1A 2B 06 00 db 10h, 1Ch, 1Ah, 2Bh, 06h, 00h -450F:0D9B 23 06 00 db 23h, 06h, 00h -450F:0D9E loc_2368: -450F:0D9E 21 08 and [bx+si],cx -450F:0DA0 00 1F add [bx],bl -450F:0DA2 02 00 add al,[bx+si] -450F:0DA4 23 E9 and bp,cx -450F:0DA6 03 0A add cx,[bp+si] -450F:0DA8 1F pop ds -450F:0DA9 26: 00 23 add es:[bp+di],ah -450F:0DAC 08 00 or [bx+si],al - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 629 - -450F:0DAE 0E push cs -450F:0DAF 1F pop ds -450F:0DB0 26: 00 23 add es:[bp+di],ah -450F:0DB3 0D 1000 or ax,1000h -450F:0DB6 1C 1A sbb al,1Ah -450F:0DB8 2B 09 sub cx,[bx+di] -450F:0DBA 00 23 add [bp+di],ah -450F:0DBC 06 push es -450F:0DBD 00 21 add [bx+di],ah -450F:0DBF 08 00 or [bx+si],al -450F:0DC1 2D 002C sub ax,2Ch -450F:0DC4 1F pop ds -450F:0DC5 02 00 add al,[bx+si] -450F:0DC7 23 E9 and bp,cx -450F:0DC9 03 0A add cx,[bp+si] -450F:0DCB 2B 22 sub sp,[bp+si] -450F:0DCD 00 23 add [bp+di],ah -450F:0DCF E9 2303 jmp $+2306h -450F:0DD2 1B 27 27 28 00 1F db 1Bh, 27h, 27h, 28h, 00h, 1Fh -450F:0DD8 08 00 23 01 00 0A db 08h, 00h, 23h, 01h, 00h, 0Ah -450F:0DDE 2B 09 00 23 00 00 db 2Bh, 09h, 00h, 23h, 00h, 00h -450F:0DE4 21 08 00 2D 06 00 db 21h, 08h, 00h, 2Dh, 06h, 00h -450F:0DEA 23 06 00 21 08 00 db 23h, 06h, 00h, 21h, 08h, 00h -450F:0DF0 28 23 0E 09 27 10 db 28h, 23h, 0Eh, 09h, 27h, 10h -450F:0DF6 00 23 01 00 21 08 db 00h, 23h, 01h, 00h, 21h, 08h -450F:0DFC 00 28 23 8A 01 27 db 00h, 28h, 23h, 8Ah, 01h, 27h -450F:0E02 10 00 23 8B 01 27 db 10h, 00h, 23h, 8Bh, 01h, 27h -450F:0E08 10 00 23 8C 01 27 db 10h, 00h, 23h, 8Ch, 01h, 27h -450F:0E0E 10 00 23 8D 01 27 db 10h, 00h, 23h, 8Dh, 01h, 27h -450F:0E14 10 00 23 8E 01 27 db 10h, 00h, 23h, 8Eh, 01h, 27h -450F:0E1A 10 00 23 8F 01 27 db 10h, 00h, 23h, 8Fh, 01h, 27h -450F:0E20 10 00 23 01 00 21 db 10h, 00h, 23h, 01h, 00h, 21h -450F:0E26 96 00 23 01 00 21 db 96h, 00h, 23h, 01h, 00h, 21h -450F:0E2C 08 00 28 23 01 00 db 08h, 00h, 28h, 23h, 01h, 00h -450F:0E32 21 08 00 1F 96 00 db 21h, 08h, 00h, 1Fh, 96h, 00h -450F:0E38 23 00 00 0A 2B 09 db 23h, 00h, 00h, 0Ah, 2Bh, 09h -450F:0E3E 00 23 55 0C 27 10 db 00h, 23h, 55h, 0Ch, 27h, 10h -450F:0E44 00 2D 12 00 23 57 db 00h, 2Dh, 12h, 00h, 23h, 57h -450F:0E4A 0C 27 10 00 23 24 db 0Ch, 27h, 10h, 00h, 23h, 24h -450F:0E50 04 27 23 00 23 3D db 04h, 27h, 23h, 00h, 23h, 3Dh -450F:0E56 75 27 23 00 28 1F db 75h, 27h, 23h, 00h, 28h, 1Fh -450F:0E5C 02 00 23 EF 03 0A db 02h, 00h, 23h,0EFh, 03h, 0Ah -450F:0E62 2B 09 00 23 00 00 db 2Bh, 09h, 00h, 23h, 00h, 00h -450F:0E68 21 08 00 2D 22 00 db 21h, 08h, 00h, 2Dh, 22h, 00h -450F:0E6E 23 22 00 23 EF 03 db 23h, 22h, 00h, 23h,0EFh, 03h -450F:0E74 27 28 00 1F 08 00 db 27h, 28h, 00h, 1Fh, 08h, 00h -450F:0E7A 23 01 00 0A 2B 09 db 23h, 01h, 00h, 0Ah, 2Bh, 09h -450F:0E80 00 23 00 00 21 08 db 00h, 23h, 00h, 00h, 21h, 08h -450F:0E86 00 2D 06 00 23 06 db 00h, 2Dh, 06h, 00h, 23h, 06h -450F:0E8C 00 21 08 00 28 1F db 00h, 21h, 08h, 00h, 28h, 1Fh -450F:0E92 5E 00 23 00 00 0A db 5Eh, 00h, 23h, 00h, 00h, 0Ah -450F:0E98 2B 21 00 23 00 00 db 2Bh, 21h, 00h, 23h, 00h, 00h -450F:0E9E 23 01 00 23 BD 0E db 23h, 01h, 00h, 23h,0BDh, 0Eh -450F:0EA4 27 08 00 23 04 00 db 27h, 08h, 00h, 23h, 04h, 00h -450F:0EAA 27 03 00 27 29 00 db 27h, 03h, 00h, 27h, 29h, 00h -450F:0EB0 23 01 00 21 5E 00 db 23h, 01h, 00h, 21h, 5Eh, 00h -450F:0EB6 23 15 00 21 26 00 db 23h, 15h, 00h, 21h, 26h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 630 - -450F:0EBC 28 23 26 00 23 EF db 28h, 23h, 26h, 00h, 23h,0EFh -450F:0EC2 03 27 28 00 1F 08 db 03h, 27h, 28h, 00h, 1Fh, 08h -450F:0EC8 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:0ECE 0F 00 23 00 00 23 db 0Fh, 00h, 23h, 00h, 00h, 23h -450F:0ED4 02 00 23 BD 0E 27 db 02h, 00h, 23h,0BDh, 0Eh, 27h -450F:0EDA 08 00 2D 12 00 23 db 08h, 00h, 2Dh, 12h, 00h, 23h -450F:0EE0 29 27 27 2A 00 23 db 29h, 27h, 27h, 2Ah, 00h, 23h -450F:0EE6 01 00 21 62 00 23 db 01h, 00h, 21h, 62h, 00h, 23h -450F:0EEC 01 00 21 64 00 28 db 01h, 00h, 21h, 64h, 00h, 28h -450F:0EF2 1F 26 00 23 15 00 db 1Fh, 26h, 00h, 23h, 15h, 00h -450F:0EF8 10 2B 10 00 23 0F db 10h, 2Bh, 10h, 00h, 23h, 0Fh -450F:0EFE 00 23 00 40 02 23 db 00h, 23h, 00h, 40h, 02h, 23h -450F:0F04 F4 00 23 06 01 27 db 0F4h, 00h, 23h, 06h, 01h, 27h -450F:0F0A 19 00 28 1F 26 00 db 19h, 00h, 28h, 1Fh, 26h, 00h -450F:0F10 23 15 00 10 2B 1E db 23h, 15h, 00h, 10h, 2Bh, 1Eh -450F:0F16 00 23 00 00 23 04 db 00h, 23h, 00h, 00h, 23h, 04h -450F:0F1C 00 23 36 0F 27 08 db 00h, 23h, 36h, 0Fh, 27h, 08h -450F:0F22 00 23 02 00 27 03 db 00h, 23h, 02h, 00h, 27h, 03h -450F:0F28 00 23 01 00 27 05 db 00h, 23h, 01h, 00h, 27h, 05h -450F:0F2E 00 23 17 00 21 26 db 00h, 23h, 17h, 00h, 21h, 26h -450F:0F34 00 28 23 0F 00 23 db 00h, 28h, 23h, 0Fh, 00h, 23h -450F:0F3A EF 03 27 28 00 1F db 0EFh, 03h, 27h, 28h, 00h, 1Fh -450F:0F40 08 00 23 00 00 0A db 08h, 00h, 23h, 00h, 00h, 0Ah -450F:0F46 2B 0F 00 23 00 00 db 2Bh, 0Fh, 00h, 23h, 00h, 00h -450F:0F4C 23 02 00 23 36 0F db 23h, 02h, 00h, 23h, 36h, 0Fh -450F:0F52 27 08 00 2D 0C 00 db 27h, 08h, 00h, 2Dh, 0Ch, 00h -450F:0F58 23 00 00 23 04 00 db 23h, 00h, 00h, 23h, 04h, 00h -450F:0F5E 23 65 0F 27 08 00 db 23h, 65h, 0Fh, 27h, 08h, 00h -450F:0F64 28 23 29 27 27 2A db 28h, 23h, 29h, 27h, 27h, 2Ah -450F:0F6A 00 27 2B 00 28 1F db 00h, 27h, 2Bh, 00h, 28h, 1Fh -450F:0F70 62 00 23 00 00 0A db 62h, 00h, 23h, 00h, 00h, 0Ah -450F:0F76 2B 09 00 23 2D 00 db 2Bh, 09h, 00h, 23h, 2Dh, 00h -450F:0F7C 21 08 00 2D 3C 00 db 21h, 08h, 00h, 2Dh, 3Ch, 00h -450F:0F82 23 00 00 21 62 00 db 23h, 00h, 00h, 21h, 62h, 00h -450F:0F88 23 01 00 21 64 00 db 23h, 01h, 00h, 21h, 64h, 00h -450F:0F8E 23 01 00 21 66 00 db 23h, 01h, 00h, 21h, 66h, 00h -450F:0F94 23 01 00 21 68 00 db 23h, 01h, 00h, 21h, 68h, 00h -450F:0F9A 23 00 00 21 6A 00 db 23h, 00h, 00h, 21h, 6Ah, 00h -450F:0FA0 23 01 00 21 6C 00 db 23h, 01h, 00h, 21h, 6Ch, 00h -450F:0FA6 23 2C 27 27 2C 00 db 23h, 2Ch, 27h, 27h, 2Ch, 00h -450F:0FAC 23 2A 27 27 2A 00 db 23h, 2Ah, 27h, 27h, 2Ah, 00h -450F:0FB2 23 2E 27 27 2A 00 db 23h, 2Eh, 27h, 27h, 2Ah, 00h -450F:0FB8 23 0D 00 27 0D 00 db 23h, 0Dh, 00h, 27h, 0Dh, 00h -450F:0FBE 28 1F 62 00 23 01 db 28h, 1Fh, 62h, 00h, 23h, 01h -450F:0FC4 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:0FCA 2D 00 21 08 00 2D db 2Dh, 00h, 21h, 08h, 00h, 2Dh -450F:0FD0 12 00 23 01 00 21 db 12h, 00h, 23h, 01h, 00h, 21h -450F:0FD6 62 00 23 2C 27 27 db 62h, 00h, 23h, 2Ch, 27h, 27h -450F:0FDC 2A 00 23 0D 00 27 db 2Ah, 00h, 23h, 0Dh, 00h, 27h -450F:0FE2 0D 00 28 1F 64 00 db 0Dh, 00h, 28h, 1Fh, 64h, 00h -450F:0FE8 23 00 00 0A 2B 09 db 23h, 00h, 00h, 0Ah, 2Bh, 09h -450F:0FEE 00 23 2D 00 21 08 db 00h, 23h, 2Dh, 00h, 21h, 08h -450F:0FF4 00 2D 3C 00 23 01 db 00h, 2Dh, 3Ch, 00h, 23h, 01h -450F:0FFA 00 21 62 00 23 00 db 00h, 21h, 62h, 00h, 23h, 00h -450F:1000 00 21 64 00 23 01 db 00h, 21h, 64h, 00h, 23h, 01h -450F:1006 00 21 6A 00 23 00 db 00h, 21h, 6Ah, 00h, 23h, 00h -450F:100C 00 21 6C 00 23 00 db 00h, 21h, 6Ch, 00h, 23h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 631 - -450F:1012 00 21 66 00 23 01 db 00h, 21h, 66h, 00h, 23h, 01h -450F:1018 00 21 68 00 23 2A db 00h, 21h, 68h, 00h, 23h, 2Ah -450F:101E 27 27 2C 00 23 2C db 27h, 27h, 2Ch, 00h, 23h, 2Ch -450F:1024 27 27 2A 00 23 2E db 27h, 27h, 2Ah, 00h, 23h, 2Eh -450F:102A 27 27 2A 00 23 0D db 27h, 27h, 2Ah, 00h, 23h, 0Dh -450F:1030 00 27 0D 00 28 1F db 00h, 27h, 0Dh, 00h, 28h, 1Fh -450F:1036 64 00 23 01 00 0A db 64h, 00h, 23h, 01h, 00h, 0Ah -450F:103C 2B 09 00 23 2D 00 db 2Bh, 09h, 00h, 23h, 2Dh, 00h -450F:1042 21 08 00 2D 12 00 db 21h, 08h, 00h, 2Dh, 12h, 00h -450F:1048 23 01 00 21 64 00 db 23h, 01h, 00h, 21h, 64h, 00h -450F:104E 23 2A 27 27 2A 00 db 23h, 2Ah, 27h, 27h, 2Ah, 00h -450F:1054 23 0D 00 27 0D 00 db 23h, 0Dh, 00h, 27h, 0Dh, 00h -450F:105A 28 1F 66 00 23 00 db 28h, 1Fh, 66h, 00h, 23h, 00h -450F:1060 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:1066 2D 00 21 08 00 2D db 2Dh, 00h, 21h, 08h, 00h, 2Dh -450F:106C 3C 00 23 01 00 21 db 3Ch, 00h, 23h, 01h, 00h, 21h -450F:1072 62 00 23 00 00 21 db 62h, 00h, 23h, 00h, 00h, 21h -450F:1078 64 00 23 00 00 21 db 64h, 00h, 23h, 00h, 00h, 21h -450F:107E 66 00 23 01 00 21 db 66h, 00h, 23h, 01h, 00h, 21h -450F:1084 68 00 23 01 00 21 db 68h, 00h, 23h, 01h, 00h, 21h -450F:108A 6A 00 23 00 00 21 db 6Ah, 00h, 23h, 00h, 00h, 21h -450F:1090 6C 00 23 2A 27 27 db 6Ch, 00h, 23h, 2Ah, 27h, 27h -450F:1096 2C 00 23 2C 27 27 db 2Ch, 00h, 23h, 2Ch, 27h, 27h -450F:109C 2A 00 23 2E 27 27 db 2Ah, 00h, 23h, 2Eh, 27h, 27h -450F:10A2 2A 00 23 0D 00 27 db 2Ah, 00h, 23h, 0Dh, 00h, 27h -450F:10A8 0D 00 28 1F 66 00 db 0Dh, 00h, 28h, 1Fh, 66h, 00h -450F:10AE 23 01 00 0A 2B 09 db 23h, 01h, 00h, 0Ah, 2Bh, 09h -450F:10B4 00 23 2D 00 21 08 db 00h, 23h, 2Dh, 00h, 21h, 08h -450F:10BA 00 2D 12 00 23 01 db 00h, 2Dh, 12h, 00h, 23h, 01h -450F:10C0 00 21 66 00 23 2A db 00h, 21h, 66h, 00h, 23h, 2Ah -450F:10C6 27 27 2A 00 23 0D db 27h, 27h, 2Ah, 00h, 23h, 0Dh -450F:10CC 00 27 0D 00 28 1F db 00h, 27h, 0Dh, 00h, 28h, 1Fh -450F:10D2 68 00 23 00 00 0A db 68h, 00h, 23h, 00h, 00h, 0Ah -450F:10D8 2B 09 00 23 2D 00 db 2Bh, 09h, 00h, 23h, 2Dh, 00h -450F:10DE 21 08 00 2D 3C 00 db 21h, 08h, 00h, 2Dh, 3Ch, 00h -450F:10E4 23 01 00 21 62 00 db 23h, 01h, 00h, 21h, 62h, 00h -450F:10EA 23 01 00 21 64 00 db 23h, 01h, 00h, 21h, 64h, 00h -450F:10F0 23 01 00 21 66 00 db 23h, 01h, 00h, 21h, 66h, 00h -450F:10F6 23 00 00 21 68 00 db 23h, 00h, 00h, 21h, 68h, 00h -450F:10FC 23 01 00 21 6A 00 db 23h, 01h, 00h, 21h, 6Ah, 00h -450F:1102 23 01 00 21 6C 00 db 23h, 01h, 00h, 21h, 6Ch, 00h -450F:1108 23 2E 27 27 2C 00 db 23h, 2Eh, 27h, 27h, 2Ch, 00h -450F:110E 23 2C 27 27 2A 00 db 23h, 2Ch, 27h, 27h, 2Ah, 00h -450F:1114 23 2A 27 27 2A 00 db 23h, 2Ah, 27h, 27h, 2Ah, 00h -450F:111A 23 0D 00 27 0D 00 db 23h, 0Dh, 00h, 27h, 0Dh, 00h -450F:1120 28 1F 68 00 23 01 db 28h, 1Fh, 68h, 00h, 23h, 01h -450F:1126 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:112C 2D 00 21 08 00 2D db 2Dh, 00h, 21h, 08h, 00h, 2Dh -450F:1132 12 00 23 01 00 21 db 12h, 00h, 23h, 01h, 00h, 21h -450F:1138 68 00 23 2E 27 27 db 68h, 00h, 23h, 2Eh, 27h, 27h -450F:113E 2A 00 23 0D 00 27 db 2Ah, 00h, 23h, 0Dh, 00h, 27h -450F:1144 0D 00 28 1F 6A 00 db 0Dh, 00h, 28h, 1Fh, 6Ah, 00h -450F:114A 23 00 00 0A 2B 09 db 23h, 00h, 00h, 0Ah, 2Bh, 09h -450F:1150 00 23 2D 00 21 08 db 00h, 23h, 2Dh, 00h, 21h, 08h -450F:1156 00 2D 3C 00 23 00 db 00h, 2Dh, 3Ch, 00h, 23h, 00h -450F:115C 00 21 62 00 23 01 db 00h, 21h, 62h, 00h, 23h, 01h -450F:1162 00 21 64 00 23 01 db 00h, 21h, 64h, 00h, 23h, 01h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 632 - -450F:1168 00 21 66 00 23 01 db 00h, 21h, 66h, 00h, 23h, 01h -450F:116E 00 21 68 00 23 00 db 00h, 21h, 68h, 00h, 23h, 00h -450F:1174 00 21 6A 00 23 01 db 00h, 21h, 6Ah, 00h, 23h, 01h -450F:117A 00 21 6C 00 23 2C db 00h, 21h, 6Ch, 00h, 23h, 2Ch -450F:1180 27 27 2C 00 23 2A db 27h, 27h, 2Ch, 00h, 23h, 2Ah -450F:1186 27 27 2A 00 23 2E db 27h, 27h, 2Ah, 00h, 23h, 2Eh -450F:118C 27 27 2A 00 23 0D db 27h, 27h, 2Ah, 00h, 23h, 0Dh -450F:1192 00 27 0D 00 28 1F db 00h, 27h, 0Dh, 00h, 28h, 1Fh -450F:1198 6A 00 23 01 00 0A db 6Ah, 00h, 23h, 01h, 00h, 0Ah -450F:119E 2B 09 00 23 2D 00 db 2Bh, 09h, 00h, 23h, 2Dh, 00h -450F:11A4 21 08 00 2D 12 00 db 21h, 08h, 00h, 2Dh, 12h, 00h -450F:11AA 23 01 00 21 6A 00 db 23h, 01h, 00h, 21h, 6Ah, 00h -450F:11B0 23 2C 27 27 2A 00 db 23h, 2Ch, 27h, 27h, 2Ah, 00h -450F:11B6 23 0D 00 27 0D 00 db 23h, 0Dh, 00h, 27h, 0Dh, 00h -450F:11BC 28 1F 6C 00 23 00 db 28h, 1Fh, 6Ch, 00h, 23h, 00h -450F:11C2 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:11C8 2D 00 21 08 00 2D db 2Dh, 00h, 21h, 08h, 00h, 2Dh -450F:11CE 36 00 23 01 00 21 db 36h, 00h, 23h, 01h, 00h, 21h -450F:11D4 62 00 23 00 00 21 db 62h, 00h, 23h, 00h, 00h, 21h -450F:11DA 66 00 23 01 00 21 db 66h, 00h, 23h, 01h, 00h, 21h -450F:11E0 68 00 23 01 00 21 db 68h, 00h, 23h, 01h, 00h, 21h -450F:11E6 6A 00 23 00 00 21 db 6Ah, 00h, 23h, 00h, 00h, 21h -450F:11EC 6C 00 23 2A 27 27 db 6Ch, 00h, 23h, 2Ah, 27h, 27h -450F:11F2 2C 00 23 2C 27 27 db 2Ch, 00h, 23h, 2Ch, 27h, 27h -450F:11F8 2A 00 23 2E 27 27 db 2Ah, 00h, 23h, 2Eh, 27h, 27h -450F:11FE 2A 00 23 0D 00 27 db 2Ah, 00h, 23h, 0Dh, 00h, 27h -450F:1204 0D 00 28 1F 6C 00 db 0Dh, 00h, 28h, 1Fh, 6Ch, 00h -450F:120A 23 01 00 0A 2B 09 db 23h, 01h, 00h, 0Ah, 2Bh, 09h -450F:1210 00 23 2D 00 21 08 db 00h, 23h, 2Dh, 00h, 21h, 08h -450F:1216 00 2D 12 00 23 01 db 00h, 2Dh, 12h, 00h, 23h, 01h -450F:121C 00 21 6C 00 23 2A db 00h, 21h, 6Ch, 00h, 23h, 2Ah -450F:1222 27 27 2A 00 23 0D db 27h, 27h, 2Ah, 00h, 23h, 0Dh -450F:1228 00 27 0D 00 28 1F db 00h, 27h, 0Dh, 00h, 28h, 1Fh -450F:122E 04 00 23 28 27 0A db 04h, 00h, 23h, 28h, 27h, 0Ah -450F:1234 2B 28 00 1F 70 00 db 2Bh, 28h, 00h, 1Fh, 70h, 00h -450F:123A 23 00 00 0A 2B 06 db 23h, 00h, 00h, 0Ah, 2Bh, 06h -450F:1240 00 23 01 00 21 72 db 00h, 23h, 01h, 00h, 21h, 72h -450F:1246 00 27 1C 00 23 28 db 00h, 27h, 1Ch, 00h, 23h, 28h -450F:124C 27 27 06 00 23 FA db 27h, 27h, 06h, 00h, 23h,0FAh -450F:1252 09 27 10 00 23 00 db 09h, 27h, 10h, 00h, 23h, 00h -450F:1258 00 21 08 00 2D 06 db 00h, 21h, 08h, 00h, 2Dh, 06h -450F:125E 00 23 11 00 21 08 db 00h, 23h, 11h, 00h, 21h, 08h -450F:1264 00 28 1F 04 00 23 db 00h, 28h, 1Fh, 04h, 00h, 23h -450F:126A 13 27 0A 2B 38 00 db 13h, 27h, 0Ah, 2Bh, 38h, 00h -450F:1270 1F 02 00 23 E8 03 db 1Fh, 02h, 00h, 23h,0E8h, 03h -450F:1276 0A 2B 06 00 23 5F db 0Ah, 2Bh, 06h, 00h, 23h, 5Fh -450F:127C 01 27 10 00 23 0C db 01h, 27h, 10h, 00h, 23h, 0Ch -450F:1282 04 27 06 00 23 2B db 04h, 27h, 06h, 00h, 23h, 2Bh -450F:1288 01 23 12 04 27 0B db 01h, 23h, 12h, 04h, 27h, 0Bh -450F:128E 00 1F 1E 00 23 03 db 00h, 1Fh, 1Eh, 00h, 23h, 03h -450F:1294 00 0C 2B 0C 00 23 db 00h, 0Ch, 2Bh, 0Ch, 00h, 23h -450F:129A 67 01 23 E8 03 23 db 67h, 01h, 23h,0E8h, 03h, 23h -450F:12A0 12 04 27 1D 00 2D db 12h, 04h, 27h, 1Dh, 00h, 2Dh -450F:12A6 06 00 23 11 00 db 06h, 00h, 23h, 11h, 00h -450F:12AB 21 08 00 db '!', 8, 0 -450F:12AE 28 23 31 75 27 23 db '(#1u', 27h, '#', 0 -450F:12B4 00 - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 633 - -450F:12B5 28 23 4D 75 27 23 db '(#Mu', 27h, '#', 0 -450F:12BB 00 -450F:12BC 28 23 35 27 27 23 db '(#5', 27h, 27h, '#', 0 -450F:12C2 00 -450F:12C3 28 23 3C 75 27 23 db '(# 08 27 lock or [bx],ah -450F:2306 10 00 adc [bx+si],al -450F:2308 23 23 and sp,[bp+di] -450F:230A 27 daa ; Decimal adjust -450F:230B 27 daa ; Decimal adjust -450F:230C 32 00 xor al,[bx+si] -450F:230E 28 23 sub [bp+di],ah -450F:2310 F9 stc ; Set carry flag -450F:2311 08 21 or [bx+di],ah -450F:2313 08 00 or [bx+si],al -450F:2315 1F pop ds -450F:2316 08 00 or [bx+si],al -450F:2318 1F pop ds -450F:2319 46 inc si -450F:231A 00 02 add [bp+si],al -450F:231C 21 08 and [bx+si],cx -450F:231E 00 1F add [bx],bl -450F:2320 46 inc si -450F:2321 00 23 add [bp+di],ah -450F:2323 04 00 add al,0 -450F:2325 0E push cs -450F:2326 2B 0A sub cx,[bp+si] -450F:2328 00 1F add [bx],bl -450F:232A 46 inc si -450F:232B 00 23 add [bp+di],ah -450F:232D 01 00 add [bx+si],ax -450F:232F 02 21 add ah,[bx+di] -450F:2331 46 inc si -450F:2332 00 28 add [bx+si],ch -450F:2334 1F pop ds -450F:2335 46 inc si -450F:2336 00 23 add [bp+di],ah -450F:2338 03 00 add ax,[bx+si] -450F:233A 0A 2B or ch,[bp+di] -450F:233C 0C 00 or al,0 -450F:233E 23 00 and ax,[bx+si] -450F:2340 00 23 add [bp+di],ah -450F:2342 01 00 add [bx+si],ax -450F:2344 23 51 23 and dx,[bx+di+23h] -450F:2347 27 daa ; Decimal adjust -450F:2348 08 00 or [bx+si],al -450F:234A 23 92 2110 and dx,[bp+si+2110h] -450F:234E 08 00 or [bx+si],al -450F:2350 28 23 sub [bp+di],ah -450F:2352 FE 08 dec byte ptr [bx+si] -450F:2354 23 29 and bp,[bx+di] -450F:2356 04 27 add al,27h ; ''' -450F:2358 13 00 adc ax,[bx+si] -450F:235A 28 27 sub [bx],ah -450F:235C 3A 00 cmp al,[bx+si] -450F:235E 1F pop ds -450F:235F 08 00 or [bx+si],al -450F:2361 1F pop ds -450F:2362 48 dec ax -450F:2363 00 04 add [si],al -450F:2365 21 08 and [bx+si],cx -450F:2367 00 28 add [bx+si],ch -450F:2369 27 daa ; Decimal adjust -450F:236A 3A 00 cmp al,[bx+si] -450F:236C 28 27 sub [bx],ah -450F:236E 3A 00 cmp al,[bx+si] -450F:2370 1F pop ds -450F:2371 08 00 or [bx+si],al -450F:2373 23 01 and ax,[bx+di] -450F:2375 00 0A add [bp+si],cl -450F:2377 2B 09 sub cx,[bx+di] -450F:2379 00 23 add [bp+di],ah -450F:237B 00 00 add [bx+si],al -450F:237D 21 08 and [bx+si],cx -450F:237F 00 2D add [di],ch -450F:2381 10 00 adc [bx+si],al -450F:2383 1F pop ds -450F:2384 08 00 or [bx+si],al -450F:2386 23 00 and ax,[bx+si] -450F:2388 00 0A add [bp+si],cl -450F:238A 2B 06 2300 sub ax,ds:data_33e ; (0000:2300=1226h) -450F:238E 01 00 add [bx+si],ax -450F:2390 21 08 and [bx+si],cx -450F:2392 00 28 add [bx+si],ch -450F:2394 23 21 and sp,[bx+di] -450F:2396 09 27 or [bx],sp -450F:2398 10 00 adc [bx+si],al -450F:239A 23 23 and sp,[bp+di] -450F:239C 27 daa ; Decimal adjust -450F:239D 27 daa ; Decimal adjust -450F:239E 32 00 xor al,[bx+si] -450F:23A0 23 92 2110 and dx,[bp+si+2110h] -450F:23A4 08 00 or [bx+si],al -450F:23A6 23 01 and ax,[bx+di] -450F:23A8 00 21 add [bx+di],ah -450F:23AA 4A dec dx -450F:23AB 00 23 add [bp+di],ah -450F:23AD 0A 00 or al,[bx+si] -450F:23AF 21 26 2300 and ds:data_33e,sp ; (0000:2300=1226h) -450F:23B3 01 00 add [bx+si],ax -450F:23B5 21 48 00 ;* and [bx+si+0],cx -450F:23B5 21 48 00 db 21h, 48h, 00h -450F:23B8 28 23 00 00 23 E9 db 28h, 23h, 00h, 00h, 23h,0E9h -450F:23BE 03 23 0D 00 27 24 db 03h, 23h, 0Dh, 00h, 27h, 24h -450F:23C4 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:23CA 00 28 23 FC 08 21 db 00h, 28h, 23h,0FCh, 08h, 21h -450F:23D0 08 00 28 1F 00 00 db 08h, 00h, 28h, 1Fh, 00h, 00h -450F:23D6 23 E9 03 27 28 00 db 23h,0E9h, 03h, 27h, 28h, 00h -450F:23DC 1F 08 00 23 01 00 db 1Fh, 08h, 00h, 23h, 01h, 00h -450F:23E2 0A 2B 09 00 23 92 db 0Ah, 2Bh, 09h, 00h, 23h, 92h -450F:23E8 10 21 08 00 2D 0C db 10h, 21h, 08h, 00h, 2Dh, 0Ch -450F:23EE 00 23 0B 00 21 08 db 00h, 23h, 0Bh, 00h, 21h, 08h -450F:23F4 00 23 01 00 21 4C db 00h, 23h, 01h, 00h, 21h, 4Ch -450F:23FA 00 28 db 00h, 28h - -450F:23FC 23 01 00 21 startup_sequence db 23h, 01h, 00h, 21h -450F:2400 12 00 23 E8 03 27 db 12h, 00h, 23h,0E8h, 03h, 27h -450F:2406 00 00 23 EA 03 27 db 00h, 00h, 23h,0EAh, 03h, 27h -450F:240C 00 00 23 12 27 27 db 00h, 00h, 23h, 12h, 27h, 27h -450F:2412 00 00 23 14 27 27 db 00h, 00h, 23h, 14h, 27h, 27h -450F:2418 00 00 23 00 00 23 db 00h, 00h, 23h, 00h, 00h, 23h -450F:241E 14 00 23 C7 2A 27 db 14h, 00h, 23h,0C7h, 2Ah, 27h -450F:2424 08 00 23 6B 04 27 db 08h, 00h, 23h, 6Bh, 04h, 27h -450F:242A 00 00 28 23 92 10 db 00h, 00h, 28h, 23h, 92h, 10h -450F:2430 21 08 00 1F 4C 00 db 21h, 08h, 00h, 1Fh, 4Ch, 00h -450F:2436 23 01 00 0A 2B 22 db 23h, 01h, 00h, 0Ah, 2Bh, 22h -450F:243C 00 1F 00 00 23 E9 db 00h, 1Fh, 00h, 00h, 23h,0E9h -450F:2442 03 27 28 00 1F 08 db 03h, 27h, 28h, 00h, 1Fh, 08h -450F:2448 00 23 01 00 0A 2B db 00h, 23h, 01h, 00h, 0Ah, 2Bh -450F:244E 09 00 23 0D 00 21 db 09h, 00h, 23h, 0Dh, 00h, 21h -450F:2454 08 00 2D 06 00 23 db 08h, 00h, 2Dh, 06h, 00h, 23h -450F:245A 0C 00 21 08 00 28 db 0Ch, 00h, 21h, 08h, 00h, 28h -450F:2460 23 0F 09 23 EE 03 db 23h, 0Fh, 09h, 23h,0EEh, 03h -450F:2466 27 0C 00 23 28 09 db 27h, 0Ch, 00h, 23h, 28h, 09h -450F:246C 21 08 00 28 1F 26 db 21h, 08h, 00h, 28h, 1Fh, 26h -450F:2472 00 23 0B 00 0A 2B db 00h, 23h, 0Bh, 00h, 0Ah, 2Bh -450F:2478 0C 00 23 2D 09 27 db 0Ch, 00h, 23h, 2Dh, 09h, 27h -450F:247E 10 00 23 01 00 21 db 10h, 00h, 23h, 01h, 00h, 21h -450F:2484 4E 00 23 92 10 21 db 4Eh, 00h, 23h, 92h, 10h, 21h -450F:248A 08 00 28 1F 4E 00 db 08h, 00h, 28h, 1Fh, 4Eh, 00h -450F:2490 21 08 00 28 23 34 db 21h, 08h, 00h, 28h, 23h, 34h -450F:2496 09 23 F0 03 27 0C db 09h, 23h,0F0h, 03h, 27h, 0Ch -450F:249C 00 23 35 09 21 08 db 00h, 23h, 35h, 09h, 21h, 08h -450F:24A2 00 28 23 92 10 21 db 00h, 28h, 23h, 92h, 10h, 21h -450F:24A8 08 00 1F 50 00 23 db 08h, 00h, 1Fh, 50h, 00h, 23h -450F:24AE 01 00 0A 2B 06 00 db 01h, 00h, 0Ah, 2Bh, 06h, 00h -450F:24B4 23 01 00 21 08 00 db 23h, 01h, 00h, 21h, 08h, 00h -450F:24BA 28 23 92 10 21 08 db 28h, 23h, 92h, 10h, 21h, 08h -450F:24C0 00 23 01 00 21 50 db 00h, 23h, 01h, 00h, 21h, 50h -450F:24C6 00 28 23 92 10 21 db 00h, 28h, 23h, 92h, 10h, 21h -450F:24CC 08 00 1F 52 00 23 db 08h, 00h, 1Fh, 52h, 00h, 23h -450F:24D2 01 00 0A 2B 06 00 db 01h, 00h, 0Ah, 2Bh, 06h, 00h -450F:24D8 23 05 00 21 08 00 db 23h, 05h, 00h, 21h, 08h, 00h -450F:24DE 28 23 92 10 21 08 db 28h, 23h, 92h, 10h, 21h, 08h -450F:24E4 00 23 01 00 21 52 db 00h, 23h, 01h, 00h, 21h, 52h -450F:24EA 00 28 23 55 09 23 db 00h, 28h, 23h, 55h, 09h, 23h -450F:24F0 2B 04 27 0C 00 23 db 2Bh, 04h, 27h, 0Ch, 00h, 23h -450F:24F6 58 09 21 08 00 28 db 58h, 09h, 21h, 08h, 00h, 28h -450F:24FC 23 00 00 21 56 00 db 23h, 00h, 00h, 21h, 56h, 00h -450F:2502 23 92 10 21 08 00 db 23h, 92h, 10h, 21h, 08h, 00h -450F:2508 28 23 00 00 21 58 db 28h, 23h, 00h, 00h, 21h, 58h -450F:250E 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:2514 00 28 1F 56 00 21 db 00h, 28h, 1Fh, 56h, 00h, 21h -450F:251A 08 00 28 1F 58 00 db 08h, 00h, 28h, 1Fh, 58h, 00h -450F:2520 21 08 00 28 23 0E db 21h, 08h, 00h, 28h, 23h, 0Eh -450F:2526 00 21 26 00 1F 70 db 00h, 21h, 26h, 00h, 1Fh, 70h -450F:252C 00 23 02 00 0A 2B db 00h, 23h, 02h, 00h, 0Ah, 2Bh -450F:2532 21 00 23 01 00 21 db 21h, 00h, 23h, 01h, 00h, 21h -450F:2538 5A 00 23 0D 00 23 db 5Ah, 00h, 23h, 0Dh, 00h, 23h -450F:253E EF 03 27 01 00 23 db 0EFh, 03h, 27h, 01h, 00h, 23h -450F:2544 00 00 23 28 00 23 db 00h, 00h, 23h, 28h, 00h, 23h -450F:254A 80 26 27 08 00 23 db 80h, 26h, 27h, 08h, 00h, 23h -450F:2550 92 10 21 08 00 1F db 92h, 10h, 21h, 08h, 00h, 1Fh -450F:2556 70 00 23 01 00 0A db 70h, 00h, 23h, 01h, 00h, 0Ah -450F:255C 2B 0C 00 23 0A 00 db 2Bh, 0Ch, 00h, 23h, 0Ah, 00h -450F:2562 21 08 00 23 33 27 db 21h, 08h, 00h, 23h, 33h, 27h -450F:2568 27 23 00 1F 70 00 db 27h, 23h, 00h, 1Fh, 70h, 00h -450F:256E 23 00 00 0A 2B 0C db 23h, 00h, 00h, 0Ah, 2Bh, 0Ch -450F:2574 00 23 32 27 27 23 db 00h, 23h, 32h, 27h, 27h, 23h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 650 - -450F:257A 00 23 09 00 21 08 db 00h, 23h, 09h, 00h, 21h, 08h -450F:2580 00 28 23 00 00 21 db 00h, 28h, 23h, 00h, 00h, 21h -450F:2586 70 00 23 92 10 21 db 70h, 00h, 23h, 92h, 10h, 21h -450F:258C 08 00 28 23 01 00 db 08h, 00h, 28h, 23h, 01h, 00h -450F:2592 21 70 00 23 92 10 db 21h, 70h, 00h, 23h, 92h, 10h -450F:2598 21 08 00 28 23 02 db 21h, 08h, 00h, 28h, 23h, 02h -450F:259E 00 21 70 00 23 92 db 00h, 21h, 70h, 00h, 23h, 92h -450F:25A4 10 21 08 00 28 1F db 10h, 21h, 08h, 00h, 28h, 1Fh -450F:25AA 5A 00 23 00 00 0A db 5Ah, 00h, 23h, 00h, 00h, 0Ah -450F:25B0 2B 06 00 23 01 00 db 2Bh, 06h, 00h, 23h, 01h, 00h -450F:25B6 21 08 00 28 1F 5A db 21h, 08h, 00h, 28h, 1Fh, 5Ah -450F:25BC 00 23 00 00 0C 2B db 00h, 23h, 00h, 00h, 0Ch, 2Bh -450F:25C2 06 00 23 01 00 21 db 06h, 00h, 23h, 01h, 00h, 21h -450F:25C8 08 00 28 23 24 00 db 08h, 00h, 28h, 23h, 24h, 00h -450F:25CE 21 08 00 1F 02 00 db 21h, 08h, 00h, 1Fh, 02h, 00h -450F:25D4 23 E9 03 0A 2B 06 db 23h,0E9h, 03h, 0Ah, 2Bh, 06h -450F:25DA 00 23 34 00 21 08 db 00h, 23h, 34h, 00h, 21h, 08h -450F:25E0 00 1F 70 00 23 01 db 00h, 1Fh, 70h, 00h, 23h, 01h -450F:25E6 00 0A 2B 37 00 1F db 00h, 0Ah, 2Bh, 37h, 00h, 1Fh -450F:25EC 04 00 23 33 27 0A db 04h, 00h, 23h, 33h, 27h, 0Ah -450F:25F2 2B 2D 00 23 00 00 db 2Bh, 2Dh, 00h, 23h, 00h, 00h -450F:25F8 21 08 00 23 01 00 db 21h, 08h, 00h, 23h, 01h, 00h -450F:25FE 21 5A 00 23 0D 00 db 21h, 5Ah, 00h, 23h, 0Dh, 00h -450F:2604 23 EF 03 27 01 00 db 23h,0EFh, 03h, 27h, 01h, 00h -450F:260A 23 00 00 23 28 00 db 23h, 00h, 00h, 23h, 28h, 00h -450F:2610 23 80 26 27 08 00 db 23h, 80h, 26h, 27h, 08h, 00h -450F:2616 23 6A 0B 1F 02 00 db 23h, 6Ah, 0Bh, 1Fh, 02h, 00h -450F:261C 23 EF 03 27 1D 00 db 23h,0EFh, 03h, 27h, 1Dh, 00h -450F:2622 1F 70 00 23 00 00 db 1Fh, 70h, 00h, 23h, 00h, 00h -450F:2628 0A 2B 37 00 1F 04 db 0Ah, 2Bh, 37h, 00h, 1Fh, 04h -450F:262E 00 23 32 27 0A 2B db 00h, 23h, 32h, 27h, 0Ah, 2Bh -450F:2634 2D 00 23 00 00 21 db 2Dh, 00h, 23h, 00h, 00h, 21h -450F:263A 08 00 23 01 00 21 db 08h, 00h, 23h, 01h, 00h, 21h -450F:2640 5A 00 23 00 00 23 db 5Ah, 00h, 23h, 00h, 00h, 23h -450F:2646 28 00 23 80 26 27 db 28h, 00h, 23h, 80h, 26h, 27h -450F:264C 08 00 23 0D 00 23 db 08h, 00h, 23h, 0Dh, 00h, 23h -450F:2652 EF 03 27 01 00 23 db 0EFh, 03h, 27h, 01h, 00h, 23h -450F:2658 69 0B 1F 02 00 23 db 69h, 0Bh, 1Fh, 02h, 00h, 23h -450F:265E EF 03 27 1D 00 1F db 0EFh, 03h, 27h, 1Dh, 00h, 1Fh -450F:2664 04 00 23 34 27 0A db 04h, 00h, 23h, 34h, 27h, 0Ah -450F:266A 2B 12 00 23 01 00 db 2Bh, 12h, 00h, 23h, 01h, 00h -450F:2670 21 08 00 23 73 0B db 21h, 08h, 00h, 23h, 73h, 0Bh -450F:2676 1F 02 00 23 EF 03 db 1Fh, 02h, 00h, 23h,0EFh, 03h -450F:267C 27 1D 00 28 23 02 db 27h, 1Dh, 00h, 28h, 23h, 02h -450F:2682 00 21 5A 00 28 23 db 00h, 21h, 5Ah, 00h, 28h, 23h -450F:2688 92 10 21 08 00 1F db 92h, 10h, 21h, 08h, 00h, 1Fh -450F:268E 5A 00 23 02 00 0A db 5Ah, 00h, 23h, 02h, 00h, 0Ah -450F:2694 2B 06 00 23 01 00 db 2Bh, 06h, 00h, 23h, 01h, 00h -450F:269A 21 08 00 28 23 28 db 21h, 08h, 00h, 28h, 23h, 28h -450F:26A0 27 27 32 00 23 92 db 27h, 27h, 32h, 00h, 23h, 92h -450F:26A6 10 21 08 00 23 03 db 10h, 21h, 08h, 00h, 23h, 03h -450F:26AC 00 21 5A 00 23 0F db 00h, 21h, 5Ah, 00h, 23h, 0Fh -450F:26B2 00 21 26 00 28 23 db 00h, 21h, 26h, 00h, 28h, 23h -450F:26B8 92 10 21 08 00 27 db 92h, 10h, 21h, 08h, 00h, 27h -450F:26BE 3B 00 28 23 10 00 db 3Bh, 00h, 28h, 23h, 10h, 00h -450F:26C4 21 26 00 23 92 10 db 21h, 26h, 00h, 23h, 92h, 10h -450F:26CA 21 08 00 28 23 11 db 21h, 08h, 00h, 28h, 23h, 11h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 651 - -450F:26D0 00 21 26 00 27 3C db 00h, 21h, 26h, 00h, 27h, 3Ch -450F:26D6 00 23 06 00 23 EF db 00h, 23h, 06h, 00h, 23h,0EFh -450F:26DC 03 27 31 00 23 92 db 03h, 27h, 31h, 00h, 23h, 92h -450F:26E2 10 21 08 00 28 23 db 10h, 21h, 08h, 00h, 28h, 23h -450F:26E8 12 00 21 26 00 23 db 12h, 00h, 21h, 26h, 00h, 23h -450F:26EE 08 00 23 EC 03 27 db 08h, 00h, 23h,0ECh, 03h, 27h -450F:26F4 31 00 23 92 10 21 db 31h, 00h, 23h, 92h, 10h, 21h -450F:26FA 08 00 28 23 0F 00 db 08h, 00h, 28h, 23h, 0Fh, 00h -450F:2700 EF23 data_1429 dw 0EF23h ; Data table (indexed access) -450F:2702 03 27 db 03h, 27h -450F:2704 0028 data_1430 dw 28h ; xref 450F:18FF -450F:2706 1F 08 00 23 00 00 db 1Fh, 08h, 00h, 23h, 00h, 00h -450F:270C 0A 2B db 0Ah, 2Bh -450F:270E 0006 data_1431 dw 6 ; Data table (indexed access) -450F:2710 23 92 10 21 08 00 db 23h, 92h, 10h, 21h, 08h, 00h -450F:2716 28 23 0F 00 23 EC db 28h, 23h, 0Fh, 00h, 23h,0ECh -450F:271C 03 27 28 00 1F 08 db 03h, 27h, 28h, 00h, 1Fh, 08h -450F:2722 00 23 00 00 0A 2B db 00h, 23h, 00h, 00h, 0Ah, 2Bh -450F:2728 06 00 23 92 10 21 db 06h, 00h, 23h, 92h, 10h, 21h -450F:272E 08 00 28 23 10 00 db 08h, 00h, 28h, 23h, 10h, 00h -450F:2734 21 26 00 28 23 1E db 21h, 26h, 00h, 28h, 23h, 1Eh -450F:273A 27 27 2C 00 23 00 db 27h, 27h, 2Ch, 00h, 23h, 00h -450F:2740 00 23 1E 00 23 60 db 00h, 23h, 1Eh, 00h, 23h, 60h -450F:2746 27 27 08 00 23 07 db 27h, 27h, 08h, 00h, 23h, 07h -450F:274C 00 23 EF 03 27 31 db 00h, 23h,0EFh, 03h, 27h, 31h -450F:2752 00 23 13 00 21 26 db 00h, 23h, 13h, 00h, 21h, 26h -450F:2758 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:275E 00 28 23 26 00 23 db 00h, 28h, 23h, 26h, 00h, 23h -450F:2764 EF 03 27 28 00 1F db 0EFh, 03h, 27h, 28h, 00h, 1Fh -450F:276A 08 00 23 00 00 0A db 08h, 00h, 23h, 00h, 00h, 0Ah -450F:2770 2B 0F 00 23 00 00 db 2Bh, 0Fh, 00h, 23h, 00h, 00h -450F:2776 23 0A 00 23 60 27 db 23h, 0Ah, 00h, 23h, 60h, 27h -450F:277C 27 08 00 2D 1C 00 db 27h, 08h, 00h, 2Dh, 1Ch, 00h -450F:2782 1F 26 00 23 15 00 db 1Fh, 26h, 00h, 23h, 15h, 00h -450F:2788 0C 2B 12 00 23 1E db 0Ch, 2Bh, 12h, 00h, 23h, 1Eh -450F:278E 27 27 2A 00 23 00 db 27h, 27h, 2Ah, 00h, 23h, 00h -450F:2794 00 23 02 00 23 9F db 00h, 23h, 02h, 00h, 23h, 9Fh -450F:279A 27 27 08 00 28 23 db 27h, 27h, 08h, 00h, 28h, 23h -450F:27A0 C5 09 27 10 00 23 db 0C5h, 09h, 27h, 10h, 00h, 23h -450F:27A6 C6 09 27 10 00 23 db 0C6h, 09h, 27h, 10h, 00h, 23h -450F:27AC C7 09 27 10 00 27 db 0C7h, 09h, 27h, 10h, 00h, 27h -450F:27B2 3D 00 28 1F 40 00 db 3Dh, 00h, 28h, 1Fh, 40h, 00h -450F:27B8 21 08 00 1F 08 00 db 21h, 08h, 00h, 1Fh, 08h, 00h -450F:27BE 23 00 00 0A 2B 09 db 23h, 00h, 00h, 0Ah, 2Bh, 09h -450F:27C4 00 23 01 00 21 08 db 00h, 23h, 01h, 00h, 21h, 08h -450F:27CA 00 2D 06 00 23 00 db 00h, 2Dh, 06h, 00h, 23h, 00h -450F:27D0 00 21 08 00 28 1F db 00h, 21h, 08h, 00h, 28h, 1Fh -450F:27D6 40 00 21 08 00 28 db 40h, 00h, 21h, 08h, 00h, 28h -450F:27DC 1F 5C 00 21 08 00 db 1Fh, 5Ch, 00h, 21h, 08h, 00h -450F:27E2 1F 08 00 23 00 00 db 1Fh, 08h, 00h, 23h, 00h, 00h -450F:27E8 0A 2B 06 00 23 92 db 0Ah, 2Bh, 06h, 00h, 23h, 92h -450F:27EE 10 21 08 00 28 23 db 10h, 21h, 08h, 00h, 28h, 23h -450F:27F4 00 00 23 07 00 23 db 00h, 00h, 23h, 07h, 00h, 23h -450F:27FA 1E 28 27 08 00 23 db 1Eh, 28h, 27h, 08h, 00h, 23h -450F:2800 00 00 23 01 00 23 db 00h, 00h, 23h, 01h, 00h, 23h -450F:2806 31 28 27 08 00 23 db 31h, 28h, 27h, 08h, 00h, 23h -450F:280C 01 00 21 5C 00 23 db 01h, 00h, 21h, 5Ch, 00h, 23h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 652 - -450F:2812 10 00 21 26 00 23 db 10h, 00h, 21h, 26h, 00h, 23h -450F:2818 92 10 21 08 00 28 db 92h, 10h, 21h, 08h, 00h, 28h -450F:281E 23 C4 09 23 EC 03 db 23h,0C4h, 09h, 23h,0ECh, 03h -450F:2824 27 13 00 23 09 00 db 27h, 13h, 00h, 23h, 09h, 00h -450F:282A 23 EC 03 27 31 00 db 23h,0ECh, 03h, 27h, 31h, 00h -450F:2830 28 23 C3 09 23 2C db 28h, 23h,0C3h, 09h, 23h, 2Ch -450F:2836 04 27 13 00 28 23 db 04h, 27h, 13h, 00h, 28h, 23h -450F:283C 00 00 23 01 00 23 db 00h, 00h, 23h, 01h, 00h, 23h -450F:2842 4E 28 27 08 00 23 db 4Eh, 28h, 27h, 08h, 00h, 23h -450F:2848 92 10 21 08 00 28 db 92h, 10h, 21h, 08h, 00h, 28h -450F:284E 23 EA 09 23 21 04 db 23h,0EAh, 09h, 23h, 21h, 04h -450F:2854 27 13 00 28 23 92 db 27h, 13h, 00h, 28h, 23h, 92h -450F:285A 10 21 08 00 23 30 db 10h, 21h, 08h, 00h, 23h, 30h -450F:2860 27 27 32 00 23 F3 db 27h, 27h, 32h, 00h, 23h,0F3h -450F:2866 09 27 10 00 23 00 db 09h, 27h, 10h, 00h, 23h, 00h -450F:286C 00 21 6E 00 28 1F db 00h, 21h, 6Eh, 00h, 28h, 1Fh -450F:2872 6E 00 21 08 00 28 db 6Eh, 00h, 21h, 08h, 00h, 28h -450F:2878 1F 72 00 23 00 00 db 1Fh, 72h, 00h, 23h, 00h, 00h -450F:287E 0A 2B 15 00 23 92 db 0Ah, 2Bh, 15h, 00h, 23h, 92h -450F:2884 10 21 08 00 23 00 db 10h, 21h, 08h, 00h, 23h, 00h -450F:288A 00 23 03 00 23 9E db 00h, 23h, 03h, 00h, 23h, 9Eh -450F:2890 28 27 08 00 2D 06 db 28h, 27h, 08h, 00h, 2Dh, 06h -450F:2896 00 23 01 00 21 08 db 00h, 23h, 01h, 00h, 21h, 08h -450F:289C 00 28 23 35 04 27 db 00h, 28h, 23h, 35h, 04h, 27h -450F:28A2 3E 00 28 23 29 27 db 3Eh, 00h, 28h, 23h, 29h, 27h -450F:28A8 27 2C 00 23 02 00 db 27h, 2Ch, 00h, 23h, 02h, 00h -450F:28AE 23 34 04 27 01 00 db 23h, 34h, 04h, 27h, 01h, 00h -450F:28B4 23 37 27 27 32 00 db 23h, 37h, 27h, 27h, 32h, 00h -450F:28BA 23 16 00 21 26 00 db 23h, 16h, 00h, 21h, 26h, 00h -450F:28C0 23 92 10 21 08 00 db 23h, 92h, 10h, 21h, 08h, 00h -450F:28C6 28 1F 74 00 23 00 db 28h, 1Fh, 74h, 00h, 23h, 00h -450F:28CC 00 0A 2B 09 00 23 db 00h, 0Ah, 2Bh, 09h, 00h, 23h -450F:28D2 92 10 21 08 00 2D db 92h, 10h, 21h, 08h, 00h, 2Dh -450F:28D8 06 00 23 03 00 21 db 06h, 00h, 23h, 03h, 00h, 21h -450F:28DE 08 00 28 23 82 0A db 08h, 00h, 28h, 23h, 82h, 0Ah -450F:28E4 23 36 04 27 0C 00 db 23h, 36h, 04h, 27h, 0Ch, 00h -450F:28EA 23 92 10 21 08 00 db 23h, 92h, 10h, 21h, 08h, 00h -450F:28F0 28 23 19 00 21 26 db 28h, 23h, 19h, 00h, 21h, 26h -450F:28F6 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:28FC 00 28 23 00 00 23 db 00h, 28h, 23h, 00h, 00h, 23h -450F:2902 02 00 23 11 29 27 db 02h, 00h, 23h, 11h, 29h, 27h -450F:2908 08 00 23 92 10 21 db 08h, 00h, 23h, 92h, 10h, 21h -450F:290E 08 00 28 23 E8 03 db 08h, 00h, 28h, 23h,0E8h, 03h -450F:2914 21 02 00 23 2A 00 db 21h, 02h, 00h, 23h, 2Ah, 00h -450F:291A 23 00 40 02 23 E7 db 23h, 00h, 40h, 02h, 23h,0E7h -450F:2920 00 23 1C 01 27 19 db 00h, 23h, 1Ch, 01h, 27h, 19h -450F:2926 00 23 02 00 21 98 db 00h, 23h, 02h, 00h, 21h, 98h -450F:292C 00 28 23 92 10 21 db 00h, 28h, 23h, 92h, 10h, 21h -450F:2932 08 00 23 00 00 23 db 08h, 00h, 23h, 00h, 00h, 23h -450F:2938 02 00 23 41 29 27 db 02h, 00h, 23h, 41h, 29h, 27h -450F:293E 08 00 28 23 E2 0A db 08h, 00h, 28h, 23h,0E2h, 0Ah -450F:2944 23 21 04 23 29 04 db 23h, 21h, 04h, 23h, 29h, 04h -450F:294A 27 1D 00 28 1F 4A db 27h, 1Dh, 00h, 28h, 1Fh, 4Ah -450F:2950 00 21 08 00 28 23 db 00h, 21h, 08h, 00h, 28h, 23h -450F:2956 46 0B 27 10 00 23 db 46h, 0Bh, 27h, 10h, 00h, 23h -450F:295C 92 10 21 08 00 28 db 92h, 10h, 21h, 08h, 00h, 28h -450F:2962 23 4C 0B 27 10 00 db 23h, 4Ch, 0Bh, 27h, 10h, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 653 - -450F:2968 23 31 27 27 32 00 db 23h, 31h, 27h, 27h, 32h, 00h -450F:296E 23 05 00 23 E8 03 db 23h, 05h, 00h, 23h,0E8h, 03h -450F:2974 27 22 00 23 92 10 db 27h, 22h, 00h, 23h, 92h, 10h -450F:297A 21 08 00 28 27 1C db 21h, 08h, 00h, 28h, 27h, 1Ch -450F:2980 00 23 42 0B 27 10 db 00h, 23h, 42h, 0Bh, 27h, 10h -450F:2986 00 23 31 27 27 06 db 00h, 23h, 31h, 27h, 27h, 06h -450F:298C 00 23 1D 27 27 32 db 00h, 23h, 1Dh, 27h, 27h, 32h -450F:2992 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:2998 00 28 23 A3 0F 23 db 00h, 28h, 23h,0A3h, 0Fh, 23h -450F:299E F2 03 27 0C 00 23 db 0F2h, 03h, 27h, 0Ch, 00h, 23h -450F:29A4 92 10 21 08 00 28 db 92h, 10h, 21h, 08h, 00h, 28h -450F:29AA 23 01 00 21 26 00 db 23h, 01h, 00h, 21h, 26h, 00h -450F:29B0 23 0A 00 23 F2 03 db 23h, 0Ah, 00h, 23h,0F2h, 03h -450F:29B6 27 31 00 23 92 10 db 27h, 31h, 00h, 23h, 92h, 10h -450F:29BC 21 08 00 28 23 01 db 21h, 08h, 00h, 28h, 23h, 01h -450F:29C2 00 21 26 00 23 0B db 00h, 21h, 26h, 00h, 23h, 0Bh -450F:29C8 00 23 F2 03 27 31 db 00h, 23h,0F2h, 03h, 27h, 31h -450F:29CE 00 23 92 10 21 08 db 00h, 23h, 92h, 10h, 21h, 08h -450F:29D4 00 28 23 01 00 21 db 00h, 28h, 23h, 01h, 00h, 21h -450F:29DA 26 00 23 0C 00 23 db 26h, 00h, 23h, 0Ch, 00h, 23h -450F:29E0 F2 03 27 31 00 23 db 0F2h, 03h, 27h, 31h, 00h, 23h -450F:29E6 92 10 21 08 00 28 db 92h, 10h, 21h, 08h, 00h, 28h -450F:29EC 23 0A 00 23 F2 03 db 23h, 0Ah, 00h, 23h,0F2h, 03h -450F:29F2 27 31 00 23 04 00 db 27h, 31h, 00h, 23h, 04h, 00h -450F:29F8 21 26 00 23 92 10 db 21h, 26h, 00h, 23h, 92h, 10h -450F:29FE 21 08 00 28 1F 7E db 21h, 08h, 00h, 28h, 1Fh, 7Eh -450F:2A04 00 21 08 00 28 23 db 00h, 21h, 08h, 00h, 28h, 23h -450F:2A0A 05 00 21 26 00 23 db 05h, 00h, 21h, 26h, 00h, 23h -450F:2A10 00 10 23 F2 03 27 db 00h, 10h, 23h,0F2h, 03h, 27h -450F:2A16 3F 00 23 92 10 21 db 3Fh, 00h, 23h, 92h, 10h, 21h -450F:2A1C 08 00 28 23 03 00 db 08h, 00h, 28h, 23h, 03h, 00h -450F:2A22 23 37 04 27 01 00 db 23h, 37h, 04h, 27h, 01h, 00h -450F:2A28 23 92 10 21 08 00 db 23h, 92h, 10h, 21h, 08h, 00h -450F:2A2E 28 23 71 0B 27 10 db 28h, 23h, 71h, 0Bh, 27h, 10h -450F:2A34 00 23 34 27 27 32 db 00h, 23h, 34h, 27h, 27h, 32h -450F:2A3A 00 23 92 db 00h, 23h, 92h -450F:2A3D loc_2373: -450F:2A3D 10 21 adc [bx+di],ah -450F:2A3F 08 00 or [bx+si],al -450F:2A41 28 23 sub [bp+di],ah -450F:2A43 0D 2100 or ax,2100h -450F:2A46 26: 00 23 add es:[bp+di],ah -450F:2A49 92 xchg dx,ax -450F:2A4A 10 21 adc [bx+di],ah -450F:2A4C 08 00 or [bx+si],al -450F:2A4E 28 1F sub [bx],bl -450F:2A50 4A dec dx -450F:2A51 00 23 add [bp+di],ah -450F:2A53 02 00 add al,[bx+si] -450F:2A55 0A 2B or ch,[bp+di] -450F:2A57 06 push es -450F:2A58 00 23 add [bp+di],ah -450F:2A5A 01 00 add [bx+si],ax -450F:2A5C 21 08 and [bx+si],cx -450F:2A5E 00 28 add [bx+si],ch -450F:2A60 23 91 270B and dx,ds:data_36e[bx+di] ; (0000:270B=113h) -450F:2A64 10 00 adc [bx+si],al - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 654 - -450F:2A66 23 92 270B and dx,[bp+si+270Bh] -450F:2A6A 10 00 adc [bx+si],al -450F:2A6C 23 92 2110 and dx,[bp+si+2110h] -450F:2A70 08 00 or [bx+si],al -450F:2A72 28 23 sub [bp+di],ah -450F:2A74 92 xchg dx,ax -450F:2A75 10 21 adc [bx+di],ah -450F:2A77 08 00 or [bx+si],al -450F:2A79 23 4D 01 and cx,[di+1] -450F:2A7C 23 42 04 and ax,[bp+si+4] -450F:2A7F 27 daa ; Decimal adjust -450F:2A80 0C 00 or al,0 -450F:2A82 28 23 sub [bp+di],ah -450F:2A84 24 27 and al,27h ; ''' -450F:2A86 27 daa ; Decimal adjust -450F:2A87 32 00 xor al,[bx+si] -450F:2A89 23 4C 0C and cx,[si+0Ch] -450F:2A8C 27 daa ; Decimal adjust -450F:2A8D 10 00 adc [bx+si],al -450F:2A8F 23 92 2110 and dx,[bp+si+2110h] -450F:2A93 08 00 or [bx+si],al -450F:2A95 28 23 sub [bp+di],ah -450F:2A97 92 xchg dx,ax -450F:2A98 10 21 adc [bx+di],ah -450F:2A9A 08 00 or [bx+si],al -450F:2A9C 23 56 0C and dx,[bp+0Ch] -450F:2A9F 27 daa ; Decimal adjust -450F:2AA0 10 00 adc [bx+si],al -450F:2AA2 23 01 and ax,[bx+di] -450F:2AA4 00 21 add [bx+di],ah -450F:2AA6 94 xchg sp,ax -450F:2AA7 00 28 add [bx+si],ch -450F:2AA9 23 71 01 and si,[bx+di+1] -450F:2AAC 23 27 and sp,[bx] -450F:2AAE 04 27 add al,27h ; ''' -450F:2AB0 0C 00 or al,0 -450F:2AB2 23 92 2110 and dx,[bp+si+2110h] -450F:2AB6 08 00 or [bx+si],al -450F:2AB8 28 23 sub [bp+di],ah -450F:2ABA 01 00 add [bx+si],ax -450F:2ABC 21 A2 2800 and [bp+si+2800h],sp -450F:2AC0 23 00 and ax,[bx+si] -450F:2AC2 00 21 add [bx+di],ah -450F:2AC4 A2 2800 mov ds:data_37e,al ; (0000:2800=12h) -450F:2AC7 1F pop ds -450F:2AC8 A4 movsb ; Mov [si] to es:[di] -450F:2AC9 00 23 add [bp+di],ah -450F:2ACB 00 00 add [bx+si],al -450F:2ACD 0A 2B or ch,[bp+di] -450F:2ACF 18 00 sbb [bx+si],al -450F:2AD1 23 2C and bp,[si] -450F:2AD3 00 23 add [bp+di],ah -450F:2AD5 32 00 xor al,[bx+si] -450F:2AD7 27 daa ; Decimal adjust -450F:2AD8 40 inc ax -450F:2AD9 00 1F add [bx],bl -450F:2ADB 0A 00 or al,[bx+si] - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 655 - -450F:2ADD 27 daa ; Decimal adjust -450F:2ADE 0D 2300 or ax,2300h -450F:2AE1 0C 00 or al,0 -450F:2AE3 21 A6 2D00 and [bp+2D00h],sp -450F:2AE7 3C 00 cmp al,0 -450F:2AE9 1F pop ds -450F:2AEA A4 movsb ; Mov [si] to es:[di] -450F:2AEB 00 23 add [bp+di],ah -450F:2AED 01 00 add [bx+si],ax -450F:2AEF 0A 2B or ch,[bp+di] -450F:2AF1 09 00 or [bx+si],ax -450F:2AF3 23 01 and ax,[bx+di] -450F:2AF5 00 27 add [bx],ah -450F:2AF7 0D 2D00 or ax,2D00h -450F:2AFA 29 00 sub [bx+si],ax -450F:2AFC 1F pop ds -450F:2AFD A4 movsb ; Mov [si] to es:[di] -450F:2AFE 00 23 add [bp+di],ah -450F:2B00 02 00 add al,[bx+si] -450F:2B02 0A 2B or ch,[bp+di] -450F:2B04 09 00 or [bx+si],ax -450F:2B06 23 0B and cx,[bp+di] -450F:2B08 00 27 add [bx],ah -450F:2B0A 0D 2D00 or ax,2D00h -450F:2B0D 16 push ss -450F:2B0E 00 1F add [bx],bl -450F:2B10 A4 movsb ; Mov [si] to es:[di] -450F:2B11 00 23 add [bp+di],ah -450F:2B13 03 00 add ax,[bx+si] -450F:2B15 0A 2B or ch,[bp+di] -450F:2B17 0C 00 or al,0 -450F:2B19 23 21 and sp,[bx+di] -450F:2B1B 00 27 add [bx],ah -450F:2B1D 0D 2300 or ax,2300h -450F:2B20 0C 00 or al,0 -450F:2B22 21 A6 1F00 and [bp+1F00h],sp -450F:2B26 A6 cmpsb ; Cmp [si] to es:[di] -450F:2B27 00 23 add [bp+di],ah -450F:2B29 0C 00 or al,0 -450F:2B2B 0E push cs -450F:2B2C 2B 0F sub cx,[bx] -450F:2B2E 00 23 add [bp+di],ah -450F:2B30 00 00 add [bx+si],al -450F:2B32 23 03 and ax,[bp+di] -450F:2B34 00 23 add [bp+di],ah -450F:2B36 C7 2A 27 08 00 2D db 0C7h, 2Ah, 27h, 08h, 00h, 2Dh -450F:2B3C 1B 00 23 00 00 21 db 1Bh, 00h, 23h, 00h, 00h, 21h -450F:2B42 A6 00 23 3C 00 23 db 0A6h, 00h, 23h, 3Ch, 00h, 23h -450F:2B48 C8 00 27 40 00 23 db 0C8h, 00h, 27h, 40h, 00h, 23h -450F:2B4E 00 00 1F 0A 00 23 db 00h, 00h, 1Fh, 0Ah, 00h, 23h -450F:2B54 C7 2A 27 08 00 28 db 0C7h, 2Ah, 27h, 08h, 00h, 28h -450F:2B5A 1F A4 00 23 01 00 db 1Fh,0A4h, 00h, 23h, 01h, 00h -450F:2B60 0A 2B 06 00 23 03 db 0Ah, 2Bh, 06h, 00h, 23h, 03h -450F:2B66 00 27 02 00 1F A8 db 00h, 27h, 02h, 00h, 1Fh,0A8h -450F:2B6C 00 23 01 00 02 21 db 00h, 23h, 01h, 00h, 02h, 21h -450F:2B72 A8 00 1F A8 00 23 db 0A8h, 00h, 1Fh,0A8h, 00h, 23h -450F:2B78 04 00 0A 2B 0F 00 db 04h, 00h, 0Ah, 2Bh, 0Fh, 00h - nlure.lst Sourcer v6.09 17-Nov- 5 5:53 pm Page 656 - -450F:2B7E 23 00 00 23 02 00 db 23h, 00h, 00h, 23h, 02h, 00h -450F:2B84 23 5A 2B 27 08 00 db 23h, 5Ah, 2Bh, 27h, 08h, 00h -450F:2B8A 2D 34 00 1F A8 00 db 2Dh, 34h, 00h, 1Fh,0A8h, 00h -450F:2B90 23 07 00 0E 2B 0F db 23h, 07h, 00h, 0Eh, 2Bh, 0Fh -450F:2B96 00 23 00 00 23 01 db 00h, 23h, 00h, 00h, 23h, 01h -450F:2B9C 00 23 5A 2B 27 08 db 00h, 23h, 5Ah, 2Bh, 27h, 08h -450F:2BA2 00 2D 1B 00 23 00 db 00h, 2Dh, 1Bh, 00h, 23h, 00h -450F:2BA8 00 21 A8 00 23 3C db 00h, 21h,0A8h, 00h, 23h, 3Ch -450F:2BAE 00 23 C8 00 27 40 db 00h, 23h,0C8h, 00h, 27h, 40h -450F:2BB4 00 23 00 00 1F 0A db 00h, 23h, 00h, 00h, 1Fh, 0Ah -450F:2BBA 00 23 5A 2B 27 08 db 00h, 23h, 5Ah, 2Bh, 27h, 08h -450F:2BC0 00 28 1F A4 00 23 db 00h, 28h, 1Fh,0A4h, 00h, 23h -450F:2BC6 01 00 0A 2B 06 00 db 01h, 00h, 0Ah, 2Bh, 06h, 00h -450F:2BCC 23 18 00 27 02 00 db 23h, 18h, 00h, 27h, 02h, 00h -450F:2BD2 23 14 00 23 96 00 db 23h, 14h, 00h, 23h, 96h, 00h -450F:2BD8 27 40 00 23 00 00 db 27h, 40h, 00h, 23h, 00h, 00h -450F:2BDE 1F 0A 00 23 C2 2B db 1Fh, 0Ah, 00h, 23h,0C2h, 2Bh -450F:2BE4 27 08 00 28 27 41 db 27h, 08h, 00h, 28h, 27h, 41h -450F:2BEA 00 28 23 12 00 27 db 00h, 28h, 23h, 12h, 00h, 27h -450F:2BF0 0D 00 28 23 15 00 db 0Dh, 00h, 28h, 23h, 15h, 00h -450F:2BF6 27 0D 00 28 23 0C db 27h, 0Dh, 00h, 28h, 23h, 0Ch -450F:2BFC 00 27 0D 00 28 23 db 00h, 27h, 0Dh, 00h, 28h, 23h -450F:2C02 0C 00 27 0D 00 28 db 0Ch, 00h, 27h, 0Dh, 00h, 28h -450F:2C08 23 15 00 27 0D 00 db 23h, 15h, 00h, 27h, 0Dh, 00h -450F:2C0E 28 23 0F 00 27 0D db 28h, 23h, 0Fh, 00h, 27h, 0Dh -450F:2C14 00 28 23 0E 00 27 db 00h, 28h, 23h, 0Eh, 00h, 27h -450F:2C1A 0D 00 28 23 15 00 db 0Dh, 00h, 28h, 23h, 15h, 00h -450F:2C20 27 42 00 1F 0A 00 db 27h, 42h, 00h, 1Fh, 0Ah, 00h -450F:2C26 21 08 00 1F 08 00 db 21h, 08h, 00h, 1Fh, 08h, 00h -450F:2C2C 23 00 00 0A 2B 06 db 23h, 00h, 00h, 0Ah, 2Bh, 06h -450F:2C32 00 23 19 00 27 0D db 00h, 23h, 19h, 00h, 27h, 0Dh -450F:2C38 00 28 23 19 00 27 db 00h, 28h, 23h, 19h, 00h, 27h -450F:2C3E 0D 00 28 23 04 00 db 0Dh, 00h, 28h, 23h, 04h, 00h -450F:2C44 27 0D 00 db 27h, 0Dh, 00h -450F:2C47 loc_2374: -450F:2C47 23 16 2701 and dx,ds:data_35e ; (0000:2701=2EE4h) -450F:2C4B 10 00 adc [bx+si],al -450F:2C4D 23 01 and ax,[bx+di] -450F:2C4F 00 21 add [bx+di],ah -450F:2C51 08 00 or [bx+si],al -450F:2C53 28 00 sub [bx+si],al -450F:2C55 000B[00] db 11 dup (0) - - scripts_seg ends - - - - ;-------------------------------------------------- messages_seg ---------- - - messages_seg segment byte public - assume cs:messages_seg, ds:messages_seg, ss:stack_seg_k - -47D5:0000 E8 data_1437 db 0E8h ; xref 273F:63CC -47D5:0001 03 5C 00 E9 03 EE db 03h, 5Ch, 00h,0E9h, 03h,0EEh -47D5:0007 00 11 04 EE 00 EA db 00h, 11h, 04h,0EEh, 00h,0EAh -47D5:000D 03 A0 01 12 04 EE db 03h,0A0h, 01h, 12h, 04h,0EEh -47D5:0013 00 EB 03 B6 01 F2 db 00h,0EBh, 03h,0B6h, 01h,0F2h -47D5:0019 03 E8 01 EC 03 F2 db 03h,0E8h, 01h,0ECh, 03h,0F2h -47D5:001F 03 ED 03 12 03 F1 db 03h,0EDh, 03h, 12h, 03h,0F1h -47D5:0025 03 DC 02 EE 03 76 db 03h,0DCh, 02h,0EEh, 03h, 76h -47D5:002B 03 F0 03 44 03 EF db 03h,0F0h, 03h, 44h, 03h,0EFh -47D5:0031 03 A8 03 29 04 46 db 03h,0A8h, 03h, 29h, 04h, 46h -47D5:0037 04 20 04 60 04 1F db 04h, 20h, 04h, 60h, 04h, 1Fh -47D5:003D 04 40 02 21 04 5E db 04h, 40h, 02h, 21h, 04h, 5Eh -47D5:0043 02 2B 04 78 02 36 db 02h, 2Bh, 04h, 78h, 02h, 36h -47D5:0049 04 B6 02 22 04 2C db 04h,0B6h, 02h, 22h, 04h, 2Ch -47D5:004F 04 27 04 12 02 42 db 04h, 27h, 04h, 12h, 02h, 42h -47D5:0055 04 92 02 34 04 AC db 04h, 92h, 02h, 34h, 04h,0ACh -47D5:005B 02 80 00 00 00 A1 db 02h, 80h, 00h, 00h, 00h,0A1h -47D5:0061 80 0B 00 EC 80 10 db 80h, 0Bh, 00h,0ECh, 80h, 10h -47D5:0067 00 68 80 11 00 0F db 00h, 68h, 80h, 11h, 00h, 0Fh -47D5:006D 8A 2D 00 08 81 12 db 8Ah, 2Dh, 00h, 08h, 81h, 12h -47D5:0073 00 1E 81 19 00 1F db 00h, 1Eh, 81h, 19h, 00h, 1Fh -47D5:0079 81 1A 00 82 80 02 db 81h, 1Ah, 00h, 82h, 80h, 02h -47D5:007F 00 89 80 06 00 83 db 00h, 89h, 80h, 06h, 00h, 83h -47D5:0085 80 03 00 88 80 04 db 80h, 03h, 00h, 88h, 80h, 04h -47D5:008B 00 A4 80 33 00 75 db 00h,0A4h, 80h, 33h, 00h, 75h -47D5:0091 00 05 00 9E 00 07 db 00h, 05h, 00h, 9Eh, 00h, 07h -47D5:0097 00 9F 00 08 00 A0 db 00h, 9Fh, 00h, 08h, 00h,0A0h -47D5:009D 00 09 00 76 00 0D db 00h, 09h, 00h, 76h, 00h, 0Dh -47D5:00A3 00 00 00 0E 00 09 db 00h, 00h, 00h, 0Eh, 00h, 09h -47D5:00A9 81 13 00 0A 81 14 db 81h, 13h, 00h, 0Ah, 81h, 14h -47D5:00AF 00 18 81 16 00 14 db 00h, 18h, 81h, 16h, 00h, 14h -47D5:00B5 81 17 00 13 81 18 db 81h, 17h, 00h, 13h, 81h, 18h -47D5:00BB 00 15 88 28 00 16 db 00h, 15h, 88h, 28h, 00h, 16h -47D5:00C1 81 1B 00 26 81 1C db 81h, 1Bh, 00h, 26h, 81h, 1Ch -47D5:00C7 00 2D 81 1D 00 2E db 00h, 2Dh, 81h, 1Dh, 00h, 2Eh -47D5:00CD 81 1E 00 2F 81 1F db 81h, 1Eh, 00h, 2Fh, 81h, 1Fh -47D5:00D3 00 73 80 21 00 37 db 00h, 73h, 80h, 21h, 00h, 37h -47D5:00D9 81 23 00 B1 8C 2F db 81h, 23h, 00h,0B1h, 8Ch, 2Fh -47D5:00DF 00 00 00 29 00 4A db 00h, 00h, 00h, 29h, 00h, 4Ah -47D5:00E5 81 2A 00 6D 81 2E db 81h, 2Ah, 00h, 6Dh, 81h, 2Eh -47D5:00EB 00 FF FF 80 00 00 db 00h,0FFh,0FFh, 80h, 00h, 00h -47D5:00F1 00 A1 00 0B 00 EC db 00h,0A1h, 00h, 0Bh, 00h,0ECh -47D5:00F7 00 10 00 08 01 12 db 00h, 10h, 00h, 08h, 01h, 12h -47D5:00FD 00 20 01 19 00 20 db 00h, 20h, 01h, 19h, 00h, 20h -47D5:0103 01 1A 00 6A 00 0F db 01h, 1Ah, 00h, 6Ah, 00h, 0Fh -47D5:0109 00 76 00 0D 00 82 db 00h, 76h, 00h, 0Dh, 00h, 82h -47D5:010F 00 02 00 83 00 03 db 00h, 02h, 00h, 83h, 00h, 03h -47D5:0115 00 88 00 04 00 A4 db 00h, 88h, 00h, 04h, 00h,0A4h -47D5:011B 00 33 00 72 01 06 db 00h, 33h, 00h, 72h, 01h, 06h -47D5:0121 00 75 00 05 00 9E db 00h, 75h, 00h, 05h, 00h, 9Eh -47D5:0127 00 07 00 9F 00 08 db 00h, 07h, 00h, 9Fh, 00h, 08h -47D5:012D 00 A0 00 09 00 7E db 00h,0A0h, 00h, 09h, 00h, 7Eh -47D5:0133 00 0A 00 7F 00 20 db 00h, 0Ah, 00h, 7Fh, 00h, 20h -47D5:0139 00 7B 00 24 00 76 db 00h, 7Bh, 00h, 24h, 00h, 76h -47D5:013F 00 01 00 76 00 0C db 00h, 01h, 00h, 76h, 00h, 0Ch -47D5:0145 00 76 00 2B 00 00 db 00h, 76h, 00h, 2Bh, 00h, 00h -47D5:014B 00 0E 00 E9 08 2C db 00h, 0Eh, 00h,0E9h, 08h, 2Ch -47D5:0151 00 68 00 11 00 18 db 00h, 68h, 00h, 11h, 00h, 18h -47D5:0157 01 16 00 17 01 17 db 01h, 16h, 00h, 17h, 01h, 17h -47D5:015D 00 76 00 18 00 76 db 00h, 76h, 00h, 18h, 00h, 76h -47D5:0163 00 1C 00 14 08 28 db 00h, 1Ch, 00h, 14h, 08h, 28h -47D5:0169 00 74 00 22 00 20 db 00h, 74h, 00h, 22h, 00h, 20h -47D5:016F 01 23 00 76 00 2F db 01h, 23h, 00h, 76h, 00h, 2Fh -47D5:0175 00 C8 08 29 00 77 db 00h,0C8h, 08h, 29h, 00h, 77h -47D5:017B 01 2A 00 20 01 1B db 01h, 2Ah, 00h, 20h, 01h, 1Bh -47D5:0181 00 20 01 1D 00 76 db 00h, 20h, 01h, 1Dh, 00h, 76h -47D5:0187 00 1E 00 76 00 1F db 00h, 1Eh, 00h, 76h, 00h, 1Fh -47D5:018D 00 20 01 21 00 68 db 00h, 20h, 01h, 21h, 00h, 68h -47D5:0193 00 13 00 34 01 14 db 00h, 13h, 00h, 34h, 01h, 14h -47D5:0199 00 6E 01 2E 00 FF db 00h, 6Eh, 01h, 2Eh, 00h,0FFh -47D5:019F FF 76 00 02 00 76 db 0FFh, 76h, 00h, 02h, 00h, 76h -47D5:01A5 00 06 00 76 00 0D db 00h, 06h, 00h, 76h, 00h, 0Dh -47D5:01AB 00 9B 00 0C 00 76 db 00h, 9Bh, 00h, 0Ch, 00h, 76h -47D5:01B1 00 2B 00 FF FF 82 db 00h, 2Bh, 00h,0FFh,0FFh, 82h -47D5:01B7 00 02 00 76 00 0D db 00h, 02h, 00h, 76h, 00h, 0Dh -47D5:01BD 00 00 00 03 00 00 db 00h, 00h, 00h, 03h, 00h, 00h -47D5:01C3 00 04 00 AE 0B 0A db 00h, 04h, 00h,0AEh, 0Bh, 0Ah -47D5:01C9 00 C0 0B 24 00 C3 db 00h,0C0h, 0Bh, 24h, 00h,0C3h -47D5:01CF 0C 31 00 76 00 01 db 0Ch, 31h, 00h, 76h, 00h, 01h -47D5:01D5 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:01DB 00 2B 00 D3 08 29 db 00h, 2Bh, 00h,0D3h, 08h, 29h -47D5:01E1 00 C3 0C 30 00 FF db 00h,0C3h, 0Ch, 30h, 00h,0FFh -47D5:01E7 FF 76 00 00 00 76 db 0FFh, 76h, 00h, 00h, 00h, 76h -47D5:01ED 00 11 00 76 00 0D db 00h, 11h, 00h, 76h, 00h, 0Dh -47D5:01F3 00 91 01 0A 00 90 db 00h, 91h, 01h, 0Ah, 00h, 90h -47D5:01F9 01 24 00 1C 10 20 db 01h, 24h, 00h, 1Ch, 10h, 20h -47D5:01FF 00 76 00 01 00 76 db 00h, 76h, 00h, 01h, 00h, 76h -47D5:0205 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:020B 00 92 01 29 00 FF db 00h, 92h, 01h, 29h, 00h,0FFh -47D5:0211 FF 76 00 01 00 82 db 0FFh, 76h, 00h, 01h, 00h, 82h -47D5:0217 00 02 00 B6 0B 0A db 00h, 02h, 00h,0B6h, 0Bh, 0Ah -47D5:021D 00 BA 0C 32 00 C7 db 00h,0BAh, 0Ch, 32h, 00h,0C7h -47D5:0223 0B 24 00 BD 0C 31 db 0Bh, 24h, 00h,0BDh, 0Ch, 31h -47D5:0229 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:022F 00 2B 00 76 00 0D db 00h, 2Bh, 00h, 76h, 00h, 0Dh -47D5:0235 00 8B 08 29 00 C5 db 00h, 8Bh, 08h, 29h, 00h,0C5h -47D5:023B 0C 30 00 FF FF B3 db 0Ch, 30h, 00h,0FFh,0FFh,0B3h -47D5:0241 0B 0A 00 C5 0B 24 db 0Bh, 0Ah, 00h,0C5h, 0Bh, 24h -47D5:0247 00 C2 0C 31 00 76 db 00h,0C2h, 0Ch, 31h, 00h, 76h -47D5:024D 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:0253 00 C5 08 29 00 C5 db 00h,0C5h, 08h, 29h, 00h,0C5h -47D5:0259 08 30 00 FF FF 76 db 08h, 30h, 00h,0FFh,0FFh, 76h -47D5:025F 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:0265 00 7A 08 29 00 01 db 00h, 7Ah, 08h, 29h, 00h, 01h -47D5:026B 09 24 00 B1 0B 0A db 09h, 24h, 00h,0B1h, 0Bh, 0Ah -47D5:0271 00 C3 0B 24 00 FF db 00h,0C3h, 0Bh, 24h, 00h,0FFh -47D5:0277 FF B5 0B 0A 00 76 db 0FFh,0B5h, 0Bh, 0Ah, 00h, 76h -47D5:027D 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:0283 00 57 09 29 00 57 db 00h, 57h, 09h, 29h, 00h, 57h -47D5:0289 09 30 00 4F 0B 24 db 09h, 30h, 00h, 4Fh, 0Bh, 24h -47D5:028F 00 FF FF 0B 0C 0A db 00h,0FFh,0FFh, 0Bh, 0Ch, 0Ah -47D5:0295 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:029B 00 2B 00 0E 0C 29 db 00h, 2Bh, 00h, 0Eh, 0Ch, 29h -47D5:02A1 00 C6 0C 30 00 0C db 00h,0C6h, 0Ch, 30h, 00h, 0Ch -47D5:02A7 0C 24 00 FF FF 76 db 0Ch, 24h, 00h,0FFh,0FFh, 76h -47D5:02AD 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:02B3 00 FF FF 76 00 0C db 00h,0FFh,0FFh, 76h, 00h, 0Ch -47D5:02B9 00 76 00 2B 00 35 db 00h, 76h, 00h, 2Bh, 00h, 35h -47D5:02BF 0B 29 00 01 09 24 db 0Bh, 29h, 00h, 01h, 09h, 24h -47D5:02C5 00 A9 0B 0A 00 BB db 00h,0A9h, 0Bh, 0Ah, 00h,0BBh -47D5:02CB 0C 32 00 B9 0B 24 db 0Ch, 32h, 00h,0B9h, 0Bh, 24h -47D5:02D1 00 C0 0C 31 00 C0 db 00h,0C0h, 0Ch, 31h, 00h,0C0h -47D5:02D7 0C 30 00 FF FF B7 db 0Ch, 30h, 00h,0FFh,0FFh,0B7h -47D5:02DD 0B 0A 00 C8 0B 24 db 0Bh, 0Ah, 00h,0C8h, 0Bh, 24h -47D5:02E3 00 BE 0C 31 00 76 db 00h,0BEh, 0Ch, 31h, 00h, 76h -47D5:02E9 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:02EF 00 76 00 01 00 82 db 00h, 76h, 00h, 01h, 00h, 82h -47D5:02F5 00 02 00 00 00 03 db 00h, 02h, 00h, 00h, 00h, 03h -47D5:02FB 00 00 00 04 00 76 db 00h, 00h, 00h, 04h, 00h, 76h -47D5:0301 00 0D 00 E9 0B 29 db 00h, 0Dh, 00h,0E9h, 0Bh, 29h -47D5:0307 00 C7 0C 30 00 E8 db 00h,0C7h, 0Ch, 30h, 00h,0E8h -47D5:030D 08 2C 00 FF FF AF db 08h, 2Ch, 00h,0FFh,0FFh,0AFh -47D5:0313 0B 0A 00 C1 0B 24 db 0Bh, 0Ah, 00h,0C1h, 0Bh, 24h -47D5:0319 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:031F 00 2B 00 76 00 01 db 00h, 2Bh, 00h, 76h, 00h, 01h -47D5:0325 00 82 00 02 00 00 db 00h, 82h, 00h, 02h, 00h, 00h -47D5:032B 00 03 00 00 00 04 db 00h, 03h, 00h, 00h, 00h, 04h -47D5:0331 00 76 00 0D 00 16 db 00h, 76h, 00h, 0Dh, 00h, 16h -47D5:0337 0B 29 00 16 0B 30 db 0Bh, 29h, 00h, 16h, 0Bh, 30h -47D5:033D 00 E8 08 2C 00 FF db 00h,0E8h, 08h, 2Ch, 00h,0FFh -47D5:0343 FF B4 0B 0A 00 C6 db 0FFh,0B4h, 0Bh, 0Ah, 00h,0C6h -47D5:0349 0B 24 00 76 00 0C db 0Bh, 24h, 00h, 76h, 00h, 0Ch -47D5:034F 00 76 00 2B 00 76 db 00h, 76h, 00h, 2Bh, 00h, 76h -47D5:0355 00 01 00 82 00 02 db 00h, 01h, 00h, 82h, 00h, 02h -47D5:035B 00 00 00 03 00 00 db 00h, 00h, 00h, 03h, 00h, 00h -47D5:0361 00 04 00 76 00 0D db 00h, 04h, 00h, 76h, 00h, 0Dh -47D5:0367 00 E8 0B 29 00 CA db 00h,0E8h, 0Bh, 29h, 00h,0CAh -47D5:036D 0C 30 00 E8 08 2C db 0Ch, 30h, 00h,0E8h, 08h, 2Ch -47D5:0373 00 FF FF B8 0B 0A db 00h,0FFh,0FFh,0B8h, 0Bh, 0Ah -47D5:0379 00 C9 0B 24 00 76 db 00h,0C9h, 0Bh, 24h, 00h, 76h -47D5:037F 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:0385 00 76 00 01 00 82 db 00h, 76h, 00h, 01h, 00h, 82h -47D5:038B 00 02 00 00 00 03 db 00h, 02h, 00h, 00h, 00h, 03h -47D5:0391 00 00 00 04 00 76 db 00h, 00h, 00h, 04h, 00h, 76h -47D5:0397 00 0D 00 EA 0B 29 db 00h, 0Dh, 00h,0EAh, 0Bh, 29h -47D5:039D 00 EA 0B 30 00 E8 db 00h,0EAh, 0Bh, 30h, 00h,0E8h -47D5:03A3 08 2C 00 FF FF AB db 08h, 2Ch, 00h,0FFh,0FFh,0ABh -47D5:03A9 0B 0A 00 BB 0B 24 db 0Bh, 0Ah, 00h,0BBh, 0Bh, 24h -47D5:03AF 00 0E 0A 2D 00 76 db 00h, 0Eh, 0Ah, 2Dh, 00h, 76h -47D5:03B5 00 0C 00 76 00 2B db 00h, 0Ch, 00h, 76h, 00h, 2Bh -47D5:03BB 00 76 00 01 00 82 db 00h, 76h, 00h, 01h, 00h, 82h -47D5:03C1 00 02 00 00 00 03 db 00h, 02h, 00h, 00h, 00h, 03h -47D5:03C7 00 00 00 04 00 76 db 00h, 00h, 00h, 04h, 00h, 76h -47D5:03CD 00 06 00 76 00 0D db 00h, 06h, 00h, 76h, 00h, 0Dh -47D5:03D3 00 76 09 29 00 76 db 00h, 76h, 09h, 29h, 00h, 76h -47D5:03D9 09 30 00 E8 08 2C db 09h, 30h, 00h,0E8h, 08h, 2Ch -47D5:03DF 00 80 00 00 00 A1 db 00h, 80h, 00h, 00h, 00h,0A1h -47D5:03E5 00 0B 00 9D 0C 10 db 00h, 0Bh, 00h, 9Dh, 0Ch, 10h -47D5:03EB 00 CB 0C 34 00 FF db 00h,0CBh, 0Ch, 34h, 00h,0FFh -47D5:03F1 FF AD 0B 0A 00 BD db 0FFh,0ADh, 0Bh, 0Ah, 00h,0BDh -47D5:03F7 0B 24 00 BF 0C 31 db 0Bh, 24h, 00h,0BFh, 0Ch, 31h -47D5:03FD 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:0403 00 2B 00 76 00 01 db 00h, 2Bh, 00h, 76h, 00h, 01h -47D5:0409 00 82 00 02 00 00 db 00h, 82h, 00h, 02h, 00h, 00h -47D5:040F 00 03 00 00 00 04 db 00h, 03h, 00h, 00h, 00h, 04h -47D5:0415 00 76 00 0D 00 71 db 00h, 76h, 00h, 0Dh, 00h, 71h -47D5:041B 09 29 00 BF 0C 30 db 09h, 29h, 00h,0BFh, 0Ch, 30h -47D5:0421 00 E8 08 2C 00 75 db 00h,0E8h, 08h, 2Ch, 00h, 75h -47D5:0427 00 05 00 FF FF AC db 00h, 05h, 00h,0FFh,0FFh,0ACh -47D5:042D 0B 0A 00 BC 0B 24 db 0Bh, 0Ah, 00h,0BCh, 0Bh, 24h -47D5:0433 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:0439 00 2B 00 D5 08 29 db 00h, 2Bh, 00h,0D5h, 08h, 29h -47D5:043F 00 D5 08 30 00 FF db 00h,0D5h, 08h, 30h, 00h,0FFh -47D5:0445 FF B2 0B 0A 00 C4 db 0FFh,0B2h, 0Bh, 0Ah, 00h,0C4h -47D5:044B 0B 24 00 76 00 0C db 0Bh, 24h, 00h, 76h, 00h, 0Ch -47D5:0451 00 76 00 2B 00 D2 db 00h, 76h, 00h, 2Bh, 00h,0D2h -47D5:0457 08 29 00 C8 0C 30 db 08h, 29h, 00h,0C8h, 0Ch, 30h -47D5:045D 00 FF FF AA 0B 0A db 00h,0FFh,0FFh,0AAh, 0Bh, 0Ah -47D5:0463 00 BC 0C 32 00 BA db 00h,0BCh, 0Ch, 32h, 00h,0BAh -47D5:0469 0B 24 00 C1 0C 31 db 0Bh, 24h, 00h,0C1h, 0Ch, 31h -47D5:046F 00 76 00 0C 00 76 db 00h, 76h, 00h, 0Ch, 00h, 76h -47D5:0475 00 2B 00 D7 08 29 db 00h, 2Bh, 00h,0D7h, 08h, 29h -47D5:047B 00 C9 0C 30 00 FF db 00h,0C9h, 0Ch, 30h, 00h,0FFh -47D5:0481 FF 00 db 0FFh, 00h -47D5:0483 000D[00] db 13 dup (0) - - messages_seg ends - - - - ;------------------------------------------------------ stack_seg_k ---- - - stack_seg_k segment word stack 'STACK' - -481E:0000 03E8[00] db 1000 dup (0) -481E:03E8 33 33 db 33h, 33h -481E:03EA 0190[00] db 400 dup (0) -481E:057A 55 55 db 55h, 55h -481E:057C 0190[00] db 400 dup (0) - - stack_seg_k ends - - - - end start - - ±±±±±±±±±±±±±±±±±±±± CROSS REFERENCE - KEY ENTRY POINTS ±±±±±±±±±±±±±±±±±±± - - seg:off type label - ---- ---- ---- -------------------------------- - 273F:0000 far start - 273F:0944 far critical_handler - 273F:48C6 far timer_handler - 273F:94DB far keyboard_handler - - ±±±±±±±±±±±±±±±±±± Interrupt Usage Synopsis ±±±±±±±±±±±±±±±±±± - - Interrupt 10h : Video display ah=functn xxh - Interrupt 10h : ah=00h set display mode in al - Interrupt 10h : ah=05h set display page al - Interrupt 10h : ah=0Fh get state, al=mode, bh=page - Interrupt 10h : ax=1002h set palette regs from es:dx - Interrupt 10h : ax=1012h set cx color registers from - Interrupt 10h : ah=12h EGA/VGA special, bl=function - Interrupt 10h : ax=1A00h get display type in bx - Interrupt 11h : Put equipment bits in ax - Interrupt 21h : DOS Services ah=function xxh - Interrupt 21h : ah=06h special char i/o, dl=subfunc - Interrupt 21h : ah=09h display char string at ds:dx - Interrupt 21h : ah=0Eh set default drive dl (0=a:) - Interrupt 21h : ah=19h get default drive al (0=a:) - Interrupt 21h : ah=25h set intrpt vector al to ds:dx - Interrupt 21h : ah=30h get DOS version number ax - Interrupt 21h : ax=3300h get ctrl-break flag in dl - Interrupt 21h : ax=3301h set ctrl-break flag dl=off/on - Interrupt 21h : ah=35h get intrpt vector al in es:bx - Interrupt 21h : ah=3Ch create/truncate file @ ds:dx - Interrupt 21h : ah=3Dh open file, al=mode,name@ds:dx - Interrupt 21h : ah=3Eh close file, bx=file handle - Interrupt 21h : ah=3Fh read file, bx=file handle - Interrupt 21h : ah=40h write file bx=file handle - Interrupt 21h : ah=42h move file ptr, bx=file handle - Interrupt 21h : ah=48h allocate memory, bx=bytes/16 - Interrupt 21h : ah=4Ah change memory allocation - Interrupt 21h : ah=4Ch terminate with al=return code - Interrupt 21h : ah=62h get Program Segment Prefix bx - Interrupt 33h : Mouse driver ax=func xxxxh - Interrupt 33h : ax=0000h installed?, ax=0 no, =-1 yes - Interrupt 33h : ax=0003h get position, cx=horz,dx=vert - Interrupt 33h : ax=0004h set position, cx=horz,dx=vert - Interrupt 33h : ax=0007h set horz range, cx=min,dx=max - Interrupt 33h : ax=0008h set vert range, cx=min,dx=max - Interrupt 33h : ax=000Bh read motion counters, cx & dx - Interrupt 33h : ax=000Ch set user handler at es:dx - - ±±±±±±±±±±±±±±±±±± I/O Port Usage Synopsis ±±±±±±±±±±±±±±±±±± - - Port 0 : DMA-1 bas&add ch 0 - Port 3 : DMA-1 bas&cnt ch 1 - Port 20h : 8259-1 int command - Port 20h : al = 20h, end of interrupt - Port 40h : 8253 timer 0 clock - Port 42h : 8253 timer 2 spkr - Port 43h : 8253 timer control - Port 82h : DMA page reg ch 3 - Port 3C4h : EGA sequencr index - Port 3C4h : al = 2, map mask register - Port 3C8h : VGA pel address - Port 3C9h : VGA pel data reg - Port 3CEh : EGA graphic index - Port 3CEh : al = 3, data rotate - Port 3CEh : al = 4, read map select - Port 3CEh : al = 5, mode - Port 3CEh : al = 7, ignore color bits - Port 3CEh : al = 8, data bit mask - Port 3DAh : CGA/EGA vid status - 29 Ocurrences of non-standard I/O ports used (search for ??). - diff --git a/engines/lure/disassembly/Lure_notes.txt b/engines/lure/disassembly/Lure_notes.txt deleted file mode 100644 index 0b95e8583c..0000000000 --- a/engines/lure/disassembly/Lure_notes.txt +++ /dev/null @@ -1,1473 +0,0 @@ -Methods -======= -action_dispatch - Dispatches an action for being handled - Input: si = Hotspot record - bx = ??? - -add_sequence_delay - Adds in a sequence to be executed after a given delay - of tick procs - Input: bx = Sequence offset - cx = Number of ticks delay - dl = ??? - -animation_draw - Wrapper for the [add_animation_proc] lookup method for - drawing an animation onto the screen - Input: ax = Animation index in animation table - bx = Frame number - -animation_decode - Decodes the data for an animation into compressed nibble - format - Input: bx = Pointer to data: [bx] = animation disk resource id - -animation_decode_inner - Handles the decoding of an animation disk resource - Input: dx:si = Start of data following header - es = Output for decoded resource - Output: di = size of decoded data - -animation_find_slot - Finds the first free animation slot in memory. If no slots - are free, the returned pointer points to the last slot - Output: di = Returns a pointer to the free slto - -animation_load/animation_load_2 - Makes a hotspot 'active' by loading it into - the active hotspot list (aka. the animation list). - Input: load => bx = resource Id - load_2 => si = offset of hotspot record - -animation_load_entry - Not sure if this method is just for loading animations; it - does some checks, and if passed, then takes the word at offset - 9h in the resource and jumps to that location. In calls I've - seen so far, this is 7167h, which then calls animation_load - Input: bx = Resource Id for animation entry - -animation_load_entry_2 - Alternate form of the animation load - Input: si = Animation resource - -animation_resolve_segment - Resolves the segment at which an animation begins, - taking care of preparing the data for the animation - Input: bx = pointer to animation entry - Output: ax = segment - CF = If set, skip the animation - -animation_set_entry - Sets the details for an animation slot entry - Input: ax = Decoded animation segment - bx = Offset of animation record - dl = Colour offset for animation - -animation_tick - Every frame calls the defined handler proc for any active - hotspots (ie. that are loaded into the animation list) - -animation_unload/animation_unload_2 - Removes a hotspot from the active hotspot - list. Both are almost the same except animation_unload additionally - sets field 0Bh of the hotspot (the offset in the animation list where - a hotspot is loaded) to zero. - -animations_preload - Decodes any animations ilsted for the current room, based - on a system list. This is likely intended to improve performance on - low end systems, as it means the bulk of animations are already decoded - before a new screen is faded in - -animations_preload_ticks - Handles repeatably calling the animation tick method - for hotspots in a room several times before the room is displayed - -char_face_up/char_face_down/char_face_left/char_face_right - Faces the character - represented by a given hotspot in the given direction - Input: si = Hotspot record - di = Animation slot - -character_change_room - Changes the current room for a given character - Input: current_hotspot = Character hotspot Id - dx = New room number - cx = New X position - bx = New Y position - -character_change_room_check_bumped - Called as part of character_change_room - to check whether there is any bump occurring - -character_check_room_change - Checks whether the given character is within the - bounds of a room exit, and if so, handles moving the player to - the new room - Input: si = Character hotspot Id - di = Chracter animation slot - -character_face_hotspot - Makes a given character face a given hotspot - Input: di = Character animation slot - si = Hotspot record being used - -character_face_hotspot_2 - Makes a given character face a given hotspot - Input: ax = Character Id - bx = Hotspot Id of object being used - -character_find_impinging_chars - Scans through the animation list for any - characters whose position is impinging that of the given character - Input: di = Character animation slot - -character_pathfind_clear - Checks the pathfinding set flag for the given hotspot, - and if it set (ie. the hotspot has it's covering cells in the - pathfinding layer for the room set), then clears the flag and - clears the accompanying pathfinding cells - Input: ax = Character Id - bx = Destination X - cx = Destination Y - - -character_pathfind - Handles pathfinding a segment of a walking path to a - given destination - Input: ax = character Id - bx = Dest X Pos - cx = Dest Y Pos - dl = Hotspot[4Ch] - Output: bx = Pointer to list of walking segments that gets built - ax = 0 => pathfinding still needed - 1 => end of pathfinding reached (destination clear) - 2 => end of pathfinding reached (destination blocked) - 3 => end of pathfinding reached (no path to dest) - 4 => end of pathfinding reached (no walking possible) - -character_paused_list_check - Checks a list of impinging characters for - characters, and if there isn't an entry in the paused list, - adds a new one - Input: di = Animation slot - -character_paused_list_countdown - Decrements by one any current entries in the - list of characters that currently need to be paused - -character_paused_list_reset - Resets any current entries in the paused - characters list for the specified hotspot to a countdown value - of 1 so they will expire in the next frame - Input: di = Animation slot - -character_paused_list_scan - Scans the paused list for any entry for the - specified hotspot, and if found, resets it back to a wait - counter of 15 - Input: di = Animation slot - -character_reset_direction - Rounds off the given character's position, and sets - their current frame to the default frame for the character's - current direction - Input: si = Character hotspot record - di = Character animation slot - -character_set_random_dest - Chooses a random destination for a given character, - within a rectangle specified in the room data - Input: si = Character hotspot record - di = Character animation slot - bx = Offset to a current action record within the character hotspot - -character_start_walking - Starts the character walking towards a given position - Input: si = Character hotspot record - cx = Destination X - dx = Destination Y - -character_translate_movements - Translates a set of instructions of movement - instructions into a set of offsets to movement records - (containing frame number sequence and position changes) for each - direction, followed by the number of steps to go in that direction - Input: si = Hotspot offset - dx = Offset to a sequence of source movement data to process, - which consist of a repeating set of number of steps followed - by a direction number. It ends with a step count of 0ffffh - Output: Hotspot[HS_MOVEMENT_SRC_OFFSET] => translated movement data - -character_update_frame - Handles updating a character's current frame in a - movement sequence each tick. - Output: ax = 1 => for end of the path finding list (ie. at destination), - 0 => Some walking still remaining - -character_walking_check - Scans through a list for X/Y proximity for different - hotspots, and if the character is not within proximity, starts - the character walking to it - Input: si = character hotspot record - di = character animation slot, - bx = Pointer to current action record ( - Output: ax => 1 = No movement was required, 0 = Wakling has started - -characters_impinging_check - Checks to see if the given character is close enough - to the player - Input: bx = First character hotspot record - si = Second character hotspot record - Output: ax = 1 -> Characters are close together, 0 -> Characters are not - -check_for_impinging_characters - Scans through the animation list for any - animations that are impinging the specified character - Input: si = Character hotspot record - Output: ZF = Set => Character found, Clear => No character found - bx = animation slot of found character - -check_keypress - Non-blocking method to return the next pending keypress, if any - Output: zero-flag = if set, indicates no key was pending - al = character - -clear_layer_rects - Clears the data structure storing the status of each 32x32 - rect in each layer of a room - -confirm_quit - Displays a dialog asking the user whether they want to quit - Output: ZF = If set, indicates the user wants to quit - -copy_rectangle - Copys a 32x32 rectangular area from a source buffer to a - destination buffer - Input: ds:si = Position of rectangle in source screen buffer - es:di = Position to place rectangle in destination screen buffer - Output: dx = If non-zero, indicates that at least one pixel was non-zero - -copy_protection_check - Performs the copy protection check. Note that in the - English version of the game supplied by Revolution, this has been cracked. - This is - -decode_character - Decodes a character from a compressed bit-stream of text - Input: DL = current bit position for read is set - DS:SI = current byte to read data from - Output: AL = output byte - -decode_character_and_hotspot_names - Decodes the names of both the current - talking character as well as the active hotspot. Note that the - input and output fields/buffers are hardcoded, and not passed - to the method - Input: al = A value of zero suppresses adding the prefix - -decode_file_entry - Decodes a file resource, normally a graphics screen - Input: dx = source data segment - es = destination segment (for example, A000h for direct to screen) - - Output: es:0 holds decoded data - dx = first segment beyond the end of the decoded data - -decode_string - Decodes a string resource from a compressed bit-stream - Input: es:di = output buffer for string - ax = Id for string - -decode_string_init - Initialises a source pointer for decoding a compressed - bit-stream string - Input: ax = Id for string - Output: ds:si = address of compressed string - dl = Starting bit position for reading string - - -decode_hotspot_name - Decodes the name of a hotspot, prefixing with the - correct article of 'a', 'an', or 'the' - -decode_and_fade_in_display - Decodes the data for a given screen, and then fades it into - view by using the defined fade in proc for the given video mode - Input: [buffer_segment1] = Loaded entry data - -display_dialog - Displays a dialog with a given String Id's text - Input: bx = String resource Id - -display_message - Displays a message to the user - ax = messagae index in table of messages - dh = 0=>non fatal error, 1=>fatal error - If a fatal error, function does not return - -display_message_dialog - Uses the message segment data to look up the - specific response to an action for a specific character - Input: cx = character Id - ?? - -display_message_dialog_3 - Uses the message segment data to look up the - specific response to an action for a specific character - Input: ax = Message Id. Commonly stored in the sequence field for - hotspot actions, and identified by the high bit being set - si = Character hotspot record - di = Player animation slot - -door_close_check - Checks the passed hotspot, which is one half of a doorway, - to make sure there's no character within it, preventing closing - Input: bx = Hotspot offset - Output: al = 1 => Door can close, 0 => Door can't close - -draw_dialog_frame - Draws the frame for a dialog in an off-screen buffer - Input: es:di = Destination buffer - bx = Horizontal size of dialog - 16 - dx = Vertical size of dialog - 18 - -flag_covered_cells - Marks any of the 32x32 rectangles making up the screen - that are covered by the given hotspot as being enabled. This - is used for optmisation that extra layers only add for areas - that may need to cover hotspots - Input: di = animation slot - - -floating_dialog_mouse_check - Checks to see if a floating talk dialog is present, - the text has completed, and the mouse is inside it. - Output: floating_dialog_close_flag: 1=conditions met, 0=not met - al=1, ZF=clear -> conditions not met, al=0, ZF=set -> not met - -get_entry_size - Returns the size of the specified resource in paragraphs. - Input: ax = Resource Id - Output: dx = number of paragraphs - -get_room_resource_pointer/2 - Gets a pointer to a data block of information for - a given hotspot or room - Input: bx = Id for _pointer, ax = Id for _pointer2 - Output: si = pointer to data block - -get_room_resource_pointer3/4 - Gets a pointer to the header entry for a given - hotspot or room - Input: bx = Id for _pointer3, ax = Id for _pointer4 - Output: si = pointer to header entry - -hotspot_action_precheck - Does the common prechecking for hotspot actions, - such as whether the player needs to walk to it or not - Input: ax = Hotspot Id to be used - si = Character hotspot record - di = Character animation slot - Output: al = 3 => Player is starting to walk to hotspot - -hotspot_get_action_sequence - Returns a script offset for the given action on - a hotspot - Input: bx = Hotspot record - Output: ax = Sequence offset if found, or 0 otherwise - zf = clear if a sequence offset was found - -hotscript_script_execute - Executes a given hotspot's script - Input: si = pointer to hotspot resource - di = pointer to animation slot - -hotspot_disable - Disables a hotspot from being highlightable - Input: bx = Hotspot Id - -hotspot_enable - Enables a hotspot that was previously disabled - Input: bx = Hotspot Id - -hotspots_load - Loads any hotspots registered for the current room into the - animation list, automatically checking to prevent duplicates from - being added. - -hotspots_unload - Unloads all hotspots from the animation list that don't have - the special hotspot Id of 0ffffh - -increment_action_offset - Moves the current action offset for the given - character to the next record position - Input: si = Character hotspot record - -install_palette - Installs a sub-palette of 64 entries from a set of palettes, - each of which is 64*3 bytes long - Input: ax = index of sub-palette in list of sub-palettes - palette_segment = Segment set of palettes was loaded into - -is_roomexit_hotspot - Checks whether the given hotspot Id is in the list of - of room exit hotspots - Input: si = Pointer to list of hotspots - ax = 0 if hotspot found, 1 if not - -load_pic_with_animation - Loads up a picture that has animation data after it, - as well as the following resource, which contains the animation - line segment offsets and lengths - Input: AX = Id of the resource - -menu_create_popmenu - Creates a popup menu in an off-screen buffer - -menu_make_selections - Shows a dialog with an arbitrary list of selections. - Returns the selectd item index, or ffffh for no selection made - Input: dx/ax = bitset for actions to display - Output: ax = selected item Id - -menu_make_selections_select - Does the actual display of a right-click menu - and make the selection - Output: ax = selected Id - -menubar_copy_to_screen - Copies the data from an off-screen buffer onto - the secreen - -menubar_clear_menu - Clears the data segment occupied by the menubar - -menubar_create_menu - Creates a drop down menu for display - Input: SI = Pointer to data table describing menu - -menuitem_show_credits - Shows the game credits - -mouse_wait - Goes in a loop of resetting the game palette until a held down - mouse button is released - -open_file - opens up a .vga data file (if not already open), validates that - it's file number is correct, and loads the entry table into memory - Input: [file_handle] - -open_file2 - sets the default drive to the specified drive and then calls - the open_file method - Input: al=drive number - -pathfind_reset - Resets the pathfinder for the specified character - Input: ax = Character hotspot Id - -pathfind_clear_covered_cells - Clears the cells covered by the base of a given - animation from being occupied in the path finding data block. This - prevents characters from walking through each other - Input: di = Animation slot - -pathfind_flag_covered_cells - Flags the cells covered by the base of a given - animation as occupied in the path finding data block. This - prevents characters from walking through each other - Input: di = Animation slot - -pathfind_get_cell - Returns the byte and bit index for the given animation's - position in the pathfinding data block for the room - Input: di = Animation slot - Output: bx = Byte offset in path finding data block - ax = Bit mask indicating which bit - cx = Number of bits covering the width of the animation - ZF = If set, animation is not onscreen - -pathfind_populate_cells - Helper method used by character_pathfind to populate - a decompressed array indicating which areas of a room are walkable - with incrementing numbers emnating from the destination. This is - later used to figure out a walkable path by going from cell to - cell in order of decrementing index to get from source to dest - -pathfind_scan_line - Support method for the character_pathfind, and is used to - scan in a given direction - Input: bp = Starting position - bx = Destination position - cx = Number of loops - di = Change amount for each loop - dl = max value for comparison - Output: bx = New destination position - dl = New maximum - -pathfind_return_to_sp - Creates a breaking point during processing of the - character_pathfind method such that the next time character_pathfind - is called, it will pick up after the call to pathfind_return_to_sp - -pause_for_input - Waits until either a key or a mouse button is pressed - -player_inc_inventory_items - Checks if the specified hotspot is the player, - and if so, increments the counter for the number of inventory - items the player currently has - Input: si = Character hotspot record - -popmenu_populate_list - Populates the contents of the list used to define - what is displayed in the right-click popup menu - Input: dx:ax = Bitset indicating which actions should be displayed, in - order of their placement in the action list - -prepare_ask_item_list - Creates a list of menuitems for the things a character - can be asked for - Input: ax = Action index whose context to generate the list for - -protection_cycle_characters - Cycles through a single frame in the list of - possible characters in the copy protection check and displays them - on screen. - -protection_draw_characters - A wrapper method for drawing both of the - current characters to the screen - Input: ax = frame number for left card animation - bx = frame number for right card animation - -random - Returns a pseudo-random number - Output: ax = Random value - -read_and_validate_header - Reads in the header of the .vga file and validates - that it's valid - -read_bit - Reads in a specified bit from ds:si, and shifts the bit mask one bit - to the right, resetting it back to 80h (and incrementing SI) if the - set bit was 1h - Input: dl = Current bitmask - ds:si = data source - Output: dl = New bitmask position - al = and'ed value from ds:si - ZF = Set if the bit was turned on in the value - SI = If dl was 1h at input, then SI = SI+1 else SI=SI - -read_screen - Reads in the specified screen resource, and optionally a palette - if the screen is the first layer to be processed for a given room - Input: ax = Screen Id - -read_entry - Outer method for reading an entry - finds and reads in the entry - with the specified Id - Input: ax = Id of entry (bits 15-16 are file # 0 - 3), rest are Id bits - cx:dx = buffer for entry - Output: dx = first segment following end of read in data - -read_entry_into_buffer - Another outer method for reading an entry - reads the - specified entry into [buffer_segment]:80h - Input: ax = Id of entry - Output: dx = first segment following end of read in data - -read_file_entry - Reads in an entry from the file - Input: es:dx - Output buffer to store data in - bx = File start position in 20h block increments - cx = Size of entry to read in - bp = If bp=1, file size is actually 8000h plus the size in CX - -read_into_buffer/read_into_buffer_2 - reads entry into the buffer space, and - then increments the pointer so future reads will be read at a - point beyond the loaded entry - Output: ax = segment of loaded entry - dx = segment following end of loaded entry - -read_palette - Reads in the palette from the specified Id resource - Input: ax = Id of entry (which is passed onto read_entry) - -read_screen - Reads and decodes a screen into data_segment2. It may also - be taking care of adding in any animations - Input: ax = room/id number - -replace_vga_palette - Replaces two sections of the loaded palette with a - preset alternate set: 60 entries starting at palette index #129, - and 8 entries at palette index #220 - -room_add_animations - Adds the player and any room animations to the off-screen - buffer data_segment2 - -room_check_cursors - Checks the position of the mouse within the current room - to see whether the cursor needs to change (such as for moving over - a hotspot) or on the menubar area - -room_check_hotspots - Compares the mouse position against given hotspot lists? - Input: dx = room number - di = offset of info table - bp = Starting offset number for table - -room_check_x_extents - Checks whether a given hotspot's position is within - the clipping x range for the room - Input: si = Hotspot - Output: ax = 0 = Hotspot within valid range, 1 = otherwise - -room_exit_get_coordinates - Gets the walking coordinates for the exit from - a given room into a secondary room - Input: ax = Starting room - bx = Destination room - Output: cx = X-coordinate - dx = Y-coordinate - ax = Next room number - -room_exit_hs_get_pointer - Scans through a list of room exit hotspots that - connect to each other. - Input: ax = Hotspot Id - Output: si = Record Id for room exit hotspot join - bx = 2 or 8, representing whether the hotspot was #1 or #2 in the record - -room_exit_play_sound - Plays a sound for a room exit opening or closing if the - player is in the same room - Input: si = Room exit join record - bx = Index of active hotspot in join record - cx = 1 for door closing, 0 for door opening - -room_handle_click - Checks to see if the mouse has been clicked, and if so, - handles the various things that can be done, such as closing floating - dialogs, showing the right-click menu, etc. - -room_load_layers - Reads in the layers associated with a room - -room_show_rightclick_menu - Shows the right-click menu. If the mouse is over a - hotspot, it gives that item's action menu. Otherwise, it gives the - default room Look/Status menu. The method returns when an item is - selected - Output: ???? - -screen_fade_in - Fades in an already loaded screen, by using the defined fade in - routine in the video methods lookup table - -screen_fade_out - Fades out the screen, by using the defined fade out routine - in the video methods lookup table - -screen_set_palette - Sets the default game palette, using the defined lookup method - -set_upper_vga_palette - Sets the last 16 palette entries of the VGA palette to a - predefined set of colours - -sequence_execute - Outer execution method for handling a sequence of script instructions. - Input: ax = Pointer to script set. See tables section for instruction formats - Output: ax = sequence result value - zf = set if the result value is zero - -sequence_execute_inner - Inner handling method for script instructions - Input: si = Pointer to script set - -show_introduction - Shows the introduction sequence - -show_arrow_cursor - Shows the arrow cursor - -show_disk_cursor - Shows the disk cursor - -show_startup - Shows the starting screens of the game, and then calls the - show_introduction method to show the animated introduction sequence - -skorl_knockout - Runs the animation sequence of a Skorl knocking out the player - -sleep - Sleeps for a given number of clock cycles (each being 1/18th of a second) - Input: ax = number of cycles [Note: I think it's from the start of the - game or the last time the method was called] - -sleep_with_kbd_mouse_break - Pause with breakout by keypress and mouse - Input: ax = timeout in cy cles - Output: carry = breakout occurred - zero = if set, indicates Escape was pressed - -start_talk_noone - Starts a character talking with no designated destination - character (ie. they're talking to themselves) - Input: bx = Chacter Id - cx = String Id - -talk_add_voice_animation - Adds an animation entry of a talk bubble, which - gets displayed above a designated character - Input: di = Hotspot slot - -talk_clear_line - Clears the talk line at a specified index. Each talk line - occupies 8 lines - Input: ax = Index of talk line to clear - -talk_countdown_handler - Handles the counting down of conversation dialogs - Input: si = Character hotspot - bx = Pointer to a current action record for character - -talk_dialog_init - Initialises a talk dialog for display - Input: si = Name of character speaking - di = Speaking text - data_433 = Character hotspot Id - -talk_setup_3 - Sets the necessary flags to display a talk dialog - Input: al = 1 (??? blocking talk dialog [you can't move until it's closed]) - cx = Hotspot Id of character talking to - dx = Talk text string Id - si = Hotspot record for character doing talking - -talk_toggle_line_highlight - Toggles the highlight on a line being displayed - to allow the user to select a talk option - Input: ax = Index of talk line - -toggle_menu_highlight - Toggles the highlighting of a menu name in the - off-screen copy of a menu - Input: DI = X Pixel start position on screen - BX = Width in pixels of area - data_segment2 = segment of off-screen menubar copy - -validate_header - Validates the header of the loaded file - ah = bits 6-7 is file number - -vga_fade_in - Fades in a given graphic screen by cycling each palette index - from black to the destination RGB value in increments of one - -wait_for_video_port - Pauses until the video port indicates that it's ready - to rceeive data - -word_wrap_string - Word wraps the passed string to a given maximum width - by - Input: di = Text to process - - -Lookup Method Table -=================== -This is a set of procs lookup list that is set to different methods for EGA -and VGA methods - -add_animation_proc - Adds an animation or character frame onto the screen. - Input: es:si = source pixel data location - bx = Offset of data for animation (see tables later for animation format) - -copy_screen_proc - Copys a screen from [misc_segment]:0 to the screen. Also sets - up bp:si and dx:bx in preparation for an animation. Coupled with - load_pic_with_animation that loads a resource with animation data - Input: misc_segment - Specifies the segment holding the screen data - Output: bp:si - Address of the first byte following the end of the data - dx:bx - Address of first byte following decoded data segment data - -display_character_proc - Copys a specified character to a graphic buffer - Input: al = ASCII character - es:di = Position within screen of character start - bp = segment of font, which starts at the space character (32), and - each character takes up 8 bytes. Each byte represents one line, - with each bit representing whether a pixel is on or off - dh = Colour to create character as - -draw_talk_dialog_proc - Draws the frame for a talk dialog - Input: es:di = Buffer to store drawn dialog in - - -menu_items_proc - Haven't investigated this method yet. It does get used by - the right-click popup menu to display the items - -pic_decode_proc - Handles the RLE decoding of a picture onto the screen - Input: dx:bx = Set of copy slice lengths and screen inc amounts in a repeating - sequence. Each value can be 1 non-zero byte, or a zero byte - followed by a two byte length - bp:si = Raw data for transfer to the screen. The data block pointed - to by dx:bx tells how wide each line slice will be - Output: dx:bx = First byte after end of length/inc data - bp:si = First byte after end of transfer data block - -read_screen - Reads in a screen with the given Id, decodes it, and also loads - in a palette with the given Id - 1 - Input: ax = resource Id of the screen - -read_screen_alt - Reads in a screen with the given Id, decodes it, and also - loads in a palette with the given Id - 1 - Input: ax = resource Id of the screen - -remove_area_proc - Restores the area of screen previously hidden by a menu - Input: di = x start position - bx = width - -segment_screen_proc - Segments the screen into 32x32 rectangles, and sets up - an array of incrementing rectangle numbers for rectangles that - have pixels in them - Input: es:di = pointer to decoded screen - bx = buffer to store status of each screen rectangle - cl = layer number (0 to 3) [Note: layer is only used to see if it's - layer 0 background.. for the background all rectangles are - considered "filled in"] - -set_palette_proc - Sets the palette to the default palette - -show_screen_proc - Responsible for displaying a screen from data_segment2 to the - screen specified in [screen_start_seg]. It uses an array specified - by display_mask to specify 10x6 sets of 32x32 rectangles for whether - to display each rectangle on the screen. - -toggle_menu_highlight_proc - Toggles the highlighting of a menu header - Input: DI = X Pixel start position on screen - BX = Width in pixels of area - data_segment2 = segment of off-screen menubar copy - -word_wrap_string - Applies carriage returns in-sequence to a passed string to - ensure it fits into a given dialog area - Input: - -NPC Script Methods -================== -NPC schedules are set up by having a single ACTION_DISPATCH current action in -the NPC's hotspot record (at offset 63h), with a support record pointer -pointing to the start of a sequence of instructions using action numbers -greater than that of all standard actions. As part of the handling of these -"high number" instructions is an incrementing of the offset for the support -data so that the NPC instructions are handled sequentially. - -The table below lists the special methods list. Each entry is represented in -the support data table by a word for the action's value, followed by any -support data as indicated by the method. - -Index Method -===== ======= - 28 npc_set_hotspot5e(uint16 roomNumber, uint16 hs5e) - Sets both the current room number on the hotspot's current action entry, - as well as word offset 5eh in the character's hotspot record - 29 npc_unknown_1() - ??? - 30 npc_execute_script_proc(uint16 offset) - Causes the execution of the script at the given offset - 31 npc_unknown_2() - Sets the currently unknown words at hs[42h] and hs[44h], and calls a - method to scan for an entry for the hotspot in the hotspot action list - 32 npc_set_random_dest() - Sets the character's destination position randomly within the area - rectangle specified for the room - 33 npc_walking_check(uint16 hotspotId) - Ensures that the given hotspot is in the same room as the character, - and if so, makes a walking check which starts the character walking if - the hotspot is not within reach proximity - 34 npc_set_support_offset(uint16 offsetId) - Sets the offset for support data in the current action. So it can, for - example, reset an NPC back to the start of it's script - 35 npc_set_support_offset_conditional(uint16 sequenceOffset, uint16 offsetId) - Executes the given script, and if the return is non-zero, then sets the - current action's support data offset to the given offset. If not, the - support data offset, moves on to the following record - 36 npc_dispatch_action(uint16 hotspotId, uint16 offsetId) - Handles the execution of an action, including standard action prechecks - 37 npc_unknown_3(uint16 v1, uint16 v2, uint16 v3, uint16 v4) - ??? - 38 npc_unknown_4(uint16 unused, uint16 v) - Sets hs[42h] = v - 39 npc_start_talking(uint16 messageId, uint16 destCharId???) - This method, I think, causes the character to say the specified message - to the given destination character - 40 npc_jump_to_address(uint16 offset) - Jumps execution to the specified address in the game's code segment - - -Misc Notes -============ -VGA Files ---------- -* Entries with a length of 294h are palettes -* At least entry Id #48, #49 are MIDI music with a MThd block -* Entry Id #10, #15 are code blocks for playing music -* Entry Id #50 is a set of sub-palettes.. a sub palette contains palette entries - for the first 64 palette entries (each 3 bytes). This entry contains 5 sub-palettes - -VGA File Mapping -================ -This isn't complete; just some resource Ids I noted down for future reference: - -$0001 - Set of 26 16x16 cursors, each taking up 256 bytes -$0004 - Font set: starting with space character, each character taking 8 bytes -$0005 - Menubar -$000A - Music handler code block -$0010 - Strings resource (compressed - see decode_string & decode_string_init) -$0018 - Revolution title screen -$0019 - Revolution title palette -$001A - Virgin games title screen -$001B - Virgin games title palette -$001C - Lure of the Temptress title screen -$001D - Lure of the Temptress title palette -$001E - Virtual Threatre title screen -$001F - Virtual Threatre title palette -$0021 - Palette for final introduction screen -$0022 - Animation for final screen -$0032 - Another copy of the menubar - -$0040 - Animation for introduction sequence -$0041 - Animation for introduction sequence -$0042 - Animation for introduction sequence -$0043 - Animation for introduction sequence -$0044 - Animation for introduction sequence -$0045 - Animation for introduction sequence -$0046 - Animation for introduction sequence -$0047 - Animation for introduction sequence -$0048 - Animation for introduction sequence -$0049 - Animation for introduction sequence - -$4100 - First screen, first layer -$7900 - Restart/Restore screen - - - -Data Structure Notes -==================== -There are four main lists embedded in the executable, each of which -represents a different range of Ids. Each entry consists of 9 bytes -[see get_room_resource_pointer]. The first two bytes represents an -offset to the specific data for the room. - - Resource data: - Offset Size Meaning - ------ ---- ------- - 0h 2 Offset for the resource entry - either room or hotspot data - An entry of 0ffffh means the end of the list - 2h 2 For the room list, it's the room number, for the hotspot - lists, it's the string Id for the hotspot name - 4h 2 For rooms, the string Id for room description, for - hotspots it's the look at description Id - 6h 2 Alternate look at description for hotspots. I think - this only comes into player for takable items to give - the description when it hasn't yet been picked up - 8h 1 ??? - -For the room list, the format of the room records pointed to are as below: - - Room data: - Offset Size Meaning - ------ ---- ------- - 6h 2 Offset for a list of offsets to pixel blocks for the - room - 8h 1 Number of layers in room - 9h 8 List of resource Id's for room. Either equal to number - of layers, or # layers + 1 for rooms with extra overlay - (such as image of cell bars when looking through into cell) - 11h 2 Sequence offset for room, or ffffh for none - 13h 2 The current tick time counter is stored here when a - room is exited - 17h 1 ??? - 18h 1 Index into table of 8 byte entries starting at ds:2EB1h - 19h 2 X start for defining valid horizontal areas where hotspots - can be highlighted - 1Bh 2 X end, or 0 to indicate no end - 1Dh ?? Start of room change script. See below: - -The room data record is ended by zero or more room change records, followed by -an ending ffffh value. The format of each record is as follows: - - Offset Size Meaning - ------ ---- ------- - 0 2 X start - 2 2 X end - 4 2 Y start - 6 2 Y end - 8 2 Sequence offset. If the value is ffffh, then the following - four fields come into play. Note that this means that - the record can be one of two sizes, dependant on the - value of this field - Ah 1 New room character direction: - 80h=up, 40h=down, 20h=left, 10h=right - Bh 1 New room number - Ch 2 New room X position - Eh 2 New room Y position - -The format of hotspots are as follows: - - Hotspot tables: - Offset Size Meaning - ------ ---- ------- - 0h 4 Bitset for available actions - 3h 1 Flags: Meaning unknown, but the following actions apply: - bit 7 = skip checking bit 6 - bit 6 = Skip over entry - bit 5 = Skip over entry - 4h 2 Offset for actions table - 6h 2 Room number for hotspot. For hotspots that can be - inventory items, this can also be the Hotspot Id of - the character holdign the item. - 8h 1 Script flag - a non-zero value indicates that the value - at offset 9h is a script offset to execute. Otherwise, - the offset is treated as a code subroutine, and jumped to - Also used by non-visual hotspots to indicate the direction - to face the character in when an action is performed on - the hotspot - 9h 2 Script sequence to execute, or offset for loading - routine for hotspot. So far I'm aware of two code routines: - 7167h = stub method that calls animation_load - 3afeh = copy protection check - Bh 2 Stores offset of animation slot entry the resouce has - been loaded into - Dh 2 X start position + 80h - Fh 2 Y start position + 80h - 11h 2 Width of hotspot - 13h 2 Height of hotspot - 15h 1 Animation's layer. Animations are added in to a scene in - order of layer 3, layer 1, then layer 2. Animations in - layer 1 are added in order of the hotspot's bottom row - 16h 1 ??? Flags byte? - 17h 2 Tick handler proc offset - 19h 2 Copy of hotspot width - 1Bh 2 Copy of hotspot height - 1Dh 2 Y correction. Currently only known use is as a Y - correction factor when checking if a character is in - an exit region - 1fh 2 Timeout decrement value for frame change - 21h 2 Pointer to memory containing disk resource Id for the - pixel data for the hotspot's animation (or possibly - static image) - 23h 1 Colour offset start for source pixel data - 24h 2 Offset for data in scripts2_seg, used in - hotspot_script_execute. Also seems to be used by - characters (including the player) as a table offset - containing data for movement sequence - 26h 2 Step counter - used as in incrementor when a character - is moving in a direction to determine when they have - reached the requisite number of steps required before - moving to the next direction in a path-finding sequence - 28h 2 Frame offset - used as a pointer within the movement - frames for a given direction to quickly retrieve the - position change and frame number in a walking sequence - - used along with offset 26h to handling walking - 2Ah 1 A counter used to determine the number of times the - action precheck method has been called within the - handling of an action - 2Bh 2 ??? - 2Dh 2 Script Id of a hotspot the character is to use - 2Fh 2 Hotspot Id of a hotspot the character is to use - 33h 2 ??? Talk data record - 35h 1 x offset within character for speech bubble - 36h 1 y offset within character for speech bubble - 37h 2 ??? - 39h 2 Stores the hotspot Id of the character being talked to - 3Ch 2 Stores the String Id of a response - 42h 2 ??? Copy of selected hotspot - 44h 1 ??? 0 or 2 for further actions in player_tick_proc - ??? Copy of low byte of selected hotspot - 45h 2 Hotspot Script Id to execute each tick for NPCs - 47h 2 Hotspot Id to use. - 49h 1 Flags whether the hotspot has currently got the cells - of the pathfinding (walkable areas) layer that it's - base occupies as covered - 4Ch 1 Only known use so far is in character pathfinding, where - if 0, introduces a jz $+2 delay at one point, that is not - even inside of a loop. This flag may thus be an artefact - of early code that was no longer used in the final build - 50h 2 Character direction: 80h=up, 40h=down, 20h=left, 10h=right - 52h 2 Hotspot Id for selected hotspot - 54h 2 X ending position for character + 80h - 10h - 56h 2 Y ending position for character + 80h - 5Ah 2 For player and other characters indicates the - assigned offset in the data segment to load the - details of movement frames. Note that this gets copied - to offset 24h for use at runtime. - 60h 1 ??? - 61h 2 Index into the table starting at 63h of the hotspot - 63h 3*? First slot for pending player actions. Each slot - consists of three bytes: a single byte command Id, and - an offset to a support data record. - -Movement sequence -================= -When a character has to move, sub_90 is - - -Character actions -================= -Character hotspots have a buffer for a set of current actions. Each record -of this list consists of 5 bytes, with the following format: - - Offset Size Meaning - ------ ---- ------- - 0 1 Currenat atcion - 1 2 Pointer to support data structure - 3 2 ?? May be room number action occurs in - -The possible commands are listed below: - - Command - ------- - 01 = Start walking - Support data: - word value = 0 - - 02 = Dispatch action* - Support data: - word value = action to perform - word value = hotspot Id of selected hotspot - word value = used hotspot Id - [03] = Room Number - - 03 = Execute Script - - 04 = Processing walking path - - 05 = Walking in progress - - -* Note that actions (both looking at a hotspot and all other actions) are -handled by doing an initial dispatch of the action, then a standard walk sequence, -and finally dispatching the action again when the player is at the appropriate -proximity to the hotspot - - -Actions Table -============= -The actions table offset points to a list that indicates any actions for the -hotspot that have script sequences attached to them. The table has the following -format: - - Offset Size Meaning - ------ ---- ------- - 0 2 Number of items in the list - --------- repeated: - 2 1 Action number - 3 2 Sequence offset - --------- - -Animation Resources -=================== -The raw data for animations is stored in disk resources. They have the following -format: - - - A single word containing the number of header entries - - A table of words of the previously given number, each representing - the number of nibbles in the uncompressed data (ie. number of bytes * 2). - Note that the pixel data starts at offset 40h of the uncompressed data, - as the first 40h bytes are used by the decompression process. - - -In addition to the four hotspot lists, there is a master hotspot list, which -contains co-ordinate overrides for some of the hotspots: - - Hotspot data: - Offset Size Meaning - ------ ---- ------- - 0 2 Id for hotspot to override - 2 2 X start - 4 2 X end - 6 2 Y start - 8 2 Y end - - -The animation list is made up of a set of animation entry slots, of which there -are 45 entries, each 29h bytes big, and can be loaded dynamically at runtime -from hotspot entries. FURTHER NOTE: Animation list may be a bit of a misnaming -of it - a better name may be "active hotspots" list, since entries in the list -aren't necessarily animated. - - Offset Size Meaning - ------ ---- ------- - 0h 2 X start position + 80h - 2h 2 Y start position + 80h - 4h 2 Width of animation - 6h 2 Height of animation - 8h 2 Pointer to the start of the current frame for the animation. - Ah 2 Storage for caching of animation start segment. This is - filled out at runtime the first time the animation is to - be displayed at runtime - Ch 1 Animation's layer. Animations are added in to a scene in - order of layer 3, layer 1, then layer 2. Animations in - layer 1 are added in order of the hotspot's bottom row - Dh 1 ??? Flags byte? - Eh 2 Room number for animation - 10h 1 ?? Flag for whether to keep animation active between rooms? - Loader defaults it to 1, but loads using 7167h afterwards - sets this back to zero - 11h 2 Tick handler proc offset - called every frame for hotspots - loaded into the animation table where [0Ch] is non-zero - 13h 2 Copy of the animation width - this and the height copy are - used in some areas to, for example, vary the strict - Y ordering of objects in a scene (for example, Ratpouch - has a larger height copy to make him appear on top of - the rack rather than behind it). - 15h 2 Copy of the animation height - 17h 2 Y correction. Currently only known use is as a Y - correction factor when checking if a character is in - an exit region - 19h 2 Offset of the original resource record used to load this - animation entry. - 1Bh 2 Hotspot Id of the entry. Can also be 0ffffh, which seems - to be a special code for the player (don't know yet if - it's used elsewhere as well) - 1Dh 1 If non-zero, hotspots in layer 1 will be skipped - 1Eh 2 So far it's only known use is to store the hotspot Id - of the character the special 'voice' animation is - associated with - 22h 2 Related to direction handling: 0 for up/down, - 4 for left/right - 24h 2 So far it's only known use is as a countdown timer - for closing the special "voice" animation shown on - top of characters when they're speaking - 26h 1 Character direction: 0=up, 1=down, 2=left, 3=right - 27h 1 ??? Set to 1 by animation loader 1 - 28h 1 Colour offset start for source pixel data - 4Ah 2 ??? Countdown of some form; changed by the action - countdown list - -The animation list is built up at runtime one entry at a time from hotspot -resources specified in an instruction sequence. The first sequence executed is -at 23FCh, and is part of the game startup, and the initial resoruce Id is #3e8, -which equates to 6cefh. - - -Animation disk resource records -------------------------------- -The animation disk resource record has the following format: - - Offset Size Meaning - ------ ---- ------- - 0h 2 Disk resoucre Id of the animation pixels to use - 2h 1 Flags. Known values: - Bit Description - --- ----------- - 2 If set, takes the first word of the decoded data - as the frame offset. I think this used elsewhere - as well - this flag may indicate an animation that - contains an offset table for the frames, rather than - the standard form, where all frames are the same size - 3h 2 Cached copy of loaded pixel data segment - 7h 2 Frame size for decoded animation data - 9h 2 Offset for -Y movement records - Bh 2 Offset for +Y movement records - Dh 2 Offset for -X movement records - Fh 2 Offset for +X movement records - 11h 1 Starting up direction frame number - 12h 1 Starting down direction frame number - 13h 1 Starting left direction frame number - 14h 1 Starting right direction frame number - -A movement record represents data needed for a single frame of a character's -movement. It is represented as a set of 6 byte records of the format listed -below. The end of the set of the set of records is represented by 0ffffh. - - Offset Size Meaning - ------ ---- ------- - 0 2 Frame number to display - 2 2 16-bit signed integer representing the change in the - X position - 4 2 16-bit signed integer representing the change in the - Y position - - -W2 description --- ----------- - 1 * Store offset from PIXEL+0Dh, then word (W1+3)>>2 - 2 * Store offset from PIXEL+0Fh, then word (W1+3)>>2 - 3 * Store offset from PIXEL+0Bh, then word (W1+1)>>1 - 4 * Store offset from PIXEL+09h, then word (W1+1)>>1 - - - - -Room Exits ----------- -A table of the offsets of the room exit records for each room is stored at -room_exits_table. An offset of zero for a particular room indicates there are -no exits. - -The exits for a given room are a series of one or more records of 14 bytes each, -with a word value of 0 following the final entry. The structure of a record is -described below. Note that all co-ordinates are expressed with an offset of 80h. - - Offset Size Meaning - ------ ---- ------- - 0h 2 X start of exit area rectangle - 2h 2 X end of exit area rectangle - 4h 2 Y start of exit area rectangle - 6h 2 Y end of exit area rectangle - 8h 2 Cursor number to use - Ah 2 Hotspot Id associated with exit. This can be, for example, - 2711h for the hotspot Id of the Cell Door in the first room. - For exits which are always unblocked, the Id will be 0. - Ch 2 Destination room number - -There is also a table of room exit hotspots. This contains records containing -all room exit hospots, with the table set up with the hotspots that are joined -together (such as either side of the cell door in room #1 and #2) appearing in -the same record. Each record is 17 bytes long, and the format is as follows: - - Offset Size Meaning - ------ ---- ------- - 0h 2 First hotspot Id of the pair - 2h 1 Current frame number for hotspot #1 - 3h 1 Ending frame number for hotspot #1 - 4h 1 Sound for hotspot #1 opening - 5h 1 Sound for hotspot #1 closing - 6h 2 Second hotspot Id of the pair - 8h 1 Current frame number for hotspot #2 - 9h 1 Ending frame number for hotspot #1 - Ah 1 Sound for hotspot #1 opening - Bh 1 Sound for hotspot #2 closing - Ch 1 If zero, then exit is currently active. Non-zero - indicates that the exit is blocked - Dh 2 Pointer to first hotspot's record - Fh 2 Pointer to second hotspot's record - - -Sequence Table -============== -Lure of the Temptress uses a simple scripting set for performing various operations. -A set of instructions consist of a starting byte that contains the 'opcode' number -in bits 1 to 7, whilst bit 0, if set, indicates whether the following two bytes -should be loaded into dx (used as a general purpose register). - -Note that logical operations treat 0 as true, and 1 as false as far as the -interpreter is concerned for calls to conditional jumps after a logical test. -Because of this non-typical logical state representation, I'm still in the -process of validating that all the test opcodes are correct. - -The following commands are available (the values represent the value in bits 1-7): - -Opcode Description ------- ----------- - 00h Restore SP - Restores SP to what it was when the sequence started - (ie. useful for breaking out of any subsequences that were being executed) - 01h Add - Pops two values off the stack, adds them, and pushes the result - 02h Subtract - Pops two values off the stack, subtracts the most recently - pushed value from the second most recent value, and then pushes - the result back onto the stack - 03h Multiply - Pops two values off the stack, multiplies them, and pushes - the result back onto the stack. Any overflow is also stored in DX - 04h Divide - Pops two values off the stack and divides the second most - recently pushed value by the most recent value, and pushes the - result back on the stack. DX stores any remainder - 05h Not equals - Pops two values off the stack, and if they're not equal - pushes 0 back onto the stack. If equal, pushes 1 - 06h Equals - Pops two values off the stack, and if they're equal pushes - 0 back onto the stack. If not equal, pushes 1 - 07h Greater - Checks to see if the most recently pushed value is greater - than the second most recent pushed value, and if so pops both of - them off the stack and pushes a 1 back onto the stack - 08h Smaller - Checks to see if the most recently pushed value is less - than the second most recent pushed value, and if so pops both of - them off the stack and pushes a 1 back onto the stack - 09h Smaller2 - Identical to Smaller, but uses 'Js' check instead of 'Jc' - 0Ah Greater2 - Identical to Greater, but uses 'Js' check instead of 'Jc' - 0Bh And - Pops two values off the stack, ANDs them, and pushes the result - 0Ch Or - Pops two values off the stack, ORs them, and pushes the result - 0Dh Logical And - Pops the two top values off the stack, and pushes back - 1 if both of them are non-zero, otherwise 0 - 0Eh Logical Or - Pops the two top values off the stack, and pushes back - 1 if either of them are non-zero, otherwise 0 - 0Fh Get Field - Gets a field within the data segment. DX specifies field - offset from the room_number_2 field, and the value is - pushed onto the stack - 10h Set Field - Sets a field within the data segment. DX specifies field - offset from the room_number_2 field, and the top value - on the stack is popped to set the field value - 11h Push value - Pushes the value of DX onto the stack - 12h Subroutine - Treats the value in DX as a pointer to a subroutine of - sequence instructions. The subroutine is processed, and when done, - the outer sequence resumes execution again. - 13h Call Method - Calls a method number DX in the sequence method list. - If there any any values on the stack, they get popped - into bx, cx, and dx respectively. - 14h Sequence end - ends the script sequence - 15h Conditional Jump - Pops the top value off the stack, and if it's - zero, adds the value in DX to the current sequence instructor pointer. - Note that DX is 16-bit signed, allowing for both negative and - postivie jumps - 16h Jump - Adds the value in DX to the current sequence instructor pointer. - Note that DX is 16-bit signed, allowing for both negative and - postivie jumps - 17h Restore SP - Restores SP to what it was when the sequence started - 18h Restore SP - Restores SP to what it was when the sequence started - 19h Random - Places a random number between 0 to 255 in DX - -Method List ------------ -The Call Method opcode (13h) can call methods, popping up to three values from -the stack if available, storing them in bx, cx, and dx respectively. - -Sequence Delay Table --------------------- -The sequence_delay_table has 40 slots of 7 bytes each that can contain a -sequence that shouldn't be exceed until a ceratin time has been exceeded. -Each slot consists of the following data: - - Offset Size Meaning - ------ ---- ------- - 2 4 Timer counter value at which point sequence should be - executed. When an entry is initially added to the list, - the delay amount is added to the current timer value - 4 2 Sequence offset to execute - 6 1 ??? - - -Hotspot Scripts -=============== -Sub_37 is a handler method called by the tick handler code for many animations. -The word at offset 24h of a hotspot entry specifies an offset into seg_c of the -executable. Starting at the given offset in the segment, data is read in one -word at a time. - -Value Description ------ ----------- -fff6h Set bitset actions based on next 2 words -fff7h Reads bx=next word, then calls sub_258 -fff8h Reads bx=next word, cx=next word. If cx is either 0 or equal to the - current room number, then calls sub_247 -fff9h Sets the pixel data record for the hotspot -fffah Jump to executing the sequence at the offset given by the following word -fffbh Sets the dimensions of the animation. The next word is shifted left - by 4 bits and stored as the width. The following word is stored as - the height (both values are only set in the animation slot) -fffch Ends the execution and deactivates the animation -fffdh -fffeh Sets the start position of the hotspot - the next following word - specifies the X start, and the one after that is the Y start -ffffh Reads in the next word and sets the timeout counter of the hotspot. - The offset 24h entry of the hotspot is also updated to point to the - next following word - -others Set animation frame. If the animation disk resource flags byte has - bit 2 clear, the frame is calculated by multiplying the opcode word's - value by the frame size (at offset 7 of the pixel resource record). - If bit 2 is set, the frame is set by getting the offset from the - decoded data's offset table. In either case, once the offset is set, - execution of the script stops. - - -Room List -========= - 1 = THE CELL - 2 = THE OUTER CELL - 3 = THE GUARD ROOM - 4 = THE TORTURE ROOM - 7 = THE SEWER OUTLET - 8 = Alley - 9 = CASTLE GATE -10 = APOTHECARY LANE -11 = Alley -12 = MAPIE COURTYARD -13 = CASTLE WALL -14 = MIDDLE STREET -15 = WEREGATE -17 = WEST STREET -18 = SMITHY STREET -19 = THE MARKET PLACE -20 = BLACKFRIARS ROW -21 = Alley -22 = Alley -23 = Alley -24 = Alley -25 = Alley -27 = Alley -28 = THE FORGE -29 = THE SEVERED ARMS -30 = TAIDGH'S HOUSE -31 = THE TOWN HALL -32 = MAGPIE TAVERN -34 = APOTHECARY WORKSHOP -35 = THE VILLAGE SHOP -36 = MONK'S LODGE -38 = Cave -39 = Cave -40 = Cave -41 = Cavern -42 = ? -43 = ? -44 = ? -45 = ? -46 = ? -47 = ? -48 = ? -3081 = Cave - - -393Ch - loading character movement list ---------------------------------------- -30h, 1, 0, 6feh, a18h, 0 - -Handling: - -If next word (W1) is 0, end decoding. Otherwise, read following word (W2) -and handle as per table below (PIXEL represents the pixel data record): - -Talking records -=============== -A character can specify a current talking record at offset 33h of it's hotspot -record. If the field is empty, then the main talk list talk_table is used to -get the starting talking record for a given character. The table consists of -a series of four byte entries: the first word gives the hotspot Id, the second -gives the offset of the talking record list for that character. - -The actual talking record contains a set of further offsets for talking records; -the current value of talk_record_index specifies which entry is loaded. There -is also a check to see if the hotspot name of the character being talked to is -17Ah "Stranger", in which case the first entry in the list is used. - -The talk data record set pointed to by the above offset has the following -format: - - Offset Size Meaning - ------ ---- ------- - 0h 2 Offset for a list of sequence Ids for handling results - ----- following is a set of 6 byte records for talk lines ----- - 0h 2 Precheck sequence offset - and with 3fffh to get actual - offset - if the result of execution is 0, then the talk - entry isn't added to the list. - High bit of word, if set, will cause the looping of - talk entry lines to end after processing the record. - Additionally, a value of 0ffffh ends the set of records - 2h 2 String resource for talk question, anded with 0x3fffh. - The two high bits are flags described in the next entry - 3h 1 Flags - If both bit 7 and bit 6 are set, then the - entry is skipped - 4h 2 Post sequence offset - when the high bit is set, the - sequence number in the remaining bits is executed, and - the result number used as a lookup (discussed below). - Otherwise, the value is directly used as a lookup index - -Once an entry has been clicked on, the result index (either from running the -post sequence Id or directly from the field value itself) is used as an index -into the results. The results structure is a set of 6 byte entries with the -following structure: - - Offset Size Meaning - ------ ---- ------- - 0h 2 Pre sequence offset - If it is non-zero, then the sequence - is executed. If the result is not the special value 1092h, - then the result is treated as a new response index, - which is used instead of the current one - 2h 2 Response String Id - specifies the response spoken by - the character to the player - 4h 2 Post sequence offset - A value of 0ffffh indicates the - conversation is ended. If the high bit is set, then - the conversation continues. Otherwise, the given script - offset is executed, and the conversation ended if the - result is 0ffffh. - The remaining bits can specify a starting offset in the - talk entry list to start from next time. - - - -Hotspot Action List -------------------- -The hotspot action list provides a list of hotspots in a "countdown" state.. -every cycle a countdown variable is decremented for each hotspot entry in -the list, and is used to set offset 4Ah of a given hotspot record. When a -countdown counter reaches zero, the entry is removed from the list. - -I currently know that it's got something to do with talking to characters, -but I haven't yet figured out what precisely word 4Ah of a hotspot record -controls. - - Offset Size Meaning - ------ ---- ------- - 0h 2 Hotspot Id of the source talker - 2h 2 Hotspot Id of the destination talker - 4h 2 Countdown counter - 6h 2 Hotspot record offset for destination talker -- cgit v1.2.3