[Scummvm-cvs-logs] SF.net SVN: scummvm: [22476] scummvm/trunk/engines/lure

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sun May 14 15:34:09 CEST 2006


Revision: 22476
Author:   dreammaster
Date:     2006-05-14 15:11:14 -0700 (Sun, 14 May 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22476&view=rev

Log Message:
-----------
Disassembled code responsible for making NPCs walk between rooms

Added Paths:
-----------
    scummvm/trunk/engines/lure/disassembly/
    scummvm/trunk/engines/lure/disassembly/LURE.ASM
    scummvm/trunk/engines/lure/disassembly/Lure_notes.txt

Removed Paths:
-------------
    scummvm/trunk/engines/lure/disassembly/LURE.ASM
    scummvm/trunk/engines/lure/disassembly/Lure_notes.txt
Copied: scummvm/trunk/engines/lure/disassembly (from rev 22372, scummvm/trunk/engines/lure/diassembly)

Deleted: scummvm/trunk/engines/lure/disassembly/LURE.ASM
===================================================================
--- scummvm/trunk/engines/lure/diassembly/LURE.ASM	2006-05-07 00:32:00 UTC (rev 22372)
+++ scummvm/trunk/engines/lure/disassembly/LURE.ASM	2006-05-14 22:11:14 UTC (rev 22476)
@@ -1,39653 +0,0 @@
-            lure.asm                                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 1
-
-
-                                PAGE  59,132
-
-                                ;\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB
-                                ;\xDB\xDB                                                                      \xDB\xDB
-                                ;\xDB\xDB                             LURE                                     \xDB\xDB
-                                ;\xDB\xDB                                                                      \xDB\xDB
-                                ;\xDB\xDB      Created:   23-Jun-95                                            \xDB\xDB
-                                ;\xDB\xDB      Passes:    9          Analysis Options on: QRSX                 \xDB\xDB
-                                ;\xDB\xDB      Copyright Revolution Software 1990-1992                         \xDB\xDB
-                                ;\xDB\xDB                                                                      \xDB\xDB
-                                ;\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB
-
-                                .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
-
-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_HOTSPOT_ACTION_SLOTS  equ  14h
-HOTSPOT_ACTION_SLOT_SIZE  equ  8
-
-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_LAYER1_SKIP          equ  1Dh
-ANIM_VOICE_CHAR_ID        equ  1Eh
-ANIM_V20                  equ  20h
-ANIM_CHAR_RECT_Y          equ  22h
-ANIM_VOICE_CTR            equ  24h
-ANIM_DIRECTION            equ  26h
-ANIM_UNKNOWN1             equ  27h
-ANIM_START_COLOUR         equ  28h
-
-; Hotspot header record constants
-HOTSPOT_TABLE_ENTRY_SIZE  equ   9
-HSH_NAME                  equ   2
-HSH_DESC                  equ   4
-HSH_DESC_2                equ   6
-
-; Hotspot record constants
-
-HS_ACTIONS                equ   0
-HS_FLAGS                  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_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_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_V42                    equ  42h
-HS_V44                    equ  44h
-HS_HOTSPOT2_SCRIPT_ID     equ  45h
-HS_USE2_HOTSPOT_ID        equ  47h
-HS_PATHFIND_COVERED       equ  49h
-HS_V4A                    equ  4Ah
-HS_V4C                    equ  4Ch
-HS_V4D                    equ  4Dh
-HS_V4E                    equ  4Eh
-HS_DIRECTION              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_V60                    equ  60h
-HS_ACTION_OFFSET          equ  61h
-HS_FIRST_ACTION_OFFSET    equ  63h
-
-; 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
-SKORL_HOTSPOT_ID          equ  3EAh
-
-
-; 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_ROOM_NUM               equ  2
-RH_DESC_ID                equ  4
-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_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
-
-                                ; The following equates show data references outside the range of the program.
-
-     = 0000                     data_1e         equ     0                       ; (0000:0000=30h)
-     = 0004                     data_3e         equ     4                       ; (0000:0004=70h)
-     = 0008                     data_4e         equ     8                       ; (0000:0008=30h)
-     = 000A                     data_6e         equ     0Ah                     ; (0000:000A=0C800h)
-     = 0080                     data_8e         equ     80h                     ; (0000:0080=1A0h)
-     = 00C0                     data_10e        equ     0C0h                    ; (0000:00C0=30h)
-     = 0200                     data_11e        equ     200h                    ; (0000:0200=0)
-     = 0417                     keybd_flags_1_  equ     417h                    ; (0000:0417=0)
-
-
-
-
-
-
-
-     = 0778                     data_21e        equ     778h                    ;*(0000:0778=5253h)
-     = 0991                     data_22e        equ     991h                    ;*(0000:0991=8Eh)
-
-     = 0DB2                     data_25e        equ     0DB2h                   ;*(0000:0DB2=8340h)
-     = 11D0                     data_26e        equ     11D0h                   ;*(0000:11D0=80h)
-
-
-     = 11D5                     data_29e        equ     11D5h                   ;*(0000:11D5=8Bh)
-
-
-
-     = 2300                     data_33e        equ     2300h                   ;*(0000:2300=1226h)
-     = 2427                     data_34e        equ     2427h                   ;*(0000:2427=8Bh)
-     = 2701                     data_35e        equ     2701h                   ;*(0000:2701=2EE4h)
-     = 270B                     data_36e        equ     270Bh                   ;*(0000:270B=113h)
-     = 2800                     data_37e        equ     2800h                   ;*(0000:2800=1F12h)
-     = 2B01                     data_38e        equ     2B01h                   ;*(0000:2B01=663Eh)
-
-
-     = 30D6                     data_41e        equ     30D6h                   ;*(0000:30D6=81h)
-     = 31E4                     data_42e        equ     31E4h                   ;*(0000:31E4=830Fh)
-     = 3350                     data_43e        equ     3350h                   ;*(0000:3350=0C033h)
-     = 3379                     data_44e        equ     3379h                   ;*(0000:3379=20CEh)
-     = 4701                     data_45e        equ     4701h                   ;*(0000:4701=800Fh)
-     = 4BF0                     data_46e        equ     4BF0h                   ;*(0000:4BF0=28h)
-     = 4CE4                     data_47e        equ     4CE4h                   ;*(0000:4CE4=1E8Eh)
-
-
-
-     = 63B1                     data_51e        equ     63B1h                   ;*(0000:63B1=1)
-
-
-     = 7A81                     data_54e        equ     7A81h                   ;*(0000:7A81=0D1h)
-     = 9836                     data_55e        equ     9836h                   ;*(0000:9836=46h)
-     = B8AB                     data_56e        equ     0B8ABh                  ;*(0000:B8AB=0D91Eh)
-     = B8AD                     data_57e        equ     0B8ADh                  ;*(0000:B8AD=0A34Dh)
-     = BF49                     data_58e        equ     0BF49h                  ;*(0000:BF49=5)
-     = CE8A                     data_59e        equ     0CE8Ah                  ;*(0000:CE8A=301Eh)
-     = DA89                     data_60e        equ     0DA89h                  ;*(0000:DA89=52F9h)
-     = 001B                     data_61e        equ     1Bh                     ;*(0002:001B=0C8h)
-     = 4200                     data_62e        equ     4200h                   ;*(0002:4200=0C4h)
-     = 0400                     data_63e        equ     400h                    ;*(0008:0400=1Eh)
-     = 0402                     data_64e        equ     402h                    ;*(0008:0402=3Eh)
-     = 0404                     data_65e        equ     404h                    ;*(0008:0404=18h)
-     = 0000                     data_66e        equ     0                       ;*(0028:0000=0)
-     = 0002                     data_67e        equ     2                       ;*(0028:0002=0)
-     = 00A0                     data_68e        equ     0A0h                    ;*(0031:00A0=0)
-     = 0017                     keybd_flags_1   equ     17h                     ; (0040:0017=0)
-     = 0063                     video_port      equ     63h                     ; (0040:0063=3D4h)
-     = 0000                     data_69e        equ     0                       ;*(0874:0000=0C5h)
-     = 31E4                     data_70e        equ     31E4h                   ;*(0874:31E4=2E11h)
-     = 3350                     data_71e        equ     3350h                   ;*(0874:3350=9A90h)
-     = 3356                     data_72e        equ     3356h                   ;*(0874:3356=289Ah)
-
-     = 335A                     data_74e        equ     335Ah                   ;*(0874:335A=0C70Fh)
-     = 335E                     data_75e        equ     335Eh                   ;*(0874:335E=0FF47h)
-     = 3360                     data_76e        equ     3360h                   ;*(0874:3360=0FFh)
-
-
-     = 336A                     data_79e        equ     336Ah                   ;*(0874:336A=7500h)
-     = 336C                     data_80e        equ     336Ch                   ;*(0874:336C=9A07h)
-     = 336E                     data_81e        equ     336Eh                   ;*(0874:336E=8090h)
-     = 3370                     data_82e        equ     3370h                   ;*(0874:3370=0F5Eh)
-     = 3374                     data_83e        equ     3374h                   ;*(0874:3374=1EA1h)
-     = 3376                     data_84e        equ     3376h                   ;*(0874:3376=0A321h)
-     = 3379                     data_85e        equ     3379h                   ;*(0874:3379=0C722h)
-     = 337B                     data_86e        equ     337Bh                   ;*(0874:337B=5806h)
-     = 337E                     data_88e        equ     337Eh                   ;*(0874:337E=0)
-
-
-     = 33DC                     data_91e        equ     33DCh                   ;*(0874:33DC=11A2h)
-     = 33DE                     data_92e        equ     33DEh                   ;*(0874:33DE=0A21Dh)
-     = 33E0                     data_93e        equ     33E0h                   ;*(0874:33E0=0F2h)
-     = 0040                     data_94e        equ     40h                     ;*(20E8:0040=72h)
-
-     = 9836                     data_96e        equ     9836h                   ;*(2711:9836=3Ch)
-
-     = B0AC                     data_446e       equ     0B0ACh                  ;*(273F:B0AC=0)
-
-
-     = B156                     data_449e       equ     0B156h                  ;*(273F:B156=0)
-
-     = B176                     data_451e       equ     0B176h                  ;*(273F:B176=0)
-
-     = B1D1                     data_453e       equ     0B1D1h                  ;*(273F:B1D1=0)
-     = B1FA                     data_454e       equ     0B1FAh                  ;*(273F:B1FA=0)
-     = B223                     data_455e       equ     0B223h                  ;*(273F:B223=0)
-     = B24C                     data_456e       equ     0B24Ch                  ;*(273F:B24C=0)
-
-     = B9C7                     data_458e       equ     0B9C7h                  ;*(273F:B9C7=0)
-
-
-
-
-
-
-     = BA05                     data_465e       equ     0BA05h                  ;*(273F:BA05=0)
-
-
-     = BA09                     data_468e       equ     0BA09h                  ;*(273F:BA09=0)
-     = BA0D                     data_469e       equ     0BA0Dh                  ;*(273F:BA0D=0)
-     = BA0F                     data_470e       equ     0BA0Fh                  ;*(273F:BA0F=0)
-     = BA11                     data_471e       equ     0BA11h                  ;*(273F:BA11=0)
-     = BA13                     data_472e       equ     0BA13h                  ;*(273F:BA13=0)
-     = BA14                     data_473e       equ     0BA14h                  ;*(273F:BA14=0)
-     = BA15                     data_474e       equ     0BA15h                  ;*(273F:BA15=0)
-
-
-
-
-
-     = BA21                     data_480e       equ     0BA21h                  ;*(273F:BA21=0)
-
-     = BA25                     data_482e       equ     0BA25h                  ;*(273F:BA25=0)
-
-     = BA2B                     data_484e       equ     0BA2Bh                  ;*(273F:BA2B=0)
-     = BA33                     data_485e       equ     0BA33h                  ;*(273F:BA33=0)
-
-
-     = BB95                     data_493e       equ     0BB95h                  ;*(273F:BB95=0)
-
-     = BC4B                     data_495e       equ     0BC4Bh                  ;*(273F:BC4B=0)
-     = BD9B                     data_496e       equ     0BD9Bh                  ;*(273F:BD9B=0)
-
-     = CE20                     data_498e       equ     0CE20h                  ;*(273F:CE20=0)
-     = CE30                     data_499e       equ     0CE30h                  ;*(273F:CE30=0)
-
-
-
-
-
-
-
-
-
-
-     = FF00                     data_1202e      equ     0FF00h                  ;*(31E4:FF00=2Fh)
-     = FFE7                     data_1203e      equ     0FFE7h                  ;*(31E4:FFE7=0)
-     = 0000                     data_1204e      equ     0                       ;*(3382:0000=1B01h)
-     = 1F48                     data_1407e      equ     1F48h                   ;*(44E4:1F48=0)
-     = 0040                     data_1433e      equ     40h                     ;*(45F6:0040=23h)
-     = 0080                     data_1434e      equ     80h                     ;*(45F6:0080=0)
-     = 0086                     data_1435e      equ     86h                     ;*(45F6:0086=15h)
-     = 0200                     data_1436e      equ     200h                    ;*(4789:0200=27h)
-     = 08C1                     data_1442e      equ     8C1h                    ;*(8340:08C1=0)
-     = 0000                     data_1443e      equ     0                       ;*(8B57:0000=0)
-     = 0132                     data_1444e      equ     132h                    ; (A000:0132=0)
-     = 0138                     data_1445e      equ     138h                    ; (A000:0138=0)
-     = 0140                     data_1446e      equ     140h                    ; (A000:0140=0)
-     = F000                     data_1448e      equ     0F000h                  ; (A000:F000=0)
-     = 0140                     data_1449e      equ     140h                    ; (A200:0140=0)
-     = 0140                     data_1451e      equ     140h                    ; (B2DE:0140=0)
-     = 0000                     data_1452e      equ     0                       ; (B957:0000=720h)
-     = 0002                     data_1453e      equ     2                       ; (B957:0002=20h)
-     = 0000                     data_1454e      equ     0                       ; (E375:0000=0)
-     = 0200                     data_1455e      equ     200h                    ; (E4B8:0200=0)
-     = 8CE5                     data_1456e      equ     8CE5h                   ; (E564:8CE5=0)
-     = 00A0                     data_1457e      equ     0A0h                    ; (F632:00A0=0)
-     = 0140                     data_1458e      equ     140h                    ; (F632:0140=0)
-     = 0008                     data_1459e      equ     8                       ; (FF12:0008=0)
-     = 00A0                     data_1460e      equ     0A0h                    ; (FF12:00A0=0)
-
-     = 0A00                     data_1463e      equ     0A00h                   ; (FF12:0A00=0)
-     = 1360                     data_1464e      equ     1360h                   ; (FF12:1360=1Eh)
-     = 26C0                     data_1465e      equ     26C0h                   ; (FF12:26C0=0B4h)
-     = 3E92                     data_1466e      equ     3E92h                   ; (FF12:3E92=80h)
-     = 7D00                     data_1467e      equ     7D00h                   ; (FF12:7D00=0C2h)
-
-                                ;------------------------------------------------------------  seg_code   ----
-
-                                seg_code        segment byte public
-                                                assume cs:seg_code  , ds:seg_code , ss:stack_seg_k
-
-
-                                ;\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB
-                                ;
-                                ;                       Program Entry Point
-                                ;
-                                ;\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB
-
-
-                                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 \xFAB8 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 \xFAC6 06 38B0 01                        mov     byte ptr ds:[38B0h],1   ; (273F:38B0=0EAh)
-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    sub_115                 ; (483F)
-273F:0027  E8 10BE                              call    hotspots_unload         ; Disable unneeded hotspots
-273F:002A  83 3E BAAD 01                        cmp     script_val_82, 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    sub_261                 ; (A5AC)
-273F:0036  EB 03                                jmp     short loc_8             ; (003B)
-273F:0038                       loc_7:                                          ;  xref 273F:0031
-273F:0038  E8 A680                              call    sub_263                 ; (A6BB)
-273F:003B                       loc_8:                                          ;  xref 273F:002F, 0036
-273F:003B  C7 06 BAAD 0000                      mov     word ptr ds:data_490e,0 ; (273F:BAAD=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    sub_189                 ; (768C)
-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    sub_113                 ; (47DE)
-273F:00A6  E8 6038                              call    sub_138                 ; (60E1)
-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     byte ptr ds:[38B0h],al  ; (273F:38B0=0EAh)
-273F:00DB  A2 11DA                              mov     mouse_buttons2, al
-273F:00DE  A3 983F                              mov     data_435, ax
-273F:00E1  A3 9841                              mov     data_436, 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 \xFA83 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    sub_96                  ; Talking countdown proc
-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
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:024F, 030A
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-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 at 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 \xFABA 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 \xFABA 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
-
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:0974, 768C
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-273F:01FB            read_and_validate_header   proc    near
-273F:01FB                       loc_23:                                         ;  xref 273F:02B1, 02DC
-273F:01FB \xFAC6 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 \xFA2E: 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
-
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:034C, 040E, 757C
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-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
-
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:025E, 0280
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-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
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:0BDA, 3ACD, 3CA3, 7640, 7813, 7AC5, 7B63
-                                ;                             7B80, 93A9, 9F6E, 9F8C, 9FB1, A302, A34F
-                                ;                             A7C0, A7E2, A900, A9B3
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-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 \xFABB 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
-
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:77F1, A7B4
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-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 \xFABB 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
-
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:021A, 037B
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-
-
-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 \xFA83 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
-
-                                ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;                              SUBROUTINE
-                                ;
-                                ;         Called from:   273F:0005
-                                ;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-
-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,346Dh          ; (31E4:074E=0)
-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 \xFABA 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 \xFABA 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 \xFABA 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 \xFABA 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
-
-                                ;\xDF\xDF\xDF\xDF External Entry into Subroutine \xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
-                                ;
-                                ;         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

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the Scummvm-git-logs mailing list